From b6a9ce58dbd1718ad168ef5993fccaf65201f34b Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Wed, 24 Apr 2024 21:37:22 +0200 Subject: [PATCH 001/318] monero.dart clean --- .fvmrc | 3 +++ .gitignore | 3 +++ .vscode/settings.json | 1 + android/app/build.gradle | 7 ++++++- android/app/src/main/AndroidManifest.xml | 3 ++- .../arm64-v8a/libmonero_libwallet2_api_c.so | 1 + .../armeabi-v7a/libmonero_libwallet2_api_c.so | 1 + .../x86_64/libmonero_libwallet2_api_c.so | 1 + lib/wallets/crypto_currency/coins/monero.dart | 3 ++- .../crypto_currency/coins/wownero.dart | 2 +- lib/wallets/wallet/impl/wownero_wallet.dart | 6 ++++-- macos/Flutter/GeneratedPluginRegistrant.swift | 6 ------ macos/Podfile.lock | 4 ++-- macos/Runner.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- pubspec.lock | 20 ++++++++++--------- pubspec.yaml | 2 +- scripts/macos/build_all.sh | 6 +++--- 18 files changed, 44 insertions(+), 29 deletions(-) create mode 100644 .fvmrc create mode 120000 android/app/src/main/jniLibs/arm64-v8a/libmonero_libwallet2_api_c.so create mode 120000 android/app/src/main/jniLibs/armeabi-v7a/libmonero_libwallet2_api_c.so create mode 120000 android/app/src/main/jniLibs/x86_64/libmonero_libwallet2_api_c.so diff --git a/.fvmrc b/.fvmrc new file mode 100644 index 000000000..5fb0c142c --- /dev/null +++ b/.fvmrc @@ -0,0 +1,3 @@ +{ + "flutter": "3.16.0" +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index ec9131840..144745e55 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,6 @@ libtor_ffi.dll flutter_libsparkmobile.dll secp256k1.dll /libisar.so + +# FVM Version Cache +.fvm/ \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index eba0d6cd7..a86b03d61 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { "dart.lineLength": 80, + "dart.flutterSdkPath": ".fvm/versions/3.16.0" } \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle index ec8747bff..cd56f57ff 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -45,7 +45,12 @@ android { lintOptions { disable 'InvalidPackage' } - + packagingOptions { + pickFirst 'lib/x86/libc++_shared.so' + pickFirst 'lib/x86_64/libc++_shared.so' + pickFirst 'lib/armeabi-v7a/libc++_shared.so' + pickFirst 'lib/arm64-v8a/libc++_shared.so' + } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.cypherstack.stackwallet" diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 3f1a56aa8..786db2728 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -23,7 +23,8 @@ android:requestLegacyExternalStorage="true" android:icon="@mipmap/ic_launcher" android:allowBackup="false" - android:fullBackupContent="false"> + android:fullBackupContent="false" + android:extractNativeLibs="true"> Date: Fri, 26 Apr 2024 00:44:11 +0200 Subject: [PATCH 002/318] fix build issues --- linux/CMakeLists.txt | 4 ++-- scripts/android/build_all.sh | 6 +++--- scripts/linux/build_all.sh | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt index 53391e7ad..8fed408de 100644 --- a/linux/CMakeLists.txt +++ b/linux/CMakeLists.txt @@ -134,10 +134,10 @@ install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR} install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" COMPONENT Runtime) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/linux/build/libcw_monero.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/monero/x86_64-linux-gnu_libwallet2_api_c.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "monero_libwallet2_api_c.so" COMPONENT Runtime) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/linux/build/libcw_wownero.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-linux-gnu_libwallet2_api_c.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "wownero_libwallet2_api_c.so" COMPONENT Runtime) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libepiccash/scripts/linux/build/rust/target/x86_64-unknown-linux-gnu/release/libepic_cash_wallet.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" diff --git a/scripts/android/build_all.sh b/scripts/android/build_all.sh index 3f499e3f9..13438cf7d 100755 --- a/scripts/android/build_all.sh +++ b/scripts/android/build_all.sh @@ -10,9 +10,9 @@ mkdir -p build . ./config.sh ./install_ndk.sh -(cd ../../crypto_plugins/flutter_liblelantus/scripts/android && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libepiccash/scripts/android && ./install_ndk.sh && ./build_opensll.sh && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libmonero/scripts/android/ && ./build_all.sh ) & +(cd ../../crypto_plugins/flutter_liblelantus/scripts/android && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libepiccash/scripts/android && ./install_ndk.sh && ./build_openssl.sh && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libmonero/scripts/android/ && ./build_all.sh ) wait echo "Done building" diff --git a/scripts/linux/build_all.sh b/scripts/linux/build_all.sh index 672668c13..408a2c6b4 100755 --- a/scripts/linux/build_all.sh +++ b/scripts/linux/build_all.sh @@ -11,10 +11,10 @@ set_rust_to_1671 # flutter-elinux pub get # flutter-elinux build linux --dart-define="IS_ARM=true" mkdir -p build -./build_secure_storage_deps.sh & -(cd ../../crypto_plugins/flutter_liblelantus/scripts/linux && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libepiccash/scripts/linux && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libmonero/scripts/linux && ./build_monero_all.sh && ./build_sharedfile.sh ) & +./build_secure_storage_deps.sh +(cd ../../crypto_plugins/flutter_liblelantus/scripts/linux && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libepiccash/scripts/linux && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libmonero/scripts/linux && ./build_all.sh ) wait echo "Done building" From fb0b87942a8c3da4a3ad8ea168237f6920814761 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Fri, 26 Apr 2024 14:21:21 +0200 Subject: [PATCH 003/318] wownero support --- .../add_wallet_views/add_wallet_view/add_wallet_view.dart | 2 +- .../settings/settings_menu/nodes_settings.dart | 2 +- pubspec.lock | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart index 32e1b618c..54b94efb3 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart @@ -131,7 +131,7 @@ class _AddWalletViewState extends ConsumerState { _coins.remove(Coin.monero); _coins.remove(Coin.wownero); } else if (Platform.isLinux) { - _coins.remove(Coin.wownero); + // _coins.remove(Coin.wownero); } coinEntities.addAll(_coins.map((e) => CoinEntity(e))); diff --git a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart index eec6e1a5f..1edeac7a6 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart @@ -69,7 +69,7 @@ class _NodesSettings extends ConsumerState { _coins.remove(Coin.monero); _coins.remove(Coin.wownero); } else if (Platform.isLinux) { - _coins.remove(Coin.wownero); + // _coins.remove(Coin.wownero); } searchNodeController = TextEditingController(); diff --git a/pubspec.lock b/pubspec.lock index 111adbb54..428c81a90 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1144,8 +1144,8 @@ packages: dependency: transitive description: path: "." - ref: "342bad5d91d8476f0e32a57ae944f2cfe34d4241" - resolved-ref: "342bad5d91d8476f0e32a57ae944f2cfe34d4241" + ref: "2e1d13765c1403a933c77972511a661f26d4af2e" + resolved-ref: "2e1d13765c1403a933c77972511a661f26d4af2e" url: "https://git.mrcyjanek.net/mrcyjanek/monero.dart" source: git version: "0.0.0" From dc699c6551c6e647c593227460042398fcafdfe8 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Fri, 26 Apr 2024 17:51:51 +0200 Subject: [PATCH 004/318] additionalInfo backwards compat --- lib/wallets/wallet/impl/monero_wallet.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/wallets/wallet/impl/monero_wallet.dart b/lib/wallets/wallet/impl/monero_wallet.dart index e0d70db36..5f681c774 100644 --- a/lib/wallets/wallet/impl/monero_wallet.dart +++ b/lib/wallets/wallet/impl/monero_wallet.dart @@ -218,8 +218,8 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { final addressString = (CwBasedInterface.cwWalletBase as MoneroWalletBase?) ?.getTransactionAddress( - addressInfo!['accountIndex'] as int, - addressInfo['addressIndex'] as int, + addressInfo?['accountIndex'] as int? ?? 0, + addressInfo?['addressIndex'] as int? ?? 0, ); if (addressString != null) { From 01b5bc479d2988e9283a2db171041a016da88034 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Sat, 27 Apr 2024 18:16:31 +0200 Subject: [PATCH 005/318] macos support --- macos/Podfile.lock | 54 -------------------------- macos/Runner.xcodeproj/project.pbxproj | 18 +++++++++ macos/monero_libwallet2_api_c.dylib | 1 + macos/wownero_libwallet2_api_c.dylib | 1 + pubspec.lock | 4 +- 5 files changed, 22 insertions(+), 56 deletions(-) create mode 120000 macos/monero_libwallet2_api_c.dylib create mode 120000 macos/wownero_libwallet2_api_c.dylib diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 3c7eac5bb..87053ba83 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -5,48 +5,6 @@ PODS: - connectivity_plus (0.0.1): - FlutterMacOS - ReachabilitySwift - - cw_monero (0.0.1): - - cw_monero/Boost (= 0.0.1) - - cw_monero/Monero (= 0.0.1) - - cw_monero/OpenSSL (= 0.0.1) - - cw_monero/Sodium (= 0.0.1) - - cw_monero/Unbound (= 0.0.1) - - FlutterMacOS - - cw_monero/Boost (0.0.1): - - FlutterMacOS - - cw_monero/Monero (0.0.1): - - FlutterMacOS - - cw_monero/OpenSSL (0.0.1): - - FlutterMacOS - - cw_monero/Sodium (0.0.1): - - FlutterMacOS - - cw_monero/Unbound (0.0.1): - - FlutterMacOS - - cw_shared_external (0.0.1): - - cw_shared_external/Boost (= 0.0.1) - - cw_shared_external/OpenSSL (= 0.0.1) - - FlutterMacOS - - cw_shared_external/Boost (0.0.1): - - FlutterMacOS - - cw_shared_external/OpenSSL (0.0.1): - - FlutterMacOS - - cw_wownero (0.0.1): - - cw_wownero/Boost (= 0.0.1) - - cw_wownero/OpenSSL (= 0.0.1) - - cw_wownero/Sodium (= 0.0.1) - - cw_wownero/Unbound (= 0.0.1) - - cw_wownero/Wownero (= 0.0.1) - - FlutterMacOS - - cw_wownero/Boost (0.0.1): - - FlutterMacOS - - cw_wownero/OpenSSL (0.0.1): - - FlutterMacOS - - cw_wownero/Sodium (0.0.1): - - FlutterMacOS - - cw_wownero/Unbound (0.0.1): - - FlutterMacOS - - cw_wownero/Wownero (0.0.1): - - FlutterMacOS - desktop_drop (0.0.1): - FlutterMacOS - device_info_plus (0.0.1): @@ -87,9 +45,6 @@ PODS: DEPENDENCIES: - coinlib_flutter (from `Flutter/ephemeral/.symlinks/plugins/coinlib_flutter/darwin`) - connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`) - - cw_monero (from `Flutter/ephemeral/.symlinks/plugins/cw_monero/macos`) - - cw_shared_external (from `Flutter/ephemeral/.symlinks/plugins/cw_shared_external/macos`) - - cw_wownero (from `Flutter/ephemeral/.symlinks/plugins/cw_wownero/macos`) - desktop_drop (from `Flutter/ephemeral/.symlinks/plugins/desktop_drop/macos`) - device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`) - devicelocale (from `Flutter/ephemeral/.symlinks/plugins/devicelocale/macos`) @@ -118,12 +73,6 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/coinlib_flutter/darwin connectivity_plus: :path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos - cw_monero: - :path: Flutter/ephemeral/.symlinks/plugins/cw_monero/macos - cw_shared_external: - :path: Flutter/ephemeral/.symlinks/plugins/cw_shared_external/macos - cw_wownero: - :path: Flutter/ephemeral/.symlinks/plugins/cw_wownero/macos desktop_drop: :path: Flutter/ephemeral/.symlinks/plugins/desktop_drop/macos device_info_plus: @@ -164,9 +113,6 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: coinlib_flutter: 6abec900d67762a6e7ccfd567a3cd3ae00bbee35 connectivity_plus: 18d3c32514c886e046de60e9c13895109866c747 - cw_monero: 7acce7238d217e3993ecac6ec2dec07be728769a - cw_shared_external: c6adfd29c9be4d64f84e1fa9c541ccbcbdb6b457 - cw_wownero: bcd7f2ad6c0a3e8e2a51756fb14f0579b6f8b4ff desktop_drop: 69eeff437544aa619c8db7f4481b3a65f7696898 device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f devicelocale: 9f0f36ac651cabae2c33f32dcff4f32b61c38225 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index c7d39b845..ea15e0c92 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -31,6 +31,8 @@ B98151822A67402A009D013C /* mobileliblelantus.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = B98151802A674022009D013C /* mobileliblelantus.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; B98151842A674143009D013C /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B98151832A674143009D013C /* libsqlite3.0.tbd */; }; BFD0376C00E1FFD46376BB9D /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9206484E84CB0AD93E3E68CA /* Pods_RunnerTests.framework */; }; + CEA2021D2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEA2021C2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + CEA202202BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEA2021F2BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; F653CA022D33E8B60E11A9F3 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E6036BF01BF05EA773C76D22 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ @@ -63,6 +65,17 @@ name = "Bundle Framework"; runOnlyForDeploymentPostprocessing = 0; }; + CEA202192BDD4C3500FE1D27 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 12; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + CEA202202BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib in CopyFiles */, + CEA2021D2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -93,6 +106,8 @@ B98151802A674022009D013C /* mobileliblelantus.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = mobileliblelantus.framework; path = ../crypto_plugins/flutter_liblelantus/scripts/macos/mobileliblelantus/mobileliblelantus.framework; sourceTree = ""; }; B98151832A674143009D013C /* libsqlite3.0.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.0.tbd; path = usr/lib/libsqlite3.0.tbd; sourceTree = SDKROOT; }; BF5E76865ACB46314AC27D8F /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + CEA2021C2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = wownero_libwallet2_api_c.dylib; sourceTree = ""; }; + CEA2021F2BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = monero_libwallet2_api_c.dylib; sourceTree = ""; }; E6036BF01BF05EA773C76D22 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -140,6 +155,8 @@ 33CC10E42044A3C60003C045 = { isa = PBXGroup; children = ( + CEA2021F2BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib */, + CEA2021C2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib */, 33FAB671232836740065AC1E /* Runner */, 33CEB47122A05771004F2AC0 /* Flutter */, 331C80D6294CF71000263BE5 /* RunnerTests */, @@ -250,6 +267,7 @@ 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, 529691D83C3BADE14E2EAC03 /* [CP] Embed Pods Frameworks */, + CEA202192BDD4C3500FE1D27 /* CopyFiles */, ); buildRules = ( ); diff --git a/macos/monero_libwallet2_api_c.dylib b/macos/monero_libwallet2_api_c.dylib new file mode 120000 index 000000000..da01b591e --- /dev/null +++ b/macos/monero_libwallet2_api_c.dylib @@ -0,0 +1 @@ +../crypto_plugins/flutter_libmonero/scripts/monero_c/release/monero/host-apple-darwin_libwallet2_api_c.dylib \ No newline at end of file diff --git a/macos/wownero_libwallet2_api_c.dylib b/macos/wownero_libwallet2_api_c.dylib new file mode 120000 index 000000000..f0a776dc1 --- /dev/null +++ b/macos/wownero_libwallet2_api_c.dylib @@ -0,0 +1 @@ +../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/host-apple-darwin_libwallet2_api_c.dylib \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 428c81a90..7d2bdde86 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1144,8 +1144,8 @@ packages: dependency: transitive description: path: "." - ref: "2e1d13765c1403a933c77972511a661f26d4af2e" - resolved-ref: "2e1d13765c1403a933c77972511a661f26d4af2e" + ref: "7ba955fd9d975c7228ee43a744294399b48f9993" + resolved-ref: "7ba955fd9d975c7228ee43a744294399b48f9993" url: "https://git.mrcyjanek.net/mrcyjanek/monero.dart" source: git version: "0.0.0" From c78fba7b364bc69ecedc6c71405506f9c02fcc6b Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Wed, 24 Apr 2024 21:37:22 +0200 Subject: [PATCH 006/318] monero.dart clean --- .fvmrc | 3 +++ .gitignore | 3 +++ .vscode/settings.json | 1 + android/app/build.gradle | 7 ++++++- android/app/src/main/AndroidManifest.xml | 3 ++- .../arm64-v8a/libmonero_libwallet2_api_c.so | 1 + .../armeabi-v7a/libmonero_libwallet2_api_c.so | 1 + .../jniLibs/x86_64/libmonero_libwallet2_api_c.so | 1 + crypto_plugins/flutter_libmonero | 2 +- lib/wallets/crypto_currency/coins/monero.dart | 3 ++- lib/wallets/crypto_currency/coins/wownero.dart | 2 +- lib/wallets/wallet/impl/wownero_wallet.dart | 6 ++++-- macos/Flutter/GeneratedPluginRegistrant.swift | 6 ------ pubspec.lock | 16 +++++++++------- scripts/macos/build_all.sh | 10 +++++----- 15 files changed, 40 insertions(+), 25 deletions(-) create mode 100644 .fvmrc create mode 120000 android/app/src/main/jniLibs/arm64-v8a/libmonero_libwallet2_api_c.so create mode 120000 android/app/src/main/jniLibs/armeabi-v7a/libmonero_libwallet2_api_c.so create mode 120000 android/app/src/main/jniLibs/x86_64/libmonero_libwallet2_api_c.so diff --git a/.fvmrc b/.fvmrc new file mode 100644 index 000000000..5fb0c142c --- /dev/null +++ b/.fvmrc @@ -0,0 +1,3 @@ +{ + "flutter": "3.16.0" +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index ec9131840..144745e55 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,6 @@ libtor_ffi.dll flutter_libsparkmobile.dll secp256k1.dll /libisar.so + +# FVM Version Cache +.fvm/ \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index eba0d6cd7..a86b03d61 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { "dart.lineLength": 80, + "dart.flutterSdkPath": ".fvm/versions/3.16.0" } \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle index ae9570217..5272e9456 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -45,7 +45,12 @@ android { lintOptions { disable 'InvalidPackage' } - + packagingOptions { + pickFirst 'lib/x86/libc++_shared.so' + pickFirst 'lib/x86_64/libc++_shared.so' + pickFirst 'lib/armeabi-v7a/libc++_shared.so' + pickFirst 'lib/arm64-v8a/libc++_shared.so' + } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.cypherstack.stackwallet" diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 3f1a56aa8..786db2728 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -23,7 +23,8 @@ android:requestLegacyExternalStorage="true" android:icon="@mipmap/ic_launcher" android:allowBackup="false" - android:fullBackupContent="false"> + android:fullBackupContent="false" + android:extractNativeLibs="true"> Date: Fri, 26 Apr 2024 00:44:11 +0200 Subject: [PATCH 007/318] fix build issues --- linux/CMakeLists.txt | 4 ++-- scripts/android/build_all.sh | 2 +- scripts/linux/build_all.sh | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt index 53391e7ad..8fed408de 100644 --- a/linux/CMakeLists.txt +++ b/linux/CMakeLists.txt @@ -134,10 +134,10 @@ install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR} install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" COMPONENT Runtime) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/linux/build/libcw_monero.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/monero/x86_64-linux-gnu_libwallet2_api_c.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "monero_libwallet2_api_c.so" COMPONENT Runtime) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/linux/build/libcw_wownero.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-linux-gnu_libwallet2_api_c.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "wownero_libwallet2_api_c.so" COMPONENT Runtime) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libepiccash/scripts/linux/build/rust/target/x86_64-unknown-linux-gnu/release/libepic_cash_wallet.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" diff --git a/scripts/android/build_all.sh b/scripts/android/build_all.sh index 5da88e0e3..987c7df57 100755 --- a/scripts/android/build_all.sh +++ b/scripts/android/build_all.sh @@ -13,7 +13,7 @@ mkdir -p build PLUGINS_DIR=../../crypto_plugins (cd "${PLUGINS_DIR}"/flutter_liblelantus/scripts/android && ./build_all.sh ) & -(cd "${PLUGINS_DIR}"/flutter_libepiccash/scripts/android && ./build_all.sh ) & +(cd "${PLUGINS_DIR}"/flutter_libepiccash/scripts/android && ./install_ndk.sh && ./build_openssl.sh && ./build_all.sh ) & (cd "${PLUGINS_DIR}"/flutter_libmonero/scripts/android/ && ./build_all.sh ) && set_rust_to_1720 && (cd "${PLUGINS_DIR}"/frostdart/scripts/android && ./build_all.sh ) & diff --git a/scripts/linux/build_all.sh b/scripts/linux/build_all.sh index 2b6bd1ffd..5d07aa450 100755 --- a/scripts/linux/build_all.sh +++ b/scripts/linux/build_all.sh @@ -11,12 +11,12 @@ set_rust_to_1671 # flutter-elinux pub get # flutter-elinux build linux --dart-define="IS_ARM=true" mkdir -p build -./build_secure_storage_deps.sh & -(cd ../../crypto_plugins/flutter_liblelantus/scripts/linux && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libepiccash/scripts/linux && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libmonero/scripts/linux && ./build_monero_all.sh && ./build_sharedfile.sh ) & -set_rust_to_1720 & -(cd ../../crypto_plugins/frostdart/scripts/linux && ./build_all.sh ) & +./build_secure_storage_deps.sh +(cd ../../crypto_plugins/flutter_liblelantus/scripts/linux && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libepiccash/scripts/linux && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libmonero/scripts/linux && ./build_monero_all.sh && ./build_sharedfile.sh ) +set_rust_to_1720 +(cd ../../crypto_plugins/frostdart/scripts/linux && ./build_all.sh ) wait echo "Done building" From f614cfff5f9aa372fc8eb5b06f97985a20e6f2fb Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Fri, 26 Apr 2024 14:21:21 +0200 Subject: [PATCH 008/318] wownero support --- .../add_wallet_views/add_wallet_view/add_wallet_view.dart | 2 +- .../settings/settings_menu/nodes_settings.dart | 2 +- pubspec.lock | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart index d84bfc708..76e1ee0a2 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart @@ -131,7 +131,7 @@ class _AddWalletViewState extends ConsumerState { _coins.remove(Coin.monero); _coins.remove(Coin.wownero); } else if (Platform.isLinux) { - _coins.remove(Coin.wownero); + // _coins.remove(Coin.wownero); } // Remove FROST from the list of coins based on our frostEnabled preference. diff --git a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart index eec6e1a5f..1edeac7a6 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart @@ -69,7 +69,7 @@ class _NodesSettings extends ConsumerState { _coins.remove(Coin.monero); _coins.remove(Coin.wownero); } else if (Platform.isLinux) { - _coins.remove(Coin.wownero); + // _coins.remove(Coin.wownero); } searchNodeController = TextEditingController(); diff --git a/pubspec.lock b/pubspec.lock index 479d5c45d..0845fd66c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1197,8 +1197,8 @@ packages: dependency: transitive description: path: "." - ref: "342bad5d91d8476f0e32a57ae944f2cfe34d4241" - resolved-ref: "342bad5d91d8476f0e32a57ae944f2cfe34d4241" + ref: "2e1d13765c1403a933c77972511a661f26d4af2e" + resolved-ref: "2e1d13765c1403a933c77972511a661f26d4af2e" url: "https://git.mrcyjanek.net/mrcyjanek/monero.dart" source: git version: "0.0.0" From ffa4c85d532b7a9251395583bfdd36525cecc64a Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Fri, 26 Apr 2024 17:51:51 +0200 Subject: [PATCH 009/318] additionalInfo backwards compat --- lib/wallets/wallet/impl/monero_wallet.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/wallets/wallet/impl/monero_wallet.dart b/lib/wallets/wallet/impl/monero_wallet.dart index e0d70db36..5f681c774 100644 --- a/lib/wallets/wallet/impl/monero_wallet.dart +++ b/lib/wallets/wallet/impl/monero_wallet.dart @@ -218,8 +218,8 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { final addressString = (CwBasedInterface.cwWalletBase as MoneroWalletBase?) ?.getTransactionAddress( - addressInfo!['accountIndex'] as int, - addressInfo['addressIndex'] as int, + addressInfo?['accountIndex'] as int? ?? 0, + addressInfo?['addressIndex'] as int? ?? 0, ); if (addressString != null) { From 19de471b85e9adede9a9c2c152a17c3a726b8c52 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Sat, 27 Apr 2024 18:16:31 +0200 Subject: [PATCH 010/318] macos support --- macos/Podfile.lock | 54 -------------------------- macos/Runner.xcodeproj/project.pbxproj | 18 +++++++++ macos/monero_libwallet2_api_c.dylib | 1 + macos/wownero_libwallet2_api_c.dylib | 1 + pubspec.lock | 4 +- 5 files changed, 22 insertions(+), 56 deletions(-) create mode 120000 macos/monero_libwallet2_api_c.dylib create mode 120000 macos/wownero_libwallet2_api_c.dylib diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 35c7171cb..57c4d3468 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -5,48 +5,6 @@ PODS: - connectivity_plus (0.0.1): - FlutterMacOS - ReachabilitySwift - - cw_monero (0.0.1): - - cw_monero/Boost (= 0.0.1) - - cw_monero/Monero (= 0.0.1) - - cw_monero/OpenSSL (= 0.0.1) - - cw_monero/Sodium (= 0.0.1) - - cw_monero/Unbound (= 0.0.1) - - FlutterMacOS - - cw_monero/Boost (0.0.1): - - FlutterMacOS - - cw_monero/Monero (0.0.1): - - FlutterMacOS - - cw_monero/OpenSSL (0.0.1): - - FlutterMacOS - - cw_monero/Sodium (0.0.1): - - FlutterMacOS - - cw_monero/Unbound (0.0.1): - - FlutterMacOS - - cw_shared_external (0.0.1): - - cw_shared_external/Boost (= 0.0.1) - - cw_shared_external/OpenSSL (= 0.0.1) - - FlutterMacOS - - cw_shared_external/Boost (0.0.1): - - FlutterMacOS - - cw_shared_external/OpenSSL (0.0.1): - - FlutterMacOS - - cw_wownero (0.0.1): - - cw_wownero/Boost (= 0.0.1) - - cw_wownero/OpenSSL (= 0.0.1) - - cw_wownero/Sodium (= 0.0.1) - - cw_wownero/Unbound (= 0.0.1) - - cw_wownero/Wownero (= 0.0.1) - - FlutterMacOS - - cw_wownero/Boost (0.0.1): - - FlutterMacOS - - cw_wownero/OpenSSL (0.0.1): - - FlutterMacOS - - cw_wownero/Sodium (0.0.1): - - FlutterMacOS - - cw_wownero/Unbound (0.0.1): - - FlutterMacOS - - cw_wownero/Wownero (0.0.1): - - FlutterMacOS - desktop_drop (0.0.1): - FlutterMacOS - device_info_plus (0.0.1): @@ -89,9 +47,6 @@ PODS: DEPENDENCIES: - coinlib_flutter (from `Flutter/ephemeral/.symlinks/plugins/coinlib_flutter/darwin`) - connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`) - - cw_monero (from `Flutter/ephemeral/.symlinks/plugins/cw_monero/macos`) - - cw_shared_external (from `Flutter/ephemeral/.symlinks/plugins/cw_shared_external/macos`) - - cw_wownero (from `Flutter/ephemeral/.symlinks/plugins/cw_wownero/macos`) - desktop_drop (from `Flutter/ephemeral/.symlinks/plugins/desktop_drop/macos`) - device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`) - devicelocale (from `Flutter/ephemeral/.symlinks/plugins/devicelocale/macos`) @@ -121,12 +76,6 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/coinlib_flutter/darwin connectivity_plus: :path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos - cw_monero: - :path: Flutter/ephemeral/.symlinks/plugins/cw_monero/macos - cw_shared_external: - :path: Flutter/ephemeral/.symlinks/plugins/cw_shared_external/macos - cw_wownero: - :path: Flutter/ephemeral/.symlinks/plugins/cw_wownero/macos desktop_drop: :path: Flutter/ephemeral/.symlinks/plugins/desktop_drop/macos device_info_plus: @@ -169,9 +118,6 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: coinlib_flutter: 6abec900d67762a6e7ccfd567a3cd3ae00bbee35 connectivity_plus: 18d3c32514c886e046de60e9c13895109866c747 - cw_monero: 7acce7238d217e3993ecac6ec2dec07be728769a - cw_shared_external: c6adfd29c9be4d64f84e1fa9c541ccbcbdb6b457 - cw_wownero: bcd7f2ad6c0a3e8e2a51756fb14f0579b6f8b4ff desktop_drop: 69eeff437544aa619c8db7f4481b3a65f7696898 device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f devicelocale: 9f0f36ac651cabae2c33f32dcff4f32b61c38225 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index eccafe6ba..cf58de9bd 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -31,6 +31,8 @@ B98151822A67402A009D013C /* mobileliblelantus.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = B98151802A674022009D013C /* mobileliblelantus.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; B98151842A674143009D013C /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B98151832A674143009D013C /* libsqlite3.0.tbd */; }; BFD0376C00E1FFD46376BB9D /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9206484E84CB0AD93E3E68CA /* Pods_RunnerTests.framework */; }; + CEA2021D2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEA2021C2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + CEA202202BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEA2021F2BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; F1FA2C4E2BA4B49F00BDA1BB /* frostdart.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F1FA2C4D2BA4B49F00BDA1BB /* frostdart.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; F1FA2C502BA4B4CA00BDA1BB /* frostdart.dylib in Resources */ = {isa = PBXBuildFile; fileRef = F1FA2C4F2BA4B4CA00BDA1BB /* frostdart.dylib */; }; F1FA2C512BA4B51E00BDA1BB /* frostdart.dylib in Bundle Framework */ = {isa = PBXBuildFile; fileRef = F1FA2C4D2BA4B49F00BDA1BB /* frostdart.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; @@ -67,6 +69,17 @@ name = "Bundle Framework"; runOnlyForDeploymentPostprocessing = 0; }; + CEA202192BDD4C3500FE1D27 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 12; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + CEA202202BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib in CopyFiles */, + CEA2021D2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -97,6 +110,8 @@ B98151802A674022009D013C /* mobileliblelantus.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = mobileliblelantus.framework; path = ../crypto_plugins/flutter_liblelantus/scripts/macos/mobileliblelantus/mobileliblelantus.framework; sourceTree = ""; }; B98151832A674143009D013C /* libsqlite3.0.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.0.tbd; path = usr/lib/libsqlite3.0.tbd; sourceTree = SDKROOT; }; BF5E76865ACB46314AC27D8F /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + CEA2021C2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = wownero_libwallet2_api_c.dylib; sourceTree = ""; }; + CEA2021F2BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = monero_libwallet2_api_c.dylib; sourceTree = ""; }; E6036BF01BF05EA773C76D22 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; F1FA2C4D2BA4B49F00BDA1BB /* frostdart.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = frostdart.dylib; path = ../crypto_plugins/frostdart/macos/frostdart.dylib; sourceTree = ""; }; F1FA2C4F2BA4B4CA00BDA1BB /* frostdart.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = frostdart.dylib; path = ../crypto_plugins/frostdart/macos/frostdart.dylib; sourceTree = ""; }; @@ -147,6 +162,8 @@ 33CC10E42044A3C60003C045 = { isa = PBXGroup; children = ( + CEA2021F2BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib */, + CEA2021C2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib */, F1FA2C4F2BA4B4CA00BDA1BB /* frostdart.dylib */, 33FAB671232836740065AC1E /* Runner */, 33CEB47122A05771004F2AC0 /* Flutter */, @@ -259,6 +276,7 @@ 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, 529691D83C3BADE14E2EAC03 /* [CP] Embed Pods Frameworks */, + CEA202192BDD4C3500FE1D27 /* CopyFiles */, ); buildRules = ( ); diff --git a/macos/monero_libwallet2_api_c.dylib b/macos/monero_libwallet2_api_c.dylib new file mode 120000 index 000000000..da01b591e --- /dev/null +++ b/macos/monero_libwallet2_api_c.dylib @@ -0,0 +1 @@ +../crypto_plugins/flutter_libmonero/scripts/monero_c/release/monero/host-apple-darwin_libwallet2_api_c.dylib \ No newline at end of file diff --git a/macos/wownero_libwallet2_api_c.dylib b/macos/wownero_libwallet2_api_c.dylib new file mode 120000 index 000000000..f0a776dc1 --- /dev/null +++ b/macos/wownero_libwallet2_api_c.dylib @@ -0,0 +1 @@ +../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/host-apple-darwin_libwallet2_api_c.dylib \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 0845fd66c..e6c510034 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1197,8 +1197,8 @@ packages: dependency: transitive description: path: "." - ref: "2e1d13765c1403a933c77972511a661f26d4af2e" - resolved-ref: "2e1d13765c1403a933c77972511a661f26d4af2e" + ref: "7ba955fd9d975c7228ee43a744294399b48f9993" + resolved-ref: "7ba955fd9d975c7228ee43a744294399b48f9993" url: "https://git.mrcyjanek.net/mrcyjanek/monero.dart" source: git version: "0.0.0" From 09cbcc7b661393f27076bea209eacdcb8b8a0ed2 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Sun, 28 Apr 2024 23:11:10 -0500 Subject: [PATCH 011/318] add 16 word polyseeds as an option for monero --- lib/utilities/constants.dart | 2 +- lib/wallets/wallet/impl/monero_wallet.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/utilities/constants.dart b/lib/utilities/constants.dart index f60a0fe1e..77c034be1 100644 --- a/lib/utilities/constants.dart +++ b/lib/utilities/constants.dart @@ -197,7 +197,7 @@ abstract class Constants { values.addAll([24, 12]); case Coin.monero: - values.addAll([25]); + values.addAll([16, 25]); break; case Coin.wownero: values.addAll([14, 25]); diff --git a/lib/wallets/wallet/impl/monero_wallet.dart b/lib/wallets/wallet/impl/monero_wallet.dart index 5f681c774..92da26d0d 100644 --- a/lib/wallets/wallet/impl/monero_wallet.dart +++ b/lib/wallets/wallet/impl/monero_wallet.dart @@ -392,7 +392,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { final mnemonic = await getMnemonic(); final seedLength = mnemonic.trim().split(" ").length; - if (seedLength != 25) { + if (seedLength != 25 && seedLength != 16) { throw Exception("Invalid monero mnemonic length found: $seedLength"); } From 7929d49e27d24eb294076c2118b9b83c6278621d Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Tue, 30 Apr 2024 09:55:24 +0200 Subject: [PATCH 012/318] polyseed support --- .../restore_options_view.dart | 28 ++++++++++++++----- lib/utilities/constants.dart | 2 +- lib/wallets/wallet/impl/monero_wallet.dart | 3 +- lib/wallets/wallet/impl/wownero_wallet.dart | 4 ++- 4 files changed, 27 insertions(+), 10 deletions(-) diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart index 44ac51aac..8b28a0466 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart @@ -311,7 +311,9 @@ class _RestoreOptionsViewState extends ConsumerState { SizedBox( height: isDesktop ? 40 : 24, ), - if (coin == Coin.monero || + if ((coin == Coin.monero && + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin == Coin.epicCash || (coin == Coin.wownero && ref.watch(mnemonicWordCountStateProvider.state).state == @@ -327,7 +329,9 @@ class _RestoreOptionsViewState extends ConsumerState { : STextStyles.smallMed12(context), textAlign: TextAlign.left, ), - if (coin == Coin.monero || + if ((coin == Coin.monero && + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin == Coin.epicCash || (coin == Coin.wownero && ref.watch(mnemonicWordCountStateProvider.state).state == @@ -335,7 +339,9 @@ class _RestoreOptionsViewState extends ConsumerState { SizedBox( height: isDesktop ? 16 : 8, ), - if (coin == Coin.monero || + if ((coin == Coin.monero && + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin == Coin.epicCash || (coin == Coin.wownero && ref.watch(mnemonicWordCountStateProvider.state).state == @@ -345,7 +351,9 @@ class _RestoreOptionsViewState extends ConsumerState { onTap: chooseDate, controller: _dateController, ), - if (coin == Coin.monero || + if ((coin == Coin.monero && + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin == Coin.epicCash || (coin == Coin.wownero && ref.watch(mnemonicWordCountStateProvider.state).state == @@ -356,7 +364,9 @@ class _RestoreOptionsViewState extends ConsumerState { onTap: chooseDesktopDate, controller: _dateController, ), - if (coin == Coin.monero || + if ((coin == Coin.monero && + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin == Coin.epicCash || (coin == Coin.wownero && ref.watch(mnemonicWordCountStateProvider.state).state == @@ -364,7 +374,9 @@ class _RestoreOptionsViewState extends ConsumerState { const SizedBox( height: 8, ), - if (coin == Coin.monero || + if ((coin == Coin.monero && + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin == Coin.epicCash || (coin == Coin.wownero && ref.watch(mnemonicWordCountStateProvider.state).state == @@ -385,7 +397,9 @@ class _RestoreOptionsViewState extends ConsumerState { ), ), ), - if (coin == Coin.monero || + if ((coin == Coin.monero && + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin == Coin.epicCash || (coin == Coin.wownero && ref.watch(mnemonicWordCountStateProvider.state).state == diff --git a/lib/utilities/constants.dart b/lib/utilities/constants.dart index db0543044..e0fd5e3df 100644 --- a/lib/utilities/constants.dart +++ b/lib/utilities/constants.dart @@ -184,7 +184,7 @@ abstract class Constants { values.addAll([24, 12]); case Coin.monero: - values.addAll([25]); + values.addAll([16, 25]); break; case Coin.wownero: values.addAll([14, 25]); diff --git a/lib/wallets/wallet/impl/monero_wallet.dart b/lib/wallets/wallet/impl/monero_wallet.dart index 5f681c774..9ed4b0da7 100644 --- a/lib/wallets/wallet/impl/monero_wallet.dart +++ b/lib/wallets/wallet/impl/monero_wallet.dart @@ -159,6 +159,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { type: WalletType.monero, trusted: node.trusted ?? false, ), + socksProxyAddress: null, ); } @@ -392,7 +393,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { final mnemonic = await getMnemonic(); final seedLength = mnemonic.trim().split(" ").length; - if (seedLength != 25) { + if (seedLength != 25 && seedLength != 16) { throw Exception("Invalid monero mnemonic length found: $seedLength"); } diff --git a/lib/wallets/wallet/impl/wownero_wallet.dart b/lib/wallets/wallet/impl/wownero_wallet.dart index 514f9e244..46ad5726a 100644 --- a/lib/wallets/wallet/impl/wownero_wallet.dart +++ b/lib/wallets/wallet/impl/wownero_wallet.dart @@ -149,6 +149,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { type: WalletType.wownero, trusted: node.trusted ?? false, ), + socksProxyAddress: null, ); } @@ -331,7 +332,8 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { // days: // 2))); // subtract a couple days to ensure we have a buffer for SWB // TODO(mrcyjanek): implement - final bufferedCreateHeight = 1; //getSeedHeightSync(wallet!.seed.trim()); + final bufferedCreateHeight = + 1; //getSeedHeightSync(wallet!.seed.trim()); await info.updateRestoreHeight( newRestoreHeight: bufferedCreateHeight, From 90fca36b779c56d56cf9cb28050d07bb3d50bcb9 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Tue, 30 Apr 2024 16:12:46 +0200 Subject: [PATCH 013/318] tor proxy support --- lib/wallets/wallet/impl/monero_wallet.dart | 9 ++++++++- lib/wallets/wallet/impl/wownero_wallet.dart | 12 +++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/wallets/wallet/impl/monero_wallet.dart b/lib/wallets/wallet/impl/monero_wallet.dart index 9ed4b0da7..ce81d1552 100644 --- a/lib/wallets/wallet/impl/monero_wallet.dart +++ b/lib/wallets/wallet/impl/monero_wallet.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:io'; import 'dart:math'; import 'package:cw_core/monero_transaction_priority.dart'; @@ -21,6 +22,7 @@ import 'package:isar/isar.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; +import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; @@ -153,13 +155,18 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { final node = getCurrentNode(); final host = Uri.parse(node.host).host; + ({InternetAddress host, int port})? proxy; + if (prefs.useTor) { + proxy = TorService.sharedInstance.getProxyInfo(); + } await CwBasedInterface.cwWalletBase?.connectToNode( node: Node( uri: "$host:${node.port}", type: WalletType.monero, trusted: node.trusted ?? false, ), - socksProxyAddress: null, + socksProxyAddress: + proxy == null ? null : "${proxy.host.address}:${proxy.port}", ); } diff --git a/lib/wallets/wallet/impl/wownero_wallet.dart b/lib/wallets/wallet/impl/wownero_wallet.dart index 46ad5726a..5c9e481a2 100644 --- a/lib/wallets/wallet/impl/wownero_wallet.dart +++ b/lib/wallets/wallet/impl/wownero_wallet.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:io'; import 'dart:math'; import 'package:cw_core/monero_transaction_priority.dart'; @@ -11,7 +12,6 @@ import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cw_monero/api/exceptions/creation_transaction_exception.dart'; -import 'package:cw_wownero/api/wallet.dart'; import 'package:cw_wownero/pending_wownero_transaction.dart'; import 'package:cw_wownero/wownero_wallet.dart'; import 'package:decimal/decimal.dart'; @@ -23,6 +23,7 @@ import 'package:isar/isar.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; +import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; @@ -143,13 +144,18 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { final node = getCurrentNode(); final host = Uri.parse(node.host).host; + ({InternetAddress host, int port})? proxy; + if (prefs.useTor) { + proxy = TorService.sharedInstance.getProxyInfo(); + } await CwBasedInterface.cwWalletBase?.connectToNode( node: Node( uri: "$host:${node.port}", type: WalletType.wownero, trusted: node.trusted ?? false, ), - socksProxyAddress: null, + socksProxyAddress: + proxy == null ? null : "${proxy.host.address}:${proxy.port}", ); } @@ -332,7 +338,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { // days: // 2))); // subtract a couple days to ensure we have a buffer for SWB // TODO(mrcyjanek): implement - final bufferedCreateHeight = + const bufferedCreateHeight = 1; //getSeedHeightSync(wallet!.seed.trim()); await info.updateRestoreHeight( From 491bc2475be902ed6eba8e8926f679a37876f702 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Tue, 30 Apr 2024 17:24:24 +0200 Subject: [PATCH 014/318] initial windows build support --- scripts/windows/build_all.sh | 6 +++--- scripts/windows/deps.sh | 4 ++-- windows/flutter/CMakeLists.txt | 7 ++++++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/scripts/windows/build_all.sh b/scripts/windows/build_all.sh index ee3c1b558..06c80bd54 100755 --- a/scripts/windows/build_all.sh +++ b/scripts/windows/build_all.sh @@ -7,9 +7,9 @@ source ../rust_version.sh set_rust_to_1671 mkdir -p build -(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./build_all.sh) & +(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./build_all.sh) wait echo "Done building" diff --git a/scripts/windows/deps.sh b/scripts/windows/deps.sh index 0f6642068..802ca8f8a 100644 --- a/scripts/windows/deps.sh +++ b/scripts/windows/deps.sh @@ -1,7 +1,7 @@ #!/bin/bash -(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./deps.sh ) & -(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./mxedeps.sh ) & +(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./deps.sh ) +(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./mxedeps.sh ) # (cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./monerodeps.sh && ./mxedeps.sh) & wait diff --git a/windows/flutter/CMakeLists.txt b/windows/flutter/CMakeLists.txt index 930d2071a..903f4899d 100644 --- a/windows/flutter/CMakeLists.txt +++ b/windows/flutter/CMakeLists.txt @@ -10,6 +10,11 @@ include(${EPHEMERAL_DIR}/generated_config.cmake) # https://github.com/flutter/flutter/issues/57146. set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + # === Flutter Library === set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") @@ -92,7 +97,7 @@ add_custom_command( COMMAND ${CMAKE_COMMAND} -E env ${FLUTTER_TOOL_ENVIRONMENT} "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" - windows-x64 $ + ${FLUTTER_TARGET_PLATFORM} $ VERBATIM ) add_custom_target(flutter_assemble DEPENDS From 76f0d20d2697bfe502c2b75be5588d867bc22026 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 30 Apr 2024 10:36:26 -0500 Subject: [PATCH 015/318] update flutter_libmonero to latest monerodart --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index b25aa4845..e2168de1d 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit b25aa48451aeb6f2ea4e9b3831789f6bdbfb90e1 +Subproject commit e2168de1d8f2cc3ab91dd031aa8f1580a1920358 From 25688a696e1d2c11f78cb52cba44c67eb65a6943 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 30 Apr 2024 11:18:08 -0500 Subject: [PATCH 016/318] pass nettype in flutter_libmonero and update its pubspec.lock --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index e2168de1d..4be1ce1a4 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit e2168de1d8f2cc3ab91dd031aa8f1580a1920358 +Subproject commit 4be1ce1a404b8488f03da77ae8d826e39d0cb846 From ef7afcb63402173a50e24ac377f07fafca7b5ed4 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 30 Apr 2024 13:14:03 -0500 Subject: [PATCH 017/318] update default monero seed length for ui display purposes --- lib/utilities/constants.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/utilities/constants.dart b/lib/utilities/constants.dart index 77c034be1..8ea74f707 100644 --- a/lib/utilities/constants.dart +++ b/lib/utilities/constants.dart @@ -297,7 +297,7 @@ abstract class Constants { return 24; case Coin.monero: - return 25; + return 16; case Coin.bitcoinFrost: case Coin.bitcoinFrostTestNet: From 8ea347cacf50f4750e695c1ef4d4cec2912fcb4e Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 30 Apr 2024 14:44:00 -0500 Subject: [PATCH 018/318] initial flutter_libmonero windows support --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index 4be1ce1a4..216c1a3ea 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit 4be1ce1a404b8488f03da77ae8d826e39d0cb846 +Subproject commit 216c1a3ea1be8c97bd9148c5e47ef87db52b8515 From ed840ac2357b304770ed44ee19da428b5846fb9e Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Wed, 1 May 2024 16:42:54 +0200 Subject: [PATCH 019/318] windows support --- lib/main.dart | 8 ++----- .../add_wallet_view/add_wallet_view.dart | 6 ------ .../settings_menu/nodes_settings.dart | 6 ------ pubspec.lock | 4 ++-- windows/CMakeLists.txt | 21 +++++++++++++++++++ 5 files changed, 25 insertions(+), 20 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 54ccf3866..1d6a7128b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -212,12 +212,8 @@ void main(List args) async { } } - if (!Platform.isWindows) { - monero.onStartup(); - } - if (!Platform.isLinux && !Platform.isWindows) { - wownero.onStartup(); - } + monero.onStartup(); + wownero.onStartup(); // SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, // overlays: [SystemUiOverlay.bottom]); diff --git a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart index 54b94efb3..88bf55833 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart @@ -127,12 +127,6 @@ class _AddWalletViewState extends ConsumerState { _searchFieldController = TextEditingController(); _searchFocusNode = FocusNode(); // _coinsTestnet.remove(Coin.firoTestNet); - if (Platform.isWindows) { - _coins.remove(Coin.monero); - _coins.remove(Coin.wownero); - } else if (Platform.isLinux) { - // _coins.remove(Coin.wownero); - } coinEntities.addAll(_coins.map((e) => CoinEntity(e))); diff --git a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart index 1edeac7a6..20e8a4696 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart @@ -65,12 +65,6 @@ class _NodesSettings extends ConsumerState { void initState() { _coins = _coins.toList(); _coins.remove(Coin.firoTestNet); - if (Platform.isWindows) { - _coins.remove(Coin.monero); - _coins.remove(Coin.wownero); - } else if (Platform.isLinux) { - // _coins.remove(Coin.wownero); - } searchNodeController = TextEditingController(); searchNodeFocusNode = FocusNode(); diff --git a/pubspec.lock b/pubspec.lock index 7d2bdde86..e52c01710 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1144,8 +1144,8 @@ packages: dependency: transitive description: path: "." - ref: "7ba955fd9d975c7228ee43a744294399b48f9993" - resolved-ref: "7ba955fd9d975c7228ee43a744294399b48f9993" + ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac" + resolved-ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac" url: "https://git.mrcyjanek.net/mrcyjanek/monero.dart" source: git version: "0.0.0" diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt index eddd46e4d..610881fcc 100644 --- a/windows/CMakeLists.txt +++ b/windows/CMakeLists.txt @@ -86,6 +86,27 @@ install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libepiccash install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_liblelantus/scripts/windows/build/libmobileliblelantus.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" COMPONENT Runtime) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/monero/x86_64-w64-mingw32_libwallet2_api_c.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "monero_libwallet2_api_c.dll" + COMPONENT Runtime) + +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-w64-mingw32_libwallet2_api_c.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "wownero_libwallet2_api_c.dll" + COMPONENT Runtime) + +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-w64-mingw32_libgcc_s_seh-1.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "libgcc_s_seh-1.dll" + COMPONENT Runtime) + +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-w64-mingw32_libpolyseed.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "libpolyseed.dll" + COMPONENT Runtime) + +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-w64-mingw32_libssp-0.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "libssp-0.dll" + COMPONENT Runtime) + +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-w64-mingw32_libstdc++-6.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "libstdc++-6.dll" + COMPONENT Runtime) + +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-w64-mingw32_libwinpthread-1.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "libwinpthread-1.dll" + COMPONENT Runtime) + if(PLUGIN_BUNDLED_LIBRARIES) install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" From 53bccd20d15e7677c5ca7776157d660363e7c443 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 1 May 2024 19:28:05 -0500 Subject: [PATCH 020/318] update flutter_libmonero ref --- crypto_plugins/flutter_libmonero | 2 +- pubspec.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index 216c1a3ea..a4a66396b 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit 216c1a3ea1be8c97bd9148c5e47ef87db52b8515 +Subproject commit a4a66396bbfab7ac61a04eab0c0858f6900c83c3 diff --git a/pubspec.lock b/pubspec.lock index 5fbea128b..e6c510034 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1197,8 +1197,8 @@ packages: dependency: transitive description: path: "." - ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac" - resolved-ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac" + ref: "7ba955fd9d975c7228ee43a744294399b48f9993" + resolved-ref: "7ba955fd9d975c7228ee43a744294399b48f9993" url: "https://git.mrcyjanek.net/mrcyjanek/monero.dart" source: git version: "0.0.0" From 395fb2410047db238d49f6cf7f5ac98ec363d85f Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 16:24:23 -0500 Subject: [PATCH 021/318] monerodart windows updates and submodule-pinning --- crypto_plugins/flutter_libmonero | 2 +- pubspec.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index a4a66396b..e06c5b92a 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit a4a66396bbfab7ac61a04eab0c0858f6900c83c3 +Subproject commit e06c5b92a2a98b78d5506e6472a0fac1fbba9a10 diff --git a/pubspec.lock b/pubspec.lock index e6c510034..5fbea128b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1197,8 +1197,8 @@ packages: dependency: transitive description: path: "." - ref: "7ba955fd9d975c7228ee43a744294399b48f9993" - resolved-ref: "7ba955fd9d975c7228ee43a744294399b48f9993" + ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac" + resolved-ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac" url: "https://git.mrcyjanek.net/mrcyjanek/monero.dart" source: git version: "0.0.0" From e94793cb4650f27c3e91e12db697c2c161504957 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 16:33:26 -0500 Subject: [PATCH 022/318] Update building.md Remove duplicate and join into one command --- docs/building.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/building.md b/docs/building.md index d4d3ad6f4..100367ce0 100644 --- a/docs/building.md +++ b/docs/building.md @@ -46,7 +46,7 @@ Install [Rust](https://www.rust-lang.org/tools/install) with command: ``` curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source ~/.bashrc -rustup install 1.67.1 +rustup install 1.67.1 1.72.0 1.73.0 rustup default 1.67.1 ``` From d5d5f1bcd2a035d562a94ee09b2115920e0a54dd Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 16:41:56 -0500 Subject: [PATCH 023/318] Remove newline in building.md --- docs/building.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/building.md b/docs/building.md index 100367ce0..48943eba3 100644 --- a/docs/building.md +++ b/docs/building.md @@ -70,7 +70,6 @@ After installing the prerequisites listed above, download the code and init the git clone https://github.com/cypherstack/stack_wallet.git cd stack_wallet git submodule update --init --recursive - ``` Remove pre-installed system libraries for the following packages built by cryptography plugins in the crypto_plugins folder: `boost iconv libjson-dev libsecret openssl sodium unbound zmq`. You can use From 9035e2311d327f09d86c9f41da6cde016062c6f1 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 17:06:43 -0500 Subject: [PATCH 024/318] Add g++ gcc gperf deps for monerodart See notes on https://github.com/cypherstack/stack_wallet/pull/818 --- docs/building.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/building.md b/docs/building.md index 48943eba3..af8c38c23 100644 --- a/docs/building.md +++ b/docs/building.md @@ -34,7 +34,7 @@ Make a Pixel 4 (API 30) x86_64 emulator with 2GB of storage space for emulation Install basic dependencies ``` -sudo apt-get install libssl-dev curl unzip automake build-essential file pkg-config git python libtool libtinfo5 cmake libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev llvm python3-distutils +sudo apt-get install libssl-dev curl unzip automake build-essential file pkg-config git python libtool libtinfo5 cmake libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev llvm python3-distutils g++ gcc gperf ``` The following *may* be needed for Android studio: From c4e1c3f23e3a00508ed06bb991b9b50aeb089b6e Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 17:14:19 -0500 Subject: [PATCH 025/318] Remove redundant build script calls --- scripts/android/build_all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/android/build_all.sh b/scripts/android/build_all.sh index 3bc005cf1..4fb525ab7 100755 --- a/scripts/android/build_all.sh +++ b/scripts/android/build_all.sh @@ -13,7 +13,7 @@ mkdir -p build PLUGINS_DIR=../../crypto_plugins (cd "${PLUGINS_DIR}"/flutter_liblelantus/scripts/android && ./build_all.sh ) -(cd "${PLUGINS_DIR}"/flutter_libepiccash/scripts/android && ./install_ndk.sh && ./build_openssl.sh && ./build_all.sh ) +(cd "${PLUGINS_DIR}"/flutter_libepiccash/scripts/android && ./build_all.sh ) (cd "${PLUGINS_DIR}"/flutter_libmonero/scripts/android/ && ./build_all.sh ) set_rust_to_1720 (cd "${PLUGINS_DIR}"/frostdart/scripts/android && ./build_all.sh ) From ea0d380bc2d12a6839ffc00ff699acd90beb2860 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 17:15:45 -0500 Subject: [PATCH 026/318] Delete .fvmrc Otherwise we'd have to update it. Only I use fvm on macos --- .fvmrc | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .fvmrc diff --git a/.fvmrc b/.fvmrc deleted file mode 100644 index 5fb0c142c..000000000 --- a/.fvmrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "flutter": "3.16.0" -} \ No newline at end of file From 89a687b9715a8a69590f01da76b83c2a8424c4ee Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 17:18:02 -0500 Subject: [PATCH 027/318] partial reversion of c78fba7b364bc69ecedc6c71405506f9c02fcc6b otherwise we will need to maintain it and I'm the only one using fvm on macos --- .vscode/settings.json | 1 - 1 file changed, 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a86b03d61..eba0d6cd7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,3 @@ { "dart.lineLength": 80, - "dart.flutterSdkPath": ".fvm/versions/3.16.0" } \ No newline at end of file From bcb39c39065d04c3907855e1139358732b3c184c Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 3 May 2024 15:42:21 -0600 Subject: [PATCH 028/318] no need for class wide htt client property, and close the client before assigning a new one --- lib/wallets/wallet/impl/stellar_wallet.dart | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/wallets/wallet/impl/stellar_wallet.dart b/lib/wallets/wallet/impl/stellar_wallet.dart index edea60fe5..a2ad93083 100644 --- a/lib/wallets/wallet/impl/stellar_wallet.dart +++ b/lib/wallets/wallet/impl/stellar_wallet.dart @@ -46,7 +46,6 @@ class StellarWallet extends Bip39Wallet { // ============== Private ==================================================== stellar.StellarSDK? _stellarSdk; - HttpClient? _httpClient; Future _getBaseFee() async { final fees = await stellarSdk.feeStats.execute(); @@ -55,6 +54,7 @@ class StellarWallet extends Bip39Wallet { void _updateSdk() { final currentNode = getCurrentNode(); + HttpClient? _httpClient; // TODO [prio=med]: refactor out and call before requests in case Tor is enabled/disabled, listen to prefs change, or similar. if (prefs.useTor) { @@ -63,13 +63,21 @@ class StellarWallet extends Bip39Wallet { _httpClient = HttpClient(); SocksTCPClient.assignToHttpClient( - _httpClient!, [ProxySettings(proxyInfo.host, proxyInfo.port)]); - } else { - _httpClient = null; + _httpClient, + [ + ProxySettings( + proxyInfo.host, + proxyInfo.port, + ), + ], + ); } - _stellarSdk = stellar.StellarSDK("${currentNode.host}:${currentNode.port}", - httpClient: _httpClient); + _stellarSdk?.httpClient.close(); + _stellarSdk = stellar.StellarSDK( + "${currentNode.host}:${currentNode.port}", + httpClient: _httpClient, + ); } Future _accountExists(String accountId) async { From 8c082f3ed43d51cd66319fb3e6bb42d7a7044c1e Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 3 May 2024 18:04:57 -0600 Subject: [PATCH 029/318] untested stellar tor listener --- lib/wallets/wallet/impl/stellar_wallet.dart | 118 +++++++++++++++----- 1 file changed, 90 insertions(+), 28 deletions(-) diff --git a/lib/wallets/wallet/impl/stellar_wallet.dart b/lib/wallets/wallet/impl/stellar_wallet.dart index a2ad93083..657fd7676 100644 --- a/lib/wallets/wallet/impl/stellar_wallet.dart +++ b/lib/wallets/wallet/impl/stellar_wallet.dart @@ -3,6 +3,7 @@ import 'dart:convert'; import 'dart:io'; import 'package:isar/isar.dart'; +import 'package:mutex/mutex.dart'; import 'package:socks5_proxy/socks.dart'; import 'package:stackwallet/models/balance.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; @@ -11,6 +12,9 @@ import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart' import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; import 'package:stackwallet/models/paymint/fee_object_model.dart'; +import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import 'package:stackwallet/services/event_bus/events/global/tor_status_changed_event.dart'; +import 'package:stackwallet/services/event_bus/global_event_bus.dart'; import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; @@ -23,11 +27,47 @@ import 'package:stackwallet/wallets/wallet/intermediate/bip39_wallet.dart'; import 'package:stellar_flutter_sdk/stellar_flutter_sdk.dart' as stellar; class StellarWallet extends Bip39Wallet { - StellarWallet(CryptoCurrencyNetwork network) : super(Stellar(network)); + StellarWallet(CryptoCurrencyNetwork network) : super(Stellar(network)) { + final bus = GlobalEventBus.instance; - stellar.StellarSDK get stellarSdk { - if (_stellarSdk == null) { - _updateSdk(); + // Listen for tor status changes. + _torStatusListener = bus.on().listen( + (event) async { + switch (event.newStatus) { + case TorConnectionStatus.connecting: + if (!_torConnectingLock.isLocked) { + await _torConnectingLock.acquire(); + } + _requireMutex = true; + break; + + case TorConnectionStatus.connected: + case TorConnectionStatus.disconnected: + if (_torConnectingLock.isLocked) { + _torConnectingLock.release(); + } + _requireMutex = false; + break; + } + }, + ); + + // Listen for tor preference changes. + _torPreferenceListener = bus.on().listen( + (event) async { + _stellarSdk?.httpClient.close(); + _stellarSdk = null; + }, + ); + } + + Future get stellarSdk async { + if (_requireMutex) { + await _torConnectingLock.protect(() async { + _stellarSdk ??= _getFreshSdk(); + }); + } else { + _stellarSdk ??= _getFreshSdk(); } return _stellarSdk!; } @@ -44,19 +84,32 @@ class StellarWallet extends Bip39Wallet { } // ============== Private ==================================================== + // add finalizer to cancel stream subscription when all references to an + // instance of this becomes inaccessible + final _ = Finalizer( + (p0) { + p0._torPreferenceListener?.cancel(); + p0._torStatusListener?.cancel(); + }, + ); + + StreamSubscription? _torStatusListener; + StreamSubscription? _torPreferenceListener; + + final Mutex _torConnectingLock = Mutex(); + bool _requireMutex = false; stellar.StellarSDK? _stellarSdk; Future _getBaseFee() async { - final fees = await stellarSdk.feeStats.execute(); + final fees = await (await stellarSdk).feeStats.execute(); return int.parse(fees.lastLedgerBaseFee); } - void _updateSdk() { + stellar.StellarSDK _getFreshSdk() { final currentNode = getCurrentNode(); HttpClient? _httpClient; - // TODO [prio=med]: refactor out and call before requests in case Tor is enabled/disabled, listen to prefs change, or similar. if (prefs.useTor) { final ({InternetAddress host, int port}) proxyInfo = TorService.sharedInstance.getProxyInfo(); @@ -73,8 +126,7 @@ class StellarWallet extends Bip39Wallet { ); } - _stellarSdk?.httpClient.close(); - _stellarSdk = stellar.StellarSDK( + return stellar.StellarSDK( "${currentNode.host}:${currentNode.port}", httpClient: _httpClient, ); @@ -84,7 +136,8 @@ class StellarWallet extends Bip39Wallet { bool exists = false; try { - final receiverAccount = await stellarSdk.accounts.account(accountId); + final receiverAccount = + await (await stellarSdk).accounts.account(accountId); if (receiverAccount.accountId != "") { exists = true; } @@ -191,7 +244,8 @@ class StellarWallet extends Bip39Wallet { @override Future confirmSend({required TxData txData}) async { final senderKeyPair = await _getSenderKeyPair(index: 0); - final sender = await stellarSdk.accounts.account(senderKeyPair.accountId); + final sender = + await (await stellarSdk).accounts.account(senderKeyPair.accountId); final address = txData.recipients!.first.address; final amountToSend = txData.recipients!.first.amount; @@ -229,7 +283,7 @@ class StellarWallet extends Bip39Wallet { transaction.sign(senderKeyPair, stellarNetwork); try { - final response = await stellarSdk.submitTransaction(transaction); + final response = await (await stellarSdk).submitTransaction(transaction); if (!response.success) { throw Exception("${response.extras?.resultCodes?.transactionResultCode}" " ::: ${response.extras?.resultCodes?.operationsResultCodes}"); @@ -256,7 +310,7 @@ class StellarWallet extends Bip39Wallet { @override Future get fees async { - int fee = await _getBaseFee(); + final int fee = await _getBaseFee(); return FeeObject( numberOfBlocksFast: 1, numberOfBlocksAverage: 1, @@ -294,7 +348,8 @@ class StellarWallet extends Bip39Wallet { stellar.AccountResponse accountResponse; try { - accountResponse = await stellarSdk.accounts + accountResponse = await (await stellarSdk) + .accounts .account((await getCurrentReceivingAddress())!.value) .onError((error, stackTrace) => throw error!); } catch (e) { @@ -315,7 +370,7 @@ class StellarWallet extends Bip39Wallet { } } - for (stellar.Balance balance in accountResponse.balances) { + for (final stellar.Balance balance in accountResponse.balances) { switch (balance.assetType) { case stellar.Asset.TYPE_NATIVE: final swBalance = Balance( @@ -352,7 +407,8 @@ class StellarWallet extends Bip39Wallet { @override Future updateChainHeight() async { try { - final height = await stellarSdk.ledgers + final height = await (await stellarSdk) + .ledgers .order(stellar.RequestBuilderOrder.DESC) .limit(1) .execute() @@ -370,7 +426,8 @@ class StellarWallet extends Bip39Wallet { @override Future updateNode() async { - _updateSdk(); + _stellarSdk?.httpClient.close(); + _stellarSdk = _getFreshSdk(); } @override @@ -378,10 +435,11 @@ class StellarWallet extends Bip39Wallet { try { final myAddress = (await getCurrentReceivingAddress())!; - List transactionList = []; + final List transactionList = []; stellar.Page payments; try { - payments = await stellarSdk.payments + payments = await (await stellarSdk) + .payments .forAccount(myAddress.value) .order(stellar.RequestBuilderOrder.DESC) .execute(); @@ -401,7 +459,7 @@ class StellarWallet extends Bip39Wallet { rethrow; } } - for (stellar.OperationResponse response in payments.records!) { + for (final stellar.OperationResponse response in payments.records!) { // PaymentOperationResponse por; if (response is stellar.PaymentOperationResponse) { final por = response; @@ -431,7 +489,8 @@ class StellarWallet extends Bip39Wallet { final List outputs = []; final List inputs = []; - OutputV2 output = OutputV2.isarCantDoRequiredInDefaultConstructor( + final OutputV2 output = + OutputV2.isarCantDoRequiredInDefaultConstructor( scriptPubKeyHex: "00", valueStringSats: amount.raw.toString(), addresses: [ @@ -439,7 +498,7 @@ class StellarWallet extends Bip39Wallet { ], walletOwns: addressTo == myAddress.value, ); - InputV2 input = InputV2.isarCantDoRequiredInDefaultConstructor( + final InputV2 input = InputV2.isarCantDoRequiredInDefaultConstructor( scriptSigHex: null, scriptSigAsm: null, sequence: null, @@ -459,8 +518,9 @@ class StellarWallet extends Bip39Wallet { int height = 0; //Query the transaction linked to the payment, // por.transaction returns a null sometimes - stellar.TransactionResponse tx = - await stellarSdk.transactions.transaction(por.transactionHash!); + final stellar.TransactionResponse tx = await (await stellarSdk) + .transactions + .transaction(por.transactionHash!); if (tx.hash.isNotEmpty) { fee = tx.feeCharged!; @@ -511,7 +571,8 @@ class StellarWallet extends Bip39Wallet { final List outputs = []; final List inputs = []; - OutputV2 output = OutputV2.isarCantDoRequiredInDefaultConstructor( + final OutputV2 output = + OutputV2.isarCantDoRequiredInDefaultConstructor( scriptPubKeyHex: "00", valueStringSats: amount.raw.toString(), addresses: [ @@ -520,7 +581,7 @@ class StellarWallet extends Bip39Wallet { ], walletOwns: caor.sourceAccount! == myAddress.value, ); - InputV2 input = InputV2.isarCantDoRequiredInDefaultConstructor( + final InputV2 input = InputV2.isarCantDoRequiredInDefaultConstructor( scriptSigHex: null, scriptSigAsm: null, sequence: null, @@ -541,8 +602,9 @@ class StellarWallet extends Bip39Wallet { int fee = 0; int height = 0; - final tx = - await stellarSdk.transactions.transaction(caor.transactionHash!); + final tx = await (await stellarSdk) + .transactions + .transaction(caor.transactionHash!); if (tx.hash.isNotEmpty) { fee = tx.feeCharged!; height = tx.ledger; From 6b6e2097127f725445ef011eb784411f2de6ad99 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 19:24:38 -0500 Subject: [PATCH 030/318] revert to official package with tor support merged --- pubspec.yaml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index fb5a9f31c..86531ddad 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -156,10 +156,7 @@ dependencies: desktop_drop: ^0.4.1 nanodart: ^2.0.0 basic_utils: ^5.5.4 - stellar_flutter_sdk: # ^1.5.3 - git: # TODO [prio=low]: Revert to official package once Tor support is merged upstream. - url: https://github.com/cypherstack/stellar_flutter_sdk.git - ref: eca1d730e952cf6a6d64502f977cfc03876b75d4 # tor-backport branch (based on 1.5.3). + stellar_flutter_sdk: ^1.7.8 bip340: ^0.2.0 # tezart: ^2.0.5 tezart: From 0221841ee3d8769ef83a1462346d293cb6247efa Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 19:56:27 -0500 Subject: [PATCH 031/318] listen to Tor status changes and update node accordingly --- lib/wallets/wallet/impl/monero_wallet.dart | 79 ++++++++++++++++++--- lib/wallets/wallet/impl/wownero_wallet.dart | 79 ++++++++++++++++++--- 2 files changed, 138 insertions(+), 20 deletions(-) diff --git a/lib/wallets/wallet/impl/monero_wallet.dart b/lib/wallets/wallet/impl/monero_wallet.dart index ce81d1552..9b83b150b 100644 --- a/lib/wallets/wallet/impl/monero_wallet.dart +++ b/lib/wallets/wallet/impl/monero_wallet.dart @@ -19,9 +19,13 @@ import 'package:flutter_libmonero/core/wallet_creation_service.dart'; import 'package:flutter_libmonero/monero/monero.dart' as xmr_dart; import 'package:flutter_libmonero/view_model/send/output.dart' as monero_output; import 'package:isar/isar.dart'; +import 'package:mutex/mutex.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; +import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import 'package:stackwallet/services/event_bus/events/global/tor_status_changed_event.dart'; +import 'package:stackwallet/services/event_bus/global_event_bus.dart'; import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; @@ -35,7 +39,38 @@ import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_inte import 'package:tuple/tuple.dart'; class MoneroWallet extends CryptonoteWallet with CwBasedInterface { - MoneroWallet(CryptoCurrencyNetwork network) : super(Monero(network)); + MoneroWallet(CryptoCurrencyNetwork network) : super(Monero(network)) { + final bus = GlobalEventBus.instance; + + // Listen for tor status changes. + _torStatusListener = bus.on().listen( + (event) async { + switch (event.newStatus) { + case TorConnectionStatus.connecting: + if (!_torConnectingLock.isLocked) { + await _torConnectingLock.acquire(); + } + _requireMutex = true; + break; + + case TorConnectionStatus.connected: + case TorConnectionStatus.disconnected: + if (_torConnectingLock.isLocked) { + _torConnectingLock.release(); + } + _requireMutex = false; + break; + } + }, + ); + + // Listen for tor preference changes. + _torPreferenceListener = bus.on().listen( + (event) async { + await updateNode(); + }, + ); + } @override Address addressFor({required int index, int account = 0}) { @@ -159,15 +194,31 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { if (prefs.useTor) { proxy = TorService.sharedInstance.getProxyInfo(); } - await CwBasedInterface.cwWalletBase?.connectToNode( - node: Node( - uri: "$host:${node.port}", - type: WalletType.monero, - trusted: node.trusted ?? false, - ), - socksProxyAddress: - proxy == null ? null : "${proxy.host.address}:${proxy.port}", - ); + if (_requireMutex) { + await _torConnectingLock.protect(() async { + await CwBasedInterface.cwWalletBase?.connectToNode( + node: Node( + uri: "$host:${node.port}", + type: WalletType.monero, + trusted: node.trusted ?? false, + ), + socksProxyAddress: + proxy == null ? null : "${proxy.host.address}:${proxy.port}", + ); + }); + } else { + await CwBasedInterface.cwWalletBase?.connectToNode( + node: Node( + uri: "$host:${node.port}", + type: WalletType.monero, + trusted: node.trusted ?? false, + ), + socksProxyAddress: + proxy == null ? null : "${proxy.host.address}:${proxy.port}", + ); + } + + return; } @override @@ -655,4 +706,12 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { return info.cachedBalance.total; } } + + // ============== Private ==================================================== + + StreamSubscription? _torStatusListener; + StreamSubscription? _torPreferenceListener; + + final Mutex _torConnectingLock = Mutex(); + bool _requireMutex = false; } diff --git a/lib/wallets/wallet/impl/wownero_wallet.dart b/lib/wallets/wallet/impl/wownero_wallet.dart index 5c9e481a2..51c9c159c 100644 --- a/lib/wallets/wallet/impl/wownero_wallet.dart +++ b/lib/wallets/wallet/impl/wownero_wallet.dart @@ -20,9 +20,13 @@ import 'package:flutter_libmonero/view_model/send/output.dart' as wownero_output; import 'package:flutter_libmonero/wownero/wownero.dart' as wow_dart; import 'package:isar/isar.dart'; +import 'package:mutex/mutex.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; +import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import 'package:stackwallet/services/event_bus/events/global/tor_status_changed_event.dart'; +import 'package:stackwallet/services/event_bus/global_event_bus.dart'; import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; @@ -36,7 +40,38 @@ import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_inte import 'package:tuple/tuple.dart'; class WowneroWallet extends CryptonoteWallet with CwBasedInterface { - WowneroWallet(CryptoCurrencyNetwork network) : super(Wownero(network)); + WowneroWallet(CryptoCurrencyNetwork network) : super(Wownero(network)) { + final bus = GlobalEventBus.instance; + + // Listen for tor status changes. + _torStatusListener = bus.on().listen( + (event) async { + switch (event.newStatus) { + case TorConnectionStatus.connecting: + if (!_torConnectingLock.isLocked) { + await _torConnectingLock.acquire(); + } + _requireMutex = true; + break; + + case TorConnectionStatus.connected: + case TorConnectionStatus.disconnected: + if (_torConnectingLock.isLocked) { + _torConnectingLock.release(); + } + _requireMutex = false; + break; + } + }, + ); + + // Listen for tor preference changes. + _torPreferenceListener = bus.on().listen( + (event) async { + await updateNode(); + }, + ); + } @override Address addressFor({required int index, int account = 0}) { @@ -148,15 +183,31 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { if (prefs.useTor) { proxy = TorService.sharedInstance.getProxyInfo(); } - await CwBasedInterface.cwWalletBase?.connectToNode( - node: Node( - uri: "$host:${node.port}", - type: WalletType.wownero, - trusted: node.trusted ?? false, - ), - socksProxyAddress: - proxy == null ? null : "${proxy.host.address}:${proxy.port}", - ); + if (_requireMutex) { + await _torConnectingLock.protect(() async { + await CwBasedInterface.cwWalletBase?.connectToNode( + node: Node( + uri: "$host:${node.port}", + type: WalletType.wownero, + trusted: node.trusted ?? false, + ), + socksProxyAddress: + proxy == null ? null : "${proxy.host.address}:${proxy.port}", + ); + }); + } else { + await CwBasedInterface.cwWalletBase?.connectToNode( + node: Node( + uri: "$host:${node.port}", + type: WalletType.wownero, + trusted: node.trusted ?? false, + ), + socksProxyAddress: + proxy == null ? null : "${proxy.host.address}:${proxy.port}", + ); + } + + return; } @override @@ -703,4 +754,12 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { return info.cachedBalance.total; } } + + // ============== Private ==================================================== + + StreamSubscription? _torStatusListener; + StreamSubscription? _torPreferenceListener; + + final Mutex _torConnectingLock = Mutex(); + bool _requireMutex = false; } From 6883f3d0931e5019d999c76f7c112c07d6ccab17 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 19:56:39 -0500 Subject: [PATCH 032/318] warnings and formatting --- lib/wallets/wallet/impl/monero_wallet.dart | 16 ++++++++-------- lib/wallets/wallet/impl/wownero_wallet.dart | 18 +++++++++--------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/wallets/wallet/impl/monero_wallet.dart b/lib/wallets/wallet/impl/monero_wallet.dart index 9b83b150b..3f02954d8 100644 --- a/lib/wallets/wallet/impl/monero_wallet.dart +++ b/lib/wallets/wallet/impl/monero_wallet.dart @@ -74,7 +74,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { @override Address addressFor({required int index, int account = 0}) { - String address = (CwBasedInterface.cwWalletBase as MoneroWalletBase) + final String address = (CwBasedInterface.cwWalletBase as MoneroWalletBase) .getTransactionAddress(account, index); final newReceivingAddress = Address( @@ -438,7 +438,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { // clear blockchain info await mainDB.deleteWalletBlockchainData(walletId); - var restoreHeight = + final restoreHeight = CwBasedInterface.cwWalletBase?.walletInfo.restoreHeight; highestPercentCached = 0; await CwBasedInterface.cwWalletBase?.rescan(height: restoreHeight ?? 0); @@ -467,7 +467,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { .createMoneroWalletService(DB.instance.moneroWalletInfoBox); WalletInfo walletInfo; WalletCredentials credentials; - String name = walletId; + final String name = walletId; final dirPath = await pathForWalletDir(name: name, type: WalletType.monero); final path = await pathForWallet(name: name, type: WalletType.monero); @@ -569,12 +569,12 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { isSendAll = true; } - List outputs = []; + final List outputs = []; for (final recipient in txData.recipients!) { final output = monero_output.Output(CwBasedInterface.cwWalletBase!); output.address = recipient.address; output.sendAll = isSendAll; - String amountToSend = recipient.amount.decimal.toString(); + final String amountToSend = recipient.amount.decimal.toString(); output.setCryptoAmount(amountToSend); outputs.add(output); } @@ -594,7 +594,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { level: LogLevel.Warning); } - PendingMoneroTransaction pendingMoneroTransaction = + final PendingMoneroTransaction pendingMoneroTransaction = await (awaitPendingTransaction!) as PendingMoneroTransaction; final realFee = Amount.fromDecimal( Decimal.parse(pendingMoneroTransaction.feeFormatted), @@ -676,7 +676,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { ?.entries; if (balanceEntries != null) { int bal = 0; - for (var element in balanceEntries) { + for (final element in balanceEntries) { bal = bal + element.value.fullBalance; } return Amount( @@ -689,7 +689,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { .transactionHistory! .transactions; int transactionBalance = 0; - for (var tx in transactions!.entries) { + for (final tx in transactions!.entries) { if (tx.value.direction == TransactionDirection.incoming) { transactionBalance += tx.value.amount!; } else { diff --git a/lib/wallets/wallet/impl/wownero_wallet.dart b/lib/wallets/wallet/impl/wownero_wallet.dart index 51c9c159c..b9ec28b8d 100644 --- a/lib/wallets/wallet/impl/wownero_wallet.dart +++ b/lib/wallets/wallet/impl/wownero_wallet.dart @@ -75,7 +75,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { @override Address addressFor({required int index, int account = 0}) { - String address = (CwBasedInterface.cwWalletBase as WowneroWalletBase) + final String address = (CwBasedInterface.cwWalletBase as WowneroWalletBase) .getTransactionAddress(account, index); final newReceivingAddress = Address( @@ -257,7 +257,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { final List> txnsData = []; if (transactions != null) { - for (var tx in transactions.entries) { + for (final tx in transactions.entries) { Address? address; TransactionType type; if (tx.value.direction == TransactionDirection.incoming) { @@ -479,7 +479,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { // clear blockchain info await mainDB.deleteWalletBlockchainData(walletId); - var restoreHeight = + final restoreHeight = CwBasedInterface.cwWalletBase?.walletInfo.restoreHeight; highestPercentCached = 0; await CwBasedInterface.cwWalletBase?.rescan(height: restoreHeight ?? 0); @@ -515,7 +515,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { .createWowneroWalletService(DB.instance.moneroWalletInfoBox); WalletInfo walletInfo; WalletCredentials credentials; - String name = walletId; + final String name = walletId; final dirPath = await pathForWalletDir(name: name, type: WalletType.wownero); final path = await pathForWallet(name: name, type: WalletType.wownero); @@ -617,13 +617,13 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { isSendAll = true; } - List outputs = []; + final List outputs = []; for (final recipient in txData.recipients!) { final output = wownero_output.Output(CwBasedInterface.cwWalletBase!); output.address = recipient.address; output.sendAll = isSendAll; - String amountToSend = recipient.amount.decimal.toString(); + final String amountToSend = recipient.amount.decimal.toString(); output.setCryptoAmount(amountToSend); outputs.add(output); } @@ -643,7 +643,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { level: LogLevel.Warning); } - PendingWowneroTransaction pendingWowneroTransaction = + final PendingWowneroTransaction pendingWowneroTransaction = await (awaitPendingTransaction!) as PendingWowneroTransaction; final realFee = Amount.fromDecimal( Decimal.parse(pendingWowneroTransaction.feeFormatted), @@ -726,7 +726,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { ?.entries; if (balanceEntries != null) { int bal = 0; - for (var element in balanceEntries) { + for (final element in balanceEntries) { bal = bal + element.value.fullBalance; } return Amount( @@ -737,7 +737,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { final transactions = CwBasedInterface.cwWalletBase!.transactionHistory!.transactions; int transactionBalance = 0; - for (var tx in transactions!.entries) { + for (final tx in transactions!.entries) { if (tx.value.direction == TransactionDirection.incoming) { transactionBalance += tx.value.amount!; } else { From e472f9d6a9e4b864d1560dcd6debd2354cc164aa Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 20:04:31 -0500 Subject: [PATCH 033/318] update tezart's dio dep --- pubspec.lock | 23 +++++++++++------------ pubspec.yaml | 2 +- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index e81aae914..4baa4c14c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -495,10 +495,10 @@ packages: dependency: transitive description: name: dio - sha256: "7d328c4d898a61efc3cd93655a0955858e29a0aa647f0f9e02d59b3bb275e2e8" + sha256: "11e40df547d418cc0c4900a9318b26304e665da6fa4755399a9ff9efd09034b5" url: "https://pub.dev" source: hosted - version: "4.0.6" + version: "5.4.3+1" dropdown_button2: dependency: "direct main" description: @@ -1414,10 +1414,10 @@ packages: dependency: transitive description: name: pretty_dio_logger - sha256: "948f7eeb36e7aa0760b51c1a8e3331d4b21e36fabd39efca81f585ed93893544" + sha256: "00b80053063935cf9a6190da344c5373b9d0e92da4c944c878ff2fbef0ef6dc2" url: "https://pub.dev" source: hosted - version: "1.2.0-beta-1" + version: "1.3.1" process: dependency: transitive description: @@ -1661,12 +1661,11 @@ packages: stellar_flutter_sdk: dependency: "direct main" description: - path: "." - ref: eca1d730e952cf6a6d64502f977cfc03876b75d4 - resolved-ref: eca1d730e952cf6a6d64502f977cfc03876b75d4 - url: "https://github.com/cypherstack/stellar_flutter_sdk.git" - source: git - version: "1.5.3" + name: stellar_flutter_sdk + sha256: "574e8f40a1a1a9b18a735272196c8d3c8168a669efc8460a4d5d6f45151e8dce" + url: "https://pub.dev" + source: hosted + version: "1.7.8" stream_channel: dependency: "direct main" description: @@ -1743,8 +1742,8 @@ packages: dependency: "direct main" description: path: "." - ref: "1fb2669e2b530367a449217e952f220d5e667043" - resolved-ref: "1fb2669e2b530367a449217e952f220d5e667043" + ref: f31f8f857665d85338824ae171aba4c629c3ba6f + resolved-ref: f31f8f857665d85338824ae171aba4c629c3ba6f url: "https://github.com/cypherstack/tezart.git" source: git version: "2.0.5" diff --git a/pubspec.yaml b/pubspec.yaml index 86531ddad..5985ffdf0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -162,7 +162,7 @@ dependencies: tezart: git: url: https://github.com/cypherstack/tezart.git - ref: 1fb2669e2b530367a449217e952f220d5e667043 + ref: f31f8f857665d85338824ae171aba4c629c3ba6f socks5_proxy: ^1.0.3+dev.3 convert: ^3.1.1 flutter_hooks: ^0.20.3 From 1e946a76b9de126faa6828e49cb39698ad086ef6 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 20:18:47 -0500 Subject: [PATCH 034/318] bump build number --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 5985ffdf0..6f613420c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,7 +11,7 @@ description: Stack Wallet # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 2.0.0+219 +version: 2.0.0+220 environment: sdk: ">=3.3.3 <4.0.0" From a3950c54781fb4b8956167ceb5cf504b3ff5bc4e Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 20:31:04 -0500 Subject: [PATCH 035/318] tezart dio fix --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 6f613420c..bfa794af0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -162,7 +162,7 @@ dependencies: tezart: git: url: https://github.com/cypherstack/tezart.git - ref: f31f8f857665d85338824ae171aba4c629c3ba6f + ref: 13fa937ea9a9fc34caf047e068df9535f65c27ad socks5_proxy: ^1.0.3+dev.3 convert: ^3.1.1 flutter_hooks: ^0.20.3 From 85fc443f2ce3d2bfe8887fcbf0c76f6bc2b1208f Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 3 May 2024 20:08:29 -0600 Subject: [PATCH 036/318] tagged libsecret version --- scripts/linux/build_secure_storage_deps.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/linux/build_secure_storage_deps.sh b/scripts/linux/build_secure_storage_deps.sh index e63e38665..aff3097dc 100755 --- a/scripts/linux/build_secure_storage_deps.sh +++ b/scripts/linux/build_secure_storage_deps.sh @@ -1,6 +1,7 @@ #!/bin/bash LINUX_DIRECTORY=$(pwd) JSONCPP_TAG=1.7.4 +LIBSECRET_TAG=0.21.4 mkdir -p build # Build JsonCPP @@ -24,8 +25,9 @@ cd "$LINUX_DIRECTORY" || exit 1 #pip3 install --user meson markdown tomli --upgrade # pip3 install --user gi-docgen cd build || exit 1 -git -C libsecret pull || git clone https://gitlab.gnome.org/GNOME/libsecret.git libsecret +git -C libsecret pull origin $LIBSECRET_TAG || git clone https://gitlab.gnome.org/GNOME/libsecret.git libsecret cd libsecret || exit 1 +git checkout $LIBSECRET_TAG if ! [ -x "$(command -v meson)" ]; then echo 'Error: meson is not installed.' >&2 exit 1 From 5cf153b9a14a705b7b969141ab44399ad370bc66 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 23:00:03 -0500 Subject: [PATCH 037/318] brew sodium->libsodium --- docs/building.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/building.md b/docs/building.md index 3154526df..33509a8cd 100644 --- a/docs/building.md +++ b/docs/building.md @@ -182,7 +182,7 @@ Download and install [Homebrew](https://brew.sh/). The following command can in After installing Homebrew, install the following packages: ``` -brew install autoconf automake boost berkeley-db ca-certificates cbindgen cmake cmake cocoapods curl git libssh2 make openssl@1.1 openssl@3 perl pkg-config rustup-init sodium unbound unzip xz zmq +brew install autoconf automake boost berkeley-db ca-certificates cbindgen cmake cocoapods curl git libssh2 libsodium make openssl@1.1 openssl@3 perl pkg-config rustup-init unbound unzip xz zmq ``` The following brew formula *may* be needed: From ab234b72e697fcbd500290f4f6f9fa4f124538c9 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 3 May 2024 23:02:11 -0500 Subject: [PATCH 038/318] flutter 3.19 beta->3.19.5 --- docs/building.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/building.md b/docs/building.md index 33509a8cd..dc65fe6cc 100644 --- a/docs/building.md +++ b/docs/building.md @@ -12,7 +12,7 @@ Here you will find instructions on how to install the necessary tools for buildi The following instructions are for building and running on a Linux host. Alternatively, see the [Mac](#mac-host) and/or [Windows](#windows-host) section. This entire section (except for the Android Studio section) needs to be completed in WSL if building on a Windows host. ### Flutter -Install Flutter 3.19 beta (3.19.0-0.1.pre) by following these instructions: https://docs.flutter.dev/get-started/install/linux/desktop?tab=download#install-the-flutter-sdk. You can also clone https://github.com/flutter/flutter, check out the `3.19.0-0.1.pre` tag, and add its `flutter/bin` folder to your PATH. Run `flutter doctor` in a terminal to confirm its installation. +Install Flutter 3.19.5 by following these instructions: https://docs.flutter.dev/get-started/install/linux/desktop?tab=download#install-the-flutter-sdk. You can also clone https://github.com/flutter/flutter, check out the `3.19.5` tag, and add its `flutter/bin` folder to your PATH. Run `flutter doctor` in a terminal to confirm its installation. ### Android Studio Install Android Studio. Follow instructions here [https://developer.android.com/studio/install#linux](https://developer.android.com/studio/install#linux) or install via snap: From dd935fec9b869950cca1d41e2fd4fd9aa5cc1fcb Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Mon, 6 May 2024 10:13:37 +0200 Subject: [PATCH 039/318] remove android symlinks --- .gitignore | 8 +++++++- android/app/src/main/jniLibs/arm64-v8a/.gitkeep | 0 .../main/jniLibs/arm64-v8a/libmonero_libwallet2_api_c.so | 1 - android/app/src/main/jniLibs/armeabi-v7a/.gitkeep | 0 .../jniLibs/armeabi-v7a/libmonero_libwallet2_api_c.so | 1 - android/app/src/main/jniLibs/x86_64/.gitkeep | 0 .../src/main/jniLibs/x86_64/libmonero_libwallet2_api_c.so | 1 - 7 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 android/app/src/main/jniLibs/arm64-v8a/.gitkeep delete mode 120000 android/app/src/main/jniLibs/arm64-v8a/libmonero_libwallet2_api_c.so create mode 100644 android/app/src/main/jniLibs/armeabi-v7a/.gitkeep delete mode 120000 android/app/src/main/jniLibs/armeabi-v7a/libmonero_libwallet2_api_c.so create mode 100644 android/app/src/main/jniLibs/x86_64/.gitkeep delete mode 120000 android/app/src/main/jniLibs/x86_64/libmonero_libwallet2_api_c.so diff --git a/.gitignore b/.gitignore index 144745e55..8377786de 100644 --- a/.gitignore +++ b/.gitignore @@ -61,4 +61,10 @@ secp256k1.dll /libisar.so # FVM Version Cache -.fvm/ \ No newline at end of file +.fvm/ +android/app/src/main/jniLibs/arm64-v8a/libwownero_wallet2_api_c.so +android/app/src/main/jniLibs/arm64-v8a/libmonero_wallet2_api_c.so +android/app/src/main/jniLibs/armeabi-v7a/libmonero_wallet2_api_c.so +android/app/src/main/jniLibs/armeabi-v7a/libwownero_wallet2_api_c.so +android/app/src/main/jniLibs/x86_64/libmonero_wallet2_api_c.so +android/app/src/main/jniLibs/x86_64/libwownero_wallet2_api_c.so diff --git a/android/app/src/main/jniLibs/arm64-v8a/.gitkeep b/android/app/src/main/jniLibs/arm64-v8a/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/android/app/src/main/jniLibs/arm64-v8a/libmonero_libwallet2_api_c.so b/android/app/src/main/jniLibs/arm64-v8a/libmonero_libwallet2_api_c.so deleted file mode 120000 index 49289969b..000000000 --- a/android/app/src/main/jniLibs/arm64-v8a/libmonero_libwallet2_api_c.so +++ /dev/null @@ -1 +0,0 @@ -../../../../../../crypto_plugins/flutter_libmonero/scripts/monero_c/release/monero/aarch64-linux-android_libwallet2_api_c.so \ No newline at end of file diff --git a/android/app/src/main/jniLibs/armeabi-v7a/.gitkeep b/android/app/src/main/jniLibs/armeabi-v7a/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/android/app/src/main/jniLibs/armeabi-v7a/libmonero_libwallet2_api_c.so b/android/app/src/main/jniLibs/armeabi-v7a/libmonero_libwallet2_api_c.so deleted file mode 120000 index a69eec096..000000000 --- a/android/app/src/main/jniLibs/armeabi-v7a/libmonero_libwallet2_api_c.so +++ /dev/null @@ -1 +0,0 @@ -../../../../../../crypto_plugins/flutter_libmonero/scripts/monero_c/release/monero/arm-linux-androideabi_libwallet2_api_c.so \ No newline at end of file diff --git a/android/app/src/main/jniLibs/x86_64/.gitkeep b/android/app/src/main/jniLibs/x86_64/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/android/app/src/main/jniLibs/x86_64/libmonero_libwallet2_api_c.so b/android/app/src/main/jniLibs/x86_64/libmonero_libwallet2_api_c.so deleted file mode 120000 index 5c18d1cee..000000000 --- a/android/app/src/main/jniLibs/x86_64/libmonero_libwallet2_api_c.so +++ /dev/null @@ -1 +0,0 @@ -../../../../../../crypto_plugins/flutter_libmonero/scripts/monero_c/release/monero/x86_64-linux-android_libwallet2_api_c.so \ No newline at end of file From 143a1997c956925b1d69f871287e546b67c2d93c Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Tue, 7 May 2024 16:00:30 +0200 Subject: [PATCH 040/318] update build scripts for macos --- .gitignore | 2 ++ macos/monero_libwallet2_api_c.dylib | 1 - macos/wownero_libwallet2_api_c.dylib | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) delete mode 120000 macos/monero_libwallet2_api_c.dylib delete mode 120000 macos/wownero_libwallet2_api_c.dylib diff --git a/.gitignore b/.gitignore index 8377786de..90ad3f2d6 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,5 @@ android/app/src/main/jniLibs/armeabi-v7a/libmonero_wallet2_api_c.so android/app/src/main/jniLibs/armeabi-v7a/libwownero_wallet2_api_c.so android/app/src/main/jniLibs/x86_64/libmonero_wallet2_api_c.so android/app/src/main/jniLibs/x86_64/libwownero_wallet2_api_c.so +macos/monero_wallet2_api_c.dylib +macos/wownero_wallet2_api_c.dylib diff --git a/macos/monero_libwallet2_api_c.dylib b/macos/monero_libwallet2_api_c.dylib deleted file mode 120000 index da01b591e..000000000 --- a/macos/monero_libwallet2_api_c.dylib +++ /dev/null @@ -1 +0,0 @@ -../crypto_plugins/flutter_libmonero/scripts/monero_c/release/monero/host-apple-darwin_libwallet2_api_c.dylib \ No newline at end of file diff --git a/macos/wownero_libwallet2_api_c.dylib b/macos/wownero_libwallet2_api_c.dylib deleted file mode 120000 index f0a776dc1..000000000 --- a/macos/wownero_libwallet2_api_c.dylib +++ /dev/null @@ -1 +0,0 @@ -../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/host-apple-darwin_libwallet2_api_c.dylib \ No newline at end of file From e33712f3db98cad526c0f59bc05d417ef0ae4194 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Tue, 7 May 2024 16:03:10 +0200 Subject: [PATCH 041/318] other things from review --- .fvmrc | 3 --- .vscode/settings.json | 1 - 2 files changed, 4 deletions(-) delete mode 100644 .fvmrc diff --git a/.fvmrc b/.fvmrc deleted file mode 100644 index 5fb0c142c..000000000 --- a/.fvmrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "flutter": "3.16.0" -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index a86b03d61..eba0d6cd7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,3 @@ { "dart.lineLength": 80, - "dart.flutterSdkPath": ".fvm/versions/3.16.0" } \ No newline at end of file From 039a723af3f2b0362b260e28e3ba0ea29b76a6ed Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 7 May 2024 11:26:51 -0500 Subject: [PATCH 042/318] flutter_libmonero updates --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index e06c5b92a..88a5d9f91 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit e06c5b92a2a98b78d5506e6472a0fac1fbba9a10 +Subproject commit 88a5d9f91a27f87a9c44238f1ddfaa619d2fc7b6 From 057cd35d02642d24fb6d4d63a671f57c8b976fab Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 12:48:05 -0500 Subject: [PATCH 043/318] lib/whiteLabel.dart --- .../exchange_view/exchange_step_views/step_4_view.dart | 4 +++- lib/pages/intro_view.dart | 3 ++- .../stack_backup_views/restore_from_file_view.dart | 8 +++++--- .../sub_views/stack_restore_progress_view.dart | 3 ++- .../settings_views/global_settings_view/support_view.dart | 3 ++- .../desktop_exchange/exchange_steps/step_scaffold.dart | 3 ++- lib/pages_desktop_specific/desktop_menu.dart | 3 ++- .../password/desktop_login_view.dart | 3 ++- .../password/forgotten_passphrase_restore_from_swb.dart | 3 ++- .../settings/settings_menu/desktop_about_view.dart | 3 ++- lib/utilities/featured_paynyms.dart | 4 +++- lib/whiteLabel.dart | 7 +++++++ 12 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 lib/whiteLabel.dart diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index 8fa0eedc6..ba8a3871a 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -37,6 +37,7 @@ import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; @@ -815,7 +816,8 @@ class _Step4ViewState extends ConsumerState { if (isWalletCoin) Builder( builder: (context) { - String buttonTitle = "Send from Stack Wallet"; + String buttonTitle = + "Send from {$WhiteLabel.appName}"; final tuple = ref .read( diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index 2eecd4983..9fc83144b 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -21,6 +21,7 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -199,7 +200,7 @@ class AppNameText extends StatelessWidget { @override Widget build(BuildContext context) { return Text( - "Stack Wallet", + "{$WhiteLabel.appName}", textAlign: TextAlign.center, style: !isDesktop ? STextStyles.pageTitleH1(context) diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart index ccba85e65..dde6cb76c 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart @@ -26,6 +26,7 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -533,9 +534,10 @@ class _RestoreFromFileViewState extends ConsumerState { Padding( padding: const EdgeInsets - .all(32), + .all( + 32), child: Text( - "Restore Stack Wallet", + "Restore {$WhiteLabel.appName}", style: STextStyles .desktopH3( context), @@ -550,7 +552,7 @@ class _RestoreFromFileViewState extends ConsumerState { Padding( padding: const EdgeInsets - .symmetric( + .symmetric( horizontal: 32), child: diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart index 4825fe4cc..ce4b7c665 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart @@ -32,6 +32,7 @@ import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; @@ -263,7 +264,7 @@ class _StackRestoreProgressViewState }, ), title: Text( - "Restoring Stack wallet", + "Restoring {$WhiteLabel.appName}", style: STextStyles.navBarTitle(context), ), ), diff --git a/lib/pages/settings_views/global_settings_view/support_view.dart b/lib/pages/settings_views/global_settings_view/support_view.dart index d8865a5f3..8922a7a45 100644 --- a/lib/pages/settings_views/global_settings_view/support_view.dart +++ b/lib/pages/settings_views/global_settings_view/support_view.dart @@ -15,6 +15,7 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -88,7 +89,7 @@ class SupportView extends StatelessWidget { AboutItem( linkUrl: "https://discord.com/invite/mRPZuXx3At", label: "Discord", - buttonText: "Stack Wallet", + buttonText: "{$WhiteLabel.appName}", iconAsset: Assets.socials.discord, isDesktop: isDesktop, ), diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index b1a3e3327..bb4390a4f 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -33,6 +33,7 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/custom_loading_overlay.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -316,7 +317,7 @@ class _StepScaffoldState extends ConsumerState { onPressed: onBack, ), secondChild: SecondaryButton( - label: "Send from Stack Wallet", + label: "Send from {$WhiteLabel.appName}", buttonHeight: ButtonHeight.l, onPressed: sendFromStack, ), diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index 64faa0d16..b4add69d1 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -22,6 +22,7 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/widgets/desktop/desktop_tor_status_button.dart'; import 'package:stackwallet/widgets/desktop/living_stack_icon.dart'; +import 'package:stackwallet/whiteLabel.dart'; enum DesktopMenuItemId { myStack, @@ -138,7 +139,7 @@ class _DesktopMenuState extends ConsumerState { child: SizedBox( height: 28, child: Text( - "Stack Wallet", + "{$WhiteLabel.appName}", style: STextStyles.desktopH2(context).copyWith( fontSize: 18, height: 23.4 / 18, diff --git a/lib/pages_desktop_specific/password/desktop_login_view.dart b/lib/pages_desktop_specific/password/desktop_login_view.dart index 2597704fe..e785129be 100644 --- a/lib/pages_desktop_specific/password/desktop_login_view.dart +++ b/lib/pages_desktop_specific/password/desktop_login_view.dart @@ -29,6 +29,7 @@ import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; @@ -200,7 +201,7 @@ class _DesktopLoginViewState extends ConsumerState { height: 42, ), Text( - "Stack Wallet", + "{$WhiteLabel.appName}", style: STextStyles.desktopH1(context), ), const SizedBox( diff --git a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart index e61f4ee24..0734868b4 100644 --- a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart +++ b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart @@ -30,6 +30,7 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -154,7 +155,7 @@ class _ForgottenPassphraseRestoreFromSWBState mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - "Restoring Stack wallet", + "Restoring {$WhiteLabel.appName}", style: STextStyles.desktopH3(context), ), ], diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index eb197ebac..2d7b8f224 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -26,6 +26,7 @@ import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:url_launcher/url_launcher.dart'; +import 'package:stackwallet/whiteLabel.dart'; const kGithubAPI = "https://api.github.com"; const kGithubSearch = "/search/commits"; @@ -165,7 +166,7 @@ class DesktopAboutView extends ConsumerWidget { mainAxisAlignment: MainAxisAlignment.start, children: [ Text( - "Stack Wallet", + "{$WhiteLabel.appName}", style: STextStyles.desktopH3(context), textAlign: TextAlign.start, ), diff --git a/lib/utilities/featured_paynyms.dart b/lib/utilities/featured_paynyms.dart index a5231144d..b7f0d77eb 100644 --- a/lib/utilities/featured_paynyms.dart +++ b/lib/utilities/featured_paynyms.dart @@ -8,6 +8,8 @@ * */ +import 'package:stackwallet/whiteLabel.dart'; + abstract class FeaturedPaynyms { // TODO: replace with actual value // static const String samouraiWalletDevFund = @@ -16,7 +18,7 @@ abstract class FeaturedPaynyms { "PM8TJdQcNk27JpxGRtNR7Hnh8VkJk4Nf17BthLx89fM3iX3UL2YshyaiTAvKgTCVvpgsAgY1DbojkAaUd3Rcn48NEn4uUBuqkaSddgKL8TPAAEQXNuE6"; static Map get featured => { - "Stack Wallet": stackWallet, + "{$WhiteLabel.appName}": stackWallet, // "Samourai Wallet Dev Fund": samouraiWalletDevFund, }; } diff --git a/lib/whiteLabel.dart b/lib/whiteLabel.dart new file mode 100644 index 000000000..6cb0cb43e --- /dev/null +++ b/lib/whiteLabel.dart @@ -0,0 +1,7 @@ +abstract class WhiteLabel { + String get appName => appNamePrefix + appNameSuffix; + + String get appNamePrefix => "Stack"; + + String get appNameSuffix => "Wallet"; +} From 1582b0313a8be79565a60bafdc22ec0e2a69aadb Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 12:53:11 -0500 Subject: [PATCH 044/318] WIP note --- lib/pages/intro_view.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index 9fc83144b..ad048534c 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -201,6 +201,7 @@ class AppNameText extends StatelessWidget { Widget build(BuildContext context) { return Text( "{$WhiteLabel.appName}", + // TODO [prio=high]: `'appName' can't be accessed using static access.`", textAlign: TextAlign.center, style: !isDesktop ? STextStyles.pageTitleH1(context) From 0175a8b89488ebdad7327ea4d62a67c06edd9f93 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 13:02:39 -0500 Subject: [PATCH 045/318] refactor --- lib/pages/intro_view.dart | 6 ++++-- .../settings_views/global_settings_view/support_view.dart | 2 +- lib/pages_desktop_specific/desktop_menu.dart | 4 ++-- .../password/desktop_login_view.dart | 2 +- .../settings/settings_menu/desktop_about_view.dart | 4 ++-- lib/utilities/featured_paynyms.dart | 2 +- lib/whiteLabel.dart | 8 +++++--- 7 files changed, 16 insertions(+), 12 deletions(-) diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index ad048534c..53c4b8740 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -200,8 +200,10 @@ class AppNameText extends StatelessWidget { @override Widget build(BuildContext context) { return Text( - "{$WhiteLabel.appName}", - // TODO [prio=high]: `'appName' can't be accessed using static access.`", + WhiteLabel.appName, + // TODO [prio=high]: appName is now static due to `'appName' can't be + // accessed using static access.`", check that that doesn't cause issues + // elsewhere. textAlign: TextAlign.center, style: !isDesktop ? STextStyles.pageTitleH1(context) diff --git a/lib/pages/settings_views/global_settings_view/support_view.dart b/lib/pages/settings_views/global_settings_view/support_view.dart index 8922a7a45..247264464 100644 --- a/lib/pages/settings_views/global_settings_view/support_view.dart +++ b/lib/pages/settings_views/global_settings_view/support_view.dart @@ -89,7 +89,7 @@ class SupportView extends StatelessWidget { AboutItem( linkUrl: "https://discord.com/invite/mRPZuXx3At", label: "Discord", - buttonText: "{$WhiteLabel.appName}", + buttonText: WhiteLabel.appName, iconAsset: Assets.socials.discord, isDesktop: isDesktop, ), diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index b4add69d1..91bc95b1b 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -20,9 +20,9 @@ import 'package:stackwallet/providers/desktop/current_desktop_menu_item.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/desktop/desktop_tor_status_button.dart'; import 'package:stackwallet/widgets/desktop/living_stack_icon.dart'; -import 'package:stackwallet/whiteLabel.dart'; enum DesktopMenuItemId { myStack, @@ -139,7 +139,7 @@ class _DesktopMenuState extends ConsumerState { child: SizedBox( height: 28, child: Text( - "{$WhiteLabel.appName}", + WhiteLabel.appName, style: STextStyles.desktopH2(context).copyWith( fontSize: 18, height: 23.4 / 18, diff --git a/lib/pages_desktop_specific/password/desktop_login_view.dart b/lib/pages_desktop_specific/password/desktop_login_view.dart index e785129be..b2ac42a73 100644 --- a/lib/pages_desktop_specific/password/desktop_login_view.dart +++ b/lib/pages_desktop_specific/password/desktop_login_view.dart @@ -201,7 +201,7 @@ class _DesktopLoginViewState extends ConsumerState { height: 42, ), Text( - "{$WhiteLabel.appName}", + WhiteLabel.appName, style: STextStyles.desktopH1(context), ), const SizedBox( diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index 2d7b8f224..3b61f24e5 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -21,12 +21,12 @@ import 'package:package_info_plus/package_info_plus.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:url_launcher/url_launcher.dart'; -import 'package:stackwallet/whiteLabel.dart'; const kGithubAPI = "https://api.github.com"; const kGithubSearch = "/search/commits"; @@ -166,7 +166,7 @@ class DesktopAboutView extends ConsumerWidget { mainAxisAlignment: MainAxisAlignment.start, children: [ Text( - "{$WhiteLabel.appName}", + oWhiteLabel.appName, style: STextStyles.desktopH3(context), textAlign: TextAlign.start, ), diff --git a/lib/utilities/featured_paynyms.dart b/lib/utilities/featured_paynyms.dart index b7f0d77eb..e0771328f 100644 --- a/lib/utilities/featured_paynyms.dart +++ b/lib/utilities/featured_paynyms.dart @@ -18,7 +18,7 @@ abstract class FeaturedPaynyms { "PM8TJdQcNk27JpxGRtNR7Hnh8VkJk4Nf17BthLx89fM3iX3UL2YshyaiTAvKgTCVvpgsAgY1DbojkAaUd3Rcn48NEn4uUBuqkaSddgKL8TPAAEQXNuE6"; static Map get featured => { - "{$WhiteLabel.appName}": stackWallet, + WhiteLabel.appName: stackWallet, // "Samourai Wallet Dev Fund": samouraiWalletDevFund, }; } diff --git a/lib/whiteLabel.dart b/lib/whiteLabel.dart index 6cb0cb43e..0e00e0e7a 100644 --- a/lib/whiteLabel.dart +++ b/lib/whiteLabel.dart @@ -1,7 +1,9 @@ abstract class WhiteLabel { - String get appName => appNamePrefix + appNameSuffix; + static String get appName => prefix + separator + suffix; - String get appNamePrefix => "Stack"; + static String get prefix => "Stack"; - String get appNameSuffix => "Wallet"; + static String get separator => " "; + + static String get suffix => "Wallet"; } From 0247f21a9fdb00abf34cb2f93c8b728d5c692a1e Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 13:06:48 -0500 Subject: [PATCH 046/318] My Prefix --- lib/pages/address_book_views/address_book_view.dart | 3 ++- lib/pages/home_view/home_view.dart | 3 ++- .../address_book_view/desktop_address_book.dart | 5 +++-- lib/pages_desktop_specific/desktop_menu.dart | 2 +- .../my_stack_view/exit_to_my_stack_button.dart | 3 ++- lib/pages_desktop_specific/my_stack_view/my_stack_view.dart | 3 ++- .../settings/settings_menu/desktop_about_view.dart | 2 +- 7 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/pages/address_book_views/address_book_view.dart b/lib/pages/address_book_views/address_book_view.dart index 40e71434e..8bc82f49e 100644 --- a/lib/pages/address_book_views/address_book_view.dart +++ b/lib/pages/address_book_views/address_book_view.dart @@ -26,6 +26,7 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; @@ -107,7 +108,7 @@ class _AddressBookViewState extends ConsumerState { ); } final self = ContactEntry( - name: "My Stack", + name: "My ${WhiteLabel.prefix}", addresses: addresses, isFavorite: true, customId: "default", diff --git a/lib/pages/home_view/home_view.dart b/lib/pages/home_view/home_view.dart index 457cbb418..9d3a404a5 100644 --- a/lib/pages/home_view/home_view.dart +++ b/lib/pages/home_view/home_view.dart @@ -30,6 +30,7 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -202,7 +203,7 @@ class _HomeViewState extends ConsumerState { width: 16, ), Text( - "My Stack", + "My ${WhiteLabel.prefix}", style: STextStyles.navBarTitle(context), ) ], diff --git a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart index aba315c64..1fdf0eb8c 100644 --- a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart +++ b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart @@ -1,4 +1,4 @@ -/* +/* * This file is part of Stack Wallet. * * Copyright (c) 2023 Cypher Stack @@ -28,6 +28,7 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -139,7 +140,7 @@ class _DesktopAddressBook extends ConsumerState { ); } final self = ContactEntry( - name: "My Stack", + name: "My ${WhiteLabel.prefix}", addresses: addresses, isFavorite: true, customId: "default", diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index 91bc95b1b..a6f52a4cd 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -181,7 +181,7 @@ class _DesktopMenuState extends ConsumerState { DesktopMenuItem( duration: duration, icon: const DesktopMyStackIcon(), - label: "My Stack", + label: "My ${WhiteLabel.prefix}", value: DesktopMenuItemId.myStack, onChanged: updateSelectedMenuItem, controller: controllers[0], diff --git a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart index 3b91e24f5..c91e75836 100644 --- a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart @@ -12,6 +12,7 @@ import 'package:flutter/material.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/whiteLabel.dart'; class ExitToMyStackButton extends StatelessWidget { const ExitToMyStackButton({ @@ -44,7 +45,7 @@ class ExitToMyStackButton extends StatelessWidget { horizontal: 30, ), child: Text( - "Exit to My Stack", + "Exit to My ${WhiteLabel.prefix}", style: STextStyles.desktopButtonSmallSecondaryEnabled(context), ), ), diff --git a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart index bb9f9a646..05759019f 100644 --- a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart @@ -19,6 +19,7 @@ import 'package:stackwallet/pages_desktop_specific/my_stack_view/my_wallets.dart import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; @@ -131,7 +132,7 @@ class _DesktopMyStackTitleState extends ConsumerState { width: 12, ), Text( - "My Stack", + "My ${WhiteLabel.prefix}", style: STextStyles.desktopH3(context), ) ], diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index 3b61f24e5..35c7fb53d 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -166,7 +166,7 @@ class DesktopAboutView extends ConsumerWidget { mainAxisAlignment: MainAxisAlignment.start, children: [ Text( - oWhiteLabel.appName, + WhiteLabel.appName, style: STextStyles.desktopH3(context), textAlign: TextAlign.start, ), From 56ea4b89bed7106d54aeef9b87a877ae1cf65267 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 13:14:10 -0500 Subject: [PATCH 047/318] white label patches drywall, mud --- lib/main.dart | 5 +++-- lib/pages/intro_view.dart | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 011b8a27a..d536b7d4c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -73,6 +73,7 @@ import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/stack_file_system.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/crypto_notifications.dart'; import 'package:window_size/window_size.dart'; @@ -102,7 +103,7 @@ void main(List args) async { } if (Util.isDesktop && !Platform.isIOS) { - setWindowTitle('Stack Wallet'); + setWindowTitle(WhiteLabel.appName); setWindowMinSize(const Size(1220, 100)); setWindowMaxSize(Size.infinite); @@ -617,7 +618,7 @@ class _MaterialAppWithThemeState extends ConsumerState return MaterialApp( key: GlobalKey(), navigatorKey: navigatorKey, - title: 'Stack Wallet', + title: WhiteLabel.appName, onGenerateRoute: RouteGenerator.generateRoute, theme: ThemeData( extensions: [colorScheme], diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index 53c4b8740..790c8d348 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -247,7 +247,7 @@ class PrivacyAndTOSText extends StatelessWidget { text: TextSpan( style: STextStyles.label(context).copyWith(fontSize: fontSize), children: [ - const TextSpan(text: "By using Stack Wallet, you agree to the "), + TextSpan(text: "By using ${WhiteLabel.appName}, you agree to the "), TextSpan( text: "Terms of service", style: STextStyles.richLink(context).copyWith(fontSize: fontSize), From b016c21140a9dd37ae8575e80a0956984365f63c Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 14:44:19 -0500 Subject: [PATCH 048/318] whiteLabel.dart -> app_config.dart related rafactorings --- lib/main.dart | 6 +++--- lib/pages/address_book_views/address_book_view.dart | 4 ++-- .../exchange_view/exchange_step_views/step_4_view.dart | 4 ++-- lib/pages/home_view/home_view.dart | 4 ++-- lib/pages/intro_view.dart | 6 +++--- .../stack_backup_views/restore_from_file_view.dart | 4 ++-- .../sub_views/stack_restore_progress_view.dart | 4 ++-- .../settings_views/global_settings_view/support_view.dart | 4 ++-- .../address_book_view/desktop_address_book.dart | 4 ++-- .../desktop_exchange/exchange_steps/step_scaffold.dart | 4 ++-- lib/pages_desktop_specific/desktop_menu.dart | 6 +++--- .../my_stack_view/exit_to_my_stack_button.dart | 4 ++-- lib/pages_desktop_specific/my_stack_view/my_stack_view.dart | 4 ++-- lib/pages_desktop_specific/password/desktop_login_view.dart | 4 ++-- .../password/forgotten_passphrase_restore_from_swb.dart | 4 ++-- .../settings/settings_menu/desktop_about_view.dart | 4 ++-- lib/utilities/featured_paynyms.dart | 4 ++-- lib/{whiteLabel.dart => white_label.dart} | 2 +- 18 files changed, 38 insertions(+), 38 deletions(-) rename lib/{whiteLabel.dart => white_label.dart} (86%) diff --git a/lib/main.dart b/lib/main.dart index d536b7d4c..5bdc64710 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -73,7 +73,7 @@ import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/stack_file_system.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/crypto_notifications.dart'; import 'package:window_size/window_size.dart'; @@ -103,7 +103,7 @@ void main(List args) async { } if (Util.isDesktop && !Platform.isIOS) { - setWindowTitle(WhiteLabel.appName); + setWindowTitle(AppConfig.appName); setWindowMinSize(const Size(1220, 100)); setWindowMaxSize(Size.infinite); @@ -618,7 +618,7 @@ class _MaterialAppWithThemeState extends ConsumerState return MaterialApp( key: GlobalKey(), navigatorKey: navigatorKey, - title: WhiteLabel.appName, + title: AppConfig.appName, onGenerateRoute: RouteGenerator.generateRoute, theme: ThemeData( extensions: [colorScheme], diff --git a/lib/pages/address_book_views/address_book_view.dart b/lib/pages/address_book_views/address_book_view.dart index 8bc82f49e..bd39a26a4 100644 --- a/lib/pages/address_book_views/address_book_view.dart +++ b/lib/pages/address_book_views/address_book_view.dart @@ -26,7 +26,7 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; @@ -108,7 +108,7 @@ class _AddressBookViewState extends ConsumerState { ); } final self = ContactEntry( - name: "My ${WhiteLabel.prefix}", + name: "My ${AppConfig.prefix}", addresses: addresses, isFavorite: true, customId: "default", diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index ba8a3871a..bbacf47ef 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -37,7 +37,7 @@ import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; @@ -817,7 +817,7 @@ class _Step4ViewState extends ConsumerState { Builder( builder: (context) { String buttonTitle = - "Send from {$WhiteLabel.appName}"; + "Send from {$AppConfig.appName}"; final tuple = ref .read( diff --git a/lib/pages/home_view/home_view.dart b/lib/pages/home_view/home_view.dart index 9d3a404a5..94987200c 100644 --- a/lib/pages/home_view/home_view.dart +++ b/lib/pages/home_view/home_view.dart @@ -30,7 +30,7 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -203,7 +203,7 @@ class _HomeViewState extends ConsumerState { width: 16, ), Text( - "My ${WhiteLabel.prefix}", + "My ${AppConfig.prefix}", style: STextStyles.navBarTitle(context), ) ], diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index 790c8d348..eba0f7b1c 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -21,7 +21,7 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -200,7 +200,7 @@ class AppNameText extends StatelessWidget { @override Widget build(BuildContext context) { return Text( - WhiteLabel.appName, + AppConfig.appName, // TODO [prio=high]: appName is now static due to `'appName' can't be // accessed using static access.`", check that that doesn't cause issues // elsewhere. @@ -247,7 +247,7 @@ class PrivacyAndTOSText extends StatelessWidget { text: TextSpan( style: STextStyles.label(context).copyWith(fontSize: fontSize), children: [ - TextSpan(text: "By using ${WhiteLabel.appName}, you agree to the "), + TextSpan(text: "By using ${AppConfig.appName}, you agree to the "), TextSpan( text: "Terms of service", style: STextStyles.richLink(context).copyWith(fontSize: fontSize), diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart index dde6cb76c..b337b6068 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart @@ -26,7 +26,7 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -537,7 +537,7 @@ class _RestoreFromFileViewState extends ConsumerState { .all( 32), child: Text( - "Restore {$WhiteLabel.appName}", + "Restore {$AppConfig.appName}", style: STextStyles .desktopH3( context), diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart index ce4b7c665..bbb97c0dd 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart @@ -32,7 +32,7 @@ import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; @@ -264,7 +264,7 @@ class _StackRestoreProgressViewState }, ), title: Text( - "Restoring {$WhiteLabel.appName}", + "Restoring {$AppConfig.appName}", style: STextStyles.navBarTitle(context), ), ), diff --git a/lib/pages/settings_views/global_settings_view/support_view.dart b/lib/pages/settings_views/global_settings_view/support_view.dart index 247264464..be9e2d665 100644 --- a/lib/pages/settings_views/global_settings_view/support_view.dart +++ b/lib/pages/settings_views/global_settings_view/support_view.dart @@ -15,7 +15,7 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -89,7 +89,7 @@ class SupportView extends StatelessWidget { AboutItem( linkUrl: "https://discord.com/invite/mRPZuXx3At", label: "Discord", - buttonText: WhiteLabel.appName, + buttonText: AppConfig.appName, iconAsset: Assets.socials.discord, isDesktop: isDesktop, ), diff --git a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart index 1fdf0eb8c..302b8ac0d 100644 --- a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart +++ b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart @@ -28,7 +28,7 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -140,7 +140,7 @@ class _DesktopAddressBook extends ConsumerState { ); } final self = ContactEntry( - name: "My ${WhiteLabel.prefix}", + name: "My ${AppConfig.prefix}", addresses: addresses, isFavorite: true, customId: "default", diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index bb4390a4f..38f2db774 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -33,7 +33,7 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/custom_loading_overlay.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -317,7 +317,7 @@ class _StepScaffoldState extends ConsumerState { onPressed: onBack, ), secondChild: SecondaryButton( - label: "Send from {$WhiteLabel.appName}", + label: "Send from {$AppConfig.appName}", buttonHeight: ButtonHeight.l, onPressed: sendFromStack, ), diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index a6f52a4cd..06f47cbd1 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -20,7 +20,7 @@ import 'package:stackwallet/providers/desktop/current_desktop_menu_item.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/desktop/desktop_tor_status_button.dart'; import 'package:stackwallet/widgets/desktop/living_stack_icon.dart'; @@ -139,7 +139,7 @@ class _DesktopMenuState extends ConsumerState { child: SizedBox( height: 28, child: Text( - WhiteLabel.appName, + AppConfig.appName, style: STextStyles.desktopH2(context).copyWith( fontSize: 18, height: 23.4 / 18, @@ -181,7 +181,7 @@ class _DesktopMenuState extends ConsumerState { DesktopMenuItem( duration: duration, icon: const DesktopMyStackIcon(), - label: "My ${WhiteLabel.prefix}", + label: "My ${AppConfig.prefix}", value: DesktopMenuItemId.myStack, onChanged: updateSelectedMenuItem, controller: controllers[0], diff --git a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart index c91e75836..0a1b2bdd0 100644 --- a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart @@ -12,7 +12,7 @@ import 'package:flutter/material.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; class ExitToMyStackButton extends StatelessWidget { const ExitToMyStackButton({ @@ -45,7 +45,7 @@ class ExitToMyStackButton extends StatelessWidget { horizontal: 30, ), child: Text( - "Exit to My ${WhiteLabel.prefix}", + "Exit to My ${AppConfig.prefix}", style: STextStyles.desktopButtonSmallSecondaryEnabled(context), ), ), diff --git a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart index 05759019f..1d419193b 100644 --- a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart @@ -19,7 +19,7 @@ import 'package:stackwallet/pages_desktop_specific/my_stack_view/my_wallets.dart import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; @@ -132,7 +132,7 @@ class _DesktopMyStackTitleState extends ConsumerState { width: 12, ), Text( - "My ${WhiteLabel.prefix}", + "My ${AppConfig.prefix}", style: STextStyles.desktopH3(context), ) ], diff --git a/lib/pages_desktop_specific/password/desktop_login_view.dart b/lib/pages_desktop_specific/password/desktop_login_view.dart index b2ac42a73..e6ad79a8c 100644 --- a/lib/pages_desktop_specific/password/desktop_login_view.dart +++ b/lib/pages_desktop_specific/password/desktop_login_view.dart @@ -29,7 +29,7 @@ import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; @@ -201,7 +201,7 @@ class _DesktopLoginViewState extends ConsumerState { height: 42, ), Text( - WhiteLabel.appName, + AppConfig.appName, style: STextStyles.desktopH1(context), ), const SizedBox( diff --git a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart index 0734868b4..44c117702 100644 --- a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart +++ b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart @@ -30,7 +30,7 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -155,7 +155,7 @@ class _ForgottenPassphraseRestoreFromSWBState mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - "Restoring {$WhiteLabel.appName}", + "Restoring {$AppConfig.appName}", style: STextStyles.desktopH3(context), ), ], diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index 35c7fb53d..23f0a6504 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -21,7 +21,7 @@ import 'package:package_info_plus/package_info_plus.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; @@ -166,7 +166,7 @@ class DesktopAboutView extends ConsumerWidget { mainAxisAlignment: MainAxisAlignment.start, children: [ Text( - WhiteLabel.appName, + AppConfig.appName, style: STextStyles.desktopH3(context), textAlign: TextAlign.start, ), diff --git a/lib/utilities/featured_paynyms.dart b/lib/utilities/featured_paynyms.dart index e0771328f..41b7c6eb3 100644 --- a/lib/utilities/featured_paynyms.dart +++ b/lib/utilities/featured_paynyms.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; abstract class FeaturedPaynyms { // TODO: replace with actual value @@ -18,7 +18,7 @@ abstract class FeaturedPaynyms { "PM8TJdQcNk27JpxGRtNR7Hnh8VkJk4Nf17BthLx89fM3iX3UL2YshyaiTAvKgTCVvpgsAgY1DbojkAaUd3Rcn48NEn4uUBuqkaSddgKL8TPAAEQXNuE6"; static Map get featured => { - WhiteLabel.appName: stackWallet, + AppConfig.appName: stackWallet, // "Samourai Wallet Dev Fund": samouraiWalletDevFund, }; } diff --git a/lib/whiteLabel.dart b/lib/white_label.dart similarity index 86% rename from lib/whiteLabel.dart rename to lib/white_label.dart index 0e00e0e7a..123cf606c 100644 --- a/lib/whiteLabel.dart +++ b/lib/white_label.dart @@ -1,4 +1,4 @@ -abstract class WhiteLabel { +abstract class AppConfig { static String get appName => prefix + separator + suffix; static String get prefix => "Stack"; From e174fcc0bc38b14b3d103bf31a7242c37f3623f4 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 15:08:52 -0500 Subject: [PATCH 049/318] whiteLabel.dart -> app_config.dart redux --- lib/{white_label.dart => app_config.dart} | 0 lib/main.dart | 2 +- lib/pages/address_book_views/address_book_view.dart | 2 +- lib/pages/exchange_view/exchange_step_views/step_4_view.dart | 2 +- lib/pages/home_view/home_view.dart | 2 +- lib/pages/intro_view.dart | 2 +- .../stack_backup_views/restore_from_file_view.dart | 2 +- .../sub_views/stack_restore_progress_view.dart | 2 +- lib/pages/settings_views/global_settings_view/support_view.dart | 2 +- .../address_book_view/desktop_address_book.dart | 2 +- .../desktop_exchange/exchange_steps/step_scaffold.dart | 2 +- lib/pages_desktop_specific/desktop_menu.dart | 2 +- .../my_stack_view/exit_to_my_stack_button.dart | 2 +- lib/pages_desktop_specific/my_stack_view/my_stack_view.dart | 2 +- lib/pages_desktop_specific/password/desktop_login_view.dart | 2 +- .../password/forgotten_passphrase_restore_from_swb.dart | 2 +- .../settings/settings_menu/desktop_about_view.dart | 2 +- lib/utilities/featured_paynyms.dart | 2 +- 18 files changed, 17 insertions(+), 17 deletions(-) rename lib/{white_label.dart => app_config.dart} (100%) diff --git a/lib/white_label.dart b/lib/app_config.dart similarity index 100% rename from lib/white_label.dart rename to lib/app_config.dart diff --git a/lib/main.dart b/lib/main.dart index 5bdc64710..6510e26b0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -28,6 +28,7 @@ import 'package:hive_flutter/hive_flutter.dart'; import 'package:isar/isar.dart'; import 'package:keyboard_dismisser/keyboard_dismisser.dart'; import 'package:path_provider/path_provider.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/db/db_version_migration.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/db/isar/main_db.dart'; @@ -73,7 +74,6 @@ import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/stack_file_system.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/crypto_notifications.dart'; import 'package:window_size/window_size.dart'; diff --git a/lib/pages/address_book_views/address_book_view.dart b/lib/pages/address_book_views/address_book_view.dart index bd39a26a4..61d6233bd 100644 --- a/lib/pages/address_book_views/address_book_view.dart +++ b/lib/pages/address_book_views/address_book_view.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/isar/models/contact_entry.dart'; import 'package:stackwallet/pages/address_book_views/subviews/add_address_book_entry_view.dart'; @@ -26,7 +27,6 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index bbacf47ef..496975116 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -15,6 +15,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/exchange/incomplete_exchange.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/pages/exchange_view/confirm_change_now_send.dart'; @@ -37,7 +38,6 @@ import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; diff --git a/lib/pages/home_view/home_view.dart b/lib/pages/home_view/home_view.dart index 94987200c..a54f89836 100644 --- a/lib/pages/home_view/home_view.dart +++ b/lib/pages/home_view/home_view.dart @@ -14,6 +14,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages/buy_view/buy_view.dart'; import 'package:stackwallet/pages/exchange_view/exchange_view.dart'; import 'package:stackwallet/pages/home_view/sub_widgets/home_view_button_bar.dart'; @@ -30,7 +31,6 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index eba0f7b1c..6c9984610 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -14,6 +14,7 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages/stack_privacy_calls.dart'; import 'package:stackwallet/pages_desktop_specific/password/create_password_view.dart'; import 'package:stackwallet/themes/stack_colors.dart'; @@ -21,7 +22,6 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; import 'package:url_launcher/url_launcher.dart'; diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart index b337b6068..f559889cb 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart @@ -15,6 +15,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart'; @@ -26,7 +27,6 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart index bbb97c0dd..9f5b90828 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart @@ -13,6 +13,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages/home_view/home_view.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/dialogs/cancel_stack_restore_dialog.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; @@ -32,7 +33,6 @@ import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; diff --git a/lib/pages/settings_views/global_settings_view/support_view.dart b/lib/pages/settings_views/global_settings_view/support_view.dart index be9e2d665..8e93cba74 100644 --- a/lib/pages/settings_views/global_settings_view/support_view.dart +++ b/lib/pages/settings_views/global_settings_view/support_view.dart @@ -10,12 +10,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; diff --git a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart index 302b8ac0d..5932c0826 100644 --- a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart +++ b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/isar/models/contact_entry.dart'; import 'package:stackwallet/pages/address_book_views/subviews/add_address_book_entry_view.dart'; @@ -28,7 +29,6 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index 38f2db774..b01cf6898 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -14,6 +14,7 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:qr_flutter/qr_flutter.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/exchange/incomplete_exchange.dart'; import 'package:stackwallet/models/exchange/response_objects/trade.dart'; import 'package:stackwallet/pages/exchange_view/send_from_view.dart'; @@ -33,7 +34,6 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/custom_loading_overlay.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index 06f47cbd1..3ca7fc8e8 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -14,13 +14,13 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_menu_item.dart'; import 'package:stackwallet/pages_desktop_specific/settings/settings_menu.dart'; import 'package:stackwallet/providers/desktop/current_desktop_menu_item.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/desktop/desktop_tor_status_button.dart'; import 'package:stackwallet/widgets/desktop/living_stack_icon.dart'; diff --git a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart index 0a1b2bdd0..3bc0f20f0 100644 --- a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart @@ -9,10 +9,10 @@ */ import 'package:flutter/material.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/white_label.dart'; class ExitToMyStackButton extends StatelessWidget { const ExitToMyStackButton({ diff --git a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart index 1d419193b..50767d784 100644 --- a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart @@ -13,13 +13,13 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/hidden_settings.dart'; import 'package:stackwallet/pages/wallets_view/sub_widgets/empty_wallets.dart'; import 'package:stackwallet/pages_desktop_specific/my_stack_view/my_wallets.dart'; import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; diff --git a/lib/pages_desktop_specific/password/desktop_login_view.dart b/lib/pages_desktop_specific/password/desktop_login_view.dart index e6ad79a8c..078038172 100644 --- a/lib/pages_desktop_specific/password/desktop_login_view.dart +++ b/lib/pages_desktop_specific/password/desktop_login_view.dart @@ -14,6 +14,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/db/db_version_migration.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; @@ -29,7 +30,6 @@ import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; diff --git a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart index 44c117702..1affdc0fe 100644 --- a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart +++ b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart @@ -15,6 +15,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; @@ -30,7 +31,6 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index 23f0a6504..cfe90cf17 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -18,10 +18,10 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:http/http.dart'; import 'package:lelantus/git_versions.dart' as FIRO_VERSIONS; import 'package:package_info_plus/package_info_plus.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; diff --git a/lib/utilities/featured_paynyms.dart b/lib/utilities/featured_paynyms.dart index 41b7c6eb3..aecd8de8c 100644 --- a/lib/utilities/featured_paynyms.dart +++ b/lib/utilities/featured_paynyms.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/white_label.dart'; +import 'package:stackwallet/app_config.dart'; abstract class FeaturedPaynyms { // TODO: replace with actual value From 738cb55a40e519c86ffd00d0d103f8accd37eed2 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 14 May 2024 09:49:20 -0600 Subject: [PATCH 050/318] fix delete frost wallet on mobile --- .../delete_wallet_recovery_phrase_view.dart | 375 +++++++++++++----- .../delete_wallet_warning_view.dart | 47 ++- .../wallet_settings_wallet_settings_view.dart | 10 +- lib/route_generator.dart | 21 + 4 files changed, 338 insertions(+), 115 deletions(-) diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart index 420002c83..8c7d94fe9 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart @@ -17,6 +17,7 @@ import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; import 'package:stackwallet/pages/home_view/home_view.dart'; +import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; import 'package:stackwallet/providers/global/secure_store_provider.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; @@ -24,23 +25,35 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; +import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; +import 'package:stackwallet/widgets/desktop/primary_button.dart'; +import 'package:stackwallet/widgets/detail_item.dart'; +import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:stackwallet/widgets/stack_dialog.dart'; class DeleteWalletRecoveryPhraseView extends ConsumerStatefulWidget { const DeleteWalletRecoveryPhraseView({ - Key? key, + super.key, required this.walletId, required this.mnemonic, + this.frostWalletData, this.clipboardInterface = const ClipboardWrapper(), - }) : super(key: key); + }); static const routeName = "/deleteWalletRecoveryPhrase"; final String walletId; final List mnemonic; + final ({ + String myName, + String config, + String keys, + ({String config, String keys})? prevGen, + })? frostWalletData; final ClipboardInterface clipboardInterface; @@ -54,6 +67,62 @@ class _DeleteWalletRecoveryPhraseViewState late List _mnemonic; late ClipboardInterface _clipboardInterface; + bool _lock = false; + + void _continuePressed() { + if (_lock) { + return; + } + _lock = true; + try { + showDialog( + barrierDismissible: true, + context: context, + builder: (_) => StackDialog( + title: "Thanks! Your wallet will be deleted.", + leftButton: TextButton( + style: Theme.of(context) + .extension()! + .getSecondaryEnabledButtonStyle(context), + onPressed: () { + Navigator.pop(context); + }, + child: Text( + "Cancel", + style: STextStyles.button(context).copyWith( + color: + Theme.of(context).extension()!.accentColorDark, + ), + ), + ), + rightButton: TextButton( + style: Theme.of(context) + .extension()! + .getPrimaryEnabledButtonStyle(context), + onPressed: () async { + await ref.read(pWallets).deleteWallet( + ref.read(pWalletInfo(widget.walletId)), + ref.read(secureStoreProvider), + ); + + if (mounted) { + Navigator.of(context).popUntil( + ModalRoute.withName(HomeView.routeName), + ); + } + }, + child: Text( + "Ok", + style: STextStyles.button(context), + ), + ), + ), + ); + } finally { + _lock = false; + } + } + @override void initState() { _mnemonic = widget.mnemonic; @@ -65,6 +134,9 @@ class _DeleteWalletRecoveryPhraseViewState Widget build(BuildContext context) { debugPrint("BUILD: $runtimeType"); + final bool frost = widget.frostWalletData != null; + final prevGen = widget.frostWalletData?.prevGen != null; + return Background( child: Scaffold( backgroundColor: Theme.of(context).extension()!.background, @@ -93,7 +165,7 @@ class _DeleteWalletRecoveryPhraseViewState onPressed: () async { await _clipboardInterface .setData(ClipboardData(text: _mnemonic.join(" "))); - if (mounted) { + if (context.mounted) { unawaited( showFloatingFlushBar( type: FlushBarType.info, @@ -111,116 +183,207 @@ class _DeleteWalletRecoveryPhraseViewState ), body: Padding( padding: const EdgeInsets.all(16), - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - const SizedBox( - height: 4, - ), - Text( - ref.watch(pWalletName(widget.walletId)), - textAlign: TextAlign.center, - style: STextStyles.label(context).copyWith( - fontSize: 12, - ), - ), - const SizedBox( - height: 4, - ), - Text( - "Recovery Phrase", - textAlign: TextAlign.center, - style: STextStyles.pageTitleH1(context), - ), - const SizedBox( - height: 16, - ), - Container( - decoration: BoxDecoration( - color: Theme.of(context).extension()!.popupBG, - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius), - ), - child: Padding( - padding: const EdgeInsets.all(12), - child: Text( - "Please write down your recovery phrase in the correct order and save it to keep your funds secure. You will also be asked to verify the words on the next screen.", - style: STextStyles.label(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), - ), - ), - ), - const SizedBox( - height: 8, - ), - Expanded( - child: SingleChildScrollView( - child: MnemonicTable( - words: _mnemonic, - isDesktop: false, - ), - ), - ), - const SizedBox( - height: 16, - ), - TextButton( - style: Theme.of(context) - .extension()! - .getPrimaryEnabledButtonStyle(context), - onPressed: () { - showDialog( - barrierDismissible: true, - context: context, - builder: (_) => StackDialog( - title: "Thanks! Your wallet will be deleted.", - leftButton: TextButton( - style: Theme.of(context) - .extension()! - .getSecondaryEnabledButtonStyle(context), - onPressed: () { - Navigator.pop(context); - }, - child: Text( - "Cancel", - style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + child: frost + ? LayoutBuilder( + builder: (builderContext, constraints) { + return SingleChildScrollView( + child: ConstrainedBox( + constraints: BoxConstraints( + minHeight: constraints.maxHeight, + ), + child: IntrinsicHeight( + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + RoundedWhiteContainer( + child: Text( + "Please write down your backup data. Keep it safe and " + "never share it with anyone. " + "Your backup data is the only way you can access your " + "funds if you forget your PIN, lose your phone, etc." + "\n\n" + "Stack Wallet does not keep nor is able to restore " + "your backup data. " + "Only you have access to your wallet.", + style: STextStyles.label(context), + ), + ), + const SizedBox( + height: 24, + ), + // DetailItem( + // title: "My name", + // detail: frostWalletData!.myName, + // button: Util.isDesktop + // ? IconCopyButton( + // data: frostWalletData!.myName, + // ) + // : SimpleCopyButton( + // data: frostWalletData!.myName, + // ), + // ), + // const SizedBox( + // height: 16, + // ), + DetailItem( + title: "Multisig config", + detail: widget.frostWalletData!.config, + button: Util.isDesktop + ? IconCopyButton( + data: widget.frostWalletData!.config, + ) + : SimpleCopyButton( + data: widget.frostWalletData!.config, + ), + ), + const SizedBox( + height: 16, + ), + DetailItem( + title: "Keys", + detail: widget.frostWalletData!.keys, + button: Util.isDesktop + ? IconCopyButton( + data: widget.frostWalletData!.keys, + ) + : SimpleCopyButton( + data: widget.frostWalletData!.keys, + ), + ), + if (prevGen) + const SizedBox( + height: 24, + ), + if (prevGen) + RoundedWhiteContainer( + child: Text( + "Previous generation info", + style: STextStyles.label(context), + ), + ), + if (prevGen) + const SizedBox( + height: 12, + ), + if (prevGen) + DetailItem( + title: "Previous multisig config", + detail: + widget.frostWalletData!.prevGen!.config, + button: Util.isDesktop + ? IconCopyButton( + data: widget + .frostWalletData!.prevGen!.config, + ) + : SimpleCopyButton( + data: widget + .frostWalletData!.prevGen!.config, + ), + ), + if (prevGen) + const SizedBox( + height: 16, + ), + if (prevGen) + DetailItem( + title: "Previous keys", + detail: widget.frostWalletData!.prevGen!.keys, + button: Util.isDesktop + ? IconCopyButton( + data: widget + .frostWalletData!.prevGen!.keys, + ) + : SimpleCopyButton( + data: widget + .frostWalletData!.prevGen!.keys, + ), + ), + + const Spacer(), + const SizedBox( + height: 16, + ), + PrimaryButton( + label: "Continue", + onPressed: _continuePressed, + ), + ], + ), ), ), - rightButton: TextButton( - style: Theme.of(context) - .extension()! - .getPrimaryEnabledButtonStyle(context), - onPressed: () async { - await ref.read(pWallets).deleteWallet( - ref.read(pWalletInfo(widget.walletId)), - ref.read(secureStoreProvider), - ); - - if (mounted) { - Navigator.of(context).popUntil( - ModalRoute.withName(HomeView.routeName)); - } - }, + ); + }, + ) + : Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const SizedBox( + height: 4, + ), + Text( + ref.watch(pWalletName(widget.walletId)), + textAlign: TextAlign.center, + style: STextStyles.label(context).copyWith( + fontSize: 12, + ), + ), + const SizedBox( + height: 4, + ), + Text( + "Recovery Phrase", + textAlign: TextAlign.center, + style: STextStyles.pageTitleH1(context), + ), + const SizedBox( + height: 16, + ), + Container( + decoration: BoxDecoration( + color: + Theme.of(context).extension()!.popupBG, + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), + ), + child: Padding( + padding: const EdgeInsets.all(12), child: Text( - "Ok", - style: STextStyles.button(context), + "Please write down your recovery phrase in the correct order and save it to keep your funds secure. You will also be asked to verify the words on the next screen.", + style: STextStyles.label(context).copyWith( + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ), - ); - }, - child: Text( - "Continue", - style: STextStyles.button(context), + const SizedBox( + height: 8, + ), + Expanded( + child: SingleChildScrollView( + child: MnemonicTable( + words: _mnemonic, + isDesktop: false, + ), + ), + ), + const SizedBox( + height: 16, + ), + TextButton( + style: Theme.of(context) + .extension()! + .getPrimaryEnabledButtonStyle(context), + onPressed: _continuePressed, + child: Text( + "Continue", + style: STextStyles.button(context), + ), + ), + ], ), - ), - ], - ), ), ), ); diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart index 2a44ef1f8..84c4f817b 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart @@ -14,6 +14,7 @@ import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_set import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -21,9 +22,9 @@ import 'package:stackwallet/widgets/rounded_container.dart'; class DeleteWalletWarningView extends ConsumerWidget { const DeleteWalletWarningView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/deleteWalletWarning"; @@ -100,14 +101,50 @@ class DeleteWalletWarningView extends ConsumerWidget { .getPrimaryEnabledButtonStyle(context), onPressed: () async { final wallet = ref.read(pWallets).getWallet(walletId); - final mnemonic = - await (wallet as MnemonicInterface).getMnemonicAsWords(); + + // TODO: [prio=med] take wallets that don't have a mnemonic into account + + List? mnemonic; + ({ + String myName, + String config, + String keys, + ({String config, String keys})? prevGen, + })? frostWalletData; + + if (wallet is BitcoinFrostWallet) { + final futures = [ + wallet.getSerializedKeys(), + wallet.getMultisigConfig(), + wallet.getSerializedKeysPrevGen(), + wallet.getMultisigConfigPrevGen(), + ]; + + final results = await Future.wait(futures); + + if (results.length == 4) { + frostWalletData = ( + myName: wallet.frostInfo.myName, + config: results[1]!, + keys: results[0]!, + prevGen: results[2] == null || results[3] == null + ? null + : ( + config: results[3]!, + keys: results[2]!, + ), + ); + } + } else if (wallet is MnemonicInterface) { + mnemonic = await wallet.getMnemonicAsWords(); + } if (context.mounted) { await Navigator.of(context).pushNamed( DeleteWalletRecoveryPhraseView.routeName, arguments: ( walletId: walletId, - mnemonicWords: mnemonic, + mnemonicWords: mnemonic ?? [], + frostWalletData: frostWalletData, ), ); } diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart index 8ead8cd35..e426c576b 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart @@ -122,9 +122,10 @@ class WalletSettingsWalletSettingsView extends ConsumerWidget { child: Text( "Cancel", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), rightButton: TextButton( @@ -150,7 +151,8 @@ class WalletSettingsWalletSettingsView extends ConsumerWidget { "Delete wallet", ), settings: const RouteSettings( - name: "/deleteWalletLockscreen"), + name: "/deleteWalletLockscreen", + ), ), ); }, diff --git a/lib/route_generator.dart b/lib/route_generator.dart index f6dcaa6da..62bae2bbd 100644 --- a/lib/route_generator.dart +++ b/lib/route_generator.dart @@ -1745,6 +1745,27 @@ class RouteGenerator { name: settings.name, ), ); + } else if (args is ({ + String walletId, + List mnemonicWords, + ({ + String myName, + String config, + String keys, + ({String config, String keys})? prevGen, + })? frostWalletData, + })) { + return getRoute( + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => DeleteWalletRecoveryPhraseView( + mnemonic: args.mnemonicWords, + walletId: args.walletId, + frostWalletData: args.frostWalletData, + ), + settings: RouteSettings( + name: settings.name, + ), + ); } return _routeError("${settings.name} invalid args: ${args.toString()}"); From 37cb83a2d4be40280a0260b4e9866fca1223c376 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 14 May 2024 10:26:03 -0600 Subject: [PATCH 051/318] fix coin card color --- lib/models/isar/stack_theme.dart | 451 +++++++++--------- .../sub_widgets/wallet_summary.dart | 4 +- .../sub_widgets/wallet_summary_info.dart | 13 +- lib/pages/wallet_view/wallet_view.dart | 4 +- lib/themes/theme_providers.dart | 10 + lib/themes/theme_service.dart | 2 +- lib/widgets/coin_card.dart | 6 +- 7 files changed, 252 insertions(+), 238 deletions(-) diff --git a/lib/models/isar/stack_theme.dart b/lib/models/isar/stack_theme.dart index 01e32bb2d..09f42b1b6 100644 --- a/lib/models/isar/stack_theme.dart +++ b/lib/models/isar/stack_theme.dart @@ -13,11 +13,11 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/themes/color_theme.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/extensions/impl/box_shadow.dart'; import 'package:stackwallet/utilities/extensions/impl/gradient.dart'; import 'package:stackwallet/utilities/extensions/impl/string.dart'; +import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/stack_file_system.dart'; part 'stack_theme.g.dart'; @@ -45,7 +45,7 @@ class StackTheme { case "dark": return Brightness.dark; default: - // just return light instead of a possible crash causing error + // just return light instead of a possible crash causing error return Brightness.light; } } @@ -131,8 +131,8 @@ class StackTheme { @ignore Color get accentColorBlue => _accentColorBlue ??= Color( - accentColorBlueInt, - ); + accentColorBlueInt, + ); @ignore Color? _accentColorBlue; late final int accentColorBlueInt; @@ -141,8 +141,8 @@ class StackTheme { @ignore Color get accentColorGreen => _accentColorGreen ??= Color( - accentColorGreenInt, - ); + accentColorGreenInt, + ); @ignore Color? _accentColorGreen; late final int accentColorGreenInt; @@ -151,8 +151,8 @@ class StackTheme { @ignore Color get accentColorYellow => _accentColorYellow ??= Color( - accentColorYellowInt, - ); + accentColorYellowInt, + ); @ignore Color? _accentColorYellow; late final int accentColorYellowInt; @@ -161,8 +161,8 @@ class StackTheme { @ignore Color get accentColorRed => _accentColorRed ??= Color( - accentColorRedInt, - ); + accentColorRedInt, + ); @ignore Color? _accentColorRed; late final int accentColorRedInt; @@ -171,8 +171,8 @@ class StackTheme { @ignore Color get accentColorOrange => _accentColorOrange ??= Color( - accentColorOrangeInt, - ); + accentColorOrangeInt, + ); @ignore Color? _accentColorOrange; late final int accentColorOrangeInt; @@ -181,8 +181,8 @@ class StackTheme { @ignore Color get accentColorDark => _accentColorDark ??= Color( - accentColorDarkInt, - ); + accentColorDarkInt, + ); @ignore Color? _accentColorDark; late final int accentColorDarkInt; @@ -191,8 +191,8 @@ class StackTheme { @ignore Color get shadow => _shadow ??= Color( - shadowInt, - ); + shadowInt, + ); @ignore Color? _shadow; late final int shadowInt; @@ -201,8 +201,8 @@ class StackTheme { @ignore Color get textDark => _textDark ??= Color( - textDarkInt, - ); + textDarkInt, + ); @ignore Color? _textDark; late final int textDarkInt; @@ -211,8 +211,8 @@ class StackTheme { @ignore Color get textDark2 => _textDark2 ??= Color( - textDark2Int, - ); + textDark2Int, + ); @ignore Color? _textDark2; late final int textDark2Int; @@ -221,8 +221,8 @@ class StackTheme { @ignore Color get textDark3 => _textDark3 ??= Color( - textDark3Int, - ); + textDark3Int, + ); @ignore Color? _textDark3; late final int textDark3Int; @@ -231,8 +231,8 @@ class StackTheme { @ignore Color get textSubtitle1 => _textSubtitle1 ??= Color( - textSubtitle1Int, - ); + textSubtitle1Int, + ); @ignore Color? _textSubtitle1; late final int textSubtitle1Int; @@ -241,8 +241,8 @@ class StackTheme { @ignore Color get textSubtitle2 => _textSubtitle2 ??= Color( - textSubtitle2Int, - ); + textSubtitle2Int, + ); @ignore Color? _textSubtitle2; late final int textSubtitle2Int; @@ -251,8 +251,8 @@ class StackTheme { @ignore Color get textSubtitle3 => _textSubtitle3 ??= Color( - textSubtitle3Int, - ); + textSubtitle3Int, + ); @ignore Color? _textSubtitle3; late final int textSubtitle3Int; @@ -261,8 +261,8 @@ class StackTheme { @ignore Color get textSubtitle4 => _textSubtitle4 ??= Color( - textSubtitle4Int, - ); + textSubtitle4Int, + ); @ignore Color? _textSubtitle4; late final int textSubtitle4Int; @@ -271,8 +271,8 @@ class StackTheme { @ignore Color get textSubtitle5 => _textSubtitle5 ??= Color( - textSubtitle5Int, - ); + textSubtitle5Int, + ); @ignore Color? _textSubtitle5; late final int textSubtitle5Int; @@ -281,8 +281,8 @@ class StackTheme { @ignore Color get textSubtitle6 => _textSubtitle6 ??= Color( - textSubtitle6Int, - ); + textSubtitle6Int, + ); @ignore Color? _textSubtitle6; late final int textSubtitle6Int; @@ -291,8 +291,8 @@ class StackTheme { @ignore Color get textWhite => _textWhite ??= Color( - textWhiteInt, - ); + textWhiteInt, + ); @ignore Color? _textWhite; late final int textWhiteInt; @@ -301,8 +301,8 @@ class StackTheme { @ignore Color get textFavoriteCard => _textFavoriteCard ??= Color( - textFavoriteCardInt, - ); + textFavoriteCardInt, + ); @ignore Color? _textFavoriteCard; late final int textFavoriteCardInt; @@ -311,8 +311,8 @@ class StackTheme { @ignore Color get textError => _textError ??= Color( - textErrorInt, - ); + textErrorInt, + ); @ignore Color? _textError; late final int textErrorInt; @@ -321,8 +321,8 @@ class StackTheme { @ignore Color get textRestore => _textRestore ??= Color( - textRestoreInt, - ); + textRestoreInt, + ); @ignore Color? _textRestore; late final int textRestoreInt; @@ -331,8 +331,8 @@ class StackTheme { @ignore Color get buttonBackPrimary => _buttonBackPrimary ??= Color( - buttonBackPrimaryInt, - ); + buttonBackPrimaryInt, + ); @ignore Color? _buttonBackPrimary; late final int buttonBackPrimaryInt; @@ -341,8 +341,8 @@ class StackTheme { @ignore Color get buttonBackSecondary => _buttonBackSecondary ??= Color( - buttonBackSecondaryInt, - ); + buttonBackSecondaryInt, + ); @ignore Color? _buttonBackSecondary; late final int buttonBackSecondaryInt; @@ -351,8 +351,8 @@ class StackTheme { @ignore Color get buttonBackPrimaryDisabled => _buttonBackPrimaryDisabled ??= Color( - buttonBackPrimaryDisabledInt, - ); + buttonBackPrimaryDisabledInt, + ); @ignore Color? _buttonBackPrimaryDisabled; late final int buttonBackPrimaryDisabledInt; @@ -372,8 +372,8 @@ class StackTheme { @ignore Color get buttonBackBorder => _buttonBackBorder ??= Color( - buttonBackBorderInt, - ); + buttonBackBorderInt, + ); @ignore Color? _buttonBackBorder; late final int buttonBackBorderInt; @@ -382,8 +382,8 @@ class StackTheme { @ignore Color get buttonBackBorderDisabled => _buttonBackBorderDisabled ??= Color( - buttonBackBorderDisabledInt, - ); + buttonBackBorderDisabledInt, + ); @ignore Color? _buttonBackBorderDisabled; late final int buttonBackBorderDisabledInt; @@ -392,8 +392,8 @@ class StackTheme { @ignore Color get buttonBackBorderSecondary => _buttonBackBorderSecondary ??= Color( - buttonBackBorderSecondaryInt, - ); + buttonBackBorderSecondaryInt, + ); @ignore Color? _buttonBackBorderSecondary; late final int buttonBackBorderSecondaryInt; @@ -413,8 +413,8 @@ class StackTheme { @ignore Color get numberBackDefault => _numberBackDefault ??= Color( - numberBackDefaultInt, - ); + numberBackDefaultInt, + ); @ignore Color? _numberBackDefault; late final int numberBackDefaultInt; @@ -423,8 +423,8 @@ class StackTheme { @ignore Color get numpadBackDefault => _numpadBackDefault ??= Color( - numpadBackDefaultInt, - ); + numpadBackDefaultInt, + ); @ignore Color? _numpadBackDefault; late final int numpadBackDefaultInt; @@ -433,8 +433,8 @@ class StackTheme { @ignore Color get bottomNavBack => _bottomNavBack ??= Color( - bottomNavBackInt, - ); + bottomNavBackInt, + ); @ignore Color? _bottomNavBack; late final int bottomNavBackInt; @@ -443,8 +443,8 @@ class StackTheme { @ignore Color get buttonTextPrimary => _buttonTextPrimary ??= Color( - buttonTextPrimaryInt, - ); + buttonTextPrimaryInt, + ); @ignore Color? _buttonTextPrimary; late final int buttonTextPrimaryInt; @@ -453,8 +453,8 @@ class StackTheme { @ignore Color get buttonTextSecondary => _buttonTextSecondary ??= Color( - buttonTextSecondaryInt, - ); + buttonTextSecondaryInt, + ); @ignore Color? _buttonTextSecondary; late final int buttonTextSecondaryInt; @@ -463,8 +463,8 @@ class StackTheme { @ignore Color get buttonTextPrimaryDisabled => _buttonTextPrimaryDisabled ??= Color( - buttonTextPrimaryDisabledInt, - ); + buttonTextPrimaryDisabledInt, + ); @ignore Color? _buttonTextPrimaryDisabled; late final int buttonTextPrimaryDisabledInt; @@ -1517,117 +1517,117 @@ class StackTheme { ..version = version ..assetsV1 = version == 1 ? ThemeAssets.fromJson( - json: Map.from(json["assets"] as Map), - themeId: json["id"] as String, - ) + json: Map.from(json["assets"] as Map), + themeId: json["id"] as String, + ) : null ..assetsV2 = version == 2 ? ThemeAssetsV2.fromJson( - json: Map.from(json["assets"] as Map), - themeId: json["id"] as String, - ) + json: Map.from(json["assets"] as Map), + themeId: json["id"] as String, + ) : null ..assetsV3 = version >= 3 ? ThemeAssetsV3.fromJson( - json: Map.from(json["assets"] as Map), - themeId: json["id"] as String, - ) + json: Map.from(json["assets"] as Map), + themeId: json["id"] as String, + ) : null ..themeId = json["id"] as String ..name = json["name"] as String ..brightnessString = json["brightness"] as String ..backgroundInt = parseColor(json["colors"]["background"] as String) ..backgroundAppBarInt = - parseColor(json["colors"]["background_app_bar"] as String) + parseColor(json["colors"]["background_app_bar"] as String) ..gradientBackgroundString = json["colors"]["gradients"] != null ? jsonEncode(json["colors"]["gradients"]) : null ..standardBoxShadowString = - jsonEncode(json["colors"]["box_shadows"]["standard"] as Map) + jsonEncode(json["colors"]["box_shadows"]["standard"] as Map) ..homeViewButtonBarBoxShadowString = - json["colors"]["box_shadows"]["home_view_button_bar"] == null - ? null - : jsonEncode( - json["colors"]["box_shadows"]["home_view_button_bar"] as Map) + json["colors"]["box_shadows"]["home_view_button_bar"] == null + ? null + : jsonEncode( + json["colors"]["box_shadows"]["home_view_button_bar"] as Map) ..coinColorsJsonString = jsonEncode(json["colors"]['coin'] as Map) ..overlayInt = parseColor(json["colors"]["overlay"] as String) ..accentColorBlueInt = - parseColor(json["colors"]["accent_color_blue"] as String) + parseColor(json["colors"]["accent_color_blue"] as String) ..accentColorGreenInt = - parseColor(json["colors"]["accent_color_green"] as String) + parseColor(json["colors"]["accent_color_green"] as String) ..accentColorYellowInt = - parseColor(json["colors"]["accent_color_yellow"] as String) + parseColor(json["colors"]["accent_color_yellow"] as String) ..accentColorRedInt = - parseColor(json["colors"]["accent_color_red"] as String) + parseColor(json["colors"]["accent_color_red"] as String) ..accentColorOrangeInt = - parseColor(json["colors"]["accent_color_orange"] as String) + parseColor(json["colors"]["accent_color_orange"] as String) ..accentColorDarkInt = - parseColor(json["colors"]["accent_color_dark"] as String) + parseColor(json["colors"]["accent_color_dark"] as String) ..shadowInt = parseColor(json["colors"]["shadow"] as String) ..textDarkInt = parseColor(json["colors"]["text_dark_one"] as String) ..textDark2Int = parseColor(json["colors"]["text_dark_two"] as String) ..textDark3Int = parseColor(json["colors"]["text_dark_three"] as String) ..textWhiteInt = parseColor(json["colors"]["text_white"] as String) ..textFavoriteCardInt = - parseColor(json["colors"]["text_favorite"] as String) + parseColor(json["colors"]["text_favorite"] as String) ..textErrorInt = parseColor(json["colors"]["text_error"] as String) ..textRestoreInt = parseColor(json["colors"]["text_restore"] as String) ..buttonBackPrimaryInt = - parseColor(json["colors"]["button_back_primary"] as String) + parseColor(json["colors"]["button_back_primary"] as String) ..buttonBackSecondaryInt = - parseColor(json["colors"]["button_back_secondary"] as String) + parseColor(json["colors"]["button_back_secondary"] as String) ..buttonBackPrimaryDisabledInt = - parseColor(json["colors"]["button_back_primary_disabled"] as String) + parseColor(json["colors"]["button_back_primary_disabled"] as String) ..buttonBackSecondaryDisabledInt = - parseColor(json["colors"]["button_back_secondary_disabled"] as String) + parseColor(json["colors"]["button_back_secondary_disabled"] as String) ..buttonBackBorderInt = - parseColor(json["colors"]["button_back_border"] as String) + parseColor(json["colors"]["button_back_border"] as String) ..buttonBackBorderDisabledInt = - parseColor(json["colors"]["button_back_border_disabled"] as String) + parseColor(json["colors"]["button_back_border_disabled"] as String) ..buttonBackBorderSecondaryInt = - parseColor(json["colors"]["button_back_border_secondary"] as String) + parseColor(json["colors"]["button_back_border_secondary"] as String) ..buttonBackBorderSecondaryDisabledInt = parseColor( json["colors"]["button_back_border_secondary_disabled"] as String) ..numberBackDefaultInt = - parseColor(json["colors"]["number_back_default"] as String) + parseColor(json["colors"]["number_back_default"] as String) ..numpadBackDefaultInt = - parseColor(json["colors"]["numpad_back_default"] as String) + parseColor(json["colors"]["numpad_back_default"] as String) ..bottomNavBackInt = - parseColor(json["colors"]["bottom_nav_back"] as String) + parseColor(json["colors"]["bottom_nav_back"] as String) ..textSubtitle1Int = - parseColor(json["colors"]["text_subtitle_one"] as String) + parseColor(json["colors"]["text_subtitle_one"] as String) ..textSubtitle2Int = - parseColor(json["colors"]["text_subtitle_two"] as String) + parseColor(json["colors"]["text_subtitle_two"] as String) ..textSubtitle3Int = - parseColor(json["colors"]["text_subtitle_three"] as String) + parseColor(json["colors"]["text_subtitle_three"] as String) ..textSubtitle4Int = - parseColor(json["colors"]["text_subtitle_four"] as String) + parseColor(json["colors"]["text_subtitle_four"] as String) ..textSubtitle5Int = - parseColor(json["colors"]["text_subtitle_five"] as String) + parseColor(json["colors"]["text_subtitle_five"] as String) ..textSubtitle6Int = - parseColor(json["colors"]["text_subtitle_six"] as String) + parseColor(json["colors"]["text_subtitle_six"] as String) ..buttonTextPrimaryInt = - parseColor(json["colors"]["button_text_primary"] as String) + parseColor(json["colors"]["button_text_primary"] as String) ..buttonTextSecondaryInt = - parseColor(json["colors"]["button_text_secondary"] as String) + parseColor(json["colors"]["button_text_secondary"] as String) ..buttonTextPrimaryDisabledInt = - parseColor(json["colors"]["button_text_primary_disabled"] as String) + parseColor(json["colors"]["button_text_primary_disabled"] as String) ..buttonTextSecondaryDisabledInt = - parseColor(json["colors"]["button_text_secondary_disabled"] as String) + parseColor(json["colors"]["button_text_secondary_disabled"] as String) ..buttonTextBorderInt = - parseColor(json["colors"]["button_text_border"] as String) + parseColor(json["colors"]["button_text_border"] as String) ..buttonTextDisabledInt = - parseColor(json["colors"]["button_text_disabled"] as String) + parseColor(json["colors"]["button_text_disabled"] as String) ..buttonTextBorderlessInt = - parseColor(json["colors"]["button_text_borderless"] as String) + parseColor(json["colors"]["button_text_borderless"] as String) ..buttonTextBorderlessDisabledInt = parseColor( json["colors"]["button_text_borderless_disabled"] as String) ..numberTextDefaultInt = - parseColor(json["colors"]["number_text_default"] as String) + parseColor(json["colors"]["number_text_default"] as String) ..numpadTextDefaultInt = - parseColor(json["colors"]["numpad_text_default"] as String) + parseColor(json["colors"]["numpad_text_default"] as String) ..bottomNavTextInt = - parseColor(json["colors"]["bottom_nav_text"] as String) + parseColor(json["colors"]["bottom_nav_text"] as String) ..customTextButtonEnabledTextInt = parseColor( json["colors"]["custom_text_button_enabled_text"] as String) ..customTextButtonDisabledTextInt = parseColor( @@ -1635,87 +1635,87 @@ class StackTheme { ..switchBGOnInt = parseColor(json["colors"]["switch_bg_on"] as String) ..switchBGOffInt = parseColor(json["colors"]["switch_bg_off"] as String) ..switchBGDisabledInt = - parseColor(json["colors"]["switch_bg_disabled"] as String) + parseColor(json["colors"]["switch_bg_disabled"] as String) ..switchCircleOnInt = - parseColor(json["colors"]["switch_circle_on"] as String) + parseColor(json["colors"]["switch_circle_on"] as String) ..switchCircleOffInt = - parseColor(json["colors"]["switch_circle_off"] as String) + parseColor(json["colors"]["switch_circle_off"] as String) ..switchCircleDisabledInt = - parseColor(json["colors"]["switch_circle_disabled"] as String) + parseColor(json["colors"]["switch_circle_disabled"] as String) ..stepIndicatorBGCheckInt = - parseColor(json["colors"]["step_indicator_bg_check"] as String) + parseColor(json["colors"]["step_indicator_bg_check"] as String) ..stepIndicatorBGNumberInt = - parseColor(json["colors"]["step_indicator_bg_number"] as String) + parseColor(json["colors"]["step_indicator_bg_number"] as String) ..stepIndicatorBGInactiveInt = - parseColor(json["colors"]["step_indicator_bg_inactive"] as String) + parseColor(json["colors"]["step_indicator_bg_inactive"] as String) ..stepIndicatorBGLinesInt = - parseColor(json["colors"]["step_indicator_bg_lines"] as String) + parseColor(json["colors"]["step_indicator_bg_lines"] as String) ..stepIndicatorBGLinesInactiveInt = parseColor( json["colors"]["step_indicator_bg_lines_inactive"] as String) ..stepIndicatorIconTextInt = - parseColor(json["colors"]["step_indicator_icon_text"] as String) + parseColor(json["colors"]["step_indicator_icon_text"] as String) ..stepIndicatorIconNumberInt = - parseColor(json["colors"]["step_indicator_icon_number"] as String) + parseColor(json["colors"]["step_indicator_icon_number"] as String) ..stepIndicatorIconInactiveInt = - parseColor(json["colors"]["step_indicator_icon_inactive"] as String) + parseColor(json["colors"]["step_indicator_icon_inactive"] as String) ..checkboxBGCheckedInt = - parseColor(json["colors"]["checkbox_bg_checked"] as String) + parseColor(json["colors"]["checkbox_bg_checked"] as String) ..checkboxBorderEmptyInt = - parseColor(json["colors"]["checkbox_border_empty"] as String) + parseColor(json["colors"]["checkbox_border_empty"] as String) ..checkboxBGDisabledInt = - parseColor(json["colors"]["checkbox_bg_disabled"] as String) + parseColor(json["colors"]["checkbox_bg_disabled"] as String) ..checkboxIconCheckedInt = - parseColor(json["colors"]["checkbox_icon_checked"] as String) + parseColor(json["colors"]["checkbox_icon_checked"] as String) ..checkboxIconDisabledInt = - parseColor(json["colors"]["checkbox_icon_disabled"] as String) + parseColor(json["colors"]["checkbox_icon_disabled"] as String) ..checkboxTextLabelInt = - parseColor(json["colors"]["checkbox_text_label"] as String) + parseColor(json["colors"]["checkbox_text_label"] as String) ..snackBarBackSuccessInt = - parseColor(json["colors"]["snack_bar_back_success"] as String) + parseColor(json["colors"]["snack_bar_back_success"] as String) ..snackBarBackErrorInt = - parseColor(json["colors"]["snack_bar_back_error"] as String) + parseColor(json["colors"]["snack_bar_back_error"] as String) ..snackBarBackInfoInt = - parseColor(json["colors"]["snack_bar_back_info"] as String) + parseColor(json["colors"]["snack_bar_back_info"] as String) ..snackBarTextSuccessInt = - parseColor(json["colors"]["snack_bar_text_success"] as String) + parseColor(json["colors"]["snack_bar_text_success"] as String) ..snackBarTextErrorInt = - parseColor(json["colors"]["snack_bar_text_error"] as String) + parseColor(json["colors"]["snack_bar_text_error"] as String) ..snackBarTextInfoInt = - parseColor(json["colors"]["snack_bar_text_info"] as String) + parseColor(json["colors"]["snack_bar_text_info"] as String) ..bottomNavIconBackInt = - parseColor(json["colors"]["bottom_nav_icon_back"] as String) + parseColor(json["colors"]["bottom_nav_icon_back"] as String) ..bottomNavIconIconInt = - parseColor(json["colors"]["bottom_nav_icon_icon"] as String) + parseColor(json["colors"]["bottom_nav_icon_icon"] as String) ..bottomNavIconIconHighlightedInt = parseColor( json["colors"]["bottom_nav_icon_icon_highlighted"] as String) ..topNavIconPrimaryInt = - parseColor(json["colors"]["top_nav_icon_primary"] as String) + parseColor(json["colors"]["top_nav_icon_primary"] as String) ..topNavIconGreenInt = - parseColor(json["colors"]["top_nav_icon_green"] as String) + parseColor(json["colors"]["top_nav_icon_green"] as String) ..topNavIconYellowInt = - parseColor(json["colors"]["top_nav_icon_yellow"] as String) + parseColor(json["colors"]["top_nav_icon_yellow"] as String) ..topNavIconRedInt = - parseColor(json["colors"]["top_nav_icon_red"] as String) + parseColor(json["colors"]["top_nav_icon_red"] as String) ..settingsIconBackInt = - parseColor(json["colors"]["settings_icon_back"] as String) + parseColor(json["colors"]["settings_icon_back"] as String) ..settingsIconIconInt = - parseColor(json["colors"]["settings_icon_icon"] as String) + parseColor(json["colors"]["settings_icon_icon"] as String) ..settingsIconBack2Int = - parseColor(json["colors"]["settings_icon_back_two"] as String) + parseColor(json["colors"]["settings_icon_back_two"] as String) ..settingsIconElementInt = - parseColor(json["colors"]["settings_icon_element"] as String) + parseColor(json["colors"]["settings_icon_element"] as String) ..textFieldActiveBGInt = - parseColor(json["colors"]["text_field_active_bg"] as String) + parseColor(json["colors"]["text_field_active_bg"] as String) ..textFieldDefaultBGInt = - parseColor(json["colors"]["text_field_default_bg"] as String) + parseColor(json["colors"]["text_field_default_bg"] as String) ..textFieldErrorBGInt = - parseColor(json["colors"]["text_field_error_bg"] as String) + parseColor(json["colors"]["text_field_error_bg"] as String) ..textFieldSuccessBGInt = - parseColor(json["colors"]["text_field_success_bg"] as String) + parseColor(json["colors"]["text_field_success_bg"] as String) ..textFieldErrorBorderInt = - parseColor(json["colors"]["text_field_error_border"] as String) + parseColor(json["colors"]["text_field_error_border"] as String) ..textFieldSuccessBorderInt = - parseColor(json["colors"]["text_field_success_border"] as String) + parseColor(json["colors"]["text_field_success_border"] as String) ..textFieldActiveSearchIconLeftInt = parseColor( json["colors"]["text_field_active_search_icon_left"] as String) ..textFieldDefaultSearchIconLeftInt = parseColor( @@ -1725,19 +1725,19 @@ class StackTheme { ..textFieldSuccessSearchIconLeftInt = parseColor( json["colors"]["text_field_success_search_icon_left"] as String) ..textFieldActiveTextInt = - parseColor(json["colors"]["text_field_active_text"] as String) + parseColor(json["colors"]["text_field_active_text"] as String) ..textFieldDefaultTextInt = - parseColor(json["colors"]["text_field_default_text"] as String) + parseColor(json["colors"]["text_field_default_text"] as String) ..textFieldErrorTextInt = - parseColor(json["colors"]["text_field_error_text"] as String) + parseColor(json["colors"]["text_field_error_text"] as String) ..textFieldSuccessTextInt = - parseColor(json["colors"]["text_field_success_text"] as String) + parseColor(json["colors"]["text_field_success_text"] as String) ..textFieldActiveLabelInt = - parseColor(json["colors"]["text_field_active_label"] as String) + parseColor(json["colors"]["text_field_active_label"] as String) ..textFieldErrorLabelInt = - parseColor(json["colors"]["text_field_error_label"] as String) + parseColor(json["colors"]["text_field_error_label"] as String) ..textFieldSuccessLabelInt = - parseColor(json["colors"]["text_field_success_label"] as String) + parseColor(json["colors"]["text_field_success_label"] as String) ..textFieldActiveSearchIconRightInt = parseColor( json["colors"]["text_field_active_search_icon_right"] as String) ..textFieldDefaultSearchIconRightInt = parseColor( @@ -1753,61 +1753,61 @@ class StackTheme { ..settingsItem2ActiveSubInt = parseColor( json["colors"]["settings_item_level_two_active_sub"] as String) ..radioButtonIconBorderInt = - parseColor(json["colors"]["radio_button_icon_border"] as String) + parseColor(json["colors"]["radio_button_icon_border"] as String) ..radioButtonIconBorderDisabledInt = parseColor( json["colors"]["radio_button_icon_border_disabled"] as String) ..radioButtonBorderEnabledInt = - parseColor(json["colors"]["radio_button_border_enabled"] as String) + parseColor(json["colors"]["radio_button_border_enabled"] as String) ..radioButtonBorderDisabledInt = - parseColor(json["colors"]["radio_button_border_disabled"] as String) + parseColor(json["colors"]["radio_button_border_disabled"] as String) ..radioButtonIconCircleInt = - parseColor(json["colors"]["radio_button_icon_circle"] as String) + parseColor(json["colors"]["radio_button_icon_circle"] as String) ..radioButtonIconEnabledInt = - parseColor(json["colors"]["radio_button_icon_enabled"] as String) + parseColor(json["colors"]["radio_button_icon_enabled"] as String) ..radioButtonTextEnabledInt = - parseColor(json["colors"]["radio_button_text_enabled"] as String) + parseColor(json["colors"]["radio_button_text_enabled"] as String) ..radioButtonTextDisabledInt = - parseColor(json["colors"]["radio_button_text_disabled"] as String) + parseColor(json["colors"]["radio_button_text_disabled"] as String) ..radioButtonLabelEnabledInt = - parseColor(json["colors"]["radio_button_label_enabled"] as String) + parseColor(json["colors"]["radio_button_label_enabled"] as String) ..radioButtonLabelDisabledInt = - parseColor(json["colors"]["radio_button_label_disabled"] as String) + parseColor(json["colors"]["radio_button_label_disabled"] as String) ..infoItemBGInt = parseColor(json["colors"]["info_item_bg"] as String) ..infoItemLabelInt = - parseColor(json["colors"]["info_item_label"] as String) + parseColor(json["colors"]["info_item_label"] as String) ..infoItemTextInt = parseColor(json["colors"]["info_item_text"] as String) ..infoItemIconsInt = - parseColor(json["colors"]["info_item_icons"] as String) + parseColor(json["colors"]["info_item_icons"] as String) ..popupBGInt = parseColor(json["colors"]["popup_bg"] as String) ..currencyListItemBGInt = - parseColor(json["colors"]["currency_list_item_bg"] as String) + parseColor(json["colors"]["currency_list_item_bg"] as String) ..stackWalletBGInt = parseColor(json["colors"]["sw_bg"] as String) ..stackWalletMidInt = parseColor(json["colors"]["sw_mid"] as String) ..stackWalletBottomInt = parseColor(json["colors"]["sw_bottom"] as String) ..bottomNavShadowInt = - parseColor(json["colors"]["bottom_nav_shadow"] as String) + parseColor(json["colors"]["bottom_nav_shadow"] as String) ..splashInt = parseColor(json["colors"]["splash"] as String) ..highlightInt = parseColor(json["colors"]["highlight"] as String) ..warningForegroundInt = - parseColor(json["colors"]["warning_foreground"] as String) + parseColor(json["colors"]["warning_foreground"] as String) ..warningBackgroundInt = - parseColor(json["colors"]["warning_background"] as String) + parseColor(json["colors"]["warning_background"] as String) ..loadingOverlayTextColorInt = - parseColor(json["colors"]["loading_overlay_text_color"] as String) + parseColor(json["colors"]["loading_overlay_text_color"] as String) ..myStackContactIconBGInt = - parseColor(json["colors"]["my_stack_contact_icon_bg"] as String) + parseColor(json["colors"]["my_stack_contact_icon_bg"] as String) ..textConfirmTotalAmountInt = - parseColor(json["colors"]["text_confirm_total_amount"] as String) + parseColor(json["colors"]["text_confirm_total_amount"] as String) ..textSelectedWordTableItemInt = - parseColor(json["colors"]["text_selected_word_table_iterm"] as String) + parseColor(json["colors"]["text_selected_word_table_iterm"] as String) ..favoriteStarActiveInt = - parseColor(json["colors"]["favorite_star_active"] as String) + parseColor(json["colors"]["favorite_star_active"] as String) ..favoriteStarInactiveInt = - parseColor(json["colors"]["favorite_star_inactive"] as String) + parseColor(json["colors"]["favorite_star_inactive"] as String) ..rateTypeToggleColorOnInt = - parseColor(json["colors"]["rate_type_toggle_color_on"] as String) + parseColor(json["colors"]["rate_type_toggle_color_on"] as String) ..rateTypeToggleColorOffInt = - parseColor(json["colors"]["rate_type_toggle_color_off"] as String) + parseColor(json["colors"]["rate_type_toggle_color_off"] as String) ..rateTypeToggleDesktopColorOnInt = parseColor( json["colors"]["rate_type_toggle_desktop_color_on"] as String) ..rateTypeToggleDesktopColorOffInt = parseColor( @@ -1815,19 +1815,19 @@ class StackTheme { ..ethTagTextInt = parseColor(json["colors"]["eth_tag_text"] as String) ..ethTagBGInt = parseColor(json["colors"]["eth_tag_bg"] as String) ..ethWalletTagTextInt = - parseColor(json["colors"]["eth_wallet_tag_text"] as String) + parseColor(json["colors"]["eth_wallet_tag_text"] as String) ..ethWalletTagBGInt = - parseColor(json["colors"]["eth_wallet_tag_bg"] as String) + parseColor(json["colors"]["eth_wallet_tag_bg"] as String) ..tokenSummaryTextPrimaryInt = - parseColor(json["colors"]["token_summary_text_primary"] as String) + parseColor(json["colors"]["token_summary_text_primary"] as String) ..tokenSummaryTextSecondaryInt = - parseColor(json["colors"]["token_summary_text_secondary"] as String) + parseColor(json["colors"]["token_summary_text_secondary"] as String) ..tokenSummaryBGInt = - parseColor(json["colors"]["token_summary_bg"] as String) + parseColor(json["colors"]["token_summary_bg"] as String) ..tokenSummaryButtonBGInt = - parseColor(json["colors"]["token_summary_button_bg"] as String) + parseColor(json["colors"]["token_summary_button_bg"] as String) ..tokenSummaryIconInt = - parseColor(json["colors"]["token_summary_icon"] as String); + parseColor(json["colors"]["token_summary_icon"] as String); } /// Grab the int value of the hex color string. @@ -1840,7 +1840,7 @@ class StackTheme { } else { throw ArgumentError( '"$colorHex" and corresponding int ' - 'value "$colorValue" is not a valid color.', + 'value "$colorValue" is not a valid color.', ); } } catch (_) { @@ -1857,13 +1857,16 @@ class StackTheme { final Map result = {}; - for (final coin in Coin.values) { + for (final coin in Coin.values.map((e) => e.mainNetVersion)) { if (map[coin.name] is String) { result[coin] = Color( (map[coin.name] as String).toBigIntFromHex.toInt(), ); } else { - result[coin] = kCoinThemeColorDefaults.forCoin(coin); + Logging.instance.log( + "Color not found in theme for $coin", + level: LogLevel.Error, + ); } } @@ -2078,18 +2081,18 @@ class ThemeAssetsV2 implements IThemeAssets { @ignore Map get coinIcons => _coinIcons ??= parseCoinAssetsString( - coinIconsString, - placeHolder: coinPlaceholder, - ); + coinIconsString, + placeHolder: coinPlaceholder, + ); @ignore Map? _coinIcons; late final String coinIconsString; @ignore Map get coinImages => _coinImages ??= parseCoinAssetsString( - coinImagesString, - placeHolder: coinPlaceholder, - ); + coinImagesString, + placeHolder: coinPlaceholder, + ); @ignore Map? _coinImages; late final String coinImagesString; @@ -2164,9 +2167,9 @@ class ThemeAssetsV2 implements IThemeAssets { } static Map parseCoinAssetsString( - String jsonString, { - required String placeHolder, - }) { + String jsonString, { + required String placeHolder, + }) { final json = jsonDecode(jsonString) as Map; final map = Map.from(json); @@ -2348,18 +2351,18 @@ class ThemeAssetsV3 implements IThemeAssets { @ignore Map get coinIcons => _coinIcons ??= parseCoinAssetsString( - coinIconsString, - placeHolder: coinPlaceholder, - ); + coinIconsString, + placeHolder: coinPlaceholder, + ); @ignore Map? _coinIcons; late final String coinIconsString; @ignore Map get coinImages => _coinImages ??= parseCoinAssetsString( - coinImagesString, - placeHolder: coinPlaceholder, - ); + coinImagesString, + placeHolder: coinPlaceholder, + ); @ignore Map? _coinImages; late final String coinImagesString; @@ -2379,9 +2382,9 @@ class ThemeAssetsV3 implements IThemeAssets { _coinCardImages ??= coinCardImagesString == null ? null : parseCoinAssetsString( - coinCardImagesString!, - placeHolder: coinPlaceholder, - ); + coinCardImagesString!, + placeHolder: coinPlaceholder, + ); @ignore Map? _coinCardImages; late final String? coinCardImagesString; @@ -2391,9 +2394,9 @@ class ThemeAssetsV3 implements IThemeAssets { _coinCardFavoritesImages ??= coinCardFavoritesImagesString == null ? null : parseCoinAssetsString( - coinCardFavoritesImagesString!, - placeHolder: coinPlaceholder, - ); + coinCardFavoritesImagesString!, + placeHolder: coinPlaceholder, + ); @ignore Map? _coinCardFavoritesImages; @Name("otherStringParam1") @@ -2450,15 +2453,15 @@ class ThemeAssetsV3 implements IThemeAssets { ) ..coinCardImagesString = json["coins"]["cards"] is Map ? createCoinAssetsString( - "$themeId/assets", - Map.from(json["coins"]["cards"] as Map), - ) + "$themeId/assets", + Map.from(json["coins"]["cards"] as Map), + ) : null ..coinCardFavoritesImagesString = json["coins"]["favoriteCards"] is Map ? createCoinAssetsString( - "$themeId/assets", - Map.from(json["coins"]["favoriteCards"] as Map), - ) + "$themeId/assets", + Map.from(json["coins"]["favoriteCards"] as Map), + ) : null ..loadingGifRelative = json["loading_gif"] is String ? "$themeId/assets/${json["loading_gif"] as String}" @@ -2499,9 +2502,9 @@ class ThemeAssetsV3 implements IThemeAssets { } static Map parseCoinAssetsString( - String jsonString, { - required String placeHolder, - }) { + String jsonString, { + required String placeHolder, + }) { final json = jsonDecode(jsonString) as Map; final map = Map.from(json); @@ -2571,4 +2574,4 @@ abstract class IThemeAssets { String? get loadingGif; String? get background; -} \ No newline at end of file +} diff --git a/lib/pages/wallet_view/sub_widgets/wallet_summary.dart b/lib/pages/wallet_view/sub_widgets/wallet_summary.dart index 08f5f22c8..a33bf7622 100644 --- a/lib/pages/wallet_view/sub_widgets/wallet_summary.dart +++ b/lib/pages/wallet_view/sub_widgets/wallet_summary.dart @@ -15,7 +15,7 @@ import 'package:stackwallet/widgets/coin_card.dart'; class WalletSummary extends StatelessWidget { const WalletSummary({ - Key? key, + super.key, required this.walletId, required this.initialSyncStatus, this.aspectRatio = 2.0, @@ -23,7 +23,7 @@ class WalletSummary extends StatelessWidget { this.minWidth = 200.0, this.maxHeight = 250.0, this.maxWidth = 400.0, - }) : super(key: key); + }); final String walletId; final WalletSyncStatus initialSyncStatus; diff --git a/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart b/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart index aeadd6a7a..fa01d1ac6 100644 --- a/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart +++ b/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart @@ -63,18 +63,21 @@ class WalletSummaryInfo extends ConsumerWidget { debugPrint("BUILD: $runtimeType"); final externalCalls = ref.watch( - prefsChangeNotifierProvider.select((value) => value.externalCalls)); + prefsChangeNotifierProvider.select((value) => value.externalCalls), + ); final coin = ref.watch(pWalletCoin(walletId)); final balance = ref.watch(pWalletBalance(walletId)); final locale = ref.watch( - localeServiceChangeNotifierProvider.select((value) => value.locale)); + localeServiceChangeNotifierProvider.select((value) => value.locale), + ); final baseCurrency = ref .watch(prefsChangeNotifierProvider.select((value) => value.currency)); - final priceTuple = ref.watch(priceAnd24hChangeNotifierProvider - .select((value) => value.getPrice(coin))); + final priceTuple = ref.watch( + priceAnd24hChangeNotifierProvider.select((value) => value.getPrice(coin)), + ); final _showAvailable = ref.watch(walletBalanceToggleStateProvider.state).state == @@ -206,7 +209,7 @@ class WalletSummaryInfo extends ConsumerWidget { initialSyncStatus: initialSyncStatus, ), ], - ) + ), ], ), ); diff --git a/lib/pages/wallet_view/wallet_view.dart b/lib/pages/wallet_view/wallet_view.dart index f00751425..8abbd4d16 100644 --- a/lib/pages/wallet_view/wallet_view.dart +++ b/lib/pages/wallet_view/wallet_view.dart @@ -99,11 +99,11 @@ import 'package:tuple/tuple.dart'; /// [eventBus] should only be set during testing class WalletView extends ConsumerStatefulWidget { const WalletView({ - Key? key, + super.key, required this.walletId, this.eventBus, this.clipboardInterface = const ClipboardWrapper(), - }) : super(key: key); + }); static const String routeName = "/wallet"; static const double navBarHeight = 65.0; diff --git a/lib/themes/theme_providers.dart b/lib/themes/theme_providers.dart index 1219079a5..eb622e8cc 100644 --- a/lib/themes/theme_providers.dart +++ b/lib/themes/theme_providers.dart @@ -8,10 +8,12 @@ * */ +import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/models/isar/stack_theme.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/theme_service.dart'; +import 'package:stackwallet/utilities/enums/coin_enum.dart'; final applicationThemesDirectoryPathProvider = StateProvider((ref) => ""); @@ -38,3 +40,11 @@ final themeAssetsProvider = StateProvider( ), ), ); + +final pCoinColor = StateProvider.family( + (ref, coin) => + ref.watch( + themeProvider.select((value) => value.coinColors[coin.mainNetVersion]), + ) ?? + Colors.deepOrangeAccent, +); diff --git a/lib/themes/theme_service.dart b/lib/themes/theme_service.dart index b5882ecc5..c71a336a4 100644 --- a/lib/themes/theme_service.dart +++ b/lib/themes/theme_service.dart @@ -29,7 +29,7 @@ final pThemeService = Provider((ref) { }); class ThemeService { - static const _currentDefaultThemeVersion = 9; + static const _currentDefaultThemeVersion = 10; ThemeService._(); static ThemeService? _instance; static ThemeService get instance => _instance ??= ThemeService._(); diff --git a/lib/widgets/coin_card.dart b/lib/widgets/coin_card.dart index 9ceb13543..b4a88e80d 100644 --- a/lib/widgets/coin_card.dart +++ b/lib/widgets/coin_card.dart @@ -14,7 +14,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:stackwallet/themes/coin_card_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; +import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; @@ -68,9 +68,7 @@ class CoinCard extends ConsumerWidget { width: width, height: height, decoration: BoxDecoration( - color: Theme.of(context) - .extension()! - .colorForCoin(coin), + color: ref.watch(pCoinColor(coin)), borderRadius: BorderRadius.circular( Constants.size.circularBorderRadius, ), From 63f75bae03544698531271251005c121c4f78ea3 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 14 May 2024 10:31:18 -0600 Subject: [PATCH 052/318] fix frost steps qr code colors --- .../dialogs/frost/frost_step_qr_dialog.dart | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart b/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart index 2dd1ace26..af33383ef 100644 --- a/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart +++ b/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart @@ -153,12 +153,15 @@ class _FrostStepQrDialogState extends State { child: QrImageView( data: widget.data, padding: EdgeInsets.zero, - dataModuleStyle: QrDataModuleStyle( - dataModuleShape: QrDataModuleShape.square, - color: Theme.of(context) - .extension()! - .accentColorDark, - ), + foregroundColor: Theme.of(context) + .extension()! + .accentColorDark, + // dataModuleStyle: QrDataModuleStyle( + // dataModuleShape: QrDataModuleShape.square, + // color: Theme.of(context) + // .extension()! + // .accentColorDark, + // ), ), ), ), From e3c761dfb0e8857899f6f4bc027cee5c9e68986a Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 14 May 2024 10:36:11 -0600 Subject: [PATCH 053/318] flip text fields on frost restore screen --- .../restore/restore_frost_ms_wallet_view.dart | 175 +++++++++--------- 1 file changed, 89 insertions(+), 86 deletions(-) diff --git a/lib/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart b/lib/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart index 68c220c1f..03a7ee8bf 100644 --- a/lib/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart +++ b/lib/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart @@ -268,89 +268,6 @@ class _RestoreFrostMsWalletViewState child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const SizedBox( - height: 16, - ), - ClipRRect( - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius, - ), - child: TextField( - key: const Key("frMyNameTextFieldKey"), - controller: keysFieldController, - onChanged: (_) { - setState(() { - _keysEmpty = keysFieldController.text.isEmpty; - }); - }, - focusNode: keysFocusNode, - readOnly: false, - autocorrect: false, - enableSuggestions: false, - style: STextStyles.field(context), - decoration: standardInputDecoration( - "Keys", - keysFocusNode, - context, - ).copyWith( - contentPadding: const EdgeInsets.only( - left: 16, - top: 6, - bottom: 8, - right: 5, - ), - suffixIcon: Padding( - padding: _keysEmpty - ? const EdgeInsets.only(right: 8) - : const EdgeInsets.only(right: 0), - child: UnconstrainedBox( - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - !_keysEmpty - ? TextFieldIconButton( - semanticsLabel: - "Clear Button. Clears The Keys Field.", - key: const Key("frMyNameClearButtonKey"), - onTap: () { - keysFieldController.text = ""; - - setState(() { - _keysEmpty = true; - }); - }, - child: const XIcon(), - ) - : TextFieldIconButton( - semanticsLabel: - "Paste Button. Pastes From Clipboard To Keys Field.", - key: const Key("frKeysPasteButtonKey"), - onTap: () async { - final ClipboardData? data = - await Clipboard.getData( - Clipboard.kTextPlain); - if (data?.text != null && - data!.text!.isNotEmpty) { - keysFieldController.text = - data.text!.trim(); - } - - setState(() { - _keysEmpty = - keysFieldController.text.isEmpty; - }); - }, - child: _keysEmpty - ? const ClipboardIcon() - : const XIcon(), - ), - ], - ), - ), - ), - ), - ), - ), const SizedBox( height: 16, ), @@ -411,7 +328,8 @@ class _RestoreFrostMsWalletViewState onTap: () async { final ClipboardData? data = await Clipboard.getData( - Clipboard.kTextPlain); + Clipboard.kTextPlain, + ); if (data?.text != null && data!.text!.isNotEmpty) { configFieldController.text = @@ -437,7 +355,8 @@ class _RestoreFrostMsWalletViewState if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } final qrResult = await BarcodeScanner.scan(); @@ -457,7 +376,91 @@ class _RestoreFrostMsWalletViewState } }, child: const QrCodeIcon(), - ) + ), + ], + ), + ), + ), + ), + ), + ), + const SizedBox( + height: 16, + ), + ClipRRect( + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), + child: TextField( + key: const Key("frMyNameTextFieldKey"), + controller: keysFieldController, + onChanged: (_) { + setState(() { + _keysEmpty = keysFieldController.text.isEmpty; + }); + }, + focusNode: keysFocusNode, + readOnly: false, + autocorrect: false, + enableSuggestions: false, + style: STextStyles.field(context), + decoration: standardInputDecoration( + "Keys", + keysFocusNode, + context, + ).copyWith( + contentPadding: const EdgeInsets.only( + left: 16, + top: 6, + bottom: 8, + right: 5, + ), + suffixIcon: Padding( + padding: _keysEmpty + ? const EdgeInsets.only(right: 8) + : const EdgeInsets.only(right: 0), + child: UnconstrainedBox( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + !_keysEmpty + ? TextFieldIconButton( + semanticsLabel: + "Clear Button. Clears The Keys Field.", + key: const Key("frMyNameClearButtonKey"), + onTap: () { + keysFieldController.text = ""; + + setState(() { + _keysEmpty = true; + }); + }, + child: const XIcon(), + ) + : TextFieldIconButton( + semanticsLabel: + "Paste Button. Pastes From Clipboard To Keys Field.", + key: const Key("frKeysPasteButtonKey"), + onTap: () async { + final ClipboardData? data = + await Clipboard.getData( + Clipboard.kTextPlain, + ); + if (data?.text != null && + data!.text!.isNotEmpty) { + keysFieldController.text = + data.text!.trim(); + } + + setState(() { + _keysEmpty = + keysFieldController.text.isEmpty; + }); + }, + child: _keysEmpty + ? const ClipboardIcon() + : const XIcon(), + ), ], ), ), From 129c46fca02725ffccc28b2bc53345877703437c Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 14 May 2024 11:11:09 -0600 Subject: [PATCH 054/318] make recovery screen scrollable on desktop --- .../new_wallet_recovery_phrase_view.dart | 288 ++++++++++-------- 1 file changed, 154 insertions(+), 134 deletions(-) diff --git a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart index 8a22bc8f2..bb855d757 100644 --- a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart +++ b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart @@ -31,6 +31,7 @@ import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/wallet.dart'; +import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; @@ -180,152 +181,171 @@ class _NewWalletRecoveryPhraseViewState child: Padding( padding: isDesktop ? const EdgeInsets.all(0) : const EdgeInsets.all(16), - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - if (isDesktop) - const Spacer( - flex: 10, - ), - if (!isDesktop) - const SizedBox( - height: 4, - ), - if (!isDesktop) - Text( - ref.watch(pWalletName(_wallet.walletId)), - textAlign: TextAlign.center, - style: STextStyles.label(context).copyWith( - fontSize: 12, + child: ConditionalParent( + condition: Util.isDesktop, + builder: (child) => LayoutBuilder( + builder: (context, constraints) { + return SingleChildScrollView( + child: ConstrainedBox( + constraints: BoxConstraints( + minHeight: constraints.maxHeight, + ), + child: IntrinsicHeight( + child: child, + ), ), - ), - SizedBox( - height: isDesktop ? 24 : 4, - ), - Text( - "Recovery Phrase", - textAlign: TextAlign.center, - style: isDesktop - ? STextStyles.desktopH2(context) - : STextStyles.pageTitleH1(context), - ), - const SizedBox( - height: 16, - ), - Container( - decoration: BoxDecoration( - color: isDesktop - ? Theme.of(context).extension()!.background - : Theme.of(context).extension()!.popupBG, - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius), - ), - child: Padding( - padding: isDesktop - ? const EdgeInsets.all(0) - : const EdgeInsets.all(12), - child: Text( - "Please write down your recovery phrase in the correct order and save it to keep your funds secure. You will also be asked to verify the words on the next screen.", + ); + }, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + if (isDesktop) + const Spacer( + flex: 10, + ), + if (!isDesktop) + const SizedBox( + height: 4, + ), + if (!isDesktop) + Text( + ref.watch(pWalletName(_wallet.walletId)), textAlign: TextAlign.center, - style: isDesktop - ? STextStyles.desktopSubtitleH2(context) - : STextStyles.label(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), - ), - ), - ), - SizedBox( - height: isDesktop ? 21 : 8, - ), - if (!isDesktop) - Expanded( - child: SingleChildScrollView( - child: MnemonicTable( - words: _mnemonic, - isDesktop: isDesktop, + style: STextStyles.label(context).copyWith( + fontSize: 12, ), ), - ), - if (isDesktop) - MnemonicTable( - words: _mnemonic, - isDesktop: isDesktop, - ), - SizedBox( - height: isDesktop ? 24 : 16, - ), - if (isDesktop) SizedBox( - height: 70, - child: TextButton( - onPressed: () async { - await _copy(); - }, - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SvgPicture.asset( - Assets.svg.copy, - width: 20, - height: 20, - color: Theme.of(context) - .extension()! - .buttonTextSecondary, - ), - const SizedBox( - width: 10, - ), - Text( - "Copy to clipboard", - style: STextStyles.desktopButtonSecondaryEnabled( - context), - ) - ], - ), - ), + height: isDesktop ? 24 : 4, + ), + Text( + "Recovery Phrase", + textAlign: TextAlign.center, + style: isDesktop + ? STextStyles.desktopH2(context) + : STextStyles.pageTitleH1(context), ), - if (isDesktop) const SizedBox( height: 16, ), - ConstrainedBox( - constraints: BoxConstraints( - minHeight: isDesktop ? 70 : 0, - ), - child: TextButton( - onPressed: () async { - final int next = Random().nextInt(_mnemonic.length); - ref - .read(verifyMnemonicWordIndexStateProvider.state) - .update((state) => next); - - ref - .read(verifyMnemonicCorrectWordStateProvider.state) - .update((state) => _mnemonic[next]); - - unawaited(Navigator.of(context).pushNamed( - VerifyRecoveryPhraseView.routeName, - arguments: Tuple2(_wallet, _mnemonic), - )); - }, - style: Theme.of(context) - .extension()! - .getPrimaryEnabledButtonStyle(context), - child: Text( - "I saved my recovery phrase", - style: isDesktop - ? STextStyles.desktopButtonEnabled(context) - : STextStyles.button(context), + Container( + decoration: BoxDecoration( + color: isDesktop + ? Theme.of(context) + .extension()! + .background + : Theme.of(context).extension()!.popupBG, + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius), + ), + child: Padding( + padding: isDesktop + ? const EdgeInsets.all(0) + : const EdgeInsets.all(12), + child: Text( + "Please write down your recovery phrase in the correct order and save it to keep your funds secure. You will also be asked to verify the words on the next screen.", + textAlign: TextAlign.center, + style: isDesktop + ? STextStyles.desktopSubtitleH2(context) + : STextStyles.label(context).copyWith( + color: Theme.of(context) + .extension()! + .accentColorDark), + ), ), ), - ), - if (isDesktop) - const Spacer( - flex: 15, + SizedBox( + height: isDesktop ? 21 : 8, ), - ], + if (!isDesktop) + Expanded( + child: SingleChildScrollView( + child: MnemonicTable( + words: _mnemonic, + isDesktop: isDesktop, + ), + ), + ), + if (isDesktop) + MnemonicTable( + words: _mnemonic, + isDesktop: isDesktop, + ), + SizedBox( + height: isDesktop ? 24 : 16, + ), + if (isDesktop) + SizedBox( + height: 70, + child: TextButton( + onPressed: () async { + await _copy(); + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SvgPicture.asset( + Assets.svg.copy, + width: 20, + height: 20, + color: Theme.of(context) + .extension()! + .buttonTextSecondary, + ), + const SizedBox( + width: 10, + ), + Text( + "Copy to clipboard", + style: STextStyles.desktopButtonSecondaryEnabled( + context), + ) + ], + ), + ), + ), + if (isDesktop) + const SizedBox( + height: 16, + ), + ConstrainedBox( + constraints: BoxConstraints( + minHeight: isDesktop ? 70 : 0, + ), + child: TextButton( + onPressed: () async { + final int next = Random().nextInt(_mnemonic.length); + ref + .read(verifyMnemonicWordIndexStateProvider.state) + .update((state) => next); + + ref + .read(verifyMnemonicCorrectWordStateProvider.state) + .update((state) => _mnemonic[next]); + + unawaited(Navigator.of(context).pushNamed( + VerifyRecoveryPhraseView.routeName, + arguments: Tuple2(_wallet, _mnemonic), + )); + }, + style: Theme.of(context) + .extension()! + .getPrimaryEnabledButtonStyle(context), + child: Text( + "I saved my recovery phrase", + style: isDesktop + ? STextStyles.desktopButtonEnabled(context) + : STextStyles.button(context), + ), + ), + ), + if (isDesktop) + const Spacer( + flex: 15, + ), + ], + ), ), ), ), From 1d135a2fa623226e7c79de438e8e847b9c0496e5 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 12:48:05 -0500 Subject: [PATCH 055/318] lib/whiteLabel.dart --- .../exchange_view/exchange_step_views/step_4_view.dart | 4 +++- lib/pages/intro_view.dart | 3 ++- .../stack_backup_views/restore_from_file_view.dart | 8 +++++--- .../sub_views/stack_restore_progress_view.dart | 3 ++- .../settings_views/global_settings_view/support_view.dart | 3 ++- .../desktop_exchange/exchange_steps/step_scaffold.dart | 3 ++- lib/pages_desktop_specific/desktop_menu.dart | 3 ++- .../password/desktop_login_view.dart | 3 ++- .../password/forgotten_passphrase_restore_from_swb.dart | 3 ++- .../settings/settings_menu/desktop_about_view.dart | 3 ++- lib/utilities/featured_paynyms.dart | 4 +++- lib/whiteLabel.dart | 7 +++++++ 12 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 lib/whiteLabel.dart diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index 8fa0eedc6..ba8a3871a 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -37,6 +37,7 @@ import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; @@ -815,7 +816,8 @@ class _Step4ViewState extends ConsumerState { if (isWalletCoin) Builder( builder: (context) { - String buttonTitle = "Send from Stack Wallet"; + String buttonTitle = + "Send from {$WhiteLabel.appName}"; final tuple = ref .read( diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index 2eecd4983..9fc83144b 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -21,6 +21,7 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -199,7 +200,7 @@ class AppNameText extends StatelessWidget { @override Widget build(BuildContext context) { return Text( - "Stack Wallet", + "{$WhiteLabel.appName}", textAlign: TextAlign.center, style: !isDesktop ? STextStyles.pageTitleH1(context) diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart index ccba85e65..dde6cb76c 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart @@ -26,6 +26,7 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -533,9 +534,10 @@ class _RestoreFromFileViewState extends ConsumerState { Padding( padding: const EdgeInsets - .all(32), + .all( + 32), child: Text( - "Restore Stack Wallet", + "Restore {$WhiteLabel.appName}", style: STextStyles .desktopH3( context), @@ -550,7 +552,7 @@ class _RestoreFromFileViewState extends ConsumerState { Padding( padding: const EdgeInsets - .symmetric( + .symmetric( horizontal: 32), child: diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart index 4825fe4cc..ce4b7c665 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart @@ -32,6 +32,7 @@ import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; @@ -263,7 +264,7 @@ class _StackRestoreProgressViewState }, ), title: Text( - "Restoring Stack wallet", + "Restoring {$WhiteLabel.appName}", style: STextStyles.navBarTitle(context), ), ), diff --git a/lib/pages/settings_views/global_settings_view/support_view.dart b/lib/pages/settings_views/global_settings_view/support_view.dart index d8865a5f3..8922a7a45 100644 --- a/lib/pages/settings_views/global_settings_view/support_view.dart +++ b/lib/pages/settings_views/global_settings_view/support_view.dart @@ -15,6 +15,7 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -88,7 +89,7 @@ class SupportView extends StatelessWidget { AboutItem( linkUrl: "https://discord.com/invite/mRPZuXx3At", label: "Discord", - buttonText: "Stack Wallet", + buttonText: "{$WhiteLabel.appName}", iconAsset: Assets.socials.discord, isDesktop: isDesktop, ), diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index b1a3e3327..bb4390a4f 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -33,6 +33,7 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/custom_loading_overlay.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -316,7 +317,7 @@ class _StepScaffoldState extends ConsumerState { onPressed: onBack, ), secondChild: SecondaryButton( - label: "Send from Stack Wallet", + label: "Send from {$WhiteLabel.appName}", buttonHeight: ButtonHeight.l, onPressed: sendFromStack, ), diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index 64faa0d16..b4add69d1 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -22,6 +22,7 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/widgets/desktop/desktop_tor_status_button.dart'; import 'package:stackwallet/widgets/desktop/living_stack_icon.dart'; +import 'package:stackwallet/whiteLabel.dart'; enum DesktopMenuItemId { myStack, @@ -138,7 +139,7 @@ class _DesktopMenuState extends ConsumerState { child: SizedBox( height: 28, child: Text( - "Stack Wallet", + "{$WhiteLabel.appName}", style: STextStyles.desktopH2(context).copyWith( fontSize: 18, height: 23.4 / 18, diff --git a/lib/pages_desktop_specific/password/desktop_login_view.dart b/lib/pages_desktop_specific/password/desktop_login_view.dart index 2597704fe..e785129be 100644 --- a/lib/pages_desktop_specific/password/desktop_login_view.dart +++ b/lib/pages_desktop_specific/password/desktop_login_view.dart @@ -29,6 +29,7 @@ import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; @@ -200,7 +201,7 @@ class _DesktopLoginViewState extends ConsumerState { height: 42, ), Text( - "Stack Wallet", + "{$WhiteLabel.appName}", style: STextStyles.desktopH1(context), ), const SizedBox( diff --git a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart index e61f4ee24..0734868b4 100644 --- a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart +++ b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart @@ -30,6 +30,7 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -154,7 +155,7 @@ class _ForgottenPassphraseRestoreFromSWBState mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - "Restoring Stack wallet", + "Restoring {$WhiteLabel.appName}", style: STextStyles.desktopH3(context), ), ], diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index eb197ebac..2d7b8f224 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -26,6 +26,7 @@ import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:url_launcher/url_launcher.dart'; +import 'package:stackwallet/whiteLabel.dart'; const kGithubAPI = "https://api.github.com"; const kGithubSearch = "/search/commits"; @@ -165,7 +166,7 @@ class DesktopAboutView extends ConsumerWidget { mainAxisAlignment: MainAxisAlignment.start, children: [ Text( - "Stack Wallet", + "{$WhiteLabel.appName}", style: STextStyles.desktopH3(context), textAlign: TextAlign.start, ), diff --git a/lib/utilities/featured_paynyms.dart b/lib/utilities/featured_paynyms.dart index a5231144d..b7f0d77eb 100644 --- a/lib/utilities/featured_paynyms.dart +++ b/lib/utilities/featured_paynyms.dart @@ -8,6 +8,8 @@ * */ +import 'package:stackwallet/whiteLabel.dart'; + abstract class FeaturedPaynyms { // TODO: replace with actual value // static const String samouraiWalletDevFund = @@ -16,7 +18,7 @@ abstract class FeaturedPaynyms { "PM8TJdQcNk27JpxGRtNR7Hnh8VkJk4Nf17BthLx89fM3iX3UL2YshyaiTAvKgTCVvpgsAgY1DbojkAaUd3Rcn48NEn4uUBuqkaSddgKL8TPAAEQXNuE6"; static Map get featured => { - "Stack Wallet": stackWallet, + "{$WhiteLabel.appName}": stackWallet, // "Samourai Wallet Dev Fund": samouraiWalletDevFund, }; } diff --git a/lib/whiteLabel.dart b/lib/whiteLabel.dart new file mode 100644 index 000000000..6cb0cb43e --- /dev/null +++ b/lib/whiteLabel.dart @@ -0,0 +1,7 @@ +abstract class WhiteLabel { + String get appName => appNamePrefix + appNameSuffix; + + String get appNamePrefix => "Stack"; + + String get appNameSuffix => "Wallet"; +} From 759a75daf87fe71048fdeca567d6502c2da2afef Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 12:53:11 -0500 Subject: [PATCH 056/318] WIP note --- lib/pages/intro_view.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index 9fc83144b..ad048534c 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -201,6 +201,7 @@ class AppNameText extends StatelessWidget { Widget build(BuildContext context) { return Text( "{$WhiteLabel.appName}", + // TODO [prio=high]: `'appName' can't be accessed using static access.`", textAlign: TextAlign.center, style: !isDesktop ? STextStyles.pageTitleH1(context) From e0b8837c369a416e4fc0efa33b4eceef8532a499 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 13:02:39 -0500 Subject: [PATCH 057/318] refactor --- lib/pages/intro_view.dart | 6 ++++-- .../settings_views/global_settings_view/support_view.dart | 2 +- lib/pages_desktop_specific/desktop_menu.dart | 4 ++-- .../password/desktop_login_view.dart | 2 +- .../settings/settings_menu/desktop_about_view.dart | 4 ++-- lib/utilities/featured_paynyms.dart | 2 +- lib/whiteLabel.dart | 8 +++++--- 7 files changed, 16 insertions(+), 12 deletions(-) diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index ad048534c..53c4b8740 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -200,8 +200,10 @@ class AppNameText extends StatelessWidget { @override Widget build(BuildContext context) { return Text( - "{$WhiteLabel.appName}", - // TODO [prio=high]: `'appName' can't be accessed using static access.`", + WhiteLabel.appName, + // TODO [prio=high]: appName is now static due to `'appName' can't be + // accessed using static access.`", check that that doesn't cause issues + // elsewhere. textAlign: TextAlign.center, style: !isDesktop ? STextStyles.pageTitleH1(context) diff --git a/lib/pages/settings_views/global_settings_view/support_view.dart b/lib/pages/settings_views/global_settings_view/support_view.dart index 8922a7a45..247264464 100644 --- a/lib/pages/settings_views/global_settings_view/support_view.dart +++ b/lib/pages/settings_views/global_settings_view/support_view.dart @@ -89,7 +89,7 @@ class SupportView extends StatelessWidget { AboutItem( linkUrl: "https://discord.com/invite/mRPZuXx3At", label: "Discord", - buttonText: "{$WhiteLabel.appName}", + buttonText: WhiteLabel.appName, iconAsset: Assets.socials.discord, isDesktop: isDesktop, ), diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index b4add69d1..91bc95b1b 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -20,9 +20,9 @@ import 'package:stackwallet/providers/desktop/current_desktop_menu_item.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/desktop/desktop_tor_status_button.dart'; import 'package:stackwallet/widgets/desktop/living_stack_icon.dart'; -import 'package:stackwallet/whiteLabel.dart'; enum DesktopMenuItemId { myStack, @@ -139,7 +139,7 @@ class _DesktopMenuState extends ConsumerState { child: SizedBox( height: 28, child: Text( - "{$WhiteLabel.appName}", + WhiteLabel.appName, style: STextStyles.desktopH2(context).copyWith( fontSize: 18, height: 23.4 / 18, diff --git a/lib/pages_desktop_specific/password/desktop_login_view.dart b/lib/pages_desktop_specific/password/desktop_login_view.dart index e785129be..b2ac42a73 100644 --- a/lib/pages_desktop_specific/password/desktop_login_view.dart +++ b/lib/pages_desktop_specific/password/desktop_login_view.dart @@ -201,7 +201,7 @@ class _DesktopLoginViewState extends ConsumerState { height: 42, ), Text( - "{$WhiteLabel.appName}", + WhiteLabel.appName, style: STextStyles.desktopH1(context), ), const SizedBox( diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index 2d7b8f224..3b61f24e5 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -21,12 +21,12 @@ import 'package:package_info_plus/package_info_plus.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:url_launcher/url_launcher.dart'; -import 'package:stackwallet/whiteLabel.dart'; const kGithubAPI = "https://api.github.com"; const kGithubSearch = "/search/commits"; @@ -166,7 +166,7 @@ class DesktopAboutView extends ConsumerWidget { mainAxisAlignment: MainAxisAlignment.start, children: [ Text( - "{$WhiteLabel.appName}", + oWhiteLabel.appName, style: STextStyles.desktopH3(context), textAlign: TextAlign.start, ), diff --git a/lib/utilities/featured_paynyms.dart b/lib/utilities/featured_paynyms.dart index b7f0d77eb..e0771328f 100644 --- a/lib/utilities/featured_paynyms.dart +++ b/lib/utilities/featured_paynyms.dart @@ -18,7 +18,7 @@ abstract class FeaturedPaynyms { "PM8TJdQcNk27JpxGRtNR7Hnh8VkJk4Nf17BthLx89fM3iX3UL2YshyaiTAvKgTCVvpgsAgY1DbojkAaUd3Rcn48NEn4uUBuqkaSddgKL8TPAAEQXNuE6"; static Map get featured => { - "{$WhiteLabel.appName}": stackWallet, + WhiteLabel.appName: stackWallet, // "Samourai Wallet Dev Fund": samouraiWalletDevFund, }; } diff --git a/lib/whiteLabel.dart b/lib/whiteLabel.dart index 6cb0cb43e..0e00e0e7a 100644 --- a/lib/whiteLabel.dart +++ b/lib/whiteLabel.dart @@ -1,7 +1,9 @@ abstract class WhiteLabel { - String get appName => appNamePrefix + appNameSuffix; + static String get appName => prefix + separator + suffix; - String get appNamePrefix => "Stack"; + static String get prefix => "Stack"; - String get appNameSuffix => "Wallet"; + static String get separator => " "; + + static String get suffix => "Wallet"; } From b1e0e92d5a291998515992145749cca5dce889a5 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 13:06:48 -0500 Subject: [PATCH 058/318] My Prefix --- lib/pages/address_book_views/address_book_view.dart | 3 ++- lib/pages/home_view/home_view.dart | 3 ++- .../address_book_view/desktop_address_book.dart | 5 +++-- lib/pages_desktop_specific/desktop_menu.dart | 2 +- .../my_stack_view/exit_to_my_stack_button.dart | 3 ++- lib/pages_desktop_specific/my_stack_view/my_stack_view.dart | 3 ++- .../settings/settings_menu/desktop_about_view.dart | 2 +- 7 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/pages/address_book_views/address_book_view.dart b/lib/pages/address_book_views/address_book_view.dart index 40e71434e..8bc82f49e 100644 --- a/lib/pages/address_book_views/address_book_view.dart +++ b/lib/pages/address_book_views/address_book_view.dart @@ -26,6 +26,7 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; @@ -107,7 +108,7 @@ class _AddressBookViewState extends ConsumerState { ); } final self = ContactEntry( - name: "My Stack", + name: "My ${WhiteLabel.prefix}", addresses: addresses, isFavorite: true, customId: "default", diff --git a/lib/pages/home_view/home_view.dart b/lib/pages/home_view/home_view.dart index 457cbb418..9d3a404a5 100644 --- a/lib/pages/home_view/home_view.dart +++ b/lib/pages/home_view/home_view.dart @@ -30,6 +30,7 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -202,7 +203,7 @@ class _HomeViewState extends ConsumerState { width: 16, ), Text( - "My Stack", + "My ${WhiteLabel.prefix}", style: STextStyles.navBarTitle(context), ) ], diff --git a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart index aba315c64..1fdf0eb8c 100644 --- a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart +++ b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart @@ -1,4 +1,4 @@ -/* +/* * This file is part of Stack Wallet. * * Copyright (c) 2023 Cypher Stack @@ -28,6 +28,7 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -139,7 +140,7 @@ class _DesktopAddressBook extends ConsumerState { ); } final self = ContactEntry( - name: "My Stack", + name: "My ${WhiteLabel.prefix}", addresses: addresses, isFavorite: true, customId: "default", diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index 91bc95b1b..a6f52a4cd 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -181,7 +181,7 @@ class _DesktopMenuState extends ConsumerState { DesktopMenuItem( duration: duration, icon: const DesktopMyStackIcon(), - label: "My Stack", + label: "My ${WhiteLabel.prefix}", value: DesktopMenuItemId.myStack, onChanged: updateSelectedMenuItem, controller: controllers[0], diff --git a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart index 3b91e24f5..c91e75836 100644 --- a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart @@ -12,6 +12,7 @@ import 'package:flutter/material.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/whiteLabel.dart'; class ExitToMyStackButton extends StatelessWidget { const ExitToMyStackButton({ @@ -44,7 +45,7 @@ class ExitToMyStackButton extends StatelessWidget { horizontal: 30, ), child: Text( - "Exit to My Stack", + "Exit to My ${WhiteLabel.prefix}", style: STextStyles.desktopButtonSmallSecondaryEnabled(context), ), ), diff --git a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart index bb9f9a646..05759019f 100644 --- a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart @@ -19,6 +19,7 @@ import 'package:stackwallet/pages_desktop_specific/my_stack_view/my_wallets.dart import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; @@ -131,7 +132,7 @@ class _DesktopMyStackTitleState extends ConsumerState { width: 12, ), Text( - "My Stack", + "My ${WhiteLabel.prefix}", style: STextStyles.desktopH3(context), ) ], diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index 3b61f24e5..35c7fb53d 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -166,7 +166,7 @@ class DesktopAboutView extends ConsumerWidget { mainAxisAlignment: MainAxisAlignment.start, children: [ Text( - oWhiteLabel.appName, + WhiteLabel.appName, style: STextStyles.desktopH3(context), textAlign: TextAlign.start, ), From 9fa86dec7e6f5d25db07d6f3b2918b9c33714206 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 13:14:10 -0500 Subject: [PATCH 059/318] white label patches drywall, mud --- lib/main.dart | 5 +++-- lib/pages/intro_view.dart | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 011b8a27a..d536b7d4c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -73,6 +73,7 @@ import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/stack_file_system.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; +import 'package:stackwallet/whiteLabel.dart'; import 'package:stackwallet/widgets/crypto_notifications.dart'; import 'package:window_size/window_size.dart'; @@ -102,7 +103,7 @@ void main(List args) async { } if (Util.isDesktop && !Platform.isIOS) { - setWindowTitle('Stack Wallet'); + setWindowTitle(WhiteLabel.appName); setWindowMinSize(const Size(1220, 100)); setWindowMaxSize(Size.infinite); @@ -617,7 +618,7 @@ class _MaterialAppWithThemeState extends ConsumerState return MaterialApp( key: GlobalKey(), navigatorKey: navigatorKey, - title: 'Stack Wallet', + title: WhiteLabel.appName, onGenerateRoute: RouteGenerator.generateRoute, theme: ThemeData( extensions: [colorScheme], diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index 53c4b8740..790c8d348 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -247,7 +247,7 @@ class PrivacyAndTOSText extends StatelessWidget { text: TextSpan( style: STextStyles.label(context).copyWith(fontSize: fontSize), children: [ - const TextSpan(text: "By using Stack Wallet, you agree to the "), + TextSpan(text: "By using ${WhiteLabel.appName}, you agree to the "), TextSpan( text: "Terms of service", style: STextStyles.richLink(context).copyWith(fontSize: fontSize), From 570a5f378f4d71ecb6104adbfd823275558e3290 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 14:44:19 -0500 Subject: [PATCH 060/318] whiteLabel.dart -> app_config.dart related rafactorings --- lib/main.dart | 6 +++--- lib/pages/address_book_views/address_book_view.dart | 4 ++-- .../exchange_view/exchange_step_views/step_4_view.dart | 4 ++-- lib/pages/home_view/home_view.dart | 4 ++-- lib/pages/intro_view.dart | 6 +++--- .../stack_backup_views/restore_from_file_view.dart | 4 ++-- .../sub_views/stack_restore_progress_view.dart | 4 ++-- .../settings_views/global_settings_view/support_view.dart | 4 ++-- .../address_book_view/desktop_address_book.dart | 4 ++-- .../desktop_exchange/exchange_steps/step_scaffold.dart | 4 ++-- lib/pages_desktop_specific/desktop_menu.dart | 6 +++--- .../my_stack_view/exit_to_my_stack_button.dart | 4 ++-- lib/pages_desktop_specific/my_stack_view/my_stack_view.dart | 4 ++-- lib/pages_desktop_specific/password/desktop_login_view.dart | 4 ++-- .../password/forgotten_passphrase_restore_from_swb.dart | 4 ++-- .../settings/settings_menu/desktop_about_view.dart | 4 ++-- lib/utilities/featured_paynyms.dart | 4 ++-- lib/{whiteLabel.dart => white_label.dart} | 2 +- 18 files changed, 38 insertions(+), 38 deletions(-) rename lib/{whiteLabel.dart => white_label.dart} (86%) diff --git a/lib/main.dart b/lib/main.dart index d536b7d4c..5bdc64710 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -73,7 +73,7 @@ import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/stack_file_system.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/crypto_notifications.dart'; import 'package:window_size/window_size.dart'; @@ -103,7 +103,7 @@ void main(List args) async { } if (Util.isDesktop && !Platform.isIOS) { - setWindowTitle(WhiteLabel.appName); + setWindowTitle(AppConfig.appName); setWindowMinSize(const Size(1220, 100)); setWindowMaxSize(Size.infinite); @@ -618,7 +618,7 @@ class _MaterialAppWithThemeState extends ConsumerState return MaterialApp( key: GlobalKey(), navigatorKey: navigatorKey, - title: WhiteLabel.appName, + title: AppConfig.appName, onGenerateRoute: RouteGenerator.generateRoute, theme: ThemeData( extensions: [colorScheme], diff --git a/lib/pages/address_book_views/address_book_view.dart b/lib/pages/address_book_views/address_book_view.dart index 8bc82f49e..bd39a26a4 100644 --- a/lib/pages/address_book_views/address_book_view.dart +++ b/lib/pages/address_book_views/address_book_view.dart @@ -26,7 +26,7 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; @@ -108,7 +108,7 @@ class _AddressBookViewState extends ConsumerState { ); } final self = ContactEntry( - name: "My ${WhiteLabel.prefix}", + name: "My ${AppConfig.prefix}", addresses: addresses, isFavorite: true, customId: "default", diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index ba8a3871a..bbacf47ef 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -37,7 +37,7 @@ import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; @@ -817,7 +817,7 @@ class _Step4ViewState extends ConsumerState { Builder( builder: (context) { String buttonTitle = - "Send from {$WhiteLabel.appName}"; + "Send from {$AppConfig.appName}"; final tuple = ref .read( diff --git a/lib/pages/home_view/home_view.dart b/lib/pages/home_view/home_view.dart index 9d3a404a5..94987200c 100644 --- a/lib/pages/home_view/home_view.dart +++ b/lib/pages/home_view/home_view.dart @@ -30,7 +30,7 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -203,7 +203,7 @@ class _HomeViewState extends ConsumerState { width: 16, ), Text( - "My ${WhiteLabel.prefix}", + "My ${AppConfig.prefix}", style: STextStyles.navBarTitle(context), ) ], diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index 790c8d348..eba0f7b1c 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -21,7 +21,7 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -200,7 +200,7 @@ class AppNameText extends StatelessWidget { @override Widget build(BuildContext context) { return Text( - WhiteLabel.appName, + AppConfig.appName, // TODO [prio=high]: appName is now static due to `'appName' can't be // accessed using static access.`", check that that doesn't cause issues // elsewhere. @@ -247,7 +247,7 @@ class PrivacyAndTOSText extends StatelessWidget { text: TextSpan( style: STextStyles.label(context).copyWith(fontSize: fontSize), children: [ - TextSpan(text: "By using ${WhiteLabel.appName}, you agree to the "), + TextSpan(text: "By using ${AppConfig.appName}, you agree to the "), TextSpan( text: "Terms of service", style: STextStyles.richLink(context).copyWith(fontSize: fontSize), diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart index dde6cb76c..b337b6068 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart @@ -26,7 +26,7 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -537,7 +537,7 @@ class _RestoreFromFileViewState extends ConsumerState { .all( 32), child: Text( - "Restore {$WhiteLabel.appName}", + "Restore {$AppConfig.appName}", style: STextStyles .desktopH3( context), diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart index ce4b7c665..bbb97c0dd 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart @@ -32,7 +32,7 @@ import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; @@ -264,7 +264,7 @@ class _StackRestoreProgressViewState }, ), title: Text( - "Restoring {$WhiteLabel.appName}", + "Restoring {$AppConfig.appName}", style: STextStyles.navBarTitle(context), ), ), diff --git a/lib/pages/settings_views/global_settings_view/support_view.dart b/lib/pages/settings_views/global_settings_view/support_view.dart index 247264464..be9e2d665 100644 --- a/lib/pages/settings_views/global_settings_view/support_view.dart +++ b/lib/pages/settings_views/global_settings_view/support_view.dart @@ -15,7 +15,7 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -89,7 +89,7 @@ class SupportView extends StatelessWidget { AboutItem( linkUrl: "https://discord.com/invite/mRPZuXx3At", label: "Discord", - buttonText: WhiteLabel.appName, + buttonText: AppConfig.appName, iconAsset: Assets.socials.discord, isDesktop: isDesktop, ), diff --git a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart index 1fdf0eb8c..302b8ac0d 100644 --- a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart +++ b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart @@ -28,7 +28,7 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -140,7 +140,7 @@ class _DesktopAddressBook extends ConsumerState { ); } final self = ContactEntry( - name: "My ${WhiteLabel.prefix}", + name: "My ${AppConfig.prefix}", addresses: addresses, isFavorite: true, customId: "default", diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index bb4390a4f..38f2db774 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -33,7 +33,7 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/custom_loading_overlay.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -317,7 +317,7 @@ class _StepScaffoldState extends ConsumerState { onPressed: onBack, ), secondChild: SecondaryButton( - label: "Send from {$WhiteLabel.appName}", + label: "Send from {$AppConfig.appName}", buttonHeight: ButtonHeight.l, onPressed: sendFromStack, ), diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index a6f52a4cd..06f47cbd1 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -20,7 +20,7 @@ import 'package:stackwallet/providers/desktop/current_desktop_menu_item.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/desktop/desktop_tor_status_button.dart'; import 'package:stackwallet/widgets/desktop/living_stack_icon.dart'; @@ -139,7 +139,7 @@ class _DesktopMenuState extends ConsumerState { child: SizedBox( height: 28, child: Text( - WhiteLabel.appName, + AppConfig.appName, style: STextStyles.desktopH2(context).copyWith( fontSize: 18, height: 23.4 / 18, @@ -181,7 +181,7 @@ class _DesktopMenuState extends ConsumerState { DesktopMenuItem( duration: duration, icon: const DesktopMyStackIcon(), - label: "My ${WhiteLabel.prefix}", + label: "My ${AppConfig.prefix}", value: DesktopMenuItemId.myStack, onChanged: updateSelectedMenuItem, controller: controllers[0], diff --git a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart index c91e75836..0a1b2bdd0 100644 --- a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart @@ -12,7 +12,7 @@ import 'package:flutter/material.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; class ExitToMyStackButton extends StatelessWidget { const ExitToMyStackButton({ @@ -45,7 +45,7 @@ class ExitToMyStackButton extends StatelessWidget { horizontal: 30, ), child: Text( - "Exit to My ${WhiteLabel.prefix}", + "Exit to My ${AppConfig.prefix}", style: STextStyles.desktopButtonSmallSecondaryEnabled(context), ), ), diff --git a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart index 05759019f..1d419193b 100644 --- a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart @@ -19,7 +19,7 @@ import 'package:stackwallet/pages_desktop_specific/my_stack_view/my_wallets.dart import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; @@ -132,7 +132,7 @@ class _DesktopMyStackTitleState extends ConsumerState { width: 12, ), Text( - "My ${WhiteLabel.prefix}", + "My ${AppConfig.prefix}", style: STextStyles.desktopH3(context), ) ], diff --git a/lib/pages_desktop_specific/password/desktop_login_view.dart b/lib/pages_desktop_specific/password/desktop_login_view.dart index b2ac42a73..e6ad79a8c 100644 --- a/lib/pages_desktop_specific/password/desktop_login_view.dart +++ b/lib/pages_desktop_specific/password/desktop_login_view.dart @@ -29,7 +29,7 @@ import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; @@ -201,7 +201,7 @@ class _DesktopLoginViewState extends ConsumerState { height: 42, ), Text( - WhiteLabel.appName, + AppConfig.appName, style: STextStyles.desktopH1(context), ), const SizedBox( diff --git a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart index 0734868b4..44c117702 100644 --- a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart +++ b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart @@ -30,7 +30,7 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -155,7 +155,7 @@ class _ForgottenPassphraseRestoreFromSWBState mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - "Restoring {$WhiteLabel.appName}", + "Restoring {$AppConfig.appName}", style: STextStyles.desktopH3(context), ), ], diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index 35c7fb53d..23f0a6504 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -21,7 +21,7 @@ import 'package:package_info_plus/package_info_plus.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; @@ -166,7 +166,7 @@ class DesktopAboutView extends ConsumerWidget { mainAxisAlignment: MainAxisAlignment.start, children: [ Text( - WhiteLabel.appName, + AppConfig.appName, style: STextStyles.desktopH3(context), textAlign: TextAlign.start, ), diff --git a/lib/utilities/featured_paynyms.dart b/lib/utilities/featured_paynyms.dart index e0771328f..41b7c6eb3 100644 --- a/lib/utilities/featured_paynyms.dart +++ b/lib/utilities/featured_paynyms.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/whiteLabel.dart'; +import 'package:stackwallet/white_label.dart'; abstract class FeaturedPaynyms { // TODO: replace with actual value @@ -18,7 +18,7 @@ abstract class FeaturedPaynyms { "PM8TJdQcNk27JpxGRtNR7Hnh8VkJk4Nf17BthLx89fM3iX3UL2YshyaiTAvKgTCVvpgsAgY1DbojkAaUd3Rcn48NEn4uUBuqkaSddgKL8TPAAEQXNuE6"; static Map get featured => { - WhiteLabel.appName: stackWallet, + AppConfig.appName: stackWallet, // "Samourai Wallet Dev Fund": samouraiWalletDevFund, }; } diff --git a/lib/whiteLabel.dart b/lib/white_label.dart similarity index 86% rename from lib/whiteLabel.dart rename to lib/white_label.dart index 0e00e0e7a..123cf606c 100644 --- a/lib/whiteLabel.dart +++ b/lib/white_label.dart @@ -1,4 +1,4 @@ -abstract class WhiteLabel { +abstract class AppConfig { static String get appName => prefix + separator + suffix; static String get prefix => "Stack"; From b917dab5c048862bd6b151186c4c56216b016f88 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 13 May 2024 15:08:52 -0500 Subject: [PATCH 061/318] whiteLabel.dart -> app_config.dart redux --- lib/{white_label.dart => app_config.dart} | 0 lib/main.dart | 2 +- lib/pages/address_book_views/address_book_view.dart | 2 +- lib/pages/exchange_view/exchange_step_views/step_4_view.dart | 2 +- lib/pages/home_view/home_view.dart | 2 +- lib/pages/intro_view.dart | 2 +- .../stack_backup_views/restore_from_file_view.dart | 2 +- .../sub_views/stack_restore_progress_view.dart | 2 +- lib/pages/settings_views/global_settings_view/support_view.dart | 2 +- .../address_book_view/desktop_address_book.dart | 2 +- .../desktop_exchange/exchange_steps/step_scaffold.dart | 2 +- lib/pages_desktop_specific/desktop_menu.dart | 2 +- .../my_stack_view/exit_to_my_stack_button.dart | 2 +- lib/pages_desktop_specific/my_stack_view/my_stack_view.dart | 2 +- lib/pages_desktop_specific/password/desktop_login_view.dart | 2 +- .../password/forgotten_passphrase_restore_from_swb.dart | 2 +- .../settings/settings_menu/desktop_about_view.dart | 2 +- lib/utilities/featured_paynyms.dart | 2 +- 18 files changed, 17 insertions(+), 17 deletions(-) rename lib/{white_label.dart => app_config.dart} (100%) diff --git a/lib/white_label.dart b/lib/app_config.dart similarity index 100% rename from lib/white_label.dart rename to lib/app_config.dart diff --git a/lib/main.dart b/lib/main.dart index 5bdc64710..6510e26b0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -28,6 +28,7 @@ import 'package:hive_flutter/hive_flutter.dart'; import 'package:isar/isar.dart'; import 'package:keyboard_dismisser/keyboard_dismisser.dart'; import 'package:path_provider/path_provider.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/db/db_version_migration.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/db/isar/main_db.dart'; @@ -73,7 +74,6 @@ import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/stack_file_system.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/crypto_notifications.dart'; import 'package:window_size/window_size.dart'; diff --git a/lib/pages/address_book_views/address_book_view.dart b/lib/pages/address_book_views/address_book_view.dart index bd39a26a4..61d6233bd 100644 --- a/lib/pages/address_book_views/address_book_view.dart +++ b/lib/pages/address_book_views/address_book_view.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/isar/models/contact_entry.dart'; import 'package:stackwallet/pages/address_book_views/subviews/add_address_book_entry_view.dart'; @@ -26,7 +27,6 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index bbacf47ef..496975116 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -15,6 +15,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/exchange/incomplete_exchange.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/pages/exchange_view/confirm_change_now_send.dart'; @@ -37,7 +38,6 @@ import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; diff --git a/lib/pages/home_view/home_view.dart b/lib/pages/home_view/home_view.dart index 94987200c..a54f89836 100644 --- a/lib/pages/home_view/home_view.dart +++ b/lib/pages/home_view/home_view.dart @@ -14,6 +14,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages/buy_view/buy_view.dart'; import 'package:stackwallet/pages/exchange_view/exchange_view.dart'; import 'package:stackwallet/pages/home_view/sub_widgets/home_view_button_bar.dart'; @@ -30,7 +31,6 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index eba0f7b1c..6c9984610 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -14,6 +14,7 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages/stack_privacy_calls.dart'; import 'package:stackwallet/pages_desktop_specific/password/create_password_view.dart'; import 'package:stackwallet/themes/stack_colors.dart'; @@ -21,7 +22,6 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; import 'package:url_launcher/url_launcher.dart'; diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart index b337b6068..f559889cb 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart @@ -15,6 +15,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart'; @@ -26,7 +27,6 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart index bbb97c0dd..9f5b90828 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart @@ -13,6 +13,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages/home_view/home_view.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/dialogs/cancel_stack_restore_dialog.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; @@ -32,7 +33,6 @@ import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; diff --git a/lib/pages/settings_views/global_settings_view/support_view.dart b/lib/pages/settings_views/global_settings_view/support_view.dart index be9e2d665..8e93cba74 100644 --- a/lib/pages/settings_views/global_settings_view/support_view.dart +++ b/lib/pages/settings_views/global_settings_view/support_view.dart @@ -10,12 +10,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; diff --git a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart index 302b8ac0d..5932c0826 100644 --- a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart +++ b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/isar/models/contact_entry.dart'; import 'package:stackwallet/pages/address_book_views/subviews/add_address_book_entry_view.dart'; @@ -28,7 +29,6 @@ import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index 38f2db774..b01cf6898 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -14,6 +14,7 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:qr_flutter/qr_flutter.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/exchange/incomplete_exchange.dart'; import 'package:stackwallet/models/exchange/response_objects/trade.dart'; import 'package:stackwallet/pages/exchange_view/send_from_view.dart'; @@ -33,7 +34,6 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/custom_loading_overlay.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index 06f47cbd1..3ca7fc8e8 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -14,13 +14,13 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_menu_item.dart'; import 'package:stackwallet/pages_desktop_specific/settings/settings_menu.dart'; import 'package:stackwallet/providers/desktop/current_desktop_menu_item.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/desktop/desktop_tor_status_button.dart'; import 'package:stackwallet/widgets/desktop/living_stack_icon.dart'; diff --git a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart index 0a1b2bdd0..3bc0f20f0 100644 --- a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart @@ -9,10 +9,10 @@ */ import 'package:flutter/material.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/white_label.dart'; class ExitToMyStackButton extends StatelessWidget { const ExitToMyStackButton({ diff --git a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart index 1d419193b..50767d784 100644 --- a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart @@ -13,13 +13,13 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/hidden_settings.dart'; import 'package:stackwallet/pages/wallets_view/sub_widgets/empty_wallets.dart'; import 'package:stackwallet/pages_desktop_specific/my_stack_view/my_wallets.dart'; import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; diff --git a/lib/pages_desktop_specific/password/desktop_login_view.dart b/lib/pages_desktop_specific/password/desktop_login_view.dart index e6ad79a8c..078038172 100644 --- a/lib/pages_desktop_specific/password/desktop_login_view.dart +++ b/lib/pages_desktop_specific/password/desktop_login_view.dart @@ -14,6 +14,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/db/db_version_migration.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; @@ -29,7 +30,6 @@ import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; diff --git a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart index 44c117702..1affdc0fe 100644 --- a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart +++ b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart @@ -15,6 +15,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; @@ -30,7 +31,6 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index 23f0a6504..cfe90cf17 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -18,10 +18,10 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:http/http.dart'; import 'package:lelantus/git_versions.dart' as FIRO_VERSIONS; import 'package:package_info_plus/package_info_plus.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/white_label.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; diff --git a/lib/utilities/featured_paynyms.dart b/lib/utilities/featured_paynyms.dart index 41b7c6eb3..aecd8de8c 100644 --- a/lib/utilities/featured_paynyms.dart +++ b/lib/utilities/featured_paynyms.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/white_label.dart'; +import 'package:stackwallet/app_config.dart'; abstract class FeaturedPaynyms { // TODO: replace with actual value From a82f6c3c6ec2a1c93d078c65a43ae4ed1df89c1f Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 15 May 2024 15:20:45 -0600 Subject: [PATCH 062/318] coin enum finally gone --- lib/db/db_version_migration.dart | 174 +++- lib/db/hive/db.dart | 178 ++-- lib/db/isar/main_db.dart | 43 +- lib/db/migrate_wallets_to_isar.dart | 30 +- lib/db/queries/queries.dart | 8 +- lib/dto/ethereum/eth_token_tx_extra_dto.dart | 7 +- lib/dto/ethereum/eth_tx_dto.dart | 5 +- .../cached_electrumx_client.dart | 94 +- .../add_wallet_list_entity.dart | 4 +- .../sub_classes/coin_entity.dart | 12 +- .../sub_classes/eth_token_entity.dart | 9 +- lib/models/address_book_filter.dart | 22 +- lib/models/balance.dart | 6 +- lib/models/contact_address_entry.dart | 11 +- lib/models/contact_address_entry_data.dart | 15 +- lib/models/isar/exchange_cache/currency.dart | 4 +- lib/models/isar/models/block_explorer.dart | 7 +- lib/models/isar/models/contact_entry.dart | 19 +- lib/models/isar/stack_theme.dart | 72 +- lib/models/paymint/transactions_model.dart | 31 +- lib/models/wallet_restore_state.dart | 4 +- lib/notifications/notification_card.dart | 5 +- .../add_wallet_view/add_wallet_view.dart | 26 +- .../sub_widgets/coin_select_item.dart | 6 +- .../create_or_restore_wallet_view.dart | 16 +- .../sub_widgets/coin_image.dart | 8 +- .../create_or_restore_wallet_title.dart | 8 +- .../create_wallet_button_group.dart | 13 +- .../new/steps/frost_create_step_5.dart | 2 +- .../reshare/frost_reshare_step_1c.dart | 2 +- .../restore/restore_frost_ms_wallet_view.dart | 2 +- .../name_your_wallet_view.dart | 39 +- .../new_wallet_options_view.dart | 16 +- ...w_wallet_recovery_phrase_warning_view.dart | 165 ++-- .../restore_options_view.dart | 60 +- .../restore_wallet_view.dart | 200 ++-- .../select_wallet_for_token_view.dart | 4 +- .../verify_recovery_phrase_view.dart | 47 +- .../address_book_views/address_book_view.dart | 21 +- .../subviews/address_book_filter_view.dart | 20 +- .../subviews/coin_select_sheet.dart | 18 +- .../subviews/contact_details_view.dart | 9 +- .../subviews/contact_popup.dart | 5 +- .../new_contact_address_entry_form.dart | 90 +- lib/pages/buy_view/buy_form.dart | 185 ++-- lib/pages/buy_view/buy_in_wallet_view.dart | 10 +- lib/pages/buy_view/buy_view.dart | 10 +- .../sub_widgets/crypto_selection_view.dart | 33 +- lib/pages/cashfusion/cashfusion_view.dart | 4 +- .../cashfusion/fusion_progress_view.dart | 4 +- lib/pages/coin_control/coin_control_view.dart | 11 +- lib/pages/coin_control/utxo_card.dart | 7 +- lib/pages/coin_control/utxo_details_view.dart | 7 +- .../exchange_view/choose_from_stack_view.dart | 10 +- .../confirm_change_now_send.dart | 5 +- .../exchange_currency_selection_view.dart | 88 +- lib/pages/exchange_view/exchange_form.dart | 18 +- .../exchange_step_views/step_2_view.dart | 25 +- .../exchange_step_views/step_4_view.dart | 31 +- lib/pages/exchange_view/send_from_view.dart | 18 +- .../sub_widgets/exchange_provider_option.dart | 24 +- .../exchange_view/trade_details_view.dart | 226 +++-- .../wallet_initiated_exchange_view.dart | 10 +- lib/pages/monkey/monkey_loaded_view.dart | 4 +- lib/pages/ordinals/ordinal_details_view.dart | 7 +- .../confirm_paynym_connect_dialog.dart | 8 +- .../paynym/dialogs/paynym_details_popup.dart | 5 +- .../subwidgets/desktop_paynym_details.dart | 2 +- lib/pages/pinpad_views/lock_screen_view.dart | 2 +- .../receive_view/addresses/address_card.dart | 4 +- .../addresses/address_details_view.dart | 15 +- .../addresses/address_qr_popup.dart | 16 +- .../generate_receiving_uri_qr_code_view.dart | 28 +- lib/pages/receive_view/receive_view.dart | 4 +- .../send_view/confirm_transaction_view.dart | 125 +-- .../send_view/frost_ms/frost_send_view.dart | 6 +- lib/pages/send_view/frost_ms/recipient.dart | 9 +- .../send_steps/frost_send_step_4.dart | 11 +- lib/pages/send_view/send_view.dart | 122 ++- .../building_transaction_dialog.dart | 4 +- .../sending_transaction_dialog.dart | 10 +- .../transaction_fee_selection_sheet.dart | 121 ++- lib/pages/send_view/token_send_view.dart | 13 +- .../manage_coin_units/choose_unit_sheet.dart | 8 +- .../edit_coin_units_view.dart | 8 +- .../manage_coin_units_view.dart | 19 +- .../advanced_views/manage_explorer_view.dart | 8 +- .../global_settings_view/hidden_settings.dart | 145 +-- .../add_edit_node_view.dart | 305 ++---- .../manage_nodes_views/coin_nodes_view.dart | 8 +- .../manage_nodes_views/manage_nodes_view.dart | 21 +- .../manage_nodes_views/node_details_view.dart | 238 ++--- .../helpers/restore_create_backup.dart | 228 +++-- .../sub_widgets/restoring_wallet_card.dart | 12 +- .../startup_wallet_selection_view.dart | 301 +++--- .../wallet_syncing_options_view.dart | 6 +- .../sub_widgets/nodes_list.dart | 38 +- .../wallet_network_settings_view.dart | 75 +- .../wallet_settings_view.dart | 23 +- .../sub_widgets/my_token_select_item.dart | 8 +- .../token_view/sub_widgets/token_summary.dart | 35 +- .../sub_widgets/transactions_list.dart | 8 +- .../wallet_view/sub_widgets/tx_icon.dart | 8 +- .../wallet_balance_toggle_sheet.dart | 7 +- .../sub_widgets/wallet_summary_info.dart | 11 +- .../all_transactions_view.dart | 17 +- .../transaction_details_view.dart | 822 +++++++++------- .../transaction_search_filter_view.dart | 10 +- .../tx_v2/all_transactions_v2_view.dart | 133 +-- .../tx_v2/fusion_group_details_view.dart | 8 +- .../tx_v2/transaction_v2_card.dart | 17 +- .../tx_v2/transaction_v2_details_view.dart | 914 ++++++++++-------- .../tx_v2/transaction_v2_list.dart | 4 +- .../tx_v2/transaction_v2_list_item.dart | 4 +- lib/pages/wallet_view/wallet_view.dart | 32 +- .../sub_widgets/favorite_card.dart | 8 +- .../sub_widgets/wallet_list_item.dart | 17 +- lib/pages/wallets_view/wallets_overview.dart | 11 +- .../desktop_address_book.dart | 19 +- .../subwidgets/desktop_address_card.dart | 2 +- .../cashfusion/desktop_cashfusion_view.dart | 4 +- .../cashfusion/sub_widgets/fusion_dialog.dart | 10 +- .../desktop_coin_control_use_dialog.dart | 20 +- .../desktop_coin_control_view.dart | 8 +- .../coin_control/utxo_row.dart | 5 +- .../exchange_steps/step_scaffold.dart | 10 +- .../subwidgets/desktop_step_2.dart | 12 +- .../subwidgets/desktop_step_4.dart | 4 +- .../subwidgets/desktop_choose_from_stack.dart | 15 +- .../my_stack_view/coin_wallets_table.dart | 10 +- .../paynym/desktop_paynym_send_dialog.dart | 1 - .../my_stack_view/wallet_summary_table.dart | 12 +- .../address_book_address_chooser.dart | 10 +- .../sub_widgets/contact_list_item.dart | 10 +- .../sub_widgets/desktop_auth_send.dart | 4 +- .../sub_widgets/desktop_fee_dropdown.dart | 30 +- .../sub_widgets/desktop_receive.dart | 8 +- .../wallet_view/sub_widgets/desktop_send.dart | 93 +- .../sub_widgets/desktop_token_send.dart | 9 +- .../sub_widgets/desktop_wallet_features.dart | 12 +- .../sub_widgets/desktop_wallet_summary.dart | 9 +- .../more_features/more_features_dialog.dart | 14 +- .../wallet_view/sub_widgets/my_wallet.dart | 7 +- .../sub_widgets/wallet_options_button.dart | 20 +- .../desktop_ordinal_details_view.dart | 3 +- ...desktop_manage_block_explorers_dialog.dart | 21 +- .../settings_menu/nodes_settings.dart | 34 +- .../exchange_form_state_provider.dart | 14 +- ...exchange_send_from_wallet_id_provider.dart | 4 +- .../ui/preview_tx_button_state_provider.dart | 8 +- lib/route_generator.dart | 521 +++++----- lib/services/address_book_service.dart | 7 +- lib/services/buy/simplex/simplex_api.dart | 150 +-- lib/services/ethereum/ethereum_api.dart | 6 +- .../node_connection_status_changed_event.dart | 9 +- .../wallet_sync_status_changed_event.dart | 9 +- lib/services/node_service.dart | 108 ++- lib/services/notifications_service.dart | 64 +- lib/services/price.dart | 62 +- lib/services/price_service.dart | 10 +- lib/services/wallets.dart | 8 +- lib/services/wallets_service.dart | 38 +- lib/supported_coins.dart | 121 ++- lib/themes/coin_card_provider.dart | 13 +- lib/themes/coin_icon_provider.dart | 48 +- lib/themes/coin_image_provider.dart | 94 +- lib/themes/color_theme.dart | 88 -- lib/themes/stack_colors.dart | 54 -- lib/themes/theme_providers.dart | 6 +- lib/utilities/address_utils.dart | 329 +++---- lib/utilities/amount/amount_formatter.dart | 11 +- lib/utilities/amount/amount_unit.dart | 129 +-- lib/utilities/block_explorers.dart | 75 +- lib/utilities/constants.dart | 284 ------ lib/utilities/default_nodes.dart | 396 +------- lib/utilities/enums/coin_enum.dart | 632 ------------ .../enums/derive_path_type_enum.dart | 47 - lib/utilities/eth_commons.dart | 7 +- lib/utilities/prefs.dart | 68 +- lib/utilities/test_node_connection.dart | 198 ++++ lib/wallets/crypto_currency/coins/banano.dart | 59 +- .../crypto_currency/coins/bitcoin.dart | 100 +- .../crypto_currency/coins/bitcoin_frost.dart | 142 ++- .../crypto_currency/coins/bitcoincash.dart | 92 +- .../crypto_currency/coins/dogecoin.dart | 85 +- lib/wallets/crypto_currency/coins/ecash.dart | 75 +- .../crypto_currency/coins/epiccash.dart | 79 +- .../crypto_currency/coins/ethereum.dart | 82 +- lib/wallets/crypto_currency/coins/firo.dart | 83 +- .../crypto_currency/coins/litecoin.dart | 83 +- lib/wallets/crypto_currency/coins/monero.dart | 70 +- .../crypto_currency/coins/namecoin.dart | 79 +- lib/wallets/crypto_currency/coins/nano.dart | 61 +- .../crypto_currency/coins/particl.dart | 75 +- .../crypto_currency/coins/peercoin.dart | 106 +- lib/wallets/crypto_currency/coins/solana.dart | 72 +- .../crypto_currency/coins/stellar.dart | 103 +- lib/wallets/crypto_currency/coins/tezos.dart | 75 +- .../crypto_currency/coins/wownero.dart | 70 +- .../crypto_currency/crypto_currency.dart | 47 +- .../electrumx_currency_interface.dart | 5 + .../interfaces/paynym_currency_interface.dart | 3 +- .../intermediate/cryptonote_currency.dart | 4 + .../intermediate/nano_currency.dart | 15 + lib/wallets/isar/models/wallet_info.dart | 35 +- .../providers/all_wallets_info_provider.dart | 10 +- .../isar/providers/wallet_info_provider.dart | 56 +- .../wallet/impl/bitcoin_frost_wallet.dart | 12 +- .../wallet/impl/bitcoincash_wallet.dart | 21 +- lib/wallets/wallet/impl/dogecoin_wallet.dart | 11 +- lib/wallets/wallet/impl/ecash_wallet.dart | 20 +- lib/wallets/wallet/impl/epiccash_wallet.dart | 13 +- lib/wallets/wallet/impl/ethereum_wallet.dart | 5 +- lib/wallets/wallet/impl/firo_wallet.dart | 21 +- lib/wallets/wallet/impl/litecoin_wallet.dart | 12 +- lib/wallets/wallet/impl/namecoin_wallet.dart | 11 +- lib/wallets/wallet/impl/particl_wallet.dart | 12 +- lib/wallets/wallet/impl/peercoin_wallet.dart | 12 +- lib/wallets/wallet/impl/solana_wallet.dart | 16 +- lib/wallets/wallet/impl/tezos_wallet.dart | 30 +- .../wallet/intermediate/bip39_hd_wallet.dart | 6 +- .../wallet/intermediate/bip39_wallet.dart | 2 +- lib/wallets/wallet/wallet.dart | 106 +- .../bcash_interface.dart | 4 +- .../cash_fusion_interface.dart | 20 +- .../electrumx_interface.dart | 229 +++-- .../lelantus_interface.dart | 134 +-- .../nano_interface.dart | 35 +- .../ordinals_interface.dart | 4 +- .../paynym_interface.dart | 210 ++-- .../spark_interface.dart | 14 +- lib/widgets/address_book_card.dart | 7 +- lib/widgets/choose_coin_view.dart | 25 +- lib/widgets/crypto_notifications.dart | 10 +- lib/widgets/desktop/desktop_fee_dialog.dart | 106 +- lib/widgets/dialogs/tor_warning_dialog.dart | 10 +- lib/widgets/fee_slider.dart | 15 +- lib/widgets/icon_widgets/eth_token_icon.dart | 9 +- lib/widgets/managed_favorite.dart | 16 +- lib/widgets/node_card.dart | 244 ++--- lib/widgets/node_options_sheet.dart | 76 +- lib/widgets/transaction_card.dart | 14 +- .../wallet_info_row_coin_icon.dart | 15 +- test/address_utils_test.dart | 1 - test/cached_electrumx_test.dart | 2 +- test/global_events_test.dart | 1 - test/services/node_service_test.dart | 2 +- test/utilities/amount/amount_unit_test.dart | 1 - test/widget_tests/address_book_card_test.dart | 2 +- test/widget_tests/node_card_test.dart | 2 +- .../widget_tests/node_options_sheet_test.dart | 2 +- 251 files changed, 7040 insertions(+), 6576 deletions(-) delete mode 100644 lib/themes/color_theme.dart delete mode 100644 lib/utilities/enums/coin_enum.dart create mode 100644 lib/utilities/test_node_connection.dart create mode 100644 lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart diff --git a/lib/db/db_version_migration.dart b/lib/db/db_version_migration.dart index eb75bf5b1..3cc9b9c3c 100644 --- a/lib/db/db_version_migration.dart +++ b/lib/db/db_version_migration.dart @@ -26,13 +26,14 @@ import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/services/mixins/wallet_db.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/wallets_service.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; @@ -59,14 +60,16 @@ class DbVersionMigrator with WalletDB { ElectrumXClient? client; int? latestSetId; + final firo = Firo(CryptoCurrencyNetwork.main); // only instantiate client if there are firo wallets - if (walletInfoList.values.any((element) => element.coin == Coin.firo)) { + if (walletInfoList.values + .any((element) => element.coinIdentifier == firo.identifier)) { await Hive.openBox(DB.boxNameNodeModels); await Hive.openBox(DB.boxNamePrimaryNodes); - final node = nodeService.getPrimaryNodeFor(coin: Coin.firo) ?? - DefaultNodes.firo; - List failovers = nodeService - .failoverNodesFor(coin: Coin.firo) + final node = + nodeService.getPrimaryNodeFor(currency: firo) ?? firo.defaultNode; + final List failovers = nodeService + .failoverNodesFor(currency: firo) .map( (e) => ElectrumXNode( address: e.host, @@ -80,11 +83,12 @@ class DbVersionMigrator with WalletDB { client = ElectrumXClient.from( node: ElectrumXNode( - address: node.host, - port: node.port, - name: node.name, - id: node.id, - useSSL: node.useSSL), + address: node.host, + port: node.port, + name: node.name, + id: node.id, + useSSL: node.useSSL, + ), prefs: prefs, failovers: failovers, cryptoCurrency: Firo(CryptoCurrencyNetwork.main), @@ -96,26 +100,29 @@ class DbVersionMigrator with WalletDB { // default to 2 for now latestSetId = 2; Logging.instance.log( - "Failed to fetch latest coin id during firo db migrate: $e \nUsing a default value of 2", - level: LogLevel.Warning); + "Failed to fetch latest coin id during firo db migrate: $e \nUsing a default value of 2", + level: LogLevel.Warning, + ); } } for (final walletInfo in walletInfoList.values) { // migrate each firo wallet's lelantus coins - if (walletInfo.coin == Coin.firo) { + if (walletInfo.coinIdentifier == firo.identifier) { await Hive.openBox(walletInfo.walletId); final _lelantusCoins = DB.instance.get( - boxName: walletInfo.walletId, key: '_lelantus_coins') as List?; + boxName: walletInfo.walletId, + key: '_lelantus_coins', + ) as List?; final List> lelantusCoins = []; - for (var lCoin in _lelantusCoins ?? []) { + for (final lCoin in _lelantusCoins ?? []) { lelantusCoins .add({lCoin.keys.first: lCoin.values.first as LelantusCoin}); } - List> coins = []; + final List> coins = []; for (final element in lelantusCoins) { - LelantusCoin coin = element.values.first; + final LelantusCoin coin = element.values.first; int anonSetId = coin.anonymitySetId; if (coin.anonymitySetId == 1 && (coin.publicCoin == '' || @@ -123,21 +130,31 @@ class DbVersionMigrator with WalletDB { anonSetId = latestSetId!; } coins.add({ - element.keys.first: LelantusCoin(coin.index, coin.value, - coin.publicCoin, coin.txId, anonSetId, coin.isUsed) + element.keys.first: LelantusCoin( + coin.index, + coin.value, + coin.publicCoin, + coin.txId, + anonSetId, + coin.isUsed, + ), }); } Logger.print("newcoins $coins", normalLength: false); await DB.instance.put( - boxName: walletInfo.walletId, - key: '_lelantus_coins', - value: coins); + boxName: walletInfo.walletId, + key: '_lelantus_coins', + value: coins, + ); } } // update version await DB.instance.put( - boxName: DB.boxNameDBInfo, key: "hive_data_version", value: 1); + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + value: 1, + ); // try to continue migrating return await migrate(1, secureStore: secureStore); @@ -161,7 +178,10 @@ class DbVersionMigrator with WalletDB { // update version await DB.instance.put( - boxName: DB.boxNameDBInfo, key: "hive_data_version", value: 2); + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + value: 2, + ); // try to continue migrating return await migrate(2, secureStore: secureStore); @@ -176,16 +196,26 @@ class DbVersionMigrator with WalletDB { // update version await DB.instance.put( - boxName: DB.boxNameDBInfo, key: "hive_data_version", value: 3); + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + value: 3, + ); return await migrate(3, secureStore: secureStore); case 3: // clear possible broken firo cache - await DB.instance.clearSharedTransactionCache(coin: Coin.firo); + await DB.instance.clearSharedTransactionCache( + currency: Firo( + CryptoCurrencyNetwork.test, + ), + ); // update version await DB.instance.put( - boxName: DB.boxNameDBInfo, key: "hive_data_version", value: 4); + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + value: 4, + ); // try to continue migrating return await migrate(4, secureStore: secureStore); @@ -196,7 +226,10 @@ class DbVersionMigrator with WalletDB { // update version await DB.instance.put( - boxName: DB.boxNameDBInfo, key: "hive_data_version", value: 5); + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + value: 5, + ); // try to continue migrating return await migrate(5, secureStore: secureStore); @@ -212,11 +245,17 @@ class DbVersionMigrator with WalletDB { "light"; await DB.instance.put( - boxName: DB.boxNamePrefs, key: "theme", value: themeName); + boxName: DB.boxNamePrefs, + key: "theme", + value: themeName, + ); // update version await DB.instance.put( - boxName: DB.boxNameDBInfo, key: "hive_data_version", value: 6); + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + value: 6, + ); // try to continue migrating return await migrate(6, secureStore: secureStore); @@ -287,7 +326,10 @@ class DbVersionMigrator with WalletDB { // update version await DB.instance.put( - boxName: DB.boxNameDBInfo, key: "hive_data_version", value: 7); + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + value: 7, + ); // try to continue migrating return await migrate(7, secureStore: secureStore); @@ -298,7 +340,10 @@ class DbVersionMigrator with WalletDB { // update version await DB.instance.put( - boxName: DB.boxNameDBInfo, key: "hive_data_version", value: 8); + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + value: 8, + ); // try to continue migrating return await migrate(8, secureStore: secureStore); @@ -311,8 +356,10 @@ class DbVersionMigrator with WalletDB { await MainDB.instance.initMainDB(); for (final walletId in walletInfoList.keys) { final info = walletInfoList[walletId]!; - if (info.coin == Coin.bitcoincash || - info.coin == Coin.bitcoincashTestnet) { + if (info.coinIdentifier == + Bitcoincash(CryptoCurrencyNetwork.main).identifier || + info.coinIdentifier == + Bitcoincash(CryptoCurrencyNetwork.test).identifier) { final ids = await MainDB.instance .getAddresses(walletId) .filter() @@ -328,7 +375,10 @@ class DbVersionMigrator with WalletDB { // update version await DB.instance.put( - boxName: DB.boxNameDBInfo, key: "hive_data_version", value: 9); + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + value: 9, + ); // try to continue migrating return await migrate(9, secureStore: secureStore); @@ -339,7 +389,10 @@ class DbVersionMigrator with WalletDB { // update version await DB.instance.put( - boxName: DB.boxNameDBInfo, key: "hive_data_version", value: 10); + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + value: 10, + ); // try to continue migrating return await migrate(10, secureStore: secureStore); @@ -350,7 +403,10 @@ class DbVersionMigrator with WalletDB { // update version await DB.instance.put( - boxName: DB.boxNameDBInfo, key: "hive_data_version", value: 11); + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + value: 11, + ); // try to continue migrating return await migrate(11, secureStore: secureStore); @@ -361,7 +417,10 @@ class DbVersionMigrator with WalletDB { // update version await DB.instance.put( - boxName: DB.boxNameDBInfo, key: "hive_data_version", value: 12); + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + value: 12, + ); // try to continue migrating return await migrate(12, secureStore: secureStore); @@ -392,7 +451,8 @@ class DbVersionMigrator with WalletDB { // we need to manually migrate epic cash transactions as they are not // stored on the epic cash blockchain - if (info.coin == Coin.epicCash) { + final epic = Epiccash(CryptoCurrencyNetwork.main); + if (info.coinIdentifier == epic.identifier) { final txnData = walletBox.get("latest_tx_model") as TransactionData?; // we ever only used index 0 in the past @@ -404,7 +464,7 @@ class DbVersionMigrator with WalletDB { final txns = txnData.getAllTransactions(); for (final tx in txns.values) { - bool isIncoming = tx.txType == "Received"; + final bool isIncoming = tx.txType == "Received"; final iTx = isar_models.Transaction( walletId: walletId, @@ -417,7 +477,7 @@ class DbVersionMigrator with WalletDB { amount: tx.amount, amountString: Amount( rawValue: BigInt.from(tx.amount), - fractionDigits: info.coin.decimals, + fractionDigits: epic.fractionDigits, ).toJsonString(), fee: tx.fees, height: tx.height, @@ -470,12 +530,14 @@ class DbVersionMigrator with WalletDB { if ((await secureStore.read(key: '${walletId}_mnemonicPassphrase')) == null) { await secureStore.write( - key: '${walletId}_mnemonicPassphrase', value: ""); + key: '${walletId}_mnemonicPassphrase', + value: "", + ); } // doing this for epic cash will delete transaction history as it is not // stored on the epic cash blockchain - if (info.coin != Coin.epicCash) { + if (info.coinIdentifier != epic.identifier) { // set flag to initiate full rescan on opening wallet await DB.instance.put( boxName: DB.boxNameDBInfo, @@ -498,6 +560,8 @@ class DbVersionMigrator with WalletDB { final count = await MainDB.instance.getTransactions(walletId).count(); + final crypto = SupportedCoins.getCryptoCurrencyFor(info.coinIdentifier); + for (var i = 0; i < count; i += 50) { final txns = await MainDB.instance .getTransactions(walletId) @@ -512,7 +576,7 @@ class DbVersionMigrator with WalletDB { tx ..amountString = Amount( rawValue: BigInt.from(tx.amount), - fractionDigits: info.coin.decimals, + fractionDigits: crypto.fractionDigits, ).toJsonString(), tx.address.value, ), @@ -531,11 +595,13 @@ class DbVersionMigrator with WalletDB { final keys = List.from(addressBookBox.keys); final contacts = keys - .map((id) => Contact.fromJson( - Map.from( - addressBookBox.get(id) as Map, - ), - )) + .map( + (id) => Contact.fromJson( + Map.from( + addressBookBox.get(id) as Map, + ), + ), + ) .toList(growable: false); final List newContacts = []; @@ -547,7 +613,7 @@ class DbVersionMigrator with WalletDB { for (final entry in contact.addresses) { newContactAddressEntries.add( isar_contact.ContactAddressEntry() - ..coinName = entry.coin.name + ..coinName = entry.coin.identifier ..address = entry.address ..label = entry.label ..other = entry.other, @@ -580,11 +646,13 @@ class DbVersionMigrator with WalletDB { await prefs.init(); await MainDB.instance.initMainDB(); + final firo = Firo(CryptoCurrencyNetwork.main); + for (final walletId in walletInfoList.keys) { final info = walletInfoList[walletId]!; assert(info.walletId == walletId); - if (info.coin == Coin.firo && + if (info.coinIdentifier == firo.identifier && MainDB.instance.isar.lelantusCoins .where() .walletIdEqualTo(walletId) diff --git a/lib/db/hive/db.dart b/lib/db/hive/db.dart index 6f4ebd3c3..f63c00e94 100644 --- a/lib/db/hive/db.dart +++ b/lib/db/hive/db.dart @@ -18,8 +18,10 @@ import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/models/notification_model.dart'; import 'package:stackwallet/models/trade_wallet_lookup.dart'; import 'package:stackwallet/services/wallets_service.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/logger.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class DB { // legacy (required for migrations) @@ -48,17 +50,18 @@ class DB { static const String boxNamePrefs = "prefs"; static const String boxNameOneTimeDialogsShown = "oneTimeDialogsShown"; - String _boxNameTxCache({required Coin coin}) => "${coin.name}_txCache"; + String _boxNameTxCache({required CryptoCurrency currency}) => + "${currency.identifier}_txCache"; // firo only - String _boxNameSetCache({required Coin coin}) => - "${coin.name}_anonymitySetCache"; - String _boxNameSetSparkCache({required Coin coin}) => - "${coin.name}_anonymitySetSparkCache"; - String _boxNameUsedSerialsCache({required Coin coin}) => - "${coin.name}_usedSerialsCache"; - String _boxNameSparkUsedCoinsTagsCache({required Coin coin}) => - "${coin.name}_sparkUsedCoinsTagsCache"; + String _boxNameSetCache({required CryptoCurrency currency}) => + "${currency.identifier}_anonymitySetCache"; + String _boxNameSetSparkCache({required CryptoCurrency currency}) => + "${currency.identifier}_anonymitySetSparkCache"; + String _boxNameUsedSerialsCache({required CryptoCurrency currency}) => + "${currency.identifier}_usedSerialsCache"; + String _boxNameSparkUsedCoinsTagsCache({required CryptoCurrency currency}) => + "${currency.identifier}_sparkUsedCoinsTagsCache"; Box? _boxNodeModels; Box? _boxPrimaryNodes; @@ -77,11 +80,11 @@ class DB { final Map> _walletBoxes = {}; - final Map> _txCacheBoxes = {}; - final Map> _setCacheBoxes = {}; - final Map> _setSparkCacheBoxes = {}; - final Map> _usedSerialsCacheBoxes = {}; - final Map> _getSparkUsedCoinsTagsCacheBoxes = {}; + final Map> _txCacheBoxes = {}; + final Map> _setCacheBoxes = {}; + final Map> _setSparkCacheBoxes = {}; + final Map> _usedSerialsCacheBoxes = {}; + final Map> _getSparkUsedCoinsTagsCacheBoxes = {}; // exposed for monero Box get moneroWalletInfoBox => _walletInfoSource!; @@ -97,7 +100,8 @@ class DB { // TODO: make sure this works properly if (Isolate.current.debugName != "main") { throw Exception( - "DB.instance should not be accessed outside the main isolate!"); + "DB.instance should not be accessed outside the main isolate!", + ); } return _instance; @@ -160,17 +164,22 @@ class DB { names.removeWhere((name, dyn) { final jsonObject = Map.from(dyn as Map); try { - Coin.values.byName(jsonObject["coin"] as String); + SupportedCoins.getCryptoCurrencyFor(jsonObject["coin"] as String); return false; } catch (e, s) { Logging.instance.log( - "Error, ${jsonObject["coin"]} does not exist, $name wallet cannot be loaded", - level: LogLevel.Error); + "Error, ${jsonObject["coin"]} does not exist, $name wallet cannot be loaded", + level: LogLevel.Error, + ); return true; } }); - final mapped = Map.from(names).map((name, dyn) => MapEntry( - name, WalletInfo.fromJson(Map.from(dyn as Map)))); + final mapped = Map.from(names).map( + (name, dyn) => MapEntry( + name, + WalletInfo.fromJson(Map.from(dyn as Map)), + ), + ); for (final entry in mapped.entries) { if (Hive.isBoxOpen(entry.value.walletId)) { @@ -183,70 +192,90 @@ class DB { } } - Future> getTxCacheBox({required Coin coin}) async { - if (_txCacheBoxes[coin]?.isOpen != true) { - _txCacheBoxes.remove(coin); + Future> getTxCacheBox({required CryptoCurrency currency}) async { + if (_txCacheBoxes[currency.identifier]?.isOpen != true) { + _txCacheBoxes.remove(currency.identifier); } - return _txCacheBoxes[coin] ??= - await Hive.openBox(_boxNameTxCache(coin: coin)); + return _txCacheBoxes[currency.identifier] ??= + await Hive.openBox(_boxNameTxCache(currency: currency)); } - Future closeTxCacheBox({required Coin coin}) async { - await _txCacheBoxes[coin]?.close(); + Future closeTxCacheBox({required CryptoCurrency currency}) async { + await _txCacheBoxes[currency.identifier]?.close(); } - Future> getAnonymitySetCacheBox({required Coin coin}) async { - if (_setCacheBoxes[coin]?.isOpen != true) { - _setCacheBoxes.remove(coin); + Future> getAnonymitySetCacheBox({ + required CryptoCurrency currency, + }) async { + if (_setCacheBoxes[currency.identifier]?.isOpen != true) { + _setCacheBoxes.remove(currency.identifier); } - return _setCacheBoxes[coin] ??= - await Hive.openBox(_boxNameSetCache(coin: coin)); + return _setCacheBoxes[currency.identifier] ??= + await Hive.openBox(_boxNameSetCache(currency: currency)); } - Future> getSparkAnonymitySetCacheBox( - {required Coin coin}) async { - if (_setSparkCacheBoxes[coin]?.isOpen != true) { - _setSparkCacheBoxes.remove(coin); + Future> getSparkAnonymitySetCacheBox({ + required CryptoCurrency currency, + }) async { + if (_setSparkCacheBoxes[currency.identifier]?.isOpen != true) { + _setSparkCacheBoxes.remove(currency.identifier); } - return _setSparkCacheBoxes[coin] ??= - await Hive.openBox(_boxNameSetSparkCache(coin: coin)); + return _setSparkCacheBoxes[currency.identifier] ??= + await Hive.openBox(_boxNameSetSparkCache(currency: currency)); } - Future closeAnonymitySetCacheBox({required Coin coin}) async { - await _setCacheBoxes[coin]?.close(); + Future closeAnonymitySetCacheBox({ + required CryptoCurrency currency, + }) async { + await _setCacheBoxes[currency.identifier]?.close(); } - Future> getUsedSerialsCacheBox({required Coin coin}) async { - if (_usedSerialsCacheBoxes[coin]?.isOpen != true) { - _usedSerialsCacheBoxes.remove(coin); + Future> getUsedSerialsCacheBox({ + required CryptoCurrency currency, + }) async { + if (_usedSerialsCacheBoxes[currency.identifier]?.isOpen != true) { + _usedSerialsCacheBoxes.remove(currency.identifier); } - return _usedSerialsCacheBoxes[coin] ??= - await Hive.openBox(_boxNameUsedSerialsCache(coin: coin)); - } - - Future> getSparkUsedCoinsTagsCacheBox( - {required Coin coin}) async { - if (_getSparkUsedCoinsTagsCacheBoxes[coin]?.isOpen != true) { - _getSparkUsedCoinsTagsCacheBoxes.remove(coin); - } - return _getSparkUsedCoinsTagsCacheBoxes[coin] ??= + return _usedSerialsCacheBoxes[currency.identifier] ??= await Hive.openBox( - _boxNameSparkUsedCoinsTagsCache(coin: coin)); + _boxNameUsedSerialsCache(currency: currency), + ); } - Future closeUsedSerialsCacheBox({required Coin coin}) async { - await _usedSerialsCacheBoxes[coin]?.close(); + Future> getSparkUsedCoinsTagsCacheBox({ + required CryptoCurrency currency, + }) async { + if (_getSparkUsedCoinsTagsCacheBoxes[currency.identifier]?.isOpen != true) { + _getSparkUsedCoinsTagsCacheBoxes.remove(currency.identifier); + } + return _getSparkUsedCoinsTagsCacheBoxes[currency.identifier] ??= + await Hive.openBox( + _boxNameSparkUsedCoinsTagsCache(currency: currency), + ); + } + + Future closeUsedSerialsCacheBox({ + required CryptoCurrency currency, + }) async { + await _usedSerialsCacheBoxes[currency.identifier]?.close(); } /// Clear all cached transactions for the specified coin - Future clearSharedTransactionCache({required Coin coin}) async { - await deleteAll(boxName: _boxNameTxCache(coin: coin)); - if (coin == Coin.firo || coin == Coin.firoTestNet) { - await deleteAll(boxName: _boxNameSetCache(coin: coin)); - await deleteAll(boxName: _boxNameSetSparkCache(coin: coin)); - await deleteAll(boxName: _boxNameUsedSerialsCache(coin: coin)); + Future clearSharedTransactionCache({ + required CryptoCurrency currency, + }) async { + await deleteAll(boxName: _boxNameTxCache(currency: currency)); + if (currency is Firo) { + await deleteAll(boxName: _boxNameSetCache(currency: currency)); await deleteAll( - boxName: _boxNameSparkUsedCoinsTagsCache(coin: coin)); + boxName: _boxNameSetSparkCache(currency: currency), + ); + await deleteAll( + boxName: _boxNameUsedSerialsCache(currency: currency), + ); + await deleteAll( + boxName: _boxNameSparkUsedCoinsTagsCache(currency: currency), + ); } } @@ -284,23 +313,28 @@ class DB { // writes - Future put( - {required String boxName, - required dynamic key, - required T value}) async => + Future put({ + required String boxName, + required dynamic key, + required T value, + }) async => await mutex .protect(() async => await Hive.box(boxName).put(key, value)); Future add({required String boxName, required T value}) async => await mutex.protect(() async => await Hive.box(boxName).add(value)); - Future addAll( - {required String boxName, required Iterable values}) async => + Future addAll({ + required String boxName, + required Iterable values, + }) async => await mutex .protect(() async => await Hive.box(boxName).addAll(values)); - Future delete( - {required dynamic key, required String boxName}) async => + Future delete({ + required dynamic key, + required String boxName, + }) async => await mutex.protect(() async => await Hive.box(boxName).delete(key)); Future deleteAll({required String boxName}) async { diff --git a/lib/db/isar/main_db.dart b/lib/db/isar/main_db.dart index ac5a544f4..62673b004 100644 --- a/lib/db/isar/main_db.dart +++ b/lib/db/isar/main_db.dart @@ -19,8 +19,8 @@ import 'package:stackwallet/models/isar/models/isar_models.dart'; import 'package:stackwallet/models/isar/ordinal.dart'; import 'package:stackwallet/models/isar/stack_theme.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/stack_file_system.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; import 'package:stackwallet/wallets/isar/models/spark_coin.dart'; import 'package:stackwallet/wallets/isar/models/token_wallet_info.dart'; @@ -149,15 +149,17 @@ class MainDB { } // tx block explorers - TransactionBlockExplorer? getTransactionBlockExplorer({required Coin coin}) { + TransactionBlockExplorer? getTransactionBlockExplorer( + {required CryptoCurrency cryptoCurrency}) { return isar.transactionBlockExplorers .where() - .tickerEqualTo(coin.ticker) + .tickerEqualTo(cryptoCurrency.ticker) .findFirstSync(); } Future putTransactionBlockExplorer( - TransactionBlockExplorer explorer) async { + TransactionBlockExplorer explorer, + ) async { try { return await isar.writeTxn(() async { return await isar.transactionBlockExplorers.put(explorer); @@ -169,7 +171,8 @@ class MainDB { // addresses QueryBuilder getAddresses( - String walletId) => + String walletId, + ) => isar.addresses.where().walletIdEqualTo(walletId); Future putAddress(Address address) async { @@ -194,7 +197,7 @@ class MainDB { Future> updateOrPutAddresses(List
addresses) async { try { - List ids = []; + final List ids = []; await isar.writeTxn(() async { for (final address in addresses) { final storedAddress = await isar.addresses @@ -239,13 +242,16 @@ class MainDB { }); } catch (e) { throw MainDBException( - "failed updateAddress: from=$oldAddress to=$newAddress", e); + "failed updateAddress: from=$oldAddress to=$newAddress", + e, + ); } } // transactions QueryBuilder getTransactions( - String walletId) => + String walletId, + ) => isar.transactions.where().walletIdEqualTo(walletId); Future putTransaction(Transaction transaction) async { @@ -284,7 +290,9 @@ class MainDB { isar.utxos.where().walletIdEqualTo(walletId); QueryBuilder getUTXOsByAddress( - String walletId, String address) => + String walletId, + String address, + ) => isar.utxos .where() .walletIdEqualTo(walletId) @@ -357,7 +365,9 @@ class MainDB { }); Future getTransactionNote( - String walletId, String txid) async { + String walletId, + String txid, + ) async { return isar.transactionNotes.getByTxidWalletId( txid, walletId, @@ -374,7 +384,8 @@ class MainDB { // address labels QueryBuilder getAddressLabels( - String walletId) => + String walletId, + ) => isar.addressLabels.where().walletIdEqualTo(walletId); Future putAddressLabel(AddressLabel addressLabel) => @@ -392,7 +403,9 @@ class MainDB { }); Future getAddressLabel( - String walletId, String addressString) async { + String walletId, + String addressString, + ) async { return isar.addressLabels.getByAddressStringWalletId( addressString, walletId, @@ -573,7 +586,7 @@ class MainDB { List transactions, ) async { try { - List ids = []; + final List ids = []; await isar.writeTxn(() async { for (final tx in transactions) { final storedTx = await isar.transactionV2s @@ -595,7 +608,9 @@ class MainDB { return ids; } catch (e) { throw MainDBException( - "failed updateOrPutTransactionV2s: $transactions", e); + "failed updateOrPutTransactionV2s: $transactions", + e, + ); } } diff --git a/lib/db/migrate_wallets_to_isar.dart b/lib/db/migrate_wallets_to_isar.dart index ab263a1c2..72a9b501f 100644 --- a/lib/db/migrate_wallets_to_isar.dart +++ b/lib/db/migrate_wallets_to_isar.dart @@ -6,8 +6,13 @@ import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/db/isar/main_db.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/models/token_wallet_info.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info_meta.dart'; @@ -37,13 +42,13 @@ Future migrateWalletsToIsar({ // final List< ({ - Coin coin, + String coinIdentifier, String name, String walletId, })> oldInfo = Map.from(names).values.map((e) { final map = e as Map; return ( - coin: Coin.values.byName(map["coin"] as String), + coinIdentifier: map["coin"] as String, walletId: map["id"] as String, name: map["name"] as String, ); @@ -93,16 +98,16 @@ Future migrateWalletsToIsar({ } // reset stellar + tezos address type - if (old.coin == Coin.stellar || - old.coin == Coin.stellarTestnet || - old.coin == Coin.tezos) { + if (old.coinIdentifier == Stellar(CryptoCurrencyNetwork.main).identifier || + old.coinIdentifier == Stellar(CryptoCurrencyNetwork.test).identifier || + old.coinIdentifier == Tezos(CryptoCurrencyNetwork.main).identifier) { await MainDB.instance.deleteWalletBlockchainData(old.walletId); } // // Set other data values // - Map otherData = {}; + final Map otherData = {}; final List? tokenContractAddresses = walletBox.get( "ethTokenContracts", @@ -129,7 +134,7 @@ Future migrateWalletsToIsar({ } // epiccash specifics - if (old.coin == Coin.epicCash) { + if (old.coinIdentifier == Epiccash(CryptoCurrencyNetwork.main)) { final epicWalletInfo = ExtraEpiccashWalletInfo.fromMap({ "receivingIndex": walletBox.get("receivingIndex") as int? ?? 0, "changeIndex": walletBox.get("changeIndex") as int? ?? 0, @@ -142,7 +147,9 @@ Future migrateWalletsToIsar({ otherData[WalletInfoKeys.epiccashData] = jsonEncode( epicWalletInfo.toMap(), ); - } else if (old.coin == Coin.firo || old.coin == Coin.firoTestNet) { + } else if (old.coinIdentifier == + Firo(CryptoCurrencyNetwork.main).identifier || + old.coinIdentifier == Firo(CryptoCurrencyNetwork.test).identifier) { otherData[WalletInfoKeys.lelantusCoinIsarRescanRequired] = walletBox .get(WalletInfoKeys.lelantusCoinIsarRescanRequired) as bool? ?? true; @@ -161,10 +168,11 @@ Future migrateWalletsToIsar({ ); final info = WalletInfo( - coinName: old.coin.name, + coinName: old.coinIdentifier, walletId: old.walletId, name: old.name, - mainAddressType: old.coin.primaryAddressType, + mainAddressType: SupportedCoins.getCryptoCurrencyFor(old.coinIdentifier) + .primaryAddressType, favouriteOrderIndex: favourites.indexOf(old.walletId), cachedChainHeight: walletBox.get( DBKeys.storedChainHeight, diff --git a/lib/db/queries/queries.dart b/lib/db/queries/queries.dart index 7e14de0e6..d2b49cea8 100644 --- a/lib/db/queries/queries.dart +++ b/lib/db/queries/queries.dart @@ -42,7 +42,7 @@ extension MainDBQueries on MainDB { required CCFilter filter, required CCSortDescriptor sort, required String searchTerm, - required Coin coin, + required CryptoCurrency cryptoCurrency, }) { var preSort = getUTXOs(walletId).filter().group((q) { final qq = q.group( @@ -79,7 +79,7 @@ extension MainDBQueries on MainDB { qq = qq.or().valueEqualTo( Amount.fromDecimal( maybeDecimal, - fractionDigits: coin.decimals, + fractionDigits: cryptoCurrency.fractionDigits, ).raw.toInt(), ); } @@ -114,7 +114,7 @@ extension MainDBQueries on MainDB { required CCFilter filter, required CCSortDescriptor sort, required String searchTerm, - required Coin coin, + required CryptoCurrency cryptoCurrency, }) { var preSort = getUTXOs(walletId).filter().group((q) { final qq = q.group( @@ -151,7 +151,7 @@ extension MainDBQueries on MainDB { qq = qq.or().valueEqualTo( Amount.fromDecimal( maybeDecimal, - fractionDigits: coin.decimals, + fractionDigits: cryptoCurrency.fractionDigits, ).raw.toInt(), ); } diff --git a/lib/dto/ethereum/eth_token_tx_extra_dto.dart b/lib/dto/ethereum/eth_token_tx_extra_dto.dart index aab41bb76..377b0ad60 100644 --- a/lib/dto/ethereum/eth_token_tx_extra_dto.dart +++ b/lib/dto/ethereum/eth_token_tx_extra_dto.dart @@ -11,7 +11,8 @@ import 'dart:convert'; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class EthTokenTxExtraDTO { EthTokenTxExtraDTO({ @@ -42,7 +43,7 @@ class EthTokenTxExtraDTO { to: map['to'] as String, value: Amount( rawValue: BigInt.parse(map['value'] as String), - fractionDigits: Coin.ethereum.decimals, + fractionDigits: Ethereum(CryptoCurrencyNetwork.main).fractionDigits, ), gas: _amountFromJsonNum(map['gas']), gasPrice: _amountFromJsonNum(map['gasPrice']), @@ -70,7 +71,7 @@ class EthTokenTxExtraDTO { static Amount _amountFromJsonNum(dynamic json) { return Amount( rawValue: BigInt.from(json as num), - fractionDigits: Coin.ethereum.decimals, + fractionDigits: Ethereum(CryptoCurrencyNetwork.main).fractionDigits, ); } diff --git a/lib/dto/ethereum/eth_tx_dto.dart b/lib/dto/ethereum/eth_tx_dto.dart index e0708646d..669583170 100644 --- a/lib/dto/ethereum/eth_tx_dto.dart +++ b/lib/dto/ethereum/eth_tx_dto.dart @@ -11,7 +11,8 @@ import 'dart:convert'; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class EthTxDTO { EthTxDTO({ @@ -75,7 +76,7 @@ class EthTxDTO { } return Amount( rawValue: BigInt.parse(json.toString()), - fractionDigits: Coin.ethereum.decimals, + fractionDigits: Ethereum(CryptoCurrencyNetwork.main).fractionDigits, ); } diff --git a/lib/electrumx_rpc/cached_electrumx_client.dart b/lib/electrumx_rpc/cached_electrumx_client.dart index 559526f17..10bd0aceb 100644 --- a/lib/electrumx_rpc/cached_electrumx_client.dart +++ b/lib/electrumx_rpc/cached_electrumx_client.dart @@ -13,8 +13,8 @@ import 'dart:math'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:string_validator/string_validator.dart'; class CachedElectrumXClient { @@ -34,10 +34,11 @@ class CachedElectrumXClient { Future> getAnonymitySet({ required String groupId, String blockhash = "", - required Coin coin, + required CryptoCurrency cryptoCurrency, }) async { try { - final box = await DB.instance.getAnonymitySetCacheBox(coin: coin); + final box = + await DB.instance.getAnonymitySetCacheBox(currency: cryptoCurrency); final cachedSet = box.get(groupId) as Map?; Map set; @@ -68,30 +69,38 @@ class CachedElectrumXClient { ? base64ToReverseHex(newSet["blockHash"] as String) : newSet["blockHash"]; for (int i = (newSet["coins"] as List).length - 1; i >= 0; i--) { - dynamic newCoin = newSet["coins"][i]; - List translatedCoin = []; - translatedCoin.add(!isHexadecimal(newCoin[0] as String) - ? base64ToHex(newCoin[0] as String) - : newCoin[0]); - translatedCoin.add(!isHexadecimal(newCoin[1] as String) - ? base64ToReverseHex(newCoin[1] as String) - : newCoin[1]); + final dynamic newCoin = newSet["coins"][i]; + final List translatedCoin = []; + translatedCoin.add( + !isHexadecimal(newCoin[0] as String) + ? base64ToHex(newCoin[0] as String) + : newCoin[0], + ); + translatedCoin.add( + !isHexadecimal(newCoin[1] as String) + ? base64ToReverseHex(newCoin[1] as String) + : newCoin[1], + ); try { - translatedCoin.add(!isHexadecimal(newCoin[2] as String) - ? base64ToHex(newCoin[2] as String) - : newCoin[2]); + translatedCoin.add( + !isHexadecimal(newCoin[2] as String) + ? base64ToHex(newCoin[2] as String) + : newCoin[2], + ); } catch (e) { translatedCoin.add(newCoin[2]); } - translatedCoin.add(!isHexadecimal(newCoin[3] as String) - ? base64ToReverseHex(newCoin[3] as String) - : newCoin[3]); + translatedCoin.add( + !isHexadecimal(newCoin[3] as String) + ? base64ToReverseHex(newCoin[3] as String) + : newCoin[3], + ); set["coins"].insert(0, translatedCoin); } // save set to db await box.put(groupId, set); Logging.instance.log( - "Updated current anonymity set for ${coin.name} with group ID $groupId", + "Updated current anonymity set for ${cryptoCurrency.identifier} with group ID $groupId", level: LogLevel.Info, ); } @@ -99,8 +108,9 @@ class CachedElectrumXClient { return set; } catch (e, s) { Logging.instance.log( - "Failed to process CachedElectrumX.getAnonymitySet(): $e\n$s", - level: LogLevel.Error); + "Failed to process CachedElectrumX.getAnonymitySet(): $e\n$s", + level: LogLevel.Error, + ); rethrow; } } @@ -108,11 +118,13 @@ class CachedElectrumXClient { Future> getSparkAnonymitySet({ required String groupId, String blockhash = "", - required Coin coin, + required CryptoCurrency cryptoCurrency, required bool useOnlyCacheIfNotEmpty, }) async { try { - final box = await DB.instance.getSparkAnonymitySetCacheBox(coin: coin); + final box = await DB.instance.getSparkAnonymitySetCacheBox( + currency: cryptoCurrency, + ); final cachedSet = box.get(groupId) as Map?; Map set; @@ -152,7 +164,7 @@ class CachedElectrumXClient { // save set to db await box.put(groupId, set); Logging.instance.log( - "Updated current anonymity set for ${coin.name} with group ID $groupId", + "Updated current anonymity set for ${cryptoCurrency.identifier} with group ID $groupId", level: LogLevel.Info, ); } @@ -160,8 +172,9 @@ class CachedElectrumXClient { return set; } catch (e, s) { Logging.instance.log( - "Failed to process CachedElectrumX.getSparkAnonymitySet(): $e\n$s", - level: LogLevel.Error); + "Failed to process CachedElectrumX.getSparkAnonymitySet(): $e\n$s", + level: LogLevel.Error, + ); rethrow; } } @@ -182,11 +195,11 @@ class CachedElectrumXClient { /// ElectrumX api only called if the tx does not exist in local db Future> getTransaction({ required String txHash, - required Coin coin, + required CryptoCurrency cryptoCurrency, bool verbose = true, }) async { try { - final box = await DB.instance.getTxCacheBox(coin: coin); + final box = await DB.instance.getTxCacheBox(currency: cryptoCurrency); final cachedTx = box.get(txHash) as Map?; if (cachedTx == null) { @@ -213,22 +226,24 @@ class CachedElectrumXClient { } } catch (e, s) { Logging.instance.log( - "Failed to process CachedElectrumX.getTransaction(): $e\n$s", - level: LogLevel.Error); + "Failed to process CachedElectrumX.getTransaction(): $e\n$s", + level: LogLevel.Error, + ); rethrow; } } Future> getUsedCoinSerials({ - required Coin coin, + required CryptoCurrency cryptoCurrency, int startNumber = 0, }) async { try { - final box = await DB.instance.getUsedSerialsCacheBox(coin: coin); + final box = + await DB.instance.getUsedSerialsCacheBox(currency: cryptoCurrency); final _list = box.get("serials") as List?; - Set cachedSerials = + final Set cachedSerials = _list == null ? {} : List.from(_list).toSet(); startNumber = max( @@ -269,14 +284,16 @@ class CachedElectrumXClient { } Future> getSparkUsedCoinsTags({ - required Coin coin, + required CryptoCurrency cryptoCurrency, }) async { try { - final box = await DB.instance.getSparkUsedCoinsTagsCacheBox(coin: coin); + final box = await DB.instance.getSparkUsedCoinsTagsCacheBox( + currency: cryptoCurrency, + ); final _list = box.get("tags") as List?; - Set cachedTags = + final Set cachedTags = _list == null ? {} : List.from(_list).toSet(); final startNumber = max( @@ -314,8 +331,9 @@ class CachedElectrumXClient { } /// Clear all cached transactions for the specified coin - Future clearSharedTransactionCache({required Coin coin}) async { - await DB.instance.clearSharedTransactionCache(coin: coin); - await DB.instance.closeAnonymitySetCacheBox(coin: coin); + Future clearSharedTransactionCache( + {required CryptoCurrency cryptoCurrency}) async { + await DB.instance.clearSharedTransactionCache(currency: cryptoCurrency); + await DB.instance.closeAnonymitySetCacheBox(currency: cryptoCurrency); } } diff --git a/lib/models/add_wallet_list_entity/add_wallet_list_entity.dart b/lib/models/add_wallet_list_entity/add_wallet_list_entity.dart index f59725f6b..b9fcdf1a0 100644 --- a/lib/models/add_wallet_list_entity/add_wallet_list_entity.dart +++ b/lib/models/add_wallet_list_entity/add_wallet_list_entity.dart @@ -9,10 +9,10 @@ */ import 'package:equatable/equatable.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; abstract class AddWalletListEntity extends Equatable { - Coin get coin; + CryptoCurrency get cryptoCurrency; String get name; String get ticker; } diff --git a/lib/models/add_wallet_list_entity/sub_classes/coin_entity.dart b/lib/models/add_wallet_list_entity/sub_classes/coin_entity.dart index 10e78688f..99fd2754c 100644 --- a/lib/models/add_wallet_list_entity/sub_classes/coin_entity.dart +++ b/lib/models/add_wallet_list_entity/sub_classes/coin_entity.dart @@ -9,22 +9,22 @@ */ import 'package:stackwallet/models/add_wallet_list_entity/add_wallet_list_entity.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class CoinEntity extends AddWalletListEntity { CoinEntity(this._coin); - final Coin _coin; + final CryptoCurrency _coin; @override - Coin get coin => _coin; + CryptoCurrency get cryptoCurrency => _coin; @override - String get name => coin.prettyName; + String get name => cryptoCurrency.prettyName; @override - String get ticker => coin.ticker; + String get ticker => cryptoCurrency.ticker; @override - List get props => [coin, name, ticker]; + List get props => [cryptoCurrency.identifier, name, ticker]; } diff --git a/lib/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart b/lib/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart index 000bc810f..4bea313d0 100644 --- a/lib/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart +++ b/lib/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart @@ -10,15 +10,17 @@ import 'package:stackwallet/models/add_wallet_list_entity/add_wallet_list_entity.dart'; import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class EthTokenEntity extends AddWalletListEntity { EthTokenEntity(this.token); final EthContract token; + // TODO: check other networks in future and handle differently? @override - Coin get coin => Coin.ethereum; + CryptoCurrency get cryptoCurrency => Ethereum(CryptoCurrencyNetwork.main); @override String get name => token.name; @@ -27,5 +29,6 @@ class EthTokenEntity extends AddWalletListEntity { String get ticker => token.symbol; @override - List get props => [coin, name, ticker, token.address]; + List get props => + [cryptoCurrency.identifier, name, ticker, token.address]; } diff --git a/lib/models/address_book_filter.dart b/lib/models/address_book_filter.dart index 578ffc8c9..daddba49e 100644 --- a/lib/models/address_book_filter.dart +++ b/lib/models/address_book_filter.dart @@ -9,46 +9,46 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class AddressBookFilter extends ChangeNotifier { - AddressBookFilter(Set coins) { + AddressBookFilter(Set coins) { _coins = coins; } - Set _coins = {}; + Set _coins = {}; - Set get coins => _coins; + Set get coins => _coins; - set coins(Set coins) { + set coins(Set coins) { _coins = coins; notifyListeners(); } - void add(Coin coin, bool shouldNotifyListeners) { + void add(CryptoCurrency coin, bool shouldNotifyListeners) { _coins.add(coin); if (shouldNotifyListeners) { notifyListeners(); } } - void addAll(Iterable coins, bool shouldNotifyListeners) { + void addAll(Iterable coins, bool shouldNotifyListeners) { _coins.addAll(coins); if (shouldNotifyListeners) { notifyListeners(); } } - void remove(Coin coin, bool shouldNotifyListeners) { - _coins.removeWhere((e) => e.name == coin.name); + void remove(CryptoCurrency coin, bool shouldNotifyListeners) { + _coins.removeWhere((e) => e.identifier == coin.identifier); if (shouldNotifyListeners) { notifyListeners(); } } - void removeMany(Set coins, bool shouldNotifyListeners) { + void removeMany(Set coins, bool shouldNotifyListeners) { for (final coin in coins) { - _coins.removeWhere((e) => e.name == coin.name); + _coins.removeWhere((e) => e.identifier == coin.identifier); } if (shouldNotifyListeners) { notifyListeners(); diff --git a/lib/models/balance.dart b/lib/models/balance.dart index 9f4b36a1c..be2c80859 100644 --- a/lib/models/balance.dart +++ b/lib/models/balance.dart @@ -11,7 +11,7 @@ import 'dart:convert'; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class Balance { final Amount total; @@ -26,10 +26,10 @@ class Balance { required this.pendingSpendable, }); - factory Balance.zeroForCoin({required Coin coin}) { + factory Balance.zeroFor({required CryptoCurrency currency}) { final amount = Amount( rawValue: BigInt.zero, - fractionDigits: coin.decimals, + fractionDigits: currency.fractionDigits, ); return Balance( diff --git a/lib/models/contact_address_entry.dart b/lib/models/contact_address_entry.dart index 6f1ad1d54..f57ed6d4b 100644 --- a/lib/models/contact_address_entry.dart +++ b/lib/models/contact_address_entry.dart @@ -10,11 +10,12 @@ import 'dart:convert'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; @Deprecated("Use lib/models/isar/models/contact_entry.dart instead") class ContactAddressEntry { - final Coin coin; + final CryptoCurrency coin; final String address; final String label; final String? other; @@ -27,7 +28,7 @@ class ContactAddressEntry { }); ContactAddressEntry copyWith({ - Coin? coin, + CryptoCurrency? coin, String? address, String? label, String? other, @@ -42,7 +43,7 @@ class ContactAddressEntry { factory ContactAddressEntry.fromJson(Map jsonObject) { return ContactAddressEntry( - coin: Coin.values.byName(jsonObject["coin"] as String), + coin: SupportedCoins.getCryptoCurrencyFor(jsonObject["coin"] as String), address: jsonObject["address"] as String, label: jsonObject["label"] as String, other: jsonObject["other"] as String?, @@ -53,7 +54,7 @@ class ContactAddressEntry { return { "label": label, "address": address, - "coin": coin.name, + "coin": coin.identifier, "other": other ?? "", }; } diff --git a/lib/models/contact_address_entry_data.dart b/lib/models/contact_address_entry_data.dart index d7fb17684..545f40bac 100644 --- a/lib/models/contact_address_entry_data.dart +++ b/lib/models/contact_address_entry_data.dart @@ -10,8 +10,7 @@ import 'package:flutter/cupertino.dart'; import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class AddressEntryData extends ChangeNotifier { late int id; @@ -20,7 +19,7 @@ class AddressEntryData extends ChangeNotifier { String? _addressLabel; String? _address; - Coin? _coin; + CryptoCurrency? _coin; String? get addressLabel => _addressLabel; @@ -36,9 +35,9 @@ class AddressEntryData extends ChangeNotifier { notifyListeners(); } - Coin? get coin => _coin; + CryptoCurrency? get coin => _coin; - set coin(Coin? coin) { + set coin(CryptoCurrency? coin) { _coin = coin; notifyListeners(); } @@ -73,12 +72,12 @@ class AddressEntryData extends ChangeNotifier { if (_address == null) { return false; } - return AddressUtils.validateAddress(_address!, _coin!); + return _coin!.validateAddress(_address!); } ContactAddressEntry buildAddressEntry() { return ContactAddressEntry() - ..coinName = coin!.name + ..coinName = coin!.identifier ..address = address! ..other = null ..label = addressLabel!; @@ -86,6 +85,6 @@ class AddressEntryData extends ChangeNotifier { @override String toString() { - return "AddressEntryData: { addressLabel: $addressLabel, address: $address, coin: ${coin?.name} }"; + return "AddressEntryData: { addressLabel: $addressLabel, address: $address, coin: ${coin?.identifier} }"; } } diff --git a/lib/models/isar/exchange_cache/currency.dart b/lib/models/isar/exchange_cache/currency.dart index 5a3915e08..0233cbe98 100644 --- a/lib/models/isar/exchange_cache/currency.dart +++ b/lib/models/isar/exchange_cache/currency.dart @@ -10,7 +10,7 @@ import 'package:isar/isar.dart'; import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; part 'currency.g.dart'; @@ -161,7 +161,7 @@ class Currency { static bool checkIsStackCoin(String ticker) { try { - coinFromTickerCaseInsensitive(ticker); + SupportedCoins.getCryptoCurrencyForTicker(ticker); return true; } catch (_) { return false; diff --git a/lib/models/isar/models/block_explorer.dart b/lib/models/isar/models/block_explorer.dart index 05d832580..411ad4ec3 100644 --- a/lib/models/isar/models/block_explorer.dart +++ b/lib/models/isar/models/block_explorer.dart @@ -9,7 +9,8 @@ */ import 'package:isar/isar.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; part 'block_explorer.g.dart'; @@ -28,9 +29,9 @@ class TransactionBlockExplorer { late final String url; @ignore - Coin? get coin { + CryptoCurrency? get coin { try { - return coinFromTickerCaseInsensitive(ticker); + return SupportedCoins.getCryptoCurrencyForTicker(ticker); } catch (_) { return null; } diff --git a/lib/models/isar/models/contact_entry.dart b/lib/models/isar/models/contact_entry.dart index 6289e8d18..b3a0fe809 100644 --- a/lib/models/isar/models/contact_entry.dart +++ b/lib/models/isar/models/contact_entry.dart @@ -9,7 +9,8 @@ */ import 'package:isar/isar.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; part 'contact_entry.g.dart'; @@ -36,7 +37,7 @@ class ContactEntry { @ignore List get addressesSorted { final List sorted = []; - for (final coin in Coin.values) { + for (final coin in SupportedCoins.cryptocurrencies) { final slice = addresses.where((e) => e.coin == coin).toList(); if (slice.isNotEmpty) { slice.sort( @@ -56,13 +57,13 @@ class ContactEntry { List? addresses, bool? isFavorite, }) { - List _addresses = []; + final List _addresses = []; if (addresses == null) { - for (var e in this.addresses) { + for (final e in this.addresses) { _addresses.add(e.copyWith()); } } else { - for (var e in addresses) { + for (final e in addresses) { _addresses.add(e.copyWith()); } } @@ -101,18 +102,18 @@ class ContactAddressEntry { late final String? other; @ignore - Coin get coin => Coin.values.byName(coinName); + CryptoCurrency get coin => SupportedCoins.getCryptoCurrencyFor(coinName); ContactAddressEntry(); ContactAddressEntry copyWith({ - Coin? coin, + CryptoCurrency? coin, String? address, String? label, String? other, }) { return ContactAddressEntry() - ..coinName = coin?.name ?? coinName + ..coinName = coin?.identifier ?? coinName ..address = address ?? this.address ..label = label ?? this.label ..other = other ?? this.other; @@ -122,7 +123,7 @@ class ContactAddressEntry { return { "label": label, "address": address, - "coin": coin.name, + "coin": coin.identifier, "other": other ?? "", }; } diff --git a/lib/models/isar/stack_theme.dart b/lib/models/isar/stack_theme.dart index 09f42b1b6..b33ca274d 100644 --- a/lib/models/isar/stack_theme.dart +++ b/lib/models/isar/stack_theme.dart @@ -13,7 +13,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/extensions/impl/box_shadow.dart'; import 'package:stackwallet/utilities/extensions/impl/gradient.dart'; import 'package:stackwallet/utilities/extensions/impl/string.dart'; @@ -1482,10 +1482,10 @@ class StackTheme { // ==== coinColors ===================================================== @ignore - Map get coinColors => + Map get coinColors => _coinColors ??= parseCoinColors(coinColorsJsonString); @ignore - Map? _coinColors; + Map? _coinColors; late final String coinColorsJsonString; // ==== assets ===================================================== @@ -1851,20 +1851,21 @@ class StackTheme { } /// parse coin colors json and fetch color or use default - static Map parseCoinColors(String jsonString) { + static Map parseCoinColors(String jsonString) { final json = jsonDecode(jsonString) as Map; final map = Map.from(json); - final Map result = {}; + final Map result = {}; - for (final coin in Coin.values.map((e) => e.mainNetVersion)) { - if (map[coin.name] is String) { - result[coin] = Color( - (map[coin.name] as String).toBigIntFromHex.toInt(), + for (final mainNetId + in SupportedCoins.cryptocurrencies.map((e) => e.mainNetId)) { + if (map[mainNetId] is String) { + result[mainNetId] = Color( + (map[mainNetId] as String).toBigIntFromHex.toInt(), ); } else { Logging.instance.log( - "Color not found in theme for $coin", + "Color not found in theme for $mainNetId", level: LogLevel.Error, ); } @@ -2080,31 +2081,31 @@ class ThemeAssetsV2 implements IThemeAssets { late final String coinPlaceholder; @ignore - Map get coinIcons => _coinIcons ??= parseCoinAssetsString( + Map get coinIcons => _coinIcons ??= parseCoinAssetsString( coinIconsString, placeHolder: coinPlaceholder, ); @ignore - Map? _coinIcons; + Map? _coinIcons; late final String coinIconsString; @ignore - Map get coinImages => _coinImages ??= parseCoinAssetsString( + Map get coinImages => _coinImages ??= parseCoinAssetsString( coinImagesString, placeHolder: coinPlaceholder, ); @ignore - Map? _coinImages; + Map? _coinImages; late final String coinImagesString; @ignore - Map get coinSecondaryImages => + Map get coinSecondaryImages => _coinSecondaryImages ??= parseCoinAssetsString( coinSecondaryImagesString, placeHolder: coinPlaceholder, ); @ignore - Map? _coinSecondaryImages; + Map? _coinSecondaryImages; late final String coinSecondaryImagesString; ThemeAssetsV2(); @@ -2166,17 +2167,17 @@ class ThemeAssetsV2 implements IThemeAssets { return jsonEncode(map); } - static Map parseCoinAssetsString( + static Map parseCoinAssetsString( String jsonString, { required String placeHolder, }) { final json = jsonDecode(jsonString) as Map; final map = Map.from(json); - final Map result = {}; + final Map result = {}; - for (final coin in Coin.values) { - result[coin] = map[coin.name] as String? ?? placeHolder; + for (final coin in SupportedCoins.cryptocurrencies) { + result[coin.mainNetId] = map[coin.mainNetId] as String? ?? placeHolder; } return result; @@ -2350,35 +2351,35 @@ class ThemeAssetsV3 implements IThemeAssets { late final String? dummy3; @ignore - Map get coinIcons => _coinIcons ??= parseCoinAssetsString( + Map get coinIcons => _coinIcons ??= parseCoinAssetsString( coinIconsString, placeHolder: coinPlaceholder, ); @ignore - Map? _coinIcons; + Map? _coinIcons; late final String coinIconsString; @ignore - Map get coinImages => _coinImages ??= parseCoinAssetsString( + Map get coinImages => _coinImages ??= parseCoinAssetsString( coinImagesString, placeHolder: coinPlaceholder, ); @ignore - Map? _coinImages; + Map? _coinImages; late final String coinImagesString; @ignore - Map get coinSecondaryImages => + Map get coinSecondaryImages => _coinSecondaryImages ??= parseCoinAssetsString( coinSecondaryImagesString, placeHolder: coinPlaceholder, ); @ignore - Map? _coinSecondaryImages; + Map? _coinSecondaryImages; late final String coinSecondaryImagesString; @ignore - Map? get coinCardImages => + Map? get coinCardImages => _coinCardImages ??= coinCardImagesString == null ? null : parseCoinAssetsString( @@ -2386,11 +2387,11 @@ class ThemeAssetsV3 implements IThemeAssets { placeHolder: coinPlaceholder, ); @ignore - Map? _coinCardImages; + Map? _coinCardImages; late final String? coinCardImagesString; @ignore - Map? get coinCardFavoritesImages => + Map? get coinCardFavoritesImages => _coinCardFavoritesImages ??= coinCardFavoritesImagesString == null ? null : parseCoinAssetsString( @@ -2398,7 +2399,7 @@ class ThemeAssetsV3 implements IThemeAssets { placeHolder: coinPlaceholder, ); @ignore - Map? _coinCardFavoritesImages; + Map? _coinCardFavoritesImages; @Name("otherStringParam1") late final String? coinCardFavoritesImagesString; @@ -2501,19 +2502,18 @@ class ThemeAssetsV3 implements IThemeAssets { return jsonEncode(map); } - static Map parseCoinAssetsString( + static Map parseCoinAssetsString( String jsonString, { required String placeHolder, }) { final json = jsonDecode(jsonString) as Map; final map = Map.from(json); - final Map result = {}; + final Map result = {}; - for (final coin in Coin.values) { - result[coin] = map[coin.name] as String? ?? placeHolder; - - result[coin] = prependIfNeeded(result[coin]!); + for (final coin in SupportedCoins.cryptocurrencies) { + result[coin.mainNetId] = map[coin.mainNetId] as String? ?? placeHolder; + result[coin.mainNetId] = prependIfNeeded(result[coin.mainNetId]!); } return result; diff --git a/lib/models/paymint/transactions_model.dart b/lib/models/paymint/transactions_model.dart index db2dd2eee..c00f31565 100644 --- a/lib/models/paymint/transactions_model.dart +++ b/lib/models/paymint/transactions_model.dart @@ -11,8 +11,6 @@ import 'package:dart_numerics/dart_numerics.dart'; import 'package:decimal/decimal.dart'; import 'package:hive/hive.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; part '../type_adaptors/transactions_model.g.dart'; @@ -236,19 +234,11 @@ class Transaction { timestamp: json['timestamp'] as int? ?? (DateTime.now().millisecondsSinceEpoch ~/ 1000), txType: json['txType'] as String, - amount: (Decimal.parse(json["amount"].toString()) * - Decimal.fromInt(Constants.satsPerCoin(Coin - .firo).toInt())) // dirty hack but we need 8 decimal places here to keep consistent data structure - .toBigInt() - .toInt(), + amount: _parse(json["amount"].toString()), aliens: [], worthNow: json['worthNow'] as String, worthAtBlockTimestamp: json['worthAtBlockTimestamp'] as String? ?? "0", - fees: (Decimal.parse(json["fees"].toString()) * - Decimal.fromInt(Constants.satsPerCoin(Coin - .firo).toInt())) // dirty hack but we need 8 decimal places here to keep consistent data structure - .toBigInt() - .toInt(), + fees: _parse(json["fees"].toString()), inputSize: json['inputSize'] as int? ?? 0, outputSize: json['outputSize'] as int? ?? 0, inputs: [], @@ -411,12 +401,7 @@ class Output { scriptpubkeyAsm: json['scriptPubKey']['asm'] as String?, scriptpubkeyType: json['scriptPubKey']['type'] as String?, scriptpubkeyAddress: address, - value: (Decimal.parse( - (json["value"] ?? 0).toString()) * - Decimal.fromInt(Constants.satsPerCoin(Coin - .firo).toInt())) // dirty hack but we need 8 decimal places here to keep consistent data structure - .toBigInt() - .toInt(), + value: _parse((json["value"] ?? 0).toString()), ); } catch (s, e) { return Output( @@ -425,11 +410,11 @@ class Output { scriptpubkeyAsm: "", scriptpubkeyType: "", scriptpubkeyAddress: "", - value: (Decimal.parse(0.toString()) * - Decimal.fromInt(Constants.satsPerCoin(Coin - .firo).toInt())) // dirty hack but we need 8 decimal places here to keep consistent data structure - .toBigInt() - .toInt()); + value: _parse(0.toString())); } } } + +int _parse(String value) { + return (Decimal.parse(value) * Decimal.fromInt(8)).toBigInt().toInt(); +} diff --git a/lib/models/wallet_restore_state.dart b/lib/models/wallet_restore_state.dart index 37598651d..e325cad4d 100644 --- a/lib/models/wallet_restore_state.dart +++ b/lib/models/wallet_restore_state.dart @@ -9,14 +9,14 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/wallet/wallet.dart'; class WalletRestoreState extends ChangeNotifier { final String walletId; final String walletName; - final Coin coin; + final CryptoCurrency coin; late StackRestoringStatus _restoringStatus; Wallet? wallet; String? address; diff --git a/lib/notifications/notification_card.dart b/lib/notifications/notification_card.dart index ada6400f6..1135a478c 100644 --- a/lib/notifications/notification_card.dart +++ b/lib/notifications/notification_card.dart @@ -15,10 +15,10 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/models/isar/stack_theme.dart'; import 'package:stackwallet/models/notification_model.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; @@ -44,7 +44,8 @@ class NotificationCard extends ConsumerWidget { String coinIconPath(IThemeAssets assets, WidgetRef ref) { try { - final coin = coinFromPrettyName(notification.coinName); + final coin = + SupportedCoins.getCryptoCurrencyByPrettyName(notification.coinName); return ref.read(coinIconProvider(coin)); } catch (_) { return notification.iconAssetName; diff --git a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart index 34048fcbb..267358b54 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart @@ -28,13 +28,17 @@ import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/sub_widgets/e import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/sub_widgets/next_button.dart'; import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; import 'package:stackwallet/providers/providers.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/default_eth_tokens.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; @@ -61,10 +65,14 @@ class _AddWalletViewState extends ConsumerState { String _searchTerm = ""; - final List _coinsTestnet = [ - ...Coin.values.where((e) => e.isTestNet), + final _coinsTestnet = [ + ...SupportedCoins.cryptocurrencies + .where((e) => e.network == CryptoCurrencyNetwork.test), + ]; + final _coins = [ + ...SupportedCoins.cryptocurrencies + .where((e) => e.network == CryptoCurrencyNetwork.main), ]; - final List _coins = [...Coin.values.where((e) => !e.isTestNet)]; final List coinEntities = []; final List tokenEntities = []; @@ -81,7 +89,7 @@ class _AddWalletViewState extends ConsumerState { (e) => e.ticker.toLowerCase().contains(lowercaseTerm) || e.name.toLowerCase().contains(lowercaseTerm) || - e.coin.name.toLowerCase().contains(lowercaseTerm) || + e.cryptoCurrency.identifier.toLowerCase().contains(lowercaseTerm) || (e is EthTokenEntity && e.token.address.toLowerCase().contains(lowercaseTerm)), ); @@ -129,15 +137,13 @@ class _AddWalletViewState extends ConsumerState { _searchFocusNode = FocusNode(); // _coinsTestnet.remove(Coin.firoTestNet); if (Platform.isWindows) { - _coins.remove(Coin.monero); - _coins.remove(Coin.wownero); + _coins.removeWhere((e) => e is Monero || e is Wownero); } else if (Platform.isLinux) { - _coins.remove(Coin.wownero); + _coins.removeWhere((e) => e is Wownero); } if (Util.isDesktop && !kDebugMode) { - _coins.remove(Coin.bitcoinFrost); - _coins.remove(Coin.bitcoinFrostTestNet); + _coins.removeWhere((e) => e is BitcoinFrost); } coinEntities.addAll(_coins.map((e) => CoinEntity(e))); diff --git a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/coin_select_item.dart b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/coin_select_item.dart index 410ebc7bd..18527b059 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/coin_select_item.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/coin_select_item.dart @@ -29,9 +29,9 @@ import 'package:stackwallet/utilities/util.dart'; class CoinSelectItem extends ConsumerWidget { const CoinSelectItem({ - Key? key, + super.key, required this.entity, - }) : super(key: key); + }); final AddWalletListEntity entity; @@ -90,7 +90,7 @@ class CoinSelectItem extends ConsumerWidget { ) : SvgPicture.file( File( - ref.watch(coinIconProvider(entity.coin)), + ref.watch(coinIconProvider(entity.cryptoCurrency)), ), width: 26, height: 26, diff --git a/lib/pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart b/lib/pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart index ef4d55319..49531bf9c 100644 --- a/lib/pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart +++ b/lib/pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart @@ -24,9 +24,9 @@ import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; class CreateOrRestoreWalletView extends StatelessWidget { const CreateOrRestoreWalletView({ - Key? key, + super.key, required this.entity, - }) : super(key: key); + }); static const routeName = "/createOrRestoreWallet"; @@ -57,7 +57,7 @@ class CreateOrRestoreWalletView extends StatelessWidget { flex: 10, ),*/ CreateRestoreWalletTitle( - coin: entity.coin, + coin: entity.cryptoCurrency, isDesktop: isDesktop, ), const SizedBox( @@ -73,7 +73,7 @@ class CreateOrRestoreWalletView extends StatelessWidget { height: 32, ), CoinImage( - coin: entity.coin, + coin: entity.cryptoCurrency, width: isDesktop ? 324 : MediaQuery.of(context).size.width / 1.6, @@ -85,7 +85,7 @@ class CreateOrRestoreWalletView extends StatelessWidget { height: 32, ), CreateWalletButtonGroup( - coin: entity.coin, + coin: entity.cryptoCurrency, isDesktop: isDesktop, ), /*const Spacer( @@ -129,7 +129,7 @@ class CreateOrRestoreWalletView extends StatelessWidget { flex: 2, ), CoinImage( - coin: entity.coin, + coin: entity.cryptoCurrency, width: isDesktop ? 324 : MediaQuery.of(context).size.width / 1.6, @@ -141,7 +141,7 @@ class CreateOrRestoreWalletView extends StatelessWidget { flex: 2, ), CreateRestoreWalletTitle( - coin: entity.coin, + coin: entity.cryptoCurrency, isDesktop: isDesktop, ), const SizedBox( @@ -154,7 +154,7 @@ class CreateOrRestoreWalletView extends StatelessWidget { flex: 5, ), CreateWalletButtonGroup( - coin: entity.coin, + coin: entity.cryptoCurrency, isDesktop: isDesktop, ), ], diff --git a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/coin_image.dart b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/coin_image.dart index 0d13044be..f13aee957 100644 --- a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/coin_image.dart +++ b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/coin_image.dart @@ -14,18 +14,18 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/themes/coin_image_provider.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class CoinImage extends ConsumerWidget { const CoinImage({ - Key? key, + super.key, required this.coin, this.width, this.height, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; final double? width; final double? height; diff --git a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_title.dart b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_title.dart index ae7e917c8..319d8daf7 100644 --- a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_title.dart +++ b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_title.dart @@ -9,17 +9,17 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class CreateRestoreWalletTitle extends StatelessWidget { const CreateRestoreWalletTitle({ - Key? key, + super.key, required this.coin, required this.isDesktop, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; final bool isDesktop; @override diff --git a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart index 36c914fd8..2120f6c4d 100644 --- a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart +++ b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart @@ -14,18 +14,19 @@ import 'package:flutter/material.dart'; import 'package:stackwallet/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/enums/add_wallet_type_enum.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; class CreateWalletButtonGroup extends StatelessWidget { const CreateWalletButtonGroup({ - Key? key, + super.key, required this.coin, required this.isDesktop, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; final bool isDesktop; @override @@ -34,7 +35,7 @@ class CreateWalletButtonGroup extends StatelessWidget { crossAxisAlignment: isDesktop ? CrossAxisAlignment.center : CrossAxisAlignment.stretch, children: [ - if (Platform.isAndroid || coin != Coin.wownero) + if (Platform.isAndroid || coin is! Wownero) ConstrainedBox( constraints: BoxConstraints( minHeight: isDesktop ? 70 : 0, @@ -61,7 +62,7 @@ class CreateWalletButtonGroup extends StatelessWidget { ), ), ), - if (Platform.isAndroid || coin != Coin.wownero) + if (Platform.isAndroid || coin is! Wownero) SizedBox( height: isDesktop ? 16 : 12, ), diff --git a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_5.dart b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_5.dart index 586a1c189..d64c163e3 100644 --- a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_5.dart +++ b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_5.dart @@ -143,7 +143,7 @@ class _FrostCreateStep5State extends ConsumerState { final data = ref.read(pFrostScaffoldArgs)!; final info = WalletInfo.createNew( - coin: data.info.frostCurrency.coin, + coin: data.info.frostCurrency, name: data.info.walletName, ); diff --git a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart index 2bbfef1de..25267beed 100644 --- a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart +++ b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart @@ -49,7 +49,7 @@ class _FrostReshareStep1cState extends ConsumerState { final info = WalletInfo.createNew( name: data.info.walletName, - coin: data.info.frostCurrency.coin, + coin: data.info.frostCurrency, ); final wallet = IncompleteFrostWallet(); diff --git a/lib/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart b/lib/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart index 03a7ee8bf..138dd09da 100644 --- a/lib/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart +++ b/lib/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart @@ -75,7 +75,7 @@ class _RestoreFrostMsWalletViewState final myName = participants[myNameIndex]; final info = WalletInfo.createNew( - coin: widget.frostCurrency.coin, + coin: widget.frostCurrency, name: widget.walletName, ); diff --git a/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart b/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart index 3cfeb6bbd..c0e94fdd1 100644 --- a/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart +++ b/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart @@ -26,12 +26,11 @@ import 'package:stackwallet/providers/ui/verify_recovery_phrase/mnemonic_word_co import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/enums/add_wallet_type_enum.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/name_generator.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -48,15 +47,15 @@ import 'package:tuple/tuple.dart'; class NameYourWalletView extends ConsumerStatefulWidget { const NameYourWalletView({ - Key? key, + super.key, required this.addWalletType, required this.coin, - }) : super(key: key); + }); static const routeName = "/nameYourWallet"; final AddWalletType addWalletType; - final Coin coin; + final CryptoCurrency coin; @override ConsumerState createState() => _NameYourWalletViewState(); @@ -64,7 +63,7 @@ class NameYourWalletView extends ConsumerStatefulWidget { class _NameYourWalletViewState extends ConsumerState { late final AddWalletType addWalletType; - late final Coin coin; + late final CryptoCurrency coin; late TextEditingController textEditingController; late FocusNode textFieldFocusNode; @@ -96,7 +95,7 @@ class _NameYourWalletViewState extends ConsumerState { if (mounted) { ref.read(mnemonicWordCountStateProvider.state).state = - Constants.possibleLengthsForCoin(coin).last; + coin.possibleMnemonicLengths.last; ref.read(pNewWalletOptions.notifier).state = null; switch (widget.addWalletType) { @@ -244,7 +243,7 @@ class _NameYourWalletViewState extends ConsumerState { height: isDesktop ? 0 : 16, ), Text( - "Name your ${coin.prettyName} ${coin.isFrost ? "multisig " : ""}wallet", + "Name your ${coin.prettyName} ${coin is FrostCurrency ? "multisig " : ""}wallet", textAlign: TextAlign.center, style: isDesktop ? STextStyles.desktopH2(context) @@ -254,7 +253,7 @@ class _NameYourWalletViewState extends ConsumerState { height: isDesktop ? 16 : 8, ), Text( - "Enter a label for your wallet (e.g. ${coin.isFrost ? "Multisig" : "Savings"})", + "Enter a label for your wallet (e.g. ${coin is FrostCurrency ? "Multisig" : "Savings"})", textAlign: TextAlign.center, style: isDesktop ? STextStyles.desktopSubtitleH2(context) @@ -383,7 +382,7 @@ class _NameYourWalletViewState extends ConsumerState { const SizedBox( height: 32, ), - if (widget.coin.isFrost) + if (widget.coin is FrostCurrency) if (widget.addWalletType == AddWalletType.Restore) PrimaryButton( label: "Next", @@ -395,15 +394,13 @@ class _NameYourWalletViewState extends ConsumerState { RestoreFrostMsWalletView.routeName, arguments: ( walletName: name, - // TODO: [prio=med] this will cause issues if frost is ever applied to other coins - frostCurrency: coin.isTestNet - ? BitcoinFrost(CryptoCurrencyNetwork.test) - : BitcoinFrost(CryptoCurrencyNetwork.main), + frostCurrency: coin, ), ); }, ), - if (widget.coin.isFrost && widget.addWalletType == AddWalletType.New) + if (widget.coin is FrostCurrency && + widget.addWalletType == AddWalletType.New) Column( children: [ PrimaryButton( @@ -416,10 +413,7 @@ class _NameYourWalletViewState extends ConsumerState { CreateNewFrostMsWalletView.routeName, arguments: ( walletName: name, - // TODO: [prio=med] this will cause issues if frost is ever applied to other coins - frostCurrency: coin.isTestNet - ? BitcoinFrost(CryptoCurrencyNetwork.test) - : BitcoinFrost(CryptoCurrencyNetwork.main), + frostCurrency: coin, ), ); }, @@ -437,10 +431,7 @@ class _NameYourWalletViewState extends ConsumerState { SelectNewFrostImportTypeView.routeName, arguments: ( walletName: name, - // TODO: [prio=med] this will cause issues if frost is ever applied to other coins - frostCurrency: coin.isTestNet - ? BitcoinFrost(CryptoCurrencyNetwork.test) - : BitcoinFrost(CryptoCurrencyNetwork.main), + frostCurrency: coin, ), ); }, @@ -480,7 +471,7 @@ class _NameYourWalletViewState extends ConsumerState { // ), ], ), - if (!widget.coin.isFrost) + if (widget.coin is! FrostCurrency) ConstrainedBox( constraints: BoxConstraints( minWidth: isDesktop ? 480 : 0, diff --git a/lib/pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart b/lib/pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart index f6d3075b2..a8e9c3a8a 100644 --- a/lib/pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart +++ b/lib/pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart @@ -11,9 +11,9 @@ import 'package:stackwallet/providers/ui/verify_recovery_phrase/mnemonic_word_co import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -26,7 +26,8 @@ import 'package:tuple/tuple.dart'; final pNewWalletOptions = StateProvider<({String mnemonicPassphrase, int mnemonicWordsCount})?>( - (ref) => null); + (ref) => null, +); enum NewWalletOptions { Default, @@ -35,15 +36,15 @@ enum NewWalletOptions { class NewWalletOptionsView extends ConsumerStatefulWidget { const NewWalletOptionsView({ - Key? key, + super.key, required this.walletName, required this.coin, - }) : super(key: key); + }); static const routeName = "/newWalletOptionsView"; final String walletName; - final Coin coin; + final CryptoCurrency coin; @override ConsumerState createState() => @@ -74,7 +75,7 @@ class _NewWalletOptionsViewState extends ConsumerState { @override Widget build(BuildContext context) { - final lengths = Constants.possibleLengthsForCoin(widget.coin).toList(); + final lengths = widget.coin.possibleMnemonicLengths; return ConditionalParent( condition: Util.isDesktop, builder: (child) => DesktopScaffold( @@ -339,7 +340,8 @@ class _NewWalletOptionsViewState extends ConsumerState { ), GestureDetector( key: const Key( - "mnemonicPassphraseFieldShowPasswordButtonKey"), + "mnemonicPassphraseFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; diff --git a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart index 8e3f8750f..e6f620a02 100644 --- a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart +++ b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart @@ -25,13 +25,14 @@ import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/services/transaction_notification_tracker.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; import 'package:stackwallet/wallets/wallet/wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; @@ -45,14 +46,14 @@ import 'package:tuple/tuple.dart'; class NewWalletRecoveryPhraseWarningView extends ConsumerStatefulWidget { const NewWalletRecoveryPhraseWarningView({ - Key? key, + super.key, required this.coin, required this.walletName, - }) : super(key: key); + }); static const routeName = "/newWalletRecoveryPhraseWarning"; - final Coin coin; + final CryptoCurrency coin; final String walletName; @override @@ -62,7 +63,7 @@ class NewWalletRecoveryPhraseWarningView extends ConsumerStatefulWidget { class _NewWalletRecoveryPhraseWarningViewState extends ConsumerState { - late final Coin coin; + late final CryptoCurrency coin; late final String walletName; late final bool isDesktop; @@ -79,8 +80,8 @@ class _NewWalletRecoveryPhraseWarningViewState debugPrint("BUILD: $runtimeType"); final options = ref.read(pNewWalletOptions.state).state; - final seedCount = options?.mnemonicWordsCount ?? - Constants.defaultSeedPhraseLengthFor(coin: coin); + final seedCount = + options?.mnemonicWordsCount ?? coin.defaultSeedPhraseLength; return MasterScaffold( isDesktop: isDesktop, @@ -118,7 +119,7 @@ class _NewWalletRecoveryPhraseWarningViewState ); }, ), - ) + ), ], ), body: SingleChildScrollView( @@ -180,7 +181,8 @@ class _NewWalletRecoveryPhraseWarningViewState "access to your wallet.", style: isDesktop ? STextStyles.desktopTextMediumRegular( - context) + context, + ) : STextStyles.subtitle(context).copyWith( fontSize: 12, ), @@ -359,13 +361,14 @@ class _NewWalletRecoveryPhraseWarningViewState child: Text( "Do not show them to anyone.", style: STextStyles.navBarTitle( - context), + context, + ), ), ), ], ), ], - ) + ), ], ), ), @@ -410,12 +413,14 @@ class _NewWalletRecoveryPhraseWarningViewState MaterialTapTargetSize.shrinkWrap, value: ref .watch( - checkBoxStateProvider.state) + checkBoxStateProvider.state, + ) .state, onChanged: (newValue) { ref .read( - checkBoxStateProvider.state) + checkBoxStateProvider.state, + ) .state = newValue!; }, ), @@ -428,7 +433,8 @@ class _NewWalletRecoveryPhraseWarningViewState "I understand that Stack Wallet does not keep and cannot restore my recovery phrase, and If I lose my recovery phrase, I will not be able to access my funds.", style: isDesktop ? STextStyles.desktopTextMedium( - context) + context, + ) : STextStyles.baseXS(context) .copyWith( height: 1.3, @@ -452,21 +458,23 @@ class _NewWalletRecoveryPhraseWarningViewState .state ? () async { try { - unawaited(showDialog( - context: context, - barrierDismissible: false, - useSafeArea: true, - builder: (ctx) { - return const Center( - child: LoadingIndicator( - width: 50, - height: 50, - ), - ); - }, - )); + unawaited( + showDialog( + context: context, + barrierDismissible: false, + useSafeArea: true, + builder: (ctx) { + return const Center( + child: LoadingIndicator( + width: 50, + height: 50, + ), + ); + }, + ), + ); String? otherDataJsonString; - if (widget.coin == Coin.tezos) { + if (widget.coin is Tezos) { otherDataJsonString = jsonEncode({ WalletInfoKeys .tezosDerivationPath: @@ -474,7 +482,7 @@ class _NewWalletRecoveryPhraseWarningViewState .value, }); // }//todo: probably not needed (broken anyways) - // else if (widget.coin == Coin.epicCash) { + // else if (widget.coin is Epiccash) { // final int secondsSinceEpoch = // DateTime.now().millisecondsSinceEpoch ~/ 1000; // const int epicCashFirstBlock = 1565370278; @@ -504,8 +512,7 @@ class _NewWalletRecoveryPhraseWarningViewState // ), // }, // ); - } else if (widget.coin == - Coin.firo) { + } else if (widget.coin is Firo) { otherDataJsonString = jsonEncode( { WalletInfoKeys @@ -524,15 +531,18 @@ class _NewWalletRecoveryPhraseWarningViewState var node = ref .read( - nodeServiceChangeNotifierProvider) - .getPrimaryNodeFor(coin: coin); + nodeServiceChangeNotifierProvider, + ) + .getPrimaryNodeFor( + currency: coin, + ); if (node == null) { - node = - DefaultNodes.getNodeFor(coin); + node = coin.defaultNode; await ref .read( - nodeServiceChangeNotifierProvider) + nodeServiceChangeNotifierProvider, + ) .setPrimaryNodeFor( coin: coin, node: node, @@ -549,34 +559,35 @@ class _NewWalletRecoveryPhraseWarningViewState String? mnemonic; String? privateKey; - wordCount = Constants - .defaultSeedPhraseLengthFor( - coin: info.coin, - ); + wordCount = info + .coin.defaultSeedPhraseLength; - if (coin == Coin.monero || - coin == Coin.wownero) { + if (coin is Monero || + coin is Wownero) { // currently a special case due to the // xmr/wow libraries handling their // own mnemonic generation } else if (wordCount > 0) { if (ref - .read(pNewWalletOptions - .state) + .read( + pNewWalletOptions.state, + ) .state != null) { if (coin .hasMnemonicPassphraseSupport) { mnemonicPassphrase = ref - .read(pNewWalletOptions - .state) + .read( + pNewWalletOptions.state, + ) .state! .mnemonicPassphrase; } else {} wordCount = ref .read( - pNewWalletOptions.state) + pNewWalletOptions.state, + ) .state! .mnemonicWordsCount; } else { @@ -587,7 +598,8 @@ class _NewWalletRecoveryPhraseWarningViewState 24 < wordCount || wordCount % 3 != 0) { throw Exception( - "Invalid word count"); + "Invalid word count", + ); } final strength = @@ -604,9 +616,11 @@ class _NewWalletRecoveryPhraseWarningViewState secureStorageInterface: ref.read(secureStoreProvider), nodeService: ref.read( - nodeServiceChangeNotifierProvider), + nodeServiceChangeNotifierProvider, + ), prefs: ref.read( - prefsChangeNotifierProvider), + prefsChangeNotifierProvider, + ), mnemonicPassphrase: mnemonicPassphrase, mnemonic: mnemonic, @@ -616,31 +630,36 @@ class _NewWalletRecoveryPhraseWarningViewState await wallet.init(); // pop progress dialog - if (mounted) { + if (context.mounted) { Navigator.pop(context); } // set checkbox back to unchecked to annoy users to agree again :P ref .read( - checkBoxStateProvider.state) + checkBoxStateProvider.state, + ) .state = false; - if (mounted) { - unawaited(Navigator.of(context) - .pushNamed( - NewWalletRecoveryPhraseView - .routeName, - arguments: Tuple2( - wallet, - await (wallet - as MnemonicInterface) - .getMnemonicAsWords(), + if (context.mounted) { + final nav = Navigator.of(context); + unawaited( + nav.pushNamed( + NewWalletRecoveryPhraseView + .routeName, + arguments: Tuple2( + wallet, + await (wallet + as MnemonicInterface) + .getMnemonicAsWords(), + ), ), - )); + ); } } catch (e, s) { - Logging.instance.log("$e\n$s", - level: LogLevel.Fatal); + Logging.instance.log( + "$e\n$s", + level: LogLevel.Fatal, + ); // TODO: handle gracefully // any network/socket exception here will break new wallet creation rethrow; @@ -656,18 +675,22 @@ class _NewWalletRecoveryPhraseWarningViewState : Theme.of(context) .extension()! .getPrimaryDisabledButtonStyle( - context), + context, + ), child: Text( "View recovery phrase", style: isDesktop ? ref .read( - checkBoxStateProvider.state) + checkBoxStateProvider.state, + ) .state ? STextStyles.desktopButtonEnabled( - context) + context, + ) : STextStyles.desktopButtonDisabled( - context) + context, + ) : STextStyles.button(context), ), ), diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart index 3c7bdfd9e..642833523 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart @@ -24,10 +24,13 @@ import 'package:stackwallet/providers/ui/verify_recovery_phrase/mnemonic_word_co import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/date_picker/date_picker.dart'; @@ -48,7 +51,7 @@ class RestoreOptionsView extends ConsumerStatefulWidget { static const routeName = "/restoreOptions"; final String walletName; - final Coin coin; + final CryptoCurrency coin; @override ConsumerState createState() => _RestoreOptionsViewState(); @@ -56,7 +59,7 @@ class RestoreOptionsView extends ConsumerStatefulWidget { class _RestoreOptionsViewState extends ConsumerState { late final String walletName; - late final Coin coin; + late final CryptoCurrency coin; late final bool isDesktop; late TextEditingController _dateController; @@ -69,8 +72,7 @@ class _RestoreOptionsViewState extends ConsumerState { bool hidePassword = true; bool _expandedAdavnced = false; - bool get supportsMnemonicPassphrase => - !(coin == Coin.monero || coin == Coin.wownero || coin == Coin.epicCash); + bool get supportsMnemonicPassphrase => coin.hasMnemonicPassphraseSupport; @override void initState() { @@ -153,7 +155,7 @@ class _RestoreOptionsViewState extends ConsumerState { ), builder: (_) { return MnemonicWordCountSelectSheet( - lengthOptions: Constants.possibleLengthsForCoin(coin), + lengthOptions: coin.possibleMnemonicLengths, ); }, ); @@ -161,9 +163,9 @@ class _RestoreOptionsViewState extends ConsumerState { @override Widget build(BuildContext context) { - debugPrint("BUILD: $runtimeType with ${coin.name} $walletName"); + debugPrint("BUILD: $runtimeType with ${coin.identifier} $walletName"); - final lengths = Constants.possibleLengthsForCoin(coin).toList(); + final lengths = coin.possibleMnemonicLengths; return MasterScaffold( isDesktop: isDesktop, @@ -217,9 +219,9 @@ class _RestoreOptionsViewState extends ConsumerState { SizedBox( height: isDesktop ? 40 : 24, ), - if (coin == Coin.monero || - coin == Coin.epicCash || - (coin == Coin.wownero && + if (coin is Monero || + coin is Epiccash || + (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == 25)) Text( @@ -233,17 +235,17 @@ class _RestoreOptionsViewState extends ConsumerState { : STextStyles.smallMed12(context), textAlign: TextAlign.left, ), - if (coin == Coin.monero || - coin == Coin.epicCash || - (coin == Coin.wownero && + if (coin is Monero || + coin is Epiccash || + (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == 25)) SizedBox( height: isDesktop ? 16 : 8, ), - if (coin == Coin.monero || - coin == Coin.epicCash || - (coin == Coin.wownero && + if (coin is Monero || + coin is Epiccash || + (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == 25)) if (!isDesktop) @@ -251,9 +253,9 @@ class _RestoreOptionsViewState extends ConsumerState { onTap: chooseDate, controller: _dateController, ), - if (coin == Coin.monero || - coin == Coin.epicCash || - (coin == Coin.wownero && + if (coin is Monero || + coin is Epiccash || + (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == 25)) if (isDesktop) @@ -262,17 +264,17 @@ class _RestoreOptionsViewState extends ConsumerState { onTap: chooseDesktopDate, controller: _dateController, ), - if (coin == Coin.monero || - coin == Coin.epicCash || - (coin == Coin.wownero && + if (coin is Monero || + coin is Epiccash || + (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == 25)) const SizedBox( height: 8, ), - if (coin == Coin.monero || - coin == Coin.epicCash || - (coin == Coin.wownero && + if (coin is Monero || + coin is Epiccash || + (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == 25)) RoundedWhiteContainer( @@ -291,9 +293,9 @@ class _RestoreOptionsViewState extends ConsumerState { ), ), ), - if (coin == Coin.monero || - coin == Coin.epicCash || - (coin == Coin.wownero && + if (coin is Monero || + coin is Epiccash || + (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == 25)) SizedBox( diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart index 14174b22b..1b07eb565 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart @@ -18,8 +18,8 @@ import 'package:bip39/bip39.dart' as bip39; import 'package:bip39/src/wordlists/english.dart' as bip39wordlist; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:flutter_libmonero/monero/monero.dart'; -import 'package:flutter_libmonero/wownero/wownero.dart'; +import 'package:flutter_libmonero/monero/monero.dart' as libxmr; +import 'package:flutter_libmonero/wownero/wownero.dart' as libwow; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; @@ -44,12 +44,16 @@ import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/custom_text_selection_controls.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/form_input_status_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; import 'package:stackwallet/wallets/wallet/impl/monero_wallet.dart'; @@ -69,7 +73,7 @@ import 'package:wakelock/wakelock.dart'; class RestoreWalletView extends ConsumerStatefulWidget { const RestoreWalletView({ - Key? key, + super.key, required this.walletName, required this.coin, required this.seedWordsLength, @@ -77,12 +81,12 @@ class RestoreWalletView extends ConsumerStatefulWidget { required this.restoreFromDate, this.barcodeScanner = const BarcodeScannerWrapper(), this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); static const routeName = "/restoreWallet"; final String walletName; - final Coin coin; + final CryptoCurrency coin; final String mnemonicPassphrase; final int seedWordsLength; final DateTime restoreFromDate; @@ -166,7 +170,7 @@ class _RestoreWalletViewState extends ConsumerState { @override void dispose() { - for (var element in _controllers) { + for (final element in _controllers) { element.dispose(); } @@ -176,13 +180,15 @@ class _RestoreWalletViewState extends ConsumerState { // TODO: check for wownero wordlist? bool _isValidMnemonicWord(String word) { // TODO: get the actual language - if (widget.coin == Coin.monero) { - var moneroWordList = monero.getMoneroWordList("English"); + if (widget.coin is Monero) { + final moneroWordList = libxmr.monero.getMoneroWordList("English"); return moneroWordList.contains(word); } - if (widget.coin == Coin.wownero) { - var wowneroWordList = wownero.getWowneroWordList("English", - seedWordsLength: widget.seedWordsLength); + if (widget.coin is Wownero) { + final wowneroWordList = libwow.wownero.getWowneroWordList( + "English", + seedWordsLength: widget.seedWordsLength, + ); return wowneroWordList.contains(word); } return _wordListHashSet.contains(word); @@ -201,7 +207,7 @@ class _RestoreWalletViewState extends ConsumerState { Future attemptRestore() async { if (_formKey.currentState!.validate()) { String mnemonic = ""; - for (var element in _controllers) { + for (final element in _controllers) { mnemonic += " ${element.text.trim().toLowerCase()}"; } mnemonic = mnemonic.trim(); @@ -209,24 +215,25 @@ class _RestoreWalletViewState extends ConsumerState { int height = 0; String? otherDataJsonString; - if (widget.coin == Coin.monero) { - height = monero.getHeigthByDate(date: widget.restoreFromDate); - } else if (widget.coin == Coin.wownero) { - height = wownero.getHeightByDate(date: widget.restoreFromDate); + if (widget.coin is Monero) { + height = libxmr.monero.getHeigthByDate(date: widget.restoreFromDate); + } else if (widget.coin is Wownero) { + height = libwow.wownero.getHeightByDate(date: widget.restoreFromDate); } // todo: wait until this implemented - // else if (widget.coin == Coin.wownero) { + // else if (widget.coin is Wownero) { // height = wownero.getHeightByDate(date: widget.restoreFromDate); // } // TODO: make more robust estimate of date maybe using https://explorer.epic.tech/api-index - if (widget.coin == Coin.epicCash) { - int secondsSinceEpoch = + if (widget.coin is Epiccash) { + final int secondsSinceEpoch = widget.restoreFromDate.millisecondsSinceEpoch ~/ 1000; const int epicCashFirstBlock = 1565370278; const double overestimateSecondsPerBlock = 61; - int chosenSeconds = secondsSinceEpoch - epicCashFirstBlock; - int approximateHeight = chosenSeconds ~/ overestimateSecondsPerBlock; + final int chosenSeconds = secondsSinceEpoch - epicCashFirstBlock; + final int approximateHeight = + chosenSeconds ~/ overestimateSecondsPerBlock; //todo: check if print needed // debugPrint( // "approximate height: $approximateHeight chosen_seconds: $chosenSeconds"); @@ -250,7 +257,7 @@ class _RestoreWalletViewState extends ConsumerState { ), }, ); - } else if (widget.coin == Coin.firo) { + } else if (widget.coin is Firo) { otherDataJsonString = jsonEncode( { WalletInfoKeys.lelantusCoinIsarRescanRequired: false, @@ -260,12 +267,14 @@ class _RestoreWalletViewState extends ConsumerState { // TODO: do actual check to make sure it is a valid mnemonic for monero if (bip39.validateMnemonic(mnemonic) == false && - !(widget.coin == Coin.monero || widget.coin == Coin.wownero)) { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "Invalid seed phrase!", - context: context, - )); + !(widget.coin is Monero || widget.coin is Wownero)) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Invalid seed phrase!", + context: context, + ), + ); } else { if (!Platform.isLinux) await Wakelock.enable(); @@ -278,30 +287,35 @@ class _RestoreWalletViewState extends ConsumerState { bool isRestoring = true; // show restoring in progress - unawaited(showDialog( - context: context, - useSafeArea: false, - barrierDismissible: false, - builder: (context) { - return RestoringDialog( - onCancel: () async { - isRestoring = false; - await ref.read(pWallets).deleteWallet( - info, - ref.read(secureStoreProvider), - ); + if (mounted) { + unawaited( + showDialog( + context: context, + useSafeArea: false, + barrierDismissible: false, + builder: (context) { + return RestoringDialog( + onCancel: () async { + isRestoring = false; + + await ref.read(pWallets).deleteWallet( + info, + ref.read(secureStoreProvider), + ); + }, + ); }, - ); - }, - )); + ), + ); + } var node = ref .read(nodeServiceChangeNotifierProvider) - .getPrimaryNodeFor(coin: widget.coin); + .getPrimaryNodeFor(currency: widget.coin); if (node == null) { - node = DefaultNodes.getNodeFor(widget.coin); + node = widget.coin.defaultNode; await ref.read(nodeServiceChangeNotifierProvider).setPrimaryNodeFor( coin: widget.coin, node: node, @@ -324,15 +338,15 @@ class _RestoreWalletViewState extends ConsumerState { // TODO: extract interface with isRestore param switch (wallet.runtimeType) { - case EpiccashWallet: + case const (EpiccashWallet): await (wallet as EpiccashWallet).init(isRestore: true); break; - case MoneroWallet: + case const (MoneroWallet): await (wallet as MoneroWallet).init(isRestore: true); break; - case WowneroWallet: + case const (WowneroWallet): await (wallet as WowneroWallet).init(isRestore: true); break; @@ -355,12 +369,11 @@ class _RestoreWalletViewState extends ConsumerState { if (isCreateSpecialEthWallet) { ref.read(createSpecialEthWalletRoutingFlag.notifier).state = false; - ref - .read(newEthWalletTriggerTempUntilHiveCompletelyDeleted.state) - .state = + ref.read(newEthWalletTriggerTempUntilHiveCompletelyDeleted.state).state = !ref - .read(newEthWalletTriggerTempUntilHiveCompletelyDeleted - .state) + .read( + newEthWalletTriggerTempUntilHiveCompletelyDeleted.state, + ) .state; } @@ -385,7 +398,7 @@ class _RestoreWalletViewState extends ConsumerState { (route) => false, ), ); - if (info.coin == Coin.ethereum) { + if (info.coin is Ethereum) { unawaited( Navigator.of(context).pushNamed( EditWalletTokensView.routeName, @@ -451,7 +464,9 @@ class _RestoreWalletViewState extends ConsumerState { } InputDecoration _getInputDecorationFor( - FormInputStatus status, String prefix) { + FormInputStatus status, + String prefix, + ) { Color color; Color prefixColor; Color borderColor; @@ -656,9 +671,10 @@ class _RestoreWalletViewState extends ConsumerState { if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 50)); + const Duration(milliseconds: 50), + ); } - if (mounted) { + if (context.mounted) { Navigator.of(context).pop(); } }, @@ -788,8 +804,9 @@ class _RestoreWalletViewState extends ConsumerState { "Paste", style: STextStyles .desktopButtonSmallSecondaryEnabled( - context), - ) + context, + ), + ), ], ), ), @@ -836,12 +853,14 @@ class _RestoreWalletViewState extends ConsumerState { textCapitalization: TextCapitalization.none, key: Key( - "restoreMnemonicFormField_$i"), + "restoreMnemonicFormField_$i", + ), decoration: _getInputDecorationFor( - _inputStatuses[ - i * 4 + j - 1], - "${i * 4 + j}"), + _inputStatuses[ + i * 4 + j - 1], + "${i * 4 + j}", + ), autovalidateMode: AutovalidateMode .onUserInteraction, @@ -861,9 +880,10 @@ class _RestoreWalletViewState extends ConsumerState { formInputStatus = FormInputStatus.empty; } else if (_isValidMnemonicWord( - value - .trim() - .toLowerCase())) { + value + .trim() + .toLowerCase(), + )) { formInputStatus = FormInputStatus.valid; } else { @@ -921,17 +941,18 @@ class _RestoreWalletViewState extends ConsumerState { TextAlign.left, style: STextStyles.label( - context) - .copyWith( + context, + ).copyWith( color: Theme.of( - context) + context, + ) .extension< StackColors>()! .textError, ), ), ), - ) + ), ], ), ), @@ -945,7 +966,7 @@ class _RestoreWalletViewState extends ConsumerState { for (int i = rows * cols; i < _seedWordCount - remainder; i++) ...[ - TableViewCell( + const TableViewCell( flex: 1, child: Column( // ... (existing code for input field) @@ -965,11 +986,13 @@ class _RestoreWalletViewState extends ConsumerState { textCapitalization: TextCapitalization.none, key: Key( - "restoreMnemonicFormField_$i"), + "restoreMnemonicFormField_$i", + ), decoration: _getInputDecorationFor( - _inputStatuses[i], - "${i + 1}"), + _inputStatuses[i], + "${i + 1}", + ), autovalidateMode: AutovalidateMode .onUserInteraction, @@ -984,9 +1007,10 @@ class _RestoreWalletViewState extends ConsumerState { formInputStatus = FormInputStatus.empty; } else if (_isValidMnemonicWord( - value - .trim() - .toLowerCase())) { + value + .trim() + .toLowerCase(), + )) { formInputStatus = FormInputStatus.valid; } else { @@ -1029,17 +1053,18 @@ class _RestoreWalletViewState extends ConsumerState { TextAlign.left, style: STextStyles.label( - context) - .copyWith( + context, + ).copyWith( color: Theme.of( - context) + context, + ) .extension< StackColors>()! .textError, ), ), ), - ) + ), ], ), ), @@ -1095,7 +1120,9 @@ class _RestoreWalletViewState extends ConsumerState { textCapitalization: TextCapitalization.none, key: Key("restoreMnemonicFormField_$i"), decoration: _getInputDecorationFor( - _inputStatuses[i - 1], "$i"), + _inputStatuses[i - 1], + "$i", + ), autovalidateMode: AutovalidateMode.onUserInteraction, selectionControls: @@ -1107,7 +1134,8 @@ class _RestoreWalletViewState extends ConsumerState { if (value.isEmpty) { formInputStatus = FormInputStatus.empty; } else if (_isValidMnemonicWord( - value.trim().toLowerCase())) { + value.trim().toLowerCase(), + )) { formInputStatus = FormInputStatus.valid; } else { formInputStatus = @@ -1155,7 +1183,7 @@ class _RestoreWalletViewState extends ConsumerState { ), ), ), - ) + ), ], ), Padding( diff --git a/lib/pages/add_wallet_views/select_wallet_for_token_view.dart b/lib/pages/add_wallet_views/select_wallet_for_token_view.dart index d0f466a0c..ecffeaaaf 100644 --- a/lib/pages/add_wallet_views/select_wallet_for_token_view.dart +++ b/lib/pages/add_wallet_views/select_wallet_for_token_view.dart @@ -70,7 +70,7 @@ class _SelectWalletForTokenViewState ref.read(createSpecialEthWalletRoutingFlag.notifier).state = true; Navigator.of(context).pushNamed( CreateOrRestoreWalletView.routeName, - arguments: CoinEntity(widget.entity.coin), + arguments: CoinEntity(widget.entity.cryptoCurrency), ); } @@ -78,7 +78,7 @@ class _SelectWalletForTokenViewState Widget build(BuildContext context) { final ethWalletInfos = ref .watch(pAllWalletsInfo) - .where((e) => e.coin == widget.entity.coin) + .where((e) => e.coin == widget.entity.cryptoCurrency) .toList(); final _hasEthWallets = ethWalletInfos.isNotEmpty; diff --git a/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart b/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart index 90163db3f..3443c2084 100644 --- a/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart +++ b/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart @@ -30,9 +30,9 @@ import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/wallet.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -44,10 +44,10 @@ final createSpecialEthWalletRoutingFlag = StateProvider((ref) => false); class VerifyRecoveryPhraseView extends ConsumerStatefulWidget { const VerifyRecoveryPhraseView({ - Key? key, + super.key, required this.wallet, required this.mnemonic, - }) : super(key: key); + }); static const routeName = "/verifyRecoveryPhrase"; @@ -154,7 +154,7 @@ class _VerifyRecoveryPhraseViewState DesktopHomeView.routeName, ), ); - if (widget.wallet.info.coin == Coin.ethereum) { + if (widget.wallet.info.coin is Ethereum) { unawaited( Navigator.of(context).pushNamed( EditWalletTokensView.routeName, @@ -177,7 +177,7 @@ class _VerifyRecoveryPhraseViewState (route) => false, ), ); - if (widget.wallet.info.coin == Coin.ethereum) { + if (widget.wallet.info.coin is Ethereum) { unawaited( Navigator.of(context).pushNamed( EditWalletTokensView.routeName, @@ -198,12 +198,14 @@ class _VerifyRecoveryPhraseViewState ); } } else { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "Incorrect. Please try again.", - iconAsset: Assets.svg.circleX, - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Incorrect. Please try again.", + iconAsset: Assets.svg.circleX, + context: context, + ), + ); final int next = Random().nextInt(_mnemonic.length); ref @@ -221,7 +223,10 @@ class _VerifyRecoveryPhraseViewState } Tuple2, String> randomize( - List mnemonic, int chosenIndex, int wordsToShow) { + List mnemonic, + int chosenIndex, + int wordsToShow, + ) { final List remaining = []; final String chosenWord = mnemonic[chosenIndex]; @@ -354,7 +359,8 @@ class _VerifyRecoveryPhraseViewState .extension()! .textFieldDefaultBG, borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius), + Constants.size.circularBorderRadius, + ), ), child: Padding( padding: const EdgeInsets.symmetric( @@ -391,11 +397,13 @@ class _VerifyRecoveryPhraseViewState builder: (_, ref, __) { final selectedWord = ref .watch( - verifyMnemonicSelectedWordStateProvider.state) + verifyMnemonicSelectedWordStateProvider.state, + ) .state; final correctWord = ref .watch( - verifyMnemonicCorrectWordStateProvider.state) + verifyMnemonicCorrectWordStateProvider.state, + ) .state; return ConstrainedBox( @@ -406,7 +414,8 @@ class _VerifyRecoveryPhraseViewState onPressed: selectedWord.isNotEmpty ? () async { await _continue( - correctWord == selectedWord); + correctWord == selectedWord, + ); } : null, style: selectedWord.isNotEmpty @@ -421,9 +430,11 @@ class _VerifyRecoveryPhraseViewState "Verify", style: selectedWord.isNotEmpty ? STextStyles.desktopButtonEnabled( - context) + context, + ) : STextStyles.desktopButtonDisabled( - context), + context, + ), ) : Text( "Continue", diff --git a/lib/pages/address_book_views/address_book_view.dart b/lib/pages/address_book_views/address_book_view.dart index 61d6233bd..3f47a8cd7 100644 --- a/lib/pages/address_book_views/address_book_view.dart +++ b/lib/pages/address_book_views/address_book_view.dart @@ -20,12 +20,14 @@ import 'package:stackwallet/providers/db/main_db_provider.dart'; import 'package:stackwallet/providers/global/address_book_service_provider.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/ui/address_book_providers/address_book_filter_provider.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/background.dart'; @@ -45,7 +47,7 @@ class AddressBookView extends ConsumerStatefulWidget { static const String routeName = "/addressBook"; - final Coin? coin; + final CryptoCurrency? coin; final String? filterTerm; @override @@ -65,8 +67,10 @@ class _AddressBookViewState extends ConsumerState { ref.refresh(addressBookFilterProvider); if (widget.coin == null) { - final List coins = Coin.values.toList(); - coins.remove(Coin.firoTestNet); + final coins = [...SupportedCoins.cryptocurrencies]; + coins.removeWhere( + (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + ); final bool showTestNet = ref.read(prefsChangeNotifierProvider).showTestNetCoins; @@ -74,9 +78,10 @@ class _AddressBookViewState extends ConsumerState { if (showTestNet) { ref.read(addressBookFilterProvider).addAll(coins, false); } else { - ref - .read(addressBookFilterProvider) - .addAll(coins.where((e) => !e.isTestNet), false); + ref.read(addressBookFilterProvider).addAll( + coins.where((e) => e.network != CryptoCurrencyNetwork.test), + false, + ); } } else { ref.read(addressBookFilterProvider).add(widget.coin!, false); @@ -101,7 +106,7 @@ class _AddressBookViewState extends ConsumerState { addresses.add( ContactAddressEntry() - ..coinName = wallet.info.coin.name + ..coinName = wallet.info.coin.identifier ..address = addressString ..label = "Current Receiving" ..other = wallet.info.name, diff --git a/lib/pages/address_book_views/subviews/address_book_filter_view.dart b/lib/pages/address_book_views/subviews/address_book_filter_view.dart index 64eb97552..d973555af 100644 --- a/lib/pages/address_book_views/subviews/address_book_filter_view.dart +++ b/lib/pages/address_book_views/subviews/address_book_filter_view.dart @@ -12,10 +12,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/providers/global/prefs_provider.dart'; import 'package:stackwallet/providers/ui/address_book_providers/address_book_filter_provider.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -25,7 +27,7 @@ import 'package:stackwallet/widgets/desktop/secondary_button.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; class AddressBookFilterView extends ConsumerStatefulWidget { - const AddressBookFilterView({Key? key}) : super(key: key); + const AddressBookFilterView({super.key}); static const String routeName = "/addressBookFilter"; @@ -35,19 +37,23 @@ class AddressBookFilterView extends ConsumerStatefulWidget { } class _AddressBookFilterViewState extends ConsumerState { - late final List _coins; + late final List _coins; @override void initState() { - List coins = [...Coin.values]; - coins.remove(Coin.firoTestNet); + final coins = [...SupportedCoins.cryptocurrencies]; + coins.removeWhere( + (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + ); - bool showTestNet = ref.read(prefsChangeNotifierProvider).showTestNetCoins; + final showTestNet = ref.read(prefsChangeNotifierProvider).showTestNetCoins; if (showTestNet) { _coins = coins.toList(growable: false); } else { - _coins = coins.where((e) => !e.isTestNet).toList(growable: false); + _coins = coins + .where((e) => e.network != CryptoCurrencyNetwork.test) + .toList(growable: false); } super.initState(); } diff --git a/lib/pages/address_book_views/subviews/coin_select_sheet.dart b/lib/pages/address_book_views/subviews/coin_select_sheet.dart index 922502abd..fe8b91af5 100644 --- a/lib/pages/address_book_views/subviews/coin_select_sheet.dart +++ b/lib/pages/address_book_views/subviews/coin_select_sheet.dart @@ -14,20 +14,24 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/providers/global/prefs_provider.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/coin_image_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class CoinSelectSheet extends StatelessWidget { - const CoinSelectSheet({Key? key}) : super(key: key); + const CoinSelectSheet({super.key}); @override Widget build(BuildContext context) { final maxHeight = MediaQuery.of(context).size.height * 0.60; - var coins_ = [...Coin.values]; - coins_.remove(Coin.firoTestNet); + final coins_ = [...SupportedCoins.cryptocurrencies]; + coins_.removeWhere( + (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + ); return Container( decoration: BoxDecoration( color: Theme.of(context).extension()!.popupBG, @@ -85,7 +89,11 @@ class CoinSelectSheet extends StatelessWidget { shrinkWrap: true, itemCount: showTestNet ? coins_.length - : coins_.where((e) => !e.isTestNet).length, + : coins_ + .where( + (e) => e.network != CryptoCurrencyNetwork.test, + ) + .length, itemBuilder: (builderContext, index) { final coin = coins_[index]; return Padding( diff --git a/lib/pages/address_book_views/subviews/contact_details_view.dart b/lib/pages/address_book_views/subviews/contact_details_view.dart index 419081f2b..d01cd2335 100644 --- a/lib/pages/address_book_views/subviews/contact_details_view.dart +++ b/lib/pages/address_book_views/subviews/contact_details_view.dart @@ -27,7 +27,6 @@ import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -41,10 +40,10 @@ import 'package:tuple/tuple.dart'; class ContactDetailsView extends ConsumerStatefulWidget { const ContactDetailsView({ - Key? key, + super.key, required this.contactId, this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); static const String routeName = "/contactDetails"; @@ -79,7 +78,7 @@ class _ContactDetailsViewState extends ConsumerState { .sortByTimestampDesc() .findAll(); - List> result = []; + final List> result = []; for (final tx in transactions) { result.add(Tuple2(tx.walletId, tx)); @@ -151,7 +150,7 @@ class _ContactDetailsViewState extends ConsumerState { height: 20, ), onPressed: () { - bool isFavorite = _contact.isFavorite; + final bool isFavorite = _contact.isFavorite; ref.read(addressBookServiceProvider).editContact( _contact.copyWith(isFavorite: !isFavorite)); diff --git a/lib/pages/address_book_views/subviews/contact_popup.dart b/lib/pages/address_book_views/subviews/contact_popup.dart index ae31f8c09..a22b205aa 100644 --- a/lib/pages/address_book_views/subviews/contact_popup.dart +++ b/lib/pages/address_book_views/subviews/contact_popup.dart @@ -27,7 +27,6 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; @@ -56,8 +55,8 @@ class ContactPopUp extends ConsumerWidget { final active = ref.read(currentWalletIdProvider); - bool hasActiveWallet = active != null; - bool isExchangeFlow = + final bool hasActiveWallet = active != null; + final bool isExchangeFlow = ref.watch(exchangeFlowIsActiveStateProvider.state).state; final addresses = contact.addressesSorted.where((e) { diff --git a/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart b/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart index 7381de7cc..00a735c93 100644 --- a/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart +++ b/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart @@ -19,6 +19,7 @@ import 'package:stackwallet/pages/address_book_views/subviews/coin_select_sheet. import 'package:stackwallet/providers/providers.dart'; // import 'package:stackwallet/providers/global/should_show_lockscreen_on_resume_state_provider.dart'; import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/address_utils.dart'; @@ -26,10 +27,11 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; @@ -62,7 +64,7 @@ class _NewContactAddressEntryFormState late final FocusNode addressLabelFocusNode; late final FocusNode addressFocusNode; - List coins = []; + List coins = []; @override void initState() { @@ -72,7 +74,7 @@ class _NewContactAddressEntryFormState ..text = ref.read(addressEntryDataProvider(widget.id)).address ?? ""; addressLabelFocusNode = FocusNode(); addressFocusNode = FocusNode(); - coins = [...Coin.values]; + coins = [...SupportedCoins.cryptocurrencies]; super.initState(); } @@ -88,15 +90,20 @@ class _NewContactAddressEntryFormState @override Widget build(BuildContext context) { final isDesktop = Util.isDesktop; - bool showTestNet = ref.watch( - prefsChangeNotifierProvider.select((value) => value.showTestNetCoins), - ); if (isDesktop) { - coins = [...Coin.values]; + coins = [...SupportedCoins.cryptocurrencies]; + coins.removeWhere( + (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + ); - coins.remove(Coin.firoTestNet); + final showTestNet = + ref.read(prefsChangeNotifierProvider).showTestNetCoins; if (showTestNet) { - coins = coins.where((e) => !e.isTestNet).toList(); + coins = coins.toList(); + } else { + coins = coins + .where((e) => e.network != CryptoCurrencyNetwork.test) + .toList(); } } @@ -104,7 +111,7 @@ class _NewContactAddressEntryFormState children: [ if (isDesktop) DropdownButtonHideUnderline( - child: DropdownButton2( + child: DropdownButton2( hint: Text( "Select cryptocurrency", style: STextStyles.fieldLabel(context), @@ -128,10 +135,12 @@ class _NewContactAddressEntryFormState ), ), isExpanded: true, - value: ref.watch(addressEntryDataProvider(widget.id) - .select((value) => value.coin)), + value: ref.watch( + addressEntryDataProvider(widget.id) + .select((value) => value.coin), + ), onChanged: (value) { - if (value is Coin) { + if (value is CryptoCurrency) { ref.read(addressEntryDataProvider(widget.id)).coin = value; } }, @@ -145,7 +154,7 @@ class _NewContactAddressEntryFormState ), items: [ ...coins.map( - (coin) => DropdownMenuItem( + (coin) => DropdownMenuItem( value: coin, child: Padding( padding: const EdgeInsets.symmetric(vertical: 4), @@ -205,7 +214,7 @@ class _NewContactAddressEntryFormState context: context, builder: (_) => const CoinSelectSheet(), ).then((value) { - if (value is Coin) { + if (value is CryptoCurrency) { ref.read(addressEntryDataProvider(widget.id)).coin = value; } @@ -214,8 +223,10 @@ class _NewContactAddressEntryFormState child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - ref.watch(addressEntryDataProvider(widget.id) - .select((value) => value.coin)) == + ref.watch( + addressEntryDataProvider(widget.id) + .select((value) => value.coin), + ) == null ? Text( "Select cryptocurrency", @@ -245,8 +256,9 @@ class _NewContactAddressEntryFormState Text( ref .watch( - addressEntryDataProvider(widget.id) - .select((value) => value.coin))! + addressEntryDataProvider(widget.id) + .select((value) => value.coin), + )! .prettyName, style: STextStyles.itemSubtitle12(context), ), @@ -335,8 +347,10 @@ class _NewContactAddressEntryFormState suffixIcon: UnconstrainedBox( child: Row( children: [ - if (ref.watch(addressEntryDataProvider(widget.id) - .select((value) => value.address)) != + if (ref.watch( + addressEntryDataProvider(widget.id) + .select((value) => value.address), + ) != null) TextFieldIconButton( key: const Key("addAddressBookClearAddressButtonKey"), @@ -348,8 +362,10 @@ class _NewContactAddressEntryFormState }, child: const XIcon(), ), - if (ref.watch(addressEntryDataProvider(widget.id) - .select((value) => value.address)) == + if (ref.watch( + addressEntryDataProvider(widget.id) + .select((value) => value.address), + ) == null) TextFieldIconButton( key: const Key("addAddressPasteAddressButtonKey"), @@ -372,8 +388,10 @@ class _NewContactAddressEntryFormState child: const ClipboardIcon(), ), if (!Util.isDesktop && - ref.watch(addressEntryDataProvider(widget.id) - .select((value) => value.address)) == + ref.watch( + addressEntryDataProvider(widget.id) + .select((value) => value.address), + ) == null) TextFieldIconButton( key: const Key("addAddressBookEntryScanQrButtonKey"), @@ -419,11 +437,12 @@ class _NewContactAddressEntryFormState .read(addressEntryDataProvider(widget.id)) .coin != null) { - if (AddressUtils.validateAddress( - qrResult.rawContent, - ref - .read(addressEntryDataProvider(widget.id)) - .coin!)) { + if (ref + .read(addressEntryDataProvider(widget.id)) + .coin! + .validateAddress( + qrResult.rawContent, + )) { addressController.text = qrResult.rawContent; ref .read(addressEntryDataProvider(widget.id)) @@ -436,8 +455,9 @@ class _NewContactAddressEntryFormState // .state) // .state = true; Logging.instance.log( - "Failed to get camera permissions to scan address qr code: $e\n$s", - level: LogLevel.Warning); + "Failed to get camera permissions to scan address qr code: $e\n$s", + level: LogLevel.Warning, + ); } }, child: const QrCodeIcon(), @@ -466,8 +486,10 @@ class _NewContactAddressEntryFormState }, ), ), - if (!ref.watch(addressEntryDataProvider(widget.id) - .select((value) => value.isValidAddress)) && + if (!ref.watch( + addressEntryDataProvider(widget.id) + .select((value) => value.isValidAddress), + ) && addressController.text.isNotEmpty) Row( children: [ diff --git a/lib/pages/buy_view/buy_form.dart b/lib/pages/buy_view/buy_form.dart index d986a1e3c..67021d8f8 100644 --- a/lib/pages/buy_view/buy_form.dart +++ b/lib/pages/buy_view/buy_form.dart @@ -30,16 +30,17 @@ import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/services/buy/buy_response.dart'; import 'package:stackwallet/services/buy/simplex/simplex_api.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/address_utils.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/custom_loading_overlay.dart'; @@ -58,14 +59,14 @@ import 'package:stackwallet/widgets/textfield_icon_button.dart'; class BuyForm extends ConsumerStatefulWidget { const BuyForm({ - Key? key, + super.key, this.coin, this.tokenContract, this.clipboard = const ClipboardWrapper(), this.scanner = const BarcodeScannerWrapper(), - }) : super(key: key); + }); - final Coin? coin; + final CryptoCurrency? coin; final ClipboardInterface clipboard; final BarcodeScannerInterface scanner; @@ -76,7 +77,7 @@ class BuyForm extends ConsumerStatefulWidget { } class _BuyFormState extends ConsumerState { - late final Coin? coin; + late final CryptoCurrency? coin; late final ClipboardInterface clipboard; late final BarcodeScannerInterface scanner; @@ -249,7 +250,8 @@ class _BuyFormState extends ConsumerState { ], ), ); - }) + }, + ) : await Navigator.of(context).push( MaterialPageRoute( builder: (_) => CryptoSelectionView( @@ -386,7 +388,8 @@ class _BuyFormState extends ConsumerState { ], ), ); - }) + }, + ) : await Navigator.of(context).push( MaterialPageRoute( builder: (_) => FiatSelectionView( @@ -410,7 +413,7 @@ class _BuyFormState extends ConsumerState { if (ticker == null) return false; try { - coinFromTickerCaseInsensitive(ticker); + SupportedCoins.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; @@ -501,7 +504,7 @@ class _BuyFormState extends ConsumerState { ), ), ], - ) + ), ], ), ), @@ -517,9 +520,10 @@ class _BuyFormState extends ConsumerState { child: Text( "Ok", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), onPressed: () { Navigator.of(context).pop(); @@ -589,7 +593,7 @@ class _BuyFormState extends ConsumerState { ), ), ], - ) + ), ], ), ), @@ -606,9 +610,10 @@ class _BuyFormState extends ConsumerState { child: Text( "Ok", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), onPressed: () { Navigator.of(context).pop(); @@ -701,7 +706,8 @@ class _BuyFormState extends ConsumerState { ], ), ); - }) + }, + ) : await Navigator.of(context).push( MaterialPageRoute( builder: (_) => BuyQuotePreviewView( @@ -742,7 +748,7 @@ class _BuyFormState extends ConsumerState { Fiat.fromJson({'ticker': 'USD', 'name': 'United States Dollar'}); selectedCrypto = Crypto.fromJson({ 'ticker': widget.coin?.ticker ?? 'BTC', - 'name': widget.coin?.prettyName ?? 'Bitcoin' + 'name': widget.coin?.prettyName ?? 'Bitcoin', }); // THIS IS BAD. No way to be certain the simplex ticker points to the same @@ -907,7 +913,9 @@ class _BuyFormState extends ConsumerState { children: [ Container( padding: const EdgeInsets.symmetric( - vertical: 3, horizontal: 6), + vertical: 3, + horizontal: 6, + ), decoration: BoxDecoration( color: Theme.of(context) .extension()! @@ -916,12 +924,14 @@ class _BuyFormState extends ConsumerState { ), child: Text( format.simpleCurrencySymbol( - selectedFiat?.ticker ?? "ERR".toUpperCase()), + selectedFiat?.ticker ?? "ERR".toUpperCase(), + ), textAlign: TextAlign.center, style: STextStyles.smallMed12(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), const SizedBox( @@ -976,7 +986,7 @@ class _BuyFormState extends ConsumerState { }); validateAmount(); }, - ) + ), ], ), SizedBox( @@ -1026,47 +1036,53 @@ class _BuyFormState extends ConsumerState { fit: BoxFit.scaleDown, child: Padding( padding: const EdgeInsets.all(12), - child: Row(children: [ - const SizedBox(width: 2), - buyWithFiat - ? Container( - padding: const EdgeInsets.symmetric( - vertical: 3, horizontal: 6), - decoration: BoxDecoration( - color: Theme.of(context) - .extension()! - .currencyListItemBG, - borderRadius: BorderRadius.circular(4), - ), - child: Text( - format.simpleCurrencySymbol( - selectedFiat?.ticker.toUpperCase() ?? - "ERR"), - textAlign: TextAlign.center, - style: STextStyles.smallMed12(context).copyWith( + child: Row( + children: [ + const SizedBox(width: 2), + buyWithFiat + ? Container( + padding: const EdgeInsets.symmetric( + vertical: 3, + horizontal: 6, + ), + decoration: BoxDecoration( + color: Theme.of(context) + .extension()! + .currencyListItemBG, + borderRadius: BorderRadius.circular(4), + ), + child: Text( + format.simpleCurrencySymbol( + selectedFiat?.ticker.toUpperCase() ?? "ERR", + ), + textAlign: TextAlign.center, + style: + STextStyles.smallMed12(context).copyWith( color: Theme.of(context) .extension()! - .accentColorDark), + .accentColorDark, + ), + ), + ) + : CoinIconForTicker( + ticker: selectedCrypto?.ticker ?? "BTC", + size: 20, ), - ) - : CoinIconForTicker( - ticker: selectedCrypto?.ticker ?? "BTC", - size: 20, - ), - SizedBox( - width: buyWithFiat - ? 8 - : 10), // maybe make isDesktop-aware? - Text( - buyWithFiat - ? selectedFiat?.ticker ?? "ERR" - : selectedCrypto?.ticker ?? "ERR", - style: STextStyles.smallMed14(context).copyWith( + SizedBox( + width: buyWithFiat ? 8 : 10, + ), // maybe make isDesktop-aware? + Text( + buyWithFiat + ? selectedFiat?.ticker ?? "ERR" + : selectedCrypto?.ticker ?? "ERR", + style: STextStyles.smallMed14(context).copyWith( color: Theme.of(context) .extension()! - .accentColorDark), - ), - ]), + .accentColorDark, + ), + ), + ], + ), ), ), suffixIcon: Padding( @@ -1078,7 +1094,8 @@ class _BuyFormState extends ConsumerState { _buyAmountController.text.isNotEmpty ? TextFieldIconButton( key: const Key( - "buyViewClearAmountFieldButtonKey"), + "buyViewClearAmountFieldButtonKey", + ), onTap: () { // if (_BuyFormState.buyWithFiat) { // _buyAmountController.text = _BuyFormState @@ -1099,7 +1116,8 @@ class _BuyFormState extends ConsumerState { ) : TextFieldIconButton( key: const Key( - "buyViewPasteAddressFieldButtonKey"), + "buyViewPasteAddressFieldButtonKey", + ), onTap: () async { final ClipboardData? data = await clipboard .getData(Clipboard.kTextPlain); @@ -1150,7 +1168,7 @@ class _BuyFormState extends ConsumerState { text: "Choose from Stack", onTap: () { try { - final coin = coinFromTickerCaseInsensitive( + final coin = SupportedCoins.getCryptoCurrencyForTicker( selectedCrypto!.ticker, ); Navigator.of(context) @@ -1236,7 +1254,8 @@ class _BuyFormState extends ConsumerState { _addressToggleFlag ? TextFieldIconButton( key: const Key( - "buyViewClearAddressFieldButtonKey"), + "buyViewClearAddressFieldButtonKey", + ), onTap: () { _receiveAddressController.text = ""; _address = ""; @@ -1248,7 +1267,8 @@ class _BuyFormState extends ConsumerState { ) : TextFieldIconButton( key: const Key( - "buyViewPasteAddressFieldButtonKey"), + "buyViewPasteAddressFieldButtonKey", + ), onTap: () async { final ClipboardData? data = await clipboard .getData(Clipboard.kTextPlain); @@ -1257,7 +1277,9 @@ class _BuyFormState extends ConsumerState { String content = data.text!.trim(); if (content.contains("\n")) { content = content.substring( - 0, content.indexOf("\n")); + 0, + content.indexOf("\n"), + ); } _receiveAddressController.text = content; @@ -1300,7 +1322,8 @@ class _BuyFormState extends ConsumerState { child: Text( "Address book", style: STextStyles.desktopH3( - context), + context, + ), ), ), const DesktopDialogCloseButton(), @@ -1308,9 +1331,15 @@ class _BuyFormState extends ConsumerState { ), Expanded( child: AddressBookAddressChooser( - coin: coinFromTickerCaseInsensitive( - selectedCrypto!.ticker - .toString()), + coin: SupportedCoins + .cryptocurrencies + .firstWhere( + (e) => + e.ticker.toLowerCase() == + selectedCrypto!.ticker + .toString() + .toLowerCase(), + ), ), ), ], @@ -1352,21 +1381,25 @@ class _BuyFormState extends ConsumerState { if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } final qrResult = await scanner.scan(); Logging.instance.log( - "qrResult content: ${qrResult.rawContent}", - level: LogLevel.Info); + "qrResult content: ${qrResult.rawContent}", + level: LogLevel.Info, + ); final results = AddressUtils.parseUri( - qrResult.rawContent); + qrResult.rawContent, + ); Logging.instance.log( - "qrResult parsed: $results", - level: LogLevel.Info); + "qrResult parsed: $results", + level: LogLevel.Info, + ); if (results.isNotEmpty) { // auto fill address diff --git a/lib/pages/buy_view/buy_in_wallet_view.dart b/lib/pages/buy_view/buy_in_wallet_view.dart index b0183eb79..18f4d643a 100644 --- a/lib/pages/buy_view/buy_in_wallet_view.dart +++ b/lib/pages/buy_view/buy_in_wallet_view.dart @@ -12,21 +12,21 @@ import 'package:flutter/material.dart'; import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; import 'package:stackwallet/pages/buy_view/buy_view.dart'; import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; class BuyInWalletView extends StatefulWidget { const BuyInWalletView({ - Key? key, + super.key, required this.coin, this.contract, - }) : super(key: key); + }); static const String routeName = "/stackBuyInWalletView"; - final Coin? coin; + final CryptoCurrency? coin; final EthContract? contract; @override @@ -34,7 +34,7 @@ class BuyInWalletView extends StatefulWidget { } class _BuyInWalletViewState extends State { - late final Coin? coin; + late final CryptoCurrency? coin; @override Widget build(BuildContext context) { diff --git a/lib/pages/buy_view/buy_view.dart b/lib/pages/buy_view/buy_view.dart index e87fa3398..5bfed3475 100644 --- a/lib/pages/buy_view/buy_view.dart +++ b/lib/pages/buy_view/buy_view.dart @@ -15,18 +15,18 @@ import 'package:stackwallet/pages/buy_view/buy_form.dart'; import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/stack_dialog.dart'; import 'package:stackwallet/widgets/tor_subscription.dart'; class BuyView extends ConsumerStatefulWidget { const BuyView({ - Key? key, + super.key, this.coin, this.tokenContract, - }) : super(key: key); + }); - final Coin? coin; + final CryptoCurrency? coin; final EthContract? tokenContract; static const String routeName = "/stackBuyView"; @@ -36,7 +36,7 @@ class BuyView extends ConsumerStatefulWidget { } class _BuyViewState extends ConsumerState { - Coin? coin; + CryptoCurrency? coin; EthContract? tokenContract; late bool torEnabled; diff --git a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart index b7ae75de0..bf101ec72 100644 --- a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart +++ b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart @@ -14,11 +14,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/models/buy/response_objects/crypto.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; @@ -53,9 +53,11 @@ class _CryptoSelectionViewState extends ConsumerState { void filter(String text) { setState(() { _coins = [ - ...coins.where((e) => - e.name.toLowerCase().contains(text.toLowerCase()) || - e.ticker.toLowerCase().contains(text.toLowerCase())) + ...coins.where( + (e) => + e.name.toLowerCase().contains(text.toLowerCase()) || + e.ticker.toLowerCase().contains(text.toLowerCase()), + ), ]; }); } @@ -66,10 +68,12 @@ class _CryptoSelectionViewState extends ConsumerState { coins = [...widget.coins]; coins.sort( - (a, b) => a.ticker.toLowerCase().compareTo(b.ticker.toLowerCase())); - for (Coin coin in Coin.values.reversed) { - int index = coins.indexWhere((element) => - element.ticker.toLowerCase() == coin.ticker.toLowerCase()); + (a, b) => a.ticker.toLowerCase().compareTo(b.ticker.toLowerCase()), + ); + for (final coin in SupportedCoins.cryptocurrencies.reversed) { + final index = coins.indexWhere( + (element) => element.ticker.toLowerCase() == coin.ticker.toLowerCase(), + ); if (index > 0) { final currency = coins.removeAt(index); coins.insert(0, currency); @@ -104,7 +108,8 @@ class _CryptoSelectionViewState extends ConsumerState { if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 50)); + const Duration(milliseconds: 50), + ); } if (mounted) { Navigator.of(context).pop(); @@ -265,7 +270,7 @@ bool isStackCoin(String? ticker) { if (ticker == null) return false; try { - coinFromTickerCaseInsensitive(ticker); + SupportedCoins.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; @@ -289,10 +294,10 @@ bool isStackCoin(String? ticker) { /// caller must ensure [Coin] for ticker exists class CoinIconForTicker extends ConsumerWidget { const CoinIconForTicker({ - Key? key, + super.key, required this.ticker, required this.size, - }) : super(key: key); + }); final String ticker; final double size; @@ -300,7 +305,7 @@ class CoinIconForTicker extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { try { - final coin = coinFromTickerCaseInsensitive(ticker); + final coin = SupportedCoins.getCryptoCurrencyForTicker(ticker); return SvgPicture.file( File( ref.watch(coinIconProvider(coin)), @@ -321,7 +326,7 @@ class CoinIconForTicker extends ConsumerWidget { // }) { // String? iconAsset = /*isStackCoin(ticker) // ?*/ -// Assets.svg.iconFor(coin: coinFromTickerCaseInsensitive(ticker)); +// Assets.svg.iconFor(coin: SupportedCoins.getCryptoCurrencyForTicker(ticker)); // // : Assets.svg.buyIconFor(ticker); // return (iconAsset != null) // ? SvgPicture.asset(iconAsset, height: size, width: size) diff --git a/lib/pages/cashfusion/cashfusion_view.dart b/lib/pages/cashfusion/cashfusion_view.dart index 5de0003d9..ff058859e 100644 --- a/lib/pages/cashfusion/cashfusion_view.dart +++ b/lib/pages/cashfusion/cashfusion_view.dart @@ -23,8 +23,8 @@ import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; import 'package:stackwallet/widgets/background.dart'; @@ -56,7 +56,7 @@ class _CashFusionViewState extends ConsumerState { late final FocusNode portFocusNode; late final TextEditingController fusionRoundController; late final FocusNode fusionRoundFocusNode; - late final Coin coin; + late final CryptoCurrency coin; bool _enableSSLCheckbox = false; bool _enableStartButton = false; diff --git a/lib/pages/cashfusion/fusion_progress_view.dart b/lib/pages/cashfusion/fusion_progress_view.dart index 78bc9ccc7..40844cde7 100644 --- a/lib/pages/cashfusion/fusion_progress_view.dart +++ b/lib/pages/cashfusion/fusion_progress_view.dart @@ -17,10 +17,10 @@ import 'package:stackwallet/providers/cash_fusion/fusion_progress_ui_state_provi import 'package:stackwallet/providers/global/prefs_provider.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/show_loading.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; import 'package:stackwallet/widgets/background.dart'; @@ -44,7 +44,7 @@ class FusionProgressView extends ConsumerStatefulWidget { } class _FusionProgressViewState extends ConsumerState { - late final Coin coin; + late final CryptoCurrency coin; Future _requestAndProcessCancel() async { final shouldCancel = await showDialog( diff --git a/lib/pages/coin_control/coin_control_view.dart b/lib/pages/coin_control/coin_control_view.dart index b57281dd7..b82b13914 100644 --- a/lib/pages/coin_control/coin_control_view.dart +++ b/lib/pages/coin_control/coin_control_view.dart @@ -24,7 +24,6 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; @@ -49,12 +48,12 @@ enum CoinControlViewType { class CoinControlView extends ConsumerStatefulWidget { const CoinControlView({ - Key? key, + super.key, required this.walletId, required this.type, this.requestedTotal, this.selectedUTXOs, - }) : super(key: key); + }); static const routeName = "/coinControl"; @@ -128,7 +127,7 @@ class _CoinControlViewState extends ConsumerState { filter: CCFilter.all, sort: _sort, searchTerm: "", - coin: coin, + cryptoCurrency: coin, ); } else { _map = null; @@ -141,7 +140,7 @@ class _CoinControlViewState extends ConsumerState { : CCFilter.available, sort: _sort, searchTerm: _isSearching ? searchController.text : "", - coin: coin, + cryptoCurrency: coin, ); } @@ -682,7 +681,7 @@ class _CoinControlViewState extends ConsumerState { ); final selectedSum = selectedSumInt.toAmountAsRaw( - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ); return Text( ref diff --git a/lib/pages/coin_control/utxo_card.dart b/lib/pages/coin_control/utxo_card.dart index 74c5d3b82..5688d2b2a 100644 --- a/lib/pages/coin_control/utxo_card.dart +++ b/lib/pages/coin_control/utxo_card.dart @@ -17,7 +17,6 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; @@ -26,14 +25,14 @@ import 'package:stackwallet/widgets/rounded_container.dart'; class UtxoCard extends ConsumerStatefulWidget { const UtxoCard({ - Key? key, + super.key, required this.utxo, required this.walletId, required this.onSelectedChanged, required this.initialSelectedState, required this.canSelect, this.onPressed, - }) : super(key: key); + }); final String walletId; final UTXO utxo; @@ -138,7 +137,7 @@ class _UtxoCardState extends ConsumerState { Text( ref.watch(pAmountFormatter(coin)).format( utxo.value.toAmountAsRaw( - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ), ), style: STextStyles.w600_14(context), diff --git a/lib/pages/coin_control/utxo_details_view.dart b/lib/pages/coin_control/utxo_details_view.dart index 7c32fee2f..ce6dce597 100644 --- a/lib/pages/coin_control/utxo_details_view.dart +++ b/lib/pages/coin_control/utxo_details_view.dart @@ -20,7 +20,6 @@ import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; @@ -37,10 +36,10 @@ import 'package:stackwallet/widgets/rounded_container.dart'; class UtxoDetailsView extends ConsumerStatefulWidget { const UtxoDetailsView({ - Key? key, + super.key, required this.utxoId, required this.walletId, - }) : super(key: key); + }); static const routeName = "/utxoDetails"; @@ -244,7 +243,7 @@ class _UtxoDetailsViewState extends ConsumerState { Text( ref.watch(pAmountFormatter(coin)).format( utxo!.value.toAmountAsRaw( - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ), ), style: STextStyles.pageTitleH2(context), diff --git a/lib/pages/exchange_view/choose_from_stack_view.dart b/lib/pages/exchange_view/choose_from_stack_view.dart index 553c11628..d6aa4f837 100644 --- a/lib/pages/exchange_view/choose_from_stack_view.dart +++ b/lib/pages/exchange_view/choose_from_stack_view.dart @@ -13,8 +13,8 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -24,11 +24,11 @@ import 'package:stackwallet/widgets/wallet_info_row/sub_widgets/wallet_info_row_ class ChooseFromStackView extends ConsumerStatefulWidget { const ChooseFromStackView({ - Key? key, + super.key, required this.coin, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; static const String routeName = "/chooseFromStack"; @@ -38,7 +38,7 @@ class ChooseFromStackView extends ConsumerStatefulWidget { } class _ChooseFromStackViewState extends ConsumerState { - late final Coin coin; + late final CryptoCurrency coin; @override void initState() { diff --git a/lib/pages/exchange_view/confirm_change_now_send.dart b/lib/pages/exchange_view/confirm_change_now_send.dart index 85072c98c..5135d96ee 100644 --- a/lib/pages/exchange_view/confirm_change_now_send.dart +++ b/lib/pages/exchange_view/confirm_change_now_send.dart @@ -26,7 +26,6 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; @@ -47,14 +46,14 @@ import 'package:uuid/uuid.dart'; class ConfirmChangeNowSendView extends ConsumerStatefulWidget { const ConfirmChangeNowSendView({ - Key? key, + super.key, required this.txData, required this.walletId, this.routeOnSuccessName = WalletView.routeName, required this.trade, this.shouldSendPublicFiroFunds, this.fromDesktopStep4 = false, - }) : super(key: key); + }); static const String routeName = "/confirmChangeNowSend"; diff --git a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart index 3a23ea331..7698d875b 100644 --- a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart +++ b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart @@ -22,10 +22,10 @@ import 'package:stackwallet/services/exchange/exchange.dart'; import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; import 'package:stackwallet/services/exchange/trocador/trocador_exchange.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; @@ -143,7 +143,8 @@ class _ExchangeCurrencySelectionViewState onPressed: () async { Navigator.of(context, rootNavigator: isDesktop).pop(); _currencies = await _showUpdatingCurrencies( - whileFuture: _loadCurrencies()); + whileFuture: _loadCurrencies(), + ); setState(() {}); }, ), @@ -164,15 +165,17 @@ class _ExchangeCurrencySelectionViewState .filter() .isFiatEqualTo(false) .and() - .group((q) => widget.isFixedRate - ? q - .rateTypeEqualTo(SupportedRateType.both) - .or() - .rateTypeEqualTo(SupportedRateType.fixed) - : q - .rateTypeEqualTo(SupportedRateType.both) - .or() - .rateTypeEqualTo(SupportedRateType.estimated)) + .group( + (q) => widget.isFixedRate + ? q + .rateTypeEqualTo(SupportedRateType.both) + .or() + .rateTypeEqualTo(SupportedRateType.fixed) + : q + .rateTypeEqualTo(SupportedRateType.both) + .or() + .rateTypeEqualTo(SupportedRateType.estimated), + ) .sortByIsStackCoin() .thenByName() .findAll(); @@ -180,9 +183,10 @@ class _ExchangeCurrencySelectionViewState // If using Tor, filter exchanges which do not support Tor. if (Prefs.instance.useTor) { if (Exchange.exchangeNamesWithTorSupport.isNotEmpty) { - currencies.removeWhere((element) => !Exchange - .exchangeNamesWithTorSupport - .contains(element.exchangeName)); + currencies.removeWhere( + (element) => !Exchange.exchangeNamesWithTorSupport + .contains(element.exchangeName), + ); } } @@ -193,7 +197,8 @@ class _ExchangeCurrencySelectionViewState final List distinctCurrencies = []; for (final currency in currencies) { if (!distinctCurrencies.any( - (e) => e.ticker.toLowerCase() == currency.ticker.toLowerCase())) { + (e) => e.ticker.toLowerCase() == currency.ticker.toLowerCase(), + )) { distinctCurrencies.add(currency); } } @@ -207,23 +212,29 @@ class _ExchangeCurrencySelectionViewState } return _currencies - .where((e) => - e.name.toLowerCase().contains(text.toLowerCase()) || - e.ticker.toLowerCase().contains(text.toLowerCase())) + .where( + (e) => + e.name.toLowerCase().contains(text.toLowerCase()) || + e.ticker.toLowerCase().contains(text.toLowerCase()), + ) .toList(); } else { if (text.isEmpty) { return _currencies - .where((e) => - e.ticker.toLowerCase() != widget.pairedTicker!.toLowerCase()) + .where( + (e) => + e.ticker.toLowerCase() != widget.pairedTicker!.toLowerCase(), + ) .toList(); } return _currencies - .where((e) => - e.ticker.toLowerCase() != widget.pairedTicker!.toLowerCase() && - (e.name.toLowerCase().contains(text.toLowerCase()) || - e.ticker.toLowerCase().contains(text.toLowerCase()))) + .where( + (e) => + e.ticker.toLowerCase() != widget.pairedTicker!.toLowerCase() && + (e.name.toLowerCase().contains(text.toLowerCase()) || + e.ticker.toLowerCase().contains(text.toLowerCase())), + ) .toList(); } } @@ -266,7 +277,8 @@ class _ExchangeCurrencySelectionViewState if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 50)); + const Duration(milliseconds: 50), + ); } if (mounted) { Navigator.of(context).pop(); @@ -353,18 +365,24 @@ class _ExchangeCurrencySelectionViewState Flexible( child: Builder( builder: (context) { - final coins = Coin.values.where((e) => - e.ticker.toLowerCase() != - widget.pairedTicker?.toLowerCase()); + final coins = SupportedCoins.cryptocurrencies.where( + (e) => + e.ticker.toLowerCase() != + widget.pairedTicker?.toLowerCase(), + ); final items = filter(_searchString); final walletCoins = items - .where((currency) => coins - .where((coin) => - coin.ticker.toLowerCase() == - currency.ticker.toLowerCase()) - .isNotEmpty) + .where( + (currency) => coins + .where( + (coin) => + coin.ticker.toLowerCase() == + currency.ticker.toLowerCase(), + ) + .isNotEmpty, + ) .toList(); // sort alphabetically by name @@ -402,7 +420,9 @@ class _ExchangeCurrencySelectionViewState height: 24, child: isStackCoin(items[index].ticker) ? CoinIconForTicker( - ticker: items[index].ticker, size: 24) + ticker: items[index].ticker, + size: 24, + ) // ? getIconForTicker( // items[index].ticker, // size: 24, diff --git a/lib/pages/exchange_view/exchange_form.dart b/lib/pages/exchange_view/exchange_form.dart index a233a35c7..2dbd40094 100644 --- a/lib/pages/exchange_view/exchange_form.dart +++ b/lib/pages/exchange_view/exchange_form.dart @@ -40,10 +40,11 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount_unit.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_loading_overlay.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -59,14 +60,14 @@ import 'package:uuid/uuid.dart'; class ExchangeForm extends ConsumerStatefulWidget { const ExchangeForm({ - Key? key, + super.key, this.walletId, this.coin, this.contract, - }) : super(key: key); + }); final String? walletId; - final Coin? coin; + final CryptoCurrency? coin; final EthContract? contract; @override @@ -75,7 +76,7 @@ class ExchangeForm extends ConsumerStatefulWidget { class _ExchangeFormState extends ConsumerState { late final String? walletId; - late final Coin? coin; + late final CryptoCurrency? coin; late final bool walletInitiated; List get usableExchanges { @@ -172,7 +173,8 @@ class _ExchangeFormState extends ConsumerState { .tryParse( value, locale: ref.read(localeServiceChangeNotifierProvider).locale, - coin: Coin.bitcoin, // dummy value (not used due to override) + coin: Bitcoin(CryptoCurrencyNetwork + .main), // dummy value (not used due to override) overrideWithDecimalPlacesFromString: true, ) ?.decimal; @@ -607,12 +609,12 @@ class _ExchangeFormState extends ConsumerState { } } - bool isWalletCoin(Coin? coin, bool isSend) { + bool isWalletCoin(CryptoCurrency? coin, bool isSend) { if (coin == null) { return false; } - String? ticker = isSend + final String? ticker = isSend ? ref.read(efCurrencyPairProvider).send?.ticker : ref.read(efCurrencyPairProvider).receive?.ticker; diff --git a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart index 95734e94c..5f4ed4a6b 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart @@ -19,12 +19,12 @@ import 'package:stackwallet/pages/exchange_view/exchange_step_views/step_3_view. import 'package:stackwallet/pages/exchange_view/sub_widgets/step_row.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/address_utils.dart'; import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/widgets/background.dart'; @@ -72,7 +72,7 @@ class _Step2ViewState extends ConsumerState { bool isStackCoin(String ticker) { try { - coinFromTickerCaseInsensitive(ticker); + SupportedCoins.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; @@ -207,10 +207,13 @@ class _Step2ViewState extends ConsumerState { text: "Choose from Stack", onTap: () { try { - final coin = - coinFromTickerCaseInsensitive( - model.receiveTicker, - ); + final coin = SupportedCoins + .cryptocurrencies + .firstWhere((e) => + e.ticker.toLowerCase() == + model.receiveTicker + .toLowerCase()); + Navigator.of(context) .pushNamed( ChooseFromStackView.routeName, @@ -480,10 +483,12 @@ class _Step2ViewState extends ConsumerState { text: "Choose from Stack", onTap: () { try { - final coin = - coinFromTickerCaseInsensitive( - model.sendTicker, - ); + final coin = SupportedCoins + .cryptocurrencies + .firstWhere((e) => + e.ticker.toLowerCase() == + model.sendTicker.toLowerCase()); + Navigator.of(context) .pushNamed( ChooseFromStackView.routeName, diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index 496975116..ba9e37ad6 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -26,15 +26,18 @@ import 'package:stackwallet/pages/send_view/sub_widgets/building_transaction_dia import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/route_generator.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; @@ -72,7 +75,7 @@ class _Step4ViewState extends ConsumerState { bool _isWalletCoinAndHasWallet(String ticker, WidgetRef ref) { try { - final coin = coinFromTickerCaseInsensitive(ticker); + final coin = SupportedCoins.getCryptoCurrencyForTicker(ticker); return ref .read(pWallets) .wallets @@ -194,9 +197,9 @@ class _Step4ViewState extends ConsumerState { ); } - Future _confirmSend(Tuple2 tuple) async { + Future _confirmSend(Tuple2 tuple) async { final bool firoPublicSend; - if (tuple.item2 == Coin.firo) { + if (tuple.item2 is Firo) { final result = await _showSendFromFiroBalanceSelectSheet(tuple.item1); if (result == null) { return; @@ -210,7 +213,7 @@ class _Step4ViewState extends ConsumerState { final wallet = ref.read(pWallets).getWallet(tuple.item1); final Amount amount = model.sendAmount.toAmount( - fractionDigits: wallet.info.coin.decimals, + fractionDigits: wallet.info.coin.fractionDigits, ); final address = model.trade!.payInAddress; @@ -258,8 +261,7 @@ class _Step4ViewState extends ConsumerState { ), ); } else { - final memo = wallet.info.coin == Coin.stellar || - wallet.info.coin == Coin.stellarTestnet + final memo = wallet.info.coin is Stellar ? model.trade!.payInExtraId.isNotEmpty ? model.trade!.payInExtraId : null @@ -851,16 +853,23 @@ class _Step4ViewState extends ConsumerState { .useMaterialPageRoute, builder: (BuildContext context) { - final coin = - coinFromTickerCaseInsensitive( - model.trade!.payInCurrency, + final coin = SupportedCoins + .cryptocurrencies + .firstWhere( + (e) => + e.ticker + .toLowerCase() == + model.trade! + .payInCurrency + .toLowerCase(), ); + return SendFromView( coin: coin, amount: model.sendAmount .toAmount( fractionDigits: - coin.decimals, + coin.fractionDigits, ), address: model .trade!.payInAddress, diff --git a/lib/pages/exchange_view/send_from_view.dart b/lib/pages/exchange_view/send_from_view.dart index a97b94a28..b0dbd0252 100644 --- a/lib/pages/exchange_view/send_from_view.dart +++ b/lib/pages/exchange_view/send_from_view.dart @@ -23,14 +23,17 @@ import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/route_generator.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; +import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; @@ -56,7 +59,7 @@ class SendFromView extends ConsumerStatefulWidget { static const String routeName = "/sendFrom"; - final Coin coin; + final CryptoCurrency coin; final Amount amount; final String address; final Trade trade; @@ -68,7 +71,7 @@ class SendFromView extends ConsumerStatefulWidget { } class _SendFromViewState extends ConsumerState { - late final Coin coin; + late final CryptoCurrency coin; late final Amount amount; late final String address; late final Trade trade; @@ -279,7 +282,7 @@ class _SendFromCardState extends ConsumerState { // if not firo then do normal send if (shouldSendPublicFiroFunds == null) { - final memo = coin == Coin.stellar || coin == Coin.stellarTestnet + final memo = coin is Stellar ? trade.payInExtraId.isNotEmpty ? trade.payInExtraId : null @@ -427,7 +430,7 @@ class _SendFromCardState extends ConsumerState { final coin = ref.watch(pWalletCoin(walletId)); - final isFiro = coin == Coin.firoTestNet || coin == Coin.firo; + final isFiro = coin is Firo; return RoundedWhiteContainer( padding: const EdgeInsets.all(0), @@ -602,10 +605,7 @@ class _SendFromCardState extends ConsumerState { children: [ Container( decoration: BoxDecoration( - color: Theme.of(context) - .extension()! - .colorForCoin(coin) - .withOpacity(0.5), + color: ref.watch(pCoinColor(coin)).withOpacity(0.5), borderRadius: BorderRadius.circular( Constants.size.circularBorderRadius, ), diff --git a/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart b/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart index e891f148e..926fa5ddb 100644 --- a/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart +++ b/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart @@ -16,16 +16,18 @@ import 'package:stackwallet/models/exchange/response_objects/estimate.dart'; import 'package:stackwallet/providers/exchange/exchange_form_state_provider.dart'; import 'package:stackwallet/providers/global/locale_provider.dart'; import 'package:stackwallet/services/exchange/exchange.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/amount/amount_unit.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/animated_text.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/exchange/trocador/trocador_kyc_info_button.dart'; @@ -33,11 +35,11 @@ import 'package:stackwallet/widgets/exchange/trocador/trocador_rating_type_enum. class ExchangeOption extends ConsumerStatefulWidget { const ExchangeOption({ - Key? key, + super.key, required this.exchange, required this.fixedRate, required this.reversed, - }) : super(key: key); + }); final Exchange exchange; final bool fixedRate; @@ -92,9 +94,9 @@ class _ExchangeOptionState extends ConsumerState { int decimals; try { - decimals = coinFromTickerCaseInsensitive( - receivingCurrency.ticker) - .decimals; + decimals = SupportedCoins.getCryptoCurrencyForTicker( + receivingCurrency.ticker, + ).fractionDigits; } catch (_) { decimals = 8; // some reasonable alternative } @@ -109,10 +111,11 @@ class _ExchangeOptionState extends ConsumerState { .toAmount(fractionDigits: decimals); } - Coin? coin; + CryptoCurrency? coin; try { - coin = coinFromTickerCaseInsensitive( - receivingCurrency.ticker); + coin = SupportedCoins.getCryptoCurrencyForTicker( + receivingCurrency.ticker, + ); } catch (_) { coin = null; } @@ -128,7 +131,8 @@ class _ExchangeOptionState extends ConsumerState { localeServiceChangeNotifierProvider .select((value) => value.locale), ), - coin: Coin.bitcoin, // some sane default + coin: Bitcoin(CryptoCurrencyNetwork + .main), // some sane default maxDecimals: 8, // some sane default ); rateString = "1 ${sendCurrency.ticker.toUpperCase()} " diff --git a/lib/pages/exchange_view/trade_details_view.dart b/lib/pages/exchange_view/trade_details_view.dart index ab3aa0b1f..33d516d8e 100644 --- a/lib/pages/exchange_view/trade_details_view.dart +++ b/lib/pages/exchange_view/trade_details_view.dart @@ -33,6 +33,7 @@ import 'package:stackwallet/services/exchange/exchange.dart'; import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; import 'package:stackwallet/services/exchange/simpleswap/simpleswap_exchange.dart'; import 'package:stackwallet/services/exchange/trocador/trocador_exchange.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; @@ -40,10 +41,10 @@ import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -58,13 +59,13 @@ import 'package:url_launcher/url_launcher.dart'; class TradeDetailsView extends ConsumerStatefulWidget { const TradeDetailsView({ - Key? key, + super.key, required this.tradeId, required this.transactionIfSentFromStack, required this.walletId, required this.walletName, this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); static const String routeName = "/tradeDetails"; @@ -87,9 +88,9 @@ class _TradeDetailsViewState extends ConsumerState { bool isStackCoin(String ticker) { try { try { - coinFromTickerCaseInsensitive(ticker); + SupportedCoins.getCryptoCurrencyForTicker(ticker); } catch (_) {} - coinFromPrettyName(ticker); + SupportedCoins.getCryptoCurrencyByPrettyName(ticker); return true; } on ArgumentError catch (_) { return false; @@ -167,8 +168,11 @@ class _TradeDetailsViewState extends ConsumerState { final bool sentFromStack = transactionIfSentFromStack != null && walletId != null; - final trade = ref.watch(tradesServiceProvider.select( - (value) => value.trades.firstWhere((e) => e.tradeId == tradeId))); + final trade = ref.watch( + tradesServiceProvider.select( + (value) => value.trades.firstWhere((e) => e.tradeId == tradeId), + ), + ); final bool hasTx = sentFromStack || !(trade.status == "New" || @@ -273,16 +277,19 @@ class _TradeDetailsViewState extends ConsumerState { label: "Send from Stack", buttonHeight: ButtonHeight.l, onPressed: () { - Coin coin; + CryptoCurrency coin; try { - coin = coinFromTickerCaseInsensitive( - trade.payInCurrency); + coin = SupportedCoins.getCryptoCurrencyForTicker( + trade.payInCurrency, + ); } catch (_) { - coin = coinFromPrettyName(trade.payInCurrency); + coin = SupportedCoins.getCryptoCurrencyByPrettyName( + trade.payInCurrency, + ); } final amount = Amount.fromDecimal( sendAmount, - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ); final address = trade.payInAddress; @@ -368,28 +375,34 @@ class _TradeDetailsViewState extends ConsumerState { const SizedBox( height: 4, ), - Builder(builder: (context) { - String text; - try { - final coin = coinFromTickerCaseInsensitive( - trade.payInCurrency); - final amount = sendAmount.toAmount( - fractionDigits: coin.decimals); - text = ref - .watch(pAmountFormatter(coin)) - .format(amount); - } catch (_) { - text = sendAmount.toStringAsFixed( + Builder( + builder: (context) { + String text; + try { + final coin = + SupportedCoins.getCryptoCurrencyForTicker( + trade.payInCurrency, + ); + final amount = sendAmount.toAmount( + fractionDigits: coin.fractionDigits, + ); + text = ref + .watch(pAmountFormatter(coin)) + .format(amount); + } catch (_) { + text = sendAmount.toStringAsFixed( trade.payInCurrency.toLowerCase() == "xmr" ? 12 - : 8); - } + : 8, + ); + } - return SelectableText( - "-$text ${trade.payInCurrency.toUpperCase()}", - style: STextStyles.itemSubtitle(context), - ); - }), + return SelectableText( + "-$text ${trade.payInCurrency.toUpperCase()}", + style: STextStyles.itemSubtitle(context), + ); + }, + ), ], ), if (!isDesktop) @@ -464,7 +477,7 @@ class _TradeDetailsViewState extends ConsumerState { ), ), ], - ) + ), ], ), const SizedBox( @@ -512,7 +525,8 @@ class _TradeDetailsViewState extends ConsumerState { Text( "Amount", style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), ), const SizedBox( height: 2, @@ -520,8 +534,8 @@ class _TradeDetailsViewState extends ConsumerState { Text( "${trade.payInAmount} ${trade.payInCurrency.toUpperCase()}", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -542,43 +556,44 @@ class _TradeDetailsViewState extends ConsumerState { ), child: RichText( text: TextSpan( - text: - "You must send at least ${sendAmount.toStringAsFixed( - trade.payInCurrency.toLowerCase() == "xmr" ? 12 : 8, - )} ${trade.payInCurrency.toUpperCase()}. ", - style: isDesktop - ? STextStyles.desktopTextExtraExtraSmall(context) - .copyWith( - color: Theme.of(context) - .extension()! - .accentColorRed) - : STextStyles.label(context).copyWith( - color: Theme.of(context) - .extension()! - .warningForeground, - ), - children: [ - TextSpan( - text: - "If you send less than ${sendAmount.toStringAsFixed( - trade.payInCurrency.toLowerCase() == "xmr" - ? 12 - : 8, - )} ${trade.payInCurrency.toUpperCase()}, your transaction may not be converted and it may not be refunded.", - style: isDesktop - ? STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension()! - .accentColorRed) - : STextStyles.label(context).copyWith( - color: Theme.of(context) - .extension()! - .warningForeground, - ), - ), - ]), + text: + "You must send at least ${sendAmount.toStringAsFixed( + trade.payInCurrency.toLowerCase() == "xmr" ? 12 : 8, + )} ${trade.payInCurrency.toUpperCase()}. ", + style: isDesktop + ? STextStyles.desktopTextExtraExtraSmall(context) + .copyWith( + color: Theme.of(context) + .extension()! + .accentColorRed, + ) + : STextStyles.label(context).copyWith( + color: Theme.of(context) + .extension()! + .warningForeground, + ), + children: [ + TextSpan( + text: + "If you send less than ${sendAmount.toStringAsFixed( + trade.payInCurrency.toLowerCase() == "xmr" ? 12 : 8, + )} ${trade.payInCurrency.toUpperCase()}, your transaction may not be converted and it may not be refunded.", + style: isDesktop + ? STextStyles.desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .accentColorRed, + ) + : STextStyles.label(context).copyWith( + color: Theme.of(context) + .extension()! + .warningForeground, + ), + ), + ], + ), ), ), ), @@ -613,8 +628,10 @@ class _TradeDetailsViewState extends ConsumerState { CustomTextButton( text: "View transaction", onTap: () { - final Coin coin = - coinFromTickerCaseInsensitive(trade.payInCurrency); + final CryptoCurrency coin = + SupportedCoins.getCryptoCurrencyForTicker( + trade.payInCurrency, + ); if (isDesktop) { Navigator.of(context).push( @@ -638,7 +655,10 @@ class _TradeDetailsViewState extends ConsumerState { Navigator.of(context).pushNamed( TransactionDetailsView.routeName, arguments: Tuple3( - transactionIfSentFromStack!, coin, walletId!), + transactionIfSentFromStack!, + coin, + walletId!, + ), ); } }, @@ -787,14 +807,15 @@ class _TradeDetailsViewState extends ConsumerState { width: width + 20, height: width + 20, child: QrImageView( - data: trade.payInAddress, - size: width, - backgroundColor: Theme.of(context) - .extension()! - .popupBG, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark), + data: trade.payInAddress, + size: width, + backgroundColor: Theme.of(context) + .extension()! + .popupBG, + foregroundColor: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ), @@ -812,14 +833,16 @@ class _TradeDetailsViewState extends ConsumerState { style: Theme.of(context) .extension()! .getSecondaryEnabledButtonStyle( - context), + context, + ), child: Text( "Cancel", style: STextStyles.button(context) .copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ), @@ -1005,8 +1028,10 @@ class _TradeDetailsViewState extends ConsumerState { height: 4, ), SelectableText( - ref.watch(tradeNoteServiceProvider - .select((value) => value.getNote(tradeId: tradeId))), + ref.watch( + tradeNoteServiceProvider + .select((value) => value.getNote(tradeId: tradeId)), + ), style: STextStyles.itemSubtitle12(context), ), ], @@ -1132,7 +1157,8 @@ class _TradeDetailsViewState extends ConsumerState { if (isDesktop) SelectableText( Format.extractDateFrom( - trade.timestamp.millisecondsSinceEpoch ~/ 1000), + trade.timestamp.millisecondsSinceEpoch ~/ 1000, + ), style: STextStyles.desktopTextExtraExtraSmall(context) .copyWith( color: Theme.of(context) @@ -1145,13 +1171,15 @@ class _TradeDetailsViewState extends ConsumerState { if (!isDesktop) SelectableText( Format.extractDateFrom( - trade.timestamp.millisecondsSinceEpoch ~/ 1000), + trade.timestamp.millisecondsSinceEpoch ~/ 1000, + ), style: STextStyles.itemSubtitle12(context), ), if (isDesktop) IconCopyButton( data: Format.extractDateFrom( - trade.timestamp.millisecondsSinceEpoch ~/ 1000), + trade.timestamp.millisecondsSinceEpoch ~/ 1000, + ), ), ], ), @@ -1265,7 +1293,7 @@ class _TradeDetailsViewState extends ConsumerState { .infoItemIcons, width: 12, ), - ) + ), ], ), ], @@ -1352,15 +1380,19 @@ class _TradeDetailsViewState extends ConsumerState { SecondaryButton( label: "Send from Stack", onPressed: () { - Coin coin; + CryptoCurrency coin; try { - coin = coinFromTickerCaseInsensitive(trade.payInCurrency); + coin = SupportedCoins.getCryptoCurrencyForTicker( + trade.payInCurrency, + ); } catch (_) { - coin = coinFromPrettyName(trade.payInCurrency); + coin = SupportedCoins.getCryptoCurrencyByPrettyName( + trade.payInCurrency, + ); } final amount = Amount.fromDecimal( sendAmount, - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ); final address = trade.payInAddress; diff --git a/lib/pages/exchange_view/wallet_initiated_exchange_view.dart b/lib/pages/exchange_view/wallet_initiated_exchange_view.dart index 3b6c41093..9804a46c2 100644 --- a/lib/pages/exchange_view/wallet_initiated_exchange_view.dart +++ b/lib/pages/exchange_view/wallet_initiated_exchange_view.dart @@ -19,8 +19,8 @@ import 'package:stackwallet/providers/exchange/exchange_form_state_provider.dart import 'package:stackwallet/providers/global/prefs_provider.dart'; import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -28,16 +28,16 @@ import 'package:stackwallet/widgets/custom_loading_overlay.dart'; class WalletInitiatedExchangeView extends ConsumerStatefulWidget { const WalletInitiatedExchangeView({ - Key? key, + super.key, required this.walletId, required this.coin, this.contract, - }) : super(key: key); + }); static const String routeName = "/walletInitiatedExchange"; final String walletId; - final Coin coin; + final CryptoCurrency coin; final EthContract? contract; @override @@ -48,7 +48,7 @@ class WalletInitiatedExchangeView extends ConsumerStatefulWidget { class _WalletInitiatedExchangeViewState extends ConsumerState { late final String walletId; - late final Coin coin; + late final CryptoCurrency coin; bool _initialCachePopulationUnderway = false; diff --git a/lib/pages/monkey/monkey_loaded_view.dart b/lib/pages/monkey/monkey_loaded_view.dart index 60f66a0ed..11c277b53 100644 --- a/lib/pages/monkey/monkey_loaded_view.dart +++ b/lib/pages/monkey/monkey_loaded_view.dart @@ -13,7 +13,7 @@ // // import 'package:stackwallet/themes/stack_colors.dart'; // import 'package:stackwallet/utilities/assets.dart'; -// import 'package:stackwallet/utilities/enums/coin_enum.dart'; +// // import 'package:stackwallet/utilities/text_styles.dart'; // import 'package:stackwallet/widgets/background.dart'; // import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -163,7 +163,7 @@ // // @override // Widget build(BuildContext context) { -// final Coin coin = ref.watch(managerProvider.select((value) => value.coin)); +// final CryptoCurrency coin = ref.watch(managerProvider.select((value) => value.coin)); // final wallet = ref.watch(walletsChangeNotifierProvider // .select((value) => value.getWallet(widget.walletId))); // diff --git a/lib/pages/ordinals/ordinal_details_view.dart b/lib/pages/ordinals/ordinal_details_view.dart index 590bca266..995c8fbb7 100644 --- a/lib/pages/ordinals/ordinal_details_view.dart +++ b/lib/pages/ordinals/ordinal_details_view.dart @@ -19,7 +19,6 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/show_loading.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; @@ -30,10 +29,10 @@ import 'package:stackwallet/widgets/rounded_white_container.dart'; class OrdinalDetailsView extends ConsumerStatefulWidget { const OrdinalDetailsView({ - Key? key, + super.key, required this.walletId, required this.ordinal, - }) : super(key: key); + }); final String walletId; final Ordinal ordinal; @@ -113,7 +112,7 @@ class _OrdinalDetailsViewState extends ConsumerState { : ref.watch(pAmountFormatter(coin)).format( Amount( rawValue: BigInt.from(utxo!.value), - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ), ), ), diff --git a/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart b/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart index ae5bfed00..6c53e5370 100644 --- a/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart +++ b/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart @@ -15,9 +15,9 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; @@ -26,19 +26,19 @@ import 'package:stackwallet/widgets/stack_dialog.dart'; class ConfirmPaynymConnectDialog extends ConsumerWidget { const ConfirmPaynymConnectDialog({ - Key? key, + super.key, required this.nymName, required this.locale, required this.onConfirmPressed, required this.amount, required this.coin, - }) : super(key: key); + }); final String nymName; final String locale; final VoidCallback onConfirmPressed; final Amount amount; - final Coin coin; + final CryptoCurrency coin; String get title => "Connect to $nymName"; diff --git a/lib/pages/paynym/dialogs/paynym_details_popup.dart b/lib/pages/paynym/dialogs/paynym_details_popup.dart index f5f970d38..922b775c3 100644 --- a/lib/pages/paynym/dialogs/paynym_details_popup.dart +++ b/lib/pages/paynym/dialogs/paynym_details_popup.dart @@ -28,7 +28,6 @@ import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/route_generator.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; @@ -44,10 +43,10 @@ import 'package:tuple/tuple.dart'; class PaynymDetailsPopup extends ConsumerStatefulWidget { const PaynymDetailsPopup({ - Key? key, + super.key, required this.walletId, required this.accountLite, - }) : super(key: key); + }); final String walletId; final PaynymAccountLite accountLite; diff --git a/lib/pages/paynym/subwidgets/desktop_paynym_details.dart b/lib/pages/paynym/subwidgets/desktop_paynym_details.dart index c09baca9d..48a8a3684 100644 --- a/lib/pages/paynym/subwidgets/desktop_paynym_details.dart +++ b/lib/pages/paynym/subwidgets/desktop_paynym_details.dart @@ -26,7 +26,7 @@ import 'package:stackwallet/providers/global/locale_provider.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; + import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; diff --git a/lib/pages/pinpad_views/lock_screen_view.dart b/lib/pages/pinpad_views/lock_screen_view.dart index e4ecb85a4..17d405206 100644 --- a/lib/pages/pinpad_views/lock_screen_view.dart +++ b/lib/pages/pinpad_views/lock_screen_view.dart @@ -23,7 +23,7 @@ import 'package:stackwallet/themes/stack_colors.dart'; // import 'package:stackwallet/providers/global/should_show_lockscreen_on_resume_state_provider.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/biometrics.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; + import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/show_loading.dart'; import 'package:stackwallet/utilities/text_styles.dart'; diff --git a/lib/pages/receive_view/addresses/address_card.dart b/lib/pages/receive_view/addresses/address_card.dart index 51e1402a3..9489712a4 100644 --- a/lib/pages/receive_view/addresses/address_card.dart +++ b/lib/pages/receive_view/addresses/address_card.dart @@ -30,9 +30,9 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/address_utils.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/custom_buttons/simple_edit_button.dart'; @@ -53,7 +53,7 @@ class AddressCard extends ConsumerStatefulWidget { final int addressId; final String walletId; - final Coin coin; + final CryptoCurrency coin; final ClipboardInterface clipboard; final VoidCallback? onPressed; diff --git a/lib/pages/receive_view/addresses/address_details_view.dart b/lib/pages/receive_view/addresses/address_details_view.dart index 6da7be3c9..341bc4e8a 100644 --- a/lib/pages/receive_view/addresses/address_details_view.dart +++ b/lib/pages/receive_view/addresses/address_details_view.dart @@ -23,7 +23,6 @@ import 'package:stackwallet/providers/db/main_db_provider.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; @@ -40,10 +39,10 @@ import 'package:stackwallet/widgets/transaction_card.dart'; class AddressDetailsView extends ConsumerStatefulWidget { const AddressDetailsView({ - Key? key, + super.key, required this.addressId, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/addressDetailsView"; @@ -398,7 +397,11 @@ class _AddressDetailsViewState extends ConsumerState { height: 12, ), if (!isDesktop) - coin == Coin.bitcoincash || coin == Coin.bitcoincashTestnet + ref + .watch(pWallets) + .getWallet(widget.walletId) + .isarTransactionVersion == + 2 ? _AddressDetailsTxV2List( walletId: widget.walletId, address: address, @@ -418,10 +421,10 @@ class _AddressDetailsViewState extends ConsumerState { class _AddressDetailsTxList extends StatelessWidget { const _AddressDetailsTxList({ - Key? key, + super.key, required this.walletId, required this.address, - }) : super(key: key); + }); final String walletId; final Address address; diff --git a/lib/pages/receive_view/addresses/address_qr_popup.dart b/lib/pages/receive_view/addresses/address_qr_popup.dart index 6e0c2e15b..c5ff43576 100644 --- a/lib/pages/receive_view/addresses/address_qr_popup.dart +++ b/lib/pages/receive_view/addresses/address_qr_popup.dart @@ -25,23 +25,23 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/address_utils.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; import 'package:stackwallet/widgets/stack_dialog.dart'; class AddressQrPopup extends StatefulWidget { const AddressQrPopup({ - Key? key, + super.key, required this.addressString, required this.coin, this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); final String addressString; - final Coin coin; + final CryptoCurrency coin; final ClipboardInterface clipboard; @override @@ -54,12 +54,12 @@ class _AddressQrPopupState extends State { Future _capturePng(bool shouldSaveInsteadOfShare) async { try { - RenderRepaintBoundary boundary = + final RenderRepaintBoundary boundary = _qrKey.currentContext?.findRenderObject() as RenderRepaintBoundary; - ui.Image image = await boundary.toImage(); - ByteData? byteData = + final ui.Image image = await boundary.toImage(); + final ByteData? byteData = await image.toByteData(format: ui.ImageByteFormat.png); - Uint8List pngBytes = byteData!.buffer.asUint8List(); + final Uint8List pngBytes = byteData!.buffer.asUint8List(); if (shouldSaveInsteadOfShare) { if (isDesktop) { diff --git a/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart b/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart index 4fd9d0cf1..6b9b228b6 100644 --- a/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart +++ b/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart @@ -28,10 +28,12 @@ import 'package:stackwallet/utilities/address_utils.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -45,15 +47,15 @@ import 'package:stackwallet/widgets/textfield_icon_button.dart'; class GenerateUriQrCodeView extends StatefulWidget { const GenerateUriQrCodeView({ - Key? key, + super.key, required this.coin, required this.receivingAddress, this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); static const String routeName = "/generateUriQrCodeView"; - final Coin coin; + final CryptoCurrency coin; final String receivingAddress; final ClipboardInterface clipboard; @@ -76,12 +78,12 @@ class _GenerateUriQrCodeViewState extends State { Future _capturePng(bool shouldSaveInsteadOfShare) async { try { - RenderRepaintBoundary boundary = + final RenderRepaintBoundary boundary = _qrKey.currentContext?.findRenderObject() as RenderRepaintBoundary; - ui.Image image = await boundary.toImage(); - ByteData? byteData = + final ui.Image image = await boundary.toImage(); + final ByteData? byteData = await image.toByteData(format: ui.ImageByteFormat.png); - Uint8List pngBytes = byteData!.buffer.asUint8List(); + final Uint8List pngBytes = byteData!.buffer.asUint8List(); if (shouldSaveInsteadOfShare) { if (Util.isDesktop) { @@ -149,7 +151,7 @@ class _GenerateUriQrCodeViewState extends State { return null; } - Map queryParams = {}; + final Map queryParams = {}; if (amountString.isNotEmpty) { queryParams["amount"] = amountString; @@ -159,9 +161,7 @@ class _GenerateUriQrCodeViewState extends State { } String receivingAddress = widget.receivingAddress; - if ((widget.coin == Coin.bitcoincash || - widget.coin == Coin.eCash || - widget.coin == Coin.bitcoincashTestnet) && + if ((widget.coin is Bitcoincash || widget.coin is Ecash) && receivingAddress.contains(":")) { // remove cash addr prefix receivingAddress = receivingAddress.split(":").sublist(1).join(); @@ -256,9 +256,7 @@ class _GenerateUriQrCodeViewState extends State { isDesktop = Util.isDesktop; String receivingAddress = widget.receivingAddress; - if ((widget.coin == Coin.bitcoincash || - widget.coin == Coin.eCash || - widget.coin == Coin.bitcoincashTestnet) && + if ((widget.coin is Bitcoincash || widget.coin is Ecash) && receivingAddress.contains(":")) { // remove cash addr prefix receivingAddress = receivingAddress.split(":").sublist(1).join(); diff --git a/lib/pages/receive_view/receive_view.dart b/lib/pages/receive_view/receive_view.dart index f96e83274..c2bc6f979 100644 --- a/lib/pages/receive_view/receive_view.dart +++ b/lib/pages/receive_view/receive_view.dart @@ -29,9 +29,9 @@ import 'package:stackwallet/utilities/address_utils.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/impl/bitcoin_wallet.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; @@ -66,7 +66,7 @@ class ReceiveView extends ConsumerStatefulWidget { } class _ReceiveViewState extends ConsumerState { - late final Coin coin; + late final CryptoCurrency coin; late final String walletId; late final ClipboardInterface clipboard; late final bool _supportsSpark; diff --git a/lib/pages/send_view/confirm_transaction_view.dart b/lib/pages/send_view/confirm_transaction_view.dart index e9063d328..daedd54e6 100644 --- a/lib/pages/send_view/confirm_transaction_view.dart +++ b/lib/pages/send_view/confirm_transaction_view.dart @@ -32,9 +32,10 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; @@ -55,7 +56,7 @@ import 'package:stackwallet/widgets/textfield_icon_button.dart'; class ConfirmTransactionView extends ConsumerStatefulWidget { const ConfirmTransactionView({ - Key? key, + super.key, required this.txData, required this.walletId, required this.onSuccess, @@ -65,7 +66,7 @@ class ConfirmTransactionView extends ConsumerStatefulWidget { this.isPaynymNotificationTransaction = false, this.isTokenTx = false, this.onSuccessInsteadOfRouteOnSuccess, - }) : super(key: key); + }); static const String routeName = "/confirmTransactionView"; @@ -157,7 +158,7 @@ class _ConfirmTransactionViewState break; } } else { - if (coin == Coin.epicCash) { + if (coin is Epiccash) { txDataFuture = wallet.confirmSend( txData: widget.txData.copyWith( noteOnChain: onChainNoteController.text, @@ -276,7 +277,7 @@ class _ConfirmTransactionViewState ), ), ], - ) + ), ], ), ), @@ -292,9 +293,10 @@ class _ConfirmTransactionViewState child: Text( "Ok", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), onPressed: () { Navigator.of(context).pop(); @@ -340,7 +342,8 @@ class _ConfirmTransactionViewState final String unit; if (widget.isTokenTx) { unit = ref.watch( - pCurrentTokenWallet.select((value) => value!.tokenContract.symbol)); + pCurrentTokenWallet.select((value) => value!.tokenContract.symbol), + ); } else { unit = coin.ticker; } @@ -375,10 +378,12 @@ class _ConfirmTransactionViewState fee = widget.txData.fee; amountWithoutChange = (widget.txData.amountWithoutChange ?? Amount.zeroWith( - fractionDigits: wallet.cryptoCurrency.fractionDigits)) + + fractionDigits: wallet.cryptoCurrency.fractionDigits, + )) + (widget.txData.amountSparkWithoutChange ?? Amount.zeroWith( - fractionDigits: wallet.cryptoCurrency.fractionDigits)); + fractionDigits: wallet.cryptoCurrency.fractionDigits, + )); break; } } else { @@ -526,11 +531,11 @@ class _ConfirmTransactionViewState ], ), ), - if (coin != Coin.banano && coin != Coin.nano) + if (coin is! NanoCurrency) const SizedBox( height: 12, ), - if (coin != Coin.banano && coin != Coin.nano) + if (coin is! NanoCurrency) RoundedWhiteContainer( child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, @@ -570,13 +575,11 @@ class _ConfirmTransactionViewState ], ), ), - if (coin == Coin.epicCash && - widget.txData.noteOnChain!.isNotEmpty) + if (coin is Epiccash && widget.txData.noteOnChain!.isNotEmpty) const SizedBox( height: 12, ), - if (coin == Coin.epicCash && - widget.txData.noteOnChain!.isNotEmpty) + if (coin is Epiccash && widget.txData.noteOnChain!.isNotEmpty) RoundedWhiteContainer( child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, @@ -605,7 +608,7 @@ class _ConfirmTransactionViewState crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Text( - (coin == Coin.epicCash) ? "Local Note" : "Note", + (coin is Epiccash) ? "Local Note" : "Note", style: STextStyles.smallMed12(context), ), const SizedBox( @@ -688,7 +691,8 @@ class _ConfirmTransactionViewState Text( "Amount", style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), ), const SizedBox( height: 2, @@ -696,15 +700,18 @@ class _ConfirmTransactionViewState Builder( builder: (context) { final externalCalls = ref.watch( - prefsChangeNotifierProvider.select( - (value) => value.externalCalls)); + prefsChangeNotifierProvider.select( + (value) => value.externalCalls, + ), + ); String fiatAmount = "N/A"; if (externalCalls) { final price = widget.isTokenTx ? ref .read( - priceAnd24hChangeNotifierProvider) + priceAnd24hChangeNotifierProvider, + ) .getTokenPrice( ref .read(pCurrentTokenWallet)! @@ -714,7 +721,8 @@ class _ConfirmTransactionViewState .item1 : ref .read( - priceAnd24hChangeNotifierProvider) + priceAnd24hChangeNotifierProvider, + ) .getPrice(coin) .item1; if (price > Decimal.zero) { @@ -724,7 +732,8 @@ class _ConfirmTransactionViewState .fiatString( locale: ref .read( - localeServiceChangeNotifierProvider) + localeServiceChangeNotifierProvider, + ) .locale, ); } @@ -734,14 +743,15 @@ class _ConfirmTransactionViewState children: [ SelectableText( ref.watch(pAmountFormatter(coin)).format( - amountWithoutChange, - ethContract: ref - .read(pCurrentTokenWallet) - ?.tokenContract), + amountWithoutChange, + ethContract: ref + .read(pCurrentTokenWallet) + ?.tokenContract, + ), style: STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -752,16 +762,20 @@ class _ConfirmTransactionViewState " | ", style: STextStyles .desktopTextExtraExtraSmall( - context), + context, + ), ), if (externalCalls) SelectableText( - "~$fiatAmount ${ref.watch(prefsChangeNotifierProvider.select( - (value) => value.currency, - ))}", + "~$fiatAmount ${ref.watch( + prefsChangeNotifierProvider.select( + (value) => value.currency, + ), + )}", style: STextStyles .desktopTextExtraExtraSmall( - context), + context, + ), ), ], ); @@ -787,7 +801,8 @@ class _ConfirmTransactionViewState ? "PayNym recipient" : "Send to", style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), ), const SizedBox( height: 2, @@ -800,13 +815,13 @@ class _ConfirmTransactionViewState widget.txData.sparkRecipients!.first .address, style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, ), - ) + ), ], ), ), @@ -827,7 +842,8 @@ class _ConfirmTransactionViewState Text( "Transaction fee", style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), ), const SizedBox( height: 2, @@ -835,8 +851,8 @@ class _ConfirmTransactionViewState SelectableText( ref.watch(pAmountFormatter(coin)).format(fee!), style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -892,17 +908,17 @@ class _ConfirmTransactionViewState mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - if (coin == Coin.epicCash) + if (coin is Epiccash) Text( "On chain Note (optional)", style: STextStyles.smallMed12(context), textAlign: TextAlign.left, ), - if (coin == Coin.epicCash) + if (coin is Epiccash) const SizedBox( height: 8, ), - if (coin == Coin.epicCash) + if (coin is Epiccash) ClipRRect( borderRadius: BorderRadius.circular( Constants.size.circularBorderRadius, @@ -942,12 +958,12 @@ class _ConfirmTransactionViewState ), ), ), - if (coin == Coin.epicCash) + if (coin is Epiccash) const SizedBox( height: 12, ), SelectableText( - (coin == Coin.epicCash) + (coin is Epiccash) ? "Local Note (optional)" : "Note (optional)", style: @@ -1016,7 +1032,7 @@ class _ConfirmTransactionViewState ), const SizedBox( height: 20, - ) + ), ], ), ), @@ -1221,11 +1237,12 @@ class _ConfirmTransactionViewState } else { unawaited( showFloatingFlushBar( - type: FlushBarType.warning, - message: Util.isDesktop - ? "Invalid passphrase" - : "Invalid PIN", - context: context), + type: FlushBarType.warning, + message: Util.isDesktop + ? "Invalid passphrase" + : "Invalid PIN", + context: context, + ), ); } } diff --git a/lib/pages/send_view/frost_ms/frost_send_view.dart b/lib/pages/send_view/frost_ms/frost_send_view.dart index ccaf5452e..8397a2449 100644 --- a/lib/pages/send_view/frost_ms/frost_send_view.dart +++ b/lib/pages/send_view/frost_ms/frost_send_view.dart @@ -25,10 +25,10 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/show_loading.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; @@ -58,7 +58,7 @@ class FrostSendView extends ConsumerStatefulWidget { static const String routeName = "/frostSendView"; final String walletId; - final Coin coin; + final CryptoCurrency coin; @override ConsumerState createState() => _FrostSendViewState(); @@ -69,7 +69,7 @@ class _FrostSendViewState extends ConsumerState { int _greatestWidgetIndex = 0; late final String walletId; - late final Coin coin; + late final CryptoCurrency coin; late TextEditingController noteController; late TextEditingController onChainNoteController; diff --git a/lib/pages/send_view/frost_ms/recipient.dart b/lib/pages/send_view/frost_ms/recipient.dart index 043f080f6..1f6c0514a 100644 --- a/lib/pages/send_view/frost_ms/recipient.dart +++ b/lib/pages/send_view/frost_ms/recipient.dart @@ -12,10 +12,10 @@ import 'package:stackwallet/utilities/amount/amount_unit.dart'; import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; @@ -55,7 +55,7 @@ class Recipient extends ConsumerStatefulWidget { final int index; final int displayNumber; - final Coin coin; + final CryptoCurrency coin; final VoidCallback? remove; final VoidCallback? onChanged; @@ -324,7 +324,8 @@ class _RecipientState extends ConsumerState { final Amount amount = Decimal.parse(results["amount"]!) .toAmount( - fractionDigits: widget.coin.decimals, + fractionDigits: + widget.coin.fractionDigits, ); amountController.text = ref .read(pAmountFormatter(widget.coin)) @@ -409,7 +410,7 @@ class _RecipientState extends ConsumerState { textAlign: TextAlign.right, inputFormatters: [ AmountInputFormatter( - decimals: widget.coin.decimals, + decimals: widget.coin.fractionDigits, unit: ref.watch(pAmountUnit(widget.coin)), locale: locale, ), diff --git a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_4.dart b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_4.dart index 2267e7226..424229a2f 100644 --- a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_4.dart +++ b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_4.dart @@ -11,7 +11,6 @@ import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/show_loading.dart'; import 'package:stackwallet/utilities/text_styles.dart'; @@ -93,7 +92,7 @@ class _FrostSendStep4State extends ConsumerState { height: 12, ), Text( - "Send ${cryptoCurrency.coin.ticker}", + "Send ${cryptoCurrency.ticker}", style: STextStyles.w600_20(context), ), const SizedBox( @@ -103,7 +102,7 @@ class _FrostSendStep4State extends ConsumerState { ? _Recipient( address: recipients[0].address, amount: ref - .watch(pAmountFormatter(cryptoCurrency.coin)) + .watch(pAmountFormatter(cryptoCurrency)) .format(recipients[0].amount), ) : Column( @@ -143,7 +142,7 @@ class _FrostSendStep4State extends ConsumerState { body: _Recipient( address: recipients[i].address, amount: ref - .watch(pAmountFormatter(cryptoCurrency.coin)) + .watch(pAmountFormatter(cryptoCurrency)) .format(recipients[i].amount), ), ), @@ -156,7 +155,7 @@ class _FrostSendStep4State extends ConsumerState { DetailItem( title: "Transaction fee", detail: ref - .watch(pAmountFormatter(cryptoCurrency.coin)) + .watch(pAmountFormatter(cryptoCurrency)) .format(ref.watch(pFrostTxData)!.fee!), horizontal: true, ), @@ -165,7 +164,7 @@ class _FrostSendStep4State extends ConsumerState { ), DetailItem( title: "Total", - detail: ref.watch(pAmountFormatter(cryptoCurrency.coin)).format( + detail: ref.watch(pAmountFormatter(cryptoCurrency)).format( ref.watch(pFrostTxData)!.fee! + recipients.map((e) => e.amount).reduce((v, e) => v += e)), horizontal: true, diff --git a/lib/pages/send_view/send_view.dart b/lib/pages/send_view/send_view.dart index fc0b89dc3..803595178 100644 --- a/lib/pages/send_view/send_view.dart +++ b/lib/pages/send_view/send_view.dart @@ -43,13 +43,19 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; @@ -73,19 +79,19 @@ import 'package:tuple/tuple.dart'; class SendView extends ConsumerStatefulWidget { const SendView({ - Key? key, + super.key, required this.walletId, required this.coin, this.autoFillData, this.clipboard = const ClipboardWrapper(), this.barcodeScanner = const BarcodeScannerWrapper(), this.accountLite, - }) : super(key: key); + }); static const String routeName = "/sendView"; final String walletId; - final Coin coin; + final CryptoCurrency coin; final SendViewAutoFillData? autoFillData; final ClipboardInterface clipboard; final BarcodeScannerInterface barcodeScanner; @@ -97,7 +103,7 @@ class SendView extends ConsumerStatefulWidget { class _SendViewState extends ConsumerState { late final String walletId; - late final Coin coin; + late final CryptoCurrency coin; late final ClipboardInterface clipboard; late final BarcodeScannerInterface scanner; @@ -178,7 +184,7 @@ class _SendViewState extends ConsumerState { // autofill amount field if (results["amount"] != null) { final Amount amount = Decimal.parse(results["amount"]!).toAmount( - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ); cryptoAmountController.text = ref.read(pAmountFormatter(coin)).format( amount, @@ -232,15 +238,15 @@ class _SendViewState extends ConsumerState { ref.read(priceAnd24hChangeNotifierProvider).getPrice(coin).item1; if (_price == Decimal.zero) { - amount = 0.toAmountAsRaw(fractionDigits: coin.decimals); + amount = 0.toAmountAsRaw(fractionDigits: coin.fractionDigits); } else { amount = baseAmount <= Amount.zero - ? 0.toAmountAsRaw(fractionDigits: coin.decimals) + ? 0.toAmountAsRaw(fractionDigits: coin.fractionDigits) : (baseAmount.decimal / _price) .toDecimal( - scaleOnInfinitePrecision: coin.decimals, + scaleOnInfinitePrecision: coin.fractionDigits, ) - .toAmount(fractionDigits: coin.decimals); + .toAmount(fractionDigits: coin.fractionDigits); } if (_cachedAmountToSend != null && _cachedAmountToSend == amount) { return; @@ -258,7 +264,7 @@ class _SendViewState extends ConsumerState { cryptoAmountController.text = amountString; _cryptoAmountChangeLock = false; } else { - amount = 0.toAmountAsRaw(fractionDigits: coin.decimals); + amount = 0.toAmountAsRaw(fractionDigits: coin.fractionDigits); _cryptoAmountChangeLock = true; cryptoAmountController.text = ""; _cryptoAmountChangeLock = false; @@ -309,11 +315,11 @@ class _SendViewState extends ConsumerState { _cryptoAmountChangedFeeUpdateTimer?.cancel(); _cryptoAmountChangedFeeUpdateTimer = Timer(updateFeesTimerDuration, () { - if (coin != Coin.epicCash && !_baseFocus.hasFocus) { + if (coin is! Epiccash && !_baseFocus.hasFocus) { setState(() { _calculateFeesFuture = calculateFees( amount == null - ? 0.toAmountAsRaw(fractionDigits: coin.decimals) + ? 0.toAmountAsRaw(fractionDigits: coin.fractionDigits) : amount!, ); }); @@ -330,11 +336,11 @@ class _SendViewState extends ConsumerState { void _baseAmountChanged() { _baseAmountChangedFeeUpdateTimer?.cancel(); _baseAmountChangedFeeUpdateTimer = Timer(updateFeesTimerDuration, () { - if (coin != Coin.epicCash && !_cryptoFocus.hasFocus) { + if (coin is! Epiccash && !_cryptoFocus.hasFocus) { setState(() { _calculateFeesFuture = calculateFees( ref.read(pSendAmount) == null - ? 0.toAmountAsRaw(fractionDigits: coin.decimals) + ? 0.toAmountAsRaw(fractionDigits: coin.fractionDigits) : ref.read(pSendAmount)!, ); }); @@ -356,8 +362,8 @@ class _SendViewState extends ConsumerState { final value = fee.contains(",") ? Decimal.parse(fee.replaceFirst(",", ".")) - .toAmount(fractionDigits: coin.decimals) - : Decimal.parse(fee).toAmount(fractionDigits: coin.decimals); + .toAmount(fractionDigits: coin.fractionDigits) + : Decimal.parse(fee).toAmount(fractionDigits: coin.fractionDigits); if (shouldSetState) { setState(() => _currentFee = value); @@ -455,7 +461,7 @@ class _SendViewState extends ConsumerState { } Amount fee; - if (coin == Coin.monero) { + if (coin is Monero) { MoneroTransactionPriority specialMoneroId; switch (ref.read(feeRateTypeStateProvider.state).state) { case FeeRateType.fast: @@ -552,7 +558,7 @@ class _SendViewState extends ConsumerState { final coinControlEnabled = ref.read(prefsChangeNotifierProvider).enableCoinControl; - if (coin != Coin.ethereum && + if (coin is! Ethereum && !(wallet is CoinControlInterface && coinControlEnabled) || (wallet is CoinControlInterface && coinControlEnabled && @@ -751,9 +757,7 @@ class _SendViewState extends ConsumerState { break; } } else { - final memo = coin == Coin.stellar || coin == Coin.stellarTestnet - ? memoController.text - : null; + final memo = coin is Stellar ? memoController.text : null; txDataFuture = wallet.prepareSend( txData: TxData( recipients: [ @@ -878,16 +882,16 @@ class _SendViewState extends ConsumerState { void initState() { coin = widget.coin; ref.refresh(feeSheetSessionCacheProvider); - _currentFee = 0.toAmountAsRaw(fractionDigits: coin.decimals); + _currentFee = 0.toAmountAsRaw(fractionDigits: coin.fractionDigits); _calculateFeesFuture = - calculateFees(0.toAmountAsRaw(fractionDigits: coin.decimals)); + calculateFees(0.toAmountAsRaw(fractionDigits: coin.fractionDigits)); _data = widget.autoFillData; walletId = widget.walletId; clipboard = widget.clipboard; scanner = widget.barcodeScanner; - isStellar = coin == Coin.stellar || coin == Coin.stellarTestnet; - isFiro = coin == Coin.firo || coin == Coin.firoTestNet; + isStellar = coin is Stellar; + isFiro = coin is Firo; sendToController = TextEditingController(); cryptoAmountController = TextEditingController(); @@ -905,7 +909,7 @@ class _SendViewState extends ConsumerState { if (_data!.amount != null) { final amount = Amount.fromDecimal( _data!.amount!, - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ); cryptoAmountController.text = ref.read(pAmountFormatter(coin)).format( @@ -927,7 +931,7 @@ class _SendViewState extends ConsumerState { noteController.text = "PayNym send"; } - // if (coin != Coin.epicCash) { + // if (coin is! Epiccash) { // _cryptoFocus.addListener(() { // if (!_cryptoFocus.hasFocus && !_baseFocus.hasFocus) { // if (_amountToSend == null) { @@ -1005,8 +1009,8 @@ class _SendViewState extends ConsumerState { ref.listen(publicPrivateBalanceStateProvider, (previous, next) { if (ref.read(pSendAmount) == null) { setState(() { - _calculateFeesFuture = - calculateFees(0.toAmountAsRaw(fractionDigits: coin.decimals)); + _calculateFeesFuture = calculateFees( + 0.toAmountAsRaw(fractionDigits: coin.fractionDigits)); }); } else { setState(() { @@ -1019,7 +1023,7 @@ class _SendViewState extends ConsumerState { } // add listener for epic cash to strip http:// and https:// prefixes if the address also ocntains an @ symbol (indicating an epicbox address) - if (coin == Coin.epicCash) { + if (coin is Epiccash) { sendToController.addListener(() { _address = sendToController.text.trim(); @@ -1119,8 +1123,7 @@ class _SendViewState extends ConsumerState { style: STextStyles.label(context) .copyWith(fontSize: 10), ), - if (coin != Coin.firo && - coin != Coin.firoTestNet) + if (coin is! Firo) Text( "Available balance", style: STextStyles.label(context) @@ -1233,7 +1236,7 @@ class _SendViewState extends ConsumerState { style: STextStyles.smallMed12(context), textAlign: TextAlign.left, ), - // if (coin == Coin.monero) + // if (coin is Monero) // CustomTextButton( // text: "Use OpenAlias", // onTap: () async { @@ -1359,8 +1362,7 @@ class _SendViewState extends ConsumerState { ); } - if (coin == - Coin.epicCash) { + if (coin is Epiccash) { // strip http:// and https:// if content contains @ content = formatAddress( content, @@ -1433,10 +1435,7 @@ class _SendViewState extends ConsumerState { ), child: TextField( key: const Key("sendViewMemoFieldKey"), - maxLength: (coin == Coin.firo || - coin == Coin.firoTestNet) - ? 31 - : null, + maxLength: (coin is Firo) ? 31 : null, controller: memoController, readOnly: false, autocorrect: false, @@ -1527,7 +1526,8 @@ class _SendViewState extends ConsumerState { _data!.contactLabel == _address) { error = SparkInterface.validateSparkAddress( address: _data!.address, - isTestNet: coin.isTestNet, + isTestNet: coin.network == + CryptoCurrencyNetwork.test, ) ? "Unsupported" : null; @@ -1733,7 +1733,7 @@ class _SendViewState extends ConsumerState { style: STextStyles.smallMed12(context), textAlign: TextAlign.left, ), - if (coin != Coin.ethereum && coin != Coin.tezos) + if (coin is! Ethereum && coin is! Tezos) CustomTextButton( text: "Send all ${coin.ticker}", onTap: () async { @@ -1815,7 +1815,7 @@ class _SendViewState extends ConsumerState { textAlign: TextAlign.right, inputFormatters: [ AmountInputFormatter( - decimals: coin.decimals, + decimals: coin.fractionDigits, unit: ref.watch(pAmountUnit(coin)), locale: locale, ), @@ -1825,7 +1825,7 @@ class _SendViewState extends ConsumerState { // newValue) => // // RegExp(r'^([0-9]*[,.]?[0-9]{0,8}|[,.][0-9]{0,8})$') // // RegExp(r'^\d{1,3}([,\.]\d+)?|[,\.\d]+$') - // getAmountRegex(locale, coin.decimals) + // getAmountRegex(locale, coin.fractionDigits) // .hasMatch(newValue.text) // ? newValue // : oldValue), @@ -2001,17 +2001,17 @@ class _SendViewState extends ConsumerState { const SizedBox( height: 12, ), - if (coin == Coin.epicCash) + if (coin is Epiccash) Text( "On chain Note (optional)", style: STextStyles.smallMed12(context), textAlign: TextAlign.left, ), - if (coin == Coin.epicCash) + if (coin is Epiccash) const SizedBox( height: 8, ), - if (coin == Coin.epicCash) + if (coin is Epiccash) ClipRRect( borderRadius: BorderRadius.circular( Constants.size.circularBorderRadius, @@ -2055,12 +2055,12 @@ class _SendViewState extends ConsumerState { ), ), ), - if (coin == Coin.epicCash) + if (coin is Epiccash) const SizedBox( height: 12, ), Text( - (coin == Coin.epicCash) + (coin is Epiccash) ? "Local Note (optional)" : "Note (optional)", style: STextStyles.smallMed12(context), @@ -2111,26 +2111,23 @@ class _SendViewState extends ConsumerState { const SizedBox( height: 12, ), - if (coin != Coin.epicCash && - coin != Coin.nano && - coin != Coin.banano && - coin != Coin.tezos) + if (coin is! Epiccash && + coin is! NanoCurrency && + coin is! Tezos) Text( "Transaction fee (estimated)", style: STextStyles.smallMed12(context), textAlign: TextAlign.left, ), - if (coin != Coin.epicCash && - coin != Coin.nano && - coin != Coin.banano && - coin != Coin.tezos) + if (coin is! Epiccash && + coin is! NanoCurrency && + coin is! Tezos) const SizedBox( height: 8, ), - if (coin != Coin.epicCash && - coin != Coin.nano && - coin != Coin.banano && - coin != Coin.tezos) + if (coin is! Epiccash && + coin is! NanoCurrency && + coin is! Tezos) Stack( children: [ TextField( @@ -2187,7 +2184,8 @@ class _SendViewState extends ConsumerState { ?.decimal ?? Decimal.zero) .toAmount( - fractionDigits: coin.decimals, + fractionDigits: + coin.fractionDigits, ), updateChosen: (String fee) { if (fee == "custom") { diff --git a/lib/pages/send_view/sub_widgets/building_transaction_dialog.dart b/lib/pages/send_view/sub_widgets/building_transaction_dialog.dart index 8529925d6..112c33339 100644 --- a/lib/pages/send_view/sub_widgets/building_transaction_dialog.dart +++ b/lib/pages/send_view/sub_widgets/building_transaction_dialog.dart @@ -14,9 +14,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/themes/coin_image_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; import 'package:stackwallet/widgets/stack_dialog.dart'; @@ -30,7 +30,7 @@ class BuildingTransactionDialog extends ConsumerStatefulWidget { }); final VoidCallback onCancel; - final Coin coin; + final CryptoCurrency coin; final bool isSpark; @override diff --git a/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart b/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart index 0376e9e3d..42f8ea47e 100644 --- a/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart +++ b/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart @@ -13,23 +13,23 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:lottie/lottie.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/coin_image_provider.dart'; +import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; import 'package:stackwallet/widgets/stack_dialog.dart'; class SendingTransactionDialog extends ConsumerStatefulWidget { const SendingTransactionDialog({ - Key? key, + super.key, required this.coin, required this.controller, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; final ProgressAndSuccessController controller; @override diff --git a/lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart b/lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart index 8572d5037..e177c0f37 100644 --- a/lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart +++ b/lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart @@ -19,10 +19,14 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; @@ -44,12 +48,12 @@ class FeeSheetSessionCache extends ChangeNotifier { class TransactionFeeSelectionSheet extends ConsumerStatefulWidget { const TransactionFeeSelectionSheet({ - Key? key, + super.key, required this.walletId, required this.amount, required this.updateChosen, this.isToken = false, - }) : super(key: key); + }); final String walletId; final Amount amount; @@ -79,7 +83,7 @@ class _TransactionFeeSelectionSheetState required Amount amount, required FeeRateType feeRateType, required int feeRate, - required Coin coin, + required CryptoCurrency coin, }) async { switch (feeRateType) { case FeeRateType.fast: @@ -87,11 +91,13 @@ class _TransactionFeeSelectionSheetState if (widget.isToken == false) { final wallet = ref.read(pWallets).getWallet(walletId); - if (coin == Coin.monero || coin == Coin.wownero) { + if (coin is Monero || coin is Wownero) { final fee = await wallet.estimateFeeFor( - amount, MoneroTransactionPriority.fast.raw!); + amount, + MoneroTransactionPriority.fast.raw!, + ); ref.read(feeSheetSessionCacheProvider).fast[amount] = fee; - } else if (coin == Coin.firo || coin == Coin.firoTestNet) { + } else if (coin is Firo) { final Amount fee; switch (ref.read(publicPrivateBalanceStateProvider.state).state) { case FiroType.spark: @@ -122,11 +128,13 @@ class _TransactionFeeSelectionSheetState if (ref.read(feeSheetSessionCacheProvider).average[amount] == null) { if (widget.isToken == false) { final wallet = ref.read(pWallets).getWallet(walletId); - if (coin == Coin.monero || coin == Coin.wownero) { + if (coin is Monero || coin is Wownero) { final fee = await wallet.estimateFeeFor( - amount, MoneroTransactionPriority.regular.raw!); + amount, + MoneroTransactionPriority.regular.raw!, + ); ref.read(feeSheetSessionCacheProvider).average[amount] = fee; - } else if (coin == Coin.firo || coin == Coin.firoTestNet) { + } else if (coin is Firo) { final Amount fee; switch (ref.read(publicPrivateBalanceStateProvider.state).state) { case FiroType.spark: @@ -156,11 +164,13 @@ class _TransactionFeeSelectionSheetState if (ref.read(feeSheetSessionCacheProvider).slow[amount] == null) { if (widget.isToken == false) { final wallet = ref.read(pWallets).getWallet(walletId); - if (coin == Coin.monero || coin == Coin.wownero) { + if (coin is Monero || coin is Wownero) { final fee = await wallet.estimateFeeFor( - amount, MoneroTransactionPriority.slow.raw!); + amount, + MoneroTransactionPriority.slow.raw!, + ); ref.read(feeSheetSessionCacheProvider).slow[amount] = fee; - } else if (coin == Coin.firo || coin == Coin.firoTestNet) { + } else if (coin is Firo) { final Amount fee; switch (ref.read(publicPrivateBalanceStateProvider.state).state) { case FiroType.spark: @@ -192,10 +202,12 @@ class _TransactionFeeSelectionSheetState } String estimatedTimeToBeIncludedInNextBlock( - int targetBlockTime, int estimatedNumberOfBlocks) { - int time = targetBlockTime * estimatedNumberOfBlocks; + int targetBlockTime, + int estimatedNumberOfBlocks, + ) { + final int time = targetBlockTime * estimatedNumberOfBlocks; - int hours = (time / 3600).floor(); + final int hours = (time / 3600).floor(); if (hours > 1) { return "~$hours hours"; } else if (hours == 1) { @@ -295,7 +307,7 @@ class _TransactionFeeSelectionSheetState ref.read(feeRateTypeStateProvider.state).state = FeeRateType.fast; } - String? fee = + final String? fee = getAmount(FeeRateType.fast, wallet.info.coin); if (fee != null) { widget.updateChosen(fee); @@ -364,8 +376,10 @@ class _TransactionFeeSelectionSheetState feeRate: feeObject!.fast, amount: amount, ), - builder: (_, - AsyncSnapshot snapshot) { + builder: ( + _, + AsyncSnapshot snapshot, + ) { if (snapshot.connectionState == ConnectionState.done && snapshot.hasData) { @@ -380,7 +394,8 @@ class _TransactionFeeSelectionSheetState false, )})", style: STextStyles.itemSubtitle( - context), + context, + ), textAlign: TextAlign.left, ); } else { @@ -388,7 +403,8 @@ class _TransactionFeeSelectionSheetState stringsToLoopThrough: stringsToLoopThrough, style: STextStyles.itemSubtitle( - context), + context, + ), ); } }, @@ -398,19 +414,16 @@ class _TransactionFeeSelectionSheetState const SizedBox( height: 2, ), - if (feeObject == null && - coin != Coin.ethereum) + if (feeObject == null && coin is! Ethereum) AnimatedText( stringsToLoopThrough: stringsToLoopThrough, style: STextStyles.itemSubtitle(context), ), - if (feeObject != null && - coin != Coin.ethereum) + if (feeObject != null && coin is! Ethereum) Text( estimatedTimeToBeIncludedInNextBlock( - Constants.targetBlockTimeInSeconds( - coin), + coin.targetBlockTimeSeconds, feeObject!.numberOfBlocksFast, ), style: STextStyles.itemSubtitle(context), @@ -418,7 +431,7 @@ class _TransactionFeeSelectionSheetState ), ], ), - ) + ), ], ), ), @@ -434,7 +447,8 @@ class _TransactionFeeSelectionSheetState ref.read(feeRateTypeStateProvider.state).state = FeeRateType.average; } - String? fee = getAmount(FeeRateType.average, coin); + final String? fee = + getAmount(FeeRateType.average, coin); if (fee != null) { widget.updateChosen(fee); } @@ -500,8 +514,10 @@ class _TransactionFeeSelectionSheetState feeRate: feeObject!.medium, amount: amount, ), - builder: (_, - AsyncSnapshot snapshot) { + builder: ( + _, + AsyncSnapshot snapshot, + ) { if (snapshot.connectionState == ConnectionState.done && snapshot.hasData) { @@ -516,7 +532,8 @@ class _TransactionFeeSelectionSheetState false, )})", style: STextStyles.itemSubtitle( - context), + context, + ), textAlign: TextAlign.left, ); } else { @@ -524,7 +541,8 @@ class _TransactionFeeSelectionSheetState stringsToLoopThrough: stringsToLoopThrough, style: STextStyles.itemSubtitle( - context), + context, + ), ); } }, @@ -534,19 +552,16 @@ class _TransactionFeeSelectionSheetState const SizedBox( height: 2, ), - if (feeObject == null && - coin != Coin.ethereum) + if (feeObject == null && coin is! Ethereum) AnimatedText( stringsToLoopThrough: stringsToLoopThrough, style: STextStyles.itemSubtitle(context), ), - if (feeObject != null && - coin != Coin.ethereum) + if (feeObject != null && coin is! Ethereum) Text( estimatedTimeToBeIncludedInNextBlock( - Constants.targetBlockTimeInSeconds( - coin), + coin.targetBlockTimeSeconds, feeObject!.numberOfBlocksAverage, ), style: STextStyles.itemSubtitle(context), @@ -570,7 +585,7 @@ class _TransactionFeeSelectionSheetState ref.read(feeRateTypeStateProvider.state).state = FeeRateType.slow; } - String? fee = getAmount(FeeRateType.slow, coin); + final String? fee = getAmount(FeeRateType.slow, coin); if (fee != null) { widget.updateChosen(fee); } @@ -636,8 +651,10 @@ class _TransactionFeeSelectionSheetState feeRate: feeObject!.slow, amount: amount, ), - builder: (_, - AsyncSnapshot snapshot) { + builder: ( + _, + AsyncSnapshot snapshot, + ) { if (snapshot.connectionState == ConnectionState.done && snapshot.hasData) { @@ -652,7 +669,8 @@ class _TransactionFeeSelectionSheetState false, )})", style: STextStyles.itemSubtitle( - context), + context, + ), textAlign: TextAlign.left, ); } else { @@ -660,7 +678,8 @@ class _TransactionFeeSelectionSheetState stringsToLoopThrough: stringsToLoopThrough, style: STextStyles.itemSubtitle( - context), + context, + ), ); } }, @@ -670,19 +689,16 @@ class _TransactionFeeSelectionSheetState const SizedBox( height: 2, ), - if (feeObject == null && - coin != Coin.ethereum) + if (feeObject == null && coin is! Ethereum) AnimatedText( stringsToLoopThrough: stringsToLoopThrough, style: STextStyles.itemSubtitle(context), ), - if (feeObject != null && - coin != Coin.ethereum) + if (feeObject != null && coin is! Ethereum) Text( estimatedTimeToBeIncludedInNextBlock( - Constants.targetBlockTimeInSeconds( - coin), + coin.targetBlockTimeSeconds, feeObject!.numberOfBlocksSlow, ), style: STextStyles.itemSubtitle(context), @@ -732,7 +748,8 @@ class _TransactionFeeSelectionSheetState onChanged: (x) { ref .read( - feeRateTypeStateProvider.state) + feeRateTypeStateProvider.state, + ) .state = FeeRateType.custom; Navigator.of(context).pop(); }, @@ -781,7 +798,7 @@ class _TransactionFeeSelectionSheetState ); } - String? getAmount(FeeRateType feeRateType, Coin coin) { + String? getAmount(FeeRateType feeRateType, CryptoCurrency coin) { try { switch (feeRateType) { case FeeRateType.fast: diff --git a/lib/pages/send_view/token_send_view.dart b/lib/pages/send_view/token_send_view.dart index 028538d63..d537bc61a 100644 --- a/lib/pages/send_view/token_send_view.dart +++ b/lib/pages/send_view/token_send_view.dart @@ -34,12 +34,13 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; import 'package:stackwallet/wallets/isar/providers/eth/token_balance_provider.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; @@ -70,7 +71,7 @@ class TokenSendView extends ConsumerStatefulWidget { static const String routeName = "/tokenSendView"; final String walletId; - final Coin coin; + final CryptoCurrency coin; final EthContract tokenContract; final SendViewAutoFillData? autoFillData; final ClipboardInterface clipboard; @@ -82,7 +83,7 @@ class TokenSendView extends ConsumerStatefulWidget { class _TokenSendViewState extends ConsumerState { late final String walletId; - late final Coin coin; + late final CryptoCurrency coin; late final EthContract tokenContract; late final ClipboardInterface clipboard; late final BarcodeScannerInterface scanner; @@ -317,7 +318,7 @@ class _TokenSendViewState extends ConsumerState { _cryptoAmountChangedFeeUpdateTimer?.cancel(); _cryptoAmountChangedFeeUpdateTimer = Timer(updateFeesTimerDuration, () { - if (coin != Coin.epicCash && !_baseFocus.hasFocus) { + if (coin is! Epiccash && !_baseFocus.hasFocus) { setState(() { _calculateFeesFuture = calculateFees(); }); @@ -329,7 +330,7 @@ class _TokenSendViewState extends ConsumerState { void _baseAmountChanged() { _baseAmountChangedFeeUpdateTimer?.cancel(); _baseAmountChangedFeeUpdateTimer = Timer(updateFeesTimerDuration, () { - if (coin != Coin.epicCash && !_cryptoFocus.hasFocus) { + if (coin is! Epiccash && !_cryptoFocus.hasFocus) { setState(() { _calculateFeesFuture = calculateFees(); }); @@ -1161,7 +1162,7 @@ class _TokenSendViewState extends ConsumerState { const SizedBox( height: 12, ), - if (coin != Coin.epicCash) + if (coin is! Epiccash) Text( "Transaction fee (estimated)", style: STextStyles.smallMed12(context), diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/choose_unit_sheet.dart b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/choose_unit_sheet.dart index d5ef002b7..ebacd1c77 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/choose_unit_sheet.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/choose_unit_sheet.dart @@ -4,16 +4,16 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/amount/amount_unit.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class ChooseUnitSheet extends ConsumerStatefulWidget { const ChooseUnitSheet({ - Key? key, + super.key, required this.coin, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; @override ConsumerState createState() => _ChooseUnitSheetState(); diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart index bf06ebd2c..e68a96c69 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart @@ -9,9 +9,9 @@ import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/amount/amount_unit.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -25,11 +25,11 @@ import 'package:stackwallet/widgets/textfield_icon_button.dart'; class EditCoinUnitsView extends ConsumerStatefulWidget { const EditCoinUnitsView({ - Key? key, + super.key, required this.coin, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; static const String routeName = "/editCoinUnitsView"; diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart index f562b911e..7ec0656c1 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart @@ -5,12 +5,14 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart'; import 'package:stackwallet/providers/global/prefs_provider.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -19,11 +21,11 @@ import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; class ManageCoinUnitsView extends ConsumerWidget { - const ManageCoinUnitsView({Key? key}) : super(key: key); + const ManageCoinUnitsView({super.key}); static const String routeName = "/manageCoinUnitsView"; - void onEditPressed(Coin coin, BuildContext context) { + void onEditPressed(CryptoCurrency coin, BuildContext context) { if (Util.isDesktop) { showDialog( context: context, @@ -39,14 +41,17 @@ class ManageCoinUnitsView extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - bool showTestNet = ref.watch( + final showTestNet = ref.watch( prefsChangeNotifierProvider.select((value) => value.showTestNetCoins), ); - final _coins = Coin.values.where((e) => e != Coin.firoTestNet).toList(); + final _coins = SupportedCoins.cryptocurrencies + .where((e) => e is! Firo && e.network != CryptoCurrencyNetwork.test) + .toList(); - List coins = - showTestNet ? _coins : _coins.where((e) => !e.isTestNet).toList(); + final coins = showTestNet + ? _coins + : _coins.where((e) => e.network != CryptoCurrencyNetwork.test).toList(); return ConditionalParent( condition: Util.isDesktop, diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart index 9242731d1..5ebf47bd2 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart @@ -12,21 +12,21 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/block_explorers.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; class ManageExplorerView extends ConsumerStatefulWidget { const ManageExplorerView({ - Key? key, + super.key, required this.coin, - }) : super(key: key); + }); static const String routeName = "/manageExplorer"; - final Coin coin; + final CryptoCurrency coin; @override ConsumerState createState() => _ManageExplorerViewState(); diff --git a/lib/pages/settings_views/global_settings_view/hidden_settings.dart b/lib/pages/settings_views/global_settings_view/hidden_settings.dart index 6ebafad4a..fa0db26b0 100644 --- a/lib/pages/settings_views/global_settings_view/hidden_settings.dart +++ b/lib/pages/settings_views/global_settings_view/hidden_settings.dart @@ -19,8 +19,9 @@ import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/dialogs/tor_warning_dialog.dart'; @@ -74,42 +75,46 @@ class HiddenSettings extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - Consumer(builder: (_, ref, __) { - return GestureDetector( - onTap: () async { - final notifs = - ref.read(notificationsProvider).notifications; + Consumer( + builder: (_, ref, __) { + return GestureDetector( + onTap: () async { + final notifs = ref + .read(notificationsProvider) + .notifications; - for (final n in notifs) { + for (final n in notifs) { + await ref + .read(notificationsProvider) + .delete(n, false); + } await ref .read(notificationsProvider) - .delete(n, false); - } - await ref - .read(notificationsProvider) - .delete(notifs[0], true); + .delete(notifs[0], true); - if (context.mounted) { - unawaited( - showFloatingFlushBar( - type: FlushBarType.success, - message: "Notification history deleted", - context: context, - ), - ); - } - }, - child: RoundedWhiteContainer( - child: Text( - "Delete notifications", - style: STextStyles.button(context).copyWith( + if (context.mounted) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.success, + message: "Notification history deleted", + context: context, + ), + ); + } + }, + child: RoundedWhiteContainer( + child: Text( + "Delete notifications", + style: STextStyles.button(context).copyWith( color: Theme.of(context) .extension()! - .accentColorDark), + .accentColorDark, + ), + ), ), - ), - ); - }), + ); + }, + ), // const SizedBox( // height: 12, // ), @@ -141,34 +146,37 @@ class HiddenSettings extends StatelessWidget { const SizedBox( height: 12, ), - Consumer(builder: (_, ref, __) { - return GestureDetector( - onTap: () async { - await ref - .read(debugServiceProvider) - .deleteAllLogs(); + Consumer( + builder: (_, ref, __) { + return GestureDetector( + onTap: () async { + await ref + .read(debugServiceProvider) + .deleteAllLogs(); - if (context.mounted) { - unawaited( - showFloatingFlushBar( - type: FlushBarType.success, - message: "Debug Logs deleted", - context: context, - ), - ); - } - }, - child: RoundedWhiteContainer( - child: Text( - "Delete Debug Logs", - style: STextStyles.button(context).copyWith( + if (context.mounted) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.success, + message: "Debug Logs deleted", + context: context, + ), + ); + } + }, + child: RoundedWhiteContainer( + child: Text( + "Delete Debug Logs", + style: STextStyles.button(context).copyWith( color: Theme.of(context) .extension()! - .accentColorDark), + .accentColorDark, + ), + ), ), - ), - ); - }), + ); + }, + ), const SizedBox( height: 12, ), @@ -216,8 +224,10 @@ class HiddenSettings extends StatelessWidget { // ), Consumer( builder: (_, ref, __) { - if (ref.watch(prefsChangeNotifierProvider - .select((value) => value.familiarity)) < + if (ref.watch( + prefsChangeNotifierProvider + .select((value) => value.familiarity), + ) < 6) { return GestureDetector( onTap: () async { @@ -236,9 +246,10 @@ class HiddenSettings extends StatelessWidget { child: Text( "Enable exchange", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ); @@ -257,7 +268,7 @@ class HiddenSettings extends StatelessWidget { await showDialog( context: context, builder: (_) => TorWarningDialog( - coin: Coin.stellar, + coin: Stellar(CryptoCurrencyNetwork.main), ), ); }, @@ -265,9 +276,10 @@ class HiddenSettings extends StatelessWidget { child: Text( "Show Tor warning popup", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ); @@ -286,9 +298,10 @@ class HiddenSettings extends StatelessWidget { child: Text( "Do nothing", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ); diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart index 7a656c288..87a354191 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart @@ -14,26 +14,23 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:solana/solana.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/providers/global/secure_store_provider.dart'; import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/connection_check/electrum_connection_check.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/test_epic_box_connection.dart'; -import 'package:stackwallet/utilities/test_eth_node_connection.dart'; -import 'package:stackwallet/utilities/test_monero_node_connection.dart'; -import 'package:stackwallet/utilities/test_stellar_node_connection.dart'; +import 'package:stackwallet/utilities/test_node_connection.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/api/tezos/tezos_rpc_api.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/cryptonote_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -51,17 +48,17 @@ enum AddEditNodeViewType { add, edit } class AddEditNodeView extends ConsumerStatefulWidget { const AddEditNodeView({ - Key? key, + super.key, required this.viewType, required this.coin, required this.nodeId, required this.routeOnSuccessOrDelete, - }) : super(key: key); + }); static const String routeName = "/addEditNode"; final AddEditNodeViewType viewType; - final Coin coin; + final CryptoCurrency coin; final String routeOnSuccessOrDelete; final String? nodeId; @@ -71,192 +68,31 @@ class AddEditNodeView extends ConsumerStatefulWidget { class _AddEditNodeViewState extends ConsumerState { late final AddEditNodeViewType viewType; - late final Coin coin; + late final CryptoCurrency coin; late final String? nodeId; late final bool isDesktop; late bool saveEnabled; late bool testConnectionEnabled; - Future _xmrHelper(String url, int? port) async { - final uri = Uri.parse(url); - - final String path = uri.path.isEmpty ? "/json_rpc" : uri.path; - - final uriString = "${uri.scheme}://${uri.host}:${port ?? 0}$path"; - - ref.read(nodeFormDataProvider).useSSL = true; - - final response = await testMoneroNodeConnection( - Uri.parse(uriString), - false, - ); - - if (response.cert != null) { - if (mounted) { - final shouldAllowBadCert = await showBadX509CertificateDialog( - response.cert!, - response.url!, - response.port!, - context, - ); - - if (shouldAllowBadCert) { - final response = - await testMoneroNodeConnection(Uri.parse(uriString), true); - ref.read(nodeFormDataProvider).host = url; - return response.success; - } - } - } else { - ref.read(nodeFormDataProvider).host = url; - return response.success; + void _onTestSuccess(NodeFormData data) { + if (coin is Epiccash) { + ref.read(nodeFormDataProvider).host = data.host; + ref.read(nodeFormDataProvider).port = data.port; + ref.read(nodeFormDataProvider).useSSL = data.useSSL; + } else if (coin is CryptonoteCurrency) { + ref.read(nodeFormDataProvider).host = data.host; } - - return false; - } - - Future _testConnection({bool showFlushBar = true}) async { - final formData = ref.read(nodeFormDataProvider); - - bool testPassed = false; - - switch (coin) { - case Coin.epicCash: - try { - final data = await testEpicNodeConnection(formData); - - if (data != null) { - testPassed = true; - ref.read(nodeFormDataProvider).host = data.host; - ref.read(nodeFormDataProvider).port = data.port; - ref.read(nodeFormDataProvider).useSSL = data.useSSL; - } - } catch (e, s) { - Logging.instance.log("$e\n$s", level: LogLevel.Warning); - } - break; - - case Coin.monero: - case Coin.wownero: - try { - final url = formData.host!; - final uri = Uri.tryParse(url); - if (uri != null) { - if (!uri.hasScheme) { - // try https first - testPassed = await _xmrHelper("https://$url", formData.port); - - if (testPassed == false) { - // try http - testPassed = await _xmrHelper("http://$url", formData.port); - } - } else { - testPassed = await _xmrHelper(url, formData.port); - } - } - } catch (e, s) { - Logging.instance.log("$e\n$s", level: LogLevel.Warning); - } - - break; - - case Coin.bitcoin: - case Coin.bitcoincash: - case Coin.litecoin: - case Coin.dogecoin: - case Coin.eCash: - case Coin.firo: - case Coin.namecoin: - case Coin.particl: - case Coin.peercoin: - case Coin.peercoinTestNet: - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - case Coin.bitcoinTestNet: - case Coin.litecoinTestNet: - case Coin.bitcoincashTestnet: - case Coin.firoTestNet: - case Coin.dogecoinTestNet: - try { - testPassed = await checkElectrumServer( - host: formData.host!, - port: formData.port!, - useSSL: formData.useSSL!, - overridePrefs: ref.read(prefsChangeNotifierProvider), - overrideTorService: ref.read(pTorService), - ); - } catch (_) { - testPassed = false; - } - - break; - - case Coin.ethereum: - try { - testPassed = await testEthNodeConnection(formData.host!); - } catch (_) { - testPassed = false; - } - break; - - case Coin.stellar: - case Coin.stellarTestnet: - try { - testPassed = - await testStellarNodeConnection(formData.host!, formData.port!); - } catch (_) {} - break; - - case Coin.nano: - case Coin.banano: - throw UnimplementedError(); - //TODO: check network/node - case Coin.tezos: - try { - testPassed = await TezosRpcAPI.testNetworkConnection( - nodeInfo: (host: formData.host!, port: formData.port!), - ); - } catch (_) {} - break; - - case Coin.solana: - try { - RpcClient rpcClient; - if (formData.host!.startsWith("http") || - formData.host!.startsWith("https")) { - rpcClient = RpcClient("${formData.host}:${formData.port}"); - } else { - rpcClient = RpcClient("http://${formData.host}:${formData.port}"); - } - await rpcClient.getEpochInfo().then((value) => testPassed = true); - } catch (_) { - testPassed = false; - } - break; - } - - if (showFlushBar && mounted) { - if (testPassed) { - unawaited(showFloatingFlushBar( - type: FlushBarType.success, - message: "Server ping success", - context: context, - )); - } else { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "Server unreachable", - context: context, - )); - } - } - - return testPassed; } Future attemptSave() async { - final canConnect = await _testConnection(showFlushBar: false); + final canConnect = await testNodeConnection( + context: context, + onSuccess: _onTestSuccess, + cryptoCurrency: coin, + nodeFormData: ref.read(nodeFormDataProvider), + ref: ref, + ); bool? shouldSave; @@ -387,7 +223,7 @@ class _AddEditNodeViewState extends ConsumerState { // strip unused path String address = formData.host!; - if (coin == Coin.monero || coin == Coin.wownero) { + if (coin is Monero || coin is Wownero) { if (address.startsWith("http")) { final uri = Uri.parse(address); address = "${uri.scheme}://${uri.host}"; @@ -404,7 +240,7 @@ class _AddEditNodeViewState extends ConsumerState { useSSL: formData.useSSL!, loginName: formData.login, enabled: true, - coinName: coin.name, + coinName: coin.identifier, isFailover: formData.isFailover!, trusted: formData.trusted!, isDown: false, @@ -429,7 +265,7 @@ class _AddEditNodeViewState extends ConsumerState { useSSL: formData.useSSL!, loginName: formData.login, enabled: true, - coinName: coin.name, + coinName: coin.identifier, isFailover: formData.isFailover!, trusted: formData.trusted!, isDown: false, @@ -652,7 +488,32 @@ class _AddEditNodeViewState extends ConsumerState { buttonHeight: isDesktop ? ButtonHeight.l : null, onPressed: testConnectionEnabled ? () async { - await _testConnection(); + final testPassed = await testNodeConnection( + context: context, + onSuccess: _onTestSuccess, + cryptoCurrency: coin, + nodeFormData: ref.read(nodeFormDataProvider), + ref: ref, + ); + if (context.mounted) { + if (testPassed) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.success, + message: "Server ping success", + context: context, + ), + ); + } else { + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Server unreachable", + context: context, + ), + ); + } + } } : null, ), @@ -724,7 +585,7 @@ class NodeForm extends ConsumerStatefulWidget { final NodeModel? node; final SecureStorageInterface secureStore; final bool readOnly; - final Coin coin; + final CryptoCurrency coin; final void Function(bool canSave, bool canTestConnection)? onChanged; @override @@ -754,39 +615,15 @@ class _NodeFormState extends ConsumerState { void Function(bool canSave, bool canTestConnection)? onChanged; - bool _checkShouldEnableAuthFields(Coin coin) { + bool _checkShouldEnableAuthFields(CryptoCurrency coin) { // TODO: which coin servers can have username and password? switch (coin) { - case Coin.bitcoin: - case Coin.litecoin: - case Coin.dogecoin: - case Coin.firo: - case Coin.namecoin: - case Coin.bitcoincash: - case Coin.particl: - case Coin.peercoin: - case Coin.peercoinTestNet: - case Coin.tezos: - case Coin.bitcoinTestNet: - case Coin.litecoinTestNet: - case Coin.bitcoincashTestnet: - case Coin.firoTestNet: - case Coin.dogecoinTestNet: - case Coin.epicCash: - case Coin.nano: - case Coin.banano: - case Coin.eCash: - case Coin.solana: - case Coin.stellar: - case Coin.stellarTestnet: - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - return false; - - case Coin.ethereum: - case Coin.monero: - case Coin.wownero: + case Ethereum(): + case CryptonoteCurrency(): return true; + + default: + return false; } } @@ -862,7 +699,7 @@ class _NodeFormState extends ConsumerState { _useSSL = node.useSSL; _isFailover = node.isFailover; _trusted = node.trusted ?? false; - if (widget.coin == Coin.epicCash) { + if (widget.coin is Epiccash) { enableSSLCheckbox = !node.host.startsWith("http"); } else { enableSSLCheckbox = true; @@ -961,9 +798,7 @@ class _NodeFormState extends ConsumerState { focusNode: _hostFocusNode, style: STextStyles.field(context), decoration: standardInputDecoration( - (widget.coin != Coin.monero && widget.coin != Coin.wownero) - ? "IP address" - : "Url", + (widget.coin is! CryptonoteCurrency) ? "IP address" : "Url", _hostFocusNode, context, ).copyWith( @@ -987,7 +822,7 @@ class _NodeFormState extends ConsumerState { : null, ), onChanged: (newValue) { - if (widget.coin == Coin.epicCash) { + if (widget.coin is Epiccash) { if (newValue.startsWith("https://")) { _useSSL = true; enableSSLCheckbox = false; @@ -1151,7 +986,7 @@ class _NodeFormState extends ConsumerState { const SizedBox( height: 8, ), - if (widget.coin != Coin.monero && widget.coin != Coin.wownero) + if (widget.coin is! CryptonoteCurrency) Row( children: [ GestureDetector( @@ -1202,7 +1037,7 @@ class _NodeFormState extends ConsumerState { ), ], ), - if (widget.coin == Coin.monero || widget.coin == Coin.wownero) + if (widget.coin is Monero || widget.coin is Wownero) Row( children: [ GestureDetector( @@ -1253,15 +1088,11 @@ class _NodeFormState extends ConsumerState { ), ], ), - if (widget.coin != Coin.monero && - widget.coin != Coin.wownero && - widget.coin != Coin.epicCash) + if (widget.coin is! CryptonoteCurrency && widget.coin is! Epiccash) const SizedBox( height: 8, ), - if (widget.coin != Coin.monero && - widget.coin != Coin.wownero && - widget.coin != Coin.epicCash) + if (widget.coin is! CryptonoteCurrency && widget.coin is! Epiccash) Row( children: [ GestureDetector( diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart index 1bb393246..56b5538e5 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart @@ -18,9 +18,9 @@ import 'package:stackwallet/pages/settings_views/sub_widgets/nodes_list.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; @@ -30,14 +30,14 @@ import 'package:tuple/tuple.dart'; class CoinNodesView extends ConsumerStatefulWidget { const CoinNodesView({ - Key? key, + super.key, required this.coin, this.rootNavigator = false, - }) : super(key: key); + }); static const String routeName = "/coinNodes"; - final Coin coin; + final CryptoCurrency coin; final bool rootNavigator; @override diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart index c6e59c96c..74980942b 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart @@ -15,19 +15,21 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart'; import 'package:stackwallet/providers/providers.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; class ManageNodesView extends ConsumerStatefulWidget { const ManageNodesView({ - Key? key, - }) : super(key: key); + super.key, + }); static const String routeName = "/manageNodes"; @@ -36,12 +38,14 @@ class ManageNodesView extends ConsumerStatefulWidget { } class _ManageNodesViewState extends ConsumerState { - List _coins = [...Coin.values]; + List _coins = [...SupportedCoins.cryptocurrencies]; @override void initState() { _coins = _coins.toList(); - _coins.remove(Coin.firoTestNet); + _coins.removeWhere( + (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + ); super.initState(); } @@ -52,12 +56,13 @@ class _ManageNodesViewState extends ConsumerState { @override Widget build(BuildContext context) { - bool showTestNet = ref.watch( + final showTestNet = ref.watch( prefsChangeNotifierProvider.select((value) => value.showTestNetCoins), ); - List coins = - showTestNet ? _coins : _coins.where((e) => !e.isTestNet).toList(); + final coins = showTestNet + ? _coins + : _coins.where((e) => e.network != CryptoCurrencyNetwork.test).toList(); return Background( child: Scaffold( diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart index 1034d986c..8cb734e94 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart @@ -13,25 +13,17 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:solana/solana.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; import 'package:stackwallet/providers/global/secure_store_provider.dart'; import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/connection_check/electrum_connection_check.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/test_epic_box_connection.dart'; -import 'package:stackwallet/utilities/test_eth_node_connection.dart'; -import 'package:stackwallet/utilities/test_monero_node_connection.dart'; -import 'package:stackwallet/utilities/test_stellar_node_connection.dart'; +import 'package:stackwallet/utilities/test_node_connection.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/api/tezos/tezos_rpc_api.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -43,15 +35,15 @@ import 'package:tuple/tuple.dart'; class NodeDetailsView extends ConsumerStatefulWidget { const NodeDetailsView({ - Key? key, + super.key, required this.coin, required this.nodeId, required this.popRouteName, - }) : super(key: key); + }); static const String routeName = "/nodeDetails"; - final Coin coin; + final CryptoCurrency coin; final String nodeId; final String popRouteName; @@ -61,7 +53,7 @@ class NodeDetailsView extends ConsumerStatefulWidget { class _NodeDetailsViewState extends ConsumerState { late final SecureStorageInterface secureStore; - late final Coin coin; + late final CryptoCurrency coin; late final String nodeId; late final String popRouteName; @@ -76,170 +68,19 @@ class _NodeDetailsViewState extends ConsumerState { super.initState(); } - Future _testConnection(WidgetRef ref, BuildContext context) async { - final node = - ref.watch(nodeServiceChangeNotifierProvider).getNodeById(id: nodeId); - - bool testPassed = false; - - switch (coin) { - case Coin.epicCash: - try { - testPassed = await testEpicNodeConnection( - NodeFormData() - ..host = node!.host - ..useSSL = node.useSSL - ..port = node.port, - ) != - null; - } catch (e, s) { - Logging.instance.log("$e\n$s", level: LogLevel.Warning); - testPassed = false; - } - break; - - case Coin.monero: - case Coin.wownero: - try { - final uri = Uri.parse(node!.host); - if (uri.scheme.startsWith("http")) { - final String path = uri.path.isEmpty ? "/json_rpc" : uri.path; - - String uriString = "${uri.scheme}://${uri.host}:${node.port}$path"; - - final response = await testMoneroNodeConnection( - Uri.parse(uriString), - false, - ); - - if (response.cert != null) { - if (mounted) { - final shouldAllowBadCert = await showBadX509CertificateDialog( - response.cert!, - response.url!, - response.port!, - context, - ); - - if (shouldAllowBadCert) { - final response = await testMoneroNodeConnection( - Uri.parse(uriString), true); - testPassed = response.success; - } - } - } else { - testPassed = response.success; - } - } - } catch (e, s) { - Logging.instance.log("$e\n$s", level: LogLevel.Warning); - } - - break; - - case Coin.bitcoin: - case Coin.litecoin: - case Coin.dogecoin: - case Coin.firo: - case Coin.particl: - case Coin.peercoin: - case Coin.peercoinTestNet: - case Coin.bitcoinTestNet: - case Coin.firoTestNet: - case Coin.dogecoinTestNet: - case Coin.bitcoincash: - case Coin.namecoin: - case Coin.litecoinTestNet: - case Coin.bitcoincashTestnet: - case Coin.eCash: - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - try { - testPassed = await checkElectrumServer( - host: node!.host, - port: node.port, - useSSL: node.useSSL, - overridePrefs: ref.read(prefsChangeNotifierProvider), - overrideTorService: ref.read(pTorService), - ); - } catch (_) { - testPassed = false; - } - - break; - - case Coin.ethereum: - try { - testPassed = await testEthNodeConnection(node!.host); - } catch (_) { - testPassed = false; - } - break; - - case Coin.nano: - case Coin.banano: - // TODO: fix this lacking code - throw UnimplementedError(); - //TODO: check network/node - case Coin.tezos: - try { - testPassed = await TezosRpcAPI.testNetworkConnection( - nodeInfo: (host: node!.host, port: node!.port), - ); - } catch (_) {} - break; - case Coin.stellar: - case Coin.stellarTestnet: - try { - testPassed = await testStellarNodeConnection(node!.host, node.port); - } catch (_) { - testPassed = false; - } - break; - - case Coin.solana: - try { - RpcClient rpcClient; - if (node!.host.startsWith("http") || node.host.startsWith("https")) { - rpcClient = RpcClient("${node.host}:${node.port}"); - } else { - rpcClient = RpcClient("http://${node.host}:${node.port}"); - } - await rpcClient.getEpochInfo().then((value) => testPassed = true); - } catch (_) { - testPassed = false; - } - break; - } - - if (testPassed) { - unawaited( - showFloatingFlushBar( - type: FlushBarType.success, - message: "Server ping success", - context: context, - ), - ); - } else { - unawaited( - showFloatingFlushBar( - type: FlushBarType.warning, - message: "Server unreachable", - context: context, - ), - ); - } - } - @override Widget build(BuildContext context) { final isDesktop = Util.isDesktop; - final node = ref.watch(nodeServiceChangeNotifierProvider - .select((value) => value.getNodeById(id: nodeId))); + final node = ref.watch( + nodeServiceChangeNotifierProvider + .select((value) => value.getNodeById(id: nodeId)), + ); - final nodesForCoin = ref.watch(nodeServiceChangeNotifierProvider - .select((value) => value.getNodesFor(coin))); + final nodesForCoin = ref.watch( + nodeServiceChangeNotifierProvider + .select((value) => value.getNodesFor(coin)), + ); final canDelete = nodesForCoin.length > 1; @@ -256,7 +97,7 @@ class _NodeDetailsViewState extends ConsumerState { FocusScope.of(context).unfocus(); await Future.delayed(const Duration(milliseconds: 75)); } - if (mounted) { + if (context.mounted) { Navigator.of(context).pop(); } }, @@ -350,7 +191,7 @@ class _NodeDetailsViewState extends ConsumerState { Text( "Node details", style: STextStyles.desktopH3(context), - ) + ), ], ), Padding( @@ -420,7 +261,52 @@ class _NodeDetailsViewState extends ConsumerState { label: "Test connection", buttonHeight: isDesktop ? ButtonHeight.l : null, onPressed: () async { - await _testConnection(ref, context); + final node = ref + .read(nodeServiceChangeNotifierProvider) + .getNodeById(id: nodeId)!; + + final nodeFormData = NodeFormData() + ..useSSL = node.useSSL + ..trusted = node.trusted + ..name = node.name + ..host = node.host + ..login = node.loginName + ..port = node.port + ..isFailover = node.isFailover; + nodeFormData.password = await node.getPassword( + ref.read(secureStoreProvider), + ); + + if (context.mounted) { + final testPassed = await testNodeConnection( + context: context, + nodeFormData: nodeFormData, + cryptoCurrency: coin, + ref: ref, + ); + + if (testPassed) { + if (context.mounted) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.success, + message: "Server ping success", + context: context, + ), + ); + } + } else { + if (context.mounted) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Server unreachable", + context: context, + ), + ); + } + } + } }, ), ), diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart index f6491cf1d..6ece250f1 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart @@ -33,9 +33,8 @@ import 'package:stackwallet/services/trade_notes_service.dart'; import 'package:stackwallet/services/trade_sent_from_stack_service.dart'; import 'package:stackwallet/services/trade_service.dart'; import 'package:stackwallet/services/wallets.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; @@ -43,6 +42,8 @@ import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; @@ -80,7 +81,9 @@ String getErrorMessageFromSWBException(Exception e) { String createAutoBackupFilename(String dirPath, DateTime date) { // this filename structure is important. DO NOT CHANGE - return "$dirPath/stackautobackup_${date.year}_${date.month}_${date.day}_${date.hour}_${date.minute}_${date.second}.swb"; + return "$dirPath/stackautobackup_" + "${date.year}_${date.month}_${date.day}_${date.hour}" + "_${date.minute}_${date.second}.swb"; } abstract class SWB { @@ -95,8 +98,9 @@ abstract class SWB { .log("SWB cancel restore requested", level: LogLevel.Info); } else { Logging.instance.log( - "SWB cancel restore requested while a cancellation request is currently in progress", - level: LogLevel.Warning); + "SWB cancel restore requested while a cancellation request is currently in progress", + level: LogLevel.Warning, + ); } // return completer that will complete on SWBRestoreCancelEventType.completed event @@ -129,11 +133,11 @@ abstract class SWB { String plaintext, ) async { try { - File backupFile = File(fileToSave); + final File backupFile = File(fileToSave); if (!backupFile.existsSync()) { - String jsonBackup = plaintext; - Uint8List content = Uint8List.fromList(utf8.encode(jsonBackup)); - Uint8List encryptedContent = + final String jsonBackup = plaintext; + final Uint8List content = Uint8List.fromList(utf8.encode(jsonBackup)); + final Uint8List encryptedContent = await encryptWithPassphrase(passphrase, content); backupFile .writeAsStringSync(Format.uint8listToString(encryptedContent)); @@ -153,13 +157,15 @@ abstract class SWB { int adkVersion, ) async { try { - File backupFile = File(fileToSave); + final File backupFile = File(fileToSave); if (!backupFile.existsSync()) { - String jsonBackup = plaintext; - Uint8List content = Uint8List.fromList(utf8.encode(jsonBackup)); - Uint8List encryptedContent = await encryptWithAdk( - Format.stringToUint8List(adk), content, - version: adkVersion); + final String jsonBackup = plaintext; + final Uint8List content = Uint8List.fromList(utf8.encode(jsonBackup)); + final Uint8List encryptedContent = await encryptWithAdk( + Format.stringToUint8List(adk), + content, + version: adkVersion, + ); backupFile .writeAsStringSync(Format.uint8listToString(encryptedContent)); } @@ -175,10 +181,10 @@ abstract class SWB { Tuple2 data, ) async { try { - String fileToRestore = data.item1; - String passphrase = data.item2; - File backupFile = File(fileToRestore); - String encryptedText = await backupFile.readAsString(); + final String fileToRestore = data.item1; + final String passphrase = data.item2; + final File backupFile = File(fileToRestore); + final String encryptedText = await backupFile.readAsString(); return await decryptStackWalletStringWithPassphrase( Tuple2(encryptedText, passphrase), ); @@ -192,15 +198,15 @@ abstract class SWB { Tuple2 data, ) async { try { - String encryptedText = data.item1; - String passphrase = data.item2; + final encryptedText = data.item1; + final passphrase = data.item2; - final Uint8List encryptedBytes = Format.stringToUint8List(encryptedText); + final encryptedBytes = Format.stringToUint8List(encryptedText); - Uint8List decryptedContent = + final decryptedContent = await decryptWithPassphrase(passphrase, encryptedBytes); - final String jsonBackup = utf8.decode(decryptedContent); + final jsonBackup = utf8.decode(decryptedContent); return jsonBackup; } catch (e, s) { Logging.instance.log("$e\n$s", level: LogLevel.Error); @@ -215,24 +221,27 @@ abstract class SWB { Logging.instance .log("Starting createStackWalletJSON...", level: LogLevel.Info); final _wallets = Wallets.sharedInstance; - Map backupJson = {}; - NodeService nodeService = + final Map backupJson = {}; + final NodeService nodeService = NodeService(secureStorageInterface: secureStorage); final _secureStore = secureStorage; - Logging.instance.log("createStackWalletJSON awaiting DB.instance.mutex...", - level: LogLevel.Info); + Logging.instance.log( + "createStackWalletJSON awaiting DB.instance.mutex...", + level: LogLevel.Info, + ); // prevent modification of data await DB.instance.mutex.protect(() async { Logging.instance.log( - "...createStackWalletJSON DB.instance.mutex acquired", - level: LogLevel.Info); + "...createStackWalletJSON DB.instance.mutex acquired", + level: LogLevel.Info, + ); Logging.instance.log( "SWB backing up nodes", level: LogLevel.Warning, ); try { - var primaryNodes = nodeService.primaryNodes.map((e) async { + final primaryNodes = nodeService.primaryNodes.map((e) async { final map = e.toMap(); map["password"] = await e.getPassword(_secureStore); return map; @@ -258,7 +267,7 @@ abstract class SWB { level: LogLevel.Warning, ); - Map prefs = {}; + final Map prefs = {}; final _prefs = Prefs.instance; await _prefs.init(); prefs['currency'] = _prefs.currency; @@ -282,8 +291,8 @@ abstract class SWB { level: LogLevel.Warning, ); - AddressBookService addressBookService = AddressBookService(); - var addresses = addressBookService.contacts; + final AddressBookService addressBookService = AddressBookService(); + final addresses = addressBookService.contacts; backupJson['addressBookEntries'] = addresses.map((e) => e.toMap()).toList(); @@ -292,9 +301,9 @@ abstract class SWB { level: LogLevel.Warning, ); - List backupWallets = []; - for (var wallet in _wallets.wallets) { - Map backupWallet = {}; + final List backupWallets = []; + for (final wallet in _wallets.wallets) { + final Map backupWallet = {}; backupWallet['name'] = wallet.info.name; backupWallet['id'] = wallet.walletId; backupWallet['isFavorite'] = wallet.info.isFavourite; @@ -307,10 +316,11 @@ abstract class SWB { } else if (wallet is PrivateKeyInterface) { backupWallet['privateKey'] = await wallet.getPrivateKey(); } else if (wallet is BitcoinFrostWallet) { - String? keys = await wallet.getSerializedKeys(); - String? config = await wallet.getMultisigConfig(); + final String? keys = await wallet.getSerializedKeys(); + final String? config = await wallet.getMultisigConfig(); if (keys == null || config == null) { - String err = "${wallet.info.coin.name} wallet ${wallet.info.name} " + final String err = + "${wallet.info.coin.identifier} wallet ${wallet.info.name} " "has null keys or config"; Logging.instance.log(err, level: LogLevel.Fatal); throw Exception(err); @@ -320,12 +330,12 @@ abstract class SWB { // TODO [prio=low]: solve case in which either keys or config is null. // Format keys & config as a JSON string and set otherDataJsonString. - Map frostData = {}; + final Map frostData = {}; frostData["keys"] = keys; frostData["config"] = config; backupWallet['frostWalletData'] = jsonEncode(frostData); } - backupWallet['coinName'] = wallet.info.coin.name; + backupWallet['coinName'] = wallet.info.coin.identifier; backupWallet['storedChainHeight'] = wallet.info.cachedChainHeight; // backupWallet['txidList'] = DB.instance.get( @@ -377,8 +387,10 @@ abstract class SWB { final tradeNotes = tradeNotesService.all; backupJson["tradeNotes"] = tradeNotes; }); - Logging.instance.log("createStackWalletJSON DB.instance.mutex released", - level: LogLevel.Info); + Logging.instance.log( + "createStackWalletJSON DB.instance.mutex released", + level: LogLevel.Info, + ); // // back up notifications data // final notificationsService = NotificationsService(); @@ -411,9 +423,10 @@ abstract class SWB { } } else { if (walletbackup['mnemonic'] is List) { - List mnemonicList = (walletbackup['mnemonic'] as List) - .map((e) => e as String) - .toList(); + final List mnemonicList = + (walletbackup['mnemonic'] as List) + .map((e) => e as String) + .toList(); mnemonic = mnemonicList.join(" ").trim(); } else { mnemonic = walletbackup['mnemonic'] as String; @@ -432,7 +445,7 @@ abstract class SWB { try { String? serializedKeys; String? multisigConfig; - if (info.coin.isFrost) { + if (info.coin is FrostCurrency) { // Decode info.otherDataJsonString for Frost recovery info. final frostData = jsonDecode(walletbackup["frostWalletData"] as String); serializedKeys = frostData["keys"] as String; @@ -544,8 +557,9 @@ abstract class SWB { await restoringFuture; Logging.instance.log( - "SWB restored: ${info.walletId} ${info.name} ${info.coin.prettyName}", - level: LogLevel.Info); + "SWB restored: ${info.walletId} ${info.name} ${info.coin.prettyName}", + level: LogLevel.Info, + ); final currentAddress = await wallet.getCurrentReceivingAddress(); uiState?.update( @@ -576,15 +590,16 @@ abstract class SWB { Map oldToNewWalletIdMap, SecureStorageInterface secureStorageInterface, ) async { - Map prefs = validJSON["prefs"] as Map; - List? addressBookEntries = + final Map prefs = + validJSON["prefs"] as Map; + final List? addressBookEntries = validJSON["addressBookEntries"] as List?; - List? primaryNodes = validJSON["primaryNodes"] as List?; - List? nodes = validJSON["nodes"] as List?; - List? trades = validJSON["tradeHistory"] as List?; - List? tradeTxidLookupData = + final List? primaryNodes = validJSON["primaryNodes"] as List?; + final List? nodes = validJSON["nodes"] as List?; + final List? trades = validJSON["tradeHistory"] as List?; + final List? tradeTxidLookupData = validJSON["tradeTxidLookupData"] as List?; - Map? tradeNotes = + final Map? tradeNotes = validJSON["tradeNotes"] as Map?; uiState?.preferences = StackRestoringStatus.restoring; @@ -689,7 +704,7 @@ abstract class SWB { level: LogLevel.Warning, ); - List _currentWalletIds = await MainDB.instance.isar.walletInfo + final List _currentWalletIds = await MainDB.instance.isar.walletInfo .where() .walletIdProperty() .findAll(); @@ -697,12 +712,12 @@ abstract class SWB { final preRestoreState = PreRestoreState(_currentWalletIds.toSet(), preRestoreJSON); - Map oldToNewWalletIdMap = {}; + final Map oldToNewWalletIdMap = {}; - Map validJSON = + final Map validJSON = json.decode(jsonBackup) as Map; - List wallets = validJSON["wallets"] as List; + final List wallets = validJSON["wallets"] as List; // check for duplicate walletIds and assign new ones if required for (final wallet in wallets) { @@ -748,9 +763,9 @@ abstract class SWB { final List> managers = []; - Map walletStates = {}; + final Map walletStates = {}; - for (var walletbackup in wallets) { + for (final walletbackup in wallets) { // check if cancel was requested and restore previous state if (_checkShouldCancel( preRestoreState, @@ -759,8 +774,10 @@ abstract class SWB { return false; } - final coin = Coin.values - .firstWhere((element) => element.name == walletbackup['coinName']); + final coin = SupportedCoins.getCryptoCurrencyFor( + walletbackup['coinName'] as String, + ); + final walletName = walletbackup['name'] as String; final walletId = oldToNewWalletIdMap[walletbackup["id"] as String]!; @@ -781,7 +798,7 @@ abstract class SWB { ); } - if (coin == Coin.firo) { + if (coin is Firo) { otherData ??= {}; // swb will do a restore so this flag should be set to false so another // rescan/restore isn't done when opening the wallet @@ -789,7 +806,7 @@ abstract class SWB { } final info = WalletInfo( - coinName: coin.name, + coinName: coin.identifier, walletId: walletId, name: walletName, mainAddressType: coin.primaryAddressType, @@ -798,10 +815,10 @@ abstract class SWB { cachedChainHeight: walletbackup['storedChainHeight'] as int? ?? 0, ); - var node = nodeService.getPrimaryNodeFor(coin: coin); + var node = nodeService.getPrimaryNodeFor(currency: coin); if (node == null) { - node = DefaultNodes.getNodeFor(coin); + node = coin.defaultNode; await nodeService.setPrimaryNodeFor(coin: coin, node: node); } @@ -845,7 +862,7 @@ abstract class SWB { // set the states so the ui can display each status as they update during restores uiState?.walletStates = walletStates; - List> restoreStatuses = []; + final List> restoreStatuses = []; // start restoring wallets for (final tuple in managers) { // check if cancel was requested and restore previous state @@ -873,7 +890,7 @@ abstract class SWB { return false; } - for (Future status in restoreStatuses) { + for (final Future status in restoreStatuses) { // check if cancel was requested and restore previous state if (_checkShouldCancel( preRestoreState, @@ -905,17 +922,18 @@ abstract class SWB { PreRestoreState revertToState, SecureStorageInterface secureStorageInterface, ) async { - Map prefs = + final Map prefs = revertToState.validJSON["prefs"] as Map; - List? addressBookEntries = + final List? addressBookEntries = revertToState.validJSON["addressBookEntries"] as List?; - List? primaryNodes = + final List? primaryNodes = revertToState.validJSON["primaryNodes"] as List?; - List? nodes = revertToState.validJSON["nodes"] as List?; - List? trades = revertToState.validJSON["tradeHistory"] as List?; - List? tradeTxidLookupData = + final List? nodes = revertToState.validJSON["nodes"] as List?; + final List? trades = + revertToState.validJSON["tradeHistory"] as List?; + final List? tradeTxidLookupData = revertToState.validJSON["tradeTxidLookupData"] as List?; - Map? tradeNotes = + final Map? tradeNotes = revertToState.validJSON["tradeNotes"] as Map?; // prefs @@ -971,7 +989,7 @@ abstract class SWB { } // nodes - NodeService nodeService = NodeService( + final NodeService nodeService = NodeService( secureStorageInterface: secureStorageInterface, ); final currentNodes = nodeService.nodes; @@ -1015,10 +1033,12 @@ abstract class SWB { // primary nodes if (primaryNodes != null) { - for (var node in primaryNodes) { + for (final node in primaryNodes) { try { await nodeService.setPrimaryNodeFor( - coin: coinFromPrettyName(node['coinName'] as String), + coin: SupportedCoins.getCryptoCurrencyByPrettyName( + node['coinName'] as String, + ), node: nodeService.getNodeById(id: node['id'] as String)!, ); } catch (e, s) { @@ -1050,12 +1070,15 @@ abstract class SWB { // trade existed before attempted restore so we don't delete it, only // revert data to pre restore state await tradesService.edit( - trade: Trade.fromMap(tradeData as Map), - shouldNotifyListeners: true); + trade: Trade.fromMap(tradeData as Map), + shouldNotifyListeners: true, + ); } else { // trade did not exist before so we delete it await tradesService.delete( - trade: tradeTx, shouldNotifyListeners: true); + trade: tradeTx, + shouldNotifyListeners: true, + ); } } } @@ -1093,7 +1116,7 @@ abstract class SWB { if (tradeTxidLookupData != null) { for (int i = 0; i < tradeTxidLookupData.length; i++) { final json = Map.from(tradeTxidLookupData[i] as Map); - TradeWalletLookup lookup = TradeWalletLookup.fromJson(json); + final TradeWalletLookup lookup = TradeWalletLookup.fromJson(json); await tradeTxidLookupDataService.save(tradeWalletLookup: lookup); } } @@ -1137,8 +1160,9 @@ abstract class SWB { _prefs.isAutoBackupEnabled = prefs['isAutoBackupEnabled'] as bool; _prefs.autoBackupLocation = prefs['autoBackupLocation'] as String?; _prefs.backupFrequencyType = BackupFrequencyType.values.firstWhere( - (e) => e.name == (prefs['backupFrequencyType'] as String?), - orElse: () => BackupFrequencyType.everyAppStart); + (e) => e.name == (prefs['backupFrequencyType'] as String?), + orElse: () => BackupFrequencyType.everyAppStart, + ); _prefs.lastAutoBackup = DateTime.tryParse(prefs['lastAutoBackup'] as String? ?? ""); } @@ -1146,10 +1170,10 @@ abstract class SWB { static Future _restoreAddressBook( List addressBookEntries, ) async { - AddressBookService addressBookService = AddressBookService(); - for (var contact in addressBookEntries) { - List addresses = []; - for (var address in (contact['addresses'] as List)) { + final AddressBookService addressBookService = AddressBookService(); + for (final contact in addressBookEntries) { + final List addresses = []; + for (final address in (contact['addresses'] as List)) { addresses.add( ContactAddressEntry() ..coinName = address['coin'] as String @@ -1175,11 +1199,11 @@ abstract class SWB { List? primaryNodes, SecureStorageInterface secureStorageInterface, ) async { - NodeService nodeService = NodeService( + final NodeService nodeService = NodeService( secureStorageInterface: secureStorageInterface, ); if (nodes != null) { - for (var node in nodes) { + for (final node in nodes) { await nodeService.add( NodeModel( host: node['host'] as String, @@ -1199,10 +1223,12 @@ abstract class SWB { } } if (primaryNodes != null) { - for (var node in primaryNodes) { + for (final node in primaryNodes) { try { await nodeService.setPrimaryNodeFor( - coin: coinFromPrettyName(node['coinName'] as String), + coin: SupportedCoins.getCryptoCurrencyByPrettyName( + node['coinName'] as String, + ), node: nodeService.getNodeById(id: node['id'] as String)!, ); } catch (e, s) { @@ -1272,16 +1298,18 @@ abstract class SWB { final json = Map.from(tradeTxidLookupData[i] as Map); TradeWalletLookup lookup = TradeWalletLookup.fromJson(json); // update walletIds - List walletIds = + final List walletIds = lookup.walletIds.map((e) => oldToNewWalletIdMap[e]!).toList(); lookup = lookup.copyWith(walletIds: walletIds); final oldLookup = DB.instance.get( - boxName: DB.boxNameTradeLookup, key: lookup.uuid); + boxName: DB.boxNameTradeLookup, + key: lookup.uuid, + ); if (oldLookup != null) { if (oldLookup.txid == lookup.txid && oldLookup.tradeId == lookup.tradeId) { - List mergedList = oldLookup.walletIds; + final List mergedList = oldLookup.walletIds; for (final id in lookup.walletIds) { if (!mergedList.contains(id)) { mergedList.add(id); @@ -1308,7 +1336,9 @@ abstract class SWB { final tradeNotesService = TradeNotesService(); for (final note in tradeNotes.entries) { await tradeNotesService.set( - tradeId: note.key, note: note.value as String); + tradeId: note.key, + note: note.value as String, + ); } } } diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_wallet_card.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_wallet_card.dart index 36c3d7c81..53ad106b5 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_wallet_card.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_wallet_card.dart @@ -20,8 +20,8 @@ import 'package:stackwallet/providers/stack_restore/stack_restoring_ui_state_pro import 'package:stackwallet/route_generator.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; +import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; @@ -89,9 +89,7 @@ class _RestoringWalletCardState extends ConsumerState { height: 32, child: RoundedContainer( padding: const EdgeInsets.all(0), - color: Theme.of(context) - .extension()! - .colorForCoin(coin), + color: ref.watch(pCoinColor(coin)), child: Center( child: SvgPicture.file( File( @@ -212,9 +210,7 @@ class _RestoringWalletCardState extends ConsumerState { height: 32, child: RoundedContainer( padding: const EdgeInsets.all(0), - color: Theme.of(context) - .extension()! - .colorForCoin(coin), + color: ref.watch(pCoinColor(coin)), child: Center( child: SvgPicture.file( File( @@ -239,7 +235,7 @@ class _RestoringWalletCardState extends ConsumerState { try { // final mnemonicList = await manager.mnemonic; // int maxUnusedAddressGap = 20; - // if (coin == Coin.firo) { + // if (coin is Firo) { // maxUnusedAddressGap = 50; // } // const maxNumberOfIndexesToCheck = 1000; diff --git a/lib/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart b/lib/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart index 6e057eaf4..d636a8d5a 100644 --- a/lib/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart +++ b/lib/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart @@ -16,6 +16,7 @@ import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; +import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; @@ -63,165 +64,181 @@ class _StartupWalletSelectionViewState ), ), ), - body: LayoutBuilder(builder: (context, constraints) { - return Padding( - padding: const EdgeInsets.only( - left: 12, - top: 12, - right: 12, - ), - child: SingleChildScrollView( - child: ConstrainedBox( - constraints: BoxConstraints( - minHeight: constraints.maxHeight - 24, - ), - child: IntrinsicHeight( - child: Padding( - padding: const EdgeInsets.all(4), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - const SizedBox( - height: 4, - ), - Text( - "Select a wallet to load into immediately on startup", - style: STextStyles.smallMed12(context), - ), - const SizedBox( - height: 12, - ), - RoundedWhiteContainer( - padding: const EdgeInsets.all(0), - child: Column( - children: [ - ...wallets.map( - (wallet) => Padding( - padding: const EdgeInsets.all(12), - child: Row( - key: Key( - "startupWalletSelectionGroupKey_${wallet.walletId}"), - children: [ - Container( - decoration: BoxDecoration( - color: Theme.of(context) - .extension()! - .colorForCoin( - ref.watch(pWalletCoin( - wallet.walletId)), - ) - .withOpacity(0.5), - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius, + body: LayoutBuilder( + builder: (context, constraints) { + return Padding( + padding: const EdgeInsets.only( + left: 12, + top: 12, + right: 12, + ), + child: SingleChildScrollView( + child: ConstrainedBox( + constraints: BoxConstraints( + minHeight: constraints.maxHeight - 24, + ), + child: IntrinsicHeight( + child: Padding( + padding: const EdgeInsets.all(4), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox( + height: 4, + ), + Text( + "Select a wallet to load into immediately on startup", + style: STextStyles.smallMed12(context), + ), + const SizedBox( + height: 12, + ), + RoundedWhiteContainer( + padding: const EdgeInsets.all(0), + child: Column( + children: [ + ...wallets.map( + (wallet) => Padding( + padding: const EdgeInsets.all(12), + child: Row( + key: Key( + "startupWalletSelectionGroupKey_${wallet.walletId}", + ), + children: [ + Container( + decoration: BoxDecoration( + color: ref + .watch( + pCoinColor( + ref.watch( + pWalletCoin( + wallet.walletId, + ), + ), + ), + ) + .withOpacity(0.5), + borderRadius: BorderRadius.circular( + Constants + .size.circularBorderRadius, + ), ), - ), - child: Padding( - padding: const EdgeInsets.all(4), - child: SvgPicture.file( - File( - ref.watch( - coinIconProvider( - ref.watch(pWalletCoin( - wallet.walletId)), + child: Padding( + padding: const EdgeInsets.all(4), + child: SvgPicture.file( + File( + ref.watch( + coinIconProvider( + ref.watch( + pWalletCoin( + wallet.walletId, + ), + ), + ), ), ), + width: 20, + height: 20, ), - width: 20, - height: 20, ), ), - ), - const SizedBox( - width: 12, - ), - Expanded( - child: Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - ref.watch( - pWalletName(wallet.walletId)), - style: STextStyles.titleBold12( - context), - ), - // const SizedBox( - // height: 2, - // ), - // FutureBuilder( - // future: manager.totalBalance, - // builder: (builderContext, - // AsyncSnapshot snapshot) { - // if (snapshot.connectionState == - // ConnectionState.done && - // snapshot.hasData) { - // return Text( - // "${Format.localizedStringAsFixed( - // value: snapshot.data!, - // locale: ref.watch( - // localeServiceChangeNotifierProvider - // .select((value) => - // value.locale)), - // decimalPlaces: 8, - // )} ${manager.coin.ticker}", - // style: STextStyles.itemSubtitle(context), - // ); - // } else { - // return AnimatedText( - // stringsToLoopThrough: const [ - // "Loading balance", - // "Loading balance.", - // "Loading balance..", - // "Loading balance..." - // ], - // style: STextStyles.itemSubtitle(context), - // ); - // } - // }, - // ), - ], + const SizedBox( + width: 12, ), - ), - SizedBox( - height: 20, - width: 20, - child: Radio( - activeColor: Theme.of(context) - .extension()! - .radioButtonIconEnabled, - value: wallet.walletId, - groupValue: ref.watch( - prefsChangeNotifierProvider.select( + Expanded( + child: Column( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + ref.watch( + pWalletName(wallet.walletId), + ), + style: STextStyles.titleBold12( + context, + ), + ), + // const SizedBox( + // height: 2, + // ), + // FutureBuilder( + // future: manager.totalBalance, + // builder: (builderContext, + // AsyncSnapshot snapshot) { + // if (snapshot.connectionState == + // ConnectionState.done && + // snapshot.hasData) { + // return Text( + // "${Format.localizedStringAsFixed( + // value: snapshot.data!, + // locale: ref.watch( + // localeServiceChangeNotifierProvider + // .select((value) => + // value.locale)), + // decimalPlaces: 8, + // )} ${manager.coin.ticker}", + // style: STextStyles.itemSubtitle(context), + // ); + // } else { + // return AnimatedText( + // stringsToLoopThrough: const [ + // "Loading balance", + // "Loading balance.", + // "Loading balance..", + // "Loading balance..." + // ], + // style: STextStyles.itemSubtitle(context), + // ); + // } + // }, + // ), + ], + ), + ), + SizedBox( + height: 20, + width: 20, + child: Radio( + activeColor: Theme.of(context) + .extension()! + .radioButtonIconEnabled, + value: wallet.walletId, + groupValue: ref.watch( + prefsChangeNotifierProvider + .select( (value) => - value.startupWalletId), + value.startupWalletId, + ), + ), + onChanged: (value) { + if (value is String) { + ref + .read( + prefsChangeNotifierProvider, + ) + .startupWalletId = value; + } + }, ), - onChanged: (value) { - if (value is String) { - ref - .read( - prefsChangeNotifierProvider) - .startupWalletId = value; - } - }, ), - ), - ], + ], + ), ), ), - ), - ], + ], + ), ), - ), - ], + ], + ), ), ), ), ), - ), - ); - }), + ); + }, + ), ), ); } diff --git a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart index 8ded05dd6..375534e4a 100644 --- a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart +++ b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart @@ -16,6 +16,7 @@ import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; +import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; @@ -117,9 +118,8 @@ class WalletSyncingOptionsView extends ConsumerWidget { children: [ Container( decoration: BoxDecoration( - color: Theme.of(context) - .extension()! - .colorForCoin(info.coin) + color: ref + .watch(pCoinColor(info.coin)) .withOpacity(0.5), borderRadius: BorderRadius.circular( Constants.size.circularBorderRadius, diff --git a/lib/pages/settings_views/sub_widgets/nodes_list.dart b/lib/pages/settings_views/sub_widgets/nodes_list.dart index 52d9b8861..de01c392c 100644 --- a/lib/pages/settings_views/sub_widgets/nodes_list.dart +++ b/lib/pages/settings_views/sub_widgets/nodes_list.dart @@ -11,39 +11,39 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/providers/global/node_service_provider.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/node_card.dart'; class NodesList extends ConsumerWidget { const NodesList({ - Key? key, + super.key, required this.coin, required this.popBackToRoute, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; final String popBackToRoute; @override Widget build(BuildContext context, WidgetRef ref) { - final nodes = ref.watch(nodeServiceChangeNotifierProvider - .select((value) => value.getNodesFor(coin))); + final nodes = ref.watch( + nodeServiceChangeNotifierProvider + .select((value) => value.getNodesFor(coin)), + ); return Column( children: [ - ...nodes - .map( - (node) => Padding( - padding: const EdgeInsets.symmetric(vertical: 4), - child: NodeCard( - key: Key("${node.id}_card_key"), - nodeId: node.id, - coin: coin, - popBackToRoute: popBackToRoute, - ), - ), - ) - .toList(), + ...nodes.map( + (node) => Padding( + padding: const EdgeInsets.symmetric(vertical: 4), + child: NodeCard( + key: Key("${node.id}_card_key"), + nodeId: node.id, + coin: coin, + popBackToRoute: popBackToRoute, + ), + ), + ), ], ); } diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart index 6fbf8df93..9eae180f9 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart @@ -32,9 +32,11 @@ import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; import 'package:stackwallet/wallets/wallet/impl/monero_wallet.dart'; @@ -57,12 +59,12 @@ import 'package:wakelock/wakelock.dart'; /// [eventBus] should only be set during testing class WalletNetworkSettingsView extends ConsumerStatefulWidget { const WalletNetworkSettingsView({ - Key? key, + super.key, required this.walletId, required this.initialSyncStatus, required this.initialNodeStatus, this.eventBus, - }) : super(key: key); + }); final String walletId; final WalletSyncStatus initialSyncStatus; @@ -260,7 +262,7 @@ class _WalletNetworkSettingsViewState final coin = ref.read(pWalletCoin(widget.walletId)); - if (coin == Coin.monero || coin == Coin.wownero || coin == Coin.epicCash) { + if (coin is Monero || coin is Wownero || coin is Epiccash) { _blocksRemainingSubscription = eventBus.on().listen( (event) async { if (event.walletId == widget.walletId) { @@ -319,22 +321,22 @@ class _WalletNetworkSettingsViewState final coin = ref.watch(pWalletCoin(widget.walletId)); - if (coin == Coin.monero) { - double highestPercent = + if (coin is Monero) { + final double highestPercent = (ref.read(pWallets).getWallet(widget.walletId) as MoneroWallet) .highestPercentCached; if (_percent < highestPercent) { _percent = highestPercent.clamp(0.0, 1.0); } - } else if (coin == Coin.wownero) { - double highestPercent = + } else if (coin is Wownero) { + final double highestPercent = (ref.watch(pWallets).getWallet(widget.walletId) as WowneroWallet) .highestPercentCached; if (_percent < highestPercent) { _percent = highestPercent.clamp(0.0, 1.0); } - } else if (coin == Coin.epicCash) { - double highestPercent = + } else if (coin is Epiccash) { + final double highestPercent = (ref.watch(pWallets).getWallet(widget.walletId) as EpiccashWallet) .highestPercent; if (_percent < highestPercent) { @@ -360,7 +362,7 @@ class _WalletNetworkSettingsViewState style: STextStyles.navBarTitle(context), ), actions: [ - if (ref.watch(pWalletCoin(widget.walletId)) != Coin.epicCash) + if (ref.watch(pWalletCoin(widget.walletId)) is! Epiccash) Padding( padding: const EdgeInsets.only( top: 10, @@ -371,7 +373,8 @@ class _WalletNetworkSettingsViewState aspectRatio: 1, child: AppBarIconButton( key: const Key( - "walletNetworkSettingsAddNewNodeViewButton"), + "walletNetworkSettingsAddNewNodeViewButton", + ), size: 36, shadows: const [], color: Theme.of(context) @@ -402,8 +405,8 @@ class _WalletNetworkSettingsViewState .extension()! .popupBG, borderRadius: BorderRadius.circular( - Constants - .size.circularBorderRadius), + Constants.size.circularBorderRadius, + ), // boxShadow: [CFColors.standardBoxShadow], boxShadow: const [], ), @@ -431,7 +434,8 @@ class _WalletNetworkSettingsViewState child: Text( "Rescan blockchain", style: STextStyles.baseXS( - context), + context, + ), ), ), ), @@ -620,9 +624,9 @@ class _WalletNetworkSettingsViewState .accentColorYellow, ), ), - if (coin == Coin.monero || - coin == Coin.wownero || - coin == Coin.epicCash) + if (coin is Monero || + coin is Wownero || + coin is Epiccash) Text( " (Blocks to go: ${_blocksRemaining == -1 ? "?" : _blocksRemaining})", style: STextStyles.syncPercent(context) @@ -633,7 +637,7 @@ class _WalletNetworkSettingsViewState ), ), ], - ) + ), ], ), ), @@ -768,8 +772,9 @@ class _WalletNetworkSettingsViewState : STextStyles.smallMed12(context), ), CustomTextButton( - text: ref.watch(prefsChangeNotifierProvider - .select((value) => value.useTor)) + text: ref.watch( + prefsChangeNotifierProvider.select((value) => value.useTor), + ) ? "Disconnect" : "Connect", onTap: onTorTapped, @@ -787,8 +792,9 @@ class _WalletNetworkSettingsViewState isDesktop ? const EdgeInsets.all(16) : const EdgeInsets.all(12), child: Row( children: [ - if (ref.watch(prefsChangeNotifierProvider - .select((value) => value.useTor))) + if (ref.watch( + prefsChangeNotifierProvider.select((value) => value.useTor), + )) Container( width: _iconSize, height: _iconSize, @@ -810,8 +816,9 @@ class _WalletNetworkSettingsViewState ), ), ), - if (!ref.watch(prefsChangeNotifierProvider - .select((value) => value.useTor))) + if (!ref.watch( + prefsChangeNotifierProvider.select((value) => value.useTor), + )) Container( width: _iconSize, height: _iconSize, @@ -916,13 +923,11 @@ class _WalletNetworkSettingsViewState coin: ref.watch(pWalletCoin(widget.walletId)), popBackToRoute: WalletNetworkSettingsView.routeName, ), - if (isDesktop && - ref.watch(pWalletCoin(widget.walletId)) != Coin.epicCash) + if (isDesktop && ref.watch(pWalletCoin(widget.walletId)) is! Epiccash) const SizedBox( height: 32, ), - if (isDesktop && - ref.watch(pWalletCoin(widget.walletId)) != Coin.epicCash) + if (isDesktop && ref.watch(pWalletCoin(widget.walletId)) is! Epiccash) Padding( padding: const EdgeInsets.only( bottom: 12, @@ -938,8 +943,7 @@ class _WalletNetworkSettingsViewState ], ), ), - if (isDesktop && - ref.watch(pWalletCoin(widget.walletId)) != Coin.epicCash) + if (isDesktop && ref.watch(pWalletCoin(widget.walletId)) is! Epiccash) RoundedWhiteContainer( borderColor: isDesktop ? Theme.of(context).extension()!.background @@ -987,8 +991,8 @@ class _WalletNetworkSettingsViewState Text( "Advanced", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -997,10 +1001,11 @@ class _WalletNetworkSettingsViewState Text( "Rescan blockchain", style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), ), ], - ) + ), ], ), SvgPicture.asset( diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart index 66dfb8c23..63130bbdd 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart @@ -36,10 +36,13 @@ import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_ import 'package:stackwallet/services/event_bus/global_event_bus.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/show_loading.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; @@ -64,7 +67,7 @@ class WalletSettingsView extends ConsumerStatefulWidget { static const String routeName = "/walletSettings"; final String walletId; - final Coin coin; + final CryptoCurrency coin; final WalletSyncStatus initialSyncStatus; final NodeConnectionStatus initialNodeStatus; final EventBus? eventBus; @@ -75,7 +78,7 @@ class WalletSettingsView extends ConsumerStatefulWidget { class _WalletSettingsViewState extends ConsumerState { late final String walletId; - late final Coin coin; + late final CryptoCurrency coin; late String xpub; late final bool xPubEnabled; @@ -206,11 +209,11 @@ class _WalletSettingsViewState extends ConsumerState { ); }, ), - if (coin.isFrost) + if (coin is FrostCurrency) const SizedBox( height: 8, ), - if (coin.isFrost) + if (coin is FrostCurrency) SettingsListButton( iconAssetName: Assets.svg.addressBook2, iconSize: 16, @@ -376,11 +379,11 @@ class _WalletSettingsViewState extends ConsumerState { ); }, ), - if (coin == Coin.firo) + if (coin is Firo) const SizedBox( height: 8, ), - if (coin == Coin.firo) + if (coin is Firo) Consumer( builder: (_, ref, __) { return SettingsListButton( @@ -419,7 +422,7 @@ class _WalletSettingsViewState extends ConsumerState { ), DB.instance .clearSharedTransactionCache( - coin: coin, + currency: coin, ), ], ), @@ -431,11 +434,11 @@ class _WalletSettingsViewState extends ConsumerState { ); }, ), - if (coin == Coin.nano || coin == Coin.banano) + if (coin is NanoCurrency) const SizedBox( height: 8, ), - if (coin == Coin.nano || coin == Coin.banano) + if (coin is NanoCurrency) Consumer( builder: (_, ref, __) { return SettingsListButton( diff --git a/lib/pages/token_view/sub_widgets/my_token_select_item.dart b/lib/pages/token_view/sub_widgets/my_token_select_item.dart index 2fd42300d..af76effde 100644 --- a/lib/pages/token_view/sub_widgets/my_token_select_item.dart +++ b/lib/pages/token_view/sub_widgets/my_token_select_item.dart @@ -21,10 +21,11 @@ import 'package:stackwallet/services/ethereum/cached_eth_token_balance.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/show_loading.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; import 'package:stackwallet/wallets/isar/providers/eth/token_balance_provider.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; @@ -178,7 +179,10 @@ class _MyTokenSelectItemState extends ConsumerState { ), const Spacer(), Text( - ref.watch(pAmountFormatter(Coin.ethereum)).format( + ref + .watch(pAmountFormatter( + Ethereum(CryptoCurrencyNetwork.main))) + .format( ref .watch(pTokenBalance( ( diff --git a/lib/pages/token_view/sub_widgets/token_summary.dart b/lib/pages/token_view/sub_widgets/token_summary.dart index a852d0954..f4c97b960 100644 --- a/lib/pages/token_view/sub_widgets/token_summary.dart +++ b/lib/pages/token_view/sub_widgets/token_summary.dart @@ -30,8 +30,9 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; import 'package:stackwallet/wallets/isar/providers/eth/token_balance_provider.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; @@ -41,10 +42,10 @@ import 'package:tuple/tuple.dart'; class TokenSummary extends ConsumerWidget { const TokenSummary({ - Key? key, + super.key, required this.walletId, required this.initialSyncStatus, - }) : super(key: key); + }); final String walletId; final WalletSyncStatus initialSyncStatus; @@ -54,7 +55,8 @@ class TokenSummary extends ConsumerWidget { final token = ref.watch(pCurrentTokenWallet.select((value) => value!.tokenContract)); final balance = ref.watch( - pTokenBalance((walletId: walletId, contractAddress: token.address))); + pTokenBalance((walletId: walletId, contractAddress: token.address)), + ); return Stack( children: [ @@ -96,7 +98,13 @@ class TokenSummary extends ConsumerWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - ref.watch(pAmountFormatter(Coin.ethereum)).format( + ref + .watch( + pAmountFormatter( + Ethereum(CryptoCurrencyNetwork.main), + ), + ) + .format( balance.total, ethContract: token, ), @@ -173,13 +181,14 @@ class TokenSummary extends ConsumerWidget { class TokenWalletOptions extends ConsumerWidget { const TokenWalletOptions({ - Key? key, + super.key, required this.walletId, required this.tokenContract, - }) : super(key: key); + }); final String walletId; final EthContract tokenContract; + CryptoCurrency get ethereum => Ethereum(CryptoCurrencyNetwork.main); void _onExchangePressed(BuildContext context) async { unawaited( @@ -187,7 +196,7 @@ class TokenWalletOptions extends ConsumerWidget { WalletInitiatedExchangeView.routeName, arguments: Tuple3( walletId, - Coin.ethereum, + ethereum, tokenContract, ), ), @@ -199,7 +208,7 @@ class TokenWalletOptions extends ConsumerWidget { Navigator.of(context).pushNamed( BuyInWalletView.routeName, arguments: Tuple2( - Coin.ethereum, + ethereum, tokenContract, ), ), @@ -233,7 +242,7 @@ class TokenWalletOptions extends ConsumerWidget { TokenSendView.routeName, arguments: Tuple3( walletId, - Coin.ethereum, + ethereum, tokenContract, ), ); @@ -268,11 +277,11 @@ class TokenWalletOptions extends ConsumerWidget { class TokenOptionsButton extends StatelessWidget { const TokenOptionsButton({ - Key? key, + super.key, required this.onPressed, required this.subLabel, required this.iconAssetPathSVG, - }) : super(key: key); + }); final VoidCallback onPressed; final String subLabel; @@ -344,7 +353,7 @@ class TokenOptionsButton extends StatelessWidget { .extension()! .tokenSummaryTextPrimary, ), - ) + ), ], ); } diff --git a/lib/pages/wallet_view/sub_widgets/transactions_list.dart b/lib/pages/wallet_view/sub_widgets/transactions_list.dart index d3886378e..dd89c74b1 100644 --- a/lib/pages/wallet_view/sub_widgets/transactions_list.dart +++ b/lib/pages/wallet_view/sub_widgets/transactions_list.dart @@ -23,9 +23,9 @@ import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/route_generator.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; @@ -36,9 +36,9 @@ import 'package:tuple/tuple.dart'; class TransactionsList extends ConsumerStatefulWidget { const TransactionsList({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -80,7 +80,7 @@ class _TransactionsListState extends ConsumerState { BuildContext context, Transaction tx, BorderRadius? radius, - Coin coin, + CryptoCurrency coin, int chainHeight, ) { final matchingTrades = ref diff --git a/lib/pages/wallet_view/sub_widgets/tx_icon.dart b/lib/pages/wallet_view/sub_widgets/tx_icon.dart index 11920f7c2..b8bfa2c1a 100644 --- a/lib/pages/wallet_view/sub_widgets/tx_icon.dart +++ b/lib/pages/wallet_view/sub_widgets/tx_icon.dart @@ -19,19 +19,19 @@ import 'package:stackwallet/models/isar/stack_theme.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class TxIcon extends ConsumerWidget { const TxIcon({ - Key? key, + super.key, required this.transaction, required this.currentHeight, required this.coin, - }) : super(key: key); + }); final Object transaction; final int currentHeight; - final Coin coin; + final CryptoCurrency coin; static const Size size = Size(32, 32); diff --git a/lib/pages/wallet_view/sub_widgets/wallet_balance_toggle_sheet.dart b/lib/pages/wallet_view/sub_widgets/wallet_balance_toggle_sheet.dart index af0eca1c6..27d2ba4a1 100644 --- a/lib/pages/wallet_view/sub_widgets/wallet_balance_toggle_sheet.dart +++ b/lib/pages/wallet_view/sub_widgets/wallet_balance_toggle_sheet.dart @@ -17,9 +17,10 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/wallet_balance_toggle_state.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; enum _BalanceType { @@ -44,7 +45,7 @@ class WalletBalanceToggleSheet extends ConsumerWidget { final maxHeight = MediaQuery.of(context).size.height * 0.90; final coin = ref.watch(pWalletCoin(walletId)); - final isFiro = coin == Coin.firo || coin == Coin.firoTestNet; + final isFiro = coin is Firo; final balance = ref.watch(pWalletBalance(walletId)); @@ -305,7 +306,7 @@ class BalanceSelector extends ConsumerWidget { }); final String title; - final Coin coin; + final CryptoCurrency coin; final Amount balance; final VoidCallback onPressed; final void Function(T?) onChanged; diff --git a/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart b/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart index fa01d1ac6..9a6999ae4 100644 --- a/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart +++ b/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart @@ -26,19 +26,20 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/wallet_balance_toggle_state.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/impl/banano_wallet.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; class WalletSummaryInfo extends ConsumerWidget { const WalletSummaryInfo({ - Key? key, + super.key, required this.walletId, required this.initialSyncStatus, - }) : super(key: key); + }); final String walletId; final WalletSyncStatus initialSyncStatus; @@ -86,7 +87,7 @@ class WalletSummaryInfo extends ConsumerWidget { final Amount balanceToShow; final String title; - if (coin == Coin.firo || coin == Coin.firoTestNet) { + if (coin is Firo) { final type = ref.watch(publicPrivateBalanceStateProvider.state).state; title = "${_showAvailable ? "Available" : "Full"} ${type.name.capitalize()} balance"; @@ -113,7 +114,7 @@ class WalletSummaryInfo extends ConsumerWidget { List? imageBytes; - if (coin == Coin.banano) { + if (coin is Banano) { imageBytes = (ref.watch(pWallets).getWallet(walletId) as BananoWallet) .getMonkeyImageBytes(); } diff --git a/lib/pages/wallet_view/transaction_views/all_transactions_view.dart b/lib/pages/wallet_view/transaction_views/all_transactions_view.dart index a1f177457..1851acb4a 100644 --- a/lib/pages/wallet_view/transaction_views/all_transactions_view.dart +++ b/lib/pages/wallet_view/transaction_views/all_transactions_view.dart @@ -31,10 +31,11 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -58,9 +59,9 @@ typedef _GroupedTransactions = ({ class AllTransactionsView extends ConsumerStatefulWidget { const AllTransactionsView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/allTransactions"; @@ -830,10 +831,10 @@ class TransactionFilterOptionBarItem extends StatelessWidget { class DesktopTransactionCardRow extends ConsumerStatefulWidget { const DesktopTransactionCardRow({ - Key? key, + super.key, required this.transaction, required this.walletId, - }) : super(key: key); + }); final Transaction transaction; final String walletId; @@ -849,8 +850,8 @@ class _DesktopTransactionCardRowState late final String walletId; late final int minConfirms; - String whatIsIt(TransactionType type, Coin coin, int height) { - if (coin == Coin.epicCash && _transaction.slateId == null) { + String whatIsIt(TransactionType type, CryptoCurrency coin, int height) { + if (coin is Epiccash && _transaction.slateId == null) { return "Restored Funds"; } @@ -934,7 +935,7 @@ class _DesktopTransactionCardRowState ), ), onPressed: () async { - if (coin == Coin.epicCash && _transaction.slateId == null) { + if (coin is Epiccash && _transaction.slateId == null) { unawaited( showFloatingFlushBar( context: context, diff --git a/lib/pages/wallet_view/transaction_views/transaction_details_view.dart b/lib/pages/wallet_view/transaction_views/transaction_details_view.dart index 82a29b087..a0d6afff2 100644 --- a/lib/pages/wallet_view/transaction_views/transaction_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/transaction_details_view.dart @@ -32,11 +32,19 @@ import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/block_explorers.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; import 'package:stackwallet/widgets/background.dart'; @@ -56,17 +64,17 @@ import 'package:url_launcher/url_launcher.dart'; class TransactionDetailsView extends ConsumerStatefulWidget { const TransactionDetailsView({ - Key? key, + super.key, required this.transaction, required this.walletId, required this.coin, - }) : super(key: key); + }); static const String routeName = "/transactionDetails"; final Transaction transaction; final String walletId; - final Coin coin; + final CryptoCurrency coin; @override ConsumerState createState() => @@ -79,7 +87,7 @@ class _TransactionDetailsViewState late Transaction _transaction; late final String walletId; - late final Coin coin; + late final CryptoCurrency coin; late final Amount amount; late final Amount fee; late final String amountPrefix; @@ -104,10 +112,9 @@ class _TransactionDetailsViewState .minConfirms; coin = widget.coin; amount = _transaction.realAmount; - fee = _transaction.fee.toAmountAsRaw(fractionDigits: coin.decimals); + fee = _transaction.fee.toAmountAsRaw(fractionDigits: coin.fractionDigits); - if ((coin == Coin.firo || coin == Coin.firoTestNet) && - _transaction.subType == TransactionSubType.mint) { + if ((coin is Firo) && _transaction.subType == TransactionSubType.mint) { amountPrefix = ""; } else { amountPrefix = _transaction.type == TransactionType.outgoing ? "-" : "+"; @@ -119,7 +126,7 @@ class _TransactionDetailsViewState unit = isTokenTx ? ethContract!.symbol : coin.ticker; - // if (coin == Coin.firo || coin == Coin.firoTestNet) { + // if (coin is Firo) { // showFeePending = true; // } else { // showFeePending = false; @@ -134,7 +141,7 @@ class _TransactionDetailsViewState String whatIsIt(Transaction tx, int height) { final type = tx.type; - if (coin == Coin.firo || coin == Coin.firoTestNet) { + if (coin is Firo) { if (tx.subType == TransactionSubType.mint) { if (tx.isConfirmed(height, minConfirms)) { return "Minted"; @@ -144,7 +151,7 @@ class _TransactionDetailsViewState } } - if (coin == Coin.epicCash) { + if (coin is Epiccash) { if (_transaction.isCancelled) { return "Cancelled"; } else if (type == TransactionType.incoming) { @@ -202,9 +209,10 @@ class _TransactionDetailsViewState } try { final contacts = ref.read(addressBookServiceProvider).contacts.where( - (element) => element.addresses - .where((element) => element.address == address) - .isNotEmpty); + (element) => element.addresses + .where((element) => element.address == address) + .isNotEmpty, + ); if (contacts.isNotEmpty) { return contacts.first.name; } else { @@ -218,20 +226,23 @@ class _TransactionDetailsViewState Future showExplorerWarning(String explorer) async { final bool? shouldContinue = await showDialog( - context: context, - barrierDismissible: false, - builder: (_) { - if (!isDesktop) { - return StackDialog( - title: "Attention", - message: - "You are about to view this transaction in a block explorer. The explorer may log your IP address and link it to the transaction. Only proceed if you trust $explorer.", - icon: Row( - children: [ - Consumer(builder: (_, ref, __) { + context: context, + barrierDismissible: false, + builder: (_) { + if (!isDesktop) { + return StackDialog( + title: "Attention", + message: + "You are about to view this transaction in a block explorer. The explorer may log your IP address and link it to the transaction. Only proceed if you trust $explorer.", + icon: Row( + children: [ + Consumer( + builder: (_, ref, __) { return Checkbox( - value: ref.watch(prefsChangeNotifierProvider - .select((value) => value.hideBlockExplorerWarning)), + value: ref.watch( + prefsChangeNotifierProvider + .select((value) => value.hideBlockExplorerWarning), + ), onChanged: (value) { if (value is bool) { ref @@ -241,61 +252,65 @@ class _TransactionDetailsViewState } }, ); - }), - Text( - "Never show again", - style: STextStyles.smallMed14(context), - ) - ], - ), - leftButton: TextButton( - onPressed: () { - Navigator.of(context).pop(false); - }, - child: Text( - "Cancel", - style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + }, + ), + Text( + "Never show again", + style: STextStyles.smallMed14(context), + ), + ], + ), + leftButton: TextButton( + onPressed: () { + Navigator.of(context).pop(false); + }, + child: Text( + "Cancel", + style: STextStyles.button(context).copyWith( + color: Theme.of(context) + .extension()! + .accentColorDark, ), ), - rightButton: TextButton( - style: Theme.of(context) - .extension()! - .getPrimaryEnabledButtonStyle(context), - onPressed: () { - Navigator.of(context).pop(true); - }, - child: Text( - "Continue", - style: STextStyles.button(context), - ), + ), + rightButton: TextButton( + style: Theme.of(context) + .extension()! + .getPrimaryEnabledButtonStyle(context), + onPressed: () { + Navigator.of(context).pop(true); + }, + child: Text( + "Continue", + style: STextStyles.button(context), ), - ); - } else { - return DesktopDialog( - maxWidth: 550, - maxHeight: 300, - child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 32, vertical: 20), - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - "Attention", - style: STextStyles.desktopH2(context), - ), - Row( - children: [ - Consumer(builder: (_, ref, __) { + ), + ); + } else { + return DesktopDialog( + maxWidth: 550, + maxHeight: 300, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 20), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Attention", + style: STextStyles.desktopH2(context), + ), + Row( + children: [ + Consumer( + builder: (_, ref, __) { return Checkbox( - value: ref.watch(prefsChangeNotifierProvider - .select((value) => - value.hideBlockExplorerWarning)), + value: ref.watch( + prefsChangeNotifierProvider.select( + (value) => value.hideBlockExplorerWarning, + ), + ), onChanged: (value) { if (value is bool) { ref @@ -305,55 +320,57 @@ class _TransactionDetailsViewState } }, ); - }), - Text( - "Never show again", - style: STextStyles.smallMed14(context), - ) - ], - ), - ], - ), - const SizedBox(height: 16), - Text( - "You are about to view this transaction in a block explorer. The explorer may log your IP address and link it to the transaction. Only proceed if you trust $explorer.", - style: STextStyles.desktopTextSmall(context), - ), - const SizedBox(height: 35), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SecondaryButton( - width: 200, - buttonHeight: ButtonHeight.l, - label: "Cancel", - onPressed: () { - Navigator.of( - context, - rootNavigator: true, - ).pop(false); - }, - ), - const SizedBox(width: 20), - PrimaryButton( - width: 200, - buttonHeight: ButtonHeight.l, - label: "Continue", - onPressed: () { - Navigator.of( - context, - rootNavigator: true, - ).pop(true); - }, - ), - ], - ), - ], - ), + }, + ), + Text( + "Never show again", + style: STextStyles.smallMed14(context), + ), + ], + ), + ], + ), + const SizedBox(height: 16), + Text( + "You are about to view this transaction in a block explorer. The explorer may log your IP address and link it to the transaction. Only proceed if you trust $explorer.", + style: STextStyles.desktopTextSmall(context), + ), + const SizedBox(height: 35), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SecondaryButton( + width: 200, + buttonHeight: ButtonHeight.l, + label: "Cancel", + onPressed: () { + Navigator.of( + context, + rootNavigator: true, + ).pop(false); + }, + ), + const SizedBox(width: 20), + PrimaryButton( + width: 200, + buttonHeight: ButtonHeight.l, + label: "Continue", + onPressed: () { + Navigator.of( + context, + rootNavigator: true, + ).pop(true); + }, + ), + ], + ), + ], ), - ); - } - }); + ), + ); + } + }, + ); return shouldContinue ?? false; } @@ -474,7 +491,7 @@ class _TransactionDetailsViewState ), SelectableText( _transaction.isCancelled - ? coin == Coin.ethereum + ? coin is Ethereum ? "Failed" : "Cancelled" : whatIsIt( @@ -483,7 +500,8 @@ class _TransactionDetailsViewState ), style: STextStyles.desktopTextMedium( - context), + context, + ), ), ], ), @@ -496,37 +514,43 @@ class _TransactionDetailsViewState "$amountPrefix${ref.watch(pAmountFormatter(coin)).format(amount, ethContract: ethContract)}", style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension< StackColors>()! .textDark, ) : STextStyles.titleBold12( - context), + context, + ), ), const SizedBox( height: 2, ), if (ref.watch( - prefsChangeNotifierProvider - .select((value) => - value.externalCalls))) + prefsChangeNotifierProvider.select( + (value) => value.externalCalls, + ), + )) SelectableText( "$amountPrefix${(amount.decimal * ref.watch( - priceAnd24hChangeNotifierProvider.select( - (value) => isTokenTx - ? value - .getTokenPrice( - _transaction - .otherData!) - .item1 - : value - .getPrice( - coin) - .item1), + priceAnd24hChangeNotifierProvider + .select( + (value) => isTokenTx + ? value + .getTokenPrice( + _transaction + .otherData!, + ) + .item1 + : value + .getPrice( + coin, + ) + .item1, + ), )).toAmount(fractionDigits: 2).fiatString( locale: ref.watch( localeServiceChangeNotifierProvider @@ -543,9 +567,11 @@ class _TransactionDetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle( - context), + context, + ), ), ], ), @@ -587,7 +613,7 @@ class _TransactionDetailsViewState // child: SelectableText( _transaction.isCancelled - ? coin == Coin.ethereum + ? coin is Ethereum ? "Failed" : "Cancelled" : whatIsIt( @@ -596,9 +622,9 @@ class _TransactionDetailsViewState ), style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: _transaction.type == TransactionType.outgoing ? Theme.of(context) @@ -615,12 +641,10 @@ class _TransactionDetailsViewState ], ), ), - if (!((coin == Coin.monero || - coin == Coin.wownero) && + if (!((coin is Monero || coin is Wownero) && _transaction.type == TransactionType.outgoing) && - !((coin == Coin.firo || - coin == Coin.firoTestNet) && + !((coin is Firo) && _transaction.subType == TransactionSubType.mint)) isDesktop @@ -628,12 +652,10 @@ class _TransactionDetailsViewState : const SizedBox( height: 12, ), - if (!((coin == Coin.monero || - coin == Coin.wownero) && + if (!((coin is Monero || coin is Wownero) && _transaction.type == TransactionType.outgoing) && - !((coin == Coin.firo || - coin == Coin.firoTestNet) && + !((coin is Firo) && _transaction.subType == TransactionSubType.mint)) RoundedWhiteContainer( @@ -694,7 +716,7 @@ class _TransactionDetailsViewState ); } }, - ) + ), ], ); }, @@ -706,9 +728,11 @@ class _TransactionDetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle( - context), + context, + ), ), ), const SizedBox( @@ -718,11 +742,14 @@ class _TransactionDetailsViewState TransactionType.incoming ? FutureBuilder( future: fetchContactNameFor( - _transaction.address - .value!.value), - builder: (builderContext, - AsyncSnapshot - snapshot) { + _transaction + .address.value!.value, + ), + builder: ( + builderContext, + AsyncSnapshot + snapshot, + ) { String addressOrContactName = _transaction.address @@ -738,18 +765,20 @@ class _TransactionDetailsViewState addressOrContactName, style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of( - context) + context, + ) .extension< StackColors>()! .textDark, ) : STextStyles .itemSubtitle12( - context), + context, + ), ); }, ) @@ -758,18 +787,20 @@ class _TransactionDetailsViewState .address.value!.value, style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of( - context) + context, + ) .extension< StackColors>()! .textDark, ) : STextStyles .itemSubtitle12( - context), + context, + ), ), ], ), @@ -781,13 +812,13 @@ class _TransactionDetailsViewState ], ), ), - if (coin == Coin.epicCash) + if (coin is Epiccash) isDesktop ? const _Divider() : const SizedBox( height: 12, ), - if (coin == Coin.epicCash) + if (coin is Epiccash) RoundedWhiteContainer( padding: isDesktop ? const EdgeInsets.all(16) @@ -807,9 +838,11 @@ class _TransactionDetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle( - context), + context, + ), ), const SizedBox( height: 8, @@ -818,16 +851,17 @@ class _TransactionDetailsViewState _transaction.otherData ?? "", style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension< StackColors>()! .textDark, ) : STextStyles.itemSubtitle12( - context), + context, + ), ), ], ), @@ -856,13 +890,14 @@ class _TransactionDetailsViewState MainAxisAlignment.spaceBetween, children: [ Text( - (coin == Coin.epicCash) + (coin is Epiccash) ? "Local Note" : "Note ", style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle(context), ), isDesktop @@ -910,7 +945,8 @@ class _TransactionDetailsViewState Text( "Edit", style: STextStyles.link2( - context), + context, + ), ), ], ), @@ -934,9 +970,9 @@ class _TransactionDetailsViewState "", style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -969,7 +1005,8 @@ class _TransactionDetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle(context), ), if (isDesktop) @@ -983,15 +1020,16 @@ class _TransactionDetailsViewState ), style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, ) : STextStyles.itemSubtitle12( - context), + context, + ), ), ], ), @@ -1002,9 +1040,9 @@ class _TransactionDetailsViewState ), style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -1020,36 +1058,138 @@ class _TransactionDetailsViewState ], ), ), - if (coin != Coin.banano && coin != Coin.nano) + if (coin is! NanoCurrency) isDesktop ? const _Divider() : const SizedBox( height: 12, ), - if (coin != Coin.banano && coin != Coin.nano) + if (coin is! NanoCurrency) RoundedWhiteContainer( padding: isDesktop ? const EdgeInsets.all(16) : const EdgeInsets.all(12), - child: Builder(builder: (context) { - String feeString = showFeePending - ? _transaction.isConfirmed( - currentHeight, - minConfirms, - ) - ? ref - .watch(pAmountFormatter(coin)) - .format( - fee, - withUnitName: isTokenTx, - ) - : "Pending" - : ref - .watch(pAmountFormatter(coin)) - .format( - fee, - withUnitName: isTokenTx, - ); + child: Builder( + builder: (context) { + String feeString = showFeePending + ? _transaction.isConfirmed( + currentHeight, + minConfirms, + ) + ? ref + .watch(pAmountFormatter(coin)) + .format( + fee, + withUnitName: isTokenTx, + ) + : "Pending" + : ref + .watch(pAmountFormatter(coin)) + .format( + fee, + withUnitName: isTokenTx, + ); + + return Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Transaction fee", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ) + : STextStyles.itemSubtitle( + context, + ), + ), + if (isDesktop) + const SizedBox( + height: 2, + ), + if (isDesktop) + SelectableText( + feeString, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension< + StackColors>()! + .textDark, + ) + : STextStyles + .itemSubtitle12( + context, + ), + ), + ], + ), + if (!isDesktop) + SelectableText( + feeString, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension< + StackColors>()! + .textDark, + ) + : STextStyles.itemSubtitle12( + context, + ), + ), + if (isDesktop) + IconCopyButton(data: feeString), + ], + ); + }, + ), + ), + isDesktop + ? const _Divider() + : const SizedBox( + height: 12, + ), + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(16) + : const EdgeInsets.all(12), + child: Builder( + builder: (context) { + final String height; + + if (widget.coin is Bitcoincash || + widget.coin is Ecash) { + height = + "${_transaction.height != null && _transaction.height! > 0 ? _transaction.height! : "Pending"}"; + } else { + height = widget.coin is! Epiccash && + _transaction.isConfirmed( + currentHeight, + minConfirms, + ) + ? "${_transaction.height == 0 ? "Unknown" : _transaction.height}" + : _transaction.getConfirmations( + currentHeight, + ) > + 0 + ? "${_transaction.height}" + : "Pending"; + } return Row( mainAxisAlignment: @@ -1062,13 +1202,15 @@ class _TransactionDetailsViewState CrossAxisAlignment.start, children: [ Text( - "Transaction fee", + "Block height", style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle( - context), + context, + ), ), if (isDesktop) const SizedBox( @@ -1076,141 +1218,53 @@ class _TransactionDetailsViewState ), if (isDesktop) SelectableText( - feeString, + height, style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension< StackColors>()! .textDark, ) : STextStyles.itemSubtitle12( - context), + context, + ), ), ], ), if (!isDesktop) SelectableText( - feeString, + height, style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, ) : STextStyles.itemSubtitle12( - context), + context, + ), ), if (isDesktop) - IconCopyButton(data: feeString) + IconCopyButton(data: height), ], ); - }), + }, ), - isDesktop - ? const _Divider() - : const SizedBox( - height: 12, - ), - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(16) - : const EdgeInsets.all(12), - child: Builder(builder: (context) { - final String height; - - if (widget.coin == Coin.bitcoincash || - widget.coin == Coin.eCash || - widget.coin == Coin.bitcoincashTestnet) { - height = - "${_transaction.height != null && _transaction.height! > 0 ? _transaction.height! : "Pending"}"; - } else { - height = widget.coin != Coin.epicCash && - _transaction.isConfirmed( - currentHeight, - minConfirms, - ) - ? "${_transaction.height == 0 ? "Unknown" : _transaction.height}" - : _transaction.getConfirmations( - currentHeight) > - 0 - ? "${_transaction.height}" - : "Pending"; - } - - return Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - "Block height", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context) - : STextStyles.itemSubtitle( - context), - ), - if (isDesktop) - const SizedBox( - height: 2, - ), - if (isDesktop) - SelectableText( - height, - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension< - StackColors>()! - .textDark, - ) - : STextStyles.itemSubtitle12( - context), - ), - ], - ), - if (!isDesktop) - SelectableText( - height, - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark, - ) - : STextStyles.itemSubtitle12( - context), - ), - if (isDesktop) IconCopyButton(data: height), - ], - ); - }), ), - if (coin == Coin.ethereum) + if (coin is Ethereum) isDesktop ? const _Divider() : const SizedBox( height: 12, ), - if (coin == Coin.ethereum) + if (coin is Ethereum) RoundedWhiteContainer( padding: isDesktop ? const EdgeInsets.all(16) @@ -1225,16 +1279,17 @@ class _TransactionDetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle(context), ), SelectableText( _transaction.nonce.toString(), style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -1265,16 +1320,17 @@ class _TransactionDetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle(context), ), SelectableText( _transaction.subType.toString(), style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -1308,9 +1364,11 @@ class _TransactionDetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle( - context), + context, + ), ), const SizedBox( height: 8, @@ -1323,21 +1381,22 @@ class _TransactionDetailsViewState _transaction.txid, style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, ) : STextStyles.itemSubtitle12( - context), + context, + ), ), - if (coin != Coin.epicCash) + if (coin is! Epiccash) const SizedBox( height: 8, ), - if (coin != Coin.epicCash) + if (coin is! Epiccash) CustomTextButton( text: "Open in block explorer", onTap: () async { @@ -1349,12 +1408,14 @@ class _TransactionDetailsViewState if (ref .read( - prefsChangeNotifierProvider) + prefsChangeNotifierProvider, + ) .hideBlockExplorerWarning == false) { final shouldContinue = await showExplorerWarning( - "${uri.scheme}://${uri.host}"); + "${uri.scheme}://${uri.host}", + ); if (!shouldContinue) { return; @@ -1415,12 +1476,12 @@ class _TransactionDetailsViewState ], ), ), - // if ((coin == Coin.firoTestNet || coin == Coin.firo) && + // if ((coin is FiroTestNet || coin is Firo) && // _transaction.subType == "mint") // const SizedBox( // height: 12, // ), - // if ((coin == Coin.firoTestNet || coin == Coin.firo) && + // if ((coin is FiroTestNet || coin is Firo) && // _transaction.subType == "mint") // RoundedWhiteContainer( // child: Column( @@ -1492,13 +1553,13 @@ class _TransactionDetailsViewState // ], // ), // ), - if (coin == Coin.epicCash) + if (coin is Epiccash) isDesktop ? const _Divider() : const SizedBox( height: 12, ), - if (coin == Coin.epicCash) + if (coin is Epiccash) RoundedWhiteContainer( padding: isDesktop ? const EdgeInsets.all(16) @@ -1517,9 +1578,11 @@ class _TransactionDetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle( - context), + context, + ), ), // Flexible( // child: FittedBox( @@ -1529,15 +1592,16 @@ class _TransactionDetailsViewState _transaction.slateId ?? "Unknown", style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, ) : STextStyles.itemSubtitle12( - context), + context, + ), ), // ), // ), @@ -1569,7 +1633,7 @@ class _TransactionDetailsViewState ), ), floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat, - floatingActionButton: (coin == Coin.epicCash && + floatingActionButton: (coin is Epiccash && _transaction.getConfirmations(currentHeight) < 1 && _transaction.isCancelled == false) ? ConditionalParent( @@ -1595,20 +1659,24 @@ class _TransactionDetailsViewState if (wallet is EpiccashWallet) { final String? id = _transaction.slateId; if (id == null) { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "Could not find Epic transaction ID", - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Could not find Epic transaction ID", + context: context, + ), + ); return; } - unawaited(showDialog( - barrierDismissible: false, - context: context, - builder: (_) => - const CancellingTransactionProgressDialog(), - )); + unawaited( + showDialog( + barrierDismissible: false, + context: context, + builder: (_) => + const CancellingTransactionProgressDialog(), + ), + ); final result = await wallet.cancelPendingTransactionAndPost(id); @@ -1624,8 +1692,10 @@ class _TransactionDetailsViewState onOkPressed: (_) { wallet.refresh(); Navigator.of(context).popUntil( - ModalRoute.withName( - WalletView.routeName)); + ModalRoute.withName( + WalletView.routeName, + ), + ); }, ), ); @@ -1640,11 +1710,13 @@ class _TransactionDetailsViewState } } } else { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "ERROR: Wallet type is not Epic Cash", - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "ERROR: Wallet type is not Epic Cash", + context: context, + ), + ); return; } }, diff --git a/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart b/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart index 10d34771c..84bb7c2af 100644 --- a/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart +++ b/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart @@ -22,10 +22,10 @@ import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/amount/amount_input_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/date_picker/date_picker.dart'; @@ -46,7 +46,7 @@ class TransactionSearchFilterView extends ConsumerStatefulWidget { static const String routeName = "/transactionSearchFilter"; - final Coin coin; + final CryptoCurrency coin; @override ConsumerState createState() => @@ -665,7 +665,7 @@ class _TransactionSearchViewState ), inputFormatters: [ AmountInputFormatter( - decimals: widget.coin.decimals, + decimals: widget.coin.fractionDigits, unit: ref.watch(pAmountUnit(widget.coin)), locale: ref.watch( localeServiceChangeNotifierProvider @@ -896,9 +896,9 @@ class _TransactionSearchViewState if (amountText.isNotEmpty && !(amountText == "," || amountText == ".")) { amount = amountText.contains(",") ? Decimal.parse(amountText.replaceFirst(",", ".")) - .toAmount(fractionDigits: widget.coin.decimals) + .toAmount(fractionDigits: widget.coin.fractionDigits) : Decimal.parse(amountText) - .toAmount(fractionDigits: widget.coin.decimals); + .toAmount(fractionDigits: widget.coin.fractionDigits); } final TransactionFilter filter = TransactionFilter( diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart index 50a53291f..954285f0d 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart @@ -32,7 +32,6 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; @@ -59,10 +58,10 @@ typedef _GroupedTransactions = ({ class AllTransactionsV2View extends ConsumerStatefulWidget { const AllTransactionsV2View({ - Key? key, + super.key, required this.walletId, this.contractAddress, - }) : super(key: key); + }); static const String routeName = "/allTransactionsV2"; @@ -96,8 +95,10 @@ class _AllTransactionsV2ViewState extends ConsumerState { } // TODO: optimise search+filter - List filter( - {required List transactions, TransactionFilter? filter}) { + List filter({ + required List transactions, + TransactionFilter? filter, + }) { if (filter == null) { return transactions; } @@ -159,13 +160,15 @@ class _AllTransactionsV2ViewState extends ConsumerState { // check if address book name contains contains |= contacts - .where((e) => - e.addresses - .map((e) => e.address) - .toSet() - .intersection(tx.associatedAddresses()) - .isNotEmpty && - e.name.toLowerCase().contains(keyword)) + .where( + (e) => + e.addresses + .map((e) => e.address) + .toSet() + .intersection(tx.associatedAddresses()) + .isNotEmpty && + e.name.toLowerCase().contains(keyword), + ) .isNotEmpty; // check if address contains @@ -224,9 +227,9 @@ class _AllTransactionsV2ViewState extends ConsumerState { List<_GroupedTransactions> groupTransactionsByMonth( List transactions, ) { - Map map = {}; + final Map map = {}; - for (var tx in transactions) { + for (final tx in transactions) { final date = DateTime.fromMillisecondsSinceEpoch(tx.timestamp * 1000); final monthYear = "${Constants.monthMap[date.month]} ${date.year}"; if (map[monthYear] == null) { @@ -291,9 +294,10 @@ class _AllTransactionsV2ViewState extends ConsumerState { if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } - if (mounted) { + if (context.mounted) { Navigator.of(context).pop(); } }, @@ -494,32 +498,35 @@ class _AllTransactionsV2ViewState extends ConsumerState { .isar .transactionV2s .buildQuery( - whereClauses: [ - IndexWhereClause.equalTo( - indexName: 'walletId', - value: [widget.walletId], - ) - ], - filter: widget.contractAddress == null - ? ref - .watch(pWallets) - .getWallet(widget.walletId) - .transactionFilterOperation - : ref - .read(pCurrentTokenWallet)! - .transactionFilterOperation, - sortBy: [ - const SortProperty( - property: "timestamp", - sort: Sort.desc, - ), - ]) + whereClauses: [ + IndexWhereClause.equalTo( + indexName: 'walletId', + value: [widget.walletId], + ), + ], + filter: widget.contractAddress == null + ? ref + .watch(pWallets) + .getWallet(widget.walletId) + .transactionFilterOperation + : ref + .read(pCurrentTokenWallet)! + .transactionFilterOperation, + sortBy: [ + const SortProperty( + property: "timestamp", + sort: Sort.desc, + ), + ], + ) .findAll(), builder: (_, AsyncSnapshot> snapshot) { if (snapshot.connectionState == ConnectionState.done && snapshot.hasData) { final filtered = filter( - transactions: snapshot.data!, filter: criteria); + transactions: snapshot.data!, + filter: criteria, + ); final searched = search(_searchString, filtered); searched.sort((a, b) { @@ -571,7 +578,8 @@ class _AllTransactionsV2ViewState extends ConsumerState { padding: const EdgeInsets.all(4), child: DesktopTransactionCardRow( key: Key( - "transactionCard_key_${month.transactions[index].txid}"), + "transactionCard_key_${month.transactions[index].txid}", + ), transaction: month.transactions[index], walletId: walletId, @@ -587,7 +595,8 @@ class _AllTransactionsV2ViewState extends ConsumerState { ...month.transactions.map( (tx) => TransactionCardV2( key: Key( - "transactionCard_key_${tx.txid}"), + "transactionCard_key_${tx.txid}", + ), transaction: tx, ), ), @@ -789,9 +798,10 @@ class TransactionFilterOptionBarItem extends StatelessWidget { child: Container( height: 32, decoration: BoxDecoration( - color: - Theme.of(context).extension()!.buttonBackSecondary, - borderRadius: BorderRadius.circular(1000)), + color: + Theme.of(context).extension()!.buttonBackSecondary, + borderRadius: BorderRadius.circular(1000), + ), child: Padding( padding: const EdgeInsets.symmetric( horizontal: 14, @@ -882,7 +892,8 @@ class _DesktopTransactionCardRowState @override Widget build(BuildContext context) { final locale = ref.watch( - localeServiceChangeNotifierProvider.select((value) => value.locale)); + localeServiceChangeNotifierProvider.select((value) => value.locale), + ); final baseCurrency = ref .watch(prefsChangeNotifierProvider.select((value) => value.currency)); @@ -890,8 +901,10 @@ class _DesktopTransactionCardRowState final coin = ref.watch(pWalletCoin(walletId)); final price = ref - .watch(priceAnd24hChangeNotifierProvider - .select((value) => value.getPrice(coin))) + .watch( + priceAnd24hChangeNotifierProvider + .select((value) => value.getPrice(coin)), + ) .item1; late final String prefix; @@ -910,42 +923,48 @@ class _DesktopTransactionCardRowState final currentHeight = ref.watch(pWalletChainHeight(walletId)); final Amount amount; - final fractionDigits = ethContract?.decimals ?? coin.decimals; + final fractionDigits = ethContract?.decimals ?? coin.fractionDigits; if (_transaction.subType == TransactionSubType.cashFusion) { amount = _transaction.getAmountReceivedInThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); } else { switch (_transaction.type) { case TransactionType.outgoing: amount = _transaction.getAmountSentFromThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); break; case TransactionType.incoming: case TransactionType.sentToSelf: if (_transaction.subType == TransactionSubType.sparkMint) { amount = _transaction.getAmountSparkSelfMinted( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); } else if (_transaction.subType == TransactionSubType.sparkSpend) { final changeAddress = (ref.watch(pWallets).getWallet(walletId) as SparkInterface) .sparkChangeAddress; amount = Amount( rawValue: _transaction.outputs - .where((e) => - e.walletOwns && !e.addresses.contains(changeAddress)) + .where( + (e) => e.walletOwns && !e.addresses.contains(changeAddress), + ) .fold(BigInt.zero, (p, e) => p + e.value), - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ); } else { amount = _transaction.getAmountReceivedInThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); } break; case TransactionType.unknown: amount = _transaction.getAmountSentFromThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); break; } } @@ -1043,8 +1062,10 @@ class _DesktopTransactionCardRowState ), ), ), - if (ref.watch(prefsChangeNotifierProvider - .select((value) => value.externalCalls))) + if (ref.watch( + prefsChangeNotifierProvider + .select((value) => value.externalCalls), + )) Expanded( flex: 4, child: Text( diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/fusion_group_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/fusion_group_details_view.dart index 874d1fdba..b0094539f 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/fusion_group_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/fusion_group_details_view.dart @@ -14,9 +14,9 @@ import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2 import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; @@ -24,17 +24,17 @@ import 'package:stackwallet/widgets/rounded_white_container.dart'; class FusionGroupDetailsView extends ConsumerStatefulWidget { const FusionGroupDetailsView({ - Key? key, + super.key, required this.transactions, required this.walletId, required this.coin, - }) : super(key: key); + }); static const String routeName = "/fusionGroupDetailsView"; final List transactions; final String walletId; - final Coin coin; + final CryptoCurrency coin; @override ConsumerState createState() => diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart index 1401625c9..0ae867544 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart @@ -15,19 +15,20 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; class TransactionCardV2 extends ConsumerStatefulWidget { const TransactionCardV2({ - Key? key, + super.key, required this.transaction, - }) : super(key: key); + }); final TransactionV2 transaction; @@ -40,17 +41,17 @@ class _TransactionCardStateV2 extends ConsumerState { late final String walletId; late final String prefix; late final String unit; - late final Coin coin; + late final CryptoCurrency coin; late final TransactionType txType; late final EthContract? tokenContract; bool get isTokenTx => tokenContract != null; String whatIsIt( - Coin coin, + CryptoCurrency coin, int currentHeight, ) => - _transaction.isCancelled && coin == Coin.ethereum + _transaction.isCancelled && coin is Ethereum ? "Failed" : _transaction.statusLabel( currentChainHeight: currentHeight, @@ -112,7 +113,7 @@ class _TransactionCardStateV2 extends ConsumerState { final Amount amount; - final fractionDigits = tokenContract?.decimals ?? coin.decimals; + final fractionDigits = tokenContract?.decimals ?? coin.fractionDigits; if (_transaction.subType == TransactionSubType.cashFusion) { amount = _transaction.getAmountReceivedInThisWallet( @@ -138,7 +139,7 @@ class _TransactionCardStateV2 extends ConsumerState { .where((e) => e.walletOwns && !e.addresses.contains(changeAddress)) .fold(BigInt.zero, (p, e) => p + e.value), - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ); } else { amount = _transaction.getAmountReceivedInThisWallet( diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart index 5a1ae2032..fe58b38a0 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart @@ -33,11 +33,18 @@ import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/block_explorers.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; import 'package:stackwallet/wallets/isar/models/spark_coin.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; @@ -59,17 +66,17 @@ import 'package:url_launcher/url_launcher.dart'; class TransactionV2DetailsView extends ConsumerStatefulWidget { const TransactionV2DetailsView({ - Key? key, + super.key, required this.transaction, required this.walletId, required this.coin, - }) : super(key: key); + }); static const String routeName = "/transactionV2Details"; final TransactionV2 transaction; final String walletId; - final Coin coin; + final CryptoCurrency coin; @override ConsumerState createState() => @@ -82,7 +89,7 @@ class _TransactionV2DetailsViewState late TransactionV2 _transaction; late final String walletId; - late final Coin coin; + late final CryptoCurrency coin; late final Amount amount; late final Amount fee; late final String amountPrefix; @@ -120,7 +127,7 @@ class _TransactionV2DetailsViewState minConfirms = ref.read(pWallets).getWallet(walletId).cryptoCurrency.minConfirms; - final fractionDigits = ethContract?.decimals ?? coin.decimals; + final fractionDigits = ethContract?.decimals ?? coin.fractionDigits; fee = _transaction.getFee(fractionDigits: fractionDigits); @@ -136,43 +143,61 @@ class _TransactionV2DetailsViewState case TransactionType.outgoing: case TransactionType.unknown: amount = _transaction.getAmountSentFromThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); break; case TransactionType.incoming: case TransactionType.sentToSelf: amount = _transaction.getAmountReceivedInThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); break; } data = _transaction.outputs - .map((e) => ( - addresses: e.addresses, - amount: Amount(rawValue: e.value, fractionDigits: coin.decimals) - )) + .map( + (e) => ( + addresses: e.addresses, + amount: Amount( + rawValue: e.value, + fractionDigits: coin.fractionDigits, + ) + ), + ) .toList(); } else if (_transaction.subType == TransactionSubType.cashFusion) { amount = _transaction.getAmountReceivedInThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); data = _transaction.outputs .where((e) => e.walletOwns) - .map((e) => ( - addresses: e.addresses, - amount: Amount(rawValue: e.value, fractionDigits: coin.decimals) - )) + .map( + (e) => ( + addresses: e.addresses, + amount: Amount( + rawValue: e.value, + fractionDigits: coin.fractionDigits, + ) + ), + ) .toList(); } else { switch (_transaction.type) { case TransactionType.outgoing: amount = _transaction.getAmountSentFromThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); data = _transaction.outputs .where((e) => !e.walletOwns) - .map((e) => ( - addresses: e.addresses, - amount: - Amount(rawValue: e.value, fractionDigits: coin.decimals) - )) + .map( + (e) => ( + addresses: e.addresses, + amount: Amount( + rawValue: e.value, + fractionDigits: coin.fractionDigits, + ) + ), + ) .toList(); break; @@ -191,56 +216,71 @@ class _TransactionV2DetailsViewState .and() .heightEqualTo(_transaction.height) .anyOf( - _transaction.outputs - .where((e) => + _transaction.outputs + .where( + (e) => e.walletOwns && e.addresses.isEmpty && - e.scriptPubKeyHex.length >= 488) - .map((e) => e.scriptPubKeyHex.substring(2, 488)) - .toList(), - (q, element) => q.serializedCoinB64StartsWith(element)) + e.scriptPubKeyHex.length >= 488, + ) + .map((e) => e.scriptPubKeyHex.substring(2, 488)) + .toList(), + (q, element) => q.serializedCoinB64StartsWith(element), + ) .memoProperty() .findFirstSync(); } if (_transaction.subType == TransactionSubType.sparkMint) { amount = _transaction.getAmountSparkSelfMinted( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); } else if (_transaction.subType == TransactionSubType.sparkSpend) { final changeAddress = (ref.read(pWallets).getWallet(walletId) as SparkInterface) .sparkChangeAddress; amount = Amount( rawValue: _transaction.outputs - .where((e) => - e.walletOwns && !e.addresses.contains(changeAddress)) + .where( + (e) => e.walletOwns && !e.addresses.contains(changeAddress), + ) .fold(BigInt.zero, (p, e) => p + e.value), - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ); } else { amount = _transaction.getAmountReceivedInThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); } data = _transaction.outputs .where((e) => e.walletOwns) - .map((e) => ( - addresses: e.addresses, - amount: - Amount(rawValue: e.value, fractionDigits: coin.decimals) - )) + .map( + (e) => ( + addresses: e.addresses, + amount: Amount( + rawValue: e.value, + fractionDigits: coin.fractionDigits, + ) + ), + ) .toList(); break; case TransactionType.unknown: amount = _transaction.getAmountSentFromThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); data = _transaction.inputs .where((e) => e.walletOwns) - .map((e) => ( - addresses: e.addresses, - amount: - Amount(rawValue: e.value, fractionDigits: coin.decimals) - )) + .map( + (e) => ( + addresses: e.addresses, + amount: Amount( + rawValue: e.value, + fractionDigits: coin.fractionDigits, + ) + ), + ) .toList(); break; } @@ -265,9 +305,10 @@ class _TransactionV2DetailsViewState } try { final contacts = ref.read(addressBookServiceProvider).contacts.where( - (element) => element.addresses - .where((element) => element.address == address) - .isNotEmpty); + (element) => element.addresses + .where((element) => element.address == address) + .isNotEmpty, + ); if (contacts.isNotEmpty) { return contacts.first.name; } else { @@ -281,20 +322,23 @@ class _TransactionV2DetailsViewState Future showExplorerWarning(String explorer) async { final bool? shouldContinue = await showDialog( - context: context, - barrierDismissible: false, - builder: (_) { - if (!isDesktop) { - return StackDialog( - title: "Attention", - message: - "You are about to view this transaction in a block explorer. The explorer may log your IP address and link it to the transaction. Only proceed if you trust $explorer.", - icon: Row( - children: [ - Consumer(builder: (_, ref, __) { + context: context, + barrierDismissible: false, + builder: (_) { + if (!isDesktop) { + return StackDialog( + title: "Attention", + message: + "You are about to view this transaction in a block explorer. The explorer may log your IP address and link it to the transaction. Only proceed if you trust $explorer.", + icon: Row( + children: [ + Consumer( + builder: (_, ref, __) { return Checkbox( - value: ref.watch(prefsChangeNotifierProvider - .select((value) => value.hideBlockExplorerWarning)), + value: ref.watch( + prefsChangeNotifierProvider + .select((value) => value.hideBlockExplorerWarning), + ), onChanged: (value) { if (value is bool) { ref @@ -304,61 +348,65 @@ class _TransactionV2DetailsViewState } }, ); - }), - Text( - "Never show again", - style: STextStyles.smallMed14(context), - ) - ], - ), - leftButton: TextButton( - onPressed: () { - Navigator.of(context).pop(false); - }, - child: Text( - "Cancel", - style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + }, + ), + Text( + "Never show again", + style: STextStyles.smallMed14(context), + ), + ], + ), + leftButton: TextButton( + onPressed: () { + Navigator.of(context).pop(false); + }, + child: Text( + "Cancel", + style: STextStyles.button(context).copyWith( + color: Theme.of(context) + .extension()! + .accentColorDark, ), ), - rightButton: TextButton( - style: Theme.of(context) - .extension()! - .getPrimaryEnabledButtonStyle(context), - onPressed: () { - Navigator.of(context).pop(true); - }, - child: Text( - "Continue", - style: STextStyles.button(context), - ), + ), + rightButton: TextButton( + style: Theme.of(context) + .extension()! + .getPrimaryEnabledButtonStyle(context), + onPressed: () { + Navigator.of(context).pop(true); + }, + child: Text( + "Continue", + style: STextStyles.button(context), ), - ); - } else { - return DesktopDialog( - maxWidth: 550, - maxHeight: 300, - child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 32, vertical: 20), - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - "Attention", - style: STextStyles.desktopH2(context), - ), - Row( - children: [ - Consumer(builder: (_, ref, __) { + ), + ); + } else { + return DesktopDialog( + maxWidth: 550, + maxHeight: 300, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 20), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Attention", + style: STextStyles.desktopH2(context), + ), + Row( + children: [ + Consumer( + builder: (_, ref, __) { return Checkbox( - value: ref.watch(prefsChangeNotifierProvider - .select((value) => - value.hideBlockExplorerWarning)), + value: ref.watch( + prefsChangeNotifierProvider.select( + (value) => value.hideBlockExplorerWarning, + ), + ), onChanged: (value) { if (value is bool) { ref @@ -368,55 +416,57 @@ class _TransactionV2DetailsViewState } }, ); - }), - Text( - "Never show again", - style: STextStyles.smallMed14(context), - ) - ], - ), - ], - ), - const SizedBox(height: 16), - Text( - "You are about to view this transaction in a block explorer. The explorer may log your IP address and link it to the transaction. Only proceed if you trust $explorer.", - style: STextStyles.desktopTextSmall(context), - ), - const SizedBox(height: 35), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SecondaryButton( - width: 200, - buttonHeight: ButtonHeight.l, - label: "Cancel", - onPressed: () { - Navigator.of( - context, - rootNavigator: true, - ).pop(false); - }, - ), - const SizedBox(width: 20), - PrimaryButton( - width: 200, - buttonHeight: ButtonHeight.l, - label: "Continue", - onPressed: () { - Navigator.of( - context, - rootNavigator: true, - ).pop(true); - }, - ), - ], - ), - ], - ), + }, + ), + Text( + "Never show again", + style: STextStyles.smallMed14(context), + ), + ], + ), + ], + ), + const SizedBox(height: 16), + Text( + "You are about to view this transaction in a block explorer. The explorer may log your IP address and link it to the transaction. Only proceed if you trust $explorer.", + style: STextStyles.desktopTextSmall(context), + ), + const SizedBox(height: 35), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SecondaryButton( + width: 200, + buttonHeight: ButtonHeight.l, + label: "Cancel", + onPressed: () { + Navigator.of( + context, + rootNavigator: true, + ).pop(false); + }, + ), + const SizedBox(width: 20), + PrimaryButton( + width: 200, + buttonHeight: ButtonHeight.l, + label: "Continue", + onPressed: () { + Navigator.of( + context, + rootNavigator: true, + ).pop(true); + }, + ), + ], + ), + ], ), - ); - } - }); + ), + ); + } + }, + ); return shouldContinue ?? false; } @@ -558,7 +608,8 @@ class _TransactionV2DetailsViewState ), style: STextStyles.desktopTextMedium( - context), + context, + ), ), ], ), @@ -571,32 +622,36 @@ class _TransactionV2DetailsViewState "$amountPrefix${ref.watch(pAmountFormatter(coin)).format(amount, ethContract: ethContract)}", style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension< StackColors>()! .textDark, ) : STextStyles.titleBold12( - context), + context, + ), ), const SizedBox( height: 2, ), if (ref.watch( - prefsChangeNotifierProvider - .select((value) => - value.externalCalls))) + prefsChangeNotifierProvider.select( + (value) => value.externalCalls, + ), + )) SelectableText( "$amountPrefix${(amount.decimal * ref.watch( priceAnd24hChangeNotifierProvider - .select((value) => - value - .getPrice( - coin) - .item1), + .select( + (value) => value + .getPrice( + coin, + ) + .item1, + ), )).toAmount(fractionDigits: 2).fiatString( locale: ref.watch( localeServiceChangeNotifierProvider @@ -613,9 +668,11 @@ class _TransactionV2DetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle( - context), + context, + ), ), ], ), @@ -662,9 +719,9 @@ class _TransactionV2DetailsViewState ), style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: _transaction.type == TransactionType .outgoing && @@ -685,12 +742,10 @@ class _TransactionV2DetailsViewState ], ), ), - if (!((coin == Coin.monero || - coin == Coin.wownero) && + if (!((coin is Monero || coin is Wownero) && _transaction.type == TransactionType.outgoing) && - !((coin == Coin.firo || - coin == Coin.firoTestNet) && + !((coin is Firo) && _transaction.subType == TransactionSubType.mint)) isDesktop @@ -698,12 +753,10 @@ class _TransactionV2DetailsViewState : const SizedBox( height: 12, ), - if (!((coin == Coin.monero || - coin == Coin.wownero) && + if (!((coin is Monero || coin is Wownero) && _transaction.type == TransactionType.outgoing) && - !((coin == Coin.firo || - coin == Coin.firoTestNet) && + !((coin is Firo) && _transaction.subType == TransactionSubType.mint)) RoundedWhiteContainer( @@ -778,9 +831,11 @@ class _TransactionV2DetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle( - context), + context, + ), ), ), const SizedBox( @@ -795,11 +850,13 @@ class _TransactionV2DetailsViewState 1) FutureBuilder( future: fetchContactNameFor( - data.first.addresses - .first), - builder: (builderContext, - AsyncSnapshot - snapshot) { + data.first.addresses.first, + ), + builder: ( + builderContext, + AsyncSnapshot + snapshot, + ) { String addressOrContactName = data.first.addresses @@ -815,18 +872,20 @@ class _TransactionV2DetailsViewState addressOrContactName, style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of( - context) + context, + ) .extension< StackColors>()! .textDark, ) : STextStyles .itemSubtitle12( - context), + context, + ), ); }, ) @@ -848,7 +907,8 @@ class _TransactionV2DetailsViewState child: Padding( padding: const EdgeInsets.all( - 8.0), + 8.0, + ), child: Column( crossAxisAlignment: CrossAxisAlignment @@ -861,11 +921,14 @@ class _TransactionV2DetailsViewState return FutureBuilder( future: fetchContactNameFor( - e), - builder: (builderContext, - AsyncSnapshot< - String> - snapshot) { + e, + ), + builder: ( + builderContext, + AsyncSnapshot< + String> + snapshot, + ) { final String addressOrContactName; if (snapshot.connectionState == @@ -909,29 +972,31 @@ class _TransactionV2DetailsViewState ], ), ), - if (coin == Coin.epicCash) + if (coin is Epiccash) RoundedWhiteContainer( padding: isDesktop ? const EdgeInsets.all(16) : const EdgeInsets.all(12), child: Row( mainAxisAlignment: - MainAxisAlignment.spaceBetween, + MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( child: Column( crossAxisAlignment: - CrossAxisAlignment.start, + CrossAxisAlignment.start, children: [ Text( "On chain note", style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) + .desktopTextExtraExtraSmall( + context, + ) : STextStyles.itemSubtitle( - context), + context, + ), ), const SizedBox( height: 8, @@ -940,16 +1005,17 @@ class _TransactionV2DetailsViewState _transaction.onChainNote ?? "", style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension< - StackColors>()! - .textDark, - ) + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension< + StackColors>()! + .textDark, + ) : STextStyles.itemSubtitle12( - context), + context, + ), ), ], ), @@ -978,13 +1044,14 @@ class _TransactionV2DetailsViewState MainAxisAlignment.spaceBetween, children: [ Text( - (coin == Coin.epicCash) + (coin is Epiccash) ? "Local Note" : "Note ", style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle(context), ), isDesktop @@ -1032,7 +1099,8 @@ class _TransactionV2DetailsViewState Text( "Edit", style: STextStyles.link2( - context), + context, + ), ), ], ), @@ -1047,8 +1115,9 @@ class _TransactionV2DetailsViewState .watch( pTransactionNote( ( - txid: (coin == Coin.epicCash) ? - _transaction.slateId.toString() + txid: (coin is Epiccash) + ? _transaction.slateId + .toString() : _transaction.txid, walletId: walletId ), @@ -1058,9 +1127,9 @@ class _TransactionV2DetailsViewState "", style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -1091,9 +1160,11 @@ class _TransactionV2DetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle( - context), + context, + ), ), ], ), @@ -1104,9 +1175,9 @@ class _TransactionV2DetailsViewState _sparkMemo!, style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -1139,7 +1210,8 @@ class _TransactionV2DetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle(context), ), if (isDesktop) @@ -1153,15 +1225,16 @@ class _TransactionV2DetailsViewState ), style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, ) : STextStyles.itemSubtitle12( - context), + context, + ), ), ], ), @@ -1172,9 +1245,9 @@ class _TransactionV2DetailsViewState ), style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -1190,34 +1263,136 @@ class _TransactionV2DetailsViewState ], ), ), - if (coin != Coin.banano && coin != Coin.nano) + if (coin is! NanoCurrency) isDesktop ? const _Divider() : const SizedBox( height: 12, ), - if (coin != Coin.banano && coin != Coin.nano) + if (coin is! NanoCurrency) RoundedWhiteContainer( padding: isDesktop ? const EdgeInsets.all(16) : const EdgeInsets.all(12), - child: Builder(builder: (context) { - String feeString = showFeePending - ? _transaction.isConfirmed( - currentHeight, - minConfirms, - ) - ? ref - .watch(pAmountFormatter(coin)) - .format( - fee, - ) - : "Pending" - : ref - .watch(pAmountFormatter(coin)) - .format( - fee, - ); + child: Builder( + builder: (context) { + String feeString = showFeePending + ? _transaction.isConfirmed( + currentHeight, + minConfirms, + ) + ? ref + .watch(pAmountFormatter(coin)) + .format( + fee, + ) + : "Pending" + : ref + .watch(pAmountFormatter(coin)) + .format( + fee, + ); + + return Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Transaction fee", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ) + : STextStyles.itemSubtitle( + context, + ), + ), + if (isDesktop) + const SizedBox( + height: 2, + ), + if (isDesktop) + SelectableText( + feeString, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension< + StackColors>()! + .textDark, + ) + : STextStyles + .itemSubtitle12( + context, + ), + ), + ], + ), + if (!isDesktop) + SelectableText( + feeString, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension< + StackColors>()! + .textDark, + ) + : STextStyles.itemSubtitle12( + context, + ), + ), + if (isDesktop) + IconCopyButton(data: feeString), + ], + ); + }, + ), + ), + isDesktop + ? const _Divider() + : const SizedBox( + height: 12, + ), + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(16) + : const EdgeInsets.all(12), + child: Builder( + builder: (context) { + final String height; + + if (widget.coin is Bitcoincash || + widget.coin is Ecash) { + height = + "${_transaction.height != null && _transaction.height! > 0 ? _transaction.height! : "Pending"}"; + } else { + height = widget.coin is! Epiccash && + _transaction.isConfirmed( + currentHeight, + minConfirms, + ) + ? "${_transaction.height == 0 ? "Unknown" : _transaction.height}" + : _transaction.getConfirmations( + currentHeight, + ) > + 0 + ? "${_transaction.height}" + : "Pending"; + } return Row( mainAxisAlignment: @@ -1230,13 +1405,15 @@ class _TransactionV2DetailsViewState CrossAxisAlignment.start, children: [ Text( - "Transaction fee", + "Block height", style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle( - context), + context, + ), ), if (isDesktop) const SizedBox( @@ -1244,133 +1421,45 @@ class _TransactionV2DetailsViewState ), if (isDesktop) SelectableText( - feeString, + height, style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension< StackColors>()! .textDark, ) : STextStyles.itemSubtitle12( - context), + context, + ), ), ], ), if (!isDesktop) SelectableText( - feeString, + height, style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, ) : STextStyles.itemSubtitle12( - context), + context, + ), ), if (isDesktop) - IconCopyButton(data: feeString) + IconCopyButton(data: height), ], ); - }), + }, ), - isDesktop - ? const _Divider() - : const SizedBox( - height: 12, - ), - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(16) - : const EdgeInsets.all(12), - child: Builder(builder: (context) { - final String height; - - if (widget.coin == Coin.bitcoincash || - widget.coin == Coin.eCash || - widget.coin == Coin.bitcoincashTestnet) { - height = - "${_transaction.height != null && _transaction.height! > 0 ? _transaction.height! : "Pending"}"; - } else { - height = widget.coin != Coin.epicCash && - _transaction.isConfirmed( - currentHeight, - minConfirms, - ) - ? "${_transaction.height == 0 ? "Unknown" : _transaction.height}" - : _transaction.getConfirmations( - currentHeight) > - 0 - ? "${_transaction.height}" - : "Pending"; - } - - return Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - "Block height", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context) - : STextStyles.itemSubtitle( - context), - ), - if (isDesktop) - const SizedBox( - height: 2, - ), - if (isDesktop) - SelectableText( - height, - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension< - StackColors>()! - .textDark, - ) - : STextStyles.itemSubtitle12( - context), - ), - ], - ), - if (!isDesktop) - SelectableText( - height, - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark, - ) - : STextStyles.itemSubtitle12( - context), - ), - if (isDesktop) IconCopyButton(data: height), - ], - ); - }), ), if (kDebugMode) @@ -1394,16 +1483,17 @@ class _TransactionV2DetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle(context), ), SelectableText( _transaction.subType.toString(), style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -1437,9 +1527,11 @@ class _TransactionV2DetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle( - context), + context, + ), ), const SizedBox( height: 8, @@ -1452,21 +1544,22 @@ class _TransactionV2DetailsViewState _transaction.txid, style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, ) : STextStyles.itemSubtitle12( - context), + context, + ), ), - if (coin != Coin.epicCash) + if (coin is! Epiccash) const SizedBox( height: 8, ), - if (coin != Coin.epicCash) + if (coin is! Epiccash) CustomTextButton( text: "Open in block explorer", onTap: () async { @@ -1478,12 +1571,14 @@ class _TransactionV2DetailsViewState if (ref .read( - prefsChangeNotifierProvider) + prefsChangeNotifierProvider, + ) .hideBlockExplorerWarning == false) { final shouldContinue = await showExplorerWarning( - "${uri.scheme}://${uri.host}"); + "${uri.scheme}://${uri.host}", + ); if (!shouldContinue) { return; @@ -1544,12 +1639,12 @@ class _TransactionV2DetailsViewState ], ), ), - // if ((coin == Coin.firoTestNet || coin == Coin.firo) && + // if ((coin is FiroTestNet || coin is Firo) && // _transaction.subType == "mint") // const SizedBox( // height: 12, // ), - // if ((coin == Coin.firoTestNet || coin == Coin.firo) && + // if ((coin is FiroTestNet || coin is Firo) && // _transaction.subType == "mint") // RoundedWhiteContainer( // child: Column( @@ -1621,13 +1716,13 @@ class _TransactionV2DetailsViewState // ], // ), // ), - if (coin == Coin.epicCash) + if (coin is Epiccash) isDesktop ? const _Divider() : const SizedBox( height: 12, ), - if (coin == Coin.epicCash) + if (coin is Epiccash) RoundedWhiteContainer( padding: isDesktop ? const EdgeInsets.all(16) @@ -1646,9 +1741,11 @@ class _TransactionV2DetailsViewState style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle( - context), + context, + ), ), // Flexible( // child: FittedBox( @@ -1658,15 +1755,16 @@ class _TransactionV2DetailsViewState _transaction.slateId ?? "Unknown", style: isDesktop ? STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, ) : STextStyles.itemSubtitle12( - context), + context, + ), ), // ), // ), @@ -1698,7 +1796,7 @@ class _TransactionV2DetailsViewState ), ), floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat, - floatingActionButton: (coin == Coin.epicCash && + floatingActionButton: (coin is Epiccash && _transaction.getConfirmations(currentHeight) < 1 && _transaction.isCancelled == false) ? ConditionalParent( @@ -1724,11 +1822,13 @@ class _TransactionV2DetailsViewState if (wallet is EpiccashWallet) { final String? id = _transaction.slateId; if (id == null) { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "Could not find Epic transaction ID", - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Could not find Epic transaction ID", + context: context, + ), + ); return; } @@ -1773,11 +1873,13 @@ class _TransactionV2DetailsViewState } } } else { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "ERROR: Wallet type is not Epic Cash", - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "ERROR: Wallet type is not Epic Cash", + context: context, + ), + ); return; } }, @@ -1804,7 +1906,7 @@ class OutputCard extends ConsumerWidget { final String address; final Amount amount; - final Coin coin; + final CryptoCurrency coin; @override Widget build(BuildContext context, WidgetRef ref) { @@ -1847,14 +1949,14 @@ class OutputCard extends ConsumerWidget { : STextStyles.itemSubtitle12(context), ), ], - ) + ), ], ); } } class _Divider extends StatelessWidget { - const _Divider({Key? key}) : super(key: key); + const _Divider({super.key}); @override Widget build(BuildContext context) { @@ -1867,9 +1969,9 @@ class _Divider extends StatelessWidget { class IconCopyButton extends StatelessWidget { const IconCopyButton({ - Key? key, + super.key, required this.data, - }) : super(key: key); + }); final String data; @@ -1913,9 +2015,9 @@ class IconCopyButton extends StatelessWidget { class IconPencilButton extends StatelessWidget { const IconPencilButton({ - Key? key, + super.key, this.onPressed, - }) : super(key: key); + }); final VoidCallback? onPressed; diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart index ac868aee9..21c0cbb9e 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart @@ -23,8 +23,8 @@ import 'package:stackwallet/providers/db/main_db_provider.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/loading_indicator.dart'; class TransactionsV2List extends ConsumerStatefulWidget { @@ -45,7 +45,7 @@ class _TransactionsV2ListState extends ConsumerState { late final StreamSubscription> _subscription; late final Query _query; - late final Coin coin; + late final CryptoCurrency coin; BorderRadius get _borderRadiusFirst { return BorderRadius.only( diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart index ec5c50183..2c18faee1 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart @@ -10,9 +10,9 @@ import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transactio import 'package:stackwallet/providers/global/trades_service_provider.dart'; import 'package:stackwallet/route_generator.dart'; import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; @@ -29,7 +29,7 @@ class TxListItem extends ConsumerWidget { final Object tx; final BorderRadius? radius; - final Coin coin; + final CryptoCurrency coin; @override Widget build(BuildContext context, WidgetRef ref) { diff --git a/lib/pages/wallet_view/wallet_view.dart b/lib/pages/wallet_view/wallet_view.dart index 8abbd4d16..76c2b5d74 100644 --- a/lib/pages/wallet_view/wallet_view.dart +++ b/lib/pages/wallet_view/wallet_view.dart @@ -60,11 +60,15 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/show_loading.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; @@ -120,7 +124,7 @@ class WalletView extends ConsumerStatefulWidget { class _WalletViewState extends ConsumerState { late final EventBus eventBus; late final String walletId; - late final Coin coin; + late final CryptoCurrency coin; late final bool isSparkWallet; @@ -184,8 +188,7 @@ class _WalletViewState extends ConsumerState { isSparkWallet = wallet is SparkInterface; - if (coin == Coin.firo && - (wallet as FiroWallet).lelantusCoinIsarRescanRequired) { + if (coin is Firo && (wallet as FiroWallet).lelantusCoinIsarRescanRequired) { _rescanningOnOpen = true; _lelantusRescanRecovery = true; _firoRescanRecovery(); @@ -384,9 +387,9 @@ class _WalletViewState extends ConsumerState { } Future _onExchangePressed(BuildContext context) async { - final Coin coin = ref.read(pWalletCoin(walletId)); + final CryptoCurrency coin = ref.read(pWalletCoin(walletId)); - if (coin.isTestNet) { + if (coin.network == CryptoCurrencyNetwork.test) { await showDialog( context: context, builder: (_) => const StackOkDialog( @@ -421,7 +424,7 @@ class _WalletViewState extends ConsumerState { WalletInitiatedExchangeView.routeName, arguments: Tuple2( walletId, - currency == null ? Coin.bitcoin : coin, + currency == null ? Bitcoin(CryptoCurrencyNetwork.main) : coin, ), ), ); @@ -430,9 +433,9 @@ class _WalletViewState extends ConsumerState { } Future _onBuyPressed(BuildContext context) async { - final Coin coin = ref.read(pWalletCoin(walletId)); + final CryptoCurrency coin = ref.read(pWalletCoin(walletId)); - if (coin.isTestNet) { + if (coin.network == CryptoCurrencyNetwork.test) { await showDialog( context: context, builder: (_) => const StackOkDialog( @@ -444,7 +447,8 @@ class _WalletViewState extends ConsumerState { unawaited( Navigator.of(context).pushNamed( BuyInWalletView.routeName, - arguments: coin.hasBuySupport ? coin : Coin.bitcoin, + arguments: + coin.hasBuySupport ? coin : Bitcoin(CryptoCurrencyNetwork.main), ), ); } @@ -1020,7 +1024,7 @@ class _WalletViewState extends ConsumerState { } }, ), - if (ref.watch(pWalletCoin(walletId)).isFrost) + if (ref.watch(pWalletCoin(walletId)) is FrostCurrency) WalletNavigationBarItemData( label: "Sign", icon: const FrostSignNavIcon(), @@ -1058,14 +1062,14 @@ class _WalletViewState extends ConsumerState { }, ), if (Constants.enableExchange && - !ref.watch(pWalletCoin(walletId)).isFrost) + ref.watch(pWalletCoin(walletId)) is! FrostCurrency) WalletNavigationBarItemData( label: "Swap", icon: const ExchangeNavIcon(), onTap: () => _onExchangePressed(context), ), if (Constants.enableExchange && - !ref.watch(pWalletCoin(walletId)).isFrost) + ref.watch(pWalletCoin(walletId)) is! FrostCurrency) WalletNavigationBarItemData( label: "Buy", icon: const BuyNavIcon(), @@ -1091,7 +1095,7 @@ class _WalletViewState extends ConsumerState { ); }, ), - if (coin == Coin.banano) + if (coin is Banano) WalletNavigationBarItemData( icon: SvgPicture.asset( Assets.svg.monkey, diff --git a/lib/pages/wallets_view/sub_widgets/favorite_card.dart b/lib/pages/wallets_view/sub_widgets/favorite_card.dart index 4ef59bf0b..008f9c39a 100644 --- a/lib/pages/wallets_view/sub_widgets/favorite_card.dart +++ b/lib/pages/wallets_view/sub_widgets/favorite_card.dart @@ -21,10 +21,10 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/show_loading.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; import 'package:stackwallet/widgets/coin_card.dart'; @@ -32,11 +32,11 @@ import 'package:stackwallet/widgets/conditional_parent.dart'; class FavoriteCard extends ConsumerStatefulWidget { const FavoriteCard({ - Key? key, + super.key, required this.walletId, required this.width, required this.height, - }) : super(key: key); + }); final String walletId; final double width; @@ -192,7 +192,7 @@ class _FavoriteCardState extends ConsumerState { ); Amount total = balance.total; - if (coin == Coin.firo || coin == Coin.firoTestNet) { + if (coin is Firo) { total += ref .watch( pWalletBalanceSecondary(walletId), diff --git a/lib/pages/wallets_view/sub_widgets/wallet_list_item.dart b/lib/pages/wallets_view/sub_widgets/wallet_list_item.dart index a708267a9..15d069c5d 100644 --- a/lib/pages/wallets_view/sub_widgets/wallet_list_item.dart +++ b/lib/pages/wallets_view/sub_widgets/wallet_list_item.dart @@ -17,27 +17,27 @@ import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; import 'package:stackwallet/pages/wallets_view/wallets_overview.dart'; import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/show_loading.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; import 'package:stackwallet/widgets/dialogs/tor_warning_dialog.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; class WalletListItem extends ConsumerWidget { const WalletListItem({ - Key? key, + super.key, required this.coin, required this.walletCount, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; final int walletCount; @override @@ -52,7 +52,7 @@ class WalletListItem extends ConsumerWidget { padding: const EdgeInsets.all(0), child: MaterialButton( // splashColor: Theme.of(context).extension()!.highlight, - key: Key("walletListItemButtonKey_${coin.name}"), + key: Key("walletListItemButtonKey_${coin.identifier}"), padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 13), materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, shape: RoundedRectangleBorder( @@ -63,8 +63,7 @@ class WalletListItem extends ConsumerWidget { // Check if Tor is enabled... if (ref.read(prefsChangeNotifierProvider).useTor) { // ... and if the coin supports Tor. - final cryptocurrency = SupportedCoins.getCryptoCurrencyFor(coin); - if (!cryptocurrency.torSupport) { + if (!coin.torSupport) { // If not, show a Tor warning dialog. final shouldContinue = await showDialog( context: context, @@ -79,7 +78,7 @@ class WalletListItem extends ConsumerWidget { } } - if (walletCount == 1 && coin != Coin.ethereum) { + if (walletCount == 1 && coin is! Ethereum) { final wallet = ref .read(pWallets) .wallets diff --git a/lib/pages/wallets_view/wallets_overview.dart b/lib/pages/wallets_view/wallets_overview.dart index 0f6cef1a6..c70357434 100644 --- a/lib/pages/wallets_view/wallets_overview.dart +++ b/lib/pages/wallets_view/wallets_overview.dart @@ -21,9 +21,10 @@ import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/wallet.dart'; @@ -40,12 +41,12 @@ import 'package:tuple/tuple.dart'; class WalletsOverview extends ConsumerStatefulWidget { const WalletsOverview({ - Key? key, + super.key, required this.coin, this.navigatorState, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; final NavigatorState? navigatorState; static const routeName = "/walletsOverview"; @@ -116,7 +117,7 @@ class _EthWalletsOverviewState extends ConsumerState { ref.read(mainDBProvider).isar.walletInfo.where().findAllSync(); walletsData.removeWhere((e) => e.coin != widget.coin); - if (widget.coin == Coin.ethereum) { + if (widget.coin is Ethereum) { for (final data in walletsData) { final List contracts = []; final contractAddresses = diff --git a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart index 5932c0826..7546b84fc 100644 --- a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart +++ b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart @@ -22,12 +22,14 @@ import 'package:stackwallet/providers/db/main_db_provider.dart'; import 'package:stackwallet/providers/global/address_book_service_provider.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/ui/address_book_providers/address_book_filter_provider.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; @@ -97,8 +99,10 @@ class _DesktopAddressBook extends ConsumerState { ref.refresh(addressBookFilterProvider); // if (widget.coin == null) { - final List coins = Coin.values.toList(); - coins.remove(Coin.firoTestNet); + final coins = SupportedCoins.cryptocurrencies.toList(); + coins.removeWhere( + (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + ); final bool showTestNet = ref.read(prefsChangeNotifierProvider).showTestNetCoins; @@ -106,9 +110,10 @@ class _DesktopAddressBook extends ConsumerState { if (showTestNet) { ref.read(addressBookFilterProvider).addAll(coins, false); } else { - ref - .read(addressBookFilterProvider) - .addAll(coins.where((e) => !e.isTestNet), false); + ref.read(addressBookFilterProvider).addAll( + coins.where((e) => e.network != CryptoCurrencyNetwork.test), + false, + ); } // } else { // ref.read(addressBookFilterProvider).add(widget.coin!, false); @@ -133,7 +138,7 @@ class _DesktopAddressBook extends ConsumerState { addresses.add( ContactAddressEntry() - ..coinName = wallet.info.coin.name + ..coinName = wallet.info.coin.identifier ..address = addressString ..label = "Current Receiving" ..other = wallet.info.name, diff --git a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_card.dart b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_card.dart index 13cdc24e4..684c16025 100644 --- a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_card.dart +++ b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_card.dart @@ -22,7 +22,7 @@ import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; + import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; diff --git a/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart b/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart index e8aa2436a..7c8a394a3 100644 --- a/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart +++ b/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart @@ -25,8 +25,8 @@ import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -60,7 +60,7 @@ class _DesktopCashFusion extends ConsumerState { late final FocusNode portFocusNode; late final TextEditingController fusionRoundController; late final FocusNode fusionRoundFocusNode; - late final Coin coin; + late final CryptoCurrency coin; bool _enableStartButton = false; bool _enableSSLCheckbox = false; diff --git a/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart b/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart index 6d4225fab..3eb98c0ba 100644 --- a/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart +++ b/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart @@ -7,9 +7,9 @@ import 'package:stackwallet/providers/cash_fusion/fusion_progress_ui_state_provi import 'package:stackwallet/providers/global/prefs_provider.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/show_loading.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -30,9 +30,9 @@ class CashFusionState { class FusionDialogView extends ConsumerStatefulWidget { const FusionDialogView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -41,13 +41,13 @@ class FusionDialogView extends ConsumerStatefulWidget { } class _FusionDialogViewState extends ConsumerState { - late final Coin coin; + late final CryptoCurrency coin; Future _requestAndProcessCancel() async { if (!ref.read(fusionProgressUIStateProvider(widget.walletId)).running) { return true; } else { - bool? shouldCancel = await showDialog( + final bool? shouldCancel = await showDialog( context: context, barrierDismissible: false, builder: (_) => DesktopDialog( diff --git a/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart b/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart index 3ef549e83..5c46236ae 100644 --- a/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart +++ b/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart @@ -22,8 +22,8 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; @@ -43,10 +43,10 @@ final desktopUseUTXOs = StateProvider((ref) => {}); class DesktopCoinControlUseDialog extends ConsumerStatefulWidget { const DesktopCoinControlUseDialog({ - Key? key, + super.key, required this.walletId, this.amountToSend, - }) : super(key: key); + }); final String walletId; final Amount? amountToSend; @@ -59,7 +59,7 @@ class DesktopCoinControlUseDialog extends ConsumerStatefulWidget { class _DesktopCoinControlUseDialogState extends ConsumerState { late final TextEditingController _searchController; - late final Coin coin; + late final CryptoCurrency coin; final searchFieldFocusNode = FocusNode(); final Set _selectedUTXOsData = {}; @@ -110,7 +110,7 @@ class _DesktopCoinControlUseDialogState filter: _filter, sort: _sort, searchTerm: _searchString, - coin: coin, + cryptoCurrency: coin, ); } else { _map = null; @@ -119,18 +119,18 @@ class _DesktopCoinControlUseDialogState filter: _filter, sort: _sort, searchTerm: _searchString, - coin: coin, + cryptoCurrency: coin, ); } final Amount selectedSum = _selectedUTXOs.map((e) => e.value).fold( Amount( rawValue: BigInt.zero, - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ), (value, element) => value += Amount( rawValue: BigInt.from(element), - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ), ); @@ -486,7 +486,7 @@ class _DesktopCoinControlUseDialogState ), Text( "${widget.amountToSend!.decimal.toStringAsFixed( - coin.decimals, + coin.fractionDigits, )}" " ${coin.ticker}", style: @@ -521,7 +521,7 @@ class _DesktopCoinControlUseDialogState ), Text( "${selectedSum.decimal.toStringAsFixed( - coin.decimals, + coin.fractionDigits, )} ${coin.ticker}", style: STextStyles.desktopTextExtraExtraSmall( context) diff --git a/lib/pages_desktop_specific/coin_control/desktop_coin_control_view.dart b/lib/pages_desktop_specific/coin_control/desktop_coin_control_view.dart index 2b58652a7..e19f6f7d8 100644 --- a/lib/pages_desktop_specific/coin_control/desktop_coin_control_view.dart +++ b/lib/pages_desktop_specific/coin_control/desktop_coin_control_view.dart @@ -22,8 +22,8 @@ import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -55,7 +55,7 @@ class DesktopCoinControlView extends ConsumerStatefulWidget { class _DesktopCoinControlViewState extends ConsumerState { late final TextEditingController _searchController; - late final Coin coin; + late final CryptoCurrency coin; final searchFieldFocusNode = FocusNode(); final Set _selectedUTXOs = {}; @@ -93,7 +93,7 @@ class _DesktopCoinControlViewState filter: _filter, sort: _sort, searchTerm: _searchString, - coin: coin, + cryptoCurrency: coin, ); } else { _map = null; @@ -102,7 +102,7 @@ class _DesktopCoinControlViewState filter: _filter, sort: _sort, searchTerm: _searchString, - coin: coin, + cryptoCurrency: coin, ); } diff --git a/lib/pages_desktop_specific/coin_control/utxo_row.dart b/lib/pages_desktop_specific/coin_control/utxo_row.dart index dbb2d8afe..fcc8aebf7 100644 --- a/lib/pages_desktop_specific/coin_control/utxo_row.dart +++ b/lib/pages_desktop_specific/coin_control/utxo_row.dart @@ -18,7 +18,6 @@ import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; @@ -158,7 +157,7 @@ class _UtxoRowState extends ConsumerState { ref.watch(pAmountFormatter(coin)).format( Amount( rawValue: BigInt.from(utxo.value), - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ), ), textAlign: TextAlign.right, @@ -180,7 +179,7 @@ class _UtxoRowState extends ConsumerState { ref.watch(pAmountFormatter(coin)).format( Amount( rawValue: BigInt.from(utxo.value), - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ), ), textAlign: TextAlign.right, diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index b01cf6898..a5c9fa0db 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -28,10 +28,10 @@ import 'package:stackwallet/providers/global/trades_service_provider.dart'; import 'package:stackwallet/route_generator.dart'; import 'package:stackwallet/services/exchange/exchange_response.dart'; import 'package:stackwallet/services/notifications_api.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -51,9 +51,9 @@ final desktopExchangeModelProvider = class StepScaffold extends ConsumerStatefulWidget { const StepScaffold({ - Key? key, + super.key, required this.initialStep, - }) : super(key: key); + }); final int initialStep; @@ -194,9 +194,9 @@ class _StepScaffoldState extends ConsumerState { void sendFromStack() { final trade = ref.read(desktopExchangeModelProvider)!.trade!; final address = trade.payInAddress; - final coin = coinFromTickerCaseInsensitive(trade.payInCurrency); + final coin = SupportedCoins.getCryptoCurrencyForTicker(trade.payInCurrency); final amount = Decimal.parse(trade.payInAmount).toAmount( - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ); showDialog( diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart index c3178b809..6f50a7347 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart @@ -17,10 +17,10 @@ import 'package:stackwallet/pages_desktop_specific/desktop_exchange/subwidgets/d import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart'; import 'package:stackwallet/providers/exchange/exchange_send_from_wallet_id_provider.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; @@ -59,7 +59,7 @@ class _DesktopStep2State extends ConsumerState { bool isStackCoin(String ticker) { try { - coinFromTickerCaseInsensitive(ticker); + SupportedCoins.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; @@ -68,7 +68,7 @@ class _DesktopStep2State extends ConsumerState { void selectRecipientAddressFromStack() async { try { - final coin = coinFromTickerCaseInsensitive( + final coin = SupportedCoins.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.receiveTicker, ); @@ -101,7 +101,7 @@ class _DesktopStep2State extends ConsumerState { void selectRefundAddressFromStack() async { try { - final coin = coinFromTickerCaseInsensitive( + final coin = SupportedCoins.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.sendTicker, ); @@ -131,7 +131,7 @@ class _DesktopStep2State extends ConsumerState { } void selectRecipientFromAddressBook() async { - final coin = coinFromTickerCaseInsensitive( + final coin = SupportedCoins.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.receiveTicker, ); @@ -178,7 +178,7 @@ class _DesktopStep2State extends ConsumerState { } void selectRefundFromAddressBook() async { - final coin = coinFromTickerCaseInsensitive( + final coin = SupportedCoins.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.sendTicker, ); diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart index 1787f1add..4c579647e 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart @@ -15,8 +15,8 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_item.dart'; import 'package:stackwallet/providers/providers.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/widgets/rounded_container.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; @@ -37,7 +37,7 @@ class _DesktopStep4State extends ConsumerState { bool _isWalletCoinAndHasWallet(String ticker) { try { - final coin = coinFromTickerCaseInsensitive(ticker); + final coin = SupportedCoins.getCryptoCurrencyForTicker(ticker); return ref .read(pWallets) .wallets diff --git a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart index f1ffa7fed..a30387f24 100644 --- a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart +++ b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart @@ -17,8 +17,9 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; @@ -31,11 +32,11 @@ import 'package:tuple/tuple.dart'; class DesktopChooseFromStack extends ConsumerStatefulWidget { const DesktopChooseFromStack({ - Key? key, + super.key, required this.coin, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; @override ConsumerState createState() => @@ -282,9 +283,9 @@ class _DesktopChooseFromStackState class _BalanceDisplay extends ConsumerWidget { const _BalanceDisplay({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -292,7 +293,7 @@ class _BalanceDisplay extends ConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final coin = ref.watch(pWalletCoin(walletId)); Amount total = ref.watch(pWalletBalance(walletId)).total; - if (coin == Coin.firo || coin == Coin.firoTestNet) { + if (coin is Firo) { total += ref.watch(pWalletBalanceSecondary(walletId)).total; total += ref.watch(pWalletBalanceTertiary(walletId)).total; } diff --git a/lib/pages_desktop_specific/my_stack_view/coin_wallets_table.dart b/lib/pages_desktop_specific/my_stack_view/coin_wallets_table.dart index 94cdf75f8..8624eca28 100644 --- a/lib/pages_desktop_specific/my_stack_view/coin_wallets_table.dart +++ b/lib/pages_desktop_specific/my_stack_view/coin_wallets_table.dart @@ -15,20 +15,20 @@ import 'package:stackwallet/providers/global/active_wallet_provider.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/show_loading.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; import 'package:stackwallet/widgets/rounded_container.dart'; import 'package:stackwallet/widgets/wallet_info_row/wallet_info_row.dart'; class CoinWalletsTable extends ConsumerWidget { const CoinWalletsTable({ - Key? key, + super.key, required this.coin, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; @override Widget build(BuildContext context, WidgetRef ref) { @@ -57,7 +57,7 @@ class CoinWalletsTable extends ConsumerWidget { children: [ for (int i = 0; i < walletIds.length; i++) Column( - key: Key("${coin.name}_$runtimeType${walletIds[i]}_key"), + key: Key("${coin.identifier}_$runtimeType${walletIds[i]}_key"), children: [ if (i != 0) const SizedBox( diff --git a/lib/pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart b/lib/pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart index b77135f96..9d9b8b802 100644 --- a/lib/pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart @@ -25,7 +25,6 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart b/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart index 3b3c6f32f..b7be2c2d4 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart @@ -15,12 +15,11 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/pages/wallets_view/wallets_overview.dart'; import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; @@ -54,7 +53,7 @@ class _WalletTableState extends ConsumerState { child: child, ), child: DesktopWalletSummaryRow( - key: Key("DesktopWalletSummaryRow_key_${coin.name}"), + key: Key("DesktopWalletSummaryRow_key_${coin.identifier}"), coin: coin, walletCount: walletsByCoin[index].wallets.length, ), @@ -75,7 +74,7 @@ class DesktopWalletSummaryRow extends ConsumerStatefulWidget { required this.walletCount, }); - final Coin coin; + final CryptoCurrency coin; final int walletCount; @override @@ -91,8 +90,7 @@ class _DesktopWalletSummaryRowState // Check if Tor is enabled... if (ref.read(prefsChangeNotifierProvider).useTor) { // ... and if the coin supports Tor. - final cryptocurrency = SupportedCoins.getCryptoCurrencyFor(widget.coin); - if (!cryptocurrency.torSupport) { + if (!widget.coin.torSupport) { // If not, show a Tor warning dialog. final shouldContinue = await showDialog( context: context, @@ -222,7 +220,7 @@ class _DesktopWalletSummaryRowState class TablePriceInfo extends ConsumerWidget { const TablePriceInfo({Key? key, required this.coin}) : super(key: key); - final Coin coin; + final CryptoCurrency coin; @override Widget build(BuildContext context, WidgetRef ref) { diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart index ee10acb54..9f220ddca 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart @@ -17,20 +17,20 @@ import 'package:stackwallet/providers/global/address_book_service_provider.dart' import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; import 'package:stackwallet/widgets/stack_text_field.dart'; import 'package:stackwallet/widgets/textfield_icon_button.dart'; class AddressBookAddressChooser extends StatefulWidget { const AddressBookAddressChooser({ - Key? key, + super.key, this.coin, - }) : super(key: key); + }); - final Coin? coin; + final CryptoCurrency? coin; @override State createState() => @@ -92,7 +92,7 @@ class _AddressBookAddressChooserState extends State { } for (int i = 0; i < contact.addresses.length; i++) { if (contact.addresses[i].label.toLowerCase().contains(text) || - contact.addresses[i].coin.name.toLowerCase().contains(text) || + contact.addresses[i].coin.identifier.toLowerCase().contains(text) || contact.addresses[i].coin.prettyName.toLowerCase().contains(text) || contact.addresses[i].coin.ticker.toLowerCase().contains(text) || contact.addresses[i].address.toLowerCase().contains(text)) { diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/sub_widgets/contact_list_item.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/sub_widgets/contact_list_item.dart index 7d0be498e..5c6856a1f 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/sub_widgets/contact_list_item.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/sub_widgets/contact_list_item.dart @@ -12,8 +12,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/providers/global/address_book_service_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/expandable.dart'; @@ -22,13 +22,13 @@ import 'package:stackwallet/widgets/wallet_info_row/sub_widgets/wallet_info_row_ class ContactListItem extends ConsumerStatefulWidget { const ContactListItem({ - Key? key, + super.key, required this.contactId, this.filterByCoin, - }) : super(key: key); + }); final String contactId; - final Coin? filterByCoin; + final CryptoCurrency? filterByCoin; @override ConsumerState createState() => _ContactListItemState(); @@ -36,7 +36,7 @@ class ContactListItem extends ConsumerStatefulWidget { class _ContactListItemState extends ConsumerState { late final String contactId; - late final Coin? filterByCoin; + late final CryptoCurrency? filterByCoin; ExpandableState _state = ExpandableState.collapsed; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart index aba28300b..561781cf6 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart @@ -17,8 +17,8 @@ import 'package:stackwallet/providers/desktop/storage_crypto_handler_provider.da import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; import 'package:stackwallet/widgets/loading_indicator.dart'; @@ -30,7 +30,7 @@ class DesktopAuthSend extends ConsumerStatefulWidget { required this.coin, }); - final Coin coin; + final CryptoCurrency coin; @override ConsumerState createState() => _DesktopAuthSendState(); diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart index 255d64c63..f32f36a23 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart @@ -23,9 +23,13 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; @@ -38,10 +42,10 @@ final tokenFeeSessionCacheProvider = class DesktopFeeDropDown extends ConsumerStatefulWidget { const DesktopFeeDropDown({ - Key? key, + super.key, required this.walletId, this.isToken = false, - }) : super(key: key); + }); final String walletId; final bool isToken; @@ -67,7 +71,7 @@ class _DesktopFeeDropDownState extends ConsumerState { required Amount amount, required FeeRateType feeRateType, required int feeRate, - required Coin coin, + required CryptoCurrency coin, }) async { switch (feeRateType) { case FeeRateType.fast: @@ -80,11 +84,11 @@ class _DesktopFeeDropDownState extends ConsumerState { if (widget.isToken == false) { final wallet = ref.read(pWallets).getWallet(walletId); - if (coin == Coin.monero || coin == Coin.wownero) { + if (coin is Monero || coin is Wownero) { final fee = await wallet.estimateFeeFor( amount, MoneroTransactionPriority.fast.raw!); ref.read(feeSheetSessionCacheProvider).fast[amount] = fee; - } else if (coin == Coin.firo || coin == Coin.firoTestNet) { + } else if (coin is Firo) { final Amount fee; switch (ref.read(publicPrivateBalanceStateProvider.state).state) { case FiroType.spark: @@ -124,11 +128,11 @@ class _DesktopFeeDropDownState extends ConsumerState { if (widget.isToken == false) { final wallet = ref.read(pWallets).getWallet(walletId); - if (coin == Coin.monero || coin == Coin.wownero) { + if (coin is Monero || coin is Wownero) { final fee = await wallet.estimateFeeFor( amount, MoneroTransactionPriority.regular.raw!); ref.read(feeSheetSessionCacheProvider).average[amount] = fee; - } else if (coin == Coin.firo || coin == Coin.firoTestNet) { + } else if (coin is Firo) { final Amount fee; switch (ref.read(publicPrivateBalanceStateProvider.state).state) { case FiroType.spark: @@ -168,11 +172,11 @@ class _DesktopFeeDropDownState extends ConsumerState { if (widget.isToken == false) { final wallet = ref.read(pWallets).getWallet(walletId); - if (coin == Coin.monero || coin == Coin.wownero) { + if (coin is Monero || coin is Wownero) { final fee = await wallet.estimateFeeFor( amount, MoneroTransactionPriority.slow.raw!); ref.read(feeSheetSessionCacheProvider).slow[amount] = fee; - } else if (coin == Coin.firo || coin == Coin.firoTestNet) { + } else if (coin is Firo) { final Amount fee; switch (ref.read(publicPrivateBalanceStateProvider.state).state) { case FiroType.spark: @@ -306,7 +310,7 @@ class FeeDropDownChild extends ConsumerWidget { required Amount amount, required FeeRateType feeRateType, required int feeRate, - required Coin coin, + required CryptoCurrency coin, }) feeFor; final bool isSelected; @@ -390,10 +394,10 @@ class FeeDropDownChild extends ConsumerWidget { ), if (feeObject != null) Text( - coin == Coin.ethereum + coin is Ethereum ? "" : estimatedTimeToBeIncludedInNextBlock( - Constants.targetBlockTimeInSeconds(coin), + coin.targetBlockTimeSeconds, feeRateType == FeeRateType.fast ? feeObject!.numberOfBlocksFast : feeRateType == FeeRateType.slow diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart index 6250dfd8e..3f69ccaaf 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart @@ -28,9 +28,9 @@ import 'package:stackwallet/utilities/address_utils.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/multi_address_interface.dart'; @@ -45,11 +45,11 @@ import 'package:tuple/tuple.dart'; class DesktopReceive extends ConsumerStatefulWidget { const DesktopReceive({ - Key? key, + super.key, required this.walletId, this.contractAddress, this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); final String walletId; final String? contractAddress; @@ -60,7 +60,7 @@ class DesktopReceive extends ConsumerStatefulWidget { } class _DesktopReceiveState extends ConsumerState { - late final Coin coin; + late final CryptoCurrency coin; late final String walletId; late final ClipboardInterface clipboard; late final bool supportsSpark; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart index 2614a58d4..d7ed9ceca 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart @@ -41,13 +41,20 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; @@ -73,13 +80,13 @@ import 'package:stackwallet/widgets/textfield_icon_button.dart'; class DesktopSend extends ConsumerStatefulWidget { const DesktopSend({ - Key? key, + super.key, required this.walletId, this.autoFillData, this.clipboard = const ClipboardWrapper(), this.barcodeScanner = const BarcodeScannerWrapper(), this.accountLite, - }) : super(key: key); + }); final String walletId; final SendViewAutoFillData? autoFillData; @@ -93,7 +100,7 @@ class DesktopSend extends ConsumerStatefulWidget { class _DesktopSendState extends ConsumerState { late final String walletId; - late final Coin coin; + late final CryptoCurrency coin; late final ClipboardInterface clipboard; late final BarcodeScannerInterface scanner; @@ -141,7 +148,7 @@ class _DesktopSendState extends ConsumerState { final Amount amount = ref.read(pSendAmount)!; final Amount availableBalance; - if ((coin == Coin.firo || coin == Coin.firoTestNet)) { + if ((coin is Firo)) { switch (ref.read(publicPrivateBalanceStateProvider.state).state) { case FiroType.public: availableBalance = wallet.info.cachedBalance.spendable; @@ -447,7 +454,7 @@ class _DesktopSendState extends ConsumerState { txData = txData.copyWith( note: _note ?? "", ); - if (coin == Coin.epicCash) { + if (coin is Epiccash) { txData = txData.copyWith( noteOnChain: _onChainNote ?? "", ); @@ -658,7 +665,7 @@ class _DesktopSendState extends ConsumerState { // autofill amount field if (results["amount"] != null) { final amount = Decimal.parse(results["amount"]!).toAmount( - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ); cryptoAmountController.text = ref .read(pAmountFormatter(coin)) @@ -721,7 +728,7 @@ class _DesktopSendState extends ConsumerState { content = content.substring(0, content.indexOf("\n")); } - if (coin == Coin.epicCash) { + if (coin is Epiccash) { // strip http:// and https:// if content contains @ content = formatAddress(content); } @@ -764,13 +771,13 @@ class _DesktopSendState extends ConsumerState { ref.read(priceAnd24hChangeNotifierProvider).getPrice(coin).item1; if (_price == Decimal.zero) { - amount = Decimal.zero.toAmount(fractionDigits: coin.decimals); + amount = Decimal.zero.toAmount(fractionDigits: coin.fractionDigits); } else { amount = baseAmount <= Amount.zero - ? Decimal.zero.toAmount(fractionDigits: coin.decimals) + ? Decimal.zero.toAmount(fractionDigits: coin.fractionDigits) : (baseAmount.decimal / _price) - .toDecimal(scaleOnInfinitePrecision: coin.decimals) - .toAmount(fractionDigits: coin.decimals); + .toDecimal(scaleOnInfinitePrecision: coin.fractionDigits) + .toAmount(fractionDigits: coin.fractionDigits); } if (_cachedAmountToSend != null && _cachedAmountToSend == amount) { return; @@ -788,7 +795,7 @@ class _DesktopSendState extends ConsumerState { cryptoAmountController.text = amountString; _cryptoAmountChangeLock = false; } else { - amount = Decimal.zero.toAmount(fractionDigits: coin.decimals); + amount = Decimal.zero.toAmount(fractionDigits: coin.fractionDigits); _cryptoAmountChangeLock = true; cryptoAmountController.text = ""; _cryptoAmountChangeLock = false; @@ -804,26 +811,26 @@ class _DesktopSendState extends ConsumerState { Future sendAllTapped() async { final info = ref.read(pWalletInfo(walletId)); - if (coin == Coin.firo || coin == Coin.firoTestNet) { + if (coin is Firo) { switch (ref.read(publicPrivateBalanceStateProvider.state).state) { case FiroType.public: cryptoAmountController.text = info.cachedBalance.spendable.decimal - .toStringAsFixed(coin.decimals); + .toStringAsFixed(coin.fractionDigits); break; case FiroType.lelantus: cryptoAmountController.text = info .cachedBalanceSecondary.spendable.decimal - .toStringAsFixed(coin.decimals); + .toStringAsFixed(coin.fractionDigits); break; case FiroType.spark: cryptoAmountController.text = info .cachedBalanceTertiary.spendable.decimal - .toStringAsFixed(coin.decimals); + .toStringAsFixed(coin.fractionDigits); break; } } else { - cryptoAmountController.text = - info.cachedBalance.spendable.decimal.toStringAsFixed(coin.decimals); + cryptoAmountController.text = info.cachedBalance.spendable.decimal + .toStringAsFixed(coin.fractionDigits); } } @@ -852,7 +859,7 @@ class _DesktopSendState extends ConsumerState { coin = ref.read(pWalletInfo(walletId)).coin; clipboard = widget.clipboard; scanner = widget.barcodeScanner; - isStellar = coin == Coin.stellar || coin == Coin.stellarTestnet; + isStellar = coin is Stellar; sendToController = TextEditingController(); cryptoAmountController = TextEditingController(); @@ -927,7 +934,7 @@ class _DesktopSendState extends ConsumerState { ); // add listener for epic cash to strip http:// and https:// prefixes if the address also ocntains an @ symbol (indicating an epicbox address) - if (coin == Coin.epicCash) { + if (coin is Epiccash) { sendToController.addListener(() { _address = sendToController.text; @@ -955,7 +962,7 @@ class _DesktopSendState extends ConsumerState { const SizedBox( height: 4, ), - if (coin == Coin.firo || coin == Coin.firoTestNet) + if (coin is Firo) Text( "Send from", style: STextStyles.desktopTextExtraSmall(context).copyWith( @@ -965,11 +972,11 @@ class _DesktopSendState extends ConsumerState { ), textAlign: TextAlign.left, ), - if (coin == Coin.firo || coin == Coin.firoTestNet) + if (coin is Firo) const SizedBox( height: 10, ), - if (coin == Coin.firo || coin == Coin.firoTestNet) + if (coin is Firo) DropdownButtonHideUnderline( child: DropdownButton2( isExpanded: true, @@ -1076,7 +1083,7 @@ class _DesktopSendState extends ConsumerState { ), ), ), - if (coin == Coin.firo || coin == Coin.firoTestNet) + if (coin is Firo) const SizedBox( height: 20, ), @@ -1122,7 +1129,7 @@ class _DesktopSendState extends ConsumerState { ), textAlign: TextAlign.left, ), - if (coin != Coin.ethereum && coin != Coin.tezos) + if (coin is! Ethereum && coin is! Tezos) CustomTextButton( text: "Send all ${coin.ticker}", onTap: sendAllTapped, @@ -1150,7 +1157,7 @@ class _DesktopSendState extends ConsumerState { textAlign: TextAlign.right, inputFormatters: [ AmountInputFormatter( - decimals: coin.decimals, + decimals: coin.fractionDigits, unit: ref.watch(pAmountUnit(coin)), locale: locale, ), @@ -1455,13 +1462,13 @@ class _DesktopSendState extends ConsumerState { if (_address == null || _address!.isEmpty) { error = null; - } else if (coin == Coin.firo || coin == Coin.firoTestNet) { + } else if (coin is Firo) { if (ref.watch(publicPrivateBalanceStateProvider) == FiroType.lelantus) { if (_data != null && _data!.contactLabel == _address) { error = SparkInterface.validateSparkAddress( address: _data!.address, - isTestNet: coin.isTestNet, + isTestNet: coin.network == CryptoCurrencyNetwork.test, ) ? "Lelantus to Spark not supported" : null; @@ -1532,8 +1539,7 @@ class _DesktopSendState extends ConsumerState { Constants.size.circularBorderRadius, ), child: TextField( - maxLength: - (coin == Coin.firo || coin == Coin.firoTestNet) ? 31 : null, + maxLength: (coin is Firo) ? 31 : null, minLines: 1, maxLines: 5, key: const Key("sendViewMemoFieldKey"), @@ -1590,12 +1596,11 @@ class _DesktopSendState extends ConsumerState { const SizedBox( height: 20, ), - if (!([Coin.nano, Coin.banano, Coin.epicCash, Coin.tezos] - .contains(coin))) + if (coin is! NanoCurrency && coin is! Epiccash && coin is! Tezos) ConditionalParent( condition: ref.watch(pWallets).getWallet(walletId) is ElectrumXInterface && - !(((coin == Coin.firo || coin == Coin.firoTestNet) && + !(((coin is Firo) && (ref.watch(publicPrivateBalanceStateProvider.state).state == FiroType.lelantus || ref @@ -1638,7 +1643,7 @@ class _DesktopSendState extends ConsumerState { ), child: Text( "Transaction fee" - "${isCustomFee ? "" : " (${coin == Coin.ethereum ? "max" : "estimated"})"}", + "${isCustomFee ? "" : " (${coin is Ethereum ? "max" : "estimated"})"}", style: STextStyles.desktopTextExtraSmall(context).copyWith( color: Theme.of(context) .extension()! @@ -1647,13 +1652,11 @@ class _DesktopSendState extends ConsumerState { textAlign: TextAlign.left, ), ), - if (!([Coin.nano, Coin.banano, Coin.epicCash, Coin.tezos] - .contains(coin))) + if (coin is! NanoCurrency && coin is! Epiccash && coin is! Tezos) const SizedBox( height: 10, ), - if (!([Coin.nano, Coin.banano, Coin.epicCash, Coin.tezos] - .contains(coin))) + if (coin is! NanoCurrency && coin is! Epiccash && coin is! Tezos) if (!isCustomFee) Padding( padding: const EdgeInsets.all(10), @@ -1676,7 +1679,7 @@ class _DesktopSendState extends ConsumerState { required Amount amount, required FeeRateType feeRateType, required int feeRate, - required Coin coin, + required CryptoCurrency coin, }) async { if (ref .read(feeSheetSessionCacheProvider) @@ -1685,8 +1688,7 @@ class _DesktopSendState extends ConsumerState { final wallet = ref.read(pWallets).getWallet(walletId); - if (coin == Coin.monero || - coin == Coin.wownero) { + if (coin is Monero || coin is Wownero) { final fee = await wallet.estimateFeeFor( amount, MoneroTransactionPriority.regular.raw!, @@ -1694,8 +1696,7 @@ class _DesktopSendState extends ConsumerState { ref .read(feeSheetSessionCacheProvider) .average[amount] = fee; - } else if ((coin == Coin.firo || - coin == Coin.firoTestNet) && + } else if ((coin is Firo) && ref .read( publicPrivateBalanceStateProvider @@ -1764,7 +1765,7 @@ class _DesktopSendState extends ConsumerState { } }, ) - : (coin == Coin.firo || coin == Coin.firoTestNet) && + : (coin is Firo) && ref .watch( publicPrivateBalanceStateProvider.state, @@ -1775,7 +1776,7 @@ class _DesktopSendState extends ConsumerState { "~${ref.watch(pAmountFormatter(coin)).format( Amount( rawValue: BigInt.parse("3794"), - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ), indicatePrecisionLoss: false, )}", diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart index eef67e694..b93850b0b 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart @@ -33,11 +33,12 @@ import 'package:stackwallet/utilities/amount/amount_input_formatter.dart'; import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; import 'package:stackwallet/wallets/isar/providers/eth/token_balance_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; @@ -76,7 +77,7 @@ class DesktopTokenSend extends ConsumerStatefulWidget { class _DesktopTokenSendState extends ConsumerState { late final String walletId; - late final Coin coin; + late final CryptoCurrency coin; late final ClipboardInterface clipboard; late final BarcodeScannerInterface scanner; @@ -224,7 +225,7 @@ class _DesktopTokenSendState extends ConsumerState { child: Padding( padding: const EdgeInsets.all(32), child: BuildingTransactionDialog( - coin: tokenWallet.cryptoCurrency.coin, + coin: tokenWallet.cryptoCurrency, isSpark: false, onCancel: () { wasCancelled = true; @@ -719,7 +720,7 @@ class _DesktopTokenSendState extends ConsumerState { const SizedBox( height: 4, ), - if (coin == Coin.firo) + if (coin is Firo) Text( "Send from", style: STextStyles.desktopTextExtraSmall(context).copyWith( diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart index d655879e8..3cef858d3 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart @@ -34,9 +34,10 @@ import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; @@ -50,9 +51,9 @@ import 'package:stackwallet/widgets/loading_indicator.dart'; class DesktopWalletFeatures extends ConsumerStatefulWidget { const DesktopWalletFeatures({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -357,10 +358,9 @@ class _DesktopWalletFeaturesState extends ConsumerState { (value) => value.enableCoinControl, ), )) || - coin == Coin.firo || - coin == Coin.firoTestNet || + coin is Firo || // manager.hasWhirlpoolSupport || - coin == Coin.banano || + coin is Banano || wallet is OrdinalsInterface || wallet is CashFusionInterface; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart index 77a5f0f5f..a52ee3d71 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart @@ -20,9 +20,9 @@ import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/wallet_balance_toggle_state.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; import 'package:stackwallet/wallets/isar/providers/eth/token_balance_provider.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; @@ -63,7 +63,7 @@ class _WDesktopWalletSummaryState extends ConsumerState { ), ); final coin = ref.watch(pWalletCoin(widget.walletId)); - final isFiro = coin == Coin.firo || coin == Coin.firoTestNet; + final isFiro = coin is Firo; final locale = ref.watch( localeServiceChangeNotifierProvider.select((value) => value.locale)); @@ -154,12 +154,11 @@ class _WDesktopWalletSummaryState extends ConsumerState { ? ref.watch(pCurrentTokenWallet)!.tokenContract.address : null, ), - if (coin == Coin.firo || coin == Coin.firoTestNet) + if (coin is Firo) const SizedBox( width: 8, ), - if (coin == Coin.firo || coin == Coin.firoTestNet) - const DesktopPrivateBalanceToggleButton(), + if (coin is Firo) const DesktopPrivateBalanceToggleButton(), const SizedBox( width: 8, ), diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart index 1eaccd885..70ce9e32b 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart @@ -15,8 +15,9 @@ import 'package:stackwallet/providers/global/prefs_provider.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; @@ -85,8 +86,7 @@ class _MoreFeaturesDialogState extends ConsumerState { const DesktopDialogCloseButton(), ], ), - if (wallet.info.coin == Coin.firo || - wallet.info.coin == Coin.firoTestNet) + if (wallet.info.coin is Firo) _MoreFeaturesItem( label: "Anonymize funds", detail: "Anonymize funds", @@ -122,7 +122,7 @@ class _MoreFeaturesDialogState extends ConsumerState { iconAsset: Assets.svg.ordinal, onPressed: () => widget.onOrdinalsPressed?.call(), ), - if (wallet.info.coin == Coin.banano) + if (wallet.info.coin is Banano) _MoreFeaturesItem( label: "MonKey", detail: "Generate Banano MonKey", @@ -147,12 +147,12 @@ class _MoreFeaturesDialogState extends ConsumerState { class _MoreFeaturesItem extends StatelessWidget { const _MoreFeaturesItem({ - Key? key, + super.key, required this.label, required this.detail, required this.iconAsset, this.onPressed, - }) : super(key: key); + }); static const double iconSizeBG = 46; static const double iconSize = 24; @@ -209,7 +209,7 @@ class _MoreFeaturesItem extends StatelessWidget { style: STextStyles.desktopTextExtraExtraSmall(context), ), ], - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart index 63974518b..e7596dd2d 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart @@ -18,7 +18,8 @@ import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart'; import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; import 'package:stackwallet/widgets/custom_tab_view.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; @@ -46,7 +47,7 @@ class _MyWalletState extends ConsumerState { ]; late final bool isEth; - late final Coin coin; + late final CryptoCurrency coin; late final bool isFrost; @override @@ -54,7 +55,7 @@ class _MyWalletState extends ConsumerState { final wallet = ref.read(pWallets).getWallet(widget.walletId); coin = wallet.info.coin; isFrost = wallet is BitcoinFrostWallet; - isEth = coin == Coin.ethereum; + isEth = coin is Ethereum; if (isEth && widget.contractAddress == null) { titles.add("Transactions"); diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_options_button.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_options_button.dart index c27b7855d..916201c8f 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_options_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_options_button.dart @@ -25,8 +25,10 @@ import 'package:stackwallet/route_generator.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; enum _WalletOptions { @@ -60,9 +62,9 @@ enum _WalletOptions { class WalletOptionsButton extends StatelessWidget { const WalletOptionsButton({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -250,7 +252,7 @@ class WalletOptionsButton extends StatelessWidget { class WalletOptionsPopupMenu extends ConsumerWidget { const WalletOptionsPopupMenu({ - Key? key, + super.key, required this.onDeletePressed, required this.onAddressListPressed, required this.onShowXpubPressed, @@ -259,7 +261,7 @@ class WalletOptionsPopupMenu extends ConsumerWidget { required this.onFiroShowSparkCoins, required this.onFrostMSWalletOptionsPressed, required this.walletId, - }) : super(key: key); + }); final VoidCallback onDeletePressed; final VoidCallback onAddressListPressed; @@ -274,17 +276,15 @@ class WalletOptionsPopupMenu extends ConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final coin = ref.watch(pWalletCoin(walletId)); - final firoDebug = - kDebugMode && (coin == Coin.firo || coin == Coin.firoTestNet); + final firoDebug = kDebugMode && (coin is Firo); // TODO: [prio=low] // final bool xpubEnabled = manager.hasXPub; final bool xpubEnabled = false; - final bool canChangeRep = coin == Coin.nano || coin == Coin.banano; + final bool canChangeRep = coin is NanoCurrency; - final bool isFrost = - coin == Coin.bitcoinFrost || coin == Coin.bitcoinFrostTestNet; + final bool isFrost = coin is FrostCurrency; return Stack( children: [ diff --git a/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart b/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart index b258d0a5e..b4a4af07f 100644 --- a/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart +++ b/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart @@ -18,7 +18,6 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/utilities/show_loading.dart'; import 'package:stackwallet/utilities/text_styles.dart'; @@ -298,7 +297,7 @@ class _DesktopOrdinalDetailsViewState : ref.watch(pAmountFormatter(coin)).format( Amount( rawValue: BigInt.from(utxo!.value), - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ), ), ); diff --git a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart index 2fd6431c1..0d4d88328 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart @@ -14,13 +14,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/providers/global/prefs_provider.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/block_explorers.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; @@ -29,18 +30,22 @@ import 'package:stackwallet/widgets/rounded_white_container.dart'; class DesktopManageBlockExplorersDialog extends ConsumerWidget { const DesktopManageBlockExplorersDialog({ - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, WidgetRef ref) { - bool showTestNet = ref.watch( + final bool showTestNet = ref.watch( prefsChangeNotifierProvider.select((value) => value.showTestNetCoins), ); - final List coins = showTestNet - ? Coin.values - : Coin.values.where((e) => !e.isTestNet).toList(); + final coins = showTestNet + ? SupportedCoins.cryptocurrencies + : SupportedCoins.cryptocurrencies + .where( + (e) => e.network == CryptoCurrencyNetwork.main, + ) + .toList(); return DesktopDialog( maxHeight: 850, @@ -139,7 +144,7 @@ class _DesktopEditBlockExplorerDialog extends ConsumerStatefulWidget { const _DesktopEditBlockExplorerDialog({Key? key, required this.coin}) : super(key: key); - final Coin coin; + final CryptoCurrency coin; @override ConsumerState<_DesktopEditBlockExplorerDialog> createState() => diff --git a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart index eec6e1a5f..53cc15f37 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart @@ -16,13 +16,17 @@ import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/route_generator.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:stackwallet/widgets/stack_text_field.dart'; @@ -38,7 +42,7 @@ class NodesSettings extends ConsumerStatefulWidget { } class _NodesSettings extends ConsumerState { - List _coins = [...Coin.values]; + List _coins = [...SupportedCoins.cryptocurrencies]; late final TextEditingController searchNodeController; late final FocusNode searchNodeFocusNode; @@ -47,14 +51,14 @@ class _NodesSettings extends ConsumerState { String filter = ""; - List _search(String filter, List coins) { + List _search(String filter, List coins) { if (filter.isEmpty) { return coins; } return coins .where((coin) => coin.prettyName.contains(filter) || - coin.name.contains(filter) || + coin.identifier.contains(filter) || coin.ticker.toLowerCase().contains(filter.toLowerCase())) .toList(); } @@ -64,12 +68,15 @@ class _NodesSettings extends ConsumerState { @override void initState() { _coins = _coins.toList(); - _coins.remove(Coin.firoTestNet); + _coins.removeWhere( + (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + ); if (Platform.isWindows) { - _coins.remove(Coin.monero); - _coins.remove(Coin.wownero); + _coins.removeWhere( + (e) => e is Monero && e is Wownero, + ); } else if (Platform.isLinux) { - _coins.remove(Coin.wownero); + _coins.removeWhere((e) => e is Wownero); } searchNodeController = TextEditingController(); @@ -93,12 +100,17 @@ class _NodesSettings extends ConsumerState { Widget build(BuildContext context) { debugPrint("BUILD: $runtimeType"); - bool showTestNet = ref.watch( + final bool showTestNet = ref.watch( prefsChangeNotifierProvider.select((value) => value.showTestNetCoins), ); - List coins = - showTestNet ? _coins : _coins.where((e) => !e.isTestNet).toList(); + List coins = showTestNet + ? _coins + : _coins + .where( + (e) => e.network == CryptoCurrencyNetwork.main, + ) + .toList(); coins = _search(filter, coins); diff --git a/lib/providers/exchange/exchange_form_state_provider.dart b/lib/providers/exchange/exchange_form_state_provider.dart index b4a923b78..b8ad1c2f9 100644 --- a/lib/providers/exchange/exchange_form_state_provider.dart +++ b/lib/providers/exchange/exchange_form_state_provider.dart @@ -18,8 +18,10 @@ import 'package:stackwallet/services/exchange/exchange.dart'; import 'package:stackwallet/services/exchange/exchange_response.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; + import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/nano.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; final efEstimatesListProvider = StateProvider.family< @@ -56,8 +58,9 @@ final efSendAmountStringProvider = StateProvider((ref) { string = AmountUnit.normal.displayAmount( amount: amount, locale: locale, - coin: Coin - .nano, // use nano just to ensure decimal.scale < Coin.value.decimals + coin: Nano( + CryptoCurrencyNetwork.main, + ), // use nano just to ensure decimal.scale < Coin.value.decimals withUnitName: false, maxDecimalPlaces: decimal.scale, ); @@ -81,8 +84,9 @@ final efReceiveAmountStringProvider = StateProvider((ref) { string = AmountUnit.normal.displayAmount( amount: amount, locale: locale, - coin: Coin - .nano, // use nano just to ensure decimal.scale < Coin.value.decimals + coin: Nano( + CryptoCurrencyNetwork.main, + ), // use nano just to ensure decimal.scale < Coin.value.decimals withUnitName: false, maxDecimalPlaces: decimal.scale, ); diff --git a/lib/providers/exchange/exchange_send_from_wallet_id_provider.dart b/lib/providers/exchange/exchange_send_from_wallet_id_provider.dart index b2fbec990..3a1c4c452 100644 --- a/lib/providers/exchange/exchange_send_from_wallet_id_provider.dart +++ b/lib/providers/exchange/exchange_send_from_wallet_id_provider.dart @@ -9,8 +9,8 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; final exchangeSendFromWalletIdStateProvider = - StateProvider?>((ref) => null); + StateProvider?>((ref) => null); diff --git a/lib/providers/ui/preview_tx_button_state_provider.dart b/lib/providers/ui/preview_tx_button_state_provider.dart index 768edf301..0c3b1061f 100644 --- a/lib/providers/ui/preview_tx_button_state_provider.dart +++ b/lib/providers/ui/preview_tx_button_state_provider.dart @@ -11,18 +11,18 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; final pSendAmount = StateProvider.autoDispose((_) => null); final pValidSendToAddress = StateProvider.autoDispose((_) => false); final pValidSparkSendToAddress = StateProvider.autoDispose((_) => false); final pPreviewTxButtonEnabled = - Provider.autoDispose.family((ref, coin) { + Provider.autoDispose.family((ref, coin) { final amount = ref.watch(pSendAmount) ?? Amount.zero; - // TODO [prio=low]: move away from Coin - if (coin == Coin.firo || coin == Coin.firoTestNet) { + if (coin is Firo) { if (ref.watch(publicPrivateBalanceStateProvider) == FiroType.lelantus) { return ref.watch(pValidSendToAddress) && !ref.watch(pValidSparkSendToAddress) && diff --git a/lib/route_generator.dart b/lib/route_generator.dart index 62bae2bbd..1e32c9969 100644 --- a/lib/route_generator.dart +++ b/lib/route_generator.dart @@ -188,7 +188,7 @@ import 'package:stackwallet/services/event_bus/events/global/node_connection_sta import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/enums/add_wallet_type_enum.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/wallet.dart'; @@ -211,21 +211,24 @@ class RouteGenerator { switch (settings.name) { case IntroView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const IntroView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const IntroView(), + settings: RouteSettings(name: settings.name), + ); case DeleteAccountView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const DeleteAccountView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const DeleteAccountView(), + settings: RouteSettings(name: settings.name), + ); case HomeView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const HomeView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const HomeView(), + settings: RouteSettings(name: settings.name), + ); case CreatePinView.routeName: if (args is bool) { @@ -240,9 +243,10 @@ class RouteGenerator { ); } return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const CreatePinView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const CreatePinView(), + settings: RouteSettings(name: settings.name), + ); case StackPrivacyCalls.routeName: if (args is bool) { @@ -253,9 +257,10 @@ class RouteGenerator { ); } return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const StackPrivacyCalls(isSettings: false), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const StackPrivacyCalls(isSettings: false), + settings: RouteSettings(name: settings.name), + ); case ChooseCoinView.routeName: if (args is Tuple3) { @@ -274,7 +279,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case ManageExplorerView.routeName: - if (args is Coin) { + if (args is CryptoCurrency) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => ManageExplorerView( @@ -303,15 +308,17 @@ class RouteGenerator { case WalletsView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const WalletsView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const WalletsView(), + settings: RouteSettings(name: settings.name), + ); case AddWalletView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const AddWalletView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const AddWalletView(), + settings: RouteSettings(name: settings.name), + ); case EditWalletTokensView.routeName: if (args is String) { @@ -376,7 +383,7 @@ class RouteGenerator { ); case WalletsOverview.routeName: - if (args is Coin) { + if (args is CryptoCurrency) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => WalletsOverview( @@ -556,7 +563,7 @@ class RouteGenerator { case FrostSendView.routeName: if (args is ({ String walletId, - Coin coin, + CryptoCurrency coin, })) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, @@ -675,9 +682,10 @@ class RouteGenerator { case OrdinalsFilterView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const OrdinalsFilterView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const OrdinalsFilterView(), + settings: RouteSettings(name: settings.name), + ); case UtxoDetailsView.routeName: if (args is Tuple2) { @@ -780,12 +788,13 @@ class RouteGenerator { case GlobalSettingsView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const GlobalSettingsView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const GlobalSettingsView(), + settings: RouteSettings(name: settings.name), + ); case AddressBookView.routeName: - if (args is Coin) { + if (args is CryptoCurrency) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => AddressBookView( @@ -797,87 +806,101 @@ class RouteGenerator { ); } return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const AddressBookView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const AddressBookView(), + settings: RouteSettings(name: settings.name), + ); case AddressBookFilterView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const AddressBookFilterView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const AddressBookFilterView(), + settings: RouteSettings(name: settings.name), + ); case StackBackupView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const StackBackupView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const StackBackupView(), + settings: RouteSettings(name: settings.name), + ); case AutoBackupView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const AutoBackupView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const AutoBackupView(), + settings: RouteSettings(name: settings.name), + ); case EditAutoBackupView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const EditAutoBackupView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const EditAutoBackupView(), + settings: RouteSettings(name: settings.name), + ); case CreateAutoBackupView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const CreateAutoBackupView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const CreateAutoBackupView(), + settings: RouteSettings(name: settings.name), + ); case SecurityView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const SecurityView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const SecurityView(), + settings: RouteSettings(name: settings.name), + ); case ChangePinView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const ChangePinView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const ChangePinView(), + settings: RouteSettings(name: settings.name), + ); case BaseCurrencySettingsView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const BaseCurrencySettingsView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const BaseCurrencySettingsView(), + settings: RouteSettings(name: settings.name), + ); case LanguageSettingsView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const LanguageSettingsView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const LanguageSettingsView(), + settings: RouteSettings(name: settings.name), + ); case TorSettingsView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const TorSettingsView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const TorSettingsView(), + settings: RouteSettings(name: settings.name), + ); case TorSettings.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const TorSettings(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const TorSettings(), + settings: RouteSettings(name: settings.name), + ); case AboutView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const AboutView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const AboutView(), + settings: RouteSettings(name: settings.name), + ); case DebugView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const DebugView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const DebugView(), + settings: RouteSettings(name: settings.name), + ); case XPubView.routeName: if (args is String) { @@ -909,69 +932,80 @@ class RouteGenerator { case AppearanceSettingsView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const AppearanceSettingsView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const AppearanceSettingsView(), + settings: RouteSettings(name: settings.name), + ); case SyncingPreferencesView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const SyncingPreferencesView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const SyncingPreferencesView(), + settings: RouteSettings(name: settings.name), + ); case StartupPreferencesView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const StartupPreferencesView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const StartupPreferencesView(), + settings: RouteSettings(name: settings.name), + ); case StartupWalletSelectionView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const StartupWalletSelectionView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const StartupWalletSelectionView(), + settings: RouteSettings(name: settings.name), + ); case ManageNodesView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const ManageNodesView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const ManageNodesView(), + settings: RouteSettings(name: settings.name), + ); case SyncingOptionsView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const SyncingOptionsView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const SyncingOptionsView(), + settings: RouteSettings(name: settings.name), + ); case WalletSyncingOptionsView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const WalletSyncingOptionsView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const WalletSyncingOptionsView(), + settings: RouteSettings(name: settings.name), + ); case AdvancedSettingsView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const AdvancedSettingsView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const AdvancedSettingsView(), + settings: RouteSettings(name: settings.name), + ); case SupportView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const SupportView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const SupportView(), + settings: RouteSettings(name: settings.name), + ); case AddAddressBookEntryView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const AddAddressBookEntryView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const AddAddressBookEntryView(), + settings: RouteSettings(name: settings.name), + ); case RestoreFromFileView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const RestoreFromFileView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const RestoreFromFileView(), + settings: RouteSettings(name: settings.name), + ); case RestoreFromEncryptedStringView.routeName: if (args is String) { @@ -989,12 +1023,13 @@ class RouteGenerator { case ManageCoinUnitsView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const ManageCoinUnitsView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const ManageCoinUnitsView(), + settings: RouteSettings(name: settings.name), + ); case EditCoinUnitsView.routeName: - if (args is Coin) { + if (args is CryptoCurrency) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => EditCoinUnitsView( @@ -1009,24 +1044,27 @@ class RouteGenerator { case CreateBackupInfoView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const CreateBackupInfoView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const CreateBackupInfoView(), + settings: RouteSettings(name: settings.name), + ); case CreateBackupView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const CreateBackupView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const CreateBackupView(), + settings: RouteSettings(name: settings.name), + ); case HiddenSettings.routeName: return getRoute( - shouldUseMaterialRoute: false, - builder: (_) => const HiddenSettings(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: false, + builder: (_) => const HiddenSettings(), + settings: RouteSettings(name: settings.name), + ); case CoinNodesView.routeName: - if (args is Coin) { + if (args is CryptoCurrency) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => CoinNodesView( @@ -1040,7 +1078,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case NodeDetailsView.routeName: - if (args is Tuple3) { + if (args is Tuple3) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => NodeDetailsView( @@ -1100,7 +1138,8 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case AddEditNodeView.routeName: - if (args is Tuple4) { + if (args + is Tuple4) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => AddEditNodeView( @@ -1291,7 +1330,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case NameYourWalletView.routeName: - if (args is Tuple2) { + if (args is Tuple2) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => NameYourWalletView( @@ -1306,7 +1345,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case NewWalletRecoveryPhraseWarningView.routeName: - if (args is Tuple2) { + if (args is Tuple2) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => NewWalletRecoveryPhraseWarningView( @@ -1321,7 +1360,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case RestoreOptionsView.routeName: - if (args is Tuple2) { + if (args is Tuple2) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => RestoreOptionsView( @@ -1336,7 +1375,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case NewWalletOptionsView.routeName: - if (args is Tuple2) { + if (args is Tuple2) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => NewWalletOptionsView( @@ -1351,15 +1390,16 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case RestoreWalletView.routeName: - if (args is Tuple5) { + if (args is Tuple5) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => RestoreWalletView( - walletName: args.item1, - coin: args.item2, - seedWordsLength: args.item3, - restoreFromDate: args.item4, - mnemonicPassphrase: args.item5), + walletName: args.item1, + coin: args.item2, + seedWordsLength: args.item3, + restoreFromDate: args.item4, + mnemonicPassphrase: args.item5, + ), settings: RouteSettings( name: settings.name, ), @@ -1399,8 +1439,9 @@ class RouteGenerator { case ManageFavoritesView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const ManageFavoritesView()); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const ManageFavoritesView(), + ); case WalletView.routeName: if (args is String) { @@ -1417,7 +1458,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case TransactionDetailsView.routeName: - if (args is Tuple3) { + if (args is Tuple3) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => TransactionDetailsView( @@ -1433,7 +1474,11 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case TransactionV2DetailsView.routeName: - if (args is ({TransactionV2 tx, Coin coin, String walletId})) { + if (args is ({ + TransactionV2 tx, + CryptoCurrency coin, + String walletId + })) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => TransactionV2DetailsView( @@ -1451,7 +1496,7 @@ class RouteGenerator { case FusionGroupDetailsView.routeName: if (args is ({ List transactions, - Coin coin, + CryptoCurrency coin, String walletId })) { return getRoute( @@ -1509,7 +1554,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case TransactionSearchFilterView.routeName: - if (args is Coin) { + if (args is CryptoCurrency) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => TransactionSearchFilterView( @@ -1577,7 +1622,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case SendView.routeName: - if (args is Tuple2) { + if (args is Tuple2) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => SendView( @@ -1588,7 +1633,8 @@ class RouteGenerator { name: settings.name, ), ); - } else if (args is Tuple3) { + } else if (args + is Tuple3) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => SendView( @@ -1600,7 +1646,7 @@ class RouteGenerator { name: settings.name, ), ); - } else if (args is Tuple3) { + } else if (args is Tuple3) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => SendView( @@ -1612,7 +1658,7 @@ class RouteGenerator { name: settings.name, ), ); - } else if (args is ({Coin coin, String walletId})) { + } else if (args is ({CryptoCurrency coin, String walletId})) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => SendView( @@ -1628,7 +1674,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case TokenSendView.routeName: - if (args is Tuple3) { + if (args is Tuple3) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => TokenSendView( @@ -1660,7 +1706,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case WalletInitiatedExchangeView.routeName: - if (args is Tuple2) { + if (args is Tuple2) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => Stack( @@ -1679,7 +1725,7 @@ class RouteGenerator { ), ); } - if (args is Tuple3) { + if (args is Tuple3) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => Stack( @@ -1716,8 +1762,8 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case WalletSettingsView.routeName: - if (args - is Tuple4) { + if (args is Tuple4) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => WalletSettingsView( @@ -1845,7 +1891,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case ChooseFromStackView.routeName: - if (args is Coin) { + if (args is CryptoCurrency) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => ChooseFromStackView( @@ -1859,7 +1905,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case SendFromView.routeName: - if (args is Tuple4) { + if (args is Tuple4) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => SendFromView( @@ -1876,7 +1922,7 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case GenerateUriQrCodeView.routeName: - if (args is Tuple2) { + if (args is Tuple2) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => GenerateUriQrCodeView( @@ -1918,21 +1964,24 @@ class RouteGenerator { ); } return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const CreatePasswordView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const CreatePasswordView(), + settings: RouteSettings(name: settings.name), + ); case ForgotPasswordDesktopView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const ForgotPasswordDesktopView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const ForgotPasswordDesktopView(), + settings: RouteSettings(name: settings.name), + ); case ForgottenPassphraseRestoreFromSWB.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const ForgottenPassphraseRestoreFromSWB(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const ForgottenPassphraseRestoreFromSWB(), + settings: RouteSettings(name: settings.name), + ); case DeletePasswordWarningView.routeName: if (args is bool) { @@ -1950,30 +1999,34 @@ class RouteGenerator { case DesktopHomeView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const DesktopHomeView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const DesktopHomeView(), + settings: RouteSettings(name: settings.name), + ); case DesktopNotificationsView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const DesktopNotificationsView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const DesktopNotificationsView(), + settings: RouteSettings(name: settings.name), + ); case DesktopExchangeView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const DesktopExchangeView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const DesktopExchangeView(), + settings: RouteSettings(name: settings.name), + ); case BuyView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const BuyView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const BuyView(), + settings: RouteSettings(name: settings.name), + ); case BuyInWalletView.routeName: - if (args is Coin) { + if (args is CryptoCurrency) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => BuyInWalletView(coin: args), @@ -1982,7 +2035,7 @@ class RouteGenerator { ), ); } - if (args is Tuple2) { + if (args is Tuple2) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => BuyInWalletView( @@ -1998,27 +2051,31 @@ class RouteGenerator { case DesktopBuyView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const DesktopBuyView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const DesktopBuyView(), + settings: RouteSettings(name: settings.name), + ); case DesktopAllTradesView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const DesktopAllTradesView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const DesktopAllTradesView(), + settings: RouteSettings(name: settings.name), + ); case DesktopSettingsView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const DesktopSettingsView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const DesktopSettingsView(), + settings: RouteSettings(name: settings.name), + ); case MyStackView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const MyStackView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const MyStackView(), + settings: RouteSettings(name: settings.name), + ); case DesktopWalletView.routeName: if (args is String) { @@ -2092,75 +2149,87 @@ class RouteGenerator { case BackupRestoreSettings.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const BackupRestoreSettings(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const BackupRestoreSettings(), + settings: RouteSettings(name: settings.name), + ); case SecuritySettings.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const SecuritySettings(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const SecuritySettings(), + settings: RouteSettings(name: settings.name), + ); case CurrencySettings.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const CurrencySettings(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const CurrencySettings(), + settings: RouteSettings(name: settings.name), + ); case LanguageOptionSettings.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const LanguageOptionSettings(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const LanguageOptionSettings(), + settings: RouteSettings(name: settings.name), + ); case NodesSettings.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const NodesSettings(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const NodesSettings(), + settings: RouteSettings(name: settings.name), + ); case SyncingPreferencesSettings.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const SyncingPreferencesSettings(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const SyncingPreferencesSettings(), + settings: RouteSettings(name: settings.name), + ); case AppearanceOptionSettings.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const AppearanceOptionSettings(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const AppearanceOptionSettings(), + settings: RouteSettings(name: settings.name), + ); case ManageThemesView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const ManageThemesView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const ManageThemesView(), + settings: RouteSettings(name: settings.name), + ); case AdvancedSettings.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const AdvancedSettings(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const AdvancedSettings(), + settings: RouteSettings(name: settings.name), + ); case DesktopSupportView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const DesktopSupportView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const DesktopSupportView(), + settings: RouteSettings(name: settings.name), + ); case DesktopAboutView.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const DesktopAboutView(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const DesktopAboutView(), + settings: RouteSettings(name: settings.name), + ); case DesktopAddressBook.routeName: return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const DesktopAddressBook(), - settings: RouteSettings(name: settings.name)); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const DesktopAddressBook(), + settings: RouteSettings(name: settings.name), + ); case WalletKeysDesktopPopup.routeName: if (args is ({ @@ -2413,13 +2482,15 @@ class RouteGenerator { ), body: Center( child: Text( - 'Error handling route, this is not supposed to happen. Try restarting the app.\n$message'), + 'Error handling route, this is not supposed to happen. Try restarting the app.\n$message', + ), ), ); return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => errorView); + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => errorView, + ); } } diff --git a/lib/services/address_book_service.dart b/lib/services/address_book_service.dart index d925a3b0d..43bbc2ff7 100644 --- a/lib/services/address_book_service.dart +++ b/lib/services/address_book_service.dart @@ -12,11 +12,10 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; import 'package:stackwallet/db/isar/main_db.dart'; import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; class AddressBookService extends ChangeNotifier { ContactEntry getContactById(String id) { - ContactEntry? contactEntry = MainDB.instance.getContactEntry(id: id); + final ContactEntry? contactEntry = MainDB.instance.getContactEntry(id: id); if (contactEntry == null) { throw Exception('Contact ID "$id" not found!'); } else { @@ -30,7 +29,7 @@ class AddressBookService extends ChangeNotifier { //TODO search using isar queries Future> search(String text) async { if (text.isEmpty) return contacts; - var results = contacts.toList(); + final results = contacts.toList(); results.retainWhere((contact) => matches(text, contact)); @@ -47,7 +46,7 @@ class AddressBookService extends ChangeNotifier { } for (int i = 0; i < contact.addresses.length; i++) { if (contact.addresses[i].label.toLowerCase().contains(text) || - contact.addresses[i].coin.name.toLowerCase().contains(text) || + contact.addresses[i].coin.identifier.toLowerCase().contains(text) || contact.addresses[i].coin.prettyName.toLowerCase().contains(text) || contact.addresses[i].coin.ticker.toLowerCase().contains(text) || contact.addresses[i].address.toLowerCase().contains(text)) { diff --git a/lib/services/buy/simplex/simplex_api.dart b/lib/services/buy/simplex/simplex_api.dart index 6ab2736e4..e0e00dd5d 100644 --- a/lib/services/buy/simplex/simplex_api.dart +++ b/lib/services/buy/simplex/simplex_api.dart @@ -19,7 +19,7 @@ import 'package:stackwallet/models/buy/response_objects/quote.dart'; import 'package:stackwallet/networking/http.dart'; import 'package:stackwallet/services/buy/buy_response.dart'; import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/enums/fiat_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; @@ -47,30 +47,34 @@ class SimplexAPI { Future>> getSupportedCryptos() async { try { - Map headers = { + final Map headers = { 'Content-Type': 'application/x-www-form-urlencoded', }; - Map data = { + final Map data = { 'ROUTE': 'supported_cryptos', }; - Uri url = _buildUri('api.php', data); + final Uri url = _buildUri('api.php', data); - var res = await client.post( + final res = await client.post( url: url, headers: headers, - proxyInfo: - Prefs.instance.useTor ? TorService.sharedInstance.getProxyInfo() : null, + proxyInfo: Prefs.instance.useTor + ? TorService.sharedInstance.getProxyInfo() + : null, ); if (res.code != 200) { throw Exception( - 'getAvailableCurrencies exception: statusCode= ${res.code}'); + 'getAvailableCurrencies exception: statusCode= ${res.code}', + ); } final jsonArray = jsonDecode(res.body); // TODO handle if invalid json return _parseSupportedCryptos(jsonArray); } catch (e, s) { - Logging.instance.log("getAvailableCurrencies exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableCurrencies exception: $e\n$s", + level: LogLevel.Error, + ); return BuyResponse( exception: BuyException( e.toString(), @@ -82,19 +86,20 @@ class SimplexAPI { BuyResponse> _parseSupportedCryptos(dynamic jsonArray) { try { - List cryptos = []; - List fiats = []; + final List cryptos = []; for (final crypto in jsonArray as List) { // TODO validate jsonArray if (isStackCoin("${crypto['ticker_symbol']}")) { - cryptos.add(Crypto.fromJson({ - 'ticker': "${crypto['ticker_symbol']}", - 'name': crypto['name'], - 'network': "${crypto['network']}", - 'contractAddress': "${crypto['contractAddress']}", - 'image': "", - })); + cryptos.add( + Crypto.fromJson({ + 'ticker': "${crypto['ticker_symbol']}", + 'name': crypto['name'], + 'network': "${crypto['network']}", + 'contractAddress': "${crypto['contractAddress']}", + 'image': "", + }), + ); } } @@ -113,30 +118,34 @@ class SimplexAPI { Future>> getSupportedFiats() async { try { - Map headers = { + final Map headers = { 'Content-Type': 'application/x-www-form-urlencoded', }; - Map data = { + final Map data = { 'ROUTE': 'supported_fiats', }; - Uri url = _buildUri('api.php', data); + final Uri url = _buildUri('api.php', data); - var res = await client.post( + final res = await client.post( url: url, headers: headers, - proxyInfo: - Prefs.instance.useTor ? TorService.sharedInstance.getProxyInfo() : null, + proxyInfo: Prefs.instance.useTor + ? TorService.sharedInstance.getProxyInfo() + : null, ); if (res.code != 200) { throw Exception( - 'getAvailableCurrencies exception: statusCode= ${res.code}'); + 'getAvailableCurrencies exception: statusCode= ${res.code}', + ); } final jsonArray = jsonDecode(res.body); // TODO validate json return _parseSupportedFiats(jsonArray); } catch (e, s) { - Logging.instance.log("getAvailableCurrencies exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableCurrencies exception: $e\n$s", + level: LogLevel.Error, + ); return BuyResponse( exception: BuyException( e.toString(), @@ -148,20 +157,22 @@ class SimplexAPI { BuyResponse> _parseSupportedFiats(dynamic jsonArray) { try { - List cryptos = []; - List fiats = []; + final List cryptos = []; + final List fiats = []; for (final fiat in jsonArray as List) { if (isSimplexFiat("${fiat['ticker_symbol']}")) { // TODO validate list - fiats.add(Fiat.fromJson({ - 'ticker': "${fiat['ticker_symbol']}", - 'name': fiatFromTickerCaseInsensitive("${fiat['ticker_symbol']}") - .prettyName, - 'minAmount': "${fiat['min_amount']}", - 'maxAmount': "${fiat['max_amount']}", - 'image': "", - })); + fiats.add( + Fiat.fromJson({ + 'ticker': "${fiat['ticker_symbol']}", + 'name': fiatFromTickerCaseInsensitive("${fiat['ticker_symbol']}") + .prettyName, + 'minAmount': "${fiat['min_amount']}", + 'maxAmount': "${fiat['max_amount']}", + 'image': "", + }), + ); } // TODO handle else } @@ -181,12 +192,12 @@ class SimplexAPI { Future> getQuote(SimplexQuote quote) async { try { await _prefs.init(); - String? userID = _prefs.userID; + final String? userID = _prefs.userID; - Map headers = { + final Map headers = { 'Content-Type': 'application/x-www-form-urlencoded', }; - Map data = { + final Map data = { 'ROUTE': 'quote', 'CRYPTO_TICKER': quote.crypto.ticker.toUpperCase(), 'FIAT_TICKER': quote.fiat.ticker.toUpperCase(), @@ -200,13 +211,14 @@ class SimplexAPI { if (userID != null) { data['USER_ID'] = userID; } - Uri url = _buildUri('api.php', data); + final Uri url = _buildUri('api.php', data); - var res = await client.get( + final res = await client.get( url: url, headers: headers, - proxyInfo: - Prefs.instance.useTor ? TorService.sharedInstance.getProxyInfo() : null, + proxyInfo: Prefs.instance.useTor + ? TorService.sharedInstance.getProxyInfo() + : null, ); if (res.code != 200) { throw Exception('getQuote exception: statusCode= ${res.code}'); @@ -238,10 +250,11 @@ class SimplexAPI { // final Map lol = // Map.from(jsonArray as Map); - double? cryptoAmount = jsonArray['digital_money']?['amount'] as double?; + final double? cryptoAmount = + jsonArray['digital_money']?['amount'] as double?; if (cryptoAmount == null) { - String error = jsonArray['error'] as String; + final String error = jsonArray['error'] as String; return BuyResponse( exception: BuyException( error, @@ -250,7 +263,7 @@ class SimplexAPI { ); } - SimplexQuote quote = jsonArray['quote'] as SimplexQuote; + final SimplexQuote quote = jsonArray['quote'] as SimplexQuote; final SimplexQuote _quote = SimplexQuote( crypto: quote.crypto, fiat: quote.fiat, @@ -287,13 +300,13 @@ class SimplexAPI { // -d '{"account_details": {"app_provider_id": "$publicKey", "app_version_id": "123", "app_end_user_id": "01e7a0b9-8dfc-4988-a28d-84a34e5f0a63", "signup_login": {"timestamp": "1994-11-05T08:15:30-05:00", "ip": "207.66.86.226"}}, "transaction_details": {"payment_details": {"quote_id": "3b58f4b4-ed6f-447c-b96a-ffe97d7b6803", "payment_id": "baaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", "order_id": "789", "original_http_ref_url": "https://stackwallet.com/simplex", "destination_wallet": {"currency": "BTC", "address": "bc1qjvj9ca8gdsv3g58yrzrk6jycvgnjh9uj35rja2"}}}}' try { await _prefs.init(); - String? userID = _prefs.userID; - int? signupEpoch = _prefs.signupEpoch; + final String? userID = _prefs.userID; + final int? signupEpoch = _prefs.signupEpoch; - Map headers = { + final Map headers = { 'Content-Type': 'application/x-www-form-urlencoded', }; - Map data = { + final Map data = { 'ROUTE': 'order', 'QUOTE_ID': quote.id, 'ADDRESS': quote.receivingAddress, @@ -303,17 +316,19 @@ class SimplexAPI { data['USER_ID'] = userID; } if (signupEpoch != null && signupEpoch != 0) { - DateTime date = DateTime.fromMillisecondsSinceEpoch(signupEpoch * 1000); + final DateTime date = + DateTime.fromMillisecondsSinceEpoch(signupEpoch * 1000); data['SIGNUP_TIMESTAMP'] = date.toIso8601String() + timeZoneFormatter(date.timeZoneOffset); } - Uri url = _buildUri('api.php', data); + final Uri url = _buildUri('api.php', data); - var res = await client.get( + final res = await client.get( url: url, headers: headers, - proxyInfo: - Prefs.instance.useTor ? TorService.sharedInstance.getProxyInfo() : null, + proxyInfo: Prefs.instance.useTor + ? TorService.sharedInstance.getProxyInfo() + : null, ); if (res.code != 200) { throw Exception('newOrder exception: statusCode= ${res.code}'); @@ -325,7 +340,7 @@ class SimplexAPI { } } - SimplexOrder _order = SimplexOrder( + final SimplexOrder _order = SimplexOrder( quote: quote, paymentId: "${jsonArray['paymentId']}", orderId: "${jsonArray['orderId']}", @@ -346,16 +361,16 @@ class SimplexAPI { Future> redirect(SimplexOrder order) async { try { - Map headers = { + final Map headers = { 'Content-Type': 'application/x-www-form-urlencoded', }; - Map data = { + final Map data = { 'ROUTE': 'redirect', 'PAYMENT_ID': order.paymentId, }; - Uri url = _buildUri('api.php', data); + final Uri url = _buildUri('api.php', data); - bool status = await launchUrl( + final bool status = await launchUrl( url, mode: LaunchMode.externalApplication, ); @@ -364,10 +379,11 @@ class SimplexAPI { } catch (e, s) { Logging.instance.log("newOrder exception: $e\n$s", level: LogLevel.Error); return BuyResponse( - exception: BuyException( - e.toString(), - BuyExceptionType.generic, - )); + exception: BuyException( + e.toString(), + BuyExceptionType.generic, + ), + ); } } @@ -389,7 +405,7 @@ bool isStackCoin(String? ticker) { if (ticker == null) return false; try { - coinFromTickerCaseInsensitive(ticker); + SupportedCoins.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; diff --git a/lib/services/ethereum/ethereum_api.dart b/lib/services/ethereum/ethereum_api.dart index b9ac2224b..8d1aec4ae 100644 --- a/lib/services/ethereum/ethereum_api.dart +++ b/lib/services/ethereum/ethereum_api.dart @@ -20,11 +20,12 @@ import 'package:stackwallet/models/paymint/fee_object_model.dart'; import 'package:stackwallet/networking/http.dart'; import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; import 'package:stackwallet/utilities/eth_commons.dart'; import 'package:stackwallet/utilities/extensions/extensions.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; class EthApiException implements Exception { @@ -47,7 +48,8 @@ class EthereumResponse { } abstract class EthereumAPI { - static String get stackBaseServer => DefaultNodes.ethereum.host; + static String get stackBaseServer => + Ethereum(CryptoCurrencyNetwork.main).defaultNode.host; static HTTP client = HTTP(); diff --git a/lib/services/event_bus/events/global/node_connection_status_changed_event.dart b/lib/services/event_bus/events/global/node_connection_status_changed_event.dart index 0361f3720..a0698409b 100644 --- a/lib/services/event_bus/events/global/node_connection_status_changed_event.dart +++ b/lib/services/event_bus/events/global/node_connection_status_changed_event.dart @@ -8,19 +8,20 @@ * */ -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; enum NodeConnectionStatus { disconnected, connected } class NodeConnectionStatusChangedEvent { NodeConnectionStatus newStatus; String walletId; - Coin coin; + CryptoCurrency coin; NodeConnectionStatusChangedEvent(this.newStatus, this.walletId, this.coin) { Logging.instance.log( - "NodeConnectionStatusChangedEvent fired in $walletId with arg newStatus = $newStatus", - level: LogLevel.Info); + "NodeConnectionStatusChangedEvent fired in $walletId with arg newStatus = $newStatus", + level: LogLevel.Info, + ); } } diff --git a/lib/services/event_bus/events/global/wallet_sync_status_changed_event.dart b/lib/services/event_bus/events/global/wallet_sync_status_changed_event.dart index fb2a47614..4cb616909 100644 --- a/lib/services/event_bus/events/global/wallet_sync_status_changed_event.dart +++ b/lib/services/event_bus/events/global/wallet_sync_status_changed_event.dart @@ -8,19 +8,20 @@ * */ -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; enum WalletSyncStatus { unableToSync, synced, syncing } class WalletSyncStatusChangedEvent { WalletSyncStatus newStatus; String walletId; - Coin coin; + CryptoCurrency coin; WalletSyncStatusChangedEvent(this.newStatus, this.walletId, this.coin) { Logging.instance.log( - "WalletSyncStatusChangedEvent fired in $walletId with arg newStatus = $newStatus", - level: LogLevel.Info); + "WalletSyncStatusChangedEvent fired in $walletId with arg newStatus = $newStatus", + level: LogLevel.Info, + ); } } diff --git a/lib/services/node_service.dart b/lib/services/node_service.dart index 88d032940..31e624be5 100644 --- a/lib/services/node_service.dart +++ b/lib/services/node_service.dart @@ -14,10 +14,11 @@ import 'package:flutter/material.dart'; import 'package:http/http.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/models/node_model.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; const kStackCommunityNodesEndpoint = "https://extras.stackwallet.com"; @@ -30,12 +31,18 @@ class NodeService extends ChangeNotifier { }); Future updateDefaults() async { - for (final defaultNode in DefaultNodes.all) { + for (final defaultNode in SupportedCoins.cryptocurrencies.map( + (e) => e.defaultNode, + )) { final savedNode = DB.instance .get(boxName: DB.boxNameNodeModels, key: defaultNode.id); if (savedNode == null) { // save the default node to hive only if no other nodes for the specific coin exist - if (getNodesFor(coinFromPrettyName(defaultNode.coinName)).isEmpty) { + if (getNodesFor( + SupportedCoins.getCryptoCurrencyByPrettyName( + defaultNode.coinName, + ), + ).isEmpty) { await DB.instance.put( boxName: DB.boxNameNodeModels, key: defaultNode.id, @@ -45,19 +52,21 @@ class NodeService extends ChangeNotifier { } else { // update all fields but copy over previously set enabled and trusted states await DB.instance.put( - boxName: DB.boxNameNodeModels, - key: savedNode.id, - value: defaultNode.copyWith( - enabled: savedNode.enabled, - isFailover: savedNode.isFailover, - trusted: savedNode.trusted, - )); + boxName: DB.boxNameNodeModels, + key: savedNode.id, + value: defaultNode.copyWith( + enabled: savedNode.enabled, + isFailover: savedNode.isFailover, + trusted: savedNode.trusted, + ), + ); } // check if a default node is the primary node for the crypto currency // and update it if needed - final coin = coinFromPrettyName(defaultNode.coinName); - final primaryNode = getPrimaryNodeFor(coin: coin); + final coin = + SupportedCoins.getCryptoCurrencyByPrettyName(defaultNode.coinName); + final primaryNode = getPrimaryNodeFor(currency: coin); if (primaryNode != null && primaryNode.id == defaultNode.id) { await setPrimaryNodeFor( coin: coin, @@ -72,20 +81,25 @@ class NodeService extends ChangeNotifier { } Future setPrimaryNodeFor({ - required Coin coin, + required CryptoCurrency coin, required NodeModel node, bool shouldNotifyListeners = false, }) async { await DB.instance.put( - boxName: DB.boxNamePrimaryNodes, key: coin.name, value: node); + boxName: DB.boxNamePrimaryNodes, + key: coin.identifier, + value: node, + ); if (shouldNotifyListeners) { notifyListeners(); } } - NodeModel? getPrimaryNodeFor({required Coin coin}) { - return DB.instance - .get(boxName: DB.boxNamePrimaryNodes, key: coin.name); + NodeModel? getPrimaryNodeFor({required CryptoCurrency currency}) { + return DB.instance.get( + boxName: DB.boxNamePrimaryNodes, + key: currency.identifier, + ); } List get primaryNodes { @@ -96,21 +110,27 @@ class NodeService extends ChangeNotifier { return DB.instance.values(boxName: DB.boxNameNodeModels); } - List getNodesFor(Coin coin) { + List getNodesFor(CryptoCurrency coin) { final list = DB.instance .values(boxName: DB.boxNameNodeModels) - .where((e) => - e.coinName == coin.name && - !e.id.startsWith(DefaultNodes.defaultNodeIdPrefix)) + .where( + (e) => + e.coinName == coin.identifier && + !e.id.startsWith(DefaultNodes.defaultNodeIdPrefix), + ) .toList(); // add default to end of list - list.addAll(DB.instance - .values(boxName: DB.boxNameNodeModels) - .where((e) => - e.coinName == coin.name && - e.id.startsWith(DefaultNodes.defaultNodeIdPrefix)) - .toList()); + list.addAll( + DB.instance + .values(boxName: DB.boxNameNodeModels) + .where( + (e) => + e.coinName == coin.identifier && + e.id.startsWith(DefaultNodes.defaultNodeIdPrefix), + ) + .toList(), + ); // return reversed list so default node appears at beginning return list.reversed.toList(); @@ -120,8 +140,10 @@ class NodeService extends ChangeNotifier { return DB.instance.get(boxName: DB.boxNameNodeModels, key: id); } - List failoverNodesFor({required Coin coin}) { - return getNodesFor(coin).where((e) => e.isFailover && !e.isDown).toList(); + List failoverNodesFor({required CryptoCurrency currency}) { + return getNodesFor(currency) + .where((e) => e.isFailover && !e.isDown) + .toList(); } // should probably just combine this and edit into a save() func at some point @@ -133,11 +155,16 @@ class NodeService extends ChangeNotifier { bool shouldNotifyListeners, ) async { await DB.instance.put( - boxName: DB.boxNameNodeModels, key: node.id, value: node); + boxName: DB.boxNameNodeModels, + key: node.id, + value: node, + ); if (password != null) { await secureStorageInterface.write( - key: "${node.id}_nodePW", value: password); + key: "${node.id}_nodePW", + value: password, + ); } if (shouldNotifyListeners) { notifyListeners(); @@ -163,9 +190,10 @@ class NodeService extends ChangeNotifier { key: id, )!; await DB.instance.put( - boxName: DB.boxNameNodeModels, - key: model.id, - value: model.copyWith(enabled: enabled)); + boxName: DB.boxNameNodeModels, + key: model.id, + value: model.copyWith(enabled: enabled), + ); if (shouldNotifyListeners) { notifyListeners(); } @@ -178,8 +206,9 @@ class NodeService extends ChangeNotifier { bool shouldNotifyListeners, ) async { // check if the node being edited is the primary one; if it is, setPrimaryNodeFor coin - final coin = coinFromPrettyName(editedNode.coinName); - var primaryNode = getPrimaryNodeFor(coin: coin); + final coin = + SupportedCoins.getCryptoCurrencyByPrettyName(editedNode.coinName); + final primaryNode = getPrimaryNodeFor(currency: coin); if (primaryNode?.id == editedNode.id) { await setPrimaryNodeFor( coin: coin, @@ -211,9 +240,10 @@ class NodeService extends ChangeNotifier { final map = jsonDecode(result as String); Logging.instance.log(map, level: LogLevel.Info); - for (final coin in Coin.values) { + for (final coin in SupportedCoins.cryptocurrencies) { final nodeList = List>.from( - map["nodes"][coin.name] as List? ?? []); + map["nodes"][coin.identifier] as List? ?? [], + ); for (final nodeMap in nodeList) { NodeModel node = NodeModel( host: nodeMap["host"] as String, @@ -222,7 +252,7 @@ class NodeService extends ChangeNotifier { id: nodeMap["id"] as String, useSSL: nodeMap["useSSL"] == "true", enabled: true, - coinName: coin.name, + coinName: coin.identifier, isFailover: true, isDown: nodeMap["isDown"] == "true", ); diff --git a/lib/services/notifications_service.dart b/lib/services/notifications_service.dart index 182de8747..528fe9ae5 100644 --- a/lib/services/notifications_service.dart +++ b/lib/services/notifications_service.dart @@ -21,9 +21,10 @@ import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/notifications_api.dart'; import 'package:stackwallet/services/trade_service.dart'; import 'package:stackwallet/services/wallets.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; import 'exchange/exchange.dart'; @@ -55,15 +56,19 @@ class NotificationsService extends ChangeNotifier { Future _addWatchedTxNotification(NotificationModel notification) async { await DB.instance.put( - boxName: DB.boxNameWatchedTransactions, - key: notification.id, - value: notification); + boxName: DB.boxNameWatchedTransactions, + key: notification.id, + value: notification, + ); } Future _deleteWatchedTxNotification( - NotificationModel notification) async { + NotificationModel notification, + ) async { await DB.instance.delete( - boxName: DB.boxNameWatchedTransactions, key: notification.id); + boxName: DB.boxNameWatchedTransactions, + key: notification.id, + ); } // watched trades @@ -73,17 +78,22 @@ class NotificationsService extends ChangeNotifier { } Future _addWatchedTradeNotification( - NotificationModel notification) async { + NotificationModel notification, + ) async { await DB.instance.put( - boxName: DB.boxNameWatchedTrades, - key: notification.id, - value: notification); + boxName: DB.boxNameWatchedTrades, + key: notification.id, + value: notification, + ); } Future _deleteWatchedTradeNotification( - NotificationModel notification) async { + NotificationModel notification, + ) async { await DB.instance.delete( - boxName: DB.boxNameWatchedTrades, key: notification.id); + boxName: DB.boxNameWatchedTrades, + key: notification.id, + ); } static Timer? _timer; @@ -118,11 +128,12 @@ class NotificationsService extends ChangeNotifier { void _checkTransactions() async { for (final notification in _watchedTransactionNotifications) { try { - final Coin coin = coinFromPrettyName(notification.coinName); + final CryptoCurrency coin = + SupportedCoins.getCryptoCurrencyByPrettyName(notification.coinName); final txid = notification.txid!; final wallet = Wallets.sharedInstance.getWallet(notification.walletId); - final node = nodeService.getPrimaryNodeFor(coin: coin); + final node = nodeService.getPrimaryNodeFor(currency: coin); if (node != null) { if (wallet is ElectrumXInterface) { final eNode = ElectrumXNode( @@ -133,14 +144,16 @@ class NotificationsService extends ChangeNotifier { useSSL: node.useSSL, ); final failovers = nodeService - .failoverNodesFor(coin: coin) - .map((e) => ElectrumXNode( - address: e.host, - port: e.port, - name: e.name, - id: e.id, - useSSL: e.useSSL, - )) + .failoverNodesFor(currency: coin) + .map( + (e) => ElectrumXNode( + address: e.host, + port: e.port, + name: e.name, + id: e.id, + useSSL: e.useSSL, + ), + ) .toList(); final client = ElectrumXClient.from( @@ -280,7 +293,8 @@ class NotificationsService extends ChangeNotifier { return DB.instance .values(boxName: DB.boxNameNotifications) .where( - (element) => element.read == false && element.walletId == walletId) + (element) => element.read == false && element.walletId == walletId, + ) .isNotEmpty; } @@ -320,7 +334,9 @@ class NotificationsService extends ChangeNotifier { bool shouldNotifyListeners, ) async { await DB.instance.delete( - boxName: DB.boxNameNotifications, key: notification.id); + boxName: DB.boxNameNotifications, + key: notification.id, + ); await _deleteWatchedTradeNotification(notification); await _deleteWatchedTxNotification(notification); diff --git a/lib/services/price.dart b/lib/services/price.dart index 281372dcd..e572f4b3f 100644 --- a/lib/services/price.dart +++ b/lib/services/price.dart @@ -16,9 +16,10 @@ import 'package:flutter/foundation.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/networking/http.dart'; import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; class PriceAPI { @@ -43,10 +44,11 @@ class PriceAPI { } Future _updateCachedPrices( - Map> data) async { + Map> data, + ) async { final Map map = {}; - for (final coin in Coin.values) { + for (final coin in SupportedCoins.cryptocurrencies) { final entry = data[coin]; if (entry == null) { map[coin.prettyName] = ["0", 0.0]; @@ -59,26 +61,32 @@ class PriceAPI { .put(boxName: DB.boxNamePriceCache, key: 'cache', value: map); } - Map> get _cachedPrices { + Map> get _cachedPrices { final map = DB.instance.get(boxName: DB.boxNamePriceCache, key: 'cache') as Map? ?? {}; // init with 0 final result = { - for (final coin in Coin.values) coin: Tuple2(Decimal.zero, 0.0) + for (final coin in SupportedCoins.cryptocurrencies) + coin: Tuple2(Decimal.zero, 0.0), }; for (final entry in map.entries) { - result[coinFromPrettyName(entry.key as String)] = Tuple2( - Decimal.parse(entry.value[0] as String), entry.value[1] as double); + result[SupportedCoins.getCryptoCurrencyByPrettyName( + entry.key as String, + )] = Tuple2( + Decimal.parse(entry.value[0] as String), + entry.value[1] as double, + ); } return result; } - Future>> getPricesAnd24hChange( - {required String baseCurrency}) async { + Future>> getPricesAnd24hChange({ + required String baseCurrency, + }) async { final now = DateTime.now(); if (_lastUsedBaseCurrency != baseCurrency || now.difference(_lastCalled) > refreshIntervalDuration) { @@ -91,11 +99,13 @@ class PriceAPI { final externalCalls = Prefs.instance.externalCalls; if ((!Logger.isTestEnv && !externalCalls) || !(await Prefs.instance.isExternalCallsSet())) { - Logging.instance.log("User does not want to use external calls", - level: LogLevel.Info); + Logging.instance.log( + "User does not want to use external calls", + level: LogLevel.Info, + ); return _cachedPrices; } - Map> result = {}; + final Map> result = {}; try { final uri = Uri.parse( "https://api.coingecko.com/api/v3/coins/markets?vs_currency" @@ -116,7 +126,7 @@ class PriceAPI { for (final map in coinGeckoData) { final String coinName = map["name"] as String; - final coin = coinFromPrettyName(coinName); + final coin = SupportedCoins.getCryptoCurrencyByPrettyName(coinName); final price = Decimal.parse(map["current_price"].toString()); final change24h = map["price_change_percentage_24h"] != null @@ -131,8 +141,10 @@ class PriceAPI { return _cachedPrices; } catch (e, s) { - Logging.instance.log("getPricesAnd24hChange($baseCurrency): $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getPricesAnd24hChange($baseCurrency): $e\n$s", + level: LogLevel.Error, + ); // return previous cached values return _cachedPrices; } @@ -140,12 +152,14 @@ class PriceAPI { static Future?> availableBaseCurrencies() async { final externalCalls = Prefs.instance.externalCalls; - HTTP client = HTTP(); + final HTTP client = HTTP(); if ((!Logger.isTestEnv && !externalCalls) || !(await Prefs.instance.isExternalCallsSet())) { - Logging.instance.log("User does not want to use external calls", - level: LogLevel.Info); + Logging.instance.log( + "User does not want to use external calls", + level: LogLevel.Info, + ); return null; } const uriString = @@ -163,8 +177,10 @@ class PriceAPI { final json = jsonDecode(response.body) as List; return List.from(json); } catch (e, s) { - Logging.instance.log("availableBaseCurrencies() using $uriString: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "availableBaseCurrencies() using $uriString: $e\n$s", + level: LogLevel.Error, + ); return null; } } @@ -181,8 +197,10 @@ class PriceAPI { final externalCalls = Prefs.instance.externalCalls; if ((!Logger.isTestEnv && !externalCalls) || !(await Prefs.instance.isExternalCallsSet())) { - Logging.instance.log("User does not want to use external calls", - level: LogLevel.Info); + Logging.instance.log( + "User does not want to use external calls", + level: LogLevel.Info, + ); return tokenPrices; } diff --git a/lib/services/price_service.dart b/lib/services/price_service.dart index 561aa184c..15e5dc437 100644 --- a/lib/services/price_service.dart +++ b/lib/services/price_service.dart @@ -17,7 +17,8 @@ import 'package:stackwallet/db/isar/main_db.dart'; import 'package:stackwallet/models/isar/models/isar_models.dart'; import 'package:stackwallet/networking/http.dart'; import 'package:stackwallet/services/price.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; class PriceService extends ChangeNotifier { @@ -28,15 +29,16 @@ class PriceService extends ChangeNotifier { final Duration updateInterval = const Duration(seconds: 60); Timer? _timer; - final Map> _cachedPrices = { - for (final coin in Coin.values) coin: Tuple2(Decimal.zero, 0.0) + final Map> _cachedPrices = { + for (final coin in SupportedCoins.cryptocurrencies) + coin: Tuple2(Decimal.zero, 0.0) }; final Map> _cachedTokenPrices = {}; final _priceAPI = PriceAPI(HTTP()); - Tuple2 getPrice(Coin coin) => _cachedPrices[coin]!; + Tuple2 getPrice(CryptoCurrency coin) => _cachedPrices[coin]!; Tuple2 getTokenPrice(String contractAddress) => _cachedTokenPrices[contractAddress.toLowerCase()] ?? diff --git a/lib/services/wallets.dart b/lib/services/wallets.dart index bba7bfe90..22daf7716 100644 --- a/lib/services/wallets.dart +++ b/lib/services/wallets.dart @@ -18,11 +18,11 @@ import 'package:stackwallet/db/isar/main_db.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/notifications_service.dart'; import 'package:stackwallet/services/trade_sent_from_stack_service.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet.dart'; @@ -79,19 +79,19 @@ class Wallets { key: Wallet.mnemonicPassphraseKey(walletId: walletId)); await secureStorage.delete(key: Wallet.privateKeyKey(walletId: walletId)); - if (info.coin == Coin.wownero) { + if (info.coin is Wownero) { final wowService = wownero.createWowneroWalletService(DB.instance.moneroWalletInfoBox); await wowService.remove(walletId); Logging.instance .log("monero wallet: $walletId deleted", level: LogLevel.Info); - } else if (info.coin == Coin.monero) { + } else if (info.coin is Monero) { final xmrService = monero.createMoneroWalletService(DB.instance.moneroWalletInfoBox); await xmrService.remove(walletId); Logging.instance .log("monero wallet: $walletId deleted", level: LogLevel.Info); - } else if (info.coin == Coin.epicCash) { + } else if (info.coin is Epiccash) { final deleteResult = await deleteEpicWallet( walletId: walletId, secureStore: secureStorage); Logging.instance.log( diff --git a/lib/services/wallets_service.dart b/lib/services/wallets_service.dart index 738c9d6c6..8aab994d5 100644 --- a/lib/services/wallets_service.dart +++ b/lib/services/wallets_service.dart @@ -12,18 +12,18 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/logger.dart'; @Deprecated("Legacy support only. Do not use.") class WalletInfo { - final Coin coin; + final String coinIdentifier; final String walletId; final String name; @Deprecated("Legacy support only. Do not use.") const WalletInfo({ - required this.coin, + required this.coinIdentifier, required this.walletId, required this.name, }); @@ -31,7 +31,7 @@ class WalletInfo { @Deprecated("Legacy support only. Do not use.") factory WalletInfo.fromJson(Map jsonObject) { return WalletInfo( - coin: Coin.values.byName(jsonObject["coin"] as String), + coinIdentifier: jsonObject["coin"] as String, walletId: jsonObject["id"] as String, name: jsonObject["name"] as String, ); @@ -42,7 +42,7 @@ class WalletInfo { return { "name": name, "id": walletId, - "coin": coin.name, + "coin": coinIdentifier, }; } @@ -75,12 +75,14 @@ class WalletsService extends ChangeNotifier { .get(boxName: DB.boxNameAllWalletsData, key: 'names') as Map?; if (names == null) { Logging.instance.log( - "Fetched wallet 'names' returned null. Setting initializing 'names'", - level: LogLevel.Info); + "Fetched wallet 'names' returned null. Setting initializing 'names'", + level: LogLevel.Info, + ); await DB.instance.put( - boxName: DB.boxNameAllWalletsData, - key: 'names', - value: {}); + boxName: DB.boxNameAllWalletsData, + key: 'names', + value: {}, + ); return {}; } Logging.instance.log("Fetched wallet names: $names", level: LogLevel.Info); @@ -88,16 +90,22 @@ class WalletsService extends ChangeNotifier { mapped.removeWhere((name, dyn) { final jsonObject = Map.from(dyn as Map); try { - Coin.values.byName(jsonObject["coin"] as String); + SupportedCoins.getCryptoCurrencyFor(jsonObject["coin"] as String); return false; } catch (e, s) { - Logging.instance.log("Error, ${jsonObject["coin"]} does not exist", - level: LogLevel.Error); + Logging.instance.log( + "Error, ${jsonObject["coin"]} does not exist", + level: LogLevel.Error, + ); return true; } }); - return mapped.map((name, dyn) => MapEntry( - name, WalletInfo.fromJson(Map.from(dyn as Map)))); + return mapped.map( + (name, dyn) => MapEntry( + name, + WalletInfo.fromJson(Map.from(dyn as Map)), + ), + ); } } diff --git a/lib/supported_coins.dart b/lib/supported_coins.dart index 70ee44ad8..70b6deae7 100644 --- a/lib/supported_coins.dart +++ b/lib/supported_coins.dart @@ -1,4 +1,3 @@ -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; @@ -19,72 +18,68 @@ import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; /// The supported coins. Eventually move away from the Coin enum class SupportedCoins { - /// A List of our supported coins. Piggy back on [Coin] for now - static final List cryptocurrencies = - Coin.values.map((e) => getCryptoCurrencyFor(e)).toList(growable: false); + /// A List of our supported coins. + static final List cryptocurrencies = [ + Bitcoin(CryptoCurrencyNetwork.main), + BitcoinFrost(CryptoCurrencyNetwork.main), + Litecoin(CryptoCurrencyNetwork.main), + Bitcoincash(CryptoCurrencyNetwork.main), + Dogecoin(CryptoCurrencyNetwork.main), + Epiccash(CryptoCurrencyNetwork.main), + Ecash(CryptoCurrencyNetwork.main), + Ethereum(CryptoCurrencyNetwork.main), + Firo(CryptoCurrencyNetwork.main), + Monero(CryptoCurrencyNetwork.main), + Particl(CryptoCurrencyNetwork.main), + Peercoin(CryptoCurrencyNetwork.main), + Solana(CryptoCurrencyNetwork.main), + Stellar(CryptoCurrencyNetwork.main), + Tezos(CryptoCurrencyNetwork.main), + Wownero(CryptoCurrencyNetwork.main), + Namecoin(CryptoCurrencyNetwork.main), + Nano(CryptoCurrencyNetwork.main), + Banano(CryptoCurrencyNetwork.main), + Bitcoin(CryptoCurrencyNetwork.test), + BitcoinFrost(CryptoCurrencyNetwork.test), + Litecoin(CryptoCurrencyNetwork.test), + Bitcoincash(CryptoCurrencyNetwork.test), + Firo(CryptoCurrencyNetwork.test), + Dogecoin(CryptoCurrencyNetwork.test), + Stellar(CryptoCurrencyNetwork.test), + Peercoin(CryptoCurrencyNetwork.test), + ]; - /// A getter function linking a [CryptoCurrency] with its associated [Coin]. - /// - /// Temporary: Remove when the Coin enum is removed. - static CryptoCurrency getCryptoCurrencyFor(Coin coin) { - switch (coin) { - case Coin.bitcoin: - return Bitcoin(CryptoCurrencyNetwork.main); - case Coin.bitcoinFrost: - return BitcoinFrost(CryptoCurrencyNetwork.main); - case Coin.litecoin: - return Litecoin(CryptoCurrencyNetwork.main); - case Coin.bitcoincash: - return Bitcoincash(CryptoCurrencyNetwork.main); - case Coin.dogecoin: - return Dogecoin(CryptoCurrencyNetwork.main); - case Coin.epicCash: - return Epiccash(CryptoCurrencyNetwork.main); - case Coin.eCash: - return Ecash(CryptoCurrencyNetwork.main); - case Coin.ethereum: - return Ethereum(CryptoCurrencyNetwork.main); - case Coin.firo: - return Firo(CryptoCurrencyNetwork.main); - case Coin.monero: - return Monero(CryptoCurrencyNetwork.main); - case Coin.particl: - return Particl(CryptoCurrencyNetwork.main); - case Coin.peercoin: - return Peercoin(CryptoCurrencyNetwork.main); - case Coin.solana: - return Solana(CryptoCurrencyNetwork.main); - case Coin.stellar: - return Stellar(CryptoCurrencyNetwork.main); - case Coin.tezos: - return Tezos(CryptoCurrencyNetwork.main); - case Coin.wownero: - return Wownero(CryptoCurrencyNetwork.main); - case Coin.namecoin: - return Namecoin(CryptoCurrencyNetwork.main); - case Coin.nano: - return Nano(CryptoCurrencyNetwork.main); - case Coin.banano: - return Banano(CryptoCurrencyNetwork.main); - case Coin.bitcoinTestNet: - return Bitcoin(CryptoCurrencyNetwork.test); - case Coin.bitcoinFrostTestNet: - return BitcoinFrost(CryptoCurrencyNetwork.test); - case Coin.litecoinTestNet: - return Litecoin(CryptoCurrencyNetwork.test); - case Coin.bitcoincashTestnet: - return Bitcoincash(CryptoCurrencyNetwork.test); - case Coin.firoTestNet: - return Firo(CryptoCurrencyNetwork.test); - case Coin.dogecoinTestNet: - return Dogecoin(CryptoCurrencyNetwork.test); - case Coin.stellarTestnet: - return Stellar(CryptoCurrencyNetwork.test); - case Coin.peercoinTestNet: - return Peercoin(CryptoCurrencyNetwork.test); + static CryptoCurrency getCryptoCurrencyFor(String coinIdentifier) => + cryptocurrencies.firstWhere( + (e) => e.identifier == coinIdentifier, + ); + + static CryptoCurrency getCryptoCurrencyForTicker( + final String ticker, { + bool caseInsensitive = true, + }) { + final _ticker = caseInsensitive ? ticker.toLowerCase() : ticker; + return cryptocurrencies.firstWhere( + caseInsensitive + ? (e) => e.ticker.toLowerCase() == _ticker && e is! FrostCurrency + : (e) => e.ticker == _ticker && e is! FrostCurrency, + ); + } + + /// Fuzzy logic. Use with caution!! + @Deprecated("dangerous") + static CryptoCurrency getCryptoCurrencyByPrettyName(final String prettyName) { + final name = prettyName.replaceAll(" ", "").toLowerCase(); + try { + return cryptocurrencies.firstWhere( + (e) => e.identifier.toLowerCase() == name || e.prettyName == prettyName, + ); + } catch (_) { + throw Exception("getCryptoCurrencyByPrettyName($prettyName) failed!"); } } } diff --git a/lib/themes/coin_card_provider.dart b/lib/themes/coin_card_provider.dart index b34e9e6f1..1e1b98ee8 100644 --- a/lib/themes/coin_card_provider.dart +++ b/lib/themes/coin_card_provider.dart @@ -11,24 +11,25 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/models/isar/stack_theme.dart'; import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -final coinCardProvider = Provider.family((ref, coin) { +final coinCardProvider = Provider.family((ref, coin) { final assets = ref.watch(themeAssetsProvider); if (assets is ThemeAssetsV3) { - return assets.coinCardImages?[coin.mainNetVersion]; + return assets.coinCardImages?[coin.mainNetId]; } else { return null; } }); -final coinCardFavoritesProvider = Provider.family((ref, coin) { +final coinCardFavoritesProvider = + Provider.family((ref, coin) { final assets = ref.watch(themeAssetsProvider); if (assets is ThemeAssetsV3) { - return assets.coinCardFavoritesImages?[coin.mainNetVersion] ?? - assets.coinCardImages?[coin.mainNetVersion]; + return assets.coinCardFavoritesImages?[coin.mainNetId] ?? + assets.coinCardImages?[coin.mainNetId]; } else { return null; } diff --git a/lib/themes/coin_icon_provider.dart b/lib/themes/coin_icon_provider.dart index 9bd3990bb..6415bc9c1 100644 --- a/lib/themes/coin_icon_provider.dart +++ b/lib/themes/coin_icon_provider.dart @@ -11,46 +11,52 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/models/isar/stack_theme.dart'; import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/litecoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/namecoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/particl.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -final coinIconProvider = Provider.family((ref, coin) { +final coinIconProvider = Provider.family((ref, coin) { final assets = ref.watch(themeAssetsProvider); if (assets is ThemeAssets) { - switch (coin) { - case Coin.bitcoin: - case Coin.bitcoinTestNet: + switch (coin.runtimeType) { + case const (Bitcoin): return assets.bitcoin; - case Coin.litecoin: - case Coin.litecoinTestNet: + case const (Litecoin): return assets.litecoin; - case Coin.bitcoincash: - case Coin.bitcoincashTestnet: + case const (Bitcoincash): return assets.bitcoincash; - case Coin.dogecoin: - case Coin.dogecoinTestNet: + case const (Dogecoin): return assets.dogecoin; - case Coin.epicCash: + case const (Epiccash): return assets.epicCash; - case Coin.firo: - case Coin.firoTestNet: + case const (Firo): return assets.firo; - case Coin.monero: + case const (Monero): return assets.monero; - case Coin.wownero: + case const (Wownero): return assets.wownero; - case Coin.namecoin: + case const (Namecoin): return assets.namecoin; - case Coin.particl: + case const (Particl): return assets.particl; - case Coin.ethereum: + case const (Ethereum): return assets.ethereum; default: return assets.stackIcon; } } else if (assets is ThemeAssetsV2) { - return (assets).coinIcons[coin.mainNetVersion]!; + return (assets).coinIcons[coin.mainNetId]!; } else { - return (assets as ThemeAssetsV3).coinIcons[coin.mainNetVersion]!; + return (assets as ThemeAssetsV3).coinIcons[coin.mainNetId]!; } }); diff --git a/lib/themes/coin_image_provider.dart b/lib/themes/coin_image_provider.dart index 6ca839fb9..c73fc6af3 100644 --- a/lib/themes/coin_image_provider.dart +++ b/lib/themes/coin_image_provider.dart @@ -11,101 +11,31 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/models/isar/stack_theme.dart'; import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -final coinImageProvider = Provider.family((ref, coin) { +final coinImageProvider = Provider.family((ref, coin) { final assets = ref.watch(themeAssetsProvider); if (assets is ThemeAssets) { - switch (coin) { - case Coin.bitcoin: - return assets.bitcoinImage; - case Coin.litecoin: - case Coin.litecoinTestNet: - return assets.litecoinImage; - case Coin.bitcoincash: - return assets.bitcoincashImage; - case Coin.dogecoin: - return assets.dogecoinImage; - case Coin.eCash: - return assets.bitcoinImage; - case Coin.epicCash: - return assets.epicCashImage; - case Coin.firo: - return assets.firoImage; - case Coin.monero: - return assets.moneroImage; - case Coin.wownero: - return assets.wowneroImage; - case Coin.namecoin: - return assets.namecoinImage; - case Coin.particl: - return assets.particlImage; - case Coin.bitcoinTestNet: - return assets.bitcoinImage; - case Coin.bitcoincashTestnet: - return assets.bitcoincashImage; - case Coin.firoTestNet: - return assets.firoImage; - case Coin.dogecoinTestNet: - return assets.dogecoinImage; - case Coin.ethereum: - return assets.ethereumImage; - default: - return assets.stackIcon; - } + // just update your wallet or theme + return assets.stackIcon; } else if (assets is ThemeAssetsV2) { - return (assets).coinImages[coin.mainNetVersion]!; + return (assets).coinImages[coin.mainNetId]!; } else { - return (assets as ThemeAssetsV3).coinImages[coin.mainNetVersion]!; + return (assets as ThemeAssetsV3).coinImages[coin.mainNetId]!; } }); -final coinImageSecondaryProvider = Provider.family((ref, coin) { +final coinImageSecondaryProvider = + Provider.family((ref, coin) { final assets = ref.watch(themeAssetsProvider); if (assets is ThemeAssets) { - switch (coin) { - case Coin.bitcoin: - return assets.bitcoinImageSecondary; - case Coin.litecoin: - case Coin.litecoinTestNet: - return assets.litecoinImageSecondary; - case Coin.bitcoincash: - return assets.bitcoincashImageSecondary; - case Coin.dogecoin: - return assets.dogecoinImageSecondary; - case Coin.eCash: - return assets.bitcoinImageSecondary; - case Coin.epicCash: - return assets.epicCashImageSecondary; - case Coin.firo: - return assets.firoImageSecondary; - case Coin.monero: - return assets.moneroImageSecondary; - case Coin.wownero: - return assets.wowneroImageSecondary; - case Coin.namecoin: - return assets.namecoinImageSecondary; - case Coin.particl: - return assets.particlImageSecondary; - case Coin.bitcoinTestNet: - return assets.bitcoinImageSecondary; - case Coin.bitcoincashTestnet: - return assets.bitcoincashImageSecondary; - case Coin.firoTestNet: - return assets.firoImageSecondary; - case Coin.dogecoinTestNet: - return assets.dogecoinImageSecondary; - case Coin.ethereum: - return assets.ethereumImageSecondary; - - default: - return assets.stackIcon; - } + // just update your wallet or theme + return assets.stackIcon; } else if (assets is ThemeAssetsV2) { - return (assets).coinSecondaryImages[coin.mainNetVersion]!; + return (assets).coinSecondaryImages[coin.mainNetId]!; } else { - return (assets as ThemeAssetsV3).coinSecondaryImages[coin.mainNetVersion]!; + return (assets as ThemeAssetsV3).coinSecondaryImages[coin.mainNetId]!; } }); diff --git a/lib/themes/color_theme.dart b/lib/themes/color_theme.dart deleted file mode 100644 index e4dbcabc3..000000000 --- a/lib/themes/color_theme.dart +++ /dev/null @@ -1,88 +0,0 @@ -/* - * This file is part of Stack Wallet. - * - * Copyright (c) 2023 Cypher Stack - * All Rights Reserved. - * The code is distributed under GPLv3 license, see LICENSE file for details. - * Generated by Cypher Stack on 2023-05-26 - * - */ - -import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; - -const kCoinThemeColorDefaults = CoinThemeColorDefault(); - -class CoinThemeColorDefault { - const CoinThemeColorDefault(); - - Color get bitcoin => const Color(0xFFFCC17B); - Color get litecoin => const Color(0xFF7FA6E1); - Color get bitcoincash => const Color(0xFF7BCFB8); - Color get firo => const Color(0xFFFF897A); - Color get dogecoin => const Color(0xFFFFE079); - Color get epicCash => const Color(0xFFC5C7CB); - Color get eCash => const Color(0xFFC5C7CB); - Color get ethereum => const Color(0xFFA7ADE9); - Color get monero => const Color(0xFFFF9E6B); - Color get namecoin => const Color(0xFF91B1E1); - Color get wownero => const Color(0xFFED80C1); - Color get particl => const Color(0xFF8175BD); - Color get peercoin => const Color(0xFF3CB054); - Color get solana => const Color(0xFFC696FF); - Color get stellar => const Color(0xFF6600FF); - Color get nano => const Color(0xFF209CE9); - Color get banano => const Color(0xFFFBDD11); - Color get tezos => const Color(0xFF0F61FF); - - Color forCoin(Coin coin) { - switch (coin) { - case Coin.bitcoin: - case Coin.bitcoinTestNet: - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - return bitcoin; - case Coin.litecoin: - case Coin.litecoinTestNet: - return litecoin; - case Coin.bitcoincash: - case Coin.bitcoincashTestnet: - return bitcoincash; - case Coin.dogecoin: - case Coin.dogecoinTestNet: - return dogecoin; - case Coin.eCash: - return eCash; - case Coin.epicCash: - return epicCash; - case Coin.ethereum: - return ethereum; - case Coin.firo: - case Coin.firoTestNet: - return firo; - case Coin.monero: - return monero; - case Coin.namecoin: - return namecoin; - case Coin.wownero: - return wownero; - case Coin.particl: - return particl; - case Coin.peercoin: - return peercoin; - case Coin.peercoinTestNet: - return peercoin; - case Coin.solana: - return solana; - case Coin.stellar: - case Coin.stellarTestnet: - return stellar; - case Coin.nano: - return nano; - case Coin.banano: - return banano; - case Coin.tezos: - return tezos; - } - } -} diff --git a/lib/themes/stack_colors.dart b/lib/themes/stack_colors.dart index 11e146d1b..5f6823f86 100644 --- a/lib/themes/stack_colors.dart +++ b/lib/themes/stack_colors.dart @@ -10,8 +10,6 @@ import 'package:flutter/material.dart'; import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/themes/color_theme.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; class StackColors extends ThemeExtension { final String themeId; @@ -1676,58 +1674,6 @@ class StackColors extends ThemeExtension { ); } - Color colorForCoin(Coin coin) { - switch (coin) { - case Coin.bitcoin: - case Coin.bitcoinTestNet: - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - return _coin.bitcoin; - case Coin.litecoin: - case Coin.litecoinTestNet: - return _coin.litecoin; - case Coin.bitcoincash: - case Coin.bitcoincashTestnet: - return _coin.bitcoincash; - case Coin.dogecoin: - case Coin.dogecoinTestNet: - return _coin.dogecoin; - case Coin.epicCash: - return _coin.epicCash; - case Coin.eCash: - return _coin.eCash; - case Coin.ethereum: - return _coin.ethereum; - case Coin.firo: - case Coin.firoTestNet: - return _coin.firo; - case Coin.monero: - return _coin.monero; - case Coin.namecoin: - return _coin.namecoin; - case Coin.wownero: - return _coin.wownero; - case Coin.particl: - return _coin.particl; - case Coin.peercoin: - case Coin.peercoinTestNet: - return _coin.peercoin; - case Coin.solana: - return _coin.solana; - case Coin.stellar: - case Coin.stellarTestnet: - return _coin.stellar; - case Coin.nano: - return _coin.nano; - case Coin.banano: - return _coin.banano; - case Coin.tezos: - return _coin.tezos; - } - } - - static const _coin = CoinThemeColorDefault(); - Color colorForStatus(String status) { switch (status) { case "New": diff --git a/lib/themes/theme_providers.dart b/lib/themes/theme_providers.dart index eb622e8cc..e1ab4a5e9 100644 --- a/lib/themes/theme_providers.dart +++ b/lib/themes/theme_providers.dart @@ -13,7 +13,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/models/isar/stack_theme.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/theme_service.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; final applicationThemesDirectoryPathProvider = StateProvider((ref) => ""); @@ -41,10 +41,10 @@ final themeAssetsProvider = StateProvider( ), ); -final pCoinColor = StateProvider.family( +final pCoinColor = StateProvider.family( (ref, coin) => ref.watch( - themeProvider.select((value) => value.coinColors[coin.mainNetVersion]), + themeProvider.select((value) => value.coinColors[coin.mainNetId]), ) ?? Colors.deepOrangeAccent, ); diff --git a/lib/utilities/address_utils.dart b/lib/utilities/address_utils.dart index 65e0231fe..3420a8217 100644 --- a/lib/utilities/address_utils.dart +++ b/lib/utilities/address_utils.dart @@ -10,191 +10,172 @@ import 'dart:convert'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/litecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/namecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/nano.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/particl.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/solana.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import '../wallets/crypto_currency/coins/peercoin.dart'; - class AddressUtils { static String condenseAddress(String address) { return '${address.substring(0, 5)}...${address.substring(address.length - 5)}'; } - static bool validateAddress(String address, Coin coin) { - //This calls the validate address for each crypto coin, validateAddress is - //only used in 2 places, so I just replaced the old functionality here - switch (coin) { - case Coin.bitcoin: - return Bitcoin(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.bitcoinFrost: - return BitcoinFrost(CryptoCurrencyNetwork.main) - .validateAddress(address); - case Coin.litecoin: - return Litecoin(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.bitcoincash: - return Bitcoincash(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.dogecoin: - return Dogecoin(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.epicCash: - return Epiccash(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.ethereum: - return Ethereum(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.firo: - return Firo(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.eCash: - return Ecash(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.monero: - return Monero(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.wownero: - return Wownero(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.namecoin: - return Namecoin(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.particl: - return Particl(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.peercoin: - return Peercoin(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.solana: - return Solana(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.stellar: - return Stellar(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.nano: - return Nano(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.banano: - return Banano(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.tezos: - return Tezos(CryptoCurrencyNetwork.main).validateAddress(address); - case Coin.bitcoinTestNet: - return Bitcoin(CryptoCurrencyNetwork.test).validateAddress(address); - case Coin.bitcoinFrostTestNet: - return BitcoinFrost(CryptoCurrencyNetwork.test) - .validateAddress(address); - case Coin.litecoinTestNet: - return Litecoin(CryptoCurrencyNetwork.test).validateAddress(address); - case Coin.bitcoincashTestnet: - return Bitcoincash(CryptoCurrencyNetwork.test).validateAddress(address); - case Coin.firoTestNet: - return Firo(CryptoCurrencyNetwork.test).validateAddress(address); - case Coin.dogecoinTestNet: - return Dogecoin(CryptoCurrencyNetwork.test).validateAddress(address); - case Coin.peercoinTestNet: - return Peercoin(CryptoCurrencyNetwork.test).validateAddress(address); - case Coin.stellarTestnet: - return Stellar(CryptoCurrencyNetwork.test).validateAddress(address); - } - // throw Exception("moved"); - // switch (coin) { - // case Coin.bitcoin: - // return Address.validateAddress(address, bitcoin); - // case Coin.litecoin: - // return Address.validateAddress(address, litecoin); - // case Coin.bitcoincash: - // try { - // // 0 for bitcoincash: address scheme, 1 for legacy address - // final format = bitbox.Address.detectFormat(address); - // - // if (coin == Coin.bitcoincashTestnet) { - // return true; - // } - // - // if (format == bitbox.Address.formatCashAddr) { - // String addr = address; - // if (addr.contains(":")) { - // addr = addr.split(":").last; - // } - // - // return addr.startsWith("q"); - // } else { - // return address.startsWith("1"); - // } - // } catch (e) { - // return false; - // } - // case Coin.dogecoin: - // return Address.validateAddress(address, dogecoin); - // case Coin.epicCash: - // return validateSendAddress(address) == "1"; - // case Coin.ethereum: - // return true; //TODO - validate ETH address - // case Coin.firo: - // return Address.validateAddress(address, firoNetwork); - // case Coin.eCash: - // return Address.validateAddress(address, eCashNetwork); - // case Coin.monero: - // return RegExp("[a-zA-Z0-9]{95}").hasMatch(address) || - // RegExp("[a-zA-Z0-9]{106}").hasMatch(address); - // case Coin.wownero: - // return RegExp("[a-zA-Z0-9]{95}").hasMatch(address) || - // RegExp("[a-zA-Z0-9]{106}").hasMatch(address); - // case Coin.namecoin: - // return Address.validateAddress(address, namecoin, namecoin.bech32!); - // case Coin.particl: - // return Address.validateAddress(address, particl); - // case Coin.stellar: - // return RegExp(r"^[G][A-Z0-9]{55}$").hasMatch(address); - // case Coin.nano: - // return NanoAccounts.isValid(NanoAccountType.NANO, address); - // case Coin.banano: - // return NanoAccounts.isValid(NanoAccountType.BANANO, address); - // case Coin.tezos: - // return RegExp(r"^tz[1-9A-HJ-NP-Za-km-z]{34}$").hasMatch(address); - // case Coin.bitcoinTestNet: - // return Address.validateAddress(address, testnet); - // case Coin.litecoinTestNet: - // return Address.validateAddress(address, litecointestnet); - // case Coin.bitcoincashTestnet: - // try { - // // 0 for bitcoincash: address scheme, 1 for legacy address - // final format = bitbox.Address.detectFormat(address); - // - // if (coin == Coin.bitcoincashTestnet) { - // return true; - // } - // - // if (format == bitbox.Address.formatCashAddr) { - // String addr = address; - // if (addr.contains(":")) { - // addr = addr.split(":").last; - // } - // - // return addr.startsWith("q"); - // } else { - // return address.startsWith("1"); - // } - // } catch (e) { - // return false; - // } - // case Coin.firoTestNet: - // return Address.validateAddress(address, firoTestNetwork); - // case Coin.dogecoinTestNet: - // return Address.validateAddress(address, dogecointestnet); - // case Coin.stellarTestnet: - // return RegExp(r"^[G][A-Z0-9]{55}$").hasMatch(address); - // } - } + // static bool validateAddress(String address, Coin coin) { + // //This calls the validate address for each crypto coin, validateAddress is + // //only used in 2 places, so I just replaced the old functionality here + // switch (coin) { + // case Coin.bitcoin: + // return Bitcoin(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.bitcoinFrost: + // return BitcoinFrost(CryptoCurrencyNetwork.main) + // .validateAddress(address); + // case Coin.litecoin: + // return Litecoin(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.bitcoincash: + // return Bitcoincash(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.dogecoin: + // return Dogecoin(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.epicCash: + // return Epiccash(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.ethereum: + // return Ethereum(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.firo: + // return Firo(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.eCash: + // return Ecash(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.monero: + // return Monero(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.wownero: + // return Wownero(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.namecoin: + // return Namecoin(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.particl: + // return Particl(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.peercoin: + // return Peercoin(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.solana: + // return Solana(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.stellar: + // return Stellar(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.nano: + // return Nano(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.banano: + // return Banano(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.tezos: + // return Tezos(CryptoCurrencyNetwork.main).validateAddress(address); + // case Coin.bitcoinTestNet: + // return Bitcoin(CryptoCurrencyNetwork.test).validateAddress(address); + // case Coin.bitcoinFrostTestNet: + // return BitcoinFrost(CryptoCurrencyNetwork.test) + // .validateAddress(address); + // case Coin.litecoinTestNet: + // return Litecoin(CryptoCurrencyNetwork.test).validateAddress(address); + // case Coin.bitcoincashTestnet: + // return Bitcoincash(CryptoCurrencyNetwork.test).validateAddress(address); + // case Coin.firoTestNet: + // return Firo(CryptoCurrencyNetwork.test).validateAddress(address); + // case Coin.dogecoinTestNet: + // return Dogecoin(CryptoCurrencyNetwork.test).validateAddress(address); + // case Coin.peercoinTestNet: + // return Peercoin(CryptoCurrencyNetwork.test).validateAddress(address); + // case Coin.stellarTestnet: + // return Stellar(CryptoCurrencyNetwork.test).validateAddress(address); + // } + // // throw Exception("moved"); + // // switch (coin) { + // // case Coin.bitcoin: + // // return Address.validateAddress(address, bitcoin); + // // case Coin.litecoin: + // // return Address.validateAddress(address, litecoin); + // // case Coin.bitcoincash: + // // try { + // // // 0 for bitcoincash: address scheme, 1 for legacy address + // // final format = bitbox.Address.detectFormat(address); + // // + // // if (coin == Coin.bitcoincashTestnet) { + // // return true; + // // } + // // + // // if (format == bitbox.Address.formatCashAddr) { + // // String addr = address; + // // if (addr.contains(":")) { + // // addr = addr.split(":").last; + // // } + // // + // // return addr.startsWith("q"); + // // } else { + // // return address.startsWith("1"); + // // } + // // } catch (e) { + // // return false; + // // } + // // case Coin.dogecoin: + // // return Address.validateAddress(address, dogecoin); + // // case Coin.epicCash: + // // return validateSendAddress(address) == "1"; + // // case Coin.ethereum: + // // return true; //TODO - validate ETH address + // // case Coin.firo: + // // return Address.validateAddress(address, firoNetwork); + // // case Coin.eCash: + // // return Address.validateAddress(address, eCashNetwork); + // // case Coin.monero: + // // return RegExp("[a-zA-Z0-9]{95}").hasMatch(address) || + // // RegExp("[a-zA-Z0-9]{106}").hasMatch(address); + // // case Coin.wownero: + // // return RegExp("[a-zA-Z0-9]{95}").hasMatch(address) || + // // RegExp("[a-zA-Z0-9]{106}").hasMatch(address); + // // case Coin.namecoin: + // // return Address.validateAddress(address, namecoin, namecoin.bech32!); + // // case Coin.particl: + // // return Address.validateAddress(address, particl); + // // case Coin.stellar: + // // return RegExp(r"^[G][A-Z0-9]{55}$").hasMatch(address); + // // case Coin.nano: + // // return NanoAccounts.isValid(NanoAccountType.NANO, address); + // // case Coin.banano: + // // return NanoAccounts.isValid(NanoAccountType.BANANO, address); + // // case Coin.tezos: + // // return RegExp(r"^tz[1-9A-HJ-NP-Za-km-z]{34}$").hasMatch(address); + // // case Coin.bitcoinTestNet: + // // return Address.validateAddress(address, testnet); + // // case Coin.litecoinTestNet: + // // return Address.validateAddress(address, litecointestnet); + // // case Coin.bitcoincashTestnet: + // // try { + // // // 0 for bitcoincash: address scheme, 1 for legacy address + // // final format = bitbox.Address.detectFormat(address); + // // + // // if (coin == Coin.bitcoincashTestnet) { + // // return true; + // // } + // // + // // if (format == bitbox.Address.formatCashAddr) { + // // String addr = address; + // // if (addr.contains(":")) { + // // addr = addr.split(":").last; + // // } + // // + // // return addr.startsWith("q"); + // // } else { + // // return address.startsWith("1"); + // // } + // // } catch (e) { + // // return false; + // // } + // // case Coin.firoTestNet: + // // return Address.validateAddress(address, firoTestNetwork); + // // case Coin.dogecoinTestNet: + // // return Address.validateAddress(address, dogecointestnet); + // // case Coin.stellarTestnet: + // // return RegExp(r"^[G][A-Z0-9]{55}$").hasMatch(address); + // // } + // } /// parse an address uri /// returns an empty map if the input string does not begin with "firo:" static Map parseUri(String uri) { - Map result = {}; + final Map result = {}; try { final u = Uri.parse(uri); if (u.hasScheme) { @@ -211,15 +192,13 @@ class AddressUtils { /// builds a uri string with the given address and query parameters if any static String buildUriString( - Coin coin, + CryptoCurrency coin, String address, Map params, ) { // TODO: other sanitation as well ? String sanitizedAddress = address; - if (coin == Coin.bitcoincash || - coin == Coin.bitcoincashTestnet || - coin == Coin.eCash) { + if (coin is Bitcoincash || coin is Ecash) { final prefix = "${coin.uriScheme}:"; if (address.startsWith(prefix)) { sanitizedAddress = address.replaceFirst(prefix, ""); diff --git a/lib/utilities/amount/amount_formatter.dart b/lib/utilities/amount/amount_formatter.dart index 1ae577507..937636069 100644 --- a/lib/utilities/amount/amount_formatter.dart +++ b/lib/utilities/amount/amount_formatter.dart @@ -4,16 +4,16 @@ import 'package:stackwallet/providers/global/locale_provider.dart'; import 'package:stackwallet/providers/global/prefs_provider.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -final pAmountUnit = Provider.family( +final pAmountUnit = Provider.family( (ref, coin) => ref.watch( prefsChangeNotifierProvider.select( (value) => value.amountUnit(coin), ), ), ); -final pMaxDecimals = Provider.family( +final pMaxDecimals = Provider.family( (ref, coin) => ref.watch( prefsChangeNotifierProvider.select( (value) => value.maxDecimals(coin), @@ -21,7 +21,8 @@ final pMaxDecimals = Provider.family( ), ); -final pAmountFormatter = Provider.family((ref, coin) { +final pAmountFormatter = + Provider.family((ref, coin) { final locale = ref.watch( localeServiceChangeNotifierProvider.select((value) => value.locale), ); @@ -37,7 +38,7 @@ final pAmountFormatter = Provider.family((ref, coin) { class AmountFormatter { final AmountUnit unit; final String locale; - final Coin coin; + final CryptoCurrency coin; final int maxDecimals; AmountFormatter({ diff --git a/lib/utilities/amount/amount_unit.dart b/lib/utilities/amount/amount_unit.dart index e74de6510..a81559556 100644 --- a/lib/utilities/amount/amount_unit.dart +++ b/lib/utilities/amount/amount_unit.dart @@ -13,8 +13,12 @@ import 'dart:math' as math; import 'package:decimal/decimal.dart'; import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; // preserve index order as index is used to store value in preferences enum AmountUnit { @@ -34,48 +38,56 @@ enum AmountUnit { const AmountUnit(this.shift); final int shift; - static List valuesForCoin(Coin coin) { - switch (coin) { - case Coin.firo: - case Coin.litecoin: - case Coin.particl: - case Coin.peercoin: - case Coin.namecoin: - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - case Coin.bitcoinTestNet: - case Coin.litecoinTestNet: - case Coin.bitcoincashTestnet: - case Coin.dogecoinTestNet: - case Coin.firoTestNet: - case Coin.peercoinTestNet: - case Coin.bitcoin: - case Coin.bitcoincash: - case Coin.dogecoin: - case Coin.eCash: - case Coin.epicCash: - case Coin.stellar: // TODO: check if this is correct - case Coin.stellarTestnet: - case Coin.tezos: - case Coin.solana: - return AmountUnit.values.sublist(0, 4); - - case Coin.monero: - case Coin.wownero: - return AmountUnit.values.sublist(0, 5); - - case Coin.ethereum: - return AmountUnit.values.sublist(0, 7); - - case Coin.nano: - case Coin.banano: - return AmountUnit.values; + static List valuesForCoin(CryptoCurrency coin) { + final remainder = coin.fractionDigits % 3; + int n = (coin.fractionDigits ~/ 3) + 1; + if (remainder > 0) { + n++; } + + return AmountUnit.values.sublist(0, n); + // + // switch (coin) { + // case Coin.firo: + // case Coin.litecoin: + // case Coin.particl: + // case Coin.peercoin: + // case Coin.namecoin: + // case Coin.bitcoinFrost: + // case Coin.bitcoinFrostTestNet: + // case Coin.bitcoinTestNet: + // case Coin.litecoinTestNet: + // case Coin.bitcoincashTestnet: + // case Coin.dogecoinTestNet: + // case Coin.firoTestNet: + // case Coin.peercoinTestNet: + // case Coin.bitcoin: + // case Coin.bitcoincash: + // case Coin.dogecoin: + // case Coin.eCash: + // case Coin.epicCash: + // case Coin.stellar: // TODO: check if this is correct + // case Coin.stellarTestnet: + // case Coin.tezos: + // case Coin.solana: + // return AmountUnit.values.sublist(0, 4); + // + // case Coin.monero: + // case Coin.wownero: + // return AmountUnit.values.sublist(0, 5); + // + // case Coin.ethereum: + // return AmountUnit.values.sublist(0, 7); + // + // case Coin.nano: + // case Coin.banano: + // return AmountUnit.values; + // } } } extension AmountUnitExt on AmountUnit { - String unitForCoin(Coin coin) { + String unitForCoin(CryptoCurrency coin) { switch (this) { case AmountUnit.normal: return coin.ticker; @@ -84,63 +96,57 @@ extension AmountUnitExt on AmountUnit { case AmountUnit.micro: return "µ${coin.ticker}"; case AmountUnit.nano: - if (coin == Coin.ethereum) { + if (coin is Ethereum) { return "gwei"; - } else if (coin == Coin.wownero || - coin == Coin.monero || - coin == Coin.nano || - coin == Coin.banano) { + } else if (coin is Wownero || coin is Monero || coin is NanoCurrency) { return "n${coin.ticker}"; } else { return "sats"; } case AmountUnit.pico: - if (coin == Coin.ethereum) { + if (coin is Ethereum) { return "mwei"; - } else if (coin == Coin.wownero || - coin == Coin.monero || - coin == Coin.nano || - coin == Coin.banano) { + } else if (coin is Wownero || coin is Monero || coin is NanoCurrency) { return "p${coin.ticker}"; } else { return "invalid"; } case AmountUnit.femto: - if (coin == Coin.ethereum) { + if (coin is Ethereum) { return "kwei"; - } else if (coin == Coin.nano || coin == Coin.banano) { + } else if (coin is NanoCurrency) { return "f${coin.ticker}"; } else { return "invalid"; } case AmountUnit.atto: - if (coin == Coin.ethereum) { + if (coin is Ethereum) { return "wei"; - } else if (coin == Coin.nano || coin == Coin.banano) { + } else if (coin is NanoCurrency) { return "a${coin.ticker}"; } else { return "invalid"; } case AmountUnit.zepto: - if (coin == Coin.nano || coin == Coin.banano) { + if (coin is NanoCurrency) { return "z${coin.ticker}"; } else { return "invalid"; } case AmountUnit.yocto: - if (coin == Coin.nano || coin == Coin.banano) { + if (coin is NanoCurrency) { return "y${coin.ticker}"; } else { return "invalid"; } case AmountUnit.ronto: - if (coin == Coin.nano || coin == Coin.banano) { + if (coin is NanoCurrency) { return "r${coin.ticker}"; } else { return "invalid"; } case AmountUnit.quecto: - if (coin == Coin.nano || coin == Coin.banano) { + if (coin is NanoCurrency) { return "q${coin.ticker}"; } else { return "invalid"; @@ -174,7 +180,7 @@ extension AmountUnitExt on AmountUnit { Amount? tryParse( String value, { required String locale, - required Coin coin, + required CryptoCurrency coin, EthContract? tokenContract, bool overrideWithDecimalPlacesFromString = false, }) { @@ -212,7 +218,7 @@ extension AmountUnitExt on AmountUnit { final decimalPlaces = overrideWithDecimalPlacesFromString ? decimal.scale - : tokenContract?.decimals ?? coin.decimals; + : tokenContract?.decimals ?? coin.fractionDigits; final realShift = math.min(shift, decimalPlaces); return decimal.shift(0 - realShift).toAmount(fractionDigits: decimalPlaces); @@ -221,7 +227,7 @@ extension AmountUnitExt on AmountUnit { String displayAmount({ required Amount amount, required String locale, - required Coin coin, + required CryptoCurrency coin, required int maxDecimalPlaces, bool withUnitName = true, bool indicatePrecisionLoss = true, @@ -271,8 +277,9 @@ extension AmountUnitExt on AmountUnit { ? tokenContract.decimals : maxDecimalPlaces; } else { - updatedMax = - maxDecimalPlaces > coin.decimals ? coin.decimals : maxDecimalPlaces; + updatedMax = maxDecimalPlaces > coin.fractionDigits + ? coin.fractionDigits + : maxDecimalPlaces; } final int actualDecimalPlaces = math.min(places, updatedMax); diff --git a/lib/utilities/block_explorers.dart b/lib/utilities/block_explorers.dart index cf67697b6..b72b4a851 100644 --- a/lib/utilities/block_explorers.dart +++ b/lib/utilities/block_explorers.dart @@ -10,75 +10,11 @@ import 'package:stackwallet/db/isar/main_db.dart'; import 'package:stackwallet/models/isar/models/block_explorer.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; - -// Returns the default block explorer URL for the given coin and txid -Uri getDefaultBlockExplorerUrlFor({ - required Coin coin, - required String txid, -}) { - switch (coin) { - case Coin.bitcoinFrost: - case Coin.bitcoin: - return Uri.parse("https://mempool.space/tx/$txid"); - case Coin.litecoin: - return Uri.parse("https://chain.so/tx/LTC/$txid"); - case Coin.litecoinTestNet: - return Uri.parse("https://chain.so/tx/LTCTEST/$txid"); - case Coin.bitcoinTestNet: - case Coin.bitcoinFrostTestNet: - return Uri.parse("https://mempool.space/testnet/tx/$txid"); - case Coin.dogecoin: - return Uri.parse("https://chain.so/tx/DOGE/$txid"); - case Coin.eCash: - return Uri.parse("https://explorer.e.cash/tx/$txid"); - case Coin.dogecoinTestNet: - return Uri.parse("https://chain.so/tx/DOGETEST/$txid"); - case Coin.epicCash: - // TODO: Handle this case. - throw UnimplementedError("missing block explorer for epic cash"); - case Coin.ethereum: - return Uri.parse("https://etherscan.io/tx/$txid"); - case Coin.monero: - return Uri.parse("https://xmrchain.net/tx/$txid"); - case Coin.wownero: - return Uri.parse("https://explore.wownero.com/search?value=$txid"); - case Coin.firo: - return Uri.parse("https://explorer.firo.org/tx/$txid"); - case Coin.firoTestNet: - return Uri.parse("https://testexplorer.firo.org/tx/$txid"); - case Coin.bitcoincash: - return Uri.parse("https://blockchair.com/bitcoin-cash/transaction/$txid"); - case Coin.bitcoincashTestnet: - return Uri.parse( - "https://blockexplorer.one/bitcoin-cash/testnet/tx/$txid"); - case Coin.namecoin: - return Uri.parse("https://chainz.cryptoid.info/nmc/tx.dws?$txid.htm"); - case Coin.particl: - return Uri.parse("https://chainz.cryptoid.info/part/tx.dws?$txid.htm"); - case Coin.stellar: - return Uri.parse("https://stellarchain.io/tx/$txid"); - case Coin.nano: - return Uri.parse("https://www.nanolooker.com/block/$txid"); - case Coin.banano: - return Uri.parse("https://www.bananolooker.com/block/$txid"); - case Coin.stellarTestnet: - return Uri.parse("https://testnet.stellarchain.io/transactions/$txid"); - case Coin.tezos: - return Uri.parse("https://tzstats.com/$txid"); - case Coin.solana: - return Uri.parse("https://explorer.solana.com/tx/$txid"); - case Coin.peercoin: - return Uri.parse("https://chainz.cryptoid.info/ppc/tx.dws?$txid.htm"); - case Coin.peercoinTestNet: - return Uri.parse( - "https://chainz.cryptoid.info/ppc-test/search.dws?q=$txid.htm"); - } -} +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; // Returns internal Isar ID for the inserted object/record Future setBlockExplorerForCoin({ - required Coin coin, + required CryptoCurrency coin, required Uri url, }) async { return await MainDB.instance.putTransactionBlockExplorer( @@ -91,12 +27,13 @@ Future setBlockExplorerForCoin({ // Returns the block explorer URL for the given coin and txid Uri getBlockExplorerTransactionUrlFor({ - required Coin coin, + required CryptoCurrency coin, required String txid, }) { - String? url = MainDB.instance.getTransactionBlockExplorer(coin: coin)?.url; + String? url = + MainDB.instance.getTransactionBlockExplorer(cryptoCurrency: coin)?.url; if (url == null) { - return getDefaultBlockExplorerUrlFor(coin: coin, txid: txid); + return coin.defaultBlockExplorer(txid); } else { url = url.replaceAll("%5BTXID%5D", txid); return Uri.parse(url); diff --git a/lib/utilities/constants.dart b/lib/utilities/constants.dart index d3fedc666..5971d02f3 100644 --- a/lib/utilities/constants.dart +++ b/lib/utilities/constants.dart @@ -10,7 +10,6 @@ import 'dart:io'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/util.dart'; class _LayoutSizing { @@ -34,31 +33,6 @@ abstract class Constants { // just use enable exchange flag // static bool enableBuy = enableExchange; // // true; // true for development, - static final BigInt _satsPerCoinECash = BigInt.from(100); - static final BigInt _satsPerCoinEthereum = BigInt.from(1000000000000000000); - static final BigInt _satsPerCoinMonero = BigInt.from(1000000000000); - static final BigInt _satsPerCoinWownero = BigInt.from(100000000000); - static final BigInt _satsPerCoinNano = - BigInt.parse("1000000000000000000000000000000"); // 1*10^30 - static final BigInt _satsPerCoinBanano = - BigInt.parse("100000000000000000000000000000"); // 1*10^29 - static final BigInt _satsPerCoinStellar = BigInt.from( - 10000000); // https://developers.stellar.org/docs/fundamentals-and-concepts/stellar-data-structures/assets#amount-precision - static final BigInt _satsPerCoin = BigInt.from(100000000); - static final BigInt _satsPerCoinTezos = BigInt.from(1000000); - static final BigInt _satsPerCoinSolana = BigInt.from(1000000000); - static final BigInt _satsPerCoinPeercoin = BigInt.from(1000000); // 1*10^6. - static const int _decimalPlaces = 8; - static const int _decimalPlacesNano = 30; - static const int _decimalPlacesBanano = 29; - static const int _decimalPlacesWownero = 11; - static const int _decimalPlacesMonero = 12; - static const int _decimalPlacesEthereum = 18; - static const int _decimalPlacesECash = 2; - static const int _decimalPlacesStellar = 7; - static const int _decimalPlacesTezos = 6; - static const int _decimalPlacesSolana = 9; - static const int _decimalPlacesPeercoin = 6; static const int notificationsMax = 0xFFFFFFFF; static const Duration networkAliveTimerDuration = Duration(seconds: 10); @@ -70,264 +44,6 @@ abstract class Constants { static const int rescanV1 = 1; - static BigInt satsPerCoin(Coin coin) { - switch (coin) { - case Coin.bitcoin: - case Coin.bitcoinFrost: - case Coin.litecoin: - case Coin.litecoinTestNet: - case Coin.bitcoincash: - case Coin.bitcoincashTestnet: - case Coin.dogecoin: - case Coin.firo: - case Coin.bitcoinTestNet: - case Coin.bitcoinFrostTestNet: - case Coin.dogecoinTestNet: - case Coin.firoTestNet: - case Coin.epicCash: - case Coin.namecoin: - case Coin.particl: - return _satsPerCoin; - - case Coin.nano: - return _satsPerCoinNano; - - case Coin.banano: - return _satsPerCoinBanano; - - case Coin.wownero: - return _satsPerCoinWownero; - - case Coin.monero: - return _satsPerCoinMonero; - - case Coin.ethereum: - return _satsPerCoinEthereum; - - case Coin.eCash: - return _satsPerCoinECash; - - case Coin.stellar: - case Coin.stellarTestnet: - return _satsPerCoinStellar; - - case Coin.tezos: - return _satsPerCoinTezos; - - case Coin.solana: - return _satsPerCoinSolana; - - case Coin.peercoin: - case Coin.peercoinTestNet: - return _satsPerCoinPeercoin; - } - } - - static int decimalPlacesForCoin(Coin coin) { - switch (coin) { - case Coin.bitcoin: - case Coin.bitcoinFrost: - case Coin.litecoin: - case Coin.litecoinTestNet: - case Coin.bitcoincash: - case Coin.bitcoincashTestnet: - case Coin.dogecoin: - case Coin.firo: - case Coin.bitcoinTestNet: - case Coin.bitcoinFrostTestNet: - case Coin.dogecoinTestNet: - case Coin.firoTestNet: - case Coin.epicCash: - case Coin.namecoin: - case Coin.particl: - return _decimalPlaces; - - case Coin.nano: - return _decimalPlacesNano; - - case Coin.banano: - return _decimalPlacesBanano; - - case Coin.wownero: - return _decimalPlacesWownero; - - case Coin.monero: - return _decimalPlacesMonero; - - case Coin.ethereum: - return _decimalPlacesEthereum; - - case Coin.eCash: - return _decimalPlacesECash; - - case Coin.stellar: - case Coin.stellarTestnet: - return _decimalPlacesStellar; - - case Coin.tezos: - return _decimalPlacesTezos; - - case Coin.solana: - return _decimalPlacesSolana; - - case Coin.peercoin: - case Coin.peercoinTestNet: - return _decimalPlacesPeercoin; - } - } - - static List possibleLengthsForCoin(Coin coin) { - final List values = []; - switch (coin) { - case Coin.bitcoin: - case Coin.litecoin: - case Coin.litecoinTestNet: - case Coin.bitcoincash: - case Coin.bitcoincashTestnet: - case Coin.dogecoin: - case Coin.firo: - case Coin.bitcoinTestNet: - case Coin.dogecoinTestNet: - case Coin.firoTestNet: - case Coin.eCash: - case Coin.epicCash: - case Coin.ethereum: - case Coin.namecoin: - case Coin.particl: - values.addAll([12, 24]); - break; - case Coin.solana: - case Coin.nano: - case Coin.stellar: - case Coin.stellarTestnet: - values.addAll([24, 12]); - break; - case Coin.banano: - values.addAll([24, 12]); - break; - case Coin.tezos: - values.addAll([24, 12]); - - case Coin.monero: - values.addAll([25]); - break; - case Coin.wownero: - values.addAll([14, 25]); - break; - - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - throw ArgumentError("Frost mnemonic lengths unsupported"); - case Coin.peercoin: - case Coin.peercoinTestNet: - values.addAll([12, /*15, 18, 21,*/ 24]); // TODO [prio=low]: Test rest. - break; - } - return values; - } - - static int targetBlockTimeInSeconds(Coin coin) { - // TODO verify values - switch (coin) { - case Coin.bitcoin: - case Coin.bitcoinTestNet: - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - case Coin.bitcoincash: - case Coin.bitcoincashTestnet: - case Coin.eCash: - case Coin.peercoin: - case Coin.peercoinTestNet: - return 600; - - case Coin.dogecoin: - case Coin.dogecoinTestNet: - return 60; - - case Coin.litecoin: - case Coin.litecoinTestNet: - return 150; - - case Coin.firo: - case Coin.firoTestNet: - return 150; - - case Coin.epicCash: - return 60; - - case Coin.ethereum: - return 15; - - case Coin.monero: - return 120; - - case Coin.wownero: - return 120; - - case Coin.namecoin: - return 600; - - case Coin.particl: - return 600; - - case Coin.nano: // TODO: Verify this - case Coin.banano: // TODO: Verify this - case Coin.solana: - return 1; - - case Coin.stellar: - case Coin.stellarTestnet: - return 5; - - case Coin.tezos: - return 60; - } - } - - static int defaultSeedPhraseLengthFor({required Coin coin}) { - switch (coin) { - case Coin.bitcoin: - case Coin.bitcoinTestNet: - case Coin.bitcoincash: - case Coin.bitcoincashTestnet: - case Coin.eCash: - case Coin.dogecoin: - case Coin.dogecoinTestNet: - case Coin.litecoin: - case Coin.litecoinTestNet: - case Coin.firo: - case Coin.firoTestNet: - case Coin.namecoin: - case Coin.particl: - case Coin.ethereum: - case Coin.solana: - return 12; - - case Coin.wownero: - return 14; - - case Coin.nano: - case Coin.banano: - case Coin.epicCash: - case Coin.peercoin: // TODO [prio=low]: Verify default seed length. - case Coin.peercoinTestNet: - case Coin.stellar: - case Coin.stellarTestnet: - case Coin.tezos: - return 24; - - case Coin.monero: - return 25; - - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - throw ArgumentError("Frost mnemonic length unsupported"); - // - // default: - // -1; - } - } - static const Map monthMapShort = { 1: 'Jan', 2: 'Feb', diff --git a/lib/utilities/default_nodes.dart b/lib/utilities/default_nodes.dart index 2e2bd71cc..f7f09583a 100644 --- a/lib/utilities/default_nodes.dart +++ b/lib/utilities/default_nodes.dart @@ -8,401 +8,11 @@ * */ -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; abstract class DefaultNodes { static const String defaultNodeIdPrefix = "default_"; - static String buildId(Coin coin) => "$defaultNodeIdPrefix${coin.name}"; + static String buildId(CryptoCurrency cryptoCurrency) => + "$defaultNodeIdPrefix${cryptoCurrency.identifier}"; static const String defaultName = "Stack Default"; - - @Deprecated("old and decrepit") - static List get all => Coin.values - .map((e) => DefaultNodes.getNodeFor(e)) - .toList(growable: false); - - static NodeModel get bitcoin => NodeModel( - host: "bitcoin.stackwallet.com", - port: 50002, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.bitcoin), - useSSL: true, - enabled: true, - coinName: Coin.bitcoin.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get litecoin => NodeModel( - host: "litecoin.stackwallet.com", - port: 20063, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.litecoin), - useSSL: true, - enabled: true, - coinName: Coin.litecoin.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get litecoinTestNet => NodeModel( - host: "litecoin.stackwallet.com", - port: 51002, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.litecoinTestNet), - useSSL: true, - enabled: true, - coinName: Coin.litecoinTestNet.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get bitcoincash => NodeModel( - host: "bitcoincash.stackwallet.com", - port: 50002, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.bitcoincash), - useSSL: true, - enabled: true, - coinName: Coin.bitcoincash.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get dogecoin => NodeModel( - host: "dogecoin.stackwallet.com", - port: 50022, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.dogecoin), - useSSL: true, - enabled: true, - coinName: Coin.dogecoin.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get firo => NodeModel( - host: "firo.stackwallet.com", - port: 50002, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.firo), - useSSL: true, - enabled: true, - coinName: Coin.firo.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get monero => NodeModel( - host: "https://monero.stackwallet.com", - port: 18081, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.monero), - useSSL: true, - enabled: true, - coinName: Coin.monero.name, - isFailover: true, - isDown: false, - trusted: true, - ); - - static NodeModel get wownero => NodeModel( - host: "https://wownero.stackwallet.com", - port: 34568, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.wownero), - useSSL: true, - enabled: true, - coinName: Coin.wownero.name, - isFailover: true, - isDown: false, - trusted: true, - ); - - static NodeModel get epicCash => NodeModel( - host: "http://epiccash.stackwallet.com", - port: 3413, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.epicCash), - useSSL: false, - enabled: true, - coinName: Coin.epicCash.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get ethereum => NodeModel( - host: "https://eth.stackwallet.com", - port: 443, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.ethereum), - useSSL: true, - enabled: true, - coinName: Coin.ethereum.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get namecoin => NodeModel( - host: "namecoin.stackwallet.com", - port: 57002, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.namecoin), - useSSL: true, - enabled: true, - coinName: Coin.namecoin.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get particl => NodeModel( - host: "particl.stackwallet.com", - port: 58002, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.particl), - useSSL: true, - enabled: true, - coinName: Coin.particl.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get peercoin => NodeModel( - host: "electrum.peercoinexplorer.net", - port: 50002, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.peercoin), - useSSL: true, - enabled: true, - coinName: Coin.peercoin.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get solana => NodeModel( - host: - "https://api.mainnet-beta.solana.com", // TODO: Change this to stack wallet one - port: 443, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.solana), - useSSL: true, - enabled: true, - coinName: Coin.solana.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get stellar => NodeModel( - host: "https://horizon.stellar.org", - port: 443, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.stellar), - useSSL: false, - enabled: true, - coinName: Coin.stellar.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get tezos => NodeModel( - // TODO: Change this to stack wallet one - host: "https://mainnet.api.tez.ie", - port: 443, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.tezos), - useSSL: true, - enabled: true, - coinName: Coin.tezos.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get nano => NodeModel( - host: "https://rainstorm.city/api", - port: 443, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.nano), - useSSL: true, - enabled: true, - coinName: Coin.nano.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get banano => NodeModel( - host: "https://kaliumapi.appditto.com/api", - port: 443, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.banano), - useSSL: true, - enabled: true, - coinName: Coin.banano.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get bitcoinTestnet => NodeModel( - host: "bitcoin-testnet.stackwallet.com", - port: 51002, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.bitcoinTestNet), - useSSL: true, - enabled: true, - coinName: Coin.bitcoinTestNet.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get firoTestnet => NodeModel( - host: "firo-testnet.stackwallet.com", - port: 50002, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.firoTestNet), - useSSL: true, - enabled: true, - coinName: Coin.firoTestNet.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get dogecoinTestnet => NodeModel( - host: "dogecoin-testnet.stackwallet.com", - port: 50022, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.dogecoinTestNet), - useSSL: true, - enabled: true, - coinName: Coin.dogecoinTestNet.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get bitcoincashTestnet => NodeModel( - host: "bitcoincash-testnet.stackwallet.com", - port: 60002, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.bitcoincashTestnet), - useSSL: true, - enabled: true, - coinName: Coin.bitcoincashTestnet.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get eCash => NodeModel( - host: "ecash.stackwallet.com", - port: 59002, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.eCash), - useSSL: true, - enabled: true, - coinName: Coin.eCash.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get peercoinTestNet => NodeModel( - host: "testnet-electrum.peercoinexplorer.net", - port: 50002, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.peercoinTestNet), - useSSL: true, - enabled: true, - coinName: Coin.peercoinTestNet.name, - isFailover: true, - isDown: false, - ); - - static NodeModel get stellarTestnet => NodeModel( - host: "https://horizon-testnet.stellar.org/", - port: 50022, - name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.stellarTestnet), - useSSL: true, - enabled: true, - coinName: Coin.stellarTestnet.name, - isFailover: true, - isDown: false, - ); - - static NodeModel getNodeFor(Coin coin) { - switch (coin) { - case Coin.bitcoin: - case Coin.bitcoinFrost: - return bitcoin; - - case Coin.litecoin: - return litecoin; - - case Coin.bitcoincash: - return bitcoincash; - - case Coin.dogecoin: - return dogecoin; - - case Coin.eCash: - return eCash; - - case Coin.epicCash: - return epicCash; - - case Coin.ethereum: - return ethereum; - - case Coin.firo: - return firo; - - case Coin.monero: - return monero; - - case Coin.wownero: - return wownero; - - case Coin.namecoin: - return namecoin; - - case Coin.particl: - return particl; - - case Coin.peercoin: - return peercoin; - - case Coin.peercoinTestNet: - return peercoinTestNet; - - case Coin.solana: - return solana; - - case Coin.stellar: - return stellar; - - case Coin.nano: - return nano; - - case Coin.banano: - return banano; - - case Coin.tezos: - return tezos; - - case Coin.bitcoinTestNet: - case Coin.bitcoinFrostTestNet: - return bitcoinTestnet; - - case Coin.litecoinTestNet: - return litecoinTestNet; - - case Coin.bitcoincashTestnet: - return bitcoincashTestnet; - - case Coin.firoTestNet: - return firoTestnet; - - case Coin.dogecoinTestNet: - return dogecoinTestnet; - - case Coin.stellarTestnet: - return stellarTestnet; - } - } } diff --git a/lib/utilities/enums/coin_enum.dart b/lib/utilities/enums/coin_enum.dart deleted file mode 100644 index 903054b09..000000000 --- a/lib/utilities/enums/coin_enum.dart +++ /dev/null @@ -1,632 +0,0 @@ -/* - * This file is part of Stack Wallet. - * - * Copyright (c) 2023 Cypher Stack - * All Rights Reserved. - * The code is distributed under GPLv3 license, see LICENSE file for details. - * Generated by Cypher Stack on 2023-05-26 - * - */ - -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/utilities/constants.dart'; - -enum Coin { - bitcoin, - monero, - banano, - bitcoincash, - bitcoinFrost, - dogecoin, - eCash, - epicCash, - ethereum, - firo, - litecoin, - namecoin, - nano, - particl, - peercoin, - solana, - stellar, - tezos, - wownero, - - /// - - /// - /// - - bitcoinTestNet, - bitcoincashTestnet, - bitcoinFrostTestNet, - dogecoinTestNet, - firoTestNet, - litecoinTestNet, - peercoinTestNet, - stellarTestnet, -} - -extension CoinExt on Coin { - String get prettyName { - switch (this) { - case Coin.bitcoin: - return "Bitcoin"; - case Coin.bitcoinFrost: - return "Bitcoin Frost"; - case Coin.litecoin: - return "Litecoin"; - case Coin.bitcoincash: - return "Bitcoin Cash"; - case Coin.dogecoin: - return "Dogecoin"; - case Coin.epicCash: - return "Epic Cash"; - case Coin.eCash: - return "eCash"; - case Coin.ethereum: - return "Ethereum"; - case Coin.firo: - return "Firo"; - case Coin.monero: - return "Monero"; - case Coin.particl: - return "Particl"; - case Coin.peercoin: - return "Peercoin"; - case Coin.solana: - return "Solana"; - case Coin.stellar: - return "Stellar"; - case Coin.tezos: - return "Tezos"; - case Coin.wownero: - return "Wownero"; - case Coin.namecoin: - return "Namecoin"; - case Coin.nano: - return "Nano"; - case Coin.banano: - return "Banano"; - case Coin.bitcoinTestNet: - return "tBitcoin"; - case Coin.bitcoinFrostTestNet: - return "tBitcoin Frost"; - case Coin.litecoinTestNet: - return "tLitecoin"; - case Coin.bitcoincashTestnet: - return "tBitcoin Cash"; - case Coin.firoTestNet: - return "tFiro"; - case Coin.dogecoinTestNet: - return "tDogecoin"; - case Coin.peercoinTestNet: - return "tPeercoin"; - case Coin.stellarTestnet: - return "tStellar"; - } - } - - String get ticker { - switch (this) { - case Coin.bitcoin: - case Coin.bitcoinFrost: - return "BTC"; - case Coin.litecoin: - return "LTC"; - case Coin.bitcoincash: - return "BCH"; - case Coin.dogecoin: - return "DOGE"; - case Coin.epicCash: - return "EPIC"; - case Coin.ethereum: - return "ETH"; - case Coin.eCash: - return "XEC"; - case Coin.firo: - return "FIRO"; - case Coin.monero: - return "XMR"; - case Coin.particl: - return "PART"; - case Coin.peercoin: - return "PPC"; - case Coin.solana: - return "SOL"; - case Coin.stellar: - return "XLM"; - case Coin.tezos: - return "XTZ"; - case Coin.wownero: - return "WOW"; - case Coin.namecoin: - return "NMC"; - case Coin.nano: - return "XNO"; - case Coin.banano: - return "BAN"; - case Coin.bitcoinTestNet: - case Coin.bitcoinFrostTestNet: - return "tBTC"; - case Coin.litecoinTestNet: - return "tLTC"; - case Coin.bitcoincashTestnet: - return "tBCH"; - case Coin.firoTestNet: - return "tFIRO"; - case Coin.dogecoinTestNet: - return "tDOGE"; - case Coin.peercoinTestNet: - return "tPPC"; - case Coin.stellarTestnet: - return "tXLM"; - } - } - - String get uriScheme { - switch (this) { - case Coin.bitcoin: - case Coin.bitcoinFrost: - return "bitcoin"; - case Coin.litecoin: - return "litecoin"; - case Coin.bitcoincash: - return "bitcoincash"; - case Coin.dogecoin: - return "dogecoin"; - case Coin.epicCash: - // TODO: is this actually the right one? - return "epic"; - case Coin.ethereum: - return "ethereum"; - case Coin.eCash: - return "ecash"; - case Coin.firo: - return "firo"; - case Coin.monero: - return "monero"; - case Coin.particl: - return "particl"; - case Coin.peercoin: - return "peercoin"; - case Coin.solana: - return "solana"; - case Coin.stellar: - return "stellar"; - case Coin.tezos: - return "tezos"; - case Coin.wownero: - return "wownero"; - case Coin.namecoin: - return "namecoin"; - case Coin.nano: - return "nano"; - case Coin.banano: - return "ban"; - case Coin.bitcoinTestNet: - case Coin.bitcoinFrostTestNet: - return "bitcoin"; - case Coin.litecoinTestNet: - return "litecoin"; - case Coin.bitcoincashTestnet: - return "bchtest"; - case Coin.firoTestNet: - return "firo"; - case Coin.dogecoinTestNet: - return "dogecoin"; - case Coin.peercoinTestNet: - return "peercoin"; - case Coin.stellarTestnet: - return "stellar"; - } - } - - bool get hasMnemonicPassphraseSupport { - switch (this) { - case Coin.bitcoin: - case Coin.bitcoinTestNet: - case Coin.litecoin: - case Coin.litecoinTestNet: - case Coin.bitcoincash: - case Coin.bitcoincashTestnet: - case Coin.dogecoin: - case Coin.dogecoinTestNet: - case Coin.firo: - case Coin.firoTestNet: - case Coin.namecoin: - case Coin.particl: - case Coin.peercoin: - case Coin.peercoinTestNet: - case Coin.ethereum: - case Coin.eCash: - case Coin.stellar: - case Coin.stellarTestnet: - return true; - - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - case Coin.epicCash: - case Coin.monero: - case Coin.wownero: - case Coin.nano: - case Coin.banano: - case Coin.tezos: - case Coin.solana: - return false; - } - } - - bool get hasBuySupport { - switch (this) { - case Coin.bitcoin: - case Coin.litecoin: - case Coin.bitcoincash: - case Coin.dogecoin: - case Coin.ethereum: - return true; - - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - case Coin.firo: - case Coin.namecoin: - case Coin.particl: - case Coin.peercoin: - case Coin.peercoinTestNet: - case Coin.eCash: - case Coin.epicCash: - case Coin.monero: - case Coin.tezos: - case Coin.wownero: - case Coin.dogecoinTestNet: - case Coin.bitcoinTestNet: - case Coin.litecoinTestNet: - case Coin.bitcoincashTestnet: - case Coin.firoTestNet: - case Coin.nano: - case Coin.banano: - case Coin.solana: - case Coin.stellar: - case Coin.stellarTestnet: - return false; - } - } - - bool get isTestNet { - switch (this) { - case Coin.bitcoin: - case Coin.bitcoinFrost: - case Coin.litecoin: - case Coin.bitcoincash: - case Coin.dogecoin: - case Coin.firo: - case Coin.namecoin: - case Coin.particl: - case Coin.peercoin: - case Coin.epicCash: - case Coin.ethereum: - case Coin.monero: - case Coin.tezos: - case Coin.wownero: - case Coin.nano: - case Coin.banano: - case Coin.eCash: - case Coin.stellar: - case Coin.solana: - return false; - - case Coin.dogecoinTestNet: - case Coin.bitcoinTestNet: - case Coin.bitcoinFrostTestNet: - case Coin.litecoinTestNet: - case Coin.bitcoincashTestnet: - case Coin.firoTestNet: - case Coin.peercoinTestNet: - case Coin.stellarTestnet: - return true; - } - } - - bool get isFrost { - switch (this) { - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - return true; - - default: - return false; - } - } - - Coin get mainNetVersion { - switch (this) { - case Coin.bitcoin: - case Coin.bitcoinFrost: - case Coin.litecoin: - case Coin.bitcoincash: - case Coin.dogecoin: - case Coin.firo: - case Coin.namecoin: - case Coin.particl: - case Coin.peercoin: - case Coin.epicCash: - case Coin.ethereum: - case Coin.monero: - case Coin.tezos: - case Coin.wownero: - case Coin.nano: - case Coin.banano: - case Coin.eCash: - case Coin.stellar: - case Coin.solana: - return this; - - case Coin.dogecoinTestNet: - return Coin.dogecoin; - - case Coin.bitcoinTestNet: - return Coin.bitcoin; - - case Coin.bitcoinFrostTestNet: - return Coin.bitcoinFrost; - - case Coin.litecoinTestNet: - return Coin.litecoin; - - case Coin.bitcoincashTestnet: - return Coin.bitcoincash; - - case Coin.firoTestNet: - return Coin.firo; - - case Coin.peercoinTestNet: - return Coin.peercoin; - - case Coin.stellarTestnet: - return Coin.stellar; - } - } - - int get decimals => Constants.decimalPlacesForCoin(this); - - // Note: this must relate to DerivePathType for certain coins! - AddressType get primaryAddressType { - switch (this) { - case Coin.bitcoin: - case Coin.bitcoinTestNet: - case Coin.litecoin: - case Coin.litecoinTestNet: - case Coin.namecoin: - case Coin.particl: - case Coin.peercoin: - case Coin.peercoinTestNet: - return AddressType.p2wpkh; - - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - return AddressType.frostMS; - - case Coin.eCash: - case Coin.bitcoincash: - case Coin.bitcoincashTestnet: - case Coin.dogecoin: - case Coin.firo: - case Coin.firoTestNet: - case Coin.dogecoinTestNet: - return AddressType.p2pkh; - - case Coin.monero: - case Coin.wownero: - return AddressType.cryptonote; - - case Coin.epicCash: - return AddressType.mimbleWimble; - - case Coin.ethereum: - return AddressType.ethereum; - - case Coin.tezos: - return AddressType.tezos; - - case Coin.nano: - return AddressType.nano; - - case Coin.banano: - return AddressType.banano; - - case Coin.stellar: - case Coin.stellarTestnet: - return AddressType.stellar; - - case Coin.solana: - return AddressType.solana; - } - } -} - -Coin coinFromPrettyName(String name) { - switch (name) { - case "Bitcoin": - case "bitcoin": - return Coin.bitcoin; - - case "Litecoin": - case "litecoin": - return Coin.litecoin; - - case "Bitcoincash": - case "bitcoincash": - case "Bitcoin Cash": - return Coin.bitcoincash; - - case "Dogecoin": - case "dogecoin": - return Coin.dogecoin; - - case "Epic Cash": - case "epicCash": - return Coin.epicCash; - - case "Ethereum": - case "ethereum": - return Coin.ethereum; - - case "Firo": - case "firo": - return Coin.firo; - - case "E-Cash": - case "ecash": - case "eCash": - return Coin.eCash; - - case "Monero": - case "monero": - return Coin.monero; - - case "Particl": - case "particl": - return Coin.particl; - - case "Peercoin": - case "peercoin": - return Coin.peercoin; - - case "tPeercoin": - case "Peercoin Testnet": - case "peercoinTestNet": - return Coin.peercoinTestNet; - - case "Solana": - case "solana": - return Coin.solana; - - case "Stellar": - case "stellar": - return Coin.stellar; - - case "Tezos": - case "tezos": - return Coin.tezos; - - case "Namecoin": - case "namecoin": - return Coin.namecoin; - - case "Bitcoin Testnet": - case "tBitcoin": - case "bitcoinTestNet": - return Coin.bitcoinTestNet; - - case "Litecoin Testnet": - case "tlitecoin": - case "litecoinTestNet": - case "tLitecoin": - return Coin.litecoinTestNet; - - case "Bitcoincash Testnet": - case "tBitcoin Cash": - case "Bitcoin Cash Testnet": - case "bitcoincashTestnet": - return Coin.bitcoincashTestnet; - - case "Firo Testnet": - case "tFiro": - case "firoTestNet": - return Coin.firoTestNet; - - case "Dogecoin Testnet": - case "tDogecoin": - case "dogecoinTestNet": - return Coin.dogecoinTestNet; - - case "Wownero": - case "tWownero": - case "wownero": - return Coin.wownero; - - case "Nano": - case "nano": - return Coin.nano; - - case "Banano": - case "banano": - return Coin.banano; - - case "Stellar Testnet": - case "stellarTestnet": - case "stellarTestNet": - case "tStellar": - return Coin.stellarTestnet; - - case "Bitcoin Frost": - case "bitcoinFrost": - return Coin.bitcoinFrost; - - case "Bitcoin Frost Testnet": - case "tBitcoin Frost": - case "bitcoinFrostTestNet": - return Coin.bitcoinFrostTestNet; - - default: - throw ArgumentError.value( - name, - "name", - "No Coin enum value with that prettyName", - ); - } -} - -Coin coinFromTickerCaseInsensitive(String ticker) { - switch (ticker.toLowerCase()) { - case "btc": - return Coin.bitcoin; - case "ltc": - return Coin.litecoin; - case "bch": - return Coin.bitcoincash; - case "doge": - return Coin.dogecoin; - case "epic": - return Coin.epicCash; - case "xec": - return Coin.eCash; - case "eth": - return Coin.ethereum; - case "firo": - return Coin.firo; - case "xmr": - return Coin.monero; - case "nmc": - return Coin.namecoin; - case "part": - return Coin.particl; - case "sol": - return Coin.solana; - case "xlm": - return Coin.stellar; - case "xtz": - return Coin.tezos; - case "tltc": - return Coin.litecoinTestNet; - case "tbtc": - return Coin.bitcoinTestNet; - case "tbch": - return Coin.bitcoincashTestnet; - case "tfiro": - return Coin.firoTestNet; - case "tdoge": - return Coin.dogecoinTestNet; - case "wow": - return Coin.wownero; - case "xno": - return Coin.nano; - case "ban": - return Coin.banano; - case "txlm": - return Coin.stellarTestnet; - default: - throw ArgumentError.value( - ticker, "name", "No Coin enum value with that ticker"); - } -} diff --git a/lib/utilities/enums/derive_path_type_enum.dart b/lib/utilities/enums/derive_path_type_enum.dart index 4dcaef022..d17a6584a 100644 --- a/lib/utilities/enums/derive_path_type_enum.dart +++ b/lib/utilities/enums/derive_path_type_enum.dart @@ -9,7 +9,6 @@ */ import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; enum DerivePathType { bip44, @@ -45,49 +44,3 @@ enum DerivePathType { } } } - -extension DerivePathTypeExt on DerivePathType { - static DerivePathType primaryFor(Coin coin) { - switch (coin) { - case Coin.bitcoincash: - case Coin.bitcoincashTestnet: - case Coin.dogecoin: - case Coin.dogecoinTestNet: - case Coin.firo: - case Coin.firoTestNet: - return DerivePathType.bip44; - - case Coin.bitcoin: - case Coin.bitcoinTestNet: - case Coin.litecoin: - case Coin.litecoinTestNet: - case Coin.namecoin: - case Coin.particl: - case Coin.peercoin: - case Coin.peercoinTestNet: - return DerivePathType.bip84; - - case Coin.eCash: - return DerivePathType.eCash44; - - case Coin.ethereum: // TODO: do we need something here? - return DerivePathType.eth; - - case Coin.solana: - return DerivePathType.solana; - - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - case Coin.epicCash: - case Coin.monero: - case Coin.wownero: - case Coin.nano: - case Coin.banano: - case Coin.stellar: - case Coin.stellarTestnet: - case Coin.tezos: // TODO: Is this true? - throw UnsupportedError( - "$coin does not use bitcoin style derivation paths"); - } - } -} diff --git a/lib/utilities/eth_commons.dart b/lib/utilities/eth_commons.dart index f6561c8d5..f2c802111 100644 --- a/lib/utilities/eth_commons.dart +++ b/lib/utilities/eth_commons.dart @@ -12,8 +12,8 @@ import 'package:bip32/bip32.dart' as bip32; import 'package:bip39/bip39.dart' as bip39; import 'package:decimal/decimal.dart'; import "package:hex/hex.dart"; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class GasTracker { final Decimal average; @@ -37,7 +37,8 @@ class GasTracker { }); factory GasTracker.fromJson(Map json) { - final targetTime = Constants.targetBlockTimeInSeconds(Coin.ethereum); + final targetTime = + Ethereum(CryptoCurrencyNetwork.main).targetBlockTimeSeconds; return GasTracker( fast: Decimal.parse(json["FastGasPrice"].toString()), average: Decimal.parse(json["ProposeGasPrice"].toString()), diff --git a/lib/utilities/prefs.dart b/lib/utilities/prefs.dart index 07726bdf1..74453c50c 100644 --- a/lib/utilities/prefs.dart +++ b/lib/utilities/prefs.dart @@ -14,12 +14,13 @@ import 'package:flutter/cupertino.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/services/event_bus/events/global/tor_status_changed_event.dart'; import 'package:stackwallet/services/event_bus/global_event_bus.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/amount/amount_unit.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/languages_enum.dart'; import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; import 'package:uuid/uuid.dart'; @@ -847,15 +848,17 @@ class Prefs extends ChangeNotifier { // coin amount unit settings - final Map _amountUnits = {}; + final Map _amountUnits = {}; - AmountUnit amountUnit(Coin coin) => _amountUnits[coin] ?? AmountUnit.normal; + AmountUnit amountUnit(CryptoCurrency coin) => + _amountUnits[coin] ?? AmountUnit.normal; - void updateAmountUnit({required Coin coin, required AmountUnit amountUnit}) { + void updateAmountUnit( + {required CryptoCurrency coin, required AmountUnit amountUnit}) { if (this.amountUnit(coin) != amountUnit) { DB.instance.put( boxName: DB.boxNamePrefs, - key: "amountUnitFor${coin.name}", + key: "amountUnitFor${coin.identifier}", value: amountUnit.index, ); _amountUnits[coin] = amountUnit; @@ -864,10 +867,10 @@ class Prefs extends ChangeNotifier { } Future _setAmountUnits() async { - for (final coin in Coin.values) { + for (final coin in SupportedCoins.cryptocurrencies) { final unitIndex = await DB.instance.get( boxName: DB.boxNamePrefs, - key: "amountUnitFor${coin.name}", + key: "amountUnitFor${coin.identifier}", ) as int? ?? 0; // 0 is "normal" _amountUnits[coin] = AmountUnit.values[unitIndex]; @@ -876,31 +879,35 @@ class Prefs extends ChangeNotifier { // coin precision setting (max decimal places to show) - final Map _amountDecimals = {}; + final Map _amountDecimals = {}; - int maxDecimals(Coin coin) => _amountDecimals[coin] ?? coin.decimals; + int maxDecimals(CryptoCurrency coin) => + _amountDecimals[coin.identifier] ?? coin.fractionDigits; - void updateMaxDecimals({required Coin coin, required int maxDecimals}) { + void updateMaxDecimals({ + required CryptoCurrency coin, + required int maxDecimals, + }) { if (this.maxDecimals(coin) != maxDecimals) { DB.instance.put( boxName: DB.boxNamePrefs, - key: "maxDecimalsFor${coin.name}", + key: "maxDecimalsFor${coin.identifier}", value: maxDecimals, ); - _amountDecimals[coin] = maxDecimals; + _amountDecimals[coin.identifier] = maxDecimals; notifyListeners(); } } Future _setMaxDecimals() async { - for (final coin in Coin.values) { + for (final coin in SupportedCoins.cryptocurrencies) { final decimals = await DB.instance.get( boxName: DB.boxNamePrefs, - key: "maxDecimalsFor${coin.name}", + key: "maxDecimalsFor${coin.identifier}", ) as int? ?? - (coin.decimals > 18 ? 18 : coin.decimals); + (coin.fractionDigits > 18 ? 18 : coin.fractionDigits); // use some sane max rather than up to 30 that nano uses - _amountDecimals[coin] = decimals; + _amountDecimals[coin.identifier] = decimals; } } @@ -938,22 +945,23 @@ class Prefs extends ChangeNotifier { // fusion server info - Map _fusionServerInfo = {}; + Map _fusionServerInfo = {}; - FusionInfo getFusionServerInfo(Coin coin) { - return _fusionServerInfo[coin] ?? kFusionServerInfoDefaults[coin]!; + FusionInfo getFusionServerInfo(CryptoCurrency coin) { + return _fusionServerInfo[coin.identifier] ?? + kFusionServerInfoDefaults[coin.identifier]!; } - void setFusionServerInfo(Coin coin, FusionInfo fusionServerInfo) { - if (_fusionServerInfo[coin] != fusionServerInfo) { - _fusionServerInfo[coin] = fusionServerInfo; + void setFusionServerInfo(CryptoCurrency coin, FusionInfo fusionServerInfo) { + if (_fusionServerInfo[coin.identifier] != fusionServerInfo) { + _fusionServerInfo[coin.identifier] = fusionServerInfo; DB.instance.put( boxName: DB.boxNamePrefs, key: "fusionServerInfoMap", value: _fusionServerInfo.map( (key, value) => MapEntry( - key.name, + key, value.toJsonString(), ), ), @@ -962,7 +970,7 @@ class Prefs extends ChangeNotifier { } } - Future> _getFusionServerInfo() async { + Future> _getFusionServerInfo() async { final map = await DB.instance.get( boxName: DB.boxNamePrefs, key: "fusionServerInfoMap", @@ -974,14 +982,14 @@ class Prefs extends ChangeNotifier { final actualMap = Map.from(map).map( (key, value) => MapEntry( - coinFromPrettyName(key), + key, FusionInfo.fromJsonString(value), ), ); // legacy bch check - if (actualMap[Coin.bitcoincash] == null || - actualMap[Coin.bitcoincashTestnet] == null) { + if (actualMap["bitcoincash"] == null || + actualMap["bitcoincashTestnet"] == null) { final saved = await DB.instance.get( boxName: DB.boxNamePrefs, key: "fusionServerInfo", @@ -989,15 +997,15 @@ class Prefs extends ChangeNotifier { if (saved != null) { final bchInfo = FusionInfo.fromJsonString(saved); - actualMap[Coin.bitcoincash] = bchInfo; - actualMap[Coin.bitcoincashTestnet] = bchInfo; + actualMap["bitcoincash"] = bchInfo; + actualMap["bitcoincashTestnet"] = bchInfo; unawaited( DB.instance.put( boxName: DB.boxNamePrefs, key: "fusionServerInfoMap", value: actualMap.map( (key, value) => MapEntry( - key.name, + key, value.toJsonString(), ), ), diff --git a/lib/utilities/test_node_connection.dart b/lib/utilities/test_node_connection.dart new file mode 100644 index 000000000..2113766b1 --- /dev/null +++ b/lib/utilities/test_node_connection.dart @@ -0,0 +1,198 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:solana/solana.dart'; +import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; +import 'package:stackwallet/providers/global/prefs_provider.dart'; +import 'package:stackwallet/services/tor_service.dart'; +import 'package:stackwallet/utilities/connection_check/electrum_connection_check.dart'; +import 'package:stackwallet/utilities/logger.dart'; +import 'package:stackwallet/utilities/test_epic_box_connection.dart'; +import 'package:stackwallet/utilities/test_eth_node_connection.dart'; +import 'package:stackwallet/utilities/test_monero_node_connection.dart'; +import 'package:stackwallet/utilities/test_stellar_node_connection.dart'; +import 'package:stackwallet/wallets/api/tezos/tezos_rpc_api.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/solana.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/cryptonote_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; + +Future _xmrHelper( + NodeFormData nodeFormData, + BuildContext context, + void Function(NodeFormData)? onSuccess, +) async { + final data = nodeFormData; + final url = data.host!; + final port = data.port; + + final uri = Uri.parse(url); + + final String path = uri.path.isEmpty ? "/json_rpc" : uri.path; + + final uriString = "${uri.scheme}://${uri.host}:${port ?? 0}$path"; + + final response = await testMoneroNodeConnection( + Uri.parse(uriString), + false, + ); + + if (response.cert != null) { + if (context.mounted) { + final shouldAllowBadCert = await showBadX509CertificateDialog( + response.cert!, + response.url!, + response.port!, + context, + ); + + if (shouldAllowBadCert) { + final response = + await testMoneroNodeConnection(Uri.parse(uriString), true); + onSuccess?.call(data..host = url); + return response.success; + } + } + } else { + onSuccess?.call(data..host = url); + return response.success; + } + + return false; +} + +// TODO: probably pull this into each coin's functionality otherwise updating this separately will get irritating +Future testNodeConnection({ + required BuildContext context, + required NodeFormData nodeFormData, + required CryptoCurrency cryptoCurrency, + required WidgetRef ref, + void Function(NodeFormData)? onSuccess, +}) async { + final formData = nodeFormData; + + bool testPassed = false; + + switch (cryptoCurrency) { + case Epiccash(): + try { + final data = await testEpicNodeConnection(formData); + + if (data != null) { + testPassed = true; + onSuccess?.call(data); + } + } catch (e, s) { + Logging.instance.log("$e\n$s", level: LogLevel.Warning); + } + break; + + case CryptonoteCurrency(): + try { + final url = formData.host!; + final uri = Uri.tryParse(url); + if (uri != null) { + if (!uri.hasScheme) { + // try https first + testPassed = await _xmrHelper( + formData + ..host = "https://$url" + ..useSSL = true, + context, + onSuccess, + ); + + if (testPassed == false) { + // try http + testPassed = await _xmrHelper( + formData + ..host = "http://$url" + ..useSSL = false, + context, + onSuccess, + ); + } + } else { + testPassed = await _xmrHelper( + formData + ..host = url + ..useSSL = true, + context, + onSuccess, + ); + } + } + } catch (e, s) { + Logging.instance.log("$e\n$s", level: LogLevel.Warning); + } + + break; + + case ElectrumXCurrencyInterface(): + case BitcoinFrost(): + try { + testPassed = await checkElectrumServer( + host: formData.host!, + port: formData.port!, + useSSL: formData.useSSL!, + overridePrefs: ref.read(prefsChangeNotifierProvider), + overrideTorService: ref.read(pTorService), + ); + } catch (_) { + testPassed = false; + } + + break; + + case Ethereum(): + try { + testPassed = await testEthNodeConnection(formData.host!); + } catch (_) { + testPassed = false; + } + break; + + case Stellar(): + try { + testPassed = + await testStellarNodeConnection(formData.host!, formData.port!); + } catch (_) {} + break; + + case NanoCurrency(): + //TODO: check network/node + throw UnimplementedError(); + + case Tezos(): + try { + testPassed = await TezosRpcAPI.testNetworkConnection( + nodeInfo: (host: formData.host!, port: formData.port!), + ); + } catch (_) {} + break; + + case Solana(): + try { + RpcClient rpcClient; + if (formData.host!.startsWith("http") || + formData.host!.startsWith("https")) { + rpcClient = RpcClient("${formData.host}:${formData.port}"); + } else { + rpcClient = RpcClient("http://${formData.host}:${formData.port}"); + } + await rpcClient.getEpochInfo().then((value) => testPassed = true); + } catch (_) { + testPassed = false; + } + break; + } + + return testPassed; +} diff --git a/lib/wallets/crypto_currency/coins/banano.dart b/lib/wallets/crypto_currency/coins/banano.dart index dfae1b78c..c2cb52345 100644 --- a/lib/wallets/crypto_currency/coins/banano.dart +++ b/lib/wallets/crypto_currency/coins/banano.dart @@ -1,7 +1,8 @@ import 'package:nanodart/nanodart.dart'; +import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; @@ -9,15 +10,50 @@ class Banano extends NanoCurrency { Banano(super.network) { switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.banano; + _id = "banano"; + _idMain = "banano"; + _name = "Banano"; + _uriScheme = "ban"; + _ticker = "BAN"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + + @override + int get fractionDigits => 29; + + @override + BigInt get satsPerCoin => BigInt.parse( + "100000000000000000000000000000", + ); // 1*10^29 + @override int get minConfirms => 1; + @override + AddressType get primaryAddressType => AddressType.banano; + @override String get defaultRepresentative => "ban_1ka1ium4pfue3uxtntqsrib8mumxgazsjf58gidh1xeo5te3whsq8z476goo"; @@ -33,10 +69,10 @@ class Banano extends NanoCurrency { host: "https://kaliumapi.appditto.com/api", port: 443, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.banano), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.banano.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -47,10 +83,19 @@ class Banano extends NanoCurrency { } @override - bool operator ==(Object other) { - return other is Banano && other.network == network; + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://www.bananolooker.com/block/$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } } @override - int get hashCode => Object.hash(Banano, network); + DerivePathType get primaryDerivePathType => throw UnsupportedError( + "$runtimeType does not use bitcoin style derivation paths", + ); } diff --git a/lib/wallets/crypto_currency/coins/bitcoin.dart b/lib/wallets/crypto_currency/coins/bitcoin.dart index e0126ede1..e989e51e5 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin.dart @@ -3,24 +3,51 @@ import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/crypto_currency/interfaces/paynym_currency_interface.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -class Bitcoin extends Bip39HDCurrency with PaynymCurrencyInterface { +class Bitcoin extends Bip39HDCurrency + with ElectrumXCurrencyInterface, PaynymCurrencyInterface { Bitcoin(super.network) { + _idMain = "bitcoin"; + _uriScheme = "bitcoin"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.bitcoin; + _id = _idMain; + _name = "Bitcoin"; + _ticker = "BTC"; case CryptoCurrencyNetwork.test: - coin = Coin.bitcoinTestNet; + _id = "bitcoinTestNet"; + _name = "tBitcoin"; + _ticker = "tBTC"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override // change this to change the number of confirms a tx needs in order to show as confirmed int get minConfirms => 1; @@ -194,10 +221,30 @@ class Bitcoin extends Bip39HDCurrency with PaynymCurrencyInterface { NodeModel get defaultNode { switch (network) { case CryptoCurrencyNetwork.main: - return DefaultNodes.bitcoin; + return NodeModel( + host: "bitcoin.stackwallet.com", + port: 50002, + name: DefaultNodes.defaultName, + id: DefaultNodes.buildId(this), + useSSL: true, + enabled: true, + coinName: identifier, + isFailover: true, + isDown: false, + ); case CryptoCurrencyNetwork.test: - return DefaultNodes.bitcoinTestnet; + return NodeModel( + host: "bitcoin-testnet.stackwallet.com", + port: 51002, + name: DefaultNodes.defaultName, + id: DefaultNodes.buildId(this), + useSSL: true, + enabled: true, + coinName: identifier, + isFailover: true, + isDown: false, + ); default: throw UnimplementedError(); @@ -205,10 +252,43 @@ class Bitcoin extends Bip39HDCurrency with PaynymCurrencyInterface { } @override - bool operator ==(Object other) { - return other is Bitcoin && other.network == network; - } + int get defaultSeedPhraseLength => 12; @override - int get hashCode => Object.hash(Bitcoin, network); + int get fractionDigits => 8; + + @override + bool get hasBuySupport => true; + + @override + bool get hasMnemonicPassphraseSupport => true; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; + + @override + AddressType get primaryAddressType => AddressType.p2wpkh; + + @override + BigInt get satsPerCoin => BigInt.from(100000000); + + @override + int get targetBlockTimeSeconds => 600; + + @override + DerivePathType get primaryDerivePathType => DerivePathType.bip84; + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://mempool.space/tx/$txid"); + case CryptoCurrencyNetwork.test: + return Uri.parse("https://mempool.space/testnet/tx/$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart index bd5216350..3c7973599 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart @@ -1,25 +1,53 @@ import 'dart:typed_data'; +import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; +import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; class BitcoinFrost extends FrostCurrency { BitcoinFrost(super.network) { + _idMain = "bitcoinFrost"; + _uriScheme = "bitcoin"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.bitcoinFrost; + _id = _idMain; + _name = "Bitcoin Frost"; + _ticker = "BTC"; case CryptoCurrencyNetwork.test: - coin = Coin.bitcoinFrostTestNet; + _id = "bitcoinFrostTestNet"; + _name = "tBitcoin Frost"; + _ticker = "tBTC"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override int get minConfirms => 1; @@ -30,10 +58,30 @@ class BitcoinFrost extends FrostCurrency { NodeModel get defaultNode { switch (network) { case CryptoCurrencyNetwork.main: - return DefaultNodes.bitcoin; + return NodeModel( + host: "bitcoin.stackwallet.com", + port: 50002, + name: DefaultNodes.defaultName, + id: DefaultNodes.buildId(this), + useSSL: true, + enabled: true, + coinName: identifier, + isFailover: true, + isDown: false, + ); case CryptoCurrencyNetwork.test: - return DefaultNodes.bitcoinTestnet; + return NodeModel( + host: "bitcoin-testnet.stackwallet.com", + port: 51002, + name: DefaultNodes.defaultName, + id: DefaultNodes.buildId(this), + useSSL: true, + enabled: true, + coinName: identifier, + isFailover: true, + isDown: false, + ); default: throw UnimplementedError(); @@ -67,17 +115,89 @@ class BitcoinFrost extends FrostCurrency { } } + coinlib.Network get networkParams { + switch (network) { + case CryptoCurrencyNetwork.main: + return coinlib.Network( + wifPrefix: 0x80, + p2pkhPrefix: 0x00, + p2shPrefix: 0x05, + privHDPrefix: 0x0488ade4, + pubHDPrefix: 0x0488b21e, + bech32Hrp: "bc", + messagePrefix: '\x18Bitcoin Signed Message:\n', + minFee: BigInt.from(1), // TODO [prio=high]. + minOutput: dustLimit.raw, // TODO. + feePerKb: BigInt.from(1), // TODO. + ); + case CryptoCurrencyNetwork.test: + return coinlib.Network( + wifPrefix: 0xef, + p2pkhPrefix: 0x6f, + p2shPrefix: 0xc4, + privHDPrefix: 0x04358394, + pubHDPrefix: 0x043587cf, + bech32Hrp: "tb", + messagePrefix: "\x18Bitcoin Signed Message:\n", + minFee: BigInt.from(1), // TODO [prio=high]. + minOutput: dustLimit.raw, // TODO. + feePerKb: BigInt.from(1), // TODO. + ); + default: + throw Exception("Unsupported network: $network"); + } + } + @override bool validateAddress(String address) { - // TODO: implement validateAddress for frost addresses - return true; + try { + coinlib.Address.fromString(address, networkParams); + return true; + } catch (_) { + return false; + } } @override - bool operator ==(Object other) { - return other is BitcoinFrost && other.network == network; - } + int get defaultSeedPhraseLength => 0; @override - int get hashCode => Object.hash(BitcoinFrost, network); + int get fractionDigits => 8; + + @override + bool get hasBuySupport => false; + + @override + bool get hasMnemonicPassphraseSupport => false; + + @override + List get possibleMnemonicLengths => []; + + @override + AddressType get primaryAddressType => AddressType.frostMS; + + @override + BigInt get satsPerCoin => BigInt.from(100000000); + + @override + int get targetBlockTimeSeconds => 600; + + @override + DerivePathType get primaryDerivePathType => throw UnsupportedError( + "$runtimeType does not use bitcoin style derivation paths", + ); + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://mempool.space/tx/$txid"); + case CryptoCurrencyNetwork.test: + return Uri.parse("https://mempool.space/testnet/tx/$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/bitcoincash.dart b/lib/wallets/crypto_currency/coins/bitcoincash.dart index 168e0223a..9059e0358 100644 --- a/lib/wallets/crypto_currency/coins/bitcoincash.dart +++ b/lib/wallets/crypto_currency/coins/bitcoincash.dart @@ -8,23 +8,50 @@ import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -class Bitcoincash extends Bip39HDCurrency { +class Bitcoincash extends Bip39HDCurrency with ElectrumXCurrencyInterface { Bitcoincash(super.network) { + _idMain = "bitcoincash"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.bitcoincash; + _id = _idMain; + _name = "Bitcoin Cash"; + _ticker = "BCH"; + _uriScheme = "bitcoincash"; case CryptoCurrencyNetwork.test: - coin = Coin.bitcoincashTestnet; + _id = "bitcoincashTestnet"; + _name = "tBitcoin Cash"; + _ticker = "tBCH"; + _uriScheme = "bchtest"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override int get maxUnusedAddressGap => 50; @override @@ -40,7 +67,7 @@ class Bitcoincash extends Bip39HDCurrency { @override List get supportedDerivationPathTypes => [ DerivePathType.bip44, - if (coin != Coin.bitcoincashTestnet) DerivePathType.bch44, + if (network != CryptoCurrencyNetwork.test) DerivePathType.bch44, ]; @override @@ -181,7 +208,7 @@ class Bitcoincash extends Bip39HDCurrency { // 0 for bitcoincash: address scheme, 1 for legacy address final format = bitbox.Address.detectFormat(address); - if (coin == Coin.bitcoincashTestnet) { + if (network == CryptoCurrencyNetwork.test) { return true; } @@ -264,10 +291,10 @@ class Bitcoincash extends Bip39HDCurrency { host: "bitcoincash.stackwallet.com", port: 50002, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.bitcoincash), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.bitcoincash.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -277,10 +304,10 @@ class Bitcoincash extends Bip39HDCurrency { host: "bitcoincash-testnet.stackwallet.com", port: 60002, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.bitcoincashTestnet), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.bitcoincashTestnet.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -291,10 +318,47 @@ class Bitcoincash extends Bip39HDCurrency { } @override - bool operator ==(Object other) { - return other is Bitcoincash && other.network == network; - } + int get defaultSeedPhraseLength => 12; @override - int get hashCode => Object.hash(Bitcoincash, network); + int get fractionDigits => 8; + + @override + bool get hasBuySupport => true; + + @override + bool get hasMnemonicPassphraseSupport => true; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; + + @override + AddressType get primaryAddressType => AddressType.p2pkh; + + @override + BigInt get satsPerCoin => BigInt.from(100000000); + + @override + int get targetBlockTimeSeconds => 600; + + @override + DerivePathType get primaryDerivePathType => DerivePathType.bip44; + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse( + "https://blockchair.com/bitcoin-cash/transaction/$txid", + ); + case CryptoCurrencyNetwork.test: + return Uri.parse( + "https://blockexplorer.one/bitcoin-cash/testnet/tx/$txid", + ); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/dogecoin.dart b/lib/wallets/crypto_currency/coins/dogecoin.dart index 26abdaa85..7019df2f6 100644 --- a/lib/wallets/crypto_currency/coins/dogecoin.dart +++ b/lib/wallets/crypto_currency/coins/dogecoin.dart @@ -3,23 +3,49 @@ import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -class Dogecoin extends Bip39HDCurrency { +class Dogecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { Dogecoin(super.network) { + _idMain = "dogecoin"; + _uriScheme = "dogecoin"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.dogecoin; + _id = _idMain; + _name = "Dogecoin"; + _ticker = "DOGE"; case CryptoCurrencyNetwork.test: - coin = Coin.dogecoinTestNet; + _id = "dogecoinTestNet"; + _name = "tDogecoin"; + _ticker = "tDOGE"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override bool get torSupport => true; @@ -64,7 +90,7 @@ class Dogecoin extends Bip39HDCurrency { @override Amount get dustLimit => Amount( rawValue: BigInt.from(1000000), - fractionDigits: Coin.particl.decimals, + fractionDigits: fractionDigits, ); @override @@ -156,10 +182,10 @@ class Dogecoin extends Bip39HDCurrency { host: "dogecoin.stackwallet.com", port: 50022, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.dogecoin), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.dogecoin.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -169,10 +195,10 @@ class Dogecoin extends Bip39HDCurrency { host: "dogecoin-testnet.stackwallet.com", port: 50022, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.dogecoinTestNet), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.dogecoinTestNet.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -183,10 +209,43 @@ class Dogecoin extends Bip39HDCurrency { } @override - bool operator ==(Object other) { - return other is Dogecoin && other.network == network; - } + int get defaultSeedPhraseLength => 12; @override - int get hashCode => Object.hash(Dogecoin, network); + int get fractionDigits => 8; + + @override + bool get hasBuySupport => true; + + @override + bool get hasMnemonicPassphraseSupport => true; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; + + @override + AddressType get primaryAddressType => AddressType.p2pkh; + + @override + BigInt get satsPerCoin => BigInt.from(100000000); + + @override + int get targetBlockTimeSeconds => 60; + + @override + DerivePathType get primaryDerivePathType => DerivePathType.bip44; + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://chain.so/tx/DOGE/$txid"); + case CryptoCurrencyNetwork.test: + return Uri.parse("https://chain.so/tx/DOGETEST/$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/ecash.dart b/lib/wallets/crypto_currency/coins/ecash.dart index 6c068ed4d..9cec2f9cb 100644 --- a/lib/wallets/crypto_currency/coins/ecash.dart +++ b/lib/wallets/crypto_currency/coins/ecash.dart @@ -8,21 +8,45 @@ import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -class Ecash extends Bip39HDCurrency { +class Ecash extends Bip39HDCurrency with ElectrumXCurrencyInterface { Ecash(super.network) { + _idMain = "eCash"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.eCash; + _id = _idMain; + _name = "eCash"; + _ticker = "XEC"; + _uriScheme = "ecash"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override int get maxUnusedAddressGap => 50; @override @@ -254,13 +278,15 @@ class Ecash extends Bip39HDCurrency { switch (network) { case CryptoCurrencyNetwork.main: return NodeModel( + // host: "ecash.stackwallet.com", + // port: 59002, host: "electrum.bitcoinabc.org", port: 50002, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.eCash), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.eCash.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -271,10 +297,41 @@ class Ecash extends Bip39HDCurrency { } @override - bool operator ==(Object other) { - return other is Ecash && other.network == network; - } + int get defaultSeedPhraseLength => 12; @override - int get hashCode => Object.hash(Ecash, network); + int get fractionDigits => 2; + + @override + bool get hasBuySupport => false; + + @override + bool get hasMnemonicPassphraseSupport => true; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; + + @override + AddressType get primaryAddressType => AddressType.p2pkh; + + @override + BigInt get satsPerCoin => BigInt.from(100); + + @override + int get targetBlockTimeSeconds => 600; + + @override + DerivePathType get primaryDerivePathType => DerivePathType.eCash44; + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://explorer.e.cash/tx/$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/epiccash.dart b/lib/wallets/crypto_currency/coins/epiccash.dart index 49d7a7a7f..4c49bee5e 100644 --- a/lib/wallets/crypto_currency/coins/epiccash.dart +++ b/lib/wallets/crypto_currency/coins/epiccash.dart @@ -1,20 +1,45 @@ import 'package:flutter_libepiccash/lib.dart' as epic; +import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_currency.dart'; class Epiccash extends Bip39Currency { Epiccash(super.network) { + _idMain = "epicCash"; + _uriScheme = "epic"; // ? switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.epicCash; + _id = _idMain; + _name = "Epic Cash"; + _ticker = "EPIC"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override String get genesisHash { return "not used in epiccash"; @@ -45,16 +70,15 @@ class Epiccash extends Bip39Currency { switch (network) { case CryptoCurrencyNetwork.main: return NodeModel( - host: "https://wownero.stackwallet.com", - port: 34568, + host: "http://epiccash.stackwallet.com", + port: 3413, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.wownero), - useSSL: true, + id: DefaultNodes.buildId(this), + useSSL: false, enabled: true, - coinName: Coin.wownero.name, + coinName: identifier, isFailover: true, isDown: false, - trusted: true, ); default: @@ -63,10 +87,41 @@ class Epiccash extends Bip39Currency { } @override - bool operator ==(Object other) { - return other is Epiccash && other.network == network; - } + int get defaultSeedPhraseLength => 24; @override - int get hashCode => Object.hash(Epiccash, network); + int get fractionDigits => 8; + + @override + bool get hasBuySupport => false; + + @override + bool get hasMnemonicPassphraseSupport => false; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 12]; + + @override + AddressType get primaryAddressType => AddressType.mimbleWimble; + + @override + BigInt get satsPerCoin => BigInt.from(100000000); + + @override + int get targetBlockTimeSeconds => 60; + + @override + DerivePathType get primaryDerivePathType => throw UnsupportedError( + "$runtimeType does not use bitcoin style derivation paths", + ); + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/ethereum.dart b/lib/wallets/crypto_currency/coins/ethereum.dart index a9bc81380..5c6c4f0a1 100644 --- a/lib/wallets/crypto_currency/coins/ethereum.dart +++ b/lib/wallets/crypto_currency/coins/ethereum.dart @@ -1,31 +1,66 @@ import 'package:ethereum_addresses/ethereum_addresses.dart'; +import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_currency.dart'; class Ethereum extends Bip39Currency { Ethereum(super.network) { + _idMain = "ethereum"; + _uriScheme = "ethereum"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.ethereum; + _id = _idMain; + _name = "Ethereum"; + _ticker = "ETH"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + int get gasLimit => 21000; @override bool get hasTokenSupport => true; @override - NodeModel get defaultNode => DefaultNodes.ethereum; + NodeModel get defaultNode => NodeModel( + host: "https://eth.stackwallet.com", + port: 443, + name: DefaultNodes.defaultName, + id: DefaultNodes.buildId(this), + useSSL: true, + enabled: true, + coinName: identifier, + isFailover: true, + isDown: false, + ); @override // Not used for eth - String get genesisHash => throw UnimplementedError(); + String get genesisHash => throw UnimplementedError("Not used for eth"); @override int get minConfirms => 3; @@ -36,10 +71,41 @@ class Ethereum extends Bip39Currency { } @override - bool operator ==(Object other) { - return other is Ethereum && other.network == network; - } + int get defaultSeedPhraseLength => 12; @override - int get hashCode => Object.hash(Ethereum, network); + int get fractionDigits => 18; + + @override + bool get hasBuySupport => true; + + @override + bool get hasMnemonicPassphraseSupport => true; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; + + @override + AddressType get primaryAddressType => AddressType.ethereum; + + @override + BigInt get satsPerCoin => BigInt.from(1000000000000000000); + + @override + int get targetBlockTimeSeconds => 15; + + @override + DerivePathType get primaryDerivePathType => DerivePathType.eth; + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://etherscan.io/tx/$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/firo.dart b/lib/wallets/crypto_currency/coins/firo.dart index 36ad7d763..fbad32ec2 100644 --- a/lib/wallets/crypto_currency/coins/firo.dart +++ b/lib/wallets/crypto_currency/coins/firo.dart @@ -3,24 +3,50 @@ import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -class Firo extends Bip39HDCurrency { +class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { Firo(super.network) { + _idMain = "firo"; + _uriScheme = "firo"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.firo; + _id = _idMain; + _name = "Firo"; + _ticker = "FIRO"; case CryptoCurrencyNetwork.test: - coin = Coin.firoTestNet; + _id = "firoTestNet"; + _name = "tFiro"; + _ticker = "tFIRO"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override int get minConfirms => 1; @@ -161,10 +187,10 @@ class Firo extends Bip39HDCurrency { host: "firo.stackwallet.com", port: 50002, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.firo), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.firo.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -187,10 +213,10 @@ class Firo extends Bip39HDCurrency { host: "95.179.164.13", port: 51002, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.firoTestNet), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.firoTestNet.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -201,10 +227,43 @@ class Firo extends Bip39HDCurrency { } @override - bool operator ==(Object other) { - return other is Firo && other.network == network; - } + int get defaultSeedPhraseLength => 12; @override - int get hashCode => Object.hash(Firo, network); + int get fractionDigits => 8; + + @override + bool get hasBuySupport => false; + + @override + bool get hasMnemonicPassphraseSupport => true; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; + + @override + AddressType get primaryAddressType => AddressType.p2pkh; + + @override + BigInt get satsPerCoin => BigInt.from(100000000); + + @override + int get targetBlockTimeSeconds => 150; + + @override + DerivePathType get primaryDerivePathType => DerivePathType.bip44; + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://explorer.firo.org/tx/$txid"); + case CryptoCurrencyNetwork.test: + return Uri.parse("https://testexplorer.firo.org/tx/$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/litecoin.dart b/lib/wallets/crypto_currency/coins/litecoin.dart index efccbb3de..e4b491cef 100644 --- a/lib/wallets/crypto_currency/coins/litecoin.dart +++ b/lib/wallets/crypto_currency/coins/litecoin.dart @@ -3,23 +3,49 @@ import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -class Litecoin extends Bip39HDCurrency { +class Litecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { Litecoin(super.network) { + _idMain = "litecoin"; + _uriScheme = "litecoin"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.litecoin; + _id = _idMain; + _name = "Litecoin"; + _ticker = "LTC"; case CryptoCurrencyNetwork.test: - coin = Coin.litecoinTestNet; + _id = "litecoinTestNet"; + _name = "tLitecoin"; + _ticker = "tLTC"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override // change this to change the number of confirms a tx needs in order to show as confirmed int get minConfirms => 1; @@ -187,10 +213,10 @@ class Litecoin extends Bip39HDCurrency { host: "litecoin.stackwallet.com", port: 20063, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.litecoin), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.litecoin.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -200,10 +226,10 @@ class Litecoin extends Bip39HDCurrency { host: "litecoin.stackwallet.com", port: 51002, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.litecoinTestNet), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.litecoinTestNet.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -214,10 +240,43 @@ class Litecoin extends Bip39HDCurrency { } @override - bool operator ==(Object other) { - return other is Litecoin && other.network == network; - } + int get defaultSeedPhraseLength => 12; @override - int get hashCode => Object.hash(Litecoin, network); + int get fractionDigits => 8; + + @override + bool get hasBuySupport => true; + + @override + bool get hasMnemonicPassphraseSupport => true; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; + + @override + AddressType get primaryAddressType => AddressType.p2wpkh; + + @override + BigInt get satsPerCoin => BigInt.from(100000000); + + @override + int get targetBlockTimeSeconds => 150; + + @override + DerivePathType get primaryDerivePathType => DerivePathType.bip84; + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://chain.so/tx/LTC/$txid"); + case CryptoCurrencyNetwork.test: + return Uri.parse("https://chain.so/tx/LTCTEST/$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/monero.dart b/lib/wallets/crypto_currency/coins/monero.dart index 34eff8203..42afdf8df 100644 --- a/lib/wallets/crypto_currency/coins/monero.dart +++ b/lib/wallets/crypto_currency/coins/monero.dart @@ -1,20 +1,44 @@ import 'package:cw_monero/api/wallet.dart' as monero_wallet; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/cryptonote_currency.dart'; class Monero extends CryptonoteCurrency { Monero(super.network) { + _idMain = "monero"; + _uriScheme = "monero"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.monero; + _id = _idMain; + _name = "Monero"; + _ticker = "XMR"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override int get minConfirms => 10; @@ -31,10 +55,10 @@ class Monero extends CryptonoteCurrency { host: "https://monero.stackwallet.com", port: 18081, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.monero), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.monero.name, + coinName: identifier, isFailover: true, isDown: false, trusted: true, @@ -46,10 +70,40 @@ class Monero extends CryptonoteCurrency { } @override - bool operator ==(Object other) { - return other is Monero && other.network == network; - } + int get defaultSeedPhraseLength => 25; @override - int get hashCode => Object.hash(Monero, network); + int get fractionDigits => 12; + + @override + bool get hasBuySupport => false; + + @override + bool get hasMnemonicPassphraseSupport => false; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength]; + + @override + BigInt get satsPerCoin => BigInt.from(1000000000000); + + @override + int get targetBlockTimeSeconds => 120; + + @override + DerivePathType get primaryDerivePathType => throw UnsupportedError( + "$runtimeType does not use bitcoin style derivation paths", + ); + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://xmrchain.net/tx/$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/namecoin.dart b/lib/wallets/crypto_currency/coins/namecoin.dart index c2cff8e57..53c0be5f9 100644 --- a/lib/wallets/crypto_currency/coins/namecoin.dart +++ b/lib/wallets/crypto_currency/coins/namecoin.dart @@ -3,21 +3,45 @@ import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -class Namecoin extends Bip39HDCurrency { +class Namecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { Namecoin(super.network) { + _idMain = "namecoin"; + _uriScheme = "namecoin"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.namecoin; + _id = _idMain; + _name = "Namecoin"; + _ticker = "NMC"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override // See https://github.com/cypherstack/stack_wallet/blob/621aff47969761014e0a6c4e699cb637d5687ab3/lib/services/coins/namecoin/namecoin_wallet.dart#L58 int get minConfirms => 2; @@ -71,10 +95,10 @@ class Namecoin extends Bip39HDCurrency { host: "namecoin.stackwallet.com", port: 57002, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.namecoin), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.namecoin.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -87,8 +111,10 @@ class Namecoin extends Bip39HDCurrency { @override // See https://github.com/cypherstack/stack_wallet/blob/621aff47969761014e0a6c4e699cb637d5687ab3/lib/services/coins/namecoin/namecoin_wallet.dart#L60 - Amount get dustLimit => - Amount(rawValue: BigInt.from(546), fractionDigits: Coin.particl.decimals); + Amount get dustLimit => Amount( + rawValue: BigInt.from(546), + fractionDigits: fractionDigits, + ); @override // See https://github.com/cypherstack/stack_wallet/blob/621aff47969761014e0a6c4e699cb637d5687ab3/lib/services/coins/namecoin/namecoin_wallet.dart#L6 @@ -187,10 +213,41 @@ class Namecoin extends Bip39HDCurrency { } @override - bool operator ==(Object other) { - return other is Namecoin && other.network == network; - } + int get defaultSeedPhraseLength => 12; @override - int get hashCode => Object.hash(Namecoin, network); + int get fractionDigits => 8; + + @override + bool get hasBuySupport => false; + + @override + bool get hasMnemonicPassphraseSupport => true; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 12]; + + @override + AddressType get primaryAddressType => AddressType.p2wpkh; + + @override + BigInt get satsPerCoin => BigInt.from(100000000); + + @override + int get targetBlockTimeSeconds => 600; + + @override + DerivePathType get primaryDerivePathType => DerivePathType.bip84; + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://chainz.cryptoid.info/nmc/tx.dws?$txid.htm"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/nano.dart b/lib/wallets/crypto_currency/coins/nano.dart index 277a4601f..03632e352 100644 --- a/lib/wallets/crypto_currency/coins/nano.dart +++ b/lib/wallets/crypto_currency/coins/nano.dart @@ -1,7 +1,8 @@ import 'package:nanodart/nanodart.dart'; +import 'package:stackwallet/models/isar/models/isar_models.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; @@ -9,15 +10,50 @@ class Nano extends NanoCurrency { Nano(super.network) { switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.nano; + _id = "nano"; + _idMain = "nano"; + _name = "Nano"; + _uriScheme = "nano"; + _ticker = "XNO"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + + @override + int get fractionDigits => 30; + + @override + BigInt get satsPerCoin => BigInt.parse( + "1000000000000000000000000000000", + ); // 1*10^30 + @override int get minConfirms => 1; + @override + AddressType get primaryAddressType => AddressType.nano; + @override String get defaultRepresentative => "nano_38713x95zyjsqzx6nm1dsom1jmm668owkeb9913ax6nfgj15az3nu8xkx579"; @@ -33,10 +69,10 @@ class Nano extends NanoCurrency { host: "https://rainstorm.city/api", port: 443, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.nano), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.nano.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -47,10 +83,19 @@ class Nano extends NanoCurrency { } @override - bool operator ==(Object other) { - return other is Nano && other.network == network; - } + DerivePathType get primaryDerivePathType => throw UnsupportedError( + "$runtimeType does not use bitcoin style derivation paths", + ); @override - int get hashCode => Object.hash(Nano, network); + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://www.nanolooker.com/block/$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/particl.dart b/lib/wallets/crypto_currency/coins/particl.dart index ae73d46e5..7db0053f7 100644 --- a/lib/wallets/crypto_currency/coins/particl.dart +++ b/lib/wallets/crypto_currency/coins/particl.dart @@ -3,21 +3,45 @@ import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -class Particl extends Bip39HDCurrency { +class Particl extends Bip39HDCurrency with ElectrumXCurrencyInterface { Particl(super.network) { + _idMain = "particl"; + _uriScheme = "particl"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.particl; + _id = _idMain; + _name = "Particl"; + _ticker = "PART"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override // See https://github.com/cypherstack/stack_wallet/blob/d08b5c9b22b58db800ad07b2ceeb44c6d05f9cf3/lib/services/coins/particl/particl_wallet.dart#L57 int get minConfirms => 1; @@ -65,10 +89,10 @@ class Particl extends Bip39HDCurrency { host: "particl.stackwallet.com", port: 58002, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.particl), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.particl.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -83,7 +107,7 @@ class Particl extends Bip39HDCurrency { // See https://github.com/cypherstack/stack_wallet/blob/d08b5c9b22b58db800ad07b2ceeb44c6d05f9cf3/lib/services/coins/particl/particl_wallet.dart#L58 Amount get dustLimit => Amount( rawValue: BigInt.from(294), - fractionDigits: Coin.particl.decimals, + fractionDigits: fractionDigits, ); @override @@ -167,10 +191,41 @@ class Particl extends Bip39HDCurrency { } @override - bool operator ==(Object other) { - return other is Particl && other.network == network; - } + int get defaultSeedPhraseLength => 12; @override - int get hashCode => Object.hash(Particl, network); + int get fractionDigits => 8; + + @override + bool get hasBuySupport => false; + + @override + bool get hasMnemonicPassphraseSupport => true; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; + + @override + AddressType get primaryAddressType => AddressType.p2wpkh; + + @override + BigInt get satsPerCoin => BigInt.from(100000000); + + @override + int get targetBlockTimeSeconds => 600; + + @override + DerivePathType get primaryDerivePathType => DerivePathType.bip84; + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://chainz.cryptoid.info/part/tx.dws?$txid.htm"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/peercoin.dart b/lib/wallets/crypto_currency/coins/peercoin.dart index 4e54329de..c14aa5303 100644 --- a/lib/wallets/crypto_currency/coins/peercoin.dart +++ b/lib/wallets/crypto_currency/coins/peercoin.dart @@ -4,23 +4,49 @@ import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -class Peercoin extends Bip39HDCurrency { +class Peercoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { Peercoin(super.network) { + _idMain = "peercoin"; + _uriScheme = "peercoin"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.peercoin; + _id = "peercoin"; + _name = "Peercoin"; + _ticker = "PPC"; case CryptoCurrencyNetwork.test: - coin = Coin.peercoinTestNet; + _id = "peercoinTestNet"; + _name = "tPeercoin"; + _ticker = "tPPC"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override int get minConfirms => 1; @@ -66,9 +92,31 @@ class Peercoin extends Bip39HDCurrency { NodeModel get defaultNode { switch (network) { case CryptoCurrencyNetwork.main: - return DefaultNodes.peercoin; + return NodeModel( + host: "electrum.peercoinexplorer.net", + port: 50002, + name: DefaultNodes.defaultName, + id: DefaultNodes.buildId(this), + useSSL: true, + enabled: true, + coinName: identifier, + isFailover: true, + isDown: false, + ); + case CryptoCurrencyNetwork.test: - return DefaultNodes.peercoinTestNet; + return NodeModel( + host: "testnet-electrum.peercoinexplorer.net", + port: 50002, + name: DefaultNodes.defaultName, + id: DefaultNodes.buildId(this), + useSSL: true, + enabled: true, + coinName: identifier, + isFailover: true, + isDown: false, + ); + default: throw UnimplementedError(); } @@ -76,8 +124,9 @@ class Peercoin extends Bip39HDCurrency { @override Amount get dustLimit => Amount( + // TODO should this be 10000 instead of 294 for peercoin? rawValue: BigInt.from(294), - fractionDigits: Coin.peercoin.decimals, + fractionDigits: fractionDigits, ); @override @@ -162,10 +211,45 @@ class Peercoin extends Bip39HDCurrency { } @override - bool operator ==(Object other) { - return other is Peercoin && other.network == network; - } + int get defaultSeedPhraseLength => 12; @override - int get hashCode => Object.hash(Peercoin, network); + int get fractionDigits => 6; + + @override + bool get hasBuySupport => false; + + @override + bool get hasMnemonicPassphraseSupport => true; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; + + @override + AddressType get primaryAddressType => AddressType.p2wpkh; + + @override + BigInt get satsPerCoin => BigInt.from(1000000); // 1*10^6. + + @override + int get targetBlockTimeSeconds => 600; + + @override + DerivePathType get primaryDerivePathType => DerivePathType.bip84; + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://chainz.cryptoid.info/ppc/tx.dws?$txid.htm"); + case CryptoCurrencyNetwork.test: + return Uri.parse( + "https://chainz.cryptoid.info/ppc-test/search.dws?q=$txid.htm", + ); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/solana.dart b/lib/wallets/crypto_currency/coins/solana.dart index 6b01b5b6d..3916c5320 100644 --- a/lib/wallets/crypto_currency/coins/solana.dart +++ b/lib/wallets/crypto_currency/coins/solana.dart @@ -1,20 +1,45 @@ import 'package:solana/solana.dart'; +import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_currency.dart'; class Solana extends Bip39Currency { Solana(super.network) { + _idMain = "solana"; + _uriScheme = "solana"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.solana; + _id = _idMain; + _name = "Solana"; + _ticker = "SOL"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override NodeModel get defaultNode { switch (network) { @@ -24,10 +49,10 @@ class Solana extends Bip39Currency { "https://api.mainnet-beta.solana.com/", // TODO: Change this to stack wallet one port: 443, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.solana), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.solana.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -52,10 +77,41 @@ class Solana extends Bip39Currency { String get genesisHash => throw UnimplementedError(); @override - bool operator ==(Object other) { - return other is Solana && other.network == network; - } + int get defaultSeedPhraseLength => 12; @override - int get hashCode => Object.hash(Solana, network); + int get fractionDigits => 9; + + @override + bool get hasBuySupport => false; + + @override + bool get hasMnemonicPassphraseSupport => false; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; + + @override + AddressType get primaryAddressType => AddressType.solana; + + @override + BigInt get satsPerCoin => BigInt.from(1000000000); + + @override + int get targetBlockTimeSeconds => 1; + + @override + DerivePathType get primaryDerivePathType => DerivePathType.solana; + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://explorer.solana.com/tx/$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/stellar.dart b/lib/wallets/crypto_currency/coins/stellar.dart index e9a7e605b..28165179a 100644 --- a/lib/wallets/crypto_currency/coins/stellar.dart +++ b/lib/wallets/crypto_currency/coins/stellar.dart @@ -1,21 +1,48 @@ +import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_currency.dart'; class Stellar extends Bip39Currency { Stellar(super.network) { + _idMain = "stellar"; + _uriScheme = "stellar"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.stellar; + _id = _idMain; + _name = "Stellar"; + _ticker = "XLM"; case CryptoCurrencyNetwork.test: - coin = Coin.stellarTestnet; + _id = "stellarTestnet"; + _name = "tStellar"; + _ticker = "tXLM"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override int get minConfirms => 1; @@ -31,9 +58,31 @@ class Stellar extends Bip39Currency { NodeModel get defaultNode { switch (network) { case CryptoCurrencyNetwork.main: - return DefaultNodes.stellar; + return NodeModel( + host: "https://horizon.stellar.org", + port: 443, + name: DefaultNodes.defaultName, + id: DefaultNodes.buildId(this), + useSSL: false, + enabled: true, + coinName: identifier, + isFailover: true, + isDown: false, + ); + case CryptoCurrencyNetwork.test: - return DefaultNodes.stellarTestnet; + return NodeModel( + host: "https://horizon-testnet.stellar.org/", + port: 50022, + name: DefaultNodes.defaultName, + id: DefaultNodes.buildId(this), + useSSL: true, + enabled: true, + coinName: identifier, + isFailover: true, + isDown: false, + ); + default: throw Exception("Unsupported network"); } @@ -44,10 +93,46 @@ class Stellar extends Bip39Currency { RegExp(r"^[G][A-Z0-9]{55}$").hasMatch(address); @override - bool operator ==(Object other) { - return other is Stellar && other.network == network; - } + int get defaultSeedPhraseLength => 24; @override - int get hashCode => Object.hash(Stellar, network); + int get fractionDigits => 7; + + @override + bool get hasBuySupport => false; + + @override + bool get hasMnemonicPassphraseSupport => true; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 12]; + + @override + AddressType get primaryAddressType => AddressType.stellar; + + @override + BigInt get satsPerCoin => BigInt.from( + 10000000, + ); // https://developers.stellar.org/docs/fundamentals-and-concepts/stellar-data-structures/assets#amount-precision + + @override + int get targetBlockTimeSeconds => 5; + + @override + DerivePathType get primaryDerivePathType => throw UnsupportedError( + "$runtimeType does not use bitcoin style derivation paths",); + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://stellarchain.io/tx/$txid"); + case CryptoCurrencyNetwork.test: + return Uri.parse("https://testnet.stellarchain.io/transactions/$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/coins/tezos.dart b/lib/wallets/crypto_currency/coins/tezos.dart index efb982867..e8eb63a97 100644 --- a/lib/wallets/crypto_currency/coins/tezos.dart +++ b/lib/wallets/crypto_currency/coins/tezos.dart @@ -6,7 +6,7 @@ import 'package:coinlib_flutter/coinlib_flutter.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_currency.dart'; import 'package:tezart/src/crypto/crypto.dart'; @@ -14,14 +14,38 @@ import 'package:tezart/tezart.dart'; class Tezos extends Bip39Currency { Tezos(super.network) { + _idMain = "tezos"; + _uriScheme = "tezos"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.tezos; + _id = _idMain; + _name = "Tezos"; + _ticker = "XTZ"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + // =========================================================================== // =========== Public ======================================================== @@ -83,13 +107,14 @@ class Tezos extends Bip39Currency { switch (network) { case CryptoCurrencyNetwork.main: return NodeModel( + // TODO: ?Change this to stack wallet one? host: "https://mainnet.api.tez.ie", port: 443, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.tezos), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.tezos.name, + coinName: identifier, isFailover: true, isDown: false, ); @@ -148,13 +173,43 @@ class Tezos extends Bip39Currency { }).toList(); } - // =========================================================================== + @override + int get defaultSeedPhraseLength => 24; @override - bool operator ==(Object other) { - return other is Tezos && other.network == network; + int get fractionDigits => 6; + + @override + bool get hasBuySupport => false; + + @override + bool get hasMnemonicPassphraseSupport => false; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 12]; + + @override + AddressType get primaryAddressType => AddressType.tezos; + + @override + BigInt get satsPerCoin => BigInt.from(1000000); + + @override + int get targetBlockTimeSeconds => 60; + + @override + DerivePathType get primaryDerivePathType => + throw UnsupportedError("Is this even used?"); + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://tzstats.com/$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } } - - @override - int get hashCode => Object.hash(Tezos, network); } diff --git a/lib/wallets/crypto_currency/coins/wownero.dart b/lib/wallets/crypto_currency/coins/wownero.dart index 549d1739f..788c810e0 100644 --- a/lib/wallets/crypto_currency/coins/wownero.dart +++ b/lib/wallets/crypto_currency/coins/wownero.dart @@ -1,20 +1,44 @@ import 'package:cw_wownero/api/wallet.dart' as wownero_wallet; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/cryptonote_currency.dart'; class Wownero extends CryptonoteCurrency { Wownero(super.network) { + _idMain = "wownero"; + _uriScheme = "wownero"; switch (network) { case CryptoCurrencyNetwork.main: - coin = Coin.wownero; + _id = _idMain; + _name = "Wownero"; + _ticker = "WOW"; default: throw Exception("Unsupported network: $network"); } } + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + @override int get minConfirms => 15; @@ -31,10 +55,10 @@ class Wownero extends CryptonoteCurrency { host: "https://wownero.stackwallet.com", port: 34568, name: DefaultNodes.defaultName, - id: DefaultNodes.buildId(Coin.wownero), + id: DefaultNodes.buildId(this), useSSL: true, enabled: true, - coinName: Coin.wownero.name, + coinName: identifier, isFailover: true, isDown: false, trusted: true, @@ -46,10 +70,40 @@ class Wownero extends CryptonoteCurrency { } @override - bool operator ==(Object other) { - return other is Wownero && other.network == network; - } + int get defaultSeedPhraseLength => 14; @override - int get hashCode => Object.hash(Wownero, network); + int get fractionDigits => 11; + + @override + bool get hasBuySupport => false; + + @override + bool get hasMnemonicPassphraseSupport => false; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 25]; + + @override + BigInt get satsPerCoin => BigInt.from(100000000000); + + @override + int get targetBlockTimeSeconds => 120; + + @override + DerivePathType get primaryDerivePathType => throw UnsupportedError( + "$runtimeType does not use bitcoin style derivation paths", + ); + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + case CryptoCurrencyNetwork.main: + return Uri.parse("https://explore.wownero.com/search?value=$txid"); + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } } diff --git a/lib/wallets/crypto_currency/crypto_currency.dart b/lib/wallets/crypto_currency/crypto_currency.dart index 8b6f5cdb6..5a8e3e723 100644 --- a/lib/wallets/crypto_currency/crypto_currency.dart +++ b/lib/wallets/crypto_currency/crypto_currency.dart @@ -1,6 +1,6 @@ +import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; enum CryptoCurrencyNetwork { main, @@ -9,13 +9,26 @@ enum CryptoCurrencyNetwork { } abstract class CryptoCurrency { - @Deprecated("[prio=low] Should eventually move away from Coin enum") - late final Coin coin; + // @Deprecated("[prio=low] Should eventually move away from Coin enum") + // late final CryptoCurrency coin; final CryptoCurrencyNetwork network; CryptoCurrency(this.network); + // Identifier should be unique. + /// This [identifier] should also match the old `Coin` enum name for each + /// respective coin as it is used to differentiate between coins in persistent + /// storage. + String get identifier; + + /// Should be the [identifier] of the main net version of the currency + String get mainNetId; + + String get ticker; + String get prettyName; + String get uriScheme; + // override in subclass if the currency has tokens on it's network // (used for eth currently) bool get hasTokenSupport => false; @@ -23,10 +36,6 @@ abstract class CryptoCurrency { // Override in subclass if the currency has Tor support: bool get torSupport => false; - // TODO: [prio=low] require these be overridden in concrete implementations to remove reliance on [coin] - int get fractionDigits => coin.decimals; - BigInt get satsPerCoin => Constants.satsPerCoin(coin); - int get minConfirms; // TODO: [prio=low] could be handled differently as (at least) epiccash does not use this @@ -35,4 +44,26 @@ abstract class CryptoCurrency { bool validateAddress(String address); NodeModel get defaultNode; + + int get defaultSeedPhraseLength; + int get fractionDigits; + bool get hasBuySupport; + bool get hasMnemonicPassphraseSupport; + List get possibleMnemonicLengths; + AddressType get primaryAddressType; + BigInt get satsPerCoin; + int get targetBlockTimeSeconds; + DerivePathType get primaryDerivePathType; + + Uri defaultBlockExplorer(String txid); + + @override + bool operator ==(Object other) { + return other is CryptoCurrency && + other.runtimeType == runtimeType && + other.network == network; + } + + @override + int get hashCode => Object.hash(runtimeType, network); } diff --git a/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart b/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart new file mode 100644 index 000000000..69c9f33fd --- /dev/null +++ b/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart @@ -0,0 +1,5 @@ +import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; + +mixin ElectrumXCurrencyInterface on Bip39HDCurrency { + // +} diff --git a/lib/wallets/crypto_currency/interfaces/paynym_currency_interface.dart b/lib/wallets/crypto_currency/interfaces/paynym_currency_interface.dart index 6f5571009..580a1b3ed 100644 --- a/lib/wallets/crypto_currency/interfaces/paynym_currency_interface.dart +++ b/lib/wallets/crypto_currency/interfaces/paynym_currency_interface.dart @@ -1,7 +1,8 @@ import 'package:stackwallet/utilities/amount/amount.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -mixin PaynymCurrencyInterface on Bip39HDCurrency { +mixin PaynymCurrencyInterface on ElectrumXCurrencyInterface, Bip39HDCurrency { Amount get dustLimitP2PKH => Amount( rawValue: BigInt.from(546), fractionDigits: fractionDigits, diff --git a/lib/wallets/crypto_currency/intermediate/cryptonote_currency.dart b/lib/wallets/crypto_currency/intermediate/cryptonote_currency.dart index 79d1f4de4..a513f84ae 100644 --- a/lib/wallets/crypto_currency/intermediate/cryptonote_currency.dart +++ b/lib/wallets/crypto_currency/intermediate/cryptonote_currency.dart @@ -1,3 +1,4 @@ +import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; abstract class CryptonoteCurrency extends CryptoCurrency { @@ -7,4 +8,7 @@ abstract class CryptonoteCurrency extends CryptoCurrency { String get genesisHash { return "not used in stack's cryptonote coins"; } + + @override + AddressType get primaryAddressType => AddressType.cryptonote; } diff --git a/lib/wallets/crypto_currency/intermediate/nano_currency.dart b/lib/wallets/crypto_currency/intermediate/nano_currency.dart index 617f8d952..72aba78bd 100644 --- a/lib/wallets/crypto_currency/intermediate/nano_currency.dart +++ b/lib/wallets/crypto_currency/intermediate/nano_currency.dart @@ -8,6 +8,21 @@ abstract class NanoCurrency extends Bip39Currency { int get nanoAccountType; + @override + bool get hasMnemonicPassphraseSupport => false; + + @override + int get targetBlockTimeSeconds => 1; // TODO: Verify this + + @override + bool get hasBuySupport => false; + + @override + int get defaultSeedPhraseLength => 24; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 12]; + @override bool validateAddress(String address) => NanoAccounts.isValid( nanoAccountType, diff --git a/lib/wallets/isar/models/wallet_info.dart b/lib/wallets/isar/models/wallet_info.dart index 0ceaa6b83..0e07b6426 100644 --- a/lib/wallets/isar/models/wallet_info.dart +++ b/lib/wallets/isar/models/wallet_info.dart @@ -3,7 +3,8 @@ import 'dart:convert'; import 'package:isar/isar.dart'; import 'package:stackwallet/models/balance.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/isar_id_interface.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info_meta.dart'; import 'package:uuid/uuid.dart'; @@ -76,9 +77,10 @@ class WalletInfo implements IsarId { @ignore Balance get cachedBalanceSecondary { if (cachedBalanceSecondaryString == null) { - return Balance.zeroForCoin(coin: coin); + return Balance.zeroFor(currency: coin); } else { - return Balance.fromJson(cachedBalanceSecondaryString!, coin.decimals); + return Balance.fromJson( + cachedBalanceSecondaryString!, coin.fractionDigits); } } @@ -86,21 +88,22 @@ class WalletInfo implements IsarId { @ignore Balance get cachedBalanceTertiary { if (cachedBalanceTertiaryString == null) { - return Balance.zeroForCoin(coin: coin); + return Balance.zeroFor(currency: coin); } else { - return Balance.fromJson(cachedBalanceTertiaryString!, coin.decimals); + return Balance.fromJson( + cachedBalanceTertiaryString!, coin.fractionDigits); } } @ignore - Coin get coin => Coin.values.byName(coinName); + CryptoCurrency get coin => SupportedCoins.getCryptoCurrencyFor(coinName); @ignore Balance get cachedBalance { if (cachedBalanceString == null) { - return Balance.zeroForCoin(coin: coin); + return Balance.zeroFor(currency: coin); } else { - return Balance.fromJson(cachedBalanceString!, coin.decimals); + return Balance.fromJson(cachedBalanceString!, coin.fractionDigits); } } @@ -404,7 +407,9 @@ class WalletInfo implements IsarId { this.cachedBalanceTertiaryString, this.otherDataJsonString, }) : assert( - Coin.values.map((e) => e.name).contains(coinName), + SupportedCoins.cryptocurrencies + .map((e) => e.identifier) + .contains(coinName), ); WalletInfo copyWith({ @@ -440,14 +445,14 @@ class WalletInfo implements IsarId { } static WalletInfo createNew({ - required Coin coin, + required CryptoCurrency coin, required String name, int restoreHeight = 0, String? walletIdOverride, String? otherDataJsonString, }) { return WalletInfo( - coinName: coin.name, + coinName: coin.identifier, walletId: walletIdOverride ?? const Uuid().v1(), name: name, mainAddressType: coin.primaryAddressType, @@ -461,9 +466,11 @@ class WalletInfo implements IsarId { Map jsonObject, AddressType mainAddressType, ) { - final coin = Coin.values.byName(jsonObject["coin"] as String); + final coin = SupportedCoins.getCryptoCurrencyFor( + jsonObject["coin"] as String, + ); return WalletInfo( - coinName: coin.name, + coinName: coin.identifier, walletId: jsonObject["id"] as String, name: jsonObject["name"] as String, mainAddressType: mainAddressType, @@ -475,7 +482,7 @@ class WalletInfo implements IsarId { return { "name": name, "id": walletId, - "coin": coin.name, + "coin": coin.identifier, }; } diff --git a/lib/wallets/isar/providers/all_wallets_info_provider.dart b/lib/wallets/isar/providers/all_wallets_info_provider.dart index bca6f417f..a51233a0c 100644 --- a/lib/wallets/isar/providers/all_wallets_info_provider.dart +++ b/lib/wallets/isar/providers/all_wallets_info_provider.dart @@ -4,7 +4,8 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; final pAllWalletsInfo = Provider((ref) { @@ -14,7 +15,8 @@ final pAllWalletsInfo = Provider((ref) { final pAllWalletsInfoByCoin = Provider((ref) { final infos = ref.watch(pAllWalletsInfo); - final Map wallets})> map = {}; + final Map wallets})> + map = {}; for (final info in infos) { if (map[info.coin] == null) { @@ -24,8 +26,8 @@ final pAllWalletsInfoByCoin = Provider((ref) { map[info.coin]!.wallets.add(info); } - final List<({Coin coin, List wallets})> results = []; - for (final coin in Coin.values) { + final List<({CryptoCurrency coin, List wallets})> results = []; + for (final coin in SupportedCoins.cryptocurrencies) { if (map[coin] != null) { results.add(map[coin]!); } diff --git a/lib/wallets/isar/providers/wallet_info_provider.dart b/lib/wallets/isar/providers/wallet_info_provider.dart index b2c39ec21..a8d4ba3f3 100644 --- a/lib/wallets/isar/providers/wallet_info_provider.dart +++ b/lib/wallets/isar/providers/wallet_info_provider.dart @@ -2,7 +2,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; import 'package:stackwallet/models/balance.dart'; import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; import 'package:stackwallet/wallets/isar/providers/util/watcher.dart'; @@ -27,65 +27,81 @@ final pWalletInfo = Provider.family( }, ); -final pWalletCoin = Provider.family( +final pWalletCoin = Provider.family( (ref, walletId) { - return ref.watch(_wiProvider(walletId) - .select((value) => (value.value as WalletInfo).coin)); + return ref.watch( + _wiProvider(walletId).select((value) => (value.value as WalletInfo).coin), + ); }, ); final pWalletBalance = Provider.family( (ref, walletId) { - return ref.watch(_wiProvider(walletId) - .select((value) => (value.value as WalletInfo).cachedBalance)); + return ref.watch( + _wiProvider(walletId) + .select((value) => (value.value as WalletInfo).cachedBalance), + ); }, ); final pWalletBalanceSecondary = Provider.family( (ref, walletId) { - return ref.watch(_wiProvider(walletId) - .select((value) => (value.value as WalletInfo).cachedBalanceSecondary)); + return ref.watch( + _wiProvider(walletId).select( + (value) => (value.value as WalletInfo).cachedBalanceSecondary), + ); }, ); final pWalletBalanceTertiary = Provider.family( (ref, walletId) { - return ref.watch(_wiProvider(walletId) - .select((value) => (value.value as WalletInfo).cachedBalanceTertiary)); + return ref.watch( + _wiProvider(walletId) + .select((value) => (value.value as WalletInfo).cachedBalanceTertiary), + ); }, ); final pWalletChainHeight = Provider.family( (ref, walletId) { - return ref.watch(_wiProvider(walletId) - .select((value) => (value.value as WalletInfo).cachedChainHeight)); + return ref.watch( + _wiProvider(walletId) + .select((value) => (value.value as WalletInfo).cachedChainHeight), + ); }, ); final pWalletIsFavourite = Provider.family( (ref, walletId) { - return ref.watch(_wiProvider(walletId) - .select((value) => (value.value as WalletInfo).isFavourite)); + return ref.watch( + _wiProvider(walletId) + .select((value) => (value.value as WalletInfo).isFavourite), + ); }, ); final pWalletName = Provider.family( (ref, walletId) { - return ref.watch(_wiProvider(walletId) - .select((value) => (value.value as WalletInfo).name)); + return ref.watch( + _wiProvider(walletId).select((value) => (value.value as WalletInfo).name), + ); }, ); final pWalletReceivingAddress = Provider.family( (ref, walletId) { - return ref.watch(_wiProvider(walletId) - .select((value) => (value.value as WalletInfo).cachedReceivingAddress)); + return ref.watch( + _wiProvider(walletId).select( + (value) => (value.value as WalletInfo).cachedReceivingAddress), + ); }, ); final pWalletTokenAddresses = Provider.family, String>( (ref, walletId) { - return ref.watch(_wiProvider(walletId) - .select((value) => (value.value as WalletInfo).tokenContractAddresses)); + return ref.watch( + _wiProvider(walletId).select( + (value) => (value.value as WalletInfo).tokenContractAddresses), + ); }, ); diff --git a/lib/wallets/wallet/impl/bitcoin_frost_wallet.dart b/lib/wallets/wallet/impl/bitcoin_frost_wallet.dart index 5d0bb3ffc..ea10a3292 100644 --- a/lib/wallets/wallet/impl/bitcoin_frost_wallet.dart +++ b/lib/wallets/wallet/impl/bitcoin_frost_wallet.dart @@ -351,7 +351,7 @@ class BitcoinFrostWallet extends Wallet { final tx = await electrumXCachedClient.getTransaction( txHash: txHash["tx_hash"] as String, verbose: true, - coin: coin, + cryptoCurrency: coin, ); if (!_duplicateTxCheck(allTransactions, tx["txid"] as String)) { @@ -389,7 +389,7 @@ class BitcoinFrostWallet extends Wallet { final inputTx = await electrumXCachedClient.getTransaction( txHash: txid, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); final prevOutJson = Map.from( @@ -724,7 +724,9 @@ class BitcoinFrostWallet extends Wallet { await _updateKnownSalts(updatedKnownSalts); } else { // clear cache - await electrumXCachedClient.clearSharedTransactionCache(coin: coin); + await electrumXCachedClient.clearSharedTransactionCache( + cryptoCurrency: coin, + ); await mainDB.deleteWalletBlockchainData(walletId); } @@ -1082,7 +1084,7 @@ class BitcoinFrostWallet extends Wallet { // TODO [prio=low]: Use ElectrumXInterface method. Future _updateElectrumX() async { final failovers = nodeService - .failoverNodesFor(coin: cryptoCurrency.coin) + .failoverNodesFor(currency: cryptoCurrency) .map( (e) => ElectrumXNode( address: e.host, @@ -1137,7 +1139,7 @@ class BitcoinFrostWallet extends Wallet { final txn = await electrumXCachedClient.getTransaction( txHash: jsonUTXO["tx_hash"] as String, verbose: true, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); final vout = jsonUTXO["tx_pos"] as int; diff --git a/lib/wallets/wallet/impl/bitcoincash_wallet.dart b/lib/wallets/wallet/impl/bitcoincash_wallet.dart index 2b9355e2d..af0d1e3d6 100644 --- a/lib/wallets/wallet/impl/bitcoincash_wallet.dart +++ b/lib/wallets/wallet/impl/bitcoincash_wallet.dart @@ -9,29 +9,30 @@ import 'package:stackwallet/services/coins/bitcoincash/bch_utils.dart'; import 'package:stackwallet/services/coins/bitcoincash/cashtokens.dart' as cash_tokens; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/utilities/extensions/extensions.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -class BitcoincashWallet extends Bip39HDWallet +class BitcoincashWallet + extends Bip39HDWallet with - ElectrumXInterface, - BCashInterface, - CoinControlInterface, - CashFusionInterface { + ElectrumXInterface, + BCashInterface, + CoinControlInterface, + CashFusionInterface { @override int get isarTransactionVersion => 2; BitcoincashWallet(CryptoCurrencyNetwork network) - : super(Bitcoincash(network)); + : super(Bitcoincash(network) as T); @override FilterOperation? get changeAddressFilterOperation => FilterGroup.and( @@ -130,7 +131,7 @@ class BitcoincashWallet extends Bip39HDWallet final tx = await electrumXCachedClient.getTransaction( txHash: txHash["tx_hash"] as String, verbose: true, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); // check for duplicates before adding to list @@ -171,7 +172,7 @@ class BitcoincashWallet extends Bip39HDWallet final inputTx = await electrumXCachedClient.getTransaction( txHash: txid, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); try { @@ -361,7 +362,7 @@ class BitcoincashWallet extends Bip39HDWallet return Amount( rawValue: BigInt.from(((181 * inputCount) + (34 * outputCount) + 10) * (feeRatePerKB / 1000).ceil()), - fractionDigits: info.coin.decimals, + fractionDigits: info.coin.fractionDigits, ); } diff --git a/lib/wallets/wallet/impl/dogecoin_wallet.dart b/lib/wallets/wallet/impl/dogecoin_wallet.dart index 210ca64cd..a5f99fdbe 100644 --- a/lib/wallets/wallet/impl/dogecoin_wallet.dart +++ b/lib/wallets/wallet/impl/dogecoin_wallet.dart @@ -9,13 +9,14 @@ import 'package:stackwallet/utilities/extensions/extensions.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -class DogecoinWallet extends Bip39HDWallet - with ElectrumXInterface, CoinControlInterface { - DogecoinWallet(CryptoCurrencyNetwork network) : super(Dogecoin(network)); +class DogecoinWallet + extends Bip39HDWallet with ElectrumXInterface, CoinControlInterface { + DogecoinWallet(CryptoCurrencyNetwork network) : super(Dogecoin(network) as T); @override int get maximumFeerate => 2500000; // 1000x default value @@ -89,7 +90,7 @@ class DogecoinWallet extends Bip39HDWallet final tx = await electrumXCachedClient.getTransaction( txHash: txHash["tx_hash"] as String, verbose: true, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); // Only tx to list once. @@ -131,7 +132,7 @@ class DogecoinWallet extends Bip39HDWallet final inputTx = await electrumXCachedClient.getTransaction( txHash: txid, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); final prevOutJson = Map.from( diff --git a/lib/wallets/wallet/impl/ecash_wallet.dart b/lib/wallets/wallet/impl/ecash_wallet.dart index 2946c6069..e17525756 100644 --- a/lib/wallets/wallet/impl/ecash_wallet.dart +++ b/lib/wallets/wallet/impl/ecash_wallet.dart @@ -9,28 +9,28 @@ import 'package:stackwallet/services/coins/bitcoincash/bch_utils.dart'; import 'package:stackwallet/services/coins/bitcoincash/cashtokens.dart' as cash_tokens; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/utilities/extensions/extensions.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -class EcashWallet extends Bip39HDWallet +class EcashWallet extends Bip39HDWallet with - ElectrumXInterface, - BCashInterface, - CoinControlInterface, - CashFusionInterface { + ElectrumXInterface, + BCashInterface, + CoinControlInterface, + CashFusionInterface { @override int get isarTransactionVersion => 2; - EcashWallet(CryptoCurrencyNetwork network) : super(Ecash(network)); + EcashWallet(CryptoCurrencyNetwork network) : super(Ecash(network) as T); @override FilterOperation? get changeAddressFilterOperation => FilterGroup.and( @@ -123,7 +123,7 @@ class EcashWallet extends Bip39HDWallet final tx = await electrumXCachedClient.getTransaction( txHash: txHash["tx_hash"] as String, verbose: true, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); // check for duplicates before adding to list @@ -164,7 +164,7 @@ class EcashWallet extends Bip39HDWallet final inputTx = await electrumXCachedClient.getTransaction( txHash: txid, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); final prevOutJson = Map.from( @@ -353,7 +353,7 @@ class EcashWallet extends Bip39HDWallet return Amount( rawValue: BigInt.from(((181 * inputCount) + (34 * outputCount) + 10) * (feeRatePerKB / 1000).ceil()), - fractionDigits: info.coin.decimals, + fractionDigits: info.coin.fractionDigits, ); } diff --git a/lib/wallets/wallet/impl/epiccash_wallet.dart b/lib/wallets/wallet/impl/epiccash_wallet.dart index b2e5ad3f1..8d9defe77 100644 --- a/lib/wallets/wallet/impl/epiccash_wallet.dart +++ b/lib/wallets/wallet/impl/epiccash_wallet.dart @@ -26,7 +26,6 @@ import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_ import 'package:stackwallet/services/event_bus/global_event_bus.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/default_epicboxes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/stack_file_system.dart'; @@ -543,7 +542,7 @@ class EpiccashWallet extends Bip39Wallet { } else { try { Logging.instance.log( - "initializeExisting() ${cryptoCurrency.coin.prettyName} wallet", + "initializeExisting() ${cryptoCurrency.prettyName} wallet", level: LogLevel.Info); final config = await _getRealConfig(); @@ -774,7 +773,7 @@ class EpiccashWallet extends Bip39Wallet { WalletSyncStatusChangedEvent( WalletSyncStatus.syncing, walletId, - cryptoCurrency.coin, + cryptoCurrency, ), ); @@ -831,7 +830,7 @@ class EpiccashWallet extends Bip39Wallet { WalletSyncStatusChangedEvent( WalletSyncStatus.synced, walletId, - cryptoCurrency.coin, + cryptoCurrency, ), ); @@ -853,14 +852,14 @@ class EpiccashWallet extends Bip39Wallet { NodeConnectionStatusChangedEvent( NodeConnectionStatus.disconnected, walletId, - cryptoCurrency.coin, + cryptoCurrency, ), ); GlobalEventBus.instance.fire( WalletSyncStatusChangedEvent( WalletSyncStatus.unableToSync, walletId, - cryptoCurrency.coin, + cryptoCurrency, ), ); Logging.instance.log( @@ -1072,7 +1071,7 @@ class EpiccashWallet extends Bip39Wallet { @override Future pingCheck() async { try { - final node = nodeService.getPrimaryNodeFor(coin: cryptoCurrency.coin); + final node = nodeService.getPrimaryNodeFor(currency: cryptoCurrency); // force unwrap optional as we want connection test to fail if wallet // wasn't initialized or epicbox node was set to null diff --git a/lib/wallets/wallet/impl/ethereum_wallet.dart b/lib/wallets/wallet/impl/ethereum_wallet.dart index a4ad1b341..38b9710e7 100644 --- a/lib/wallets/wallet/impl/ethereum_wallet.dart +++ b/lib/wallets/wallet/impl/ethereum_wallet.dart @@ -16,7 +16,6 @@ import 'package:stackwallet/services/ethereum/ethereum_api.dart'; import 'package:stackwallet/services/event_bus/events/global/updated_in_background_event.dart'; import 'package:stackwallet/services/event_bus/global_event_bus.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/eth_commons.dart'; import 'package:stackwallet/utilities/logger.dart'; @@ -239,7 +238,7 @@ class EthereumWallet extends Bip39Wallet with PrivateKeyInterface { if (response.value == null) { Logging.instance.log( - "Failed to refresh transactions for ${cryptoCurrency.coin.prettyName} ${info.name} " + "Failed to refresh transactions for ${cryptoCurrency.prettyName} ${info.name} " "$walletId: ${response.exception}", level: LogLevel.Warning, ); @@ -349,7 +348,7 @@ class EthereumWallet extends Bip39Wallet with PrivateKeyInterface { await mainDB.updateOrPutTransactionV2s(txns); } else { Logging.instance.log( - "Failed to refresh transactions with nonces for ${cryptoCurrency.coin.prettyName} " + "Failed to refresh transactions with nonces for ${cryptoCurrency.prettyName} " "${info.name} $walletId: ${txsResponse.exception}", level: LogLevel.Warning, ); diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index ea109fe61..d38e99287 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -15,6 +15,7 @@ import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/isar/models/spark_coin.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; @@ -25,12 +26,12 @@ import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interfa const sparkStartBlock = 819300; // (approx 18 Jan 2024) -class FiroWallet extends Bip39HDWallet - with ElectrumXInterface, LelantusInterface, SparkInterface { +class FiroWallet extends Bip39HDWallet + with ElectrumXInterface, LelantusInterface, SparkInterface { // IMPORTANT: The order of the above mixins matters. // SparkInterface MUST come after LelantusInterface. - FiroWallet(CryptoCurrencyNetwork network) : super(Firo(network)); + FiroWallet(CryptoCurrencyNetwork network) : super(Firo(network) as T); @override int get isarTransactionVersion => 2; @@ -112,7 +113,7 @@ class FiroWallet extends Bip39HDWallet final txn = await electrumXCachedClient.getTransaction( txHash: tx.txid, verbose: true, - coin: info.coin, + cryptoCurrency: info.coin, ); final height = txn["height"] as int?; @@ -146,7 +147,7 @@ class FiroWallet extends Bip39HDWallet tx = await electrumXCachedClient.getTransaction( txHash: txHash["tx_hash"] as String, verbose: true, - coin: info.coin, + cryptoCurrency: info.coin, ); } catch (_) { continue; @@ -379,7 +380,7 @@ class FiroWallet extends Bip39HDWallet } else if (coinbase == null && txid != null && vout != null) { final inputTx = await electrumXCachedClient.getTransaction( txHash: txid, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); final prevOutJson = Map.from( @@ -603,7 +604,7 @@ class FiroWallet extends Bip39HDWallet if (isRescan) { // clear cache await electrumXCachedClient.clearSharedTransactionCache( - coin: info.coin); + cryptoCurrency: info.coin); // clear blockchain info await mainDB.deleteWalletBlockchainData(walletId); } @@ -613,19 +614,19 @@ class FiroWallet extends Bip39HDWallet final setDataMapFuture = getSetDataMap(latestSetId); final usedSerialNumbersFuture = electrumXCachedClient.getUsedCoinSerials( - coin: info.coin, + cryptoCurrency: info.coin, ); // spark final latestSparkCoinId = await electrumXClient.getSparkLatestCoinId(); final sparkAnonSetFuture = electrumXCachedClient.getSparkAnonymitySet( groupId: latestSparkCoinId.toString(), - coin: info.coin, + cryptoCurrency: info.coin, useOnlyCacheIfNotEmpty: false, ); final sparkUsedCoinTagsFuture = electrumXCachedClient.getSparkUsedCoinsTags( - coin: info.coin, + cryptoCurrency: info.coin, ); // receiving addresses diff --git a/lib/wallets/wallet/impl/litecoin_wallet.dart b/lib/wallets/wallet/impl/litecoin_wallet.dart index a2c6b00c3..a8825d003 100644 --- a/lib/wallets/wallet/impl/litecoin_wallet.dart +++ b/lib/wallets/wallet/impl/litecoin_wallet.dart @@ -9,17 +9,19 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/litecoin.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; -class LitecoinWallet extends Bip39HDWallet - with ElectrumXInterface, CoinControlInterface, OrdinalsInterface { +class LitecoinWallet + extends Bip39HDWallet + with ElectrumXInterface, CoinControlInterface, OrdinalsInterface { @override int get isarTransactionVersion => 2; - LitecoinWallet(CryptoCurrencyNetwork network) : super(Litecoin(network)); + LitecoinWallet(CryptoCurrencyNetwork network) : super(Litecoin(network) as T); @override FilterOperation? get changeAddressFilterOperation => @@ -91,7 +93,7 @@ class LitecoinWallet extends Bip39HDWallet final tx = await electrumXCachedClient.getTransaction( txHash: txHash["tx_hash"] as String, verbose: true, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); // Only tx to list once. @@ -135,7 +137,7 @@ class LitecoinWallet extends Bip39HDWallet final inputTx = await electrumXCachedClient.getTransaction( txHash: txid, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); final prevOutJson = Map.from( diff --git a/lib/wallets/wallet/impl/namecoin_wallet.dart b/lib/wallets/wallet/impl/namecoin_wallet.dart index c921b34b8..dee5c1d13 100644 --- a/lib/wallets/wallet/impl/namecoin_wallet.dart +++ b/lib/wallets/wallet/impl/namecoin_wallet.dart @@ -8,16 +8,17 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/namecoin.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -class NamecoinWallet extends Bip39HDWallet - with ElectrumXInterface, CoinControlInterface { +class NamecoinWallet extends Bip39HDWallet + with ElectrumXInterface, CoinControlInterface { @override int get isarTransactionVersion => 2; - NamecoinWallet(CryptoCurrencyNetwork network) : super(Namecoin(network)); + NamecoinWallet(CryptoCurrencyNetwork network) : super(Namecoin(network) as T); @override FilterOperation? get changeAddressFilterOperation => @@ -117,7 +118,7 @@ class NamecoinWallet extends Bip39HDWallet final tx = await electrumXCachedClient.getTransaction( txHash: txHash["tx_hash"] as String, verbose: true, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); // Only tx to list once. @@ -159,7 +160,7 @@ class NamecoinWallet extends Bip39HDWallet final inputTx = await electrumXCachedClient.getTransaction( txHash: txid, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); final prevOutJson = Map.from( diff --git a/lib/wallets/wallet/impl/particl_wallet.dart b/lib/wallets/wallet/impl/particl_wallet.dart index 8c4a12a28..5b9e8f714 100644 --- a/lib/wallets/wallet/impl/particl_wallet.dart +++ b/lib/wallets/wallet/impl/particl_wallet.dart @@ -14,17 +14,19 @@ import 'package:stackwallet/utilities/extensions/impl/uint8_list.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/particl.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -class ParticlWallet extends Bip39HDWallet - with ElectrumXInterface, CoinControlInterface { +class ParticlWallet + extends Bip39HDWallet + with ElectrumXInterface, CoinControlInterface { @override int get isarTransactionVersion => 2; - ParticlWallet(CryptoCurrencyNetwork network) : super(Particl(network)); + ParticlWallet(CryptoCurrencyNetwork network) : super(Particl(network) as T); // TODO: double check these filter operations are correct and do not require additional parameters @override @@ -162,7 +164,7 @@ class ParticlWallet extends Bip39HDWallet final tx = await electrumXCachedClient.getTransaction( txHash: txHash["tx_hash"] as String, verbose: true, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); // Only tx to list once. @@ -204,7 +206,7 @@ class ParticlWallet extends Bip39HDWallet final inputTx = await electrumXCachedClient.getTransaction( txHash: txid, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); final prevOutJson = Map.from( diff --git a/lib/wallets/wallet/impl/peercoin_wallet.dart b/lib/wallets/wallet/impl/peercoin_wallet.dart index e08566f45..206b78ed3 100644 --- a/lib/wallets/wallet/impl/peercoin_wallet.dart +++ b/lib/wallets/wallet/impl/peercoin_wallet.dart @@ -8,16 +8,18 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/peercoin.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -class PeercoinWallet extends Bip39HDWallet - with ElectrumXInterface, CoinControlInterface { +class PeercoinWallet + extends Bip39HDWallet + with ElectrumXInterface, CoinControlInterface { @override int get isarTransactionVersion => 2; - PeercoinWallet(CryptoCurrencyNetwork network) : super(Peercoin(network)); + PeercoinWallet(CryptoCurrencyNetwork network) : super(Peercoin(network) as T); @override FilterOperation? get changeAddressFilterOperation => @@ -123,7 +125,7 @@ class PeercoinWallet extends Bip39HDWallet final tx = await electrumXCachedClient.getTransaction( txHash: txHash["tx_hash"] as String, verbose: true, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); // Only tx to list once. @@ -165,7 +167,7 @@ class PeercoinWallet extends Bip39HDWallet final inputTx = await electrumXCachedClient.getTransaction( txHash: txid, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); final prevOutJson = Map.from( diff --git a/lib/wallets/wallet/impl/solana_wallet.dart b/lib/wallets/wallet/impl/solana_wallet.dart index d2f3582c9..801e7e613 100644 --- a/lib/wallets/wallet/impl/solana_wallet.dart +++ b/lib/wallets/wallet/impl/solana_wallet.dart @@ -16,8 +16,6 @@ import 'package:stackwallet/models/paymint/fee_object_model.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/solana.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; @@ -49,7 +47,7 @@ class SolanaWallet extends Bip39Wallet { publicKey: List.empty(), derivationIndex: 0, derivationPath: DerivationPath()..value = _addressDerivationPath, - type: cryptoCurrency.coin.primaryAddressType, + type: cryptoCurrency.primaryAddressType, subType: AddressSubType.receiving, ); return addressStruct; @@ -302,19 +300,19 @@ class SolanaWallet extends Bip39Wallet { final newBalance = Balance( total: Amount( rawValue: BigInt.from(balance.value), - fractionDigits: Coin.solana.decimals, + fractionDigits: cryptoCurrency.fractionDigits, ), spendable: Amount( rawValue: BigInt.from(spendableBalance), - fractionDigits: Coin.solana.decimals, + fractionDigits: cryptoCurrency.fractionDigits, ), blockedTotal: Amount( rawValue: BigInt.from(minimumRent), - fractionDigits: Coin.solana.decimals, + fractionDigits: cryptoCurrency.fractionDigits, ), pendingSpendable: Amount( rawValue: BigInt.zero, - fractionDigits: Coin.solana.decimals, + fractionDigits: cryptoCurrency.fractionDigits, ), ); @@ -358,8 +356,8 @@ class SolanaWallet extends Bip39Wallet { NodeModel getCurrentNode() { return _solNode ?? NodeService(secureStorageInterface: secureStorageInterface) - .getPrimaryNodeFor(coin: info.coin) ?? - DefaultNodes.getNodeFor(info.coin); + .getPrimaryNodeFor(currency: info.coin) ?? + info.coin.defaultNode; } @override diff --git a/lib/wallets/wallet/impl/tezos_wallet.dart b/lib/wallets/wallet/impl/tezos_wallet.dart index bdf3374a8..8506f7ba5 100644 --- a/lib/wallets/wallet/impl/tezos_wallet.dart +++ b/lib/wallets/wallet/impl/tezos_wallet.dart @@ -9,8 +9,6 @@ import 'package:stackwallet/models/paymint/fee_object_model.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/extensions/impl/string.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/api/tezos/tezos_account.dart'; @@ -108,12 +106,14 @@ class TezosWallet extends Bip39Wallet { // print("COUNTER: $counter"); // print("customFee: $customFee"); // } - ({InternetAddress host, int port})? proxyInfo = + final ({InternetAddress host, int port})? proxyInfo = prefs.useTor ? TorService.sharedInstance.getProxyInfo() : null; - final tezartClient = tezart.TezartClient(server, - proxy: proxyInfo != null - ? "socks5://${proxyInfo.host}:${proxyInfo.port};" - : null); + final tezartClient = tezart.TezartClient( + server, + proxy: proxyInfo != null + ? "socks5://${proxyInfo.host}:${proxyInfo.port};" + : null, + ); final opList = await tezartClient.transferOperation( source: sourceKeyStore, @@ -182,7 +182,7 @@ class TezosWallet extends Bip39Wallet { throw Exception("$runtimeType prepareSend requires 1 recipient"); } - Amount sendAmount = txData.amount!; + final Amount sendAmount = txData.amount!; if (sendAmount > info.cachedBalance.spendable) { throw Exception("Insufficient available balance"); @@ -249,7 +249,7 @@ class TezosWallet extends Bip39Wallet { amount: sendAmount, address: txData.recipients!.first.address, isChange: txData.recipients!.first.isChange, - ) + ), ], // fee: fee, fee: Amount( @@ -522,8 +522,8 @@ class TezosWallet extends Bip39Wallet { @override Future updateNode() async { _xtzNode = NodeService(secureStorageInterface: secureStorageInterface) - .getPrimaryNodeFor(coin: info.coin) ?? - DefaultNodes.getNodeFor(info.coin); + .getPrimaryNodeFor(currency: info.coin) ?? + info.coin.defaultNode; await refresh(); } @@ -532,8 +532,8 @@ class TezosWallet extends Bip39Wallet { NodeModel getCurrentNode() { return _xtzNode ?? NodeService(secureStorageInterface: secureStorageInterface) - .getPrimaryNodeFor(coin: info.coin) ?? - DefaultNodes.getNodeFor(info.coin); + .getPrimaryNodeFor(currency: info.coin) ?? + info.coin.defaultNode; } @override @@ -547,7 +547,7 @@ class TezosWallet extends Bip39Wallet { return; } - List> transactions = []; + final List> transactions = []; for (final theTx in txs) { final TransactionType txType; @@ -563,7 +563,7 @@ class TezosWallet extends Bip39Wallet { txType = TransactionType.unknown; } - var transaction = Transaction( + final transaction = Transaction( walletId: walletId, txid: theTx.hash, timestamp: theTx.timestamp, diff --git a/lib/wallets/wallet/intermediate/bip39_hd_wallet.dart b/lib/wallets/wallet/intermediate/bip39_hd_wallet.dart index ffb927713..230d8e8a4 100644 --- a/lib/wallets/wallet/intermediate/bip39_hd_wallet.dart +++ b/lib/wallets/wallet/intermediate/bip39_hd_wallet.dart @@ -66,7 +66,7 @@ abstract class Bip39HDWallet extends Bip39Wallet final address = await _generateAddress( chain: chain, index: index, - derivePathType: DerivePathTypeExt.primaryFor(info.coin), + derivePathType: info.coin.primaryDerivePathType, ); await mainDB.updateOrPutAddresses([address]); @@ -88,7 +88,7 @@ abstract class Bip39HDWallet extends Bip39Wallet final address = await _generateAddress( chain: chain, index: index, - derivePathType: DerivePathTypeExt.primaryFor(info.coin), + derivePathType: info.coin.primaryDerivePathType, ); await mainDB.updateOrPutAddresses([address]); @@ -101,7 +101,7 @@ abstract class Bip39HDWallet extends Bip39Wallet final address = await _generateAddress( chain: 0, // receiving index: 0, // initial index - derivePathType: DerivePathTypeExt.primaryFor(info.coin), + derivePathType: info.coin.primaryDerivePathType, ); await mainDB.updateOrPutAddresses([address]); diff --git a/lib/wallets/wallet/intermediate/bip39_wallet.dart b/lib/wallets/wallet/intermediate/bip39_wallet.dart index 0ab794bdd..13842e0dc 100644 --- a/lib/wallets/wallet/intermediate/bip39_wallet.dart +++ b/lib/wallets/wallet/intermediate/bip39_wallet.dart @@ -6,7 +6,7 @@ import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_inte abstract class Bip39Wallet extends Wallet with MnemonicInterface { - Bip39Wallet(T currency) : super(currency); + Bip39Wallet(super.currency); List get standardReceivingAddressFilters => [ FilterCondition.equalTo( diff --git a/lib/wallets/wallet/wallet.dart b/lib/wallets/wallet/wallet.dart index 549bfefb2..a427de15f 100644 --- a/lib/wallets/wallet/wallet.dart +++ b/lib/wallets/wallet/wallet.dart @@ -15,13 +15,30 @@ import 'package:stackwallet/services/event_bus/global_event_bus.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/paynym_is_api.dart'; import 'package:stackwallet/utilities/prefs.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/litecoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/namecoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/nano.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/particl.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/peercoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/solana.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; @@ -309,78 +326,63 @@ abstract class Wallet { static Wallet _loadWallet({ required WalletInfo walletInfo, }) { - switch (walletInfo.coin) { - case Coin.banano: - return BananoWallet(CryptoCurrencyNetwork.main); + final net = walletInfo.coin.network; + switch (walletInfo.coin.runtimeType) { + case const (Banano): + return BananoWallet(net); - case Coin.bitcoin: - return BitcoinWallet(CryptoCurrencyNetwork.main); - case Coin.bitcoinTestNet: - return BitcoinWallet(CryptoCurrencyNetwork.test); + case const (Bitcoin): + return BitcoinWallet(net); - case Coin.bitcoinFrost: - return BitcoinFrostWallet(CryptoCurrencyNetwork.main); - case Coin.bitcoinFrostTestNet: - return BitcoinFrostWallet(CryptoCurrencyNetwork.test); + case const (BitcoinFrost): + return BitcoinFrostWallet(net); - case Coin.bitcoincash: - return BitcoincashWallet(CryptoCurrencyNetwork.main); - case Coin.bitcoincashTestnet: - return BitcoincashWallet(CryptoCurrencyNetwork.test); + case const (Bitcoincash): + return BitcoincashWallet(net); - case Coin.dogecoin: + case const (Dogecoin): return DogecoinWallet(CryptoCurrencyNetwork.main); - case Coin.dogecoinTestNet: - return DogecoinWallet(CryptoCurrencyNetwork.test); - case Coin.eCash: + case const (Ecash): return EcashWallet(CryptoCurrencyNetwork.main); - case Coin.epicCash: + case const (Epiccash): return EpiccashWallet(CryptoCurrencyNetwork.main); - case Coin.ethereum: + case const (Ethereum): return EthereumWallet(CryptoCurrencyNetwork.main); - case Coin.firo: + case const (Firo): return FiroWallet(CryptoCurrencyNetwork.main); - case Coin.firoTestNet: - return FiroWallet(CryptoCurrencyNetwork.test); - case Coin.litecoin: + case const (Litecoin): return LitecoinWallet(CryptoCurrencyNetwork.main); - case Coin.litecoinTestNet: - return LitecoinWallet(CryptoCurrencyNetwork.test); - case Coin.monero: + case const (Monero): return MoneroWallet(CryptoCurrencyNetwork.main); - case Coin.namecoin: + case const (Namecoin): return NamecoinWallet(CryptoCurrencyNetwork.main); - case Coin.nano: + case const (Nano): return NanoWallet(CryptoCurrencyNetwork.main); - case Coin.particl: + case const (Particl): return ParticlWallet(CryptoCurrencyNetwork.main); - case Coin.peercoin: + case const (Peercoin): return PeercoinWallet(CryptoCurrencyNetwork.main); - case Coin.peercoinTestNet: - return PeercoinWallet(CryptoCurrencyNetwork.test); - case Coin.solana: + case const (Solana): return SolanaWallet(CryptoCurrencyNetwork.main); - case Coin.stellar: + case const (Stellar): return StellarWallet(CryptoCurrencyNetwork.main); - case Coin.stellarTestnet: - return StellarWallet(CryptoCurrencyNetwork.test); - case Coin.tezos: + case const (Tezos): return TezosWallet(CryptoCurrencyNetwork.main); - case Coin.wownero: + case const (Wownero): return WowneroWallet(CryptoCurrencyNetwork.main); default: @@ -413,7 +415,7 @@ abstract class Wallet { NodeConnectionStatusChangedEvent( status, walletId, - cryptoCurrency.coin, + cryptoCurrency, ), ); @@ -475,8 +477,8 @@ abstract class Wallet { } NodeModel getCurrentNode() { - final node = nodeService.getPrimaryNodeFor(coin: cryptoCurrency.coin) ?? - DefaultNodes.getNodeFor(cryptoCurrency.coin); + final node = nodeService.getPrimaryNodeFor(currency: cryptoCurrency) ?? + cryptoCurrency.defaultNode; return node; } @@ -498,7 +500,7 @@ abstract class Wallet { WalletSyncStatusChangedEvent( WalletSyncStatus.syncing, walletId, - cryptoCurrency.coin, + cryptoCurrency, ), ); @@ -584,7 +586,7 @@ abstract class Wallet { WalletSyncStatusChangedEvent( WalletSyncStatus.synced, walletId, - cryptoCurrency.coin, + cryptoCurrency, ), ); @@ -607,14 +609,14 @@ abstract class Wallet { NodeConnectionStatusChangedEvent( NodeConnectionStatus.disconnected, walletId, - cryptoCurrency.coin, + cryptoCurrency, ), ); GlobalEventBus.instance.fire( WalletSyncStatusChangedEvent( WalletSyncStatus.unableToSync, walletId, - cryptoCurrency.coin, + cryptoCurrency, ), ); Logging.instance.log( @@ -637,7 +639,7 @@ abstract class Wallet { case SyncingType.currentWalletOnly: // Close the subscription for this coin's chain height. // NOTE: This does not work now that the subscription is shared - // await (await ChainHeightServiceManager.getService(cryptoCurrency.coin)) + // await (await ChainHeightServiceManager.getService(cryptoCurrency)) // ?.cancelListen(); case SyncingType.selectedWalletsAtStartup: // Close the subscription if this wallet is not in the list to be synced. @@ -650,7 +652,7 @@ abstract class Wallet { .walletIdEqualTo(id) .findFirstSync()!; - if (wallet.coin == cryptoCurrency.coin) { + if (wallet.coin == cryptoCurrency) { walletIds.add(id); } } @@ -660,7 +662,7 @@ abstract class Wallet { if (walletIds.isEmpty) { // NOTE: This does not work now that the subscription is shared // await (await ChainHeightServiceManager.getService( - // cryptoCurrency.coin)) + // cryptoCurrency)) // ?.cancelListen(); } } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart index c94fd15f9..6db46e043 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart @@ -8,11 +8,13 @@ import 'package:stackwallet/models/isar/models/isar_models.dart'; import 'package:stackwallet/models/signing_data.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -mixin BCashInterface on Bip39HDWallet, ElectrumXInterface { +mixin BCashInterface + on Bip39HDWallet, ElectrumXInterface { @override Future buildTransaction({ required TxData txData, diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart index 1a7d424a2..a4395ea7f 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart @@ -11,16 +11,19 @@ import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart' import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart'; import 'package:stackwallet/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart'; import 'package:stackwallet/services/fusion_tor_service.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/stack_file_system.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; const String kReservedFusionAddress = "reserved_fusion_address"; -final kFusionServerInfoDefaults = Map.unmodifiable(const { - Coin.bitcoincash: FusionInfo( +final kFusionServerInfoDefaults = Map.unmodifiable({ + Bitcoincash(CryptoCurrencyNetwork.main).identifier: const FusionInfo( host: "fusion.servo.cash", port: 8789, ssl: true, @@ -29,7 +32,7 @@ final kFusionServerInfoDefaults = Map.unmodifiable(const { // ssl: false, rounds: 0, // 0 is continuous ), - Coin.bitcoincashTestnet: FusionInfo( + Bitcoincash(CryptoCurrencyNetwork.test).identifier: const FusionInfo( host: "fusion.servo.cash", port: 8789, ssl: true, @@ -38,7 +41,7 @@ final kFusionServerInfoDefaults = Map.unmodifiable(const { // ssl: false, rounds: 0, // 0 is continuous ), - Coin.eCash: FusionInfo( + Ecash(CryptoCurrencyNetwork.main).identifier: const FusionInfo( host: "fusion.tokamak.cash", port: 8788, ssl: true, @@ -109,7 +112,8 @@ class FusionInfo { } } -mixin CashFusionInterface on CoinControlInterface, ElectrumXInterface { +mixin CashFusionInterface + on CoinControlInterface, ElectrumXInterface { final _torService = FusionTorService.sharedInstance; // setting values on this should notify any listeners (the GUI) @@ -307,7 +311,7 @@ mixin CashFusionInterface on CoinControlInterface, ElectrumXInterface { final futures = txidList.map( (e) => electrumXCachedClient.getTransaction( txHash: e, - coin: info.coin, + cryptoCurrency: info.coin, ), ); @@ -589,7 +593,7 @@ mixin CashFusionInterface on CoinControlInterface, ElectrumXInterface { checkUtxoExists: _checkUtxoExists, getTransactionJson: (String txid) async => await electrumXCachedClient.getTransaction( - coin: info.coin, + cryptoCurrency: info.coin, txHash: txid, ), getPrivateKeyForPubKey: _getPrivateKeyForPubKey, diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart index 026e9f5fc..1ce6c7717 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart @@ -14,21 +14,21 @@ import 'package:stackwallet/models/isar/models/isar_models.dart'; import 'package:stackwallet/models/paymint/fee_object_model.dart'; import 'package:stackwallet/models/signing_data.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/extensions/extensions.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/paynym_is_api.dart'; import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/impl/bitcoin_wallet.dart'; import 'package:stackwallet/wallets/wallet/impl/peercoin_wallet.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -mixin ElectrumXInterface on Bip39HDWallet { +mixin ElectrumXInterface + on Bip39HDWallet { late ElectrumXClient electrumXClient; late CachedElectrumXClient electrumXCachedClient; @@ -43,9 +43,11 @@ mixin ElectrumXInterface on Bip39HDWallet { } try { - _serverVersion ??= _parseServerVersion((await electrumXClient - .getServerFeatures() - .timeout(const Duration(seconds: 2)))["server_version"] as String); + _serverVersion ??= _parseServerVersion( + (await electrumXClient + .getServerFeatures() + .timeout(const Duration(seconds: 2)))["server_version"] as String, + ); } catch (_) { // ignore failure as it doesn't matter } @@ -133,22 +135,30 @@ mixin ElectrumXInterface on Bip39HDWallet { // don't care about sorting if using all utxos if (!coinControl) { // sort spendable by age (oldest first) - spendableOutputs.sort((a, b) => (b.blockTime ?? currentChainHeight) - .compareTo((a.blockTime ?? currentChainHeight))); + spendableOutputs.sort( + (a, b) => (b.blockTime ?? currentChainHeight) + .compareTo((a.blockTime ?? currentChainHeight)), + ); // Null check operator changed to null assignment in order to resolve a // `Null check operator used on a null value` error. currentChainHeight // used in order to sort these unconfirmed outputs as the youngest, but we // could just as well use currentChainHeight + 1. } - Logging.instance.log("spendableOutputs.length: ${spendableOutputs.length}", - level: LogLevel.Info); - Logging.instance.log("availableOutputs.length: ${availableOutputs.length}", - level: LogLevel.Info); + Logging.instance.log( + "spendableOutputs.length: ${spendableOutputs.length}", + level: LogLevel.Info, + ); + Logging.instance.log( + "availableOutputs.length: ${availableOutputs.length}", + level: LogLevel.Info, + ); Logging.instance .log("spendableOutputs: $spendableOutputs", level: LogLevel.Info); - Logging.instance.log("spendableSatoshiValue: $spendableSatoshiValue", - level: LogLevel.Info); + Logging.instance.log( + "spendableSatoshiValue: $spendableSatoshiValue", + level: LogLevel.Info, + ); Logging.instance .log("satoshiAmountToSend: $satoshiAmountToSend", level: LogLevel.Info); // If the amount the user is trying to send is smaller than the amount that they have spendable, @@ -299,7 +309,7 @@ mixin ElectrumXInterface on Bip39HDWallet { [recipientAddress, (await getCurrentChangeAddress())!.value], [ satoshiAmountToSend, - max(0, satoshisBeingUsed - satoshiAmountToSend - 1) + max(0, satoshisBeingUsed - satoshiAmountToSend - 1), ], ), ), @@ -358,13 +368,18 @@ mixin ElectrumXInterface on Bip39HDWallet { Logging.instance.log('2 outputs in tx', level: LogLevel.Info); Logging.instance .log('Input size: $satoshisBeingUsed', level: LogLevel.Info); - Logging.instance.log('Recipient output size: $satoshiAmountToSend', - level: LogLevel.Info); - Logging.instance.log('Change Output Size: $changeOutputSize', - level: LogLevel.Info); Logging.instance.log( - 'Difference (fee being paid): $feeBeingPaid sats', - level: LogLevel.Info); + 'Recipient output size: $satoshiAmountToSend', + level: LogLevel.Info, + ); + Logging.instance.log( + 'Change Output Size: $changeOutputSize', + level: LogLevel.Info, + ); + Logging.instance.log( + 'Difference (fee being paid): $feeBeingPaid sats', + level: LogLevel.Info, + ); Logging.instance .log('Estimated fee: $feeForTwoOutputs', level: LogLevel.Info); @@ -386,19 +401,26 @@ mixin ElectrumXInterface on Bip39HDWallet { satoshisBeingUsed - satoshiAmountToSend - changeOutputSize; recipientsAmtArray.removeLast(); recipientsAmtArray.add(changeOutputSize); - Logging.instance.log('Adjusted Input size: $satoshisBeingUsed', - level: LogLevel.Info); Logging.instance.log( - 'Adjusted Recipient output size: $satoshiAmountToSend', - level: LogLevel.Info); + 'Adjusted Input size: $satoshisBeingUsed', + level: LogLevel.Info, + ); Logging.instance.log( - 'Adjusted Change Output Size: $changeOutputSize', - level: LogLevel.Info); + 'Adjusted Recipient output size: $satoshiAmountToSend', + level: LogLevel.Info, + ); Logging.instance.log( - 'Adjusted Difference (fee being paid): $feeBeingPaid sats', - level: LogLevel.Info); - Logging.instance.log('Adjusted Estimated fee: $feeForTwoOutputs', - level: LogLevel.Info); + 'Adjusted Change Output Size: $changeOutputSize', + level: LogLevel.Info, + ); + Logging.instance.log( + 'Adjusted Difference (fee being paid): $feeBeingPaid sats', + level: LogLevel.Info, + ); + Logging.instance.log( + 'Adjusted Estimated fee: $feeForTwoOutputs', + level: LogLevel.Info, + ); txn = await buildTransaction( utxoSigningData: utxoSigningData, txData: txData.copyWith( @@ -423,11 +445,14 @@ mixin ElectrumXInterface on Bip39HDWallet { Logging.instance.log('1 output in tx', level: LogLevel.Info); Logging.instance .log('Input size: $satoshisBeingUsed', level: LogLevel.Info); - Logging.instance.log('Recipient output size: $satoshiAmountToSend', - level: LogLevel.Info); Logging.instance.log( - 'Difference (fee being paid): ${satoshisBeingUsed - satoshiAmountToSend} sats', - level: LogLevel.Info); + 'Recipient output size: $satoshiAmountToSend', + level: LogLevel.Info, + ); + Logging.instance.log( + 'Difference (fee being paid): ${satoshisBeingUsed - satoshiAmountToSend} sats', + level: LogLevel.Info, + ); Logging.instance .log('Estimated fee: $feeForOneOutput', level: LogLevel.Info); final txn = await buildTransaction( @@ -455,11 +480,14 @@ mixin ElectrumXInterface on Bip39HDWallet { Logging.instance.log('1 output in tx', level: LogLevel.Info); Logging.instance .log('Input size: $satoshisBeingUsed', level: LogLevel.Info); - Logging.instance.log('Recipient output size: $satoshiAmountToSend', - level: LogLevel.Info); Logging.instance.log( - 'Difference (fee being paid): ${satoshisBeingUsed - satoshiAmountToSend} sats', - level: LogLevel.Info); + 'Recipient output size: $satoshiAmountToSend', + level: LogLevel.Info, + ); + Logging.instance.log( + 'Difference (fee being paid): ${satoshisBeingUsed - satoshiAmountToSend} sats', + level: LogLevel.Info, + ); Logging.instance .log('Estimated fee: $feeForOneOutput', level: LogLevel.Info); final txn = await buildTransaction( @@ -487,11 +515,14 @@ mixin ElectrumXInterface on Bip39HDWallet { Logging.instance.log('1 output in tx', level: LogLevel.Info); Logging.instance .log('Input size: $satoshisBeingUsed', level: LogLevel.Info); - Logging.instance.log('Recipient output size: $satoshiAmountToSend', - level: LogLevel.Info); Logging.instance.log( - 'Fee being paid: ${satoshisBeingUsed - satoshiAmountToSend} sats', - level: LogLevel.Info); + 'Recipient output size: $satoshiAmountToSend', + level: LogLevel.Info, + ); + Logging.instance.log( + 'Fee being paid: ${satoshisBeingUsed - satoshiAmountToSend} sats', + level: LogLevel.Info, + ); Logging.instance .log('Estimated fee: $feeForOneOutput', level: LogLevel.Info); final txn = await buildTransaction( @@ -515,8 +546,9 @@ mixin ElectrumXInterface on Bip39HDWallet { // pay for the transaction fee. Ideally, at this stage, we should check if the user has any // additional outputs they're able to spend and then recalculate fees. Logging.instance.log( - 'Cannot pay tx fee - checking for more outputs and trying again', - level: LogLevel.Warning); + 'Cannot pay tx fee - checking for more outputs and trying again', + level: LogLevel.Warning, + ); // try adding more outputs if (spendableOutputs.length > inputsBeingConsumed) { return coinSelection( @@ -589,7 +621,8 @@ mixin ElectrumXInterface on Bip39HDWallet { if (keys == null) { throw Exception( - "Failed to fetch signing data. Local db corrupt. Rescan wallet."); + "Failed to fetch signing data. Local db corrupt. Rescan wallet.", + ); } sd.keyPair = keys; @@ -762,8 +795,10 @@ mixin ElectrumXInterface on Bip39HDWallet { ); } } catch (e, s) { - Logging.instance.log("Caught exception while signing transaction: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "Caught exception while signing transaction: $e\n$s", + level: LogLevel.Error, + ); rethrow; } @@ -799,8 +834,9 @@ mixin ElectrumXInterface on Bip39HDWallet { ); } catch (e, s) { Logging.instance.log( - "Exception rethrown in fetchChainHeight\nError: $e\nStack trace: $s", - level: LogLevel.Error); + "Exception rethrown in fetchChainHeight\nError: $e\nStack trace: $s", + level: LogLevel.Error, + ); // completer.completeError(e, s); // return Future.error(e, s); rethrow; @@ -819,9 +855,10 @@ mixin ElectrumXInterface on Bip39HDWallet { }) async { try { final response = await electrumXClient.getBatchHistory( - args: addresses - .map((e) => [cryptoCurrency.addressToScriptHash(address: e)]) - .toList(growable: false)); + args: addresses + .map((e) => [cryptoCurrency.addressToScriptHash(address: e)]) + .toList(growable: false), + ); final List result = []; for (final entry in response) { @@ -830,8 +867,9 @@ mixin ElectrumXInterface on Bip39HDWallet { return result; } catch (e, s) { Logging.instance.log( - "Exception rethrown in _getBatchTxCount(address: $addresses: $e\n$s", - level: LogLevel.Error); + "Exception rethrown in _getBatchTxCount(address: $addresses: $e\n$s", + level: LogLevel.Error, + ); rethrow; } } @@ -850,14 +888,16 @@ mixin ElectrumXInterface on Bip39HDWallet { Future updateElectrumX() async { final failovers = nodeService - .failoverNodesFor(coin: cryptoCurrency.coin) - .map((e) => ElectrumXNode( - address: e.host, - port: e.port, - name: e.name, - id: e.id, - useSSL: e.useSSL, - )) + .failoverNodesFor(currency: cryptoCurrency) + .map( + (e) => ElectrumXNode( + address: e.host, + port: e.port, + name: e.name, + id: e.id, + useSSL: e.useSSL, + ), + ) .toList(); final newNode = await _getCurrentElectrumXNode(); @@ -899,8 +939,9 @@ mixin ElectrumXInterface on Bip39HDWallet { gapCounter < cryptoCurrency.maxUnusedAddressGap; index += txCountBatchSize) { Logging.instance.log( - "index: $index, \t GapCounter $chain ${type.name}: $gapCounter", - level: LogLevel.Info); + "index: $index, \t GapCounter $chain ${type.name}: $gapCounter", + level: LogLevel.Info, + ); final List txCountCallArgs = []; @@ -979,8 +1020,9 @@ mixin ElectrumXInterface on Bip39HDWallet { gapCounter < cryptoCurrency.maxUnusedAddressGap; index++) { Logging.instance.log( - "index: $index, \t GapCounter chain=$chain ${type.name}: $gapCounter", - level: LogLevel.Info); + "index: $index, \t GapCounter chain=$chain ${type.name}: $gapCounter", + level: LogLevel.Info, + ); final derivePath = cryptoCurrency.constructDerivePath( derivePathType: type, @@ -1107,7 +1149,7 @@ mixin ElectrumXInterface on Bip39HDWallet { final txn = await electrumXCachedClient.getTransaction( txHash: jsonUTXO["tx_hash"] as String, verbose: true, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); final vout = jsonUTXO["tx_pos"] as int; @@ -1194,15 +1236,15 @@ mixin ElectrumXInterface on Bip39HDWallet { numberOfBlocksSlow: s, fast: Amount.fromDecimal( fast, - fractionDigits: info.coin.decimals, + fractionDigits: info.coin.fractionDigits, ).raw.toInt(), medium: Amount.fromDecimal( medium, - fractionDigits: info.coin.decimals, + fractionDigits: info.coin.fractionDigits, ).raw.toInt(), slow: Amount.fromDecimal( slow, - fractionDigits: info.coin.decimals, + fractionDigits: info.coin.fractionDigits, ).raw.toInt(), ); @@ -1235,14 +1277,14 @@ mixin ElectrumXInterface on Bip39HDWallet { Amount runningBalance = Amount( rawValue: BigInt.zero, - fractionDigits: info.coin.decimals, + fractionDigits: info.coin.fractionDigits, ); int inputCount = 0; for (final output in utxos) { if (!output.isBlocked) { runningBalance += Amount( rawValue: BigInt.from(output.value), - fractionDigits: info.coin.decimals, + fractionDigits: info.coin.fractionDigits, ); inputCount++; if (runningBalance > amount) { @@ -1366,7 +1408,8 @@ mixin ElectrumXInterface on Bip39HDWallet { if (isRescan) { // clear cache await electrumXCachedClient.clearSharedTransactionCache( - coin: info.coin); + cryptoCurrency: info.coin, + ); // clear blockchain info await mainDB.deleteWalletBlockchainData(walletId); } @@ -1459,12 +1502,16 @@ mixin ElectrumXInterface on Bip39HDWallet { } // remove extra addresses to help minimize risk of creating a large gap - addressesToStore.removeWhere((e) => - e.subType == AddressSubType.change && - e.derivationIndex > highestChangeIndexWithHistory); - addressesToStore.removeWhere((e) => - e.subType == AddressSubType.receiving && - e.derivationIndex > highestReceivingIndexWithHistory); + addressesToStore.removeWhere( + (e) => + e.subType == AddressSubType.change && + e.derivationIndex > highestChangeIndexWithHistory, + ); + addressesToStore.removeWhere( + (e) => + e.subType == AddressSubType.receiving && + e.derivationIndex > highestReceivingIndexWithHistory, + ); await mainDB.updateOrPutAddresses(addressesToStore); @@ -1512,8 +1559,9 @@ mixin ElectrumXInterface on Bip39HDWallet { unawaited(refresh()); } catch (e, s) { Logging.instance.log( - "Exception rethrown from electrumx_mixin recover(): $e\n$s", - level: LogLevel.Info); + "Exception rethrown from electrumx_mixin recover(): $e\n$s", + level: LogLevel.Info, + ); rethrow; } @@ -1609,8 +1657,10 @@ mixin ElectrumXInterface on Bip39HDWallet { return await updateSentCachedTxData(txData: txData); } catch (e, s) { - Logging.instance.log("Exception rethrown from confirmSend(): $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "Exception rethrown from confirmSend(): $e\n$s", + level: LogLevel.Error, + ); rethrow; } } @@ -1644,7 +1694,8 @@ mixin ElectrumXInterface on Bip39HDWallet { if (result.fee!.raw.toInt() < result.vSize!) { throw Exception( - "Error in fee calculation: Transaction fee cannot be less than vSize"); + "Error in fee calculation: Transaction fee cannot be less than vSize", + ); } return result; @@ -1700,8 +1751,10 @@ mixin ElectrumXInterface on Bip39HDWallet { throw ArgumentError("Invalid fee rate argument provided!"); } } catch (e, s) { - Logging.instance.log("Exception rethrown from prepareSend(): $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "Exception rethrown from prepareSend(): $e\n$s", + level: LogLevel.Error, + ); rethrow; } } @@ -1777,7 +1830,7 @@ mixin ElectrumXInterface on Bip39HDWallet { return Amount( rawValue: available, - fractionDigits: info.coin.decimals, + fractionDigits: info.coin.fractionDigits, ) - estimatedFee; } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart index ce8c5064d..f182c8ca1 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart @@ -16,15 +16,17 @@ import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/api/lelantus_ffi_wrapper.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; import 'package:tuple/tuple.dart'; -mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { +mixin LelantusInterface + on Bip39HDWallet, ElectrumXInterface { Future estimateFeeForLelantus(Amount amount) async { final lelantusEntries = await _getLelantusEntry(); - int spendAmount = amount.raw.toInt(); + final int spendAmount = amount.raw.toInt(); if (spendAmount == 0 || lelantusEntries.isEmpty) { return Amount( rawValue: BigInt.from(LelantusFeeData(0, 0, []).fee), @@ -52,10 +54,12 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { .filter() .isUsedEqualTo(false) .not() - .group((q) => q - .valueEqualTo("0") - .or() - .anonymitySetIdEqualTo(LelantusFfiWrapper.ANONYMITY_SET_EMPTY_ID)) + .group( + (q) => q + .valueEqualTo("0") + .or() + .anonymitySetIdEqualTo(LelantusFfiWrapper.ANONYMITY_SET_EMPTY_ID), + ) .findAll(); final root = await getRootHDNode(); @@ -156,12 +160,15 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { // fee should never be less than vSize sanity check if (result.fee!.raw.toInt() < result.vSize!) { throw Exception( - "Error in fee calculation: Transaction fee cannot be less than vSize"); + "Error in fee calculation: Transaction fee cannot be less than vSize", + ); } return result; } catch (e, s) { - Logging.instance.log("Exception rethrown in firo prepareSend(): $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "Exception rethrown in firo prepareSend(): $e\n$s", + level: LogLevel.Error, + ); rethrow; } } @@ -316,17 +323,17 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { } Future>> fastFetch(List allTxHashes) async { - List> allTransactions = []; + final List> allTransactions = []; const futureLimit = 30; - List>> transactionFutures = []; + final List>> transactionFutures = []; int currentFutureCount = 0; for (final txHash in allTxHashes) { - Future> transactionFuture = + final Future> transactionFuture = electrumXCachedClient.getTransaction( txHash: txHash, verbose: true, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); transactionFutures.add(transactionFuture); currentFutureCount++; @@ -362,8 +369,8 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { List transactions, ) async { try { - Map txs = {}; - List> allTransactions = + final Map txs = {}; + final List> allTransactions = await fastFetch(transactions); for (int i = 0; i < allTransactions.length; i++) { @@ -426,16 +433,18 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { txs[address] = txn; } catch (e, s) { Logging.instance.log( - "Exception caught in getJMintTransactions(): $e\n$s", - level: LogLevel.Info); + "Exception caught in getJMintTransactions(): $e\n$s", + level: LogLevel.Info, + ); rethrow; } } return txs; } catch (e, s) { Logging.instance.log( - "Exception rethrown in getJMintTransactions(): $e\n$s", - level: LogLevel.Info); + "Exception rethrown in getJMintTransactions(): $e\n$s", + level: LogLevel.Info, + ); rethrow; } } @@ -445,25 +454,26 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { final latestSetId = await electrumXClient.getLelantusLatestCoinId(); final List> sets = []; - List>> anonFutures = []; + final List>> anonFutures = []; for (int i = 1; i <= latestSetId; i++) { final set = electrumXCachedClient.getAnonymitySet( groupId: "$i", - coin: info.coin, + cryptoCurrency: info.coin, ); anonFutures.add(set); } await Future.wait(anonFutures); for (int i = 1; i <= latestSetId; i++) { - Map set = (await anonFutures[i - 1]); + final Map set = (await anonFutures[i - 1]); set["setId"] = i; sets.add(set); } return sets; } catch (e, s) { Logging.instance.log( - "Exception rethrown from refreshAnonymitySets: $e\n$s", - level: LogLevel.Error); + "Exception rethrown from refreshAnonymitySets: $e\n$s", + level: LogLevel.Error, + ); rethrow; } } @@ -497,7 +507,7 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { final usedSerialNumbersSet = (await electrumXCachedClient.getUsedCoinSerials( - coin: info.coin, + cryptoCurrency: info.coin, )) .toSet(); @@ -598,10 +608,10 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { // TODO: [prio=high] shouldn't these be v2? If it doesn't matter than we can get rid of this logic // Edit the receive transactions with the mint fees. - List editedTransactions = []; + final List editedTransactions = []; for (final coin in result.lelantusCoins) { - String txid = coin.txid; + final String txid = coin.txid; Transaction? tx; try { tx = txns.firstWhere((e) => e.txid == txid); @@ -614,7 +624,7 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { continue; } - List inputTxns = []; + final List inputTxns = []; for (final input in tx.inputs) { Transaction? inputTx; try { @@ -635,8 +645,8 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { continue; } - int mintFee = tx.fee; - int sharedFee = mintFee ~/ inputTxns.length; + final int mintFee = tx.fee; + final int sharedFee = mintFee ~/ inputTxns.length; for (final inputTx in inputTxns) { final edited = Transaction( walletId: inputTx.walletId, @@ -665,7 +675,7 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { } // Logging.instance.log(editedTransactions, addToDebugMessagesDB: false); - Map transactionMap = {}; + final Map transactionMap = {}; for (final e in txns) { transactionMap[e.txid] = e; } @@ -676,10 +686,12 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { transactionMap[tx.txid] = tx; } - transactionMap.removeWhere((key, value) => - result.lelantusCoins.any((element) => element.txid == key) || - ((value.height == -1 || value.height == null) && - !value.isConfirmed(currentHeight, cryptoCurrency.minConfirms))); + transactionMap.removeWhere( + (key, value) => + result.lelantusCoins.any((element) => element.txid == key) || + ((value.height == -1 || value.height == null) && + !value.isConfirmed(currentHeight, cryptoCurrency.minConfirms)), + ); try { await mainDB.isar.writeTxn(() async { @@ -694,7 +706,7 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { throw Exception("e=$e & s=$s"); } - Map> data = {}; + final Map> data = {}; for (final entry in transactionMap.entries) { data[entry.key] = Tuple2(entry.value.address.value, entry.value); @@ -730,9 +742,12 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { value.item2.outputs.where((_) => true).toList(growable: false); final ins = value.item2.inputs.where((_) => true).toList(growable: false); - txnsData.add(Tuple2( + txnsData.add( + Tuple2( value.item2.copyWith(inputs: ins, outputs: outs).item1, - transactionAddress)); + transactionAddress, + ), + ); } await mainDB.addNewTransactionData(txnsData, walletId); @@ -827,7 +842,7 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { for (var mintsElement in txData.mintsMapLelantus!) { Logging.instance.log("using $mintsElement", level: LogLevel.Info); - Uint8List mintu8 = + final Uint8List mintu8 = Format.stringToUint8List(mintsElement['script'] as String); txb.addOutput(mintu8, mintsElement['value'] as int); } @@ -843,12 +858,12 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { witnessValue: signingData[i].utxo.value, ); } - var incomplete = txb.buildIncomplete(); - var txId = incomplete.getId(); - var txHex = incomplete.toHex(); - int fee = amount - incomplete.outs[0].value!; + final incomplete = txb.buildIncomplete(); + final txId = incomplete.getId(); + final txHex = incomplete.toHex(); + final int fee = amount - incomplete.outs[0].value!; - var builtHex = txb.build(); + final builtHex = txb.build(); return txData.copyWith( recipients: [ @@ -859,7 +874,7 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { ), address: "no address for lelantus mints", isChange: false, - ) + ), ], vSize: builtHex.virtualSize(), txid: txId, @@ -880,14 +895,14 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { // "value": amount - fee, // "fees": Amount( // rawValue: BigInt.from(fee), - // fractionDigits: coin.decimals, + // fractionDigits: coin.fractionDigits, // ).decimal.toDouble(), // "height": height, // "txType": "Sent", // "confirmed_status": false, // "amount": Amount( // rawValue: BigInt.from(amount), - // fractionDigits: coin.decimals, + // fractionDigits: coin.fractionDigits, // ).decimal.toDouble(), // "timestamp": DateTime.now().millisecondsSinceEpoch ~/ 1000, // "subType": "mint", @@ -908,7 +923,9 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { // Build list of spendable outputs and totaling their satoshi amount for (var i = 0; i < availableOutputs.length; i++) { if (availableOutputs[i].isConfirmed( - currentChainHeight, cryptoCurrency.minConfirms) == + currentChainHeight, + cryptoCurrency.minConfirms, + ) == true && !(availableOutputs[i].isCoinbase && availableOutputs[i].getConfirmations(currentChainHeight) <= @@ -938,8 +955,9 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { for (var element in value.inputs) { if (lelantusCoins.any((e) => e.txid == value.txid) && spendableOutputs.firstWhere( - (output) => output?.txid == element.txid, - orElse: () => null) != + (output) => output?.txid == element.txid, + orElse: () => null, + ) != null) { spendableOutputs .removeWhere((output) => output!.txid == element.txid); @@ -954,7 +972,7 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { } int satoshisBeingUsed = 0; - Set utxoObjectsToUse = {}; + final Set utxoObjectsToUse = {}; for (var i = 0; i < spendableOutputs.length; i++) { final spendable = spendableOutputs[i]; @@ -964,7 +982,7 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { } } - var mintsWithoutFee = await _createMintsFromAmount(satoshisBeingUsed); + final mintsWithoutFee = await _createMintsFromAmount(satoshisBeingUsed); TxData txData = await buildMintTransaction( txData: TxData( @@ -1005,7 +1023,8 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { Future>> _createMintsFromAmount(int total) async { if (total > LelantusFfiWrapper.MINT_LIMIT) { throw Exception( - "Lelantus mints of more than 5001 are currently disabled"); + "Lelantus mints of more than 5001 are currently disabled", + ); } int tmpTotal = total; @@ -1075,10 +1094,11 @@ mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { if (!isUsedMintTag) { final mintValue = min( - tmpTotal, - (isTestnet - ? LelantusFfiWrapper.MINT_LIMIT_TESTNET - : LelantusFfiWrapper.MINT_LIMIT)); + tmpTotal, + (isTestnet + ? LelantusFfiWrapper.MINT_LIMIT_TESTNET + : LelantusFfiWrapper.MINT_LIMIT), + ); final mint = await LelantusFfiWrapper.getMintScript( amount: Amount( rawValue: BigInt.from(mintValue), diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart index dd52da8de..f787b91f7 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart @@ -13,8 +13,6 @@ import 'package:stackwallet/services/nano_api.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/extensions/impl/string.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; @@ -81,7 +79,7 @@ mixin NanoInterface on Bip39Wallet { publicKey: publicKey.toUint8ListFromHex, derivationIndex: 0, derivationPath: null, - type: cryptoCurrency.coin.primaryAddressType, + type: cryptoCurrency.primaryAddressType, subType: AddressSubType.receiving, ); } @@ -138,7 +136,7 @@ mixin NanoInterface on Bip39Wallet { final BigInt txAmount = BigInt.parse(amountRaw); final BigInt balanceAfterTx = currentBalance + txAmount; - String frontier = infoData["frontier"].toString(); + final String frontier = infoData["frontier"].toString(); String representative = infoData["representative"].toString(); if (openBlock) { @@ -153,7 +151,7 @@ mixin NanoInterface on Bip39Wallet { NanoAccounts.createAccount(NanoAccountType.BANANO, blockHash); // construct the receive block: - Map receiveBlock = { + final Map receiveBlock = { "type": "state", "account": publicAddress, "previous": openBlock @@ -300,8 +298,8 @@ mixin NanoInterface on Bip39Wallet { @override Future updateNode() async { _cachedNode = NodeService(secureStorageInterface: secureStorageInterface) - .getPrimaryNodeFor(coin: info.coin) ?? - DefaultNodes.getNodeFor(info.coin); + .getPrimaryNodeFor(currency: info.coin) ?? + info.coin.defaultNode; unawaited(refresh()); } @@ -310,8 +308,8 @@ mixin NanoInterface on Bip39Wallet { NodeModel getCurrentNode() { return _cachedNode ?? NodeService(secureStorageInterface: secureStorageInterface) - .getPrimaryNodeFor(coin: info.coin) ?? - DefaultNodes.getNodeFor(info.coin); + .getPrimaryNodeFor(currency: info.coin) ?? + info.coin.defaultNode; } @override @@ -407,7 +405,7 @@ mixin NanoInterface on Bip39Wallet { final String link = NanoAccounts.extractPublicKey(linkAsAccount); // construct the send block: - Map sendBlock = { + final Map sendBlock = { "type": "state", "account": publicAddress, "previous": frontier, @@ -505,14 +503,15 @@ mixin NanoInterface on Bip39Wallet { proxyInfo: prefs.useTor ? TorService.sharedInstance.getProxyInfo() : null, ); final data = await jsonDecode(response.body); - final transactions = - data["history"] is List ? data["history"] as List : []; + final transactions = data["history"] is List + ? data["history"] as List + : []; if (transactions.isEmpty) { return; } else { - List> transactionList = []; - for (var tx in transactions) { - var typeString = tx["type"].toString(); + final List> transactionList = []; + for (final tx in transactions) { + final typeString = tx["type"].toString(); TransactionType transactionType = TransactionType.unknown; if (typeString == "send") { transactionType = TransactionType.outgoing; @@ -524,7 +523,7 @@ mixin NanoInterface on Bip39Wallet { fractionDigits: cryptoCurrency.fractionDigits, ); - var transaction = Transaction( + final transaction = Transaction( walletId: walletId, txid: tx["hash"].toString(), timestamp: int.parse(tx["local_timestamp"].toString()), @@ -544,7 +543,7 @@ mixin NanoInterface on Bip39Wallet { numberOfMessages: null, ); - Address address = transactionType == TransactionType.incoming + final Address address = transactionType == TransactionType.incoming ? receivingAddress : Address( walletId: walletId, @@ -555,7 +554,7 @@ mixin NanoInterface on Bip39Wallet { type: info.coin.primaryAddressType, subType: AddressSubType.nonWallet, ); - Tuple2 tuple = Tuple2(transaction, address); + final Tuple2 tuple = Tuple2(transaction, address); transactionList.add(tuple); } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart index 5b6299f12..09fe10f52 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart @@ -4,9 +4,11 @@ import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart'; import 'package:stackwallet/models/isar/ordinal.dart'; import 'package:stackwallet/services/litescribe_api.dart'; import 'package:stackwallet/utilities/logger.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -mixin OrdinalsInterface on ElectrumXInterface { +mixin OrdinalsInterface + on ElectrumXInterface { final LitescribeAPI _litescribeAPI = LitescribeAPI(baseUrl: 'https://litescribe.io/api'); diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart index 202b22943..213c9fd09 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart @@ -20,11 +20,12 @@ import 'package:stackwallet/models/signing_data.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/bip32_utils.dart'; import 'package:stackwallet/utilities/bip47_utils.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/utilities/extensions/extensions.dart'; import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/logger.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/interfaces/paynym_currency_interface.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; @@ -67,7 +68,7 @@ mixin PaynymInterface final root = await _getRootNode(); final node = root.derivePath( _basePaynymDerivePath( - testnet: info.coin.isTestNet, + testnet: info.coin.network == CryptoCurrencyNetwork.test, ), ); return node; @@ -158,7 +159,7 @@ mixin PaynymInterface final root = await _getRootNode(); final node = root.derivePath( _basePaynymDerivePath( - testnet: info.coin.isTestNet, + testnet: info.coin.network == CryptoCurrencyNetwork.test, ), ); @@ -181,7 +182,7 @@ mixin PaynymInterface derivationPath: DerivationPath() ..value = _receivingPaynymAddressDerivationPath( index, - testnet: info.coin.isTestNet, + testnet: info.coin.network == CryptoCurrencyNetwork.test, ), type: generateSegwitAddress ? AddressType.p2wpkh : AddressType.p2pkh, subType: AddressSubType.paynymReceive, @@ -218,7 +219,7 @@ mixin PaynymInterface derivationPath: DerivationPath() ..value = _sendPaynymAddressDerivationPath( index, - testnet: info.coin.isTestNet, + testnet: info.coin.network == CryptoCurrencyNetwork.test, ), type: AddressType.nonWallet, subType: AddressSubType.paynymSend, @@ -275,14 +276,18 @@ mixin PaynymInterface final codes = await getAllPaymentCodesFromNotificationTransactions(); final List> futures = []; for (final code in codes) { - futures.add(checkCurrentPaynymReceivingAddressForTransactions( - sender: code, - isSegwit: true, - )); - futures.add(checkCurrentPaynymReceivingAddressForTransactions( - sender: code, - isSegwit: false, - )); + futures.add( + checkCurrentPaynymReceivingAddressForTransactions( + sender: code, + isSegwit: true, + ), + ); + futures.add( + checkCurrentPaynymReceivingAddressForTransactions( + sender: code, + isSegwit: false, + ), + ); } await Future.wait(futures); } @@ -309,7 +314,7 @@ mixin PaynymInterface final node = root .derivePath( _basePaynymDerivePath( - testnet: info.coin.isTestNet, + testnet: info.coin.network == CryptoCurrencyNetwork.test, ), ) .derive(0); @@ -323,7 +328,11 @@ mixin PaynymInterface final node = await _getRootNode(); final paymentCode = PaymentCode.fromBip32Node( - node.derivePath(_basePaynymDerivePath(testnet: info.coin.isTestNet)), + node.derivePath( + _basePaynymDerivePath( + testnet: info.coin.network == CryptoCurrencyNetwork.test, + ), + ), networkType: networkType, shouldSetSegwitBit: isSegwit, ); @@ -333,8 +342,10 @@ mixin PaynymInterface Future signWithNotificationKey(Uint8List data) async { final myPrivateKeyNode = await deriveNotificationBip32Node(); - final pair = btc_dart.ECPair.fromPrivateKey(myPrivateKeyNode.privateKey!, - network: networkType); + final pair = btc_dart.ECPair.fromPrivateKey( + myPrivateKeyNode.privateKey!, + network: networkType, + ); final signed = pair.sign(SHA256Digest().process(data)); return signed; } @@ -363,7 +374,8 @@ mixin PaynymInterface if (!(await hasConnected(txData.paynymAccountLite!.code.toString()))) { throw PaynymSendException( - "No notification transaction sent to $paymentCode,"); + "No notification transaction sent to $paymentCode,", + ); } else { final myPrivateKeyNode = await deriveNotificationBip32Node(); final sendToAddress = await nextUnusedSendAddressFrom( @@ -465,7 +477,9 @@ mixin PaynymInterface for (var i = 0; i < availableOutputs.length; i++) { if (availableOutputs[i].isBlocked == false && availableOutputs[i].isConfirmed( - await fetchChainHeight(), cryptoCurrency.minConfirms) == + await fetchChainHeight(), + cryptoCurrency.minConfirms, + ) == true) { spendableOutputs.add(availableOutputs[i]); spendableSatoshiValue += BigInt.from(availableOutputs[i].value); @@ -475,11 +489,13 @@ mixin PaynymInterface if (spendableSatoshiValue < amountToSend.raw) { // insufficient balance throw InsufficientBalanceException( - "Spendable balance is less than the minimum required for a notification transaction."); + "Spendable balance is less than the minimum required for a notification transaction.", + ); } else if (spendableSatoshiValue == amountToSend.raw) { // insufficient balance due to missing amount to cover fee throw InsufficientBalanceException( - "Remaining balance does not cover the network fee."); + "Remaining balance does not cover the network fee.", + ); } // sort spendable by age (oldest first) @@ -487,7 +503,7 @@ mixin PaynymInterface BigInt satoshisBeingUsed = BigInt.zero; int outputsBeingUsed = 0; - List utxoObjectsToUse = []; + final List utxoObjectsToUse = []; for (int i = 0; satoshisBeingUsed < amountToSend.raw && i < spendableOutputs.length; @@ -546,7 +562,7 @@ mixin PaynymInterface ), ); - if (info.coin == Coin.dogecoin || info.coin == Coin.dogecoinTestNet) { + if (info.coin is Dogecoin) { if (feeForNoChange < vSizeForNoChange * BigInt.from(1000)) { feeForNoChange = vSizeForNoChange * BigInt.from(1000); } @@ -587,21 +603,22 @@ mixin PaynymInterface } final txData = TxData( - raw: txn.item1, - recipients: [ - ( - address: targetPaymentCodeString, - amount: amountToSend, - isChange: false, - ), - ], - fee: Amount( - rawValue: feeBeingPaid, - fractionDigits: cryptoCurrency.fractionDigits, + raw: txn.item1, + recipients: [ + ( + address: targetPaymentCodeString, + amount: amountToSend, + isChange: false, ), - vSize: txn.item2, - utxos: utxoSigningData.map((e) => e.utxo).toSet(), - note: "PayNym connect"); + ], + fee: Amount( + rawValue: feeBeingPaid, + fractionDigits: cryptoCurrency.fractionDigits, + ), + vSize: txn.item2, + utxos: utxoSigningData.map((e) => e.utxo).toSet(), + note: "PayNym connect", + ); return txData; } else { @@ -613,24 +630,25 @@ mixin PaynymInterface change: BigInt.zero, ); - BigInt feeBeingPaid = satoshisBeingUsed - amountToSend.raw; + final BigInt feeBeingPaid = satoshisBeingUsed - amountToSend.raw; final txData = TxData( - raw: txn.item1, - recipients: [ - ( - address: targetPaymentCodeString, - amount: amountToSend, - isChange: false, - ) - ], - fee: Amount( - rawValue: feeBeingPaid, - fractionDigits: cryptoCurrency.fractionDigits, + raw: txn.item1, + recipients: [ + ( + address: targetPaymentCodeString, + amount: amountToSend, + isChange: false, ), - vSize: txn.item2, - utxos: utxoSigningData.map((e) => e.utxo).toSet(), - note: "PayNym connect"); + ], + fee: Amount( + rawValue: feeBeingPaid, + fractionDigits: cryptoCurrency.fractionDigits, + ), + vSize: txn.item2, + utxos: utxoSigningData.map((e) => e.utxo).toSet(), + note: "PayNym connect", + ); return txData; } @@ -643,24 +661,25 @@ mixin PaynymInterface change: BigInt.zero, ); - BigInt feeBeingPaid = satoshisBeingUsed - amountToSend.raw; + final BigInt feeBeingPaid = satoshisBeingUsed - amountToSend.raw; final txData = TxData( - raw: txn.item1, - recipients: [ - ( - address: targetPaymentCodeString, - amount: amountToSend, - isChange: false, - ) - ], - fee: Amount( - rawValue: feeBeingPaid, - fractionDigits: cryptoCurrency.fractionDigits, + raw: txn.item1, + recipients: [ + ( + address: targetPaymentCodeString, + amount: amountToSend, + isChange: false, ), - vSize: txn.item2, - utxos: utxoSigningData.map((e) => e.utxo).toSet(), - note: "PayNym connect"); + ], + fee: Amount( + rawValue: feeBeingPaid, + fractionDigits: cryptoCurrency.fractionDigits, + ), + vSize: txn.item2, + utxos: utxoSigningData.map((e) => e.utxo).toSet(), + note: "PayNym connect", + ); return txData; } else { @@ -674,7 +693,8 @@ mixin PaynymInterface ); } else { throw InsufficientBalanceException( - "Remaining balance does not cover the network fee."); + "Remaining balance does not cover the network fee.", + ); } } } catch (e) { @@ -900,8 +920,10 @@ mixin PaynymInterface txHash: txHash, ); } catch (e, s) { - Logging.instance.log("Exception rethrown from confirmSend(): $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "Exception rethrown from confirmSend(): $e\n$s", + level: LogLevel.Error, + ); rethrow; } } @@ -1143,7 +1165,7 @@ mixin PaynymInterface .subTypeEqualTo(TransactionSubType.bip47Notification) .findAll(); - List codes = []; + final List codes = []; for (final tx in txns) { // tx is sent so we can check the address's otherData for the code String @@ -1201,7 +1223,8 @@ mixin PaynymInterface } Future checkForNotificationTransactionsTo( - Set otherCodeStrings) async { + Set otherCodeStrings, + ) async { final sentNotificationTransactions = await mainDB.isar.transactionV2s .where() .walletIdEqualTo(walletId) @@ -1214,7 +1237,8 @@ mixin PaynymInterface final List codes = []; for (final codeString in otherCodeStrings) { codes.add( - PaymentCode.fromPaymentCode(codeString, networkType: networkType)); + PaymentCode.fromPaymentCode(codeString, networkType: networkType), + ); } for (final tx in sentNotificationTransactions) { @@ -1303,7 +1327,7 @@ mixin PaynymInterface final mySendBip32Node = await deriveNotificationBip32Node(); - List
addresses = []; + final List
addresses = []; int receivingGapCounter = 0; int outgoingGapCounter = 0; @@ -1445,7 +1469,7 @@ mixin PaynymInterface final root = await _getRootNode(); final node = root.derivePath( _basePaynymDerivePath( - testnet: info.coin.isTestNet, + testnet: info.coin.network == CryptoCurrencyNetwork.test, ), ); final paymentCode = PaymentCode.fromBip32Node( @@ -1473,7 +1497,7 @@ mixin PaynymInterface derivationIndex: 0, derivationPath: DerivationPath() ..value = _notificationDerivationPath( - testnet: info.coin.isTestNet, + testnet: info.coin.network == CryptoCurrencyNetwork.test, ), type: AddressType.p2pkh, subType: AddressSubType.paynymNotification, @@ -1559,7 +1583,8 @@ mixin PaynymInterface Uint8List _randomBytes(int n) { final Random rng = Random.secure(); return Uint8List.fromList( - List.generate(n, (_) => rng.nextInt(0xFF + 1))); + List.generate(n, (_) => rng.nextInt(0xFF + 1)), + ); } // ================== Overrides ============================================== @@ -1567,18 +1592,20 @@ mixin PaynymInterface @override Future updateTransactions({List
? overrideAddresses}) async { // Get all addresses. - List
allAddressesOld = + final List
allAddressesOld = overrideAddresses ?? await fetchAddressesForElectrumXScan(); // Separate receiving and change addresses. - Set receivingAddresses = allAddressesOld - .where((e) => - e.subType == AddressSubType.receiving || - e.subType == AddressSubType.paynymNotification || - e.subType == AddressSubType.paynymReceive) + final Set receivingAddresses = allAddressesOld + .where( + (e) => + e.subType == AddressSubType.receiving || + e.subType == AddressSubType.paynymNotification || + e.subType == AddressSubType.paynymReceive, + ) .map((e) => e.value) .toSet(); - Set changeAddresses = allAddressesOld + final Set changeAddresses = allAddressesOld .where((e) => e.subType == AddressSubType.change) .map((e) => e.value) .toSet(); @@ -1591,7 +1618,7 @@ mixin PaynymInterface await fetchHistory(allAddressesSet); // Only parse new txs (not in db yet). - List> allTransactions = []; + final List> allTransactions = []; for (final txHash in allTxHashes) { // Check for duplicates by searching for tx by tx_hash in db. // final storedTx = await mainDB.isar.transactionV2s @@ -1606,7 +1633,7 @@ mixin PaynymInterface final tx = await electrumXCachedClient.getTransaction( txHash: txHash["tx_hash"] as String, verbose: true, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); // Only tx to list once. @@ -1648,12 +1675,12 @@ mixin PaynymInterface final inputTx = await electrumXCachedClient.getTransaction( txHash: txid, - coin: cryptoCurrency.coin, + cryptoCurrency: cryptoCurrency, ); final prevOutJson = Map.from( - (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) - as Map); + (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) as Map, + ); final prevOut = OutputV2.fromElectrumXJson( prevOutJson, @@ -1726,7 +1753,8 @@ mixin PaynymInterface TransactionSubType subType = TransactionSubType.none; if (outputs.length > 1 && inputs.isNotEmpty) { for (int i = 0; i < outputs.length; i++) { - List? scriptChunks = outputs[i].scriptPubKeyAsm?.split(" "); + final List? scriptChunks = + outputs[i].scriptPubKeyAsm?.split(" "); if (scriptChunks?.length == 2 && scriptChunks?[0] == "OP_RETURN") { final blindedPaymentCode = scriptChunks![1]; final bytes = blindedPaymentCode.toUint8ListFromHex; @@ -1809,7 +1837,7 @@ mixin PaynymInterface final outputs = jsonTX["vout"] as List; for (int i = 0; i < outputs.length; i++) { final output = outputs[i]; - List? scriptChunks = + final List? scriptChunks = (output['scriptPubKey']?['asm'] as String?)?.split(" "); if (scriptChunks?.length == 2 && scriptChunks?[0] == "OP_RETURN") { final blindedPaymentCode = scriptChunks![1]; diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index 7aaa1d3ed..ece37026e 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -17,6 +17,7 @@ import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; import 'package:stackwallet/utilities/extensions/extensions.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'package:stackwallet/wallets/isar/models/spark_coin.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; @@ -34,7 +35,8 @@ const OP_SPARKMINT = 0xd1; const OP_SPARKSMINT = 0xd2; const OP_SPARKSPEND = 0xd3; -mixin SparkInterface on Bip39HDWallet, ElectrumXInterface { +mixin SparkInterface + on Bip39HDWallet, ElectrumXInterface { String? _sparkChangeAddressCached; /// Spark change address. Should generally not be exposed to end users. @@ -258,7 +260,7 @@ mixin SparkInterface on Bip39HDWallet, ElectrumXInterface { for (int i = 1; i <= currentId; i++) { final set = await electrumXCachedClient.getSparkAnonymitySet( groupId: i.toString(), - coin: info.coin, + cryptoCurrency: info.coin, useOnlyCacheIfNotEmpty: true, ); set["coinGroupID"] = i; @@ -619,12 +621,12 @@ mixin SparkInterface on Bip39HDWallet, ElectrumXInterface { final anonymitySetFuture = electrumXCachedClient.getSparkAnonymitySet( groupId: latestSparkCoinId.toString(), - coin: info.coin, + cryptoCurrency: info.coin, useOnlyCacheIfNotEmpty: false, ); - final spentCoinTagsFuture = - electrumXCachedClient.getSparkUsedCoinsTags(coin: info.coin); + final spentCoinTagsFuture = electrumXCachedClient.getSparkUsedCoinsTags( + cryptoCurrency: info.coin); final futureResults = await Future.wait([ anonymitySetFuture, @@ -1600,7 +1602,7 @@ mixin SparkInterface on Bip39HDWallet, ElectrumXInterface { for (final coin in coinsToCheck) { final tx = await electrumXCachedClient.getTransaction( txHash: coin.txHash, - coin: info.coin, + cryptoCurrency: info.coin, ); if (tx["height"] is int) { updatedCoins.add(coin.copyWith(height: tx["height"] as int)); diff --git a/lib/widgets/address_book_card.dart b/lib/widgets/address_book_card.dart index f40f4f432..8a795437f 100644 --- a/lib/widgets/address_book_card.dart +++ b/lib/widgets/address_book_card.dart @@ -16,13 +16,14 @@ import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/models/isar/models/contact_entry.dart'; import 'package:stackwallet/pages/address_book_views/subviews/contact_popup.dart'; import 'package:stackwallet/providers/global/address_book_service_provider.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/expandable.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; @@ -69,9 +70,9 @@ class _AddressBookCardState extends ConsumerState { final contact = _contact!; - final List coins = []; + final List coins = []; - for (final coin in Coin.values) { + for (final coin in SupportedCoins.cryptocurrencies) { if (contact.addresses.where((e) => e.coin == coin).isNotEmpty) { coins.add(coin); } diff --git a/lib/widgets/choose_coin_view.dart b/lib/widgets/choose_coin_view.dart index 52ff990f2..862585786 100644 --- a/lib/widgets/choose_coin_view.dart +++ b/lib/widgets/choose_coin_view.dart @@ -14,11 +14,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/providers/providers.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; @@ -33,11 +35,11 @@ import 'package:stackwallet/widgets/rounded_white_container.dart'; class ChooseCoinView extends ConsumerStatefulWidget { const ChooseCoinView({ - Key? key, + super.key, required this.title, required this.coinAdditional, required this.nextRouteName, - }) : super(key: key); + }); static const String routeName = "/chooseCoin"; @@ -50,12 +52,14 @@ class ChooseCoinView extends ConsumerStatefulWidget { } class _ChooseCoinViewState extends ConsumerState { - List _coins = [...Coin.values]; + List _coins = [...SupportedCoins.cryptocurrencies]; @override void initState() { _coins = _coins.toList(); - _coins.remove(Coin.firoTestNet); + _coins.removeWhere( + (e) => e.identifier == Firo(CryptoCurrencyNetwork.test).identifier, + ); super.initState(); } @@ -66,12 +70,17 @@ class _ChooseCoinViewState extends ConsumerState { @override Widget build(BuildContext context) { - bool showTestNet = ref.watch( + final bool showTestNet = ref.watch( prefsChangeNotifierProvider.select((value) => value.showTestNetCoins), ); - List coins = - showTestNet ? _coins : _coins.where((e) => !e.isTestNet).toList(); + final List coins = showTestNet + ? _coins + : _coins + .where( + (e) => e.network == CryptoCurrencyNetwork.main, + ) + .toList(); return Background( child: Scaffold( diff --git a/lib/widgets/crypto_notifications.dart b/lib/widgets/crypto_notifications.dart index b570ae4f9..52c5b3fc5 100644 --- a/lib/widgets/crypto_notifications.dart +++ b/lib/widgets/crypto_notifications.dart @@ -16,7 +16,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/services/notifications_api.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; abstract class CryptoNotificationsEventBus { static final instance = EventBus(); @@ -28,7 +28,7 @@ class CryptoNotificationEvent { final String walletName; final DateTime date; final bool shouldWatchForUpdates; - final Coin coin; + final CryptoCurrency coin; final String? txid; final int? confirmations; final int? requiredConfirmations; @@ -52,9 +52,9 @@ class CryptoNotificationEvent { class CryptoNotifications extends ConsumerStatefulWidget { const CryptoNotifications({ - Key? key, + super.key, required this.child, - }) : super(key: key); + }); final Widget child; @@ -74,7 +74,7 @@ class _CryptoNotificationsState extends ConsumerState { iconAssetName: ref.read(coinIconProvider(event.coin)), date: event.date, shouldWatchForUpdates: event.shouldWatchForUpdates, - coinName: event.coin.name, + coinName: event.coin.identifier, txid: event.txid, confirmations: event.confirmations, requiredConfirmations: event.requiredConfirmations, diff --git a/lib/widgets/desktop/desktop_fee_dialog.dart b/lib/widgets/desktop/desktop_fee_dialog.dart index a4a5a9abc..237c2bf8d 100644 --- a/lib/widgets/desktop/desktop_fee_dialog.dart +++ b/lib/widgets/desktop/desktop_fee_dialog.dart @@ -9,10 +9,13 @@ import 'package:stackwallet/providers/wallet/public_private_balance_state_provid import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; import 'package:stackwallet/widgets/animated_text.dart'; @@ -22,10 +25,10 @@ import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; class DesktopFeeDialog extends ConsumerStatefulWidget { const DesktopFeeDialog({ - Key? key, + super.key, required this.walletId, this.isToken = false, - }) : super(key: key); + }); final String walletId; final bool isToken; @@ -44,24 +47,28 @@ class _DesktopFeeDialogState extends ConsumerState { required Amount amount, required FeeRateType feeRateType, required int feeRate, - required Coin coin, + required CryptoCurrency coin, }) async { switch (feeRateType) { case FeeRateType.fast: if (ref - .read(widget.isToken - ? tokenFeeSessionCacheProvider - : feeSheetSessionCacheProvider) + .read( + widget.isToken + ? tokenFeeSessionCacheProvider + : feeSheetSessionCacheProvider, + ) .fast[amount] == null) { if (widget.isToken == false) { final wallet = ref.read(pWallets).getWallet(walletId); - if (coin == Coin.monero || coin == Coin.wownero) { + if (coin is Monero || coin is Wownero) { final fee = await wallet.estimateFeeFor( - amount, MoneroTransactionPriority.fast.raw!); + amount, + MoneroTransactionPriority.fast.raw!, + ); ref.read(feeSheetSessionCacheProvider).fast[amount] = fee; - } else if (coin == Coin.firo || coin == Coin.firoTestNet) { + } else if (coin is Firo) { final Amount fee; switch (ref.read(publicPrivateBalanceStateProvider.state).state) { case FiroType.spark: @@ -86,26 +93,32 @@ class _DesktopFeeDialogState extends ConsumerState { } } return ref - .read(widget.isToken - ? tokenFeeSessionCacheProvider - : feeSheetSessionCacheProvider) + .read( + widget.isToken + ? tokenFeeSessionCacheProvider + : feeSheetSessionCacheProvider, + ) .fast[amount]!; case FeeRateType.average: if (ref - .read(widget.isToken - ? tokenFeeSessionCacheProvider - : feeSheetSessionCacheProvider) + .read( + widget.isToken + ? tokenFeeSessionCacheProvider + : feeSheetSessionCacheProvider, + ) .average[amount] == null) { if (widget.isToken == false) { final wallet = ref.read(pWallets).getWallet(walletId); - if (coin == Coin.monero || coin == Coin.wownero) { + if (coin is Monero || coin is Wownero) { final fee = await wallet.estimateFeeFor( - amount, MoneroTransactionPriority.regular.raw!); + amount, + MoneroTransactionPriority.regular.raw!, + ); ref.read(feeSheetSessionCacheProvider).average[amount] = fee; - } else if (coin == Coin.firo || coin == Coin.firoTestNet) { + } else if (coin is Firo) { final Amount fee; switch (ref.read(publicPrivateBalanceStateProvider.state).state) { case FiroType.spark: @@ -130,26 +143,32 @@ class _DesktopFeeDialogState extends ConsumerState { } } return ref - .read(widget.isToken - ? tokenFeeSessionCacheProvider - : feeSheetSessionCacheProvider) + .read( + widget.isToken + ? tokenFeeSessionCacheProvider + : feeSheetSessionCacheProvider, + ) .average[amount]!; case FeeRateType.slow: if (ref - .read(widget.isToken - ? tokenFeeSessionCacheProvider - : feeSheetSessionCacheProvider) + .read( + widget.isToken + ? tokenFeeSessionCacheProvider + : feeSheetSessionCacheProvider, + ) .slow[amount] == null) { if (widget.isToken == false) { final wallet = ref.read(pWallets).getWallet(walletId); - if (coin == Coin.monero || coin == Coin.wownero) { + if (coin is Monero || coin is Wownero) { final fee = await wallet.estimateFeeFor( - amount, MoneroTransactionPriority.slow.raw!); + amount, + MoneroTransactionPriority.slow.raw!, + ); ref.read(feeSheetSessionCacheProvider).slow[amount] = fee; - } else if (coin == Coin.firo || coin == Coin.firoTestNet) { + } else if (coin is Firo) { final Amount fee; switch (ref.read(publicPrivateBalanceStateProvider.state).state) { case FiroType.spark: @@ -174,9 +193,11 @@ class _DesktopFeeDialogState extends ConsumerState { } } return ref - .read(widget.isToken - ? tokenFeeSessionCacheProvider - : feeSheetSessionCacheProvider) + .read( + widget.isToken + ? tokenFeeSessionCacheProvider + : feeSheetSessionCacheProvider, + ) .slow[amount]!; default: return Amount.zero; @@ -250,14 +271,14 @@ class _DesktopFeeDialogState extends ConsumerState { class DesktopFeeItem extends ConsumerStatefulWidget { const DesktopFeeItem({ - Key? key, + super.key, required this.feeObject, required this.feeRateType, required this.walletId, required this.feeFor, required this.isSelected, this.isButton = true, - }) : super(key: key); + }); final FeeObject? feeObject; final FeeRateType feeRateType; @@ -266,7 +287,7 @@ class DesktopFeeItem extends ConsumerStatefulWidget { required Amount amount, required FeeRateType feeRateType, required int feeRate, - required Coin coin, + required CryptoCurrency coin, }) feeFor; final bool isSelected; final bool isButton; @@ -287,7 +308,9 @@ class _DesktopFeeItemState extends ConsumerState { ]; String estimatedTimeToBeIncludedInNextBlock( - int targetBlockTime, int estimatedNumberOfBlocks) { + int targetBlockTime, + int estimatedNumberOfBlocks, + ) { int time = targetBlockTime * estimatedNumberOfBlocks; int hours = (time / 3600).floor(); @@ -338,14 +361,14 @@ class _DesktopFeeItemState extends ConsumerState { (value) => value.getWallet(widget.walletId).info.coin, ), ); - if ((coin == Coin.firo || coin == Coin.firoTestNet) && + if ((coin is Firo) && ref.watch(publicPrivateBalanceStateProvider.state).state == "Private") { return Text( "~${ref.watch(pAmountFormatter(coin)).format( Amount( rawValue: BigInt.parse("3794"), - fractionDigits: coin.decimals, + fractionDigits: coin.fractionDigits, ), indicatePrecisionLoss: false, )}", @@ -378,7 +401,8 @@ class _DesktopFeeItemState extends ConsumerState { } final wallet = ref.watch( - pWallets.select((value) => value.getWallet(widget.walletId))); + pWallets.select((value) => value.getWallet(widget.walletId)), + ); if (widget.feeObject == null) { return AnimatedText( @@ -410,10 +434,10 @@ class _DesktopFeeItemState extends ConsumerState { indicatePrecisionLoss: false, )})"; - timeString = wallet.info.coin == Coin.ethereum + timeString = wallet.info.coin is Ethereum ? "" : estimatedTimeToBeIncludedInNextBlock( - Constants.targetBlockTimeInSeconds(wallet.info.coin), + wallet.info.coin.targetBlockTimeSeconds, widget.feeRateType == FeeRateType.fast ? widget.feeObject!.numberOfBlocksFast : widget.feeRateType == FeeRateType.slow diff --git a/lib/widgets/dialogs/tor_warning_dialog.dart b/lib/widgets/dialogs/tor_warning_dialog.dart index d4bd7dc81..7f4bd7cae 100644 --- a/lib/widgets/dialogs/tor_warning_dialog.dart +++ b/lib/widgets/dialogs/tor_warning_dialog.dart @@ -1,20 +1,20 @@ import 'package:flutter/cupertino.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; import 'package:stackwallet/widgets/dialogs/basic_dialog.dart'; class TorWarningDialog extends StatelessWidget { - final Coin coin; + final CryptoCurrency coin; final VoidCallback? onContinue; final VoidCallback? onCancel; - TorWarningDialog({ - Key? key, + const TorWarningDialog({ + super.key, required this.coin, this.onContinue, this.onCancel, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/fee_slider.dart b/lib/widgets/fee_slider.dart index 64e3af12b..b2cdc87e6 100644 --- a/lib/widgets/fee_slider.dart +++ b/lib/widgets/fee_slider.dart @@ -1,8 +1,9 @@ import 'dart:math'; import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class FeeSlider extends StatefulWidget { const FeeSlider({ @@ -12,7 +13,7 @@ class FeeSlider extends StatefulWidget { this.showWU = false, }); - final Coin coin; + final CryptoCurrency coin; final bool showWU; final void Function(int) onSatVByteChanged; @@ -51,12 +52,10 @@ class _FeeSliderState extends State { setState(() { sliderValue = value; final number = pow(sliderValue * (max - min) + min, 4).toDouble(); - switch (widget.coin) { - case Coin.dogecoin: - case Coin.dogecoinTestNet: - rate = (number * 1000).toInt(); - default: - rate = number.toInt(); + if (widget.coin is Dogecoin) { + rate = (number * 1000).toInt(); + } else { + rate = number.toInt(); } }); widget.onSatVByteChanged(rate); diff --git a/lib/widgets/icon_widgets/eth_token_icon.dart b/lib/widgets/icon_widgets/eth_token_icon.dart index dbc2d6794..0cd730690 100644 --- a/lib/widgets/icon_widgets/eth_token_icon.dart +++ b/lib/widgets/icon_widgets/eth_token_icon.dart @@ -15,14 +15,15 @@ import 'package:isar/isar.dart'; import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class EthTokenIcon extends ConsumerStatefulWidget { const EthTokenIcon({ - Key? key, + super.key, required this.contractAddress, this.size = 22, - }) : super(key: key); + }); final String contractAddress; final double size; @@ -49,7 +50,7 @@ class _EthTokenIconState extends ConsumerState { Widget build(BuildContext context) { if (imageUrl == null || imageUrl!.isEmpty) { return SvgPicture.asset( - ref.watch(coinIconProvider(Coin.ethereum)), + ref.watch(coinIconProvider(Ethereum(CryptoCurrencyNetwork.main))), width: widget.size, height: widget.size, ); diff --git a/lib/widgets/managed_favorite.dart b/lib/widgets/managed_favorite.dart index b5266ea2a..5ab0800d5 100644 --- a/lib/widgets/managed_favorite.dart +++ b/lib/widgets/managed_favorite.dart @@ -16,21 +16,22 @@ import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/providers/db/main_db_provider.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; +import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/widgets/custom_buttons/favorite_toggle.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; class ManagedFavorite extends ConsumerStatefulWidget { const ManagedFavorite({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -50,7 +51,7 @@ class _ManagedFavoriteCardState extends ConsumerState { final coin = ref.watch(pWalletCoin(walletId)); Amount total = ref.watch(pWalletBalance(walletId)).total; - if (coin == Coin.firo || coin == Coin.firoTestNet) { + if (coin is Firo) { final balancePrivate = ref.watch(pWalletBalanceSecondary(walletId)).total + ref.watch(pWalletBalanceTertiary(walletId)).total; @@ -85,10 +86,7 @@ class _ManagedFavoriteCardState extends ConsumerState { children: [ Container( decoration: BoxDecoration( - color: Theme.of(context) - .extension()! - .colorForCoin(coin) - .withOpacity(0.5), + color: ref.watch(pCoinColor(coin)).withOpacity(0.5), borderRadius: BorderRadius.circular( Constants.size.circularBorderRadius, ), @@ -141,7 +139,7 @@ class _ManagedFavoriteCardState extends ConsumerState { .extension()! .buttonTextBorderless, ), - ) + ), ], ), ), diff --git a/lib/widgets/node_card.dart b/lib/widgets/node_card.dart index a6ac18302..65bf02fb4 100644 --- a/lib/widgets/node_card.dart +++ b/lib/widgets/node_card.dart @@ -13,29 +13,21 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:solana/solana.dart'; -import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart'; import 'package:stackwallet/providers/global/active_wallet_provider.dart'; +import 'package:stackwallet/providers/global/secure_store_provider.dart'; import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/connection_check/electrum_connection_check.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/test_epic_box_connection.dart'; -import 'package:stackwallet/utilities/test_eth_node_connection.dart'; -import 'package:stackwallet/utilities/test_monero_node_connection.dart'; -import 'package:stackwallet/utilities/test_stellar_node_connection.dart'; +import 'package:stackwallet/utilities/test_node_connection.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/api/tezos/tezos_rpc_api.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; import 'package:stackwallet/widgets/expandable.dart'; @@ -45,13 +37,13 @@ import 'package:tuple/tuple.dart'; class NodeCard extends ConsumerStatefulWidget { const NodeCard({ - Key? key, + super.key, required this.nodeId, required this.coin, required this.popBackToRoute, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; final String nodeId; final String popBackToRoute; @@ -97,161 +89,6 @@ class _NodeCardState extends ConsumerState { } } - Future _testConnection( - NodeModel node, - BuildContext context, - WidgetRef ref, - ) async { - bool testPassed = false; - - switch (widget.coin) { - case Coin.epicCash: - try { - testPassed = await testEpicNodeConnection( - NodeFormData() - ..host = node.host - ..useSSL = node.useSSL - ..port = node.port, - ) != - null; - } catch (e, s) { - Logging.instance.log("$e\n$s", level: LogLevel.Warning); - } - break; - - case Coin.monero: - case Coin.wownero: - try { - final uri = Uri.parse(node.host); - if (uri.scheme.startsWith("http")) { - final String path = uri.path.isEmpty ? "/json_rpc" : uri.path; - - String uriString = "${uri.scheme}://${uri.host}:${node.port}$path"; - - final response = await testMoneroNodeConnection( - Uri.parse(uriString), - false, - ); - - if (response.cert != null) { - if (mounted) { - final shouldAllowBadCert = await showBadX509CertificateDialog( - response.cert!, - response.url!, - response.port!, - context, - ); - - if (shouldAllowBadCert) { - final response = await testMoneroNodeConnection( - Uri.parse(uriString), true); - testPassed = response.success; - } - } - } else { - testPassed = response.success; - } - } - } catch (e, s) { - Logging.instance.log("$e\n$s", level: LogLevel.Warning); - } - - break; - - case Coin.bitcoin: - case Coin.litecoin: - case Coin.dogecoin: - case Coin.firo: - case Coin.particl: - case Coin.bitcoinTestNet: - case Coin.firoTestNet: - case Coin.dogecoinTestNet: - case Coin.bitcoincash: - case Coin.litecoinTestNet: - case Coin.namecoin: - case Coin.bitcoincashTestnet: - case Coin.eCash: - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - case Coin.peercoin: - case Coin.peercoinTestNet: - try { - testPassed = await checkElectrumServer( - host: node.host, - port: node.port, - useSSL: node.useSSL, - overridePrefs: ref.read(prefsChangeNotifierProvider), - overrideTorService: ref.read(pTorService), - ); - } catch (_) { - testPassed = false; - } - - break; - - case Coin.ethereum: - try { - testPassed = await testEthNodeConnection(node.host); - } catch (_) { - testPassed = false; - } - break; - - case Coin.nano: - case Coin.banano: - throw UnimplementedError(); - //TODO: check network/node - case Coin.tezos: - try { - testPassed = await TezosRpcAPI.testNetworkConnection( - nodeInfo: (host: node.host, port: node.port), - ); - } catch (_) {} - break; - case Coin.stellar: - case Coin.stellarTestnet: - try { - testPassed = await testStellarNodeConnection(node.host, node.port); - } catch (_) { - testPassed = false; - } - break; - - case Coin.solana: - try { - RpcClient rpcClient; - if (node.host.startsWith("http") || node.host.startsWith("https")) { - rpcClient = RpcClient("${node.host}:${node.port}"); - } else { - rpcClient = RpcClient("http://${node.host}:${node.port}"); - } - await rpcClient.getEpochInfo().then((value) => testPassed = true); - } catch (_) { - testPassed = false; - } - break; - } - - if (testPassed) { - // showFloatingFlushBar( - // type: FlushBarType.success, - // message: "Server ping success", - // context: context, - // ); - } else { - unawaited( - showFloatingFlushBar( - type: FlushBarType.warning, - iconAsset: Assets.svg.circleAlert, - message: "Could not connect to node", - context: context, - ), - ); - } - - return testPassed; - } - @override void initState() { nodeId = widget.nodeId; @@ -260,10 +97,14 @@ class _NodeCardState extends ConsumerState { @override Widget build(BuildContext context) { - final node = ref.watch(nodeServiceChangeNotifierProvider - .select((value) => value.getPrimaryNodeFor(coin: widget.coin))); - final _node = ref.watch(nodeServiceChangeNotifierProvider - .select((value) => value.getNodeById(id: nodeId)))!; + final node = ref.watch( + nodeServiceChangeNotifierProvider + .select((value) => value.getPrimaryNodeFor(currency: widget.coin)), + ); + final _node = ref.watch( + nodeServiceChangeNotifierProvider + .select((value) => value.getNodeById(id: nodeId)), + )!; if (node?.name == _node.name) { _status = "Connected"; @@ -324,21 +165,50 @@ class _NodeCardState extends ConsumerState { text: "Connect", enabled: _status == "Disconnected", onTap: () async { - final canConnect = - await _testConnection(_node, context, ref); - if (!canConnect) { - return; + final nodeFormData = NodeFormData() + ..useSSL = _node.useSSL + ..trusted = _node.trusted + ..name = _node.name + ..host = _node.host + ..login = _node.loginName + ..port = _node.port + ..isFailover = _node.isFailover; + nodeFormData.password = await _node.getPassword( + ref.read(secureStoreProvider), + ); + + if (context.mounted) { + final canConnect = await testNodeConnection( + context: context, + nodeFormData: nodeFormData, + cryptoCurrency: widget.coin, + ref: ref, + ); + + if (!canConnect) { + if (context.mounted) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + iconAsset: Assets.svg.circleAlert, + message: "Could not connect to node", + context: context, + ), + ); + } + return; + } + + await ref + .read(nodeServiceChangeNotifierProvider) + .setPrimaryNodeFor( + coin: widget.coin, + node: _node, + shouldNotifyListeners: true, + ); + + await _notifyWalletsOfUpdatedNode(ref); } - - await ref - .read(nodeServiceChangeNotifierProvider) - .setPrimaryNodeFor( - coin: widget.coin, - node: _node, - shouldNotifyListeners: true, - ); - - await _notifyWalletsOfUpdatedNode(ref); }, ), const SizedBox( diff --git a/lib/widgets/node_options_sheet.dart b/lib/widgets/node_options_sheet.dart index 31bdec456..7002f7fa5 100644 --- a/lib/widgets/node_options_sheet.dart +++ b/lib/widgets/node_options_sheet.dart @@ -11,6 +11,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; +import 'package:flutter_libmonero/wownero/wownero.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:solana/solana.dart'; @@ -26,13 +27,31 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/connection_check/electrum_connection_check.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/test_epic_box_connection.dart'; import 'package:stackwallet/utilities/test_eth_node_connection.dart'; import 'package:stackwallet/utilities/test_monero_node_connection.dart'; import 'package:stackwallet/utilities/text_styles.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/litecoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/namecoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/nano.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/particl.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/peercoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/solana.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:tuple/tuple.dart'; @@ -45,7 +64,7 @@ class NodeOptionsSheet extends ConsumerWidget { }) : super(key: key); final String nodeId; - final Coin coin; + final CryptoCurrency coin; final String popBackToRoute; Future _notifyWalletsOfUpdatedNode(WidgetRef ref) async { @@ -85,8 +104,8 @@ class NodeOptionsSheet extends ConsumerWidget { NodeModel node, BuildContext context, WidgetRef ref) async { bool testPassed = false; - switch (coin) { - case Coin.epicCash: + switch (coin.runtimeType) { + case const (Epiccash): try { testPassed = await testEpicNodeConnection( NodeFormData() @@ -100,14 +119,15 @@ class NodeOptionsSheet extends ConsumerWidget { } break; - case Coin.monero: - case Coin.wownero: + case const (Monero): + case const (Wownero): try { final uri = Uri.parse(node.host); if (uri.scheme.startsWith("http")) { final String path = uri.path.isEmpty ? "/json_rpc" : uri.path; - String uriString = "${uri.scheme}://${uri.host}:${node.port}$path"; + final String uriString = + "${uri.scheme}://${uri.host}:${node.port}$path"; final response = await testMoneroNodeConnection( Uri.parse(uriString), @@ -139,23 +159,16 @@ class NodeOptionsSheet extends ConsumerWidget { break; - case Coin.bitcoin: - case Coin.litecoin: - case Coin.dogecoin: - case Coin.firo: - case Coin.particl: - case Coin.bitcoinTestNet: - case Coin.firoTestNet: - case Coin.dogecoinTestNet: - case Coin.bitcoincash: - case Coin.litecoinTestNet: - case Coin.namecoin: - case Coin.bitcoincashTestnet: - case Coin.eCash: - case Coin.bitcoinFrost: - case Coin.bitcoinFrostTestNet: - case Coin.peercoin: - case Coin.peercoinTestNet: + case const (Bitcoin): + case const (Litecoin): + case const (Dogecoin): + case const (Firo): + case const (Particl): + case const (Bitcoincash): + case const (Namecoin): + case const (Ecash): + case const (BitcoinFrost): + case const (Peercoin): try { testPassed = await checkElectrumServer( host: node.host, @@ -170,7 +183,7 @@ class NodeOptionsSheet extends ConsumerWidget { break; - case Coin.ethereum: + case (Ethereum): try { testPassed = await testEthNodeConnection(node.host); } catch (_) { @@ -178,15 +191,14 @@ class NodeOptionsSheet extends ConsumerWidget { } break; - case Coin.nano: - case Coin.banano: - case Coin.tezos: - case Coin.stellar: - case Coin.stellarTestnet: + case const (Nano): + case const (Banano): + case const (Tezos): + case const (Stellar): throw UnimplementedError(); //TODO: check network/node - case Coin.solana: + case const (Solana): try { RpcClient rpcClient; if (node.host.startsWith("http") || node.host.startsWith("https")) { @@ -227,7 +239,7 @@ class NodeOptionsSheet extends ConsumerWidget { final status = ref .watch(nodeServiceChangeNotifierProvider - .select((value) => value.getPrimaryNodeFor(coin: coin))) + .select((value) => value.getPrimaryNodeFor(currency: coin))) ?.id != nodeId ? "Disconnected" diff --git a/lib/widgets/transaction_card.dart b/lib/widgets/transaction_card.dart index 6f3995002..30ab94579 100644 --- a/lib/widgets/transaction_card.dart +++ b/lib/widgets/transaction_card.dart @@ -22,10 +22,12 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; import 'package:tuple/tuple.dart'; @@ -49,16 +51,16 @@ class _TransactionCardState extends ConsumerState { late final bool isTokenTx; late final String prefix; late final String unit; - late final Coin coin; + late final CryptoCurrency coin; late final EthContract? tokenContract; late final int minConfirms; String whatIsIt( TransactionType type, - Coin coin, + CryptoCurrency coin, int currentHeight, ) { - if (coin == Coin.epicCash && _transaction.slateId == null) { + if (coin is Epiccash && _transaction.slateId == null) { return "Restored Funds"; } @@ -169,7 +171,7 @@ class _TransactionCardState extends ConsumerState { ), ), onPressed: () async { - if (coin == Coin.epicCash && _transaction.slateId == null) { + if (coin is Epiccash && _transaction.slateId == null) { unawaited(showFloatingFlushBar( context: context, message: @@ -230,7 +232,7 @@ class _TransactionCardState extends ConsumerState { fit: BoxFit.scaleDown, child: Text( _transaction.isCancelled - ? coin == Coin.ethereum + ? coin is Ethereum ? "Failed" : "Cancelled" : whatIsIt( diff --git a/lib/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart b/lib/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart index 1da53d402..2424f57a8 100644 --- a/lib/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart +++ b/lib/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart @@ -18,19 +18,19 @@ import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; import 'package:stackwallet/services/exchange/change_now/change_now_exchange.dart'; import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; +import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class WalletInfoCoinIcon extends ConsumerWidget { const WalletInfoCoinIcon({ - Key? key, + super.key, required this.coin, this.size = 32, this.contractAddress, - }) : super(key: key); + }); - final Coin coin; + final CryptoCurrency coin; final String? contractAddress; final double size; @@ -55,10 +55,7 @@ class WalletInfoCoinIcon extends ConsumerWidget { width: size, height: size, decoration: BoxDecoration( - color: Theme.of(context) - .extension()! - .colorForCoin(coin) - .withOpacity(0.4), + color: ref.watch(pCoinColor(coin)).withOpacity(0.4), borderRadius: BorderRadius.circular( Constants.size.circularBorderRadius, ), diff --git a/test/address_utils_test.dart b/test/address_utils_test.dart index f1dcf1260..81bafbd9d 100644 --- a/test/address_utils_test.dart +++ b/test/address_utils_test.dart @@ -1,6 +1,5 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; void main() { const String firoAddress = "a6ESWKz7szru5syLtYAPRhHLdKvMq3Yt1j"; diff --git a/test/cached_electrumx_test.dart b/test/cached_electrumx_test.dart index 46466163b..13c4bd3f9 100644 --- a/test/cached_electrumx_test.dart +++ b/test/cached_electrumx_test.dart @@ -4,7 +4,7 @@ import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart'; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; + import 'package:stackwallet/utilities/prefs.dart'; import 'cached_electrumx_test.mocks.dart'; diff --git a/test/global_events_test.dart b/test/global_events_test.dart index b5bb10a22..b45f08035 100644 --- a/test/global_events_test.dart +++ b/test/global_events_test.dart @@ -4,7 +4,6 @@ import 'package:stackwallet/services/event_bus/events/global/refresh_percent_cha import 'package:stackwallet/services/event_bus/events/global/updated_in_background_event.dart'; import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; void main() { test("NodeConnectionStatusChangedEvent", () async { diff --git a/test/services/node_service_test.dart b/test/services/node_service_test.dart index 2bd889b6e..57eaebcd6 100644 --- a/test/services/node_service_test.dart +++ b/test/services/node_service_test.dart @@ -5,7 +5,7 @@ import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; + import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; void main() { diff --git a/test/utilities/amount/amount_unit_test.dart b/test/utilities/amount/amount_unit_test.dart index 7591473b5..e3edee615 100644 --- a/test/utilities/amount/amount_unit_test.dart +++ b/test/utilities/amount/amount_unit_test.dart @@ -2,7 +2,6 @@ import 'package:decimal/decimal.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; void main() { test("displayAmount BTC", () { diff --git a/test/widget_tests/address_book_card_test.dart b/test/widget_tests/address_book_card_test.dart index 1d38e6c95..581d56529 100644 --- a/test/widget_tests/address_book_card_test.dart +++ b/test/widget_tests/address_book_card_test.dart @@ -11,7 +11,7 @@ import 'package:stackwallet/pages/address_book_views/subviews/contact_popup.dart import 'package:stackwallet/providers/global/address_book_service_provider.dart'; import 'package:stackwallet/services/address_book_service.dart'; import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; + import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; diff --git a/test/widget_tests/node_card_test.dart b/test/widget_tests/node_card_test.dart index b8e126696..faa1361f1 100644 --- a/test/widget_tests/node_card_test.dart +++ b/test/widget_tests/node_card_test.dart @@ -9,7 +9,7 @@ import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; + import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/widgets/node_card.dart'; import 'package:stackwallet/widgets/node_options_sheet.dart'; diff --git a/test/widget_tests/node_options_sheet_test.dart b/test/widget_tests/node_options_sheet_test.dart index a0d5690d3..3379742ea 100644 --- a/test/widget_tests/node_options_sheet_test.dart +++ b/test/widget_tests/node_options_sheet_test.dart @@ -11,7 +11,7 @@ import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/services/wallets.dart'; import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/coin_enum.dart'; + import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/widgets/node_options_sheet.dart'; From 91f71ce760ff6543677a9b98a04d1712c15c7233 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 15 May 2024 15:27:30 -0600 Subject: [PATCH 063/318] build runner mocks updated --- test/cached_electrumx_test.mocks.dart | 20 +- .../pages/send_view/send_view_test.mocks.dart | 110 ++++---- .../exchange/exchange_view_test.mocks.dart | 16 +- .../lockscreen_view_screen_test.mocks.dart | 17 +- .../create_pin_view_screen_test.mocks.dart | 17 +- ...restore_wallet_view_screen_test.mocks.dart | 17 +- ...dd_custom_node_view_screen_test.mocks.dart | 17 +- .../node_details_view_screen_test.mocks.dart | 17 +- ...twork_settings_view_screen_test.mocks.dart | 17 +- ...allet_settings_view_screen_test.mocks.dart | 29 +- .../bitcoin/bitcoin_wallet_test.mocks.dart | 31 +-- .../bitcoincash_wallet_test.mocks.dart | 31 +-- .../dogecoin/dogecoin_wallet_test.mocks.dart | 31 +-- .../namecoin/namecoin_wallet_test.mocks.dart | 31 +-- .../particl/particl_wallet_test.mocks.dart | 31 +-- .../managed_favorite_test.mocks.dart | 80 +++--- test/widget_tests/node_card_test.mocks.dart | 17 +- .../node_options_sheet_test.mocks.dart | 88 ++++--- .../transaction_card_test.mocks.dart | 248 +++++++++--------- ...et_info_row_balance_future_test.mocks.dart | 21 +- .../wallet_info_row_test.mocks.dart | 21 +- 21 files changed, 473 insertions(+), 434 deletions(-) diff --git a/test/cached_electrumx_test.mocks.dart b/test/cached_electrumx_test.mocks.dart index cb1317096..b00b89db4 100644 --- a/test/cached_electrumx_test.mocks.dart +++ b/test/cached_electrumx_test.mocks.dart @@ -4,14 +4,13 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i6; -import 'dart:ui' as _i12; +import 'dart:ui' as _i11; import 'package:decimal/decimal.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i5; import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i10; import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i9; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i11; import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i8; import 'package:stackwallet/utilities/prefs.dart' as _i7; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' @@ -933,7 +932,7 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { returnValueForMissingStub: _i6.Future.value(), ) as _i6.Future); @override - _i10.AmountUnit amountUnit(_i11.Coin? coin) => (super.noSuchMethod( + _i10.AmountUnit amountUnit(_i2.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #amountUnit, [coin], @@ -942,7 +941,7 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { ) as _i10.AmountUnit); @override void updateAmountUnit({ - required _i11.Coin? coin, + required _i2.CryptoCurrency? coin, required _i10.AmountUnit? amountUnit, }) => super.noSuchMethod( @@ -957,7 +956,7 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { returnValueForMissingStub: null, ); @override - int maxDecimals(_i11.Coin? coin) => (super.noSuchMethod( + int maxDecimals(_i2.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #maxDecimals, [coin], @@ -966,7 +965,7 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { ) as int); @override void updateMaxDecimals({ - required _i11.Coin? coin, + required _i2.CryptoCurrency? coin, required int? maxDecimals, }) => super.noSuchMethod( @@ -981,7 +980,8 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { returnValueForMissingStub: null, ); @override - _i4.FusionInfo getFusionServerInfo(_i11.Coin? coin) => (super.noSuchMethod( + _i4.FusionInfo getFusionServerInfo(_i2.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getFusionServerInfo, [coin], @@ -996,7 +996,7 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { ) as _i4.FusionInfo); @override void setFusionServerInfo( - _i11.Coin? coin, + _i2.CryptoCurrency? coin, _i4.FusionInfo? fusionServerInfo, ) => super.noSuchMethod( @@ -1010,7 +1010,7 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { returnValueForMissingStub: null, ); @override - void addListener(_i12.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i11.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -1018,7 +1018,7 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { returnValueForMissingStub: null, ); @override - void removeListener(_i12.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i11.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/pages/send_view/send_view_test.mocks.dart b/test/pages/send_view/send_view_test.mocks.dart index fba574b15..bf71bbcf2 100644 --- a/test/pages/send_view/send_view_test.mocks.dart +++ b/test/pages/send_view/send_view_test.mocks.dart @@ -4,22 +4,21 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i10; -import 'dart:typed_data' as _i19; -import 'dart:ui' as _i15; +import 'dart:typed_data' as _i18; +import 'dart:ui' as _i14; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/db/isar/main_db.dart' as _i3; -import 'package:stackwallet/models/isar/stack_theme.dart' as _i18; +import 'package:stackwallet/models/isar/stack_theme.dart' as _i17; import 'package:stackwallet/models/node_model.dart' as _i13; import 'package:stackwallet/networking/http.dart' as _i7; -import 'package:stackwallet/services/locale_service.dart' as _i16; +import 'package:stackwallet/services/locale_service.dart' as _i15; import 'package:stackwallet/services/node_service.dart' as _i2; import 'package:stackwallet/services/wallets.dart' as _i9; -import 'package:stackwallet/themes/theme_service.dart' as _i17; -import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i22; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i21; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i14; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i20; +import 'package:stackwallet/themes/theme_service.dart' as _i16; +import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i21; +import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i20; +import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i19; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i6; import 'package:stackwallet/utilities/prefs.dart' as _i12; @@ -265,7 +264,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { ) as _i10.Future); @override _i10.Future setPrimaryNodeFor({ - required _i14.Coin? coin, + required _i4.CryptoCurrency? coin, required _i13.NodeModel? node, bool? shouldNotifyListeners = false, }) => @@ -283,14 +282,15 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - _i13.NodeModel? getPrimaryNodeFor({required _i14.Coin? coin}) => + _i13.NodeModel? getPrimaryNodeFor({required _i4.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], - {#coin: coin}, + {#currency: currency}, )) as _i13.NodeModel?); @override - List<_i13.NodeModel> getNodesFor(_i14.Coin? coin) => (super.noSuchMethod( + List<_i13.NodeModel> getNodesFor(_i4.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], @@ -305,12 +305,13 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { {#id: id}, )) as _i13.NodeModel?); @override - List<_i13.NodeModel> failoverNodesFor({required _i14.Coin? coin}) => + List<_i13.NodeModel> failoverNodesFor( + {required _i4.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( #failoverNodesFor, [], - {#coin: coin}, + {#currency: currency}, ), returnValue: <_i13.NodeModel>[], ) as List<_i13.NodeModel>); @@ -394,7 +395,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - void addListener(_i15.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i14.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -402,7 +403,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: null, ); @override - void removeListener(_i15.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i14.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -430,7 +431,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { /// A class which mocks [LocaleService]. /// /// See the documentation for Mockito's code generation for more information. -class MockLocaleService extends _i1.Mock implements _i16.LocaleService { +class MockLocaleService extends _i1.Mock implements _i15.LocaleService { MockLocaleService() { _i1.throwOnMissingStub(this); } @@ -456,7 +457,7 @@ class MockLocaleService extends _i1.Mock implements _i16.LocaleService { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - void addListener(_i15.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i14.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -464,7 +465,7 @@ class MockLocaleService extends _i1.Mock implements _i16.LocaleService { returnValueForMissingStub: null, ); @override - void removeListener(_i15.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i14.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -492,7 +493,7 @@ class MockLocaleService extends _i1.Mock implements _i16.LocaleService { /// A class which mocks [ThemeService]. /// /// See the documentation for Mockito's code generation for more information. -class MockThemeService extends _i1.Mock implements _i17.ThemeService { +class MockThemeService extends _i1.Mock implements _i16.ThemeService { MockThemeService() { _i1.throwOnMissingStub(this); } @@ -522,10 +523,10 @@ class MockThemeService extends _i1.Mock implements _i17.ThemeService { ), ) as _i3.MainDB); @override - List<_i18.StackTheme> get installedThemes => (super.noSuchMethod( + List<_i17.StackTheme> get installedThemes => (super.noSuchMethod( Invocation.getter(#installedThemes), - returnValue: <_i18.StackTheme>[], - ) as List<_i18.StackTheme>); + returnValue: <_i17.StackTheme>[], + ) as List<_i17.StackTheme>); @override void init(_i3.MainDB? db) => super.noSuchMethod( Invocation.method( @@ -535,7 +536,7 @@ class MockThemeService extends _i1.Mock implements _i17.ThemeService { returnValueForMissingStub: null, ); @override - _i10.Future install({required _i19.Uint8List? themeArchiveData}) => + _i10.Future install({required _i18.Uint8List? themeArchiveData}) => (super.noSuchMethod( Invocation.method( #install, @@ -575,33 +576,33 @@ class MockThemeService extends _i1.Mock implements _i17.ThemeService { returnValue: _i10.Future.value(false), ) as _i10.Future); @override - _i10.Future> fetchThemes() => + _i10.Future> fetchThemes() => (super.noSuchMethod( Invocation.method( #fetchThemes, [], ), - returnValue: _i10.Future>.value( - <_i17.StackThemeMetaData>[]), - ) as _i10.Future>); + returnValue: _i10.Future>.value( + <_i16.StackThemeMetaData>[]), + ) as _i10.Future>); @override - _i10.Future<_i19.Uint8List> fetchTheme( - {required _i17.StackThemeMetaData? themeMetaData}) => + _i10.Future<_i18.Uint8List> fetchTheme( + {required _i16.StackThemeMetaData? themeMetaData}) => (super.noSuchMethod( Invocation.method( #fetchTheme, [], {#themeMetaData: themeMetaData}, ), - returnValue: _i10.Future<_i19.Uint8List>.value(_i19.Uint8List(0)), - ) as _i10.Future<_i19.Uint8List>); + returnValue: _i10.Future<_i18.Uint8List>.value(_i18.Uint8List(0)), + ) as _i10.Future<_i18.Uint8List>); @override - _i18.StackTheme? getTheme({required String? themeId}) => + _i17.StackTheme? getTheme({required String? themeId}) => (super.noSuchMethod(Invocation.method( #getTheme, [], {#themeId: themeId}, - )) as _i18.StackTheme?); + )) as _i17.StackTheme?); } /// A class which mocks [Prefs]. @@ -663,12 +664,12 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - _i20.SyncingType get syncType => (super.noSuchMethod( + _i19.SyncingType get syncType => (super.noSuchMethod( Invocation.getter(#syncType), - returnValue: _i20.SyncingType.currentWalletOnly, - ) as _i20.SyncingType); + returnValue: _i19.SyncingType.currentWalletOnly, + ) as _i19.SyncingType); @override - set syncType(_i20.SyncingType? syncType) => super.noSuchMethod( + set syncType(_i19.SyncingType? syncType) => super.noSuchMethod( Invocation.setter( #syncType, syncType, @@ -827,12 +828,12 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - _i21.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( + _i20.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( Invocation.getter(#backupFrequencyType), - returnValue: _i21.BackupFrequencyType.everyTenMinutes, - ) as _i21.BackupFrequencyType); + returnValue: _i20.BackupFrequencyType.everyTenMinutes, + ) as _i20.BackupFrequencyType); @override - set backupFrequencyType(_i21.BackupFrequencyType? backupFrequencyType) => + set backupFrequencyType(_i20.BackupFrequencyType? backupFrequencyType) => super.noSuchMethod( Invocation.setter( #backupFrequencyType, @@ -1027,17 +1028,17 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - _i22.AmountUnit amountUnit(_i14.Coin? coin) => (super.noSuchMethod( + _i21.AmountUnit amountUnit(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #amountUnit, [coin], ), - returnValue: _i22.AmountUnit.normal, - ) as _i22.AmountUnit); + returnValue: _i21.AmountUnit.normal, + ) as _i21.AmountUnit); @override void updateAmountUnit({ - required _i14.Coin? coin, - required _i22.AmountUnit? amountUnit, + required _i4.CryptoCurrency? coin, + required _i21.AmountUnit? amountUnit, }) => super.noSuchMethod( Invocation.method( @@ -1051,7 +1052,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - int maxDecimals(_i14.Coin? coin) => (super.noSuchMethod( + int maxDecimals(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #maxDecimals, [coin], @@ -1060,7 +1061,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { ) as int); @override void updateMaxDecimals({ - required _i14.Coin? coin, + required _i4.CryptoCurrency? coin, required int? maxDecimals, }) => super.noSuchMethod( @@ -1075,7 +1076,8 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - _i8.FusionInfo getFusionServerInfo(_i14.Coin? coin) => (super.noSuchMethod( + _i8.FusionInfo getFusionServerInfo(_i4.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getFusionServerInfo, [coin], @@ -1090,7 +1092,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { ) as _i8.FusionInfo); @override void setFusionServerInfo( - _i14.Coin? coin, + _i4.CryptoCurrency? coin, _i8.FusionInfo? fusionServerInfo, ) => super.noSuchMethod( @@ -1104,7 +1106,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - void addListener(_i15.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i14.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -1112,7 +1114,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - void removeListener(_i15.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i14.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/screen_tests/exchange/exchange_view_test.mocks.dart b/test/screen_tests/exchange/exchange_view_test.mocks.dart index 1d97e1d48..2691281c4 100644 --- a/test/screen_tests/exchange/exchange_view_test.mocks.dart +++ b/test/screen_tests/exchange/exchange_view_test.mocks.dart @@ -32,9 +32,10 @@ import 'package:stackwallet/services/trade_notes_service.dart' as _i14; import 'package:stackwallet/services/trade_service.dart' as _i12; import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i9; import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i7; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i10; import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i6; import 'package:stackwallet/utilities/prefs.dart' as _i5; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i10; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart' as _i2; @@ -503,7 +504,7 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { returnValueForMissingStub: _i8.Future.value(), ) as _i8.Future); @override - _i9.AmountUnit amountUnit(_i10.Coin? coin) => (super.noSuchMethod( + _i9.AmountUnit amountUnit(_i10.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #amountUnit, [coin], @@ -512,7 +513,7 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { ) as _i9.AmountUnit); @override void updateAmountUnit({ - required _i10.Coin? coin, + required _i10.CryptoCurrency? coin, required _i9.AmountUnit? amountUnit, }) => super.noSuchMethod( @@ -527,7 +528,7 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { returnValueForMissingStub: null, ); @override - int maxDecimals(_i10.Coin? coin) => (super.noSuchMethod( + int maxDecimals(_i10.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #maxDecimals, [coin], @@ -536,7 +537,7 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { ) as int); @override void updateMaxDecimals({ - required _i10.Coin? coin, + required _i10.CryptoCurrency? coin, required int? maxDecimals, }) => super.noSuchMethod( @@ -551,7 +552,8 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { returnValueForMissingStub: null, ); @override - _i2.FusionInfo getFusionServerInfo(_i10.Coin? coin) => (super.noSuchMethod( + _i2.FusionInfo getFusionServerInfo(_i10.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getFusionServerInfo, [coin], @@ -566,7 +568,7 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { ) as _i2.FusionInfo); @override void setFusionServerInfo( - _i10.Coin? coin, + _i10.CryptoCurrency? coin, _i2.FusionInfo? fusionServerInfo, ) => super.noSuchMethod( diff --git a/test/screen_tests/lockscreen_view_screen_test.mocks.dart b/test/screen_tests/lockscreen_view_screen_test.mocks.dart index 0a4b9c09d..a76f5c498 100644 --- a/test/screen_tests/lockscreen_view_screen_test.mocks.dart +++ b/test/screen_tests/lockscreen_view_screen_test.mocks.dart @@ -10,9 +10,10 @@ import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/models/node_model.dart' as _i7; import 'package:stackwallet/services/node_service.dart' as _i6; import 'package:stackwallet/services/wallets_service.dart' as _i3; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i8; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i2; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i8; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -124,7 +125,7 @@ class MockNodeService extends _i1.Mock implements _i6.NodeService { ) as _i4.Future); @override _i4.Future setPrimaryNodeFor({ - required _i8.Coin? coin, + required _i8.CryptoCurrency? coin, required _i7.NodeModel? node, bool? shouldNotifyListeners = false, }) => @@ -142,14 +143,15 @@ class MockNodeService extends _i1.Mock implements _i6.NodeService { returnValueForMissingStub: _i4.Future.value(), ) as _i4.Future); @override - _i7.NodeModel? getPrimaryNodeFor({required _i8.Coin? coin}) => + _i7.NodeModel? getPrimaryNodeFor({required _i8.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], - {#coin: coin}, + {#currency: currency}, )) as _i7.NodeModel?); @override - List<_i7.NodeModel> getNodesFor(_i8.Coin? coin) => (super.noSuchMethod( + List<_i7.NodeModel> getNodesFor(_i8.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], @@ -164,12 +166,13 @@ class MockNodeService extends _i1.Mock implements _i6.NodeService { {#id: id}, )) as _i7.NodeModel?); @override - List<_i7.NodeModel> failoverNodesFor({required _i8.Coin? coin}) => + List<_i7.NodeModel> failoverNodesFor( + {required _i8.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( #failoverNodesFor, [], - {#coin: coin}, + {#currency: currency}, ), returnValue: <_i7.NodeModel>[], ) as List<_i7.NodeModel>); diff --git a/test/screen_tests/onboarding/create_pin_view_screen_test.mocks.dart b/test/screen_tests/onboarding/create_pin_view_screen_test.mocks.dart index 877fab27b..3f7fd0767 100644 --- a/test/screen_tests/onboarding/create_pin_view_screen_test.mocks.dart +++ b/test/screen_tests/onboarding/create_pin_view_screen_test.mocks.dart @@ -10,9 +10,10 @@ import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/models/node_model.dart' as _i7; import 'package:stackwallet/services/node_service.dart' as _i6; import 'package:stackwallet/services/wallets_service.dart' as _i3; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i8; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i2; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i8; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -124,7 +125,7 @@ class MockNodeService extends _i1.Mock implements _i6.NodeService { ) as _i4.Future); @override _i4.Future setPrimaryNodeFor({ - required _i8.Coin? coin, + required _i8.CryptoCurrency? coin, required _i7.NodeModel? node, bool? shouldNotifyListeners = false, }) => @@ -142,14 +143,15 @@ class MockNodeService extends _i1.Mock implements _i6.NodeService { returnValueForMissingStub: _i4.Future.value(), ) as _i4.Future); @override - _i7.NodeModel? getPrimaryNodeFor({required _i8.Coin? coin}) => + _i7.NodeModel? getPrimaryNodeFor({required _i8.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], - {#coin: coin}, + {#currency: currency}, )) as _i7.NodeModel?); @override - List<_i7.NodeModel> getNodesFor(_i8.Coin? coin) => (super.noSuchMethod( + List<_i7.NodeModel> getNodesFor(_i8.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], @@ -164,12 +166,13 @@ class MockNodeService extends _i1.Mock implements _i6.NodeService { {#id: id}, )) as _i7.NodeModel?); @override - List<_i7.NodeModel> failoverNodesFor({required _i8.Coin? coin}) => + List<_i7.NodeModel> failoverNodesFor( + {required _i8.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( #failoverNodesFor, [], - {#coin: coin}, + {#currency: currency}, ), returnValue: <_i7.NodeModel>[], ) as List<_i7.NodeModel>); diff --git a/test/screen_tests/onboarding/restore_wallet_view_screen_test.mocks.dart b/test/screen_tests/onboarding/restore_wallet_view_screen_test.mocks.dart index b9acc5cfa..58c717a5b 100644 --- a/test/screen_tests/onboarding/restore_wallet_view_screen_test.mocks.dart +++ b/test/screen_tests/onboarding/restore_wallet_view_screen_test.mocks.dart @@ -12,9 +12,10 @@ import 'package:stackwallet/models/node_model.dart' as _i9; import 'package:stackwallet/services/node_service.dart' as _i8; import 'package:stackwallet/services/wallets_service.dart' as _i6; import 'package:stackwallet/utilities/barcode_scanner_interface.dart' as _i4; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i10; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i3; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i10; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -165,7 +166,7 @@ class MockNodeService extends _i1.Mock implements _i8.NodeService { ) as _i5.Future); @override _i5.Future setPrimaryNodeFor({ - required _i10.Coin? coin, + required _i10.CryptoCurrency? coin, required _i9.NodeModel? node, bool? shouldNotifyListeners = false, }) => @@ -183,14 +184,15 @@ class MockNodeService extends _i1.Mock implements _i8.NodeService { returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override - _i9.NodeModel? getPrimaryNodeFor({required _i10.Coin? coin}) => + _i9.NodeModel? getPrimaryNodeFor({required _i10.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], - {#coin: coin}, + {#currency: currency}, )) as _i9.NodeModel?); @override - List<_i9.NodeModel> getNodesFor(_i10.Coin? coin) => (super.noSuchMethod( + List<_i9.NodeModel> getNodesFor(_i10.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], @@ -205,12 +207,13 @@ class MockNodeService extends _i1.Mock implements _i8.NodeService { {#id: id}, )) as _i9.NodeModel?); @override - List<_i9.NodeModel> failoverNodesFor({required _i10.Coin? coin}) => + List<_i9.NodeModel> failoverNodesFor( + {required _i10.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( #failoverNodesFor, [], - {#coin: coin}, + {#currency: currency}, ), returnValue: <_i9.NodeModel>[], ) as List<_i9.NodeModel>); diff --git a/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/add_custom_node_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/add_custom_node_view_screen_test.mocks.dart index 0a7c9e214..ab3c043d3 100644 --- a/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/add_custom_node_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/add_custom_node_view_screen_test.mocks.dart @@ -9,9 +9,10 @@ import 'dart:ui' as _i7; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/models/node_model.dart' as _i4; import 'package:stackwallet/services/node_service.dart' as _i3; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i6; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i2; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i6; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -73,7 +74,7 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService { ) as _i5.Future); @override _i5.Future setPrimaryNodeFor({ - required _i6.Coin? coin, + required _i6.CryptoCurrency? coin, required _i4.NodeModel? node, bool? shouldNotifyListeners = false, }) => @@ -91,14 +92,15 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService { returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override - _i4.NodeModel? getPrimaryNodeFor({required _i6.Coin? coin}) => + _i4.NodeModel? getPrimaryNodeFor({required _i6.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], - {#coin: coin}, + {#currency: currency}, )) as _i4.NodeModel?); @override - List<_i4.NodeModel> getNodesFor(_i6.Coin? coin) => (super.noSuchMethod( + List<_i4.NodeModel> getNodesFor(_i6.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], @@ -113,12 +115,13 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService { {#id: id}, )) as _i4.NodeModel?); @override - List<_i4.NodeModel> failoverNodesFor({required _i6.Coin? coin}) => + List<_i4.NodeModel> failoverNodesFor( + {required _i6.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( #failoverNodesFor, [], - {#coin: coin}, + {#currency: currency}, ), returnValue: <_i4.NodeModel>[], ) as List<_i4.NodeModel>); diff --git a/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/node_details_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/node_details_view_screen_test.mocks.dart index 37ee08673..f203b112b 100644 --- a/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/node_details_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/node_details_view_screen_test.mocks.dart @@ -9,9 +9,10 @@ import 'dart:ui' as _i7; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/models/node_model.dart' as _i4; import 'package:stackwallet/services/node_service.dart' as _i3; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i6; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i2; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i6; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -73,7 +74,7 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService { ) as _i5.Future); @override _i5.Future setPrimaryNodeFor({ - required _i6.Coin? coin, + required _i6.CryptoCurrency? coin, required _i4.NodeModel? node, bool? shouldNotifyListeners = false, }) => @@ -91,14 +92,15 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService { returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override - _i4.NodeModel? getPrimaryNodeFor({required _i6.Coin? coin}) => + _i4.NodeModel? getPrimaryNodeFor({required _i6.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], - {#coin: coin}, + {#currency: currency}, )) as _i4.NodeModel?); @override - List<_i4.NodeModel> getNodesFor(_i6.Coin? coin) => (super.noSuchMethod( + List<_i4.NodeModel> getNodesFor(_i6.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], @@ -113,12 +115,13 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService { {#id: id}, )) as _i4.NodeModel?); @override - List<_i4.NodeModel> failoverNodesFor({required _i6.Coin? coin}) => + List<_i4.NodeModel> failoverNodesFor( + {required _i6.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( #failoverNodesFor, [], - {#coin: coin}, + {#currency: currency}, ), returnValue: <_i4.NodeModel>[], ) as List<_i4.NodeModel>); diff --git a/test/screen_tests/settings_view/settings_subviews/network_settings_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_subviews/network_settings_view_screen_test.mocks.dart index d364e457c..217f88d9f 100644 --- a/test/screen_tests/settings_view/settings_subviews/network_settings_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_subviews/network_settings_view_screen_test.mocks.dart @@ -9,9 +9,10 @@ import 'dart:ui' as _i7; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/models/node_model.dart' as _i4; import 'package:stackwallet/services/node_service.dart' as _i3; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i6; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i2; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i6; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -73,7 +74,7 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService { ) as _i5.Future); @override _i5.Future setPrimaryNodeFor({ - required _i6.Coin? coin, + required _i6.CryptoCurrency? coin, required _i4.NodeModel? node, bool? shouldNotifyListeners = false, }) => @@ -91,14 +92,15 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService { returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override - _i4.NodeModel? getPrimaryNodeFor({required _i6.Coin? coin}) => + _i4.NodeModel? getPrimaryNodeFor({required _i6.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], - {#coin: coin}, + {#currency: currency}, )) as _i4.NodeModel?); @override - List<_i4.NodeModel> getNodesFor(_i6.Coin? coin) => (super.noSuchMethod( + List<_i4.NodeModel> getNodesFor(_i6.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], @@ -113,12 +115,13 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService { {#id: id}, )) as _i4.NodeModel?); @override - List<_i4.NodeModel> failoverNodesFor({required _i6.Coin? coin}) => + List<_i4.NodeModel> failoverNodesFor( + {required _i6.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( #failoverNodesFor, [], - {#coin: coin}, + {#currency: currency}, ), returnValue: <_i4.NodeModel>[], ) as List<_i4.NodeModel>); diff --git a/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart index 5bc43e816..63c207931 100644 --- a/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart @@ -13,7 +13,8 @@ import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i3; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i2; import 'package:stackwallet/services/wallets_service.dart' as _i9; import 'package:stackwallet/utilities/biometrics.dart' as _i8; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i5; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i5; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -58,7 +59,7 @@ class MockCachedElectrumXClient extends _i1.Mock _i4.Future> getAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i5.Coin? coin, + required _i5.CryptoCurrency? cryptoCurrency, }) => (super.noSuchMethod( Invocation.method( @@ -67,7 +68,7 @@ class MockCachedElectrumXClient extends _i1.Mock { #groupId: groupId, #blockhash: blockhash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, }, ), returnValue: @@ -77,7 +78,7 @@ class MockCachedElectrumXClient extends _i1.Mock _i4.Future> getSparkAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i5.Coin? coin, + required _i5.CryptoCurrency? cryptoCurrency, required bool? useOnlyCacheIfNotEmpty, }) => (super.noSuchMethod( @@ -87,7 +88,7 @@ class MockCachedElectrumXClient extends _i1.Mock { #groupId: groupId, #blockhash: blockhash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, #useOnlyCacheIfNotEmpty: useOnlyCacheIfNotEmpty, }, ), @@ -113,7 +114,7 @@ class MockCachedElectrumXClient extends _i1.Mock @override _i4.Future> getTransaction({ required String? txHash, - required _i5.Coin? coin, + required _i5.CryptoCurrency? cryptoCurrency, bool? verbose = true, }) => (super.noSuchMethod( @@ -122,7 +123,7 @@ class MockCachedElectrumXClient extends _i1.Mock [], { #txHash: txHash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, #verbose: verbose, }, ), @@ -131,7 +132,7 @@ class MockCachedElectrumXClient extends _i1.Mock ) as _i4.Future>); @override _i4.Future> getUsedCoinSerials({ - required _i5.Coin? coin, + required _i5.CryptoCurrency? cryptoCurrency, int? startNumber = 0, }) => (super.noSuchMethod( @@ -139,29 +140,31 @@ class MockCachedElectrumXClient extends _i1.Mock #getUsedCoinSerials, [], { - #coin: coin, + #cryptoCurrency: cryptoCurrency, #startNumber: startNumber, }, ), returnValue: _i4.Future>.value([]), ) as _i4.Future>); @override - _i4.Future> getSparkUsedCoinsTags({required _i5.Coin? coin}) => + _i4.Future> getSparkUsedCoinsTags( + {required _i5.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( #getSparkUsedCoinsTags, [], - {#coin: coin}, + {#cryptoCurrency: cryptoCurrency}, ), returnValue: _i4.Future>.value({}), ) as _i4.Future>); @override - _i4.Future clearSharedTransactionCache({required _i5.Coin? coin}) => + _i4.Future clearSharedTransactionCache( + {required _i5.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( #clearSharedTransactionCache, [], - {#coin: coin}, + {#cryptoCurrency: cryptoCurrency}, ), returnValue: _i4.Future.value(), returnValueForMissingStub: _i4.Future.value(), diff --git a/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart b/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart index 999e3f135..efcb9f626 100644 --- a/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart +++ b/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart @@ -10,8 +10,7 @@ import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' - as _i8; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; + as _i7; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' as _i2; @@ -528,7 +527,7 @@ class MockCachedElectrumXClient extends _i1.Mock _i5.Future> getAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, }) => (super.noSuchMethod( Invocation.method( @@ -537,7 +536,7 @@ class MockCachedElectrumXClient extends _i1.Mock { #groupId: groupId, #blockhash: blockhash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, }, ), returnValue: @@ -547,7 +546,7 @@ class MockCachedElectrumXClient extends _i1.Mock _i5.Future> getSparkAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, required bool? useOnlyCacheIfNotEmpty, }) => (super.noSuchMethod( @@ -557,7 +556,7 @@ class MockCachedElectrumXClient extends _i1.Mock { #groupId: groupId, #blockhash: blockhash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, #useOnlyCacheIfNotEmpty: useOnlyCacheIfNotEmpty, }, ), @@ -583,7 +582,7 @@ class MockCachedElectrumXClient extends _i1.Mock @override _i5.Future> getTransaction({ required String? txHash, - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, bool? verbose = true, }) => (super.noSuchMethod( @@ -592,7 +591,7 @@ class MockCachedElectrumXClient extends _i1.Mock [], { #txHash: txHash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, #verbose: verbose, }, ), @@ -601,7 +600,7 @@ class MockCachedElectrumXClient extends _i1.Mock ) as _i5.Future>); @override _i5.Future> getUsedCoinSerials({ - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, int? startNumber = 0, }) => (super.noSuchMethod( @@ -609,29 +608,31 @@ class MockCachedElectrumXClient extends _i1.Mock #getUsedCoinSerials, [], { - #coin: coin, + #cryptoCurrency: cryptoCurrency, #startNumber: startNumber, }, ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); @override - _i5.Future> getSparkUsedCoinsTags({required _i7.Coin? coin}) => + _i5.Future> getSparkUsedCoinsTags( + {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( #getSparkUsedCoinsTags, [], - {#coin: coin}, + {#cryptoCurrency: cryptoCurrency}, ), returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override - _i5.Future clearSharedTransactionCache({required _i7.Coin? coin}) => + _i5.Future clearSharedTransactionCache( + {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( #clearSharedTransactionCache, [], - {#coin: coin}, + {#cryptoCurrency: cryptoCurrency}, ), returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), @@ -642,7 +643,7 @@ class MockCachedElectrumXClient extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. class MockTransactionNotificationTracker extends _i1.Mock - implements _i8.TransactionNotificationTracker { + implements _i7.TransactionNotificationTracker { MockTransactionNotificationTracker() { _i1.throwOnMissingStub(this); } diff --git a/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart b/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart index 9886b150a..7cfef5ab4 100644 --- a/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart +++ b/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart @@ -10,8 +10,7 @@ import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' - as _i8; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; + as _i7; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' as _i2; @@ -528,7 +527,7 @@ class MockCachedElectrumXClient extends _i1.Mock _i5.Future> getAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, }) => (super.noSuchMethod( Invocation.method( @@ -537,7 +536,7 @@ class MockCachedElectrumXClient extends _i1.Mock { #groupId: groupId, #blockhash: blockhash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, }, ), returnValue: @@ -547,7 +546,7 @@ class MockCachedElectrumXClient extends _i1.Mock _i5.Future> getSparkAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, required bool? useOnlyCacheIfNotEmpty, }) => (super.noSuchMethod( @@ -557,7 +556,7 @@ class MockCachedElectrumXClient extends _i1.Mock { #groupId: groupId, #blockhash: blockhash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, #useOnlyCacheIfNotEmpty: useOnlyCacheIfNotEmpty, }, ), @@ -583,7 +582,7 @@ class MockCachedElectrumXClient extends _i1.Mock @override _i5.Future> getTransaction({ required String? txHash, - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, bool? verbose = true, }) => (super.noSuchMethod( @@ -592,7 +591,7 @@ class MockCachedElectrumXClient extends _i1.Mock [], { #txHash: txHash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, #verbose: verbose, }, ), @@ -601,7 +600,7 @@ class MockCachedElectrumXClient extends _i1.Mock ) as _i5.Future>); @override _i5.Future> getUsedCoinSerials({ - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, int? startNumber = 0, }) => (super.noSuchMethod( @@ -609,29 +608,31 @@ class MockCachedElectrumXClient extends _i1.Mock #getUsedCoinSerials, [], { - #coin: coin, + #cryptoCurrency: cryptoCurrency, #startNumber: startNumber, }, ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); @override - _i5.Future> getSparkUsedCoinsTags({required _i7.Coin? coin}) => + _i5.Future> getSparkUsedCoinsTags( + {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( #getSparkUsedCoinsTags, [], - {#coin: coin}, + {#cryptoCurrency: cryptoCurrency}, ), returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override - _i5.Future clearSharedTransactionCache({required _i7.Coin? coin}) => + _i5.Future clearSharedTransactionCache( + {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( #clearSharedTransactionCache, [], - {#coin: coin}, + {#cryptoCurrency: cryptoCurrency}, ), returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), @@ -642,7 +643,7 @@ class MockCachedElectrumXClient extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. class MockTransactionNotificationTracker extends _i1.Mock - implements _i8.TransactionNotificationTracker { + implements _i7.TransactionNotificationTracker { MockTransactionNotificationTracker() { _i1.throwOnMissingStub(this); } diff --git a/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart b/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart index f9cc4af74..eb9afea89 100644 --- a/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart +++ b/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart @@ -10,8 +10,7 @@ import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' - as _i8; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; + as _i7; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' as _i2; @@ -528,7 +527,7 @@ class MockCachedElectrumXClient extends _i1.Mock _i5.Future> getAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, }) => (super.noSuchMethod( Invocation.method( @@ -537,7 +536,7 @@ class MockCachedElectrumXClient extends _i1.Mock { #groupId: groupId, #blockhash: blockhash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, }, ), returnValue: @@ -547,7 +546,7 @@ class MockCachedElectrumXClient extends _i1.Mock _i5.Future> getSparkAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, required bool? useOnlyCacheIfNotEmpty, }) => (super.noSuchMethod( @@ -557,7 +556,7 @@ class MockCachedElectrumXClient extends _i1.Mock { #groupId: groupId, #blockhash: blockhash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, #useOnlyCacheIfNotEmpty: useOnlyCacheIfNotEmpty, }, ), @@ -583,7 +582,7 @@ class MockCachedElectrumXClient extends _i1.Mock @override _i5.Future> getTransaction({ required String? txHash, - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, bool? verbose = true, }) => (super.noSuchMethod( @@ -592,7 +591,7 @@ class MockCachedElectrumXClient extends _i1.Mock [], { #txHash: txHash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, #verbose: verbose, }, ), @@ -601,7 +600,7 @@ class MockCachedElectrumXClient extends _i1.Mock ) as _i5.Future>); @override _i5.Future> getUsedCoinSerials({ - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, int? startNumber = 0, }) => (super.noSuchMethod( @@ -609,29 +608,31 @@ class MockCachedElectrumXClient extends _i1.Mock #getUsedCoinSerials, [], { - #coin: coin, + #cryptoCurrency: cryptoCurrency, #startNumber: startNumber, }, ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); @override - _i5.Future> getSparkUsedCoinsTags({required _i7.Coin? coin}) => + _i5.Future> getSparkUsedCoinsTags( + {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( #getSparkUsedCoinsTags, [], - {#coin: coin}, + {#cryptoCurrency: cryptoCurrency}, ), returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override - _i5.Future clearSharedTransactionCache({required _i7.Coin? coin}) => + _i5.Future clearSharedTransactionCache( + {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( #clearSharedTransactionCache, [], - {#coin: coin}, + {#cryptoCurrency: cryptoCurrency}, ), returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), @@ -642,7 +643,7 @@ class MockCachedElectrumXClient extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. class MockTransactionNotificationTracker extends _i1.Mock - implements _i8.TransactionNotificationTracker { + implements _i7.TransactionNotificationTracker { MockTransactionNotificationTracker() { _i1.throwOnMissingStub(this); } diff --git a/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart b/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart index c5ed61ed5..a8a5fb3c2 100644 --- a/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart +++ b/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart @@ -10,8 +10,7 @@ import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' - as _i8; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; + as _i7; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' as _i2; @@ -528,7 +527,7 @@ class MockCachedElectrumXClient extends _i1.Mock _i5.Future> getAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, }) => (super.noSuchMethod( Invocation.method( @@ -537,7 +536,7 @@ class MockCachedElectrumXClient extends _i1.Mock { #groupId: groupId, #blockhash: blockhash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, }, ), returnValue: @@ -547,7 +546,7 @@ class MockCachedElectrumXClient extends _i1.Mock _i5.Future> getSparkAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, required bool? useOnlyCacheIfNotEmpty, }) => (super.noSuchMethod( @@ -557,7 +556,7 @@ class MockCachedElectrumXClient extends _i1.Mock { #groupId: groupId, #blockhash: blockhash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, #useOnlyCacheIfNotEmpty: useOnlyCacheIfNotEmpty, }, ), @@ -583,7 +582,7 @@ class MockCachedElectrumXClient extends _i1.Mock @override _i5.Future> getTransaction({ required String? txHash, - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, bool? verbose = true, }) => (super.noSuchMethod( @@ -592,7 +591,7 @@ class MockCachedElectrumXClient extends _i1.Mock [], { #txHash: txHash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, #verbose: verbose, }, ), @@ -601,7 +600,7 @@ class MockCachedElectrumXClient extends _i1.Mock ) as _i5.Future>); @override _i5.Future> getUsedCoinSerials({ - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, int? startNumber = 0, }) => (super.noSuchMethod( @@ -609,29 +608,31 @@ class MockCachedElectrumXClient extends _i1.Mock #getUsedCoinSerials, [], { - #coin: coin, + #cryptoCurrency: cryptoCurrency, #startNumber: startNumber, }, ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); @override - _i5.Future> getSparkUsedCoinsTags({required _i7.Coin? coin}) => + _i5.Future> getSparkUsedCoinsTags( + {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( #getSparkUsedCoinsTags, [], - {#coin: coin}, + {#cryptoCurrency: cryptoCurrency}, ), returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override - _i5.Future clearSharedTransactionCache({required _i7.Coin? coin}) => + _i5.Future clearSharedTransactionCache( + {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( #clearSharedTransactionCache, [], - {#coin: coin}, + {#cryptoCurrency: cryptoCurrency}, ), returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), @@ -642,7 +643,7 @@ class MockCachedElectrumXClient extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. class MockTransactionNotificationTracker extends _i1.Mock - implements _i8.TransactionNotificationTracker { + implements _i7.TransactionNotificationTracker { MockTransactionNotificationTracker() { _i1.throwOnMissingStub(this); } diff --git a/test/services/coins/particl/particl_wallet_test.mocks.dart b/test/services/coins/particl/particl_wallet_test.mocks.dart index 587dbe42e..aac19401c 100644 --- a/test/services/coins/particl/particl_wallet_test.mocks.dart +++ b/test/services/coins/particl/particl_wallet_test.mocks.dart @@ -10,8 +10,7 @@ import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' - as _i8; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i7; + as _i7; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' as _i2; @@ -528,7 +527,7 @@ class MockCachedElectrumXClient extends _i1.Mock _i5.Future> getAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, }) => (super.noSuchMethod( Invocation.method( @@ -537,7 +536,7 @@ class MockCachedElectrumXClient extends _i1.Mock { #groupId: groupId, #blockhash: blockhash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, }, ), returnValue: @@ -547,7 +546,7 @@ class MockCachedElectrumXClient extends _i1.Mock _i5.Future> getSparkAnonymitySet({ required String? groupId, String? blockhash = r'', - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, required bool? useOnlyCacheIfNotEmpty, }) => (super.noSuchMethod( @@ -557,7 +556,7 @@ class MockCachedElectrumXClient extends _i1.Mock { #groupId: groupId, #blockhash: blockhash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, #useOnlyCacheIfNotEmpty: useOnlyCacheIfNotEmpty, }, ), @@ -583,7 +582,7 @@ class MockCachedElectrumXClient extends _i1.Mock @override _i5.Future> getTransaction({ required String? txHash, - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, bool? verbose = true, }) => (super.noSuchMethod( @@ -592,7 +591,7 @@ class MockCachedElectrumXClient extends _i1.Mock [], { #txHash: txHash, - #coin: coin, + #cryptoCurrency: cryptoCurrency, #verbose: verbose, }, ), @@ -601,7 +600,7 @@ class MockCachedElectrumXClient extends _i1.Mock ) as _i5.Future>); @override _i5.Future> getUsedCoinSerials({ - required _i7.Coin? coin, + required _i2.CryptoCurrency? cryptoCurrency, int? startNumber = 0, }) => (super.noSuchMethod( @@ -609,29 +608,31 @@ class MockCachedElectrumXClient extends _i1.Mock #getUsedCoinSerials, [], { - #coin: coin, + #cryptoCurrency: cryptoCurrency, #startNumber: startNumber, }, ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); @override - _i5.Future> getSparkUsedCoinsTags({required _i7.Coin? coin}) => + _i5.Future> getSparkUsedCoinsTags( + {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( #getSparkUsedCoinsTags, [], - {#coin: coin}, + {#cryptoCurrency: cryptoCurrency}, ), returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override - _i5.Future clearSharedTransactionCache({required _i7.Coin? coin}) => + _i5.Future clearSharedTransactionCache( + {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( #clearSharedTransactionCache, [], - {#coin: coin}, + {#cryptoCurrency: cryptoCurrency}, ), returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), @@ -642,7 +643,7 @@ class MockCachedElectrumXClient extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. class MockTransactionNotificationTracker extends _i1.Mock - implements _i8.TransactionNotificationTracker { + implements _i7.TransactionNotificationTracker { MockTransactionNotificationTracker() { _i1.throwOnMissingStub(this); } diff --git a/test/widget_tests/managed_favorite_test.mocks.dart b/test/widget_tests/managed_favorite_test.mocks.dart index e78909a96..ce01550b6 100644 --- a/test/widget_tests/managed_favorite_test.mocks.dart +++ b/test/widget_tests/managed_favorite_test.mocks.dart @@ -5,20 +5,19 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i10; import 'dart:typed_data' as _i15; -import 'dart:ui' as _i20; +import 'dart:ui' as _i19; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/db/isar/main_db.dart' as _i3; import 'package:stackwallet/models/isar/stack_theme.dart' as _i14; -import 'package:stackwallet/models/node_model.dart' as _i22; +import 'package:stackwallet/models/node_model.dart' as _i21; import 'package:stackwallet/networking/http.dart' as _i6; -import 'package:stackwallet/services/locale_service.dart' as _i21; +import 'package:stackwallet/services/locale_service.dart' as _i20; import 'package:stackwallet/services/node_service.dart' as _i2; import 'package:stackwallet/services/wallets.dart' as _i9; import 'package:stackwallet/themes/theme_service.dart' as _i13; import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i18; import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i17; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i19; import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i16; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i8; @@ -761,7 +760,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - _i18.AmountUnit amountUnit(_i19.Coin? coin) => (super.noSuchMethod( + _i18.AmountUnit amountUnit(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #amountUnit, [coin], @@ -770,7 +769,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { ) as _i18.AmountUnit); @override void updateAmountUnit({ - required _i19.Coin? coin, + required _i4.CryptoCurrency? coin, required _i18.AmountUnit? amountUnit, }) => super.noSuchMethod( @@ -785,7 +784,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - int maxDecimals(_i19.Coin? coin) => (super.noSuchMethod( + int maxDecimals(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #maxDecimals, [coin], @@ -794,7 +793,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { ) as int); @override void updateMaxDecimals({ - required _i19.Coin? coin, + required _i4.CryptoCurrency? coin, required int? maxDecimals, }) => super.noSuchMethod( @@ -809,7 +808,8 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - _i7.FusionInfo getFusionServerInfo(_i19.Coin? coin) => (super.noSuchMethod( + _i7.FusionInfo getFusionServerInfo(_i4.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getFusionServerInfo, [coin], @@ -824,7 +824,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { ) as _i7.FusionInfo); @override void setFusionServerInfo( - _i19.Coin? coin, + _i4.CryptoCurrency? coin, _i7.FusionInfo? fusionServerInfo, ) => super.noSuchMethod( @@ -838,7 +838,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - void addListener(_i20.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i19.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -846,7 +846,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - void removeListener(_i20.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i19.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -874,7 +874,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { /// A class which mocks [LocaleService]. /// /// See the documentation for Mockito's code generation for more information. -class MockLocaleService extends _i1.Mock implements _i21.LocaleService { +class MockLocaleService extends _i1.Mock implements _i20.LocaleService { MockLocaleService() { _i1.throwOnMissingStub(this); } @@ -900,7 +900,7 @@ class MockLocaleService extends _i1.Mock implements _i21.LocaleService { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - void addListener(_i20.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i19.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -908,7 +908,7 @@ class MockLocaleService extends _i1.Mock implements _i21.LocaleService { returnValueForMissingStub: null, ); @override - void removeListener(_i20.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i19.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -946,15 +946,15 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { ), ) as _i8.SecureStorageInterface); @override - List<_i22.NodeModel> get primaryNodes => (super.noSuchMethod( + List<_i21.NodeModel> get primaryNodes => (super.noSuchMethod( Invocation.getter(#primaryNodes), - returnValue: <_i22.NodeModel>[], - ) as List<_i22.NodeModel>); + returnValue: <_i21.NodeModel>[], + ) as List<_i21.NodeModel>); @override - List<_i22.NodeModel> get nodes => (super.noSuchMethod( + List<_i21.NodeModel> get nodes => (super.noSuchMethod( Invocation.getter(#nodes), - returnValue: <_i22.NodeModel>[], - ) as List<_i22.NodeModel>); + returnValue: <_i21.NodeModel>[], + ) as List<_i21.NodeModel>); @override bool get hasListeners => (super.noSuchMethod( Invocation.getter(#hasListeners), @@ -971,8 +971,8 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { ) as _i10.Future); @override _i10.Future setPrimaryNodeFor({ - required _i19.Coin? coin, - required _i22.NodeModel? node, + required _i4.CryptoCurrency? coin, + required _i21.NodeModel? node, bool? shouldNotifyListeners = false, }) => (super.noSuchMethod( @@ -989,40 +989,42 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - _i22.NodeModel? getPrimaryNodeFor({required _i19.Coin? coin}) => + _i21.NodeModel? getPrimaryNodeFor({required _i4.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], - {#coin: coin}, - )) as _i22.NodeModel?); + {#currency: currency}, + )) as _i21.NodeModel?); @override - List<_i22.NodeModel> getNodesFor(_i19.Coin? coin) => (super.noSuchMethod( + List<_i21.NodeModel> getNodesFor(_i4.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], ), - returnValue: <_i22.NodeModel>[], - ) as List<_i22.NodeModel>); + returnValue: <_i21.NodeModel>[], + ) as List<_i21.NodeModel>); @override - _i22.NodeModel? getNodeById({required String? id}) => + _i21.NodeModel? getNodeById({required String? id}) => (super.noSuchMethod(Invocation.method( #getNodeById, [], {#id: id}, - )) as _i22.NodeModel?); + )) as _i21.NodeModel?); @override - List<_i22.NodeModel> failoverNodesFor({required _i19.Coin? coin}) => + List<_i21.NodeModel> failoverNodesFor( + {required _i4.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( #failoverNodesFor, [], - {#coin: coin}, + {#currency: currency}, ), - returnValue: <_i22.NodeModel>[], - ) as List<_i22.NodeModel>); + returnValue: <_i21.NodeModel>[], + ) as List<_i21.NodeModel>); @override _i10.Future add( - _i22.NodeModel? node, + _i21.NodeModel? node, String? password, bool? shouldNotifyListeners, ) => @@ -1074,7 +1076,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { ) as _i10.Future); @override _i10.Future edit( - _i22.NodeModel? editedNode, + _i21.NodeModel? editedNode, String? password, bool? shouldNotifyListeners, ) => @@ -1100,7 +1102,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - void addListener(_i20.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i19.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -1108,7 +1110,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: null, ); @override - void removeListener(_i20.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i19.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/widget_tests/node_card_test.mocks.dart b/test/widget_tests/node_card_test.mocks.dart index 0b5f8128b..ec802d4e8 100644 --- a/test/widget_tests/node_card_test.mocks.dart +++ b/test/widget_tests/node_card_test.mocks.dart @@ -9,9 +9,10 @@ import 'dart:ui' as _i7; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/models/node_model.dart' as _i4; import 'package:stackwallet/services/node_service.dart' as _i3; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i6; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i2; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' + as _i6; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -77,7 +78,7 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService { ) as _i5.Future); @override _i5.Future setPrimaryNodeFor({ - required _i6.Coin? coin, + required _i6.CryptoCurrency? coin, required _i4.NodeModel? node, bool? shouldNotifyListeners = false, }) => @@ -95,14 +96,15 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService { returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override - _i4.NodeModel? getPrimaryNodeFor({required _i6.Coin? coin}) => + _i4.NodeModel? getPrimaryNodeFor({required _i6.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], - {#coin: coin}, + {#currency: currency}, )) as _i4.NodeModel?); @override - List<_i4.NodeModel> getNodesFor(_i6.Coin? coin) => (super.noSuchMethod( + List<_i4.NodeModel> getNodesFor(_i6.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], @@ -117,12 +119,13 @@ class MockNodeService extends _i1.Mock implements _i3.NodeService { {#id: id}, )) as _i4.NodeModel?); @override - List<_i4.NodeModel> failoverNodesFor({required _i6.Coin? coin}) => + List<_i4.NodeModel> failoverNodesFor( + {required _i6.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( #failoverNodesFor, [], - {#coin: coin}, + {#currency: currency}, ), returnValue: <_i4.NodeModel>[], ) as List<_i4.NodeModel>); diff --git a/test/widget_tests/node_options_sheet_test.mocks.dart b/test/widget_tests/node_options_sheet_test.mocks.dart index 3d0a10b68..ff15b6330 100644 --- a/test/widget_tests/node_options_sheet_test.mocks.dart +++ b/test/widget_tests/node_options_sheet_test.mocks.dart @@ -5,19 +5,18 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i10; import 'dart:io' as _i8; -import 'dart:ui' as _i17; +import 'dart:ui' as _i16; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/db/isar/main_db.dart' as _i3; -import 'package:stackwallet/models/node_model.dart' as _i18; +import 'package:stackwallet/models/node_model.dart' as _i17; import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart' - as _i20; + as _i19; import 'package:stackwallet/services/node_service.dart' as _i2; -import 'package:stackwallet/services/tor_service.dart' as _i19; +import 'package:stackwallet/services/tor_service.dart' as _i18; import 'package:stackwallet/services/wallets.dart' as _i9; import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i15; import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i14; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i16; import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i13; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i7; @@ -28,7 +27,7 @@ import 'package:stackwallet/wallets/isar/models/wallet_info.dart' as _i11; import 'package:stackwallet/wallets/wallet/wallet.dart' as _i5; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart' as _i6; -import 'package:tor_ffi_plugin/tor_ffi_plugin.dart' as _i21; +import 'package:tor_ffi_plugin/tor_ffi_plugin.dart' as _i20; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -647,7 +646,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - _i15.AmountUnit amountUnit(_i16.Coin? coin) => (super.noSuchMethod( + _i15.AmountUnit amountUnit(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #amountUnit, [coin], @@ -656,7 +655,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { ) as _i15.AmountUnit); @override void updateAmountUnit({ - required _i16.Coin? coin, + required _i4.CryptoCurrency? coin, required _i15.AmountUnit? amountUnit, }) => super.noSuchMethod( @@ -671,7 +670,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - int maxDecimals(_i16.Coin? coin) => (super.noSuchMethod( + int maxDecimals(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #maxDecimals, [coin], @@ -680,7 +679,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { ) as int); @override void updateMaxDecimals({ - required _i16.Coin? coin, + required _i4.CryptoCurrency? coin, required int? maxDecimals, }) => super.noSuchMethod( @@ -695,7 +694,8 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - _i6.FusionInfo getFusionServerInfo(_i16.Coin? coin) => (super.noSuchMethod( + _i6.FusionInfo getFusionServerInfo(_i4.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getFusionServerInfo, [coin], @@ -710,7 +710,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { ) as _i6.FusionInfo); @override void setFusionServerInfo( - _i16.Coin? coin, + _i4.CryptoCurrency? coin, _i6.FusionInfo? fusionServerInfo, ) => super.noSuchMethod( @@ -724,7 +724,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -732,7 +732,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -774,15 +774,15 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { ), ) as _i7.SecureStorageInterface); @override - List<_i18.NodeModel> get primaryNodes => (super.noSuchMethod( + List<_i17.NodeModel> get primaryNodes => (super.noSuchMethod( Invocation.getter(#primaryNodes), - returnValue: <_i18.NodeModel>[], - ) as List<_i18.NodeModel>); + returnValue: <_i17.NodeModel>[], + ) as List<_i17.NodeModel>); @override - List<_i18.NodeModel> get nodes => (super.noSuchMethod( + List<_i17.NodeModel> get nodes => (super.noSuchMethod( Invocation.getter(#nodes), - returnValue: <_i18.NodeModel>[], - ) as List<_i18.NodeModel>); + returnValue: <_i17.NodeModel>[], + ) as List<_i17.NodeModel>); @override bool get hasListeners => (super.noSuchMethod( Invocation.getter(#hasListeners), @@ -799,8 +799,8 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { ) as _i10.Future); @override _i10.Future setPrimaryNodeFor({ - required _i16.Coin? coin, - required _i18.NodeModel? node, + required _i4.CryptoCurrency? coin, + required _i17.NodeModel? node, bool? shouldNotifyListeners = false, }) => (super.noSuchMethod( @@ -817,40 +817,42 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - _i18.NodeModel? getPrimaryNodeFor({required _i16.Coin? coin}) => + _i17.NodeModel? getPrimaryNodeFor({required _i4.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], - {#coin: coin}, - )) as _i18.NodeModel?); + {#currency: currency}, + )) as _i17.NodeModel?); @override - List<_i18.NodeModel> getNodesFor(_i16.Coin? coin) => (super.noSuchMethod( + List<_i17.NodeModel> getNodesFor(_i4.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], ), - returnValue: <_i18.NodeModel>[], - ) as List<_i18.NodeModel>); + returnValue: <_i17.NodeModel>[], + ) as List<_i17.NodeModel>); @override - _i18.NodeModel? getNodeById({required String? id}) => + _i17.NodeModel? getNodeById({required String? id}) => (super.noSuchMethod(Invocation.method( #getNodeById, [], {#id: id}, - )) as _i18.NodeModel?); + )) as _i17.NodeModel?); @override - List<_i18.NodeModel> failoverNodesFor({required _i16.Coin? coin}) => + List<_i17.NodeModel> failoverNodesFor( + {required _i4.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( #failoverNodesFor, [], - {#coin: coin}, + {#currency: currency}, ), - returnValue: <_i18.NodeModel>[], - ) as List<_i18.NodeModel>); + returnValue: <_i17.NodeModel>[], + ) as List<_i17.NodeModel>); @override _i10.Future add( - _i18.NodeModel? node, + _i17.NodeModel? node, String? password, bool? shouldNotifyListeners, ) => @@ -902,7 +904,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { ) as _i10.Future); @override _i10.Future edit( - _i18.NodeModel? editedNode, + _i17.NodeModel? editedNode, String? password, bool? shouldNotifyListeners, ) => @@ -928,7 +930,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -936,7 +938,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: null, ); @override - void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -964,16 +966,16 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { /// A class which mocks [TorService]. /// /// See the documentation for Mockito's code generation for more information. -class MockTorService extends _i1.Mock implements _i19.TorService { +class MockTorService extends _i1.Mock implements _i18.TorService { MockTorService() { _i1.throwOnMissingStub(this); } @override - _i20.TorConnectionStatus get status => (super.noSuchMethod( + _i19.TorConnectionStatus get status => (super.noSuchMethod( Invocation.getter(#status), - returnValue: _i20.TorConnectionStatus.disconnected, - ) as _i20.TorConnectionStatus); + returnValue: _i19.TorConnectionStatus.disconnected, + ) as _i19.TorConnectionStatus); @override ({_i8.InternetAddress host, int port}) getProxyInfo() => (super.noSuchMethod( Invocation.method( @@ -994,7 +996,7 @@ class MockTorService extends _i1.Mock implements _i19.TorService { @override void init({ required String? torDataDirPath, - _i21.Tor? mockableOverride, + _i20.Tor? mockableOverride, }) => super.noSuchMethod( Invocation.method( diff --git a/test/widget_tests/transaction_card_test.mocks.dart b/test/widget_tests/transaction_card_test.mocks.dart index e3880f1b6..6d3d98e0f 100644 --- a/test/widget_tests/transaction_card_test.mocks.dart +++ b/test/widget_tests/transaction_card_test.mocks.dart @@ -4,28 +4,27 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i11; -import 'dart:typed_data' as _i25; +import 'dart:typed_data' as _i24; import 'dart:ui' as _i16; -import 'package:decimal/decimal.dart' as _i22; +import 'package:decimal/decimal.dart' as _i21; import 'package:isar/isar.dart' as _i9; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/db/isar/main_db.dart' as _i3; -import 'package:stackwallet/models/isar/models/block_explorer.dart' as _i27; +import 'package:stackwallet/models/isar/models/block_explorer.dart' as _i26; import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart' - as _i29; -import 'package:stackwallet/models/isar/models/contact_entry.dart' as _i26; -import 'package:stackwallet/models/isar/models/isar_models.dart' as _i28; -import 'package:stackwallet/models/isar/stack_theme.dart' as _i24; + as _i28; +import 'package:stackwallet/models/isar/models/contact_entry.dart' as _i25; +import 'package:stackwallet/models/isar/models/isar_models.dart' as _i27; +import 'package:stackwallet/models/isar/stack_theme.dart' as _i23; import 'package:stackwallet/networking/http.dart' as _i8; import 'package:stackwallet/services/locale_service.dart' as _i15; import 'package:stackwallet/services/node_service.dart' as _i2; -import 'package:stackwallet/services/price_service.dart' as _i21; +import 'package:stackwallet/services/price_service.dart' as _i20; import 'package:stackwallet/services/wallets.dart' as _i10; -import 'package:stackwallet/themes/theme_service.dart' as _i23; +import 'package:stackwallet/themes/theme_service.dart' as _i22; import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i19; import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i18; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i20; import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i17; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i13; @@ -747,7 +746,7 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { returnValueForMissingStub: _i11.Future.value(), ) as _i11.Future); @override - _i19.AmountUnit amountUnit(_i20.Coin? coin) => (super.noSuchMethod( + _i19.AmountUnit amountUnit(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #amountUnit, [coin], @@ -756,7 +755,7 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { ) as _i19.AmountUnit); @override void updateAmountUnit({ - required _i20.Coin? coin, + required _i4.CryptoCurrency? coin, required _i19.AmountUnit? amountUnit, }) => super.noSuchMethod( @@ -771,7 +770,7 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { returnValueForMissingStub: null, ); @override - int maxDecimals(_i20.Coin? coin) => (super.noSuchMethod( + int maxDecimals(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #maxDecimals, [coin], @@ -780,7 +779,7 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { ) as int); @override void updateMaxDecimals({ - required _i20.Coin? coin, + required _i4.CryptoCurrency? coin, required int? maxDecimals, }) => super.noSuchMethod( @@ -795,7 +794,8 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { returnValueForMissingStub: null, ); @override - _i6.FusionInfo getFusionServerInfo(_i20.Coin? coin) => (super.noSuchMethod( + _i6.FusionInfo getFusionServerInfo(_i4.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getFusionServerInfo, [coin], @@ -810,7 +810,7 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { ) as _i6.FusionInfo); @override void setFusionServerInfo( - _i20.Coin? coin, + _i4.CryptoCurrency? coin, _i6.FusionInfo? fusionServerInfo, ) => super.noSuchMethod( @@ -860,7 +860,7 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { /// A class which mocks [PriceService]. /// /// See the documentation for Mockito's code generation for more information. -class MockPriceService extends _i1.Mock implements _i21.PriceService { +class MockPriceService extends _i1.Mock implements _i20.PriceService { MockPriceService() { _i1.throwOnMissingStub(this); } @@ -898,35 +898,35 @@ class MockPriceService extends _i1.Mock implements _i21.PriceService { returnValue: false, ) as bool); @override - _i7.Tuple2<_i22.Decimal, double> getPrice(_i20.Coin? coin) => + _i7.Tuple2<_i21.Decimal, double> getPrice(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #getPrice, [coin], ), - returnValue: _FakeTuple2_5<_i22.Decimal, double>( + returnValue: _FakeTuple2_5<_i21.Decimal, double>( this, Invocation.method( #getPrice, [coin], ), ), - ) as _i7.Tuple2<_i22.Decimal, double>); + ) as _i7.Tuple2<_i21.Decimal, double>); @override - _i7.Tuple2<_i22.Decimal, double> getTokenPrice(String? contractAddress) => + _i7.Tuple2<_i21.Decimal, double> getTokenPrice(String? contractAddress) => (super.noSuchMethod( Invocation.method( #getTokenPrice, [contractAddress], ), - returnValue: _FakeTuple2_5<_i22.Decimal, double>( + returnValue: _FakeTuple2_5<_i21.Decimal, double>( this, Invocation.method( #getTokenPrice, [contractAddress], ), ), - ) as _i7.Tuple2<_i22.Decimal, double>); + ) as _i7.Tuple2<_i21.Decimal, double>); @override _i11.Future updatePrice() => (super.noSuchMethod( Invocation.method( @@ -989,7 +989,7 @@ class MockPriceService extends _i1.Mock implements _i21.PriceService { /// A class which mocks [ThemeService]. /// /// See the documentation for Mockito's code generation for more information. -class MockThemeService extends _i1.Mock implements _i23.ThemeService { +class MockThemeService extends _i1.Mock implements _i22.ThemeService { MockThemeService() { _i1.throwOnMissingStub(this); } @@ -1019,10 +1019,10 @@ class MockThemeService extends _i1.Mock implements _i23.ThemeService { ), ) as _i3.MainDB); @override - List<_i24.StackTheme> get installedThemes => (super.noSuchMethod( + List<_i23.StackTheme> get installedThemes => (super.noSuchMethod( Invocation.getter(#installedThemes), - returnValue: <_i24.StackTheme>[], - ) as List<_i24.StackTheme>); + returnValue: <_i23.StackTheme>[], + ) as List<_i23.StackTheme>); @override void init(_i3.MainDB? db) => super.noSuchMethod( Invocation.method( @@ -1032,7 +1032,7 @@ class MockThemeService extends _i1.Mock implements _i23.ThemeService { returnValueForMissingStub: null, ); @override - _i11.Future install({required _i25.Uint8List? themeArchiveData}) => + _i11.Future install({required _i24.Uint8List? themeArchiveData}) => (super.noSuchMethod( Invocation.method( #install, @@ -1072,33 +1072,33 @@ class MockThemeService extends _i1.Mock implements _i23.ThemeService { returnValue: _i11.Future.value(false), ) as _i11.Future); @override - _i11.Future> fetchThemes() => + _i11.Future> fetchThemes() => (super.noSuchMethod( Invocation.method( #fetchThemes, [], ), - returnValue: _i11.Future>.value( - <_i23.StackThemeMetaData>[]), - ) as _i11.Future>); + returnValue: _i11.Future>.value( + <_i22.StackThemeMetaData>[]), + ) as _i11.Future>); @override - _i11.Future<_i25.Uint8List> fetchTheme( - {required _i23.StackThemeMetaData? themeMetaData}) => + _i11.Future<_i24.Uint8List> fetchTheme( + {required _i22.StackThemeMetaData? themeMetaData}) => (super.noSuchMethod( Invocation.method( #fetchTheme, [], {#themeMetaData: themeMetaData}, ), - returnValue: _i11.Future<_i25.Uint8List>.value(_i25.Uint8List(0)), - ) as _i11.Future<_i25.Uint8List>); + returnValue: _i11.Future<_i24.Uint8List>.value(_i24.Uint8List(0)), + ) as _i11.Future<_i24.Uint8List>); @override - _i24.StackTheme? getTheme({required String? themeId}) => + _i23.StackTheme? getTheme({required String? themeId}) => (super.noSuchMethod(Invocation.method( #getTheme, [], {#themeId: themeId}, - )) as _i24.StackTheme?); + )) as _i23.StackTheme?); } /// A class which mocks [MainDB]. @@ -1147,13 +1147,13 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValueForMissingStub: _i11.Future.value(), ) as _i11.Future); @override - List<_i26.ContactEntry> getContactEntries() => (super.noSuchMethod( + List<_i25.ContactEntry> getContactEntries() => (super.noSuchMethod( Invocation.method( #getContactEntries, [], ), - returnValue: <_i26.ContactEntry>[], - ) as List<_i26.ContactEntry>); + returnValue: <_i25.ContactEntry>[], + ) as List<_i25.ContactEntry>); @override _i11.Future deleteContactEntry({required String? id}) => (super.noSuchMethod( @@ -1175,15 +1175,15 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(false), ) as _i11.Future); @override - _i26.ContactEntry? getContactEntry({required String? id}) => + _i25.ContactEntry? getContactEntry({required String? id}) => (super.noSuchMethod(Invocation.method( #getContactEntry, [], {#id: id}, - )) as _i26.ContactEntry?); + )) as _i25.ContactEntry?); @override _i11.Future putContactEntry( - {required _i26.ContactEntry? contactEntry}) => + {required _i25.ContactEntry? contactEntry}) => (super.noSuchMethod( Invocation.method( #putContactEntry, @@ -1193,16 +1193,16 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(false), ) as _i11.Future); @override - _i27.TransactionBlockExplorer? getTransactionBlockExplorer( - {required _i20.Coin? coin}) => + _i26.TransactionBlockExplorer? getTransactionBlockExplorer( + {required _i4.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod(Invocation.method( #getTransactionBlockExplorer, [], - {#coin: coin}, - )) as _i27.TransactionBlockExplorer?); + {#cryptoCurrency: cryptoCurrency}, + )) as _i26.TransactionBlockExplorer?); @override _i11.Future putTransactionBlockExplorer( - _i27.TransactionBlockExplorer? explorer) => + _i26.TransactionBlockExplorer? explorer) => (super.noSuchMethod( Invocation.method( #putTransactionBlockExplorer, @@ -1211,13 +1211,13 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(0), ) as _i11.Future); @override - _i9.QueryBuilder<_i28.Address, _i28.Address, _i9.QAfterWhereClause> + _i9.QueryBuilder<_i27.Address, _i27.Address, _i9.QAfterWhereClause> getAddresses(String? walletId) => (super.noSuchMethod( Invocation.method( #getAddresses, [walletId], ), - returnValue: _FakeQueryBuilder_8<_i28.Address, _i28.Address, + returnValue: _FakeQueryBuilder_8<_i27.Address, _i27.Address, _i9.QAfterWhereClause>( this, Invocation.method( @@ -1226,9 +1226,9 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ), ), ) as _i9 - .QueryBuilder<_i28.Address, _i28.Address, _i9.QAfterWhereClause>); + .QueryBuilder<_i27.Address, _i27.Address, _i9.QAfterWhereClause>); @override - _i11.Future putAddress(_i28.Address? address) => (super.noSuchMethod( + _i11.Future putAddress(_i27.Address? address) => (super.noSuchMethod( Invocation.method( #putAddress, [address], @@ -1236,7 +1236,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(0), ) as _i11.Future); @override - _i11.Future> putAddresses(List<_i28.Address>? addresses) => + _i11.Future> putAddresses(List<_i27.Address>? addresses) => (super.noSuchMethod( Invocation.method( #putAddresses, @@ -1245,7 +1245,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future>.value([]), ) as _i11.Future>); @override - _i11.Future> updateOrPutAddresses(List<_i28.Address>? addresses) => + _i11.Future> updateOrPutAddresses(List<_i27.Address>? addresses) => (super.noSuchMethod( Invocation.method( #updateOrPutAddresses, @@ -1254,7 +1254,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future>.value([]), ) as _i11.Future>); @override - _i11.Future<_i28.Address?> getAddress( + _i11.Future<_i27.Address?> getAddress( String? walletId, String? address, ) => @@ -1266,12 +1266,12 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { address, ], ), - returnValue: _i11.Future<_i28.Address?>.value(), - ) as _i11.Future<_i28.Address?>); + returnValue: _i11.Future<_i27.Address?>.value(), + ) as _i11.Future<_i27.Address?>); @override _i11.Future updateAddress( - _i28.Address? oldAddress, - _i28.Address? newAddress, + _i27.Address? oldAddress, + _i27.Address? newAddress, ) => (super.noSuchMethod( Invocation.method( @@ -1284,13 +1284,13 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(0), ) as _i11.Future); @override - _i9.QueryBuilder<_i28.Transaction, _i28.Transaction, _i9.QAfterWhereClause> + _i9.QueryBuilder<_i27.Transaction, _i27.Transaction, _i9.QAfterWhereClause> getTransactions(String? walletId) => (super.noSuchMethod( Invocation.method( #getTransactions, [walletId], ), - returnValue: _FakeQueryBuilder_8<_i28.Transaction, _i28.Transaction, + returnValue: _FakeQueryBuilder_8<_i27.Transaction, _i27.Transaction, _i9.QAfterWhereClause>( this, Invocation.method( @@ -1298,10 +1298,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { [walletId], ), ), - ) as _i9.QueryBuilder<_i28.Transaction, _i28.Transaction, + ) as _i9.QueryBuilder<_i27.Transaction, _i27.Transaction, _i9.QAfterWhereClause>); @override - _i11.Future putTransaction(_i28.Transaction? transaction) => + _i11.Future putTransaction(_i27.Transaction? transaction) => (super.noSuchMethod( Invocation.method( #putTransaction, @@ -1311,7 +1311,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ) as _i11.Future); @override _i11.Future> putTransactions( - List<_i28.Transaction>? transactions) => + List<_i27.Transaction>? transactions) => (super.noSuchMethod( Invocation.method( #putTransactions, @@ -1320,7 +1320,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future>.value([]), ) as _i11.Future>); @override - _i11.Future<_i28.Transaction?> getTransaction( + _i11.Future<_i27.Transaction?> getTransaction( String? walletId, String? txid, ) => @@ -1332,10 +1332,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { txid, ], ), - returnValue: _i11.Future<_i28.Transaction?>.value(), - ) as _i11.Future<_i28.Transaction?>); + returnValue: _i11.Future<_i27.Transaction?>.value(), + ) as _i11.Future<_i27.Transaction?>); @override - _i11.Stream<_i28.Transaction?> watchTransaction({ + _i11.Stream<_i27.Transaction?> watchTransaction({ required int? id, bool? fireImmediately = false, }) => @@ -1348,10 +1348,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { #fireImmediately: fireImmediately, }, ), - returnValue: _i11.Stream<_i28.Transaction?>.empty(), - ) as _i11.Stream<_i28.Transaction?>); + returnValue: _i11.Stream<_i27.Transaction?>.empty(), + ) as _i11.Stream<_i27.Transaction?>); @override - _i9.QueryBuilder<_i28.UTXO, _i28.UTXO, _i9.QAfterWhereClause> getUTXOs( + _i9.QueryBuilder<_i27.UTXO, _i27.UTXO, _i9.QAfterWhereClause> getUTXOs( String? walletId) => (super.noSuchMethod( Invocation.method( @@ -1359,16 +1359,16 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { [walletId], ), returnValue: - _FakeQueryBuilder_8<_i28.UTXO, _i28.UTXO, _i9.QAfterWhereClause>( + _FakeQueryBuilder_8<_i27.UTXO, _i27.UTXO, _i9.QAfterWhereClause>( this, Invocation.method( #getUTXOs, [walletId], ), ), - ) as _i9.QueryBuilder<_i28.UTXO, _i28.UTXO, _i9.QAfterWhereClause>); + ) as _i9.QueryBuilder<_i27.UTXO, _i27.UTXO, _i9.QAfterWhereClause>); @override - _i9.QueryBuilder<_i28.UTXO, _i28.UTXO, _i9.QAfterFilterCondition> + _i9.QueryBuilder<_i27.UTXO, _i27.UTXO, _i9.QAfterFilterCondition> getUTXOsByAddress( String? walletId, String? address, @@ -1381,7 +1381,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { address, ], ), - returnValue: _FakeQueryBuilder_8<_i28.UTXO, _i28.UTXO, + returnValue: _FakeQueryBuilder_8<_i27.UTXO, _i27.UTXO, _i9.QAfterFilterCondition>( this, Invocation.method( @@ -1393,9 +1393,9 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ), ), ) as _i9 - .QueryBuilder<_i28.UTXO, _i28.UTXO, _i9.QAfterFilterCondition>); + .QueryBuilder<_i27.UTXO, _i27.UTXO, _i9.QAfterFilterCondition>); @override - _i11.Future putUTXO(_i28.UTXO? utxo) => (super.noSuchMethod( + _i11.Future putUTXO(_i27.UTXO? utxo) => (super.noSuchMethod( Invocation.method( #putUTXO, [utxo], @@ -1404,7 +1404,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValueForMissingStub: _i11.Future.value(), ) as _i11.Future); @override - _i11.Future putUTXOs(List<_i28.UTXO>? utxos) => (super.noSuchMethod( + _i11.Future putUTXOs(List<_i27.UTXO>? utxos) => (super.noSuchMethod( Invocation.method( #putUTXOs, [utxos], @@ -1415,7 +1415,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { @override _i11.Future updateUTXOs( String? walletId, - List<_i28.UTXO>? utxos, + List<_i27.UTXO>? utxos, ) => (super.noSuchMethod( Invocation.method( @@ -1428,7 +1428,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(false), ) as _i11.Future); @override - _i11.Stream<_i28.UTXO?> watchUTXO({ + _i11.Stream<_i27.UTXO?> watchUTXO({ required int? id, bool? fireImmediately = false, }) => @@ -1441,10 +1441,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { #fireImmediately: fireImmediately, }, ), - returnValue: _i11.Stream<_i28.UTXO?>.empty(), - ) as _i11.Stream<_i28.UTXO?>); + returnValue: _i11.Stream<_i27.UTXO?>.empty(), + ) as _i11.Stream<_i27.UTXO?>); @override - _i9.QueryBuilder<_i28.TransactionNote, _i28.TransactionNote, + _i9.QueryBuilder<_i27.TransactionNote, _i27.TransactionNote, _i9.QAfterWhereClause> getTransactionNotes( String? walletId) => (super.noSuchMethod( @@ -1452,18 +1452,18 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { #getTransactionNotes, [walletId], ), - returnValue: _FakeQueryBuilder_8<_i28.TransactionNote, - _i28.TransactionNote, _i9.QAfterWhereClause>( + returnValue: _FakeQueryBuilder_8<_i27.TransactionNote, + _i27.TransactionNote, _i9.QAfterWhereClause>( this, Invocation.method( #getTransactionNotes, [walletId], ), ), - ) as _i9.QueryBuilder<_i28.TransactionNote, _i28.TransactionNote, + ) as _i9.QueryBuilder<_i27.TransactionNote, _i27.TransactionNote, _i9.QAfterWhereClause>); @override - _i11.Future putTransactionNote(_i28.TransactionNote? transactionNote) => + _i11.Future putTransactionNote(_i27.TransactionNote? transactionNote) => (super.noSuchMethod( Invocation.method( #putTransactionNote, @@ -1474,7 +1474,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ) as _i11.Future); @override _i11.Future putTransactionNotes( - List<_i28.TransactionNote>? transactionNotes) => + List<_i27.TransactionNote>? transactionNotes) => (super.noSuchMethod( Invocation.method( #putTransactionNotes, @@ -1484,7 +1484,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValueForMissingStub: _i11.Future.value(), ) as _i11.Future); @override - _i11.Future<_i28.TransactionNote?> getTransactionNote( + _i11.Future<_i27.TransactionNote?> getTransactionNote( String? walletId, String? txid, ) => @@ -1496,10 +1496,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { txid, ], ), - returnValue: _i11.Future<_i28.TransactionNote?>.value(), - ) as _i11.Future<_i28.TransactionNote?>); + returnValue: _i11.Future<_i27.TransactionNote?>.value(), + ) as _i11.Future<_i27.TransactionNote?>); @override - _i11.Stream<_i28.TransactionNote?> watchTransactionNote({ + _i11.Stream<_i27.TransactionNote?> watchTransactionNote({ required int? id, bool? fireImmediately = false, }) => @@ -1512,27 +1512,27 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { #fireImmediately: fireImmediately, }, ), - returnValue: _i11.Stream<_i28.TransactionNote?>.empty(), - ) as _i11.Stream<_i28.TransactionNote?>); + returnValue: _i11.Stream<_i27.TransactionNote?>.empty(), + ) as _i11.Stream<_i27.TransactionNote?>); @override - _i9.QueryBuilder<_i28.AddressLabel, _i28.AddressLabel, _i9.QAfterWhereClause> + _i9.QueryBuilder<_i27.AddressLabel, _i27.AddressLabel, _i9.QAfterWhereClause> getAddressLabels(String? walletId) => (super.noSuchMethod( Invocation.method( #getAddressLabels, [walletId], ), - returnValue: _FakeQueryBuilder_8<_i28.AddressLabel, - _i28.AddressLabel, _i9.QAfterWhereClause>( + returnValue: _FakeQueryBuilder_8<_i27.AddressLabel, + _i27.AddressLabel, _i9.QAfterWhereClause>( this, Invocation.method( #getAddressLabels, [walletId], ), ), - ) as _i9.QueryBuilder<_i28.AddressLabel, _i28.AddressLabel, + ) as _i9.QueryBuilder<_i27.AddressLabel, _i27.AddressLabel, _i9.QAfterWhereClause>); @override - _i11.Future putAddressLabel(_i28.AddressLabel? addressLabel) => + _i11.Future putAddressLabel(_i27.AddressLabel? addressLabel) => (super.noSuchMethod( Invocation.method( #putAddressLabel, @@ -1541,7 +1541,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(0), ) as _i11.Future); @override - int putAddressLabelSync(_i28.AddressLabel? addressLabel) => + int putAddressLabelSync(_i27.AddressLabel? addressLabel) => (super.noSuchMethod( Invocation.method( #putAddressLabelSync, @@ -1550,7 +1550,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: 0, ) as int); @override - _i11.Future putAddressLabels(List<_i28.AddressLabel>? addressLabels) => + _i11.Future putAddressLabels(List<_i27.AddressLabel>? addressLabels) => (super.noSuchMethod( Invocation.method( #putAddressLabels, @@ -1560,7 +1560,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValueForMissingStub: _i11.Future.value(), ) as _i11.Future); @override - _i11.Future<_i28.AddressLabel?> getAddressLabel( + _i11.Future<_i27.AddressLabel?> getAddressLabel( String? walletId, String? addressString, ) => @@ -1572,10 +1572,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { addressString, ], ), - returnValue: _i11.Future<_i28.AddressLabel?>.value(), - ) as _i11.Future<_i28.AddressLabel?>); + returnValue: _i11.Future<_i27.AddressLabel?>.value(), + ) as _i11.Future<_i27.AddressLabel?>); @override - _i28.AddressLabel? getAddressLabelSync( + _i27.AddressLabel? getAddressLabelSync( String? walletId, String? addressString, ) => @@ -1585,9 +1585,9 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { walletId, addressString, ], - )) as _i28.AddressLabel?); + )) as _i27.AddressLabel?); @override - _i11.Stream<_i28.AddressLabel?> watchAddressLabel({ + _i11.Stream<_i27.AddressLabel?> watchAddressLabel({ required int? id, bool? fireImmediately = false, }) => @@ -1600,10 +1600,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { #fireImmediately: fireImmediately, }, ), - returnValue: _i11.Stream<_i28.AddressLabel?>.empty(), - ) as _i11.Stream<_i28.AddressLabel?>); + returnValue: _i11.Stream<_i27.AddressLabel?>.empty(), + ) as _i11.Stream<_i27.AddressLabel?>); @override - _i11.Future updateAddressLabel(_i28.AddressLabel? addressLabel) => + _i11.Future updateAddressLabel(_i27.AddressLabel? addressLabel) => (super.noSuchMethod( Invocation.method( #updateAddressLabel, @@ -1643,7 +1643,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ) as _i11.Future); @override _i11.Future addNewTransactionData( - List<_i7.Tuple2<_i28.Transaction, _i28.Address?>>? transactionsData, + List<_i7.Tuple2<_i27.Transaction, _i27.Address?>>? transactionsData, String? walletId, ) => (super.noSuchMethod( @@ -1659,7 +1659,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ) as _i11.Future); @override _i11.Future> updateOrPutTransactionV2s( - List<_i29.TransactionV2>? transactions) => + List<_i28.TransactionV2>? transactions) => (super.noSuchMethod( Invocation.method( #updateOrPutTransactionV2s, @@ -1668,13 +1668,13 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future>.value([]), ) as _i11.Future>); @override - _i9.QueryBuilder<_i28.EthContract, _i28.EthContract, _i9.QWhere> + _i9.QueryBuilder<_i27.EthContract, _i27.EthContract, _i9.QWhere> getEthContracts() => (super.noSuchMethod( Invocation.method( #getEthContracts, [], ), - returnValue: _FakeQueryBuilder_8<_i28.EthContract, _i28.EthContract, + returnValue: _FakeQueryBuilder_8<_i27.EthContract, _i27.EthContract, _i9.QWhere>( this, Invocation.method( @@ -1683,24 +1683,24 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ), ), ) as _i9 - .QueryBuilder<_i28.EthContract, _i28.EthContract, _i9.QWhere>); + .QueryBuilder<_i27.EthContract, _i27.EthContract, _i9.QWhere>); @override - _i11.Future<_i28.EthContract?> getEthContract(String? contractAddress) => + _i11.Future<_i27.EthContract?> getEthContract(String? contractAddress) => (super.noSuchMethod( Invocation.method( #getEthContract, [contractAddress], ), - returnValue: _i11.Future<_i28.EthContract?>.value(), - ) as _i11.Future<_i28.EthContract?>); + returnValue: _i11.Future<_i27.EthContract?>.value(), + ) as _i11.Future<_i27.EthContract?>); @override - _i28.EthContract? getEthContractSync(String? contractAddress) => + _i27.EthContract? getEthContractSync(String? contractAddress) => (super.noSuchMethod(Invocation.method( #getEthContractSync, [contractAddress], - )) as _i28.EthContract?); + )) as _i27.EthContract?); @override - _i11.Future putEthContract(_i28.EthContract? contract) => + _i11.Future putEthContract(_i27.EthContract? contract) => (super.noSuchMethod( Invocation.method( #putEthContract, @@ -1709,7 +1709,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(0), ) as _i11.Future); @override - _i11.Future putEthContracts(List<_i28.EthContract>? contracts) => + _i11.Future putEthContracts(List<_i27.EthContract>? contracts) => (super.noSuchMethod( Invocation.method( #putEthContracts, @@ -1733,7 +1733,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { /// A class which mocks [IThemeAssets]. /// /// See the documentation for Mockito's code generation for more information. -class MockIThemeAssets extends _i1.Mock implements _i24.IThemeAssets { +class MockIThemeAssets extends _i1.Mock implements _i23.IThemeAssets { MockIThemeAssets() { _i1.throwOnMissingStub(this); } diff --git a/test/widget_tests/wallet_info_row/sub_widgets/wallet_info_row_balance_future_test.mocks.dart b/test/widget_tests/wallet_info_row/sub_widgets/wallet_info_row_balance_future_test.mocks.dart index e02c41ec5..b94f2e713 100644 --- a/test/widget_tests/wallet_info_row/sub_widgets/wallet_info_row_balance_future_test.mocks.dart +++ b/test/widget_tests/wallet_info_row/sub_widgets/wallet_info_row_balance_future_test.mocks.dart @@ -4,14 +4,13 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i8; -import 'dart:ui' as _i13; +import 'dart:ui' as _i12; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/db/isar/main_db.dart' as _i3; import 'package:stackwallet/models/node_model.dart' as _i11; import 'package:stackwallet/services/node_service.dart' as _i2; import 'package:stackwallet/services/wallets.dart' as _i7; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i12; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i6; import 'package:stackwallet/utilities/prefs.dart' as _i10; @@ -231,7 +230,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { ) as _i8.Future); @override _i8.Future setPrimaryNodeFor({ - required _i12.Coin? coin, + required _i4.CryptoCurrency? coin, required _i11.NodeModel? node, bool? shouldNotifyListeners = false, }) => @@ -249,14 +248,15 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i8.Future.value(), ) as _i8.Future); @override - _i11.NodeModel? getPrimaryNodeFor({required _i12.Coin? coin}) => + _i11.NodeModel? getPrimaryNodeFor({required _i4.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], - {#coin: coin}, + {#currency: currency}, )) as _i11.NodeModel?); @override - List<_i11.NodeModel> getNodesFor(_i12.Coin? coin) => (super.noSuchMethod( + List<_i11.NodeModel> getNodesFor(_i4.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], @@ -271,12 +271,13 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { {#id: id}, )) as _i11.NodeModel?); @override - List<_i11.NodeModel> failoverNodesFor({required _i12.Coin? coin}) => + List<_i11.NodeModel> failoverNodesFor( + {required _i4.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( #failoverNodesFor, [], - {#coin: coin}, + {#currency: currency}, ), returnValue: <_i11.NodeModel>[], ) as List<_i11.NodeModel>); @@ -360,7 +361,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i8.Future.value(), ) as _i8.Future); @override - void addListener(_i13.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i12.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -368,7 +369,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: null, ); @override - void removeListener(_i13.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i12.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/widget_tests/wallet_info_row/wallet_info_row_test.mocks.dart b/test/widget_tests/wallet_info_row/wallet_info_row_test.mocks.dart index eec63a4fd..9c90bcdcd 100644 --- a/test/widget_tests/wallet_info_row/wallet_info_row_test.mocks.dart +++ b/test/widget_tests/wallet_info_row/wallet_info_row_test.mocks.dart @@ -5,7 +5,7 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i9; import 'dart:typed_data' as _i14; -import 'dart:ui' as _i17; +import 'dart:ui' as _i16; import 'package:mockito/mockito.dart' as _i1; import 'package:stackwallet/db/isar/main_db.dart' as _i3; @@ -15,7 +15,6 @@ import 'package:stackwallet/networking/http.dart' as _i6; import 'package:stackwallet/services/node_service.dart' as _i2; import 'package:stackwallet/services/wallets.dart' as _i8; import 'package:stackwallet/themes/theme_service.dart' as _i12; -import 'package:stackwallet/utilities/enums/coin_enum.dart' as _i16; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i7; import 'package:stackwallet/utilities/prefs.dart' as _i11; @@ -360,7 +359,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { ) as _i9.Future); @override _i9.Future setPrimaryNodeFor({ - required _i16.Coin? coin, + required _i4.CryptoCurrency? coin, required _i15.NodeModel? node, bool? shouldNotifyListeners = false, }) => @@ -378,14 +377,15 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); @override - _i15.NodeModel? getPrimaryNodeFor({required _i16.Coin? coin}) => + _i15.NodeModel? getPrimaryNodeFor({required _i4.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], - {#coin: coin}, + {#currency: currency}, )) as _i15.NodeModel?); @override - List<_i15.NodeModel> getNodesFor(_i16.Coin? coin) => (super.noSuchMethod( + List<_i15.NodeModel> getNodesFor(_i4.CryptoCurrency? coin) => + (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], @@ -400,12 +400,13 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { {#id: id}, )) as _i15.NodeModel?); @override - List<_i15.NodeModel> failoverNodesFor({required _i16.Coin? coin}) => + List<_i15.NodeModel> failoverNodesFor( + {required _i4.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( #failoverNodesFor, [], - {#coin: coin}, + {#currency: currency}, ), returnValue: <_i15.NodeModel>[], ) as List<_i15.NodeModel>); @@ -489,7 +490,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); @override - void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -497,7 +498,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: null, ); @override - void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], From da44ab9109b05389a699d275bdebebcf18cde7ff Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 15 May 2024 15:39:43 -0600 Subject: [PATCH 064/318] fix tests broken by moving away from coin enum --- test/address_utils_test.dart | 41 ++-- test/cached_electrumx_test.dart | 13 +- test/global_events_test.dart | 44 ++-- test/services/node_service_test.dart | 119 +++++++--- test/utilities/amount/amount_unit_test.dart | 50 +++-- test/widget_tests/address_book_card_test.dart | 12 +- test/widget_tests/node_card_test.dart | 204 +++++++++++------- .../widget_tests/node_options_sheet_test.dart | 34 +-- 8 files changed, 342 insertions(+), 175 deletions(-) diff --git a/test/address_utils_test.dart b/test/address_utils_test.dart index 81bafbd9d..42ab1a45b 100644 --- a/test/address_utils_test.dart +++ b/test/address_utils_test.dart @@ -1,5 +1,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:stackwallet/utilities/address_utils.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; void main() { const String firoAddress = "a6ESWKz7szru5syLtYAPRhHLdKvMq3Yt1j"; @@ -38,7 +40,7 @@ void main() { "scheme": "bitcoin", "address": firoAddress, "amount": "50.1", - "message": "eggs are good!" + "message": "eggs are good!", }); }); @@ -66,11 +68,13 @@ void main() { "something", "who", "green", - "seven" + "seven", ]; final result = AddressUtils.encodeQRSeedData(list); - expect(result, - '{"mnemonic":["hello","word","something","who","green","seven"]}'); + expect( + result, + '{"mnemonic":["hello","word","something","who","green","seven"]}', + ); }); test("decode a valid json string to Map", () { @@ -78,7 +82,7 @@ void main() { '{"mnemonic":["hello","word","something","who","green","seven"]}'; final result = AddressUtils.decodeQRSeedData(jsonString); expect(result, { - "mnemonic": ["hello", "word", "something", "who", "green", "seven"] + "mnemonic": ["hello", "word", "something", "who", "green", "seven"], }); }); @@ -90,21 +94,32 @@ void main() { }); test("build a uri string with empty params", () { - expect(AddressUtils.buildUriString(Coin.firo, firoAddress, {}), - "firo:$firoAddress"); + expect( + AddressUtils.buildUriString( + Firo(CryptoCurrencyNetwork.main), firoAddress, {}), + "firo:$firoAddress", + ); }); test("build a uri string with one param", () { expect( - AddressUtils.buildUriString( - Coin.firo, firoAddress, {"amount": "10.0123"}), - "firo:$firoAddress?amount=10.0123"); + AddressUtils.buildUriString( + Firo(CryptoCurrencyNetwork.main), + firoAddress, + {"amount": "10.0123"}, + ), + "firo:$firoAddress?amount=10.0123", + ); }); test("build a uri string with some params", () { expect( - AddressUtils.buildUriString(Coin.firo, firoAddress, - {"amount": "10.0123", "message": "Some kind of message!"}), - "firo:$firoAddress?amount=10.0123&message=Some+kind+of+message%21"); + AddressUtils.buildUriString( + Firo(CryptoCurrencyNetwork.main), + firoAddress, + {"amount": "10.0123", "message": "Some kind of message!"}, + ), + "firo:$firoAddress?amount=10.0123&message=Some+kind+of+message%21", + ); }); } diff --git a/test/cached_electrumx_test.dart b/test/cached_electrumx_test.dart index 13c4bd3f9..5f0ae68f1 100644 --- a/test/cached_electrumx_test.dart +++ b/test/cached_electrumx_test.dart @@ -4,8 +4,9 @@ import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart'; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart'; - import 'package:stackwallet/utilities/prefs.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'cached_electrumx_test.mocks.dart'; // import 'sample_data/get_anonymity_set_sample_data.dart'; @@ -130,7 +131,9 @@ void main() { expect( () async => await cachedClient.getTransaction( txHash: "some hash", - coin: Coin.firo, + cryptoCurrency: Firo( + CryptoCurrencyNetwork.main, + ), ), throwsA(isA())); }); @@ -142,7 +145,11 @@ void main() { bool didThrow = false; try { - await cachedClient.clearSharedTransactionCache(coin: Coin.firo); + await cachedClient.clearSharedTransactionCache( + cryptoCurrency: Firo( + CryptoCurrencyNetwork.main, + ), + ); } catch (_) { didThrow = true; } diff --git a/test/global_events_test.dart b/test/global_events_test.dart index b45f08035..c7d68bdcc 100644 --- a/test/global_events_test.dart +++ b/test/global_events_test.dart @@ -4,6 +4,8 @@ import 'package:stackwallet/services/event_bus/events/global/refresh_percent_cha import 'package:stackwallet/services/event_bus/events/global/updated_in_background_event.dart'; import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; import 'package:stackwallet/services/event_bus/global_event_bus.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; void main() { test("NodeConnectionStatusChangedEvent", () async { @@ -12,12 +14,18 @@ void main() { .listen((event) { expect(event.newStatus, NodeConnectionStatus.connected); expect(event.walletId, "some wallet ID"); - expect(event.coin, Coin.bitcoin); + expect(event.coin, Bitcoin(CryptoCurrencyNetwork.main)); }); expect( - () => GlobalEventBus.instance.fire(NodeConnectionStatusChangedEvent( - NodeConnectionStatus.connected, "some wallet ID", Coin.bitcoin)), - returnsNormally); + () => GlobalEventBus.instance.fire( + NodeConnectionStatusChangedEvent( + NodeConnectionStatus.connected, + "some wallet ID", + Bitcoin(CryptoCurrencyNetwork.main), + ), + ), + returnsNormally, + ); listener.cancel(); }); @@ -29,9 +37,10 @@ void main() { expect(event.walletId, "some id"); }); expect( - () => GlobalEventBus.instance - .fire(RefreshPercentChangedEvent(0.5, "some id")), - returnsNormally); + () => GlobalEventBus.instance + .fire(RefreshPercentChangedEvent(0.5, "some id")), + returnsNormally, + ); listener.cancel(); }); @@ -42,9 +51,10 @@ void main() { expect(event.walletId, "wallet Id"); }); expect( - () => GlobalEventBus.instance - .fire(UpdatedInBackgroundEvent("some message string", "wallet Id")), - returnsNormally); + () => GlobalEventBus.instance + .fire(UpdatedInBackgroundEvent("some message string", "wallet Id")), + returnsNormally, + ); listener.cancel(); }); @@ -54,12 +64,18 @@ void main() { .listen((event) { expect(event.newStatus, WalletSyncStatus.syncing); expect(event.walletId, "wallet Id"); - expect(event.coin, Coin.bitcoin); + expect(event.coin, Bitcoin(CryptoCurrencyNetwork.main)); }); expect( - () => GlobalEventBus.instance.fire(WalletSyncStatusChangedEvent( - WalletSyncStatus.syncing, "wallet Id", Coin.bitcoin)), - returnsNormally); + () => GlobalEventBus.instance.fire( + WalletSyncStatusChangedEvent( + WalletSyncStatus.syncing, + "wallet Id", + Bitcoin(CryptoCurrencyNetwork.main), + ), + ), + returnsNormally, + ); listener.cancel(); }); } diff --git a/test/services/node_service_test.dart b/test/services/node_service_test.dart index 57eaebcd6..78f20b51b 100644 --- a/test/services/node_service_test.dart +++ b/test/services/node_service_test.dart @@ -4,9 +4,11 @@ import 'package:hive_test/hive_test.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/services/node_service.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; - +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; void main() { bool wasRegistered = false; @@ -24,7 +26,9 @@ void main() { test("getPrimaryNodeFor", () { final fakeStore = FakeSecureStorage(); final service = NodeService(secureStorageInterface: fakeStore); - final node = service.getPrimaryNodeFor(coin: Coin.bitcoin); + final node = service.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main), + ); expect(node, null); expect(fakeStore.interactions, 0); }); @@ -32,7 +36,9 @@ void main() { test("setPrimaryNodeFor", () async { final fakeStore = FakeSecureStorage(); final service = NodeService(secureStorageInterface: fakeStore); - final node = service.getPrimaryNodeFor(coin: Coin.bitcoin); + final node = service.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main), + ); expect(node, null); final node1 = NodeModel( host: "host", @@ -46,20 +52,24 @@ void main() { isDown: false, ); await service.setPrimaryNodeFor( - coin: Coin.bitcoin, + coin: Bitcoin(CryptoCurrencyNetwork.main), node: node1, shouldNotifyListeners: true, ); - expect(service.getPrimaryNodeFor(coin: Coin.bitcoin).toString(), - node1.toString()); + expect( + service + .getPrimaryNodeFor(currency: Bitcoin(CryptoCurrencyNetwork.main)) + .toString(), + node1.toString(), + ); expect(fakeStore.interactions, 0); }); test("getNodesFor", () { final fakeStore = FakeSecureStorage(); final service = NodeService(secureStorageInterface: fakeStore); - final nodes = service.getNodesFor(Coin.bitcoin); + final nodes = service.getNodesFor(Bitcoin(CryptoCurrencyNetwork.main)); expect(nodes.isEmpty, true); expect(fakeStore.interactions, 0); }); @@ -83,7 +93,9 @@ void main() { test("get failover nodes", () { final fakeStore = FakeSecureStorage(); final service = NodeService(secureStorageInterface: fakeStore); - final nodes = service.failoverNodesFor(coin: Coin.bitcoin); + final nodes = service.failoverNodesFor( + currency: Bitcoin(CryptoCurrencyNetwork.main), + ); expect(nodes.isEmpty, true); expect(fakeStore.interactions, 0); }); @@ -100,7 +112,10 @@ void main() { final fakeStore = FakeSecureStorage(); final service = NodeService(secureStorageInterface: fakeStore); await service.updateDefaults(); - expect(service.nodes.length, DefaultNodes.all.length); + expect( + service.nodes.length, + SupportedCoins.cryptocurrencies.map((e) => e.defaultNode).length, + ); expect(fakeStore.interactions, 0); }); }); @@ -148,11 +163,22 @@ void main() { test("setPrimaryNodeFor and getPrimaryNodeFor", () async { final fakeStore = FakeSecureStorage(); final service = NodeService(secureStorageInterface: fakeStore); - expect(service.getPrimaryNodeFor(coin: Coin.bitcoin), null); + expect( + service.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main), + ), + null, + ); await service.setPrimaryNodeFor( - coin: Coin.bitcoin, node: DefaultNodes.bitcoin); - expect(service.getPrimaryNodeFor(coin: Coin.bitcoin).toString(), - DefaultNodes.bitcoin.toString()); + coin: Bitcoin(CryptoCurrencyNetwork.main), + node: Bitcoin(CryptoCurrencyNetwork.main).defaultNode, + ); + expect( + service + .getPrimaryNodeFor(currency: Bitcoin(CryptoCurrencyNetwork.main)) + .toString(), + Bitcoin(CryptoCurrencyNetwork.main).defaultNode.toString(), + ); expect(fakeStore.interactions, 0); }); @@ -160,11 +186,20 @@ void main() { final fakeStore = FakeSecureStorage(); final service = NodeService(secureStorageInterface: fakeStore); await service.setPrimaryNodeFor( - coin: Coin.bitcoin, node: DefaultNodes.bitcoin); + coin: Bitcoin(CryptoCurrencyNetwork.main), + node: Bitcoin(CryptoCurrencyNetwork.main).defaultNode, + ); await service.setPrimaryNodeFor( - coin: Coin.monero, node: DefaultNodes.monero); - expect(service.primaryNodes.toString(), - [DefaultNodes.bitcoin, DefaultNodes.monero].toString()); + coin: Monero(CryptoCurrencyNetwork.main), + node: Monero(CryptoCurrencyNetwork.main).defaultNode, + ); + expect( + service.primaryNodes.toString(), + [ + Bitcoin(CryptoCurrencyNetwork.main).defaultNode, + Monero(CryptoCurrencyNetwork.main).defaultNode, + ].toString(), + ); expect(fakeStore.interactions, 0); }); @@ -172,7 +207,8 @@ void main() { final fakeStore = FakeSecureStorage(); final service = NodeService(secureStorageInterface: fakeStore); final nodes = service.nodes; - final defaults = DefaultNodes.all; + final defaults = + SupportedCoins.cryptocurrencies.map((e) => e.defaultNode).toList(); nodes.sort((a, b) => a.host.compareTo(b.host)); defaults.sort((a, b) => a.host.compareTo(b.host)); @@ -186,7 +222,10 @@ void main() { final fakeStore = FakeSecureStorage(); final service = NodeService(secureStorageInterface: fakeStore); await service.add(nodeA, null, true); - expect(service.nodes.length, DefaultNodes.all.length + 1); + expect( + service.nodes.length, + SupportedCoins.cryptocurrencies.map((e) => e.defaultNode).length + 1, + ); expect(fakeStore.interactions, 0); }); @@ -194,7 +233,10 @@ void main() { final fakeStore = FakeSecureStorage(); final service = NodeService(secureStorageInterface: fakeStore); await service.add(nodeA, "some password", true); - expect(service.nodes.length, DefaultNodes.all.length + 1); + expect( + service.nodes.length, + SupportedCoins.cryptocurrencies.map((e) => e.defaultNode).length + 1, + ); expect(fakeStore.interactions, 1); expect(fakeStore.writes, 1); }); @@ -202,11 +244,20 @@ void main() { group("Additional nodes in storage tests", () { setUp(() async { await DB.instance.put( - boxName: DB.boxNameNodeModels, key: nodeA.id, value: nodeA); + boxName: DB.boxNameNodeModels, + key: nodeA.id, + value: nodeA, + ); await DB.instance.put( - boxName: DB.boxNameNodeModels, key: nodeB.id, value: nodeB); + boxName: DB.boxNameNodeModels, + key: nodeB.id, + value: nodeB, + ); await DB.instance.put( - boxName: DB.boxNameNodeModels, key: nodeC.id, value: nodeC); + boxName: DB.boxNameNodeModels, + key: nodeC.id, + value: nodeC, + ); }); test("edit a node with a password", () async { @@ -220,11 +271,14 @@ void main() { expect(service.nodes.length, currentLength); - expect(service.getNodeById(id: nodeA.id).toString(), - editedNode.toString()); expect( - (await service.getNodeById(id: nodeA.id)!.getPassword(fakeStore))!, - "123456"); + service.getNodeById(id: nodeA.id).toString(), + editedNode.toString(), + ); + expect( + (await service.getNodeById(id: nodeA.id)!.getPassword(fakeStore))!, + "123456", + ); expect(fakeStore.interactions, 2); expect(fakeStore.reads, 1); @@ -237,9 +291,14 @@ void main() { await service.delete(nodeB.id, true); - expect(service.nodes.length, DefaultNodes.all.length + 2); expect( - service.nodes.where((element) => element.id == nodeB.id).length, 0); + service.nodes.length, + SupportedCoins.cryptocurrencies.map((e) => e.defaultNode).length + 2, + ); + expect( + service.nodes.where((element) => element.id == nodeB.id).length, + 0, + ); expect(fakeStore.interactions, 1); expect(fakeStore.deletes, 1); diff --git a/test/utilities/amount/amount_unit_test.dart b/test/utilities/amount/amount_unit_test.dart index e3edee615..e4ecb33dd 100644 --- a/test/utilities/amount/amount_unit_test.dart +++ b/test/utilities/amount/amount_unit_test.dart @@ -2,6 +2,9 @@ import 'package:decimal/decimal.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_unit.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; void main() { test("displayAmount BTC", () { @@ -14,7 +17,7 @@ void main() { AmountUnit.normal.displayAmount( amount: amount, locale: "en_US", - coin: Coin.bitcoin, + coin: Bitcoin(CryptoCurrencyNetwork.main), maxDecimalPlaces: 8, ), "10.12345678 BTC", @@ -24,7 +27,7 @@ void main() { AmountUnit.milli.displayAmount( amount: amount, locale: "en_US", - coin: Coin.bitcoin, + coin: Bitcoin(CryptoCurrencyNetwork.main), maxDecimalPlaces: 8, ), "10,123.45678 mBTC", @@ -34,7 +37,7 @@ void main() { AmountUnit.micro.displayAmount( amount: amount, locale: "en_US", - coin: Coin.bitcoin, + coin: Bitcoin(CryptoCurrencyNetwork.main), maxDecimalPlaces: 8, ), "10,123,456.78 µBTC", @@ -44,7 +47,7 @@ void main() { AmountUnit.nano.displayAmount( amount: amount, locale: "en_US", - coin: Coin.bitcoin, + coin: Bitcoin(CryptoCurrencyNetwork.main), maxDecimalPlaces: 8, ), "1,012,345,678 sats", @@ -55,16 +58,18 @@ void main() { }); test("displayAmount ETH", () { + final eth = Ethereum(CryptoCurrencyNetwork.main); + final Amount amount = Amount.fromDecimal( Decimal.parse("10.123456789123456789"), - fractionDigits: Coin.ethereum.decimals, + fractionDigits: eth.fractionDigits, ); expect( AmountUnit.normal.displayAmount( amount: amount, locale: "en_US", - coin: Coin.ethereum, + coin: eth, maxDecimalPlaces: 8, ), "~10.12345678 ETH", @@ -74,7 +79,7 @@ void main() { AmountUnit.normal.displayAmount( amount: amount, locale: "en_US", - coin: Coin.ethereum, + coin: eth, maxDecimalPlaces: 4, ), "~10.1234 ETH", @@ -84,7 +89,7 @@ void main() { AmountUnit.normal.displayAmount( amount: amount, locale: "en_US", - coin: Coin.ethereum, + coin: eth, maxDecimalPlaces: 18, ), "10.123456789123456789 ETH", @@ -94,7 +99,7 @@ void main() { AmountUnit.milli.displayAmount( amount: amount, locale: "en_US", - coin: Coin.ethereum, + coin: eth, maxDecimalPlaces: 9, ), "~10,123.456789123 mETH", @@ -104,7 +109,7 @@ void main() { AmountUnit.micro.displayAmount( amount: amount, locale: "en_US", - coin: Coin.ethereum, + coin: eth, maxDecimalPlaces: 8, ), "~10,123,456.78912345 µETH", @@ -114,7 +119,7 @@ void main() { AmountUnit.nano.displayAmount( amount: amount, locale: "en_US", - coin: Coin.ethereum, + coin: eth, maxDecimalPlaces: 1, ), "~10,123,456,789.1 gwei", @@ -124,7 +129,7 @@ void main() { AmountUnit.pico.displayAmount( amount: amount, locale: "en_US", - coin: Coin.ethereum, + coin: eth, maxDecimalPlaces: 18, ), "10,123,456,789,123.456789 mwei", @@ -134,7 +139,7 @@ void main() { AmountUnit.femto.displayAmount( amount: amount, locale: "en_US", - coin: Coin.ethereum, + coin: eth, maxDecimalPlaces: 4, ), "10,123,456,789,123,456.789 kwei", @@ -144,7 +149,7 @@ void main() { AmountUnit.atto.displayAmount( amount: amount, locale: "en_US", - coin: Coin.ethereum, + coin: eth, maxDecimalPlaces: 1, ), "10,123,456,789,123,456,789 wei", @@ -152,20 +157,21 @@ void main() { }); test("parse eth string to amount", () { + final eth = Ethereum(CryptoCurrencyNetwork.main); final Amount amount = Amount.fromDecimal( Decimal.parse("10.123456789123456789"), - fractionDigits: Coin.ethereum.decimals, + fractionDigits: eth.fractionDigits, ); expect( AmountUnit.nano.tryParse( "~10,123,456,789.1 gwei", locale: "en_US", - coin: Coin.ethereum, + coin: eth, ), Amount.fromDecimal( Decimal.parse("10.1234567891"), - fractionDigits: Coin.ethereum.decimals, + fractionDigits: eth.fractionDigits, ), ); @@ -173,7 +179,7 @@ void main() { AmountUnit.atto.tryParse( "10,123,456,789,123,456,789 wei", locale: "en_US", - coin: Coin.ethereum, + coin: eth, ), amount, ); @@ -189,7 +195,7 @@ void main() { AmountUnit.normal.tryParse( "10.12345678 BTC", locale: "en_US", - coin: Coin.bitcoin, + coin: Bitcoin(CryptoCurrencyNetwork.main), ), amount, ); @@ -198,7 +204,7 @@ void main() { AmountUnit.milli.tryParse( "10,123.45678 mBTC", locale: "en_US", - coin: Coin.bitcoin, + coin: Bitcoin(CryptoCurrencyNetwork.main), ), amount, ); @@ -207,7 +213,7 @@ void main() { AmountUnit.micro.tryParse( "10,123,456.7822 µBTC", locale: "en_US", - coin: Coin.bitcoin, + coin: Bitcoin(CryptoCurrencyNetwork.main), ), amount, ); @@ -216,7 +222,7 @@ void main() { AmountUnit.nano.tryParse( "1,012,345,678 sats", locale: "en_US", - coin: Coin.bitcoin, + coin: Bitcoin(CryptoCurrencyNetwork.main), ), amount, ); diff --git a/test/widget_tests/address_book_card_test.dart b/test/widget_tests/address_book_card_test.dart index 581d56529..674a259af 100644 --- a/test/widget_tests/address_book_card_test.dart +++ b/test/widget_tests/address_book_card_test.dart @@ -11,8 +11,9 @@ import 'package:stackwallet/pages/address_book_views/subviews/contact_popup.dart import 'package:stackwallet/providers/global/address_book_service_provider.dart'; import 'package:stackwallet/services/address_book_service.dart'; import 'package:stackwallet/themes/stack_colors.dart'; - import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; import '../sample_data/theme_json.dart'; @@ -33,10 +34,10 @@ void main() { name: "John Doe", addresses: [ ContactAddressEntry() - ..coinName = Coin.bitcoincash.name + ..coinName = Bitcoincash(CryptoCurrencyNetwork.main).identifier ..address = "some bch address" ..label = "Bills" - ..other = null + ..other = null, ], isFavorite: true, customId: '', @@ -69,7 +70,10 @@ void main() { expect(find.text("John Doe"), findsOneWidget); expect(find.text("BCH"), findsOneWidget); - expect(find.text(Coin.bitcoincash.ticker), findsOneWidget); + expect( + find.text(Bitcoincash(CryptoCurrencyNetwork.main).ticker), + findsOneWidget, + ); if (Platform.isIOS || Platform.isAndroid) { await widgetTester.tap(find.byType(RawMaterialButton)); diff --git a/test/widget_tests/node_card_test.dart b/test/widget_tests/node_card_test.dart index faa1361f1..f98814b58 100644 --- a/test/widget_tests/node_card_test.dart +++ b/test/widget_tests/node_card_test.dart @@ -9,8 +9,9 @@ import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/themes/stack_colors.dart'; - import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/node_card.dart'; import 'package:stackwallet/widgets/node_options_sheet.dart'; @@ -22,29 +23,37 @@ void main() { testWidgets("NodeCard builds inactive node correctly", (tester) async { final nodeService = MockNodeService(); - when(nodeService.getPrimaryNodeFor(coin: Coin.bitcoin)).thenAnswer( - (realInvocation) => NodeModel( - host: "127.0.0.1", - port: 2000, - name: "Stack Default", - id: "node id", - useSSL: true, - enabled: true, - coinName: "Bitcoin", - isFailover: false, - isDown: false)); + when( + nodeService.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main), + ), + ).thenAnswer( + (realInvocation) => NodeModel( + host: "127.0.0.1", + port: 2000, + name: "Stack Default", + id: "node id", + useSSL: true, + enabled: true, + coinName: "Bitcoin", + isFailover: false, + isDown: false, + ), + ); - when(nodeService.getNodeById(id: "node id")).thenAnswer((realInvocation) => - NodeModel( - host: "127.0.0.1", - port: 2000, - name: "some other name", - id: "node id", - useSSL: true, - enabled: true, - coinName: "Bitcoin", - isFailover: false, - isDown: false)); + when(nodeService.getNodeById(id: "node id")).thenAnswer( + (realInvocation) => NodeModel( + host: "127.0.0.1", + port: 2000, + name: "some other name", + id: "node id", + useSSL: true, + enabled: true, + coinName: "Bitcoin", + isFailover: false, + isDown: false, + ), + ); await tester.pumpWidget( ProviderScope( @@ -61,8 +70,11 @@ void main() { ), ], ), - home: const NodeCard( - nodeId: "node id", coin: Coin.bitcoin, popBackToRoute: ""), + home: NodeCard( + nodeId: "node id", + coin: Bitcoin(CryptoCurrencyNetwork.main), + popBackToRoute: "", + ), ), ), ); @@ -73,7 +85,11 @@ void main() { expect(find.text("Disconnected"), findsOneWidget); expect(find.byType(SvgPicture), findsWidgets); - verify(nodeService.getPrimaryNodeFor(coin: Coin.bitcoin)).called(1); + verify( + nodeService.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main), + ), + ).called(1); verify(nodeService.getNodeById(id: "node id")).called(1); verify(nodeService.addListener(any)).called(1); verifyNoMoreInteractions(nodeService); @@ -82,29 +98,37 @@ void main() { testWidgets("NodeCard builds active node correctly", (tester) async { final nodeService = MockNodeService(); - when(nodeService.getPrimaryNodeFor(coin: Coin.bitcoin)).thenAnswer( - (realInvocation) => NodeModel( - host: "127.0.0.1", - port: 2000, - name: "Some other node name", - id: "node id", - useSSL: true, - enabled: true, - coinName: "Bitcoin", - isFailover: false, - isDown: false)); + when( + nodeService.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main), + ), + ).thenAnswer( + (realInvocation) => NodeModel( + host: "127.0.0.1", + port: 2000, + name: "Some other node name", + id: "node id", + useSSL: true, + enabled: true, + coinName: "Bitcoin", + isFailover: false, + isDown: false, + ), + ); - when(nodeService.getNodeById(id: "node id")).thenAnswer((realInvocation) => - NodeModel( - host: "127.0.0.1", - port: 2000, - name: "Some other node name", - id: "node id", - useSSL: true, - enabled: true, - coinName: "Bitcoin", - isFailover: false, - isDown: false)); + when(nodeService.getNodeById(id: "node id")).thenAnswer( + (realInvocation) => NodeModel( + host: "127.0.0.1", + port: 2000, + name: "Some other node name", + id: "node id", + useSSL: true, + enabled: true, + coinName: "Bitcoin", + isFailover: false, + isDown: false, + ), + ); await tester.pumpWidget( ProviderScope( @@ -121,8 +145,11 @@ void main() { ), ], ), - home: const NodeCard( - nodeId: "node id", coin: Coin.bitcoin, popBackToRoute: ""), + home: NodeCard( + nodeId: "node id", + coin: Bitcoin(CryptoCurrencyNetwork.main), + popBackToRoute: "", + ), ), ), ); @@ -133,7 +160,11 @@ void main() { expect(find.byType(Text), findsNWidgets(2)); expect(find.byType(SvgPicture), findsWidgets); - verify(nodeService.getPrimaryNodeFor(coin: Coin.bitcoin)).called(1); + verify( + nodeService.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main), + ), + ).called(1); verify(nodeService.getNodeById(id: "node id")).called(1); verify(nodeService.addListener(any)).called(1); @@ -143,29 +174,37 @@ void main() { testWidgets("tap to open context menu on default node", (tester) async { final nodeService = MockNodeService(); - when(nodeService.getPrimaryNodeFor(coin: Coin.bitcoin)).thenAnswer( - (realInvocation) => NodeModel( - host: "127.0.0.1", - port: 2000, - name: "Stack Default", - id: "node id", - useSSL: true, - enabled: true, - coinName: "Bitcoin", - isFailover: false, - isDown: false)); + when( + nodeService.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main), + ), + ).thenAnswer( + (realInvocation) => NodeModel( + host: "127.0.0.1", + port: 2000, + name: "Stack Default", + id: "node id", + useSSL: true, + enabled: true, + coinName: "Bitcoin", + isFailover: false, + isDown: false, + ), + ); - when(nodeService.getNodeById(id: "node id")).thenAnswer((realInvocation) => - NodeModel( - host: "127.0.0.1", - port: 2000, - name: "Stack Default", - id: "node id", - useSSL: true, - enabled: true, - coinName: "Bitcoin", - isFailover: false, - isDown: false)); + when(nodeService.getNodeById(id: "node id")).thenAnswer( + (realInvocation) => NodeModel( + host: "127.0.0.1", + port: 2000, + name: "Stack Default", + id: "node id", + useSSL: true, + enabled: true, + coinName: "Bitcoin", + isFailover: false, + isDown: false, + ), + ); await tester.pumpWidget( ProviderScope( @@ -182,8 +221,11 @@ void main() { ), ], ), - home: const NodeCard( - nodeId: "node id", coin: Coin.bitcoin, popBackToRoute: ""), + home: NodeCard( + nodeId: "node id", + coin: Bitcoin(CryptoCurrencyNetwork.main), + popBackToRoute: "", + ), ), ), ); @@ -202,7 +244,11 @@ void main() { expect(find.text("Connect"), findsNothing); expect(find.text("Details"), findsNothing); - verify(nodeService.getPrimaryNodeFor(coin: Coin.bitcoin)).called(1); + verify( + nodeService.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main), + ), + ).called(1); verify(nodeService.getNodeById(id: "node id")).called(1); } else { expect(find.text("Connect"), findsOneWidget); @@ -210,7 +256,11 @@ void main() { expect(find.byType(NodeOptionsSheet), findsOneWidget); expect(find.byType(Text), findsNWidgets(7)); - verify(nodeService.getPrimaryNodeFor(coin: Coin.bitcoin)).called(2); + verify( + nodeService.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main), + ), + ).called(2); verify(nodeService.getNodeById(id: "node id")).called(2); } diff --git a/test/widget_tests/node_options_sheet_test.dart b/test/widget_tests/node_options_sheet_test.dart index 3379742ea..94121acf2 100644 --- a/test/widget_tests/node_options_sheet_test.dart +++ b/test/widget_tests/node_options_sheet_test.dart @@ -11,8 +11,9 @@ import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/services/wallets.dart'; import 'package:stackwallet/themes/stack_colors.dart'; - import 'package:stackwallet/utilities/prefs.dart'; +import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/node_options_sheet.dart'; import '../sample_data/theme_json.dart'; @@ -37,8 +38,9 @@ void main() { isFailover: false, isDown: false)); - when(mockNodeService.getPrimaryNodeFor(coin: Coin.bitcoin)).thenAnswer( - (realInvocation) => NodeModel( + when(mockNodeService.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main))) + .thenAnswer((realInvocation) => NodeModel( host: "127.0.0.1", port: 2000, name: "Some other name", @@ -66,8 +68,10 @@ void main() { ), ], ), - home: const NodeOptionsSheet( - nodeId: "node id", coin: Coin.bitcoin, popBackToRoute: ""), + home: NodeOptionsSheet( + nodeId: "node id", + coin: Bitcoin(CryptoCurrencyNetwork.main), + popBackToRoute: ""), ), ), ); @@ -80,7 +84,9 @@ void main() { expect(find.text("Details"), findsOneWidget); expect(find.text("Connect"), findsOneWidget); - verify(mockNodeService.getPrimaryNodeFor(coin: Coin.bitcoin)).called(1); + verify(mockNodeService.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main))) + .called(1); verify(mockNodeService.getNodeById(id: "node id")).called(1); verify(mockNodeService.addListener(any)).called(1); verifyNoMoreInteractions(mockNodeService); @@ -107,7 +113,9 @@ void main() { ), ); - when(mockNodeService.getPrimaryNodeFor(coin: Coin.bitcoin)).thenAnswer( + when(mockNodeService.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main))) + .thenAnswer( (_) => NodeModel( host: "127.0.0.1", port: 2000, @@ -146,9 +154,9 @@ void main() { } return null; }, - home: const NodeOptionsSheet( + home: NodeOptionsSheet( nodeId: "node id", - coin: Coin.bitcoin, + coin: Bitcoin(CryptoCurrencyNetwork.main), popBackToRoute: "coinNodes", ), ), @@ -182,7 +190,9 @@ void main() { ), ); - when(mockNodeService.getPrimaryNodeFor(coin: Coin.bitcoin)).thenAnswer( + when(mockNodeService.getPrimaryNodeFor( + currency: Bitcoin(CryptoCurrencyNetwork.main))) + .thenAnswer( (_) => NodeModel( host: "127.0.0.1", port: 2000, @@ -214,9 +224,9 @@ void main() { ), ], ), - home: const NodeOptionsSheet( + home: NodeOptionsSheet( nodeId: "node id", - coin: Coin.bitcoin, + coin: Bitcoin(CryptoCurrencyNetwork.main), popBackToRoute: "", ), ), From 8d43dfc6ae63c77cde2b27d11bc51e3d7e0a0e5c Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 15 May 2024 15:54:28 -0600 Subject: [PATCH 065/318] fix network on wallet load --- lib/wallets/wallet/wallet.dart | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/lib/wallets/wallet/wallet.dart b/lib/wallets/wallet/wallet.dart index a427de15f..5654b8ccc 100644 --- a/lib/wallets/wallet/wallet.dart +++ b/lib/wallets/wallet/wallet.dart @@ -341,49 +341,49 @@ abstract class Wallet { return BitcoincashWallet(net); case const (Dogecoin): - return DogecoinWallet(CryptoCurrencyNetwork.main); + return DogecoinWallet(net); case const (Ecash): - return EcashWallet(CryptoCurrencyNetwork.main); + return EcashWallet(net); case const (Epiccash): - return EpiccashWallet(CryptoCurrencyNetwork.main); + return EpiccashWallet(net); case const (Ethereum): - return EthereumWallet(CryptoCurrencyNetwork.main); + return EthereumWallet(net); case const (Firo): - return FiroWallet(CryptoCurrencyNetwork.main); + return FiroWallet(net); case const (Litecoin): - return LitecoinWallet(CryptoCurrencyNetwork.main); + return LitecoinWallet(net); case const (Monero): - return MoneroWallet(CryptoCurrencyNetwork.main); + return MoneroWallet(net); case const (Namecoin): - return NamecoinWallet(CryptoCurrencyNetwork.main); + return NamecoinWallet(net); case const (Nano): - return NanoWallet(CryptoCurrencyNetwork.main); + return NanoWallet(net); case const (Particl): - return ParticlWallet(CryptoCurrencyNetwork.main); + return ParticlWallet(net); case const (Peercoin): - return PeercoinWallet(CryptoCurrencyNetwork.main); + return PeercoinWallet(net); case const (Solana): - return SolanaWallet(CryptoCurrencyNetwork.main); + return SolanaWallet(net); case const (Stellar): - return StellarWallet(CryptoCurrencyNetwork.main); + return StellarWallet(net); case const (Tezos): - return TezosWallet(CryptoCurrencyNetwork.main); + return TezosWallet(net); case const (Wownero): - return WowneroWallet(CryptoCurrencyNetwork.main); + return WowneroWallet(net); default: // should never hit in reality From 5fd54240bc93318b1782453feb884e331d7b6849 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 15 May 2024 17:14:04 -0500 Subject: [PATCH 066/318] WIP configure_duo.sh script --- scripts/configure_duo.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100755 scripts/configure_duo.sh diff --git a/scripts/configure_duo.sh b/scripts/configure_duo.sh new file mode 100755 index 000000000..4a651979a --- /dev/null +++ b/scripts/configure_duo.sh @@ -0,0 +1,14 @@ +# Configure files for Duo. +sed -i 's/Wallet/Duo/g' ../lib/app_config.dart +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/build.gradle +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/src/debug/AndroidManifest.xml +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/src/main/AndroidManifest.xml +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/src/main/profile/AndroidManifest.xml +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/src/profile/AndroidManifest.xml +sed -i 's/Stack Wallet/Stack Duo/g' ../ios/Runner/Info.plist +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../ios/Runner.xcodeproj/project.pbxproj +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../linux/CMakeLists.txt +sed -i 's/Stack Wallet/Stack Duo/g' ../linux/my_application.cc +sed -i 's/com.cypherstack.stackWallet/com.cypherstack.stackDuo/g' ../macos/Runner.xcodeproj/project.pbxproj +sed -i 's/Stack Wallet/Stack Duo/g' ../windows/runner/Runner.rc From 73faa112726b3e15933d0d22122342f59e2b7556 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 15 May 2024 17:20:14 -0500 Subject: [PATCH 067/318] more AppConfig usage --- lib/main.dart | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 6510e26b0..e9b2a9bd4 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -586,8 +586,8 @@ class _MaterialAppWithThemeState extends ConsumerState routeOnSuccessArguments: encrypted, biometricsCancelButtonString: "CANCEL", biometricsLocalizedReason: - "Authenticate to restore Stack Wallet backup", - biometricsAuthenticationTitle: "Restore Stack backup", + "Authenticate to restore ${AppConfig.appName} backup", + biometricsAuthenticationTitle: "Restore ${AppConfig.prefix} backup", ), settings: const RouteSettings(name: "/swbrestorelockscreen"), ), @@ -762,9 +762,10 @@ class _MaterialAppWithThemeState extends ConsumerState isInitialAppLogin: true, routeOnSuccess: HomeView.routeName, routeOnSuccessArguments: startupWalletId, - biometricsAuthenticationTitle: "Unlock Stack", + biometricsAuthenticationTitle: + "Unlock ${AppConfig.prefix}", biometricsLocalizedReason: - "Unlock your stack wallet using biometrics", + "Unlock your ${AppConfig.appName} using biometrics", biometricsCancelButtonString: "Cancel", ); } else { From 5c7e4960c44a27a4f9dad970189bba1d4e26369d Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 15 May 2024 17:20:30 -0500 Subject: [PATCH 068/318] alter pubspec.yaml in configure_duo.sh script --- scripts/configure_duo.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/configure_duo.sh b/scripts/configure_duo.sh index 4a651979a..071dadbf1 100755 --- a/scripts/configure_duo.sh +++ b/scripts/configure_duo.sh @@ -1,5 +1,6 @@ # Configure files for Duo. sed -i 's/Wallet/Duo/g' ../lib/app_config.dart +sed -i 's/Stack Wallet/Stack Duo/g' ../pubspec.yaml sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/build.gradle sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/src/debug/AndroidManifest.xml sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/src/main/AndroidManifest.xml From 966bc81662e8fc5748900d6147bb950fd81a2240 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 15 May 2024 17:45:29 -0500 Subject: [PATCH 069/318] split script back into platform-specific scripts --- scripts/android/configure_duo.sh | 7 +++++++ scripts/configure_duo.sh | 12 ------------ scripts/ios/configure_duo.sh | 3 +++ scripts/linux/configure_duo.sh | 3 +++ scripts/macos/configure_duo.sh | 2 ++ scripts/windows/configure_duo.sh | 2 ++ 6 files changed, 17 insertions(+), 12 deletions(-) create mode 100755 scripts/android/configure_duo.sh create mode 100644 scripts/ios/configure_duo.sh create mode 100755 scripts/linux/configure_duo.sh create mode 100644 scripts/macos/configure_duo.sh create mode 100644 scripts/windows/configure_duo.sh diff --git a/scripts/android/configure_duo.sh b/scripts/android/configure_duo.sh new file mode 100755 index 000000000..a375b7de2 --- /dev/null +++ b/scripts/android/configure_duo.sh @@ -0,0 +1,7 @@ +# Configure Android for Duo. +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/build.gradle +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/debug/AndroidManifest.xml +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/main/AndroidManifest.xml +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/main/profile/AndroidManifest.xml +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/profile/AndroidManifest.xml diff --git a/scripts/configure_duo.sh b/scripts/configure_duo.sh index 071dadbf1..fe4faf116 100755 --- a/scripts/configure_duo.sh +++ b/scripts/configure_duo.sh @@ -1,15 +1,3 @@ # Configure files for Duo. sed -i 's/Wallet/Duo/g' ../lib/app_config.dart sed -i 's/Stack Wallet/Stack Duo/g' ../pubspec.yaml -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/build.gradle -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/src/debug/AndroidManifest.xml -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/src/main/AndroidManifest.xml -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/src/main/profile/AndroidManifest.xml -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../android/app/src/profile/AndroidManifest.xml -sed -i 's/Stack Wallet/Stack Duo/g' ../ios/Runner/Info.plist -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../ios/Runner.xcodeproj/project.pbxproj -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../linux/CMakeLists.txt -sed -i 's/Stack Wallet/Stack Duo/g' ../linux/my_application.cc -sed -i 's/com.cypherstack.stackWallet/com.cypherstack.stackDuo/g' ../macos/Runner.xcodeproj/project.pbxproj -sed -i 's/Stack Wallet/Stack Duo/g' ../windows/runner/Runner.rc diff --git a/scripts/ios/configure_duo.sh b/scripts/ios/configure_duo.sh new file mode 100644 index 000000000..3a6806305 --- /dev/null +++ b/scripts/ios/configure_duo.sh @@ -0,0 +1,3 @@ +# Configure iOS for Duo. +sed -i 's/Stack Wallet/Stack Duo/g' ../ios/Runner/Info.plist +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../ios/Runner.xcodeproj/project.pbxproj diff --git a/scripts/linux/configure_duo.sh b/scripts/linux/configure_duo.sh new file mode 100755 index 000000000..6505c551d --- /dev/null +++ b/scripts/linux/configure_duo.sh @@ -0,0 +1,3 @@ +# Configure Linux for Duo. +sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../linux/CMakeLists.txt +sed -i 's/Stack Wallet/Stack Duo/g' ../../linux/my_application.cc diff --git a/scripts/macos/configure_duo.sh b/scripts/macos/configure_duo.sh new file mode 100644 index 000000000..05e23dfc7 --- /dev/null +++ b/scripts/macos/configure_duo.sh @@ -0,0 +1,2 @@ +# Configure macOS for Duo. +sed -i 's/com.cypherstack.stackWallet/com.cypherstack.stackDuo/g' ../macos/Runner.xcodeproj/project.pbxproj diff --git a/scripts/windows/configure_duo.sh b/scripts/windows/configure_duo.sh new file mode 100644 index 000000000..f49528e70 --- /dev/null +++ b/scripts/windows/configure_duo.sh @@ -0,0 +1,2 @@ +# Configure Windows for Duo. +sed -i 's/Stack Wallet/Stack Duo/g' ../windows/runner/Runner.rc From cddfa6b37e53b890fde2c8798bb3242238b6727a Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 15 May 2024 17:51:21 -0500 Subject: [PATCH 070/318] build_all_duo.sh scripts --- scripts/android/build_all_duo.sh | 27 ++++++++++++++++++++++++++ scripts/ios/build_all_duo.sh | 33 ++++++++++++++++++++++++++++++++ scripts/ios/configure_duo.sh | 0 scripts/linux/build_all_duo.sh | 29 ++++++++++++++++++++++++++++ scripts/macos/build_all_duo.sh | 24 +++++++++++++++++++++++ scripts/macos/configure_duo.sh | 0 scripts/windows/build_all_duo.sh | 24 +++++++++++++++++++++++ scripts/windows/configure_duo.sh | 0 8 files changed, 137 insertions(+) create mode 100755 scripts/android/build_all_duo.sh create mode 100755 scripts/ios/build_all_duo.sh mode change 100644 => 100755 scripts/ios/configure_duo.sh create mode 100755 scripts/linux/build_all_duo.sh create mode 100755 scripts/macos/build_all_duo.sh mode change 100644 => 100755 scripts/macos/configure_duo.sh create mode 100755 scripts/windows/build_all_duo.sh mode change 100644 => 100755 scripts/windows/configure_duo.sh diff --git a/scripts/android/build_all_duo.sh b/scripts/android/build_all_duo.sh new file mode 100755 index 000000000..f1b1e4d71 --- /dev/null +++ b/scripts/android/build_all_duo.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +set -e + +./configure_duo.sh +cd .. +./configure_duo.sh +cd android + +# libepiccash requires old rust +source ../rust_version.sh +set_rust_to_1671 + +mkdir -p build +. ./config.sh +./install_ndk.sh + +PLUGINS_DIR=../../crypto_plugins + +(cd "${PLUGINS_DIR}"/flutter_liblelantus/scripts/android && ./build_all.sh ) & +(cd "${PLUGINS_DIR}"/flutter_libepiccash/scripts/android && ./build_all.sh ) & +(cd "${PLUGINS_DIR}"/flutter_libmonero/scripts/android/ && ./build_all.sh ) && +set_rust_to_1720 && +(cd "${PLUGINS_DIR}"/frostdart/scripts/android && ./build_all.sh ) & + +wait +echo "Done building" diff --git a/scripts/ios/build_all_duo.sh b/scripts/ios/build_all_duo.sh new file mode 100755 index 000000000..6d10156a2 --- /dev/null +++ b/scripts/ios/build_all_duo.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +set -e + +./configure_duo.sh +cd .. +./configure_duo.sh +cd ios + +# libepiccash requires old rust +source ../rust_version.sh +set_rust_to_1671 + +# ensure ios rust triples are there +rustup target add aarch64-apple-ios +rustup target add x86_64-apple-ios + +# ensure ios rust triples are there +rustup target add aarch64-apple-ios +rustup target add x86_64-apple-ios + +(cd ../../crypto_plugins/flutter_liblelantus/scripts/ios && ./build_all.sh ) & +(cd ../../crypto_plugins/flutter_libepiccash/scripts/ios && ./build_all.sh ) & +(cd ../../crypto_plugins/flutter_libmonero/scripts/ios/ && ./build_all.sh ) && +set_rust_to_1720 && +(cd ../../crypto_plugins/frostdart/scripts/ios && ./build_all.sh ) & + +wait +echo "Done building" + +# ensure ios rust triples are there +rustup target add aarch64-apple-ios +rustup target add x86_64-apple-ios diff --git a/scripts/ios/configure_duo.sh b/scripts/ios/configure_duo.sh old mode 100644 new mode 100755 diff --git a/scripts/linux/build_all_duo.sh b/scripts/linux/build_all_duo.sh new file mode 100755 index 000000000..a22a77005 --- /dev/null +++ b/scripts/linux/build_all_duo.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +set -e + +./configure_duo.sh +cd .. +./configure_duo.sh +cd linux + +# libepiccash requires old rust +source ../rust_version.sh +set_rust_to_1671 + +# for arm +# flutter-elinux clean +# flutter-elinux pub get +# flutter-elinux build linux --dart-define="IS_ARM=true" +mkdir -p build +./build_secure_storage_deps.sh & +(cd ../../crypto_plugins/flutter_liblelantus/scripts/linux && ./build_all.sh ) & +(cd ../../crypto_plugins/flutter_libepiccash/scripts/linux && ./build_all.sh ) & +(cd ../../crypto_plugins/flutter_libmonero/scripts/linux && ./build_monero_all.sh && ./build_sharedfile.sh ) +set_rust_to_1720 +(cd ../../crypto_plugins/frostdart/scripts/linux && ./build_all.sh ) & + +./build_secp256k1.sh + +wait +echo "Done building" diff --git a/scripts/macos/build_all_duo.sh b/scripts/macos/build_all_duo.sh new file mode 100755 index 000000000..deb1d2f64 --- /dev/null +++ b/scripts/macos/build_all_duo.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -e + +./configure_duo.sh +cd .. +./configure_duo.sh +cd macos + +# libepiccash requires old rust +source ../rust_version.sh +set_rust_to_1671 + +(cd ../../crypto_plugins/flutter_liblelantus/scripts/macos && ./build_all.sh ) & +(cd ../../crypto_plugins/flutter_libepiccash/scripts/macos && ./build_all.sh ) & +(cd ../../crypto_plugins/flutter_libmonero/scripts/macos/ && ./build_all.sh ) && +set_rust_to_1720 && +(cd ../../crypto_plugins/frostdart/scripts/macos && ./build_all.sh ) & + +wait +echo "Done building" + +# set rust (back) to a more recent stable release to allow stack wallet to build tor +set_rust_to_1720 diff --git a/scripts/macos/configure_duo.sh b/scripts/macos/configure_duo.sh old mode 100644 new mode 100755 diff --git a/scripts/windows/build_all_duo.sh b/scripts/windows/build_all_duo.sh new file mode 100755 index 000000000..676c4899f --- /dev/null +++ b/scripts/windows/build_all_duo.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -e + +./configure_duo.sh +cd .. +./configure_duo.sh +cd windows + +# libepiccash requires old rust +source ../rust_version.sh +set_rust_to_1671 + +mkdir -p build +(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./build_all.sh ) & +(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./build_all.sh ) & +(cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./build_all.sh) +set_rust_to_1720 +(cd ../../crypto_plugins/frostdart/scripts/windows && ./build_all.sh ) & + +./build_secp256k1_wsl.sh + +wait +echo "Done building" diff --git a/scripts/windows/configure_duo.sh b/scripts/windows/configure_duo.sh old mode 100644 new mode 100755 From e0697e42778d35676d4a9cf76bd09a5bf318bd02 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 15 May 2024 17:13:50 -0600 Subject: [PATCH 071/318] refactor scripts slightly --- scripts/android/build_all_duo.sh | 14 ++++++++++---- scripts/android/configure_duo.sh | 7 ------- scripts/app_config/configure_duo.sh | 19 +++++++++++++++++++ scripts/configure_duo.sh | 3 --- scripts/ios/build_all_duo.sh | 11 +++++++---- scripts/ios/configure_duo.sh | 3 --- scripts/linux/build_all_duo.sh | 11 +++++++---- scripts/linux/configure_duo.sh | 3 --- scripts/macos/build_all_duo.sh | 10 ++++++---- scripts/macos/configure_duo.sh | 2 -- scripts/windows/build_all_duo.sh | 10 ++++++---- scripts/windows/configure_duo.sh | 2 -- 12 files changed, 55 insertions(+), 40 deletions(-) delete mode 100755 scripts/android/configure_duo.sh create mode 100755 scripts/app_config/configure_duo.sh delete mode 100755 scripts/configure_duo.sh delete mode 100755 scripts/ios/configure_duo.sh delete mode 100755 scripts/linux/configure_duo.sh delete mode 100755 scripts/macos/configure_duo.sh delete mode 100755 scripts/windows/configure_duo.sh diff --git a/scripts/android/build_all_duo.sh b/scripts/android/build_all_duo.sh index f1b1e4d71..12729db01 100755 --- a/scripts/android/build_all_duo.sh +++ b/scripts/android/build_all_duo.sh @@ -2,10 +2,16 @@ set -e -./configure_duo.sh -cd .. -./configure_duo.sh -cd android +../app_config/configure_duo.sh + +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/build.gradle +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/debug/AndroidManifest.xml +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/main/AndroidManifest.xml +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/main/profile/AndroidManifest.xml +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/profile/AndroidManifest.xml + +# todo: revisit following at some point # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/android/configure_duo.sh b/scripts/android/configure_duo.sh deleted file mode 100755 index a375b7de2..000000000 --- a/scripts/android/configure_duo.sh +++ /dev/null @@ -1,7 +0,0 @@ -# Configure Android for Duo. -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/build.gradle -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/debug/AndroidManifest.xml -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/main/AndroidManifest.xml -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/main/profile/AndroidManifest.xml -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/profile/AndroidManifest.xml diff --git a/scripts/app_config/configure_duo.sh b/scripts/app_config/configure_duo.sh new file mode 100755 index 000000000..8f4d73194 --- /dev/null +++ b/scripts/app_config/configure_duo.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +set -e + +# Configure files for Duo. +export ORIGINAL_NAME="Stack Wallet" +export ORIGINAL_APP_ID="com.cypherstack.stackwallet" + +export NEW_NAME="Stack Duo" +export NEW_APP_ID="com.cypherstack.stackduo" + +if [[ "$(uname)" == 'Darwin' ]]; then + # macos specific sed + sed -i '' 's/Wallet/Duo/g' ../../lib/app_config.dart + sed -i '' "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../pubspec.yaml +else + sed -i 's/Wallet/Duo/g' ../../lib/app_config.dart + sed -i "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../pubspec.yaml +fi \ No newline at end of file diff --git a/scripts/configure_duo.sh b/scripts/configure_duo.sh deleted file mode 100755 index fe4faf116..000000000 --- a/scripts/configure_duo.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Configure files for Duo. -sed -i 's/Wallet/Duo/g' ../lib/app_config.dart -sed -i 's/Stack Wallet/Stack Duo/g' ../pubspec.yaml diff --git a/scripts/ios/build_all_duo.sh b/scripts/ios/build_all_duo.sh index 6d10156a2..0b264c541 100755 --- a/scripts/ios/build_all_duo.sh +++ b/scripts/ios/build_all_duo.sh @@ -2,10 +2,13 @@ set -e -./configure_duo.sh -cd .. -./configure_duo.sh -cd ios +../app_config/configure_duo.sh + +# Configure ios for Duo. +sed -i '' "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../ios/Runner/Info.plist +sed -i '' "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../ios/Runner.xcodeproj/project.pbxproj + +# todo: revisit following at some point # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/ios/configure_duo.sh b/scripts/ios/configure_duo.sh deleted file mode 100755 index 3a6806305..000000000 --- a/scripts/ios/configure_duo.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Configure iOS for Duo. -sed -i 's/Stack Wallet/Stack Duo/g' ../ios/Runner/Info.plist -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../ios/Runner.xcodeproj/project.pbxproj diff --git a/scripts/linux/build_all_duo.sh b/scripts/linux/build_all_duo.sh index a22a77005..bbba76855 100755 --- a/scripts/linux/build_all_duo.sh +++ b/scripts/linux/build_all_duo.sh @@ -2,10 +2,13 @@ set -e -./configure_duo.sh -cd .. -./configure_duo.sh -cd linux +../app_config/configure_duo.sh + +# Configure Linux for Duo. +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../linux/CMakeLists.txt +sed -i "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../linux/my_application.cc + +# todo: revisit following at some point # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/linux/configure_duo.sh b/scripts/linux/configure_duo.sh deleted file mode 100755 index 6505c551d..000000000 --- a/scripts/linux/configure_duo.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Configure Linux for Duo. -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../linux/CMakeLists.txt -sed -i 's/Stack Wallet/Stack Duo/g' ../../linux/my_application.cc diff --git a/scripts/macos/build_all_duo.sh b/scripts/macos/build_all_duo.sh index deb1d2f64..08be98f32 100755 --- a/scripts/macos/build_all_duo.sh +++ b/scripts/macos/build_all_duo.sh @@ -2,10 +2,12 @@ set -e -./configure_duo.sh -cd .. -./configure_duo.sh -cd macos +../app_config/configure_duo.sh + +# Configure macOS for Duo. +sed -i '' 's/com.cypherstack.stackWallet/com.cypherstack.stackDuo/g' ../../macos/Runner.xcodeproj/project.pbxproj + +# todo: revisit following at some point # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/macos/configure_duo.sh b/scripts/macos/configure_duo.sh deleted file mode 100755 index 05e23dfc7..000000000 --- a/scripts/macos/configure_duo.sh +++ /dev/null @@ -1,2 +0,0 @@ -# Configure macOS for Duo. -sed -i 's/com.cypherstack.stackWallet/com.cypherstack.stackDuo/g' ../macos/Runner.xcodeproj/project.pbxproj diff --git a/scripts/windows/build_all_duo.sh b/scripts/windows/build_all_duo.sh index 676c4899f..2f401237a 100755 --- a/scripts/windows/build_all_duo.sh +++ b/scripts/windows/build_all_duo.sh @@ -2,10 +2,12 @@ set -e -./configure_duo.sh -cd .. -./configure_duo.sh -cd windows +../app_config/configure_duo.sh + +# Configure Windows for Duo. +sed -i 's/Stack Wallet/Stack Duo/g' ../../windows/runner/Runner.rc + +# todo: revisit following at some point # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/windows/configure_duo.sh b/scripts/windows/configure_duo.sh deleted file mode 100755 index f49528e70..000000000 --- a/scripts/windows/configure_duo.sh +++ /dev/null @@ -1,2 +0,0 @@ -# Configure Windows for Duo. -sed -i 's/Stack Wallet/Stack Duo/g' ../windows/runner/Runner.rc From ee3b16bcc68a01d376842bfcaf967161e756f15e Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 15 May 2024 17:13:50 -0600 Subject: [PATCH 072/318] refactor scripts slightly --- scripts/android/build_all_duo.sh | 14 ++++++++++---- scripts/android/configure_duo.sh | 7 ------- scripts/app_config/configure_duo.sh | 19 +++++++++++++++++++ scripts/configure_duo.sh | 3 --- scripts/ios/build_all_duo.sh | 11 +++++++---- scripts/ios/configure_duo.sh | 3 --- scripts/linux/build_all_duo.sh | 11 +++++++---- scripts/linux/configure_duo.sh | 3 --- scripts/macos/build_all_duo.sh | 10 ++++++---- scripts/macos/configure_duo.sh | 2 -- scripts/windows/build_all_duo.sh | 10 ++++++---- scripts/windows/configure_duo.sh | 2 -- 12 files changed, 55 insertions(+), 40 deletions(-) delete mode 100755 scripts/android/configure_duo.sh create mode 100755 scripts/app_config/configure_duo.sh delete mode 100755 scripts/configure_duo.sh delete mode 100755 scripts/ios/configure_duo.sh delete mode 100755 scripts/linux/configure_duo.sh delete mode 100755 scripts/macos/configure_duo.sh delete mode 100755 scripts/windows/configure_duo.sh diff --git a/scripts/android/build_all_duo.sh b/scripts/android/build_all_duo.sh index f1b1e4d71..12729db01 100755 --- a/scripts/android/build_all_duo.sh +++ b/scripts/android/build_all_duo.sh @@ -2,10 +2,16 @@ set -e -./configure_duo.sh -cd .. -./configure_duo.sh -cd android +../app_config/configure_duo.sh + +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/build.gradle +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/debug/AndroidManifest.xml +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/main/AndroidManifest.xml +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/main/profile/AndroidManifest.xml +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/profile/AndroidManifest.xml + +# todo: revisit following at some point # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/android/configure_duo.sh b/scripts/android/configure_duo.sh deleted file mode 100755 index a375b7de2..000000000 --- a/scripts/android/configure_duo.sh +++ /dev/null @@ -1,7 +0,0 @@ -# Configure Android for Duo. -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/build.gradle -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/debug/AndroidManifest.xml -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/main/AndroidManifest.xml -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/main/profile/AndroidManifest.xml -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../android/app/src/profile/AndroidManifest.xml diff --git a/scripts/app_config/configure_duo.sh b/scripts/app_config/configure_duo.sh new file mode 100755 index 000000000..8f4d73194 --- /dev/null +++ b/scripts/app_config/configure_duo.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +set -e + +# Configure files for Duo. +export ORIGINAL_NAME="Stack Wallet" +export ORIGINAL_APP_ID="com.cypherstack.stackwallet" + +export NEW_NAME="Stack Duo" +export NEW_APP_ID="com.cypherstack.stackduo" + +if [[ "$(uname)" == 'Darwin' ]]; then + # macos specific sed + sed -i '' 's/Wallet/Duo/g' ../../lib/app_config.dart + sed -i '' "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../pubspec.yaml +else + sed -i 's/Wallet/Duo/g' ../../lib/app_config.dart + sed -i "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../pubspec.yaml +fi \ No newline at end of file diff --git a/scripts/configure_duo.sh b/scripts/configure_duo.sh deleted file mode 100755 index fe4faf116..000000000 --- a/scripts/configure_duo.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Configure files for Duo. -sed -i 's/Wallet/Duo/g' ../lib/app_config.dart -sed -i 's/Stack Wallet/Stack Duo/g' ../pubspec.yaml diff --git a/scripts/ios/build_all_duo.sh b/scripts/ios/build_all_duo.sh index 6d10156a2..0b264c541 100755 --- a/scripts/ios/build_all_duo.sh +++ b/scripts/ios/build_all_duo.sh @@ -2,10 +2,13 @@ set -e -./configure_duo.sh -cd .. -./configure_duo.sh -cd ios +../app_config/configure_duo.sh + +# Configure ios for Duo. +sed -i '' "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../ios/Runner/Info.plist +sed -i '' "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../ios/Runner.xcodeproj/project.pbxproj + +# todo: revisit following at some point # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/ios/configure_duo.sh b/scripts/ios/configure_duo.sh deleted file mode 100755 index 3a6806305..000000000 --- a/scripts/ios/configure_duo.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Configure iOS for Duo. -sed -i 's/Stack Wallet/Stack Duo/g' ../ios/Runner/Info.plist -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../ios/Runner.xcodeproj/project.pbxproj diff --git a/scripts/linux/build_all_duo.sh b/scripts/linux/build_all_duo.sh index a22a77005..bbba76855 100755 --- a/scripts/linux/build_all_duo.sh +++ b/scripts/linux/build_all_duo.sh @@ -2,10 +2,13 @@ set -e -./configure_duo.sh -cd .. -./configure_duo.sh -cd linux +../app_config/configure_duo.sh + +# Configure Linux for Duo. +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../linux/CMakeLists.txt +sed -i "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../linux/my_application.cc + +# todo: revisit following at some point # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/linux/configure_duo.sh b/scripts/linux/configure_duo.sh deleted file mode 100755 index 6505c551d..000000000 --- a/scripts/linux/configure_duo.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Configure Linux for Duo. -sed -i 's/com.cypherstack.stackwallet/com.cypherstack.stackduo/g' ../../linux/CMakeLists.txt -sed -i 's/Stack Wallet/Stack Duo/g' ../../linux/my_application.cc diff --git a/scripts/macos/build_all_duo.sh b/scripts/macos/build_all_duo.sh index deb1d2f64..08be98f32 100755 --- a/scripts/macos/build_all_duo.sh +++ b/scripts/macos/build_all_duo.sh @@ -2,10 +2,12 @@ set -e -./configure_duo.sh -cd .. -./configure_duo.sh -cd macos +../app_config/configure_duo.sh + +# Configure macOS for Duo. +sed -i '' 's/com.cypherstack.stackWallet/com.cypherstack.stackDuo/g' ../../macos/Runner.xcodeproj/project.pbxproj + +# todo: revisit following at some point # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/macos/configure_duo.sh b/scripts/macos/configure_duo.sh deleted file mode 100755 index 05e23dfc7..000000000 --- a/scripts/macos/configure_duo.sh +++ /dev/null @@ -1,2 +0,0 @@ -# Configure macOS for Duo. -sed -i 's/com.cypherstack.stackWallet/com.cypherstack.stackDuo/g' ../macos/Runner.xcodeproj/project.pbxproj diff --git a/scripts/windows/build_all_duo.sh b/scripts/windows/build_all_duo.sh index 676c4899f..2f401237a 100755 --- a/scripts/windows/build_all_duo.sh +++ b/scripts/windows/build_all_duo.sh @@ -2,10 +2,12 @@ set -e -./configure_duo.sh -cd .. -./configure_duo.sh -cd windows +../app_config/configure_duo.sh + +# Configure Windows for Duo. +sed -i 's/Stack Wallet/Stack Duo/g' ../../windows/runner/Runner.rc + +# todo: revisit following at some point # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/windows/configure_duo.sh b/scripts/windows/configure_duo.sh deleted file mode 100755 index f49528e70..000000000 --- a/scripts/windows/configure_duo.sh +++ /dev/null @@ -1,2 +0,0 @@ -# Configure Windows for Duo. -sed -i 's/Stack Wallet/Stack Duo/g' ../windows/runner/Runner.rc From d756effb51b3bde0d8663f747d17f2905df5a6ce Mon Sep 17 00:00:00 2001 From: sneurlax Date: Thu, 16 May 2024 23:03:55 -0500 Subject: [PATCH 073/318] Update building.md for tor deps cypherstack/tor requires cargo-ndk on Windows but this was commented. As it's needed on the other platforms, we should list it right next to the Rust toolchains required throughout the stack. --- docs/building.md | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/docs/building.md b/docs/building.md index 0d88b1bb2..0a736bad6 100644 --- a/docs/building.md +++ b/docs/building.md @@ -62,10 +62,6 @@ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source ~/.bashrc rustup install 1.67.1 1.72.0 1.73.0 rustup default 1.67.1 -``` - -Install the additional components for Rust: -``` cargo install cargo-ndk --version 2.12.7 --locked ``` @@ -197,9 +193,9 @@ Download and install [Rust](https://www.rust-lang.org/tools/install). [Rustup]( ``` curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source ~/.bashrc -rustup install 1.67.1 -rustup install 1.72.0 +rustup install 1.67.1 1.72.0 1.73.0 rustup default 1.67.1 +cargo install cargo-ndk --version 2.12.7 --locked cargo install cbindgen cargo-lipo rustup target add aarch64-apple-ios aarch64-apple-darwin ``` @@ -298,17 +294,10 @@ Run `flutter doctor` in PowerShell to confirm its installation. ### Rust Install [Rust](https://www.rust-lang.org/tools/install) on the Windows host (not in WSL2). Download the installer from [rustup.rs](https://rustup.rs), make sure it works on the commandline (you may need to open a new terminal), and install the following versions: ``` -rustup install 1.72.0 # For frostdart and tor. -rustup install 1.67.1 # For flutter_libepiccash. +rustup install 1.67.1 1.72.0 1.73.0 rustup default 1.67.1 -``` - ### Windows SDK and Developer Mode Install the Windows SDK: https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/ You may need to install the [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/), which can be installed [by Visual Studio](https://stackoverflow.com/a/73923899) (`Tools > Get Tools and Features... > Modify > Individual Components > Windows 10 SDK`). From f1a437d45a62e7d8d44e5da85034be1e37585686 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 21 May 2024 11:11:40 -0600 Subject: [PATCH 074/318] eth contract abi fixes --- lib/services/ethereum/ethereum_api.dart | 2 +- .../impl/sub_wallets/eth_token_wallet.dart | 83 +++++++++---------- 2 files changed, 39 insertions(+), 46 deletions(-) diff --git a/lib/services/ethereum/ethereum_api.dart b/lib/services/ethereum/ethereum_api.dart index 8d1aec4ae..adcf5044d 100644 --- a/lib/services/ethereum/ethereum_api.dart +++ b/lib/services/ethereum/ethereum_api.dart @@ -688,7 +688,7 @@ abstract class EthereumAPI { try { final response = await client.get( url: Uri.parse( - "$stackBaseServer/abis?addrs=$contractAddress", + "$stackBaseServer/abis?addrs=$contractAddress&verbose=true", ), proxyInfo: Prefs.instance.useTor ? TorService.sharedInstance.getProxyInfo() diff --git a/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart b/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart index d5c4bc31d..bede12bab 100644 --- a/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart +++ b/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart @@ -16,7 +16,6 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/eth_commons.dart'; import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/utilities/extensions/impl/contract_abi.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/isar/models/token_wallet_info.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; @@ -85,11 +84,17 @@ class EthTokenWallet extends Wallet { final contractAddress = web3dart.EthereumAddress.fromHex(tokenContract.address); - if (tokenContract.abi == null) { + // first try to update the abi regardless just in case something has changed + try { _tokenContract = await _updateTokenABI( forContract: tokenContract, usingContractAddress: contractAddress.hex, ); + } catch (e, s) { + Logging.instance.log( + "$runtimeType _updateTokenABI(): $e\n$s", + level: LogLevel.Warning, + ); } try { @@ -102,50 +107,36 @@ class EthTokenWallet extends Wallet { contractAddress, ); _sendFunction = _deployedContract.function('transfer'); + // success + return; } catch (_) { - // some failure so first try to make sure we have the latest abi + // continue + } + + // Some failure, try for proxy contract + final contractAddressResponse = + await EthereumAPI.getProxyTokenImplementationAddress( + contractAddress.hex, + ); + + if (contractAddressResponse.value != null) { _tokenContract = await _updateTokenABI( forContract: tokenContract, - usingContractAddress: contractAddress.hex, + usingContractAddress: contractAddressResponse.value!, ); - - try { - // try again to parse abi and extract transfer function - _deployedContract = web3dart.DeployedContract( - ContractAbiExtensions.fromJsonList( - jsonList: tokenContract.abi!, - name: tokenContract.name, - ), - contractAddress, - ); - _sendFunction = _deployedContract.function('transfer'); - } catch (_) { - // if it fails again we check if there is a proxy token impl and - // then try one last time to update and parse the abi - final contractAddressResponse = - await EthereumAPI.getProxyTokenImplementationAddress( - contractAddress.hex); - - if (contractAddressResponse.value != null) { - _tokenContract = await _updateTokenABI( - forContract: tokenContract, - usingContractAddress: contractAddressResponse.value!, - ); - } else { - throw contractAddressResponse.exception!; - } - - _deployedContract = web3dart.DeployedContract( - ContractAbiExtensions.fromJsonList( - jsonList: tokenContract.abi!, - name: tokenContract.name, - ), - contractAddress, - ); - - _sendFunction = _deployedContract.function('transfer'); - } + } else { + throw contractAddressResponse.exception!; } + + _deployedContract = web3dart.DeployedContract( + ContractAbiExtensions.fromJsonList( + jsonList: tokenContract.abi!, + name: tokenContract.name, + ), + contractAddress, + ); + + _sendFunction = _deployedContract.function('transfer'); } catch (e, s) { Logging.instance.log( "$runtimeType wallet failed init(): $e\n$s", @@ -181,8 +172,10 @@ class EthTokenWallet extends Wallet { final myWeb3Address = web3dart.EthereumAddress.fromHex(myAddress); final nonce = txData.nonce ?? - await client.getTransactionCount(myWeb3Address, - atBlock: const web3dart.BlockNum.pending()); + await client.getTransactionCount( + myWeb3Address, + atBlock: const web3dart.BlockNum.pending(), + ); final amount = txData.recipients!.first.amount; final address = txData.recipients!.first.address; @@ -408,7 +401,7 @@ class EthTokenWallet extends Wallet { final List outputs = []; final List inputs = []; - OutputV2 output = OutputV2.isarCantDoRequiredInDefaultConstructor( + final output = OutputV2.isarCantDoRequiredInDefaultConstructor( scriptPubKeyHex: "00", valueStringSats: amount.raw.toString(), addresses: [ @@ -416,7 +409,7 @@ class EthTokenWallet extends Wallet { ], walletOwns: addressTo == addressString, ); - InputV2 input = InputV2.isarCantDoRequiredInDefaultConstructor( + final input = InputV2.isarCantDoRequiredInDefaultConstructor( scriptSigHex: null, scriptSigAsm: null, sequence: null, From 11397702e6ee7212bd2662f1e14590aea8943930 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 21 May 2024 11:11:40 -0600 Subject: [PATCH 075/318] eth contract abi fixes --- lib/services/ethereum/ethereum_api.dart | 2 +- .../impl/sub_wallets/eth_token_wallet.dart | 83 +++++++++---------- 2 files changed, 39 insertions(+), 46 deletions(-) diff --git a/lib/services/ethereum/ethereum_api.dart b/lib/services/ethereum/ethereum_api.dart index b9ac2224b..3931b4573 100644 --- a/lib/services/ethereum/ethereum_api.dart +++ b/lib/services/ethereum/ethereum_api.dart @@ -686,7 +686,7 @@ abstract class EthereumAPI { try { final response = await client.get( url: Uri.parse( - "$stackBaseServer/abis?addrs=$contractAddress", + "$stackBaseServer/abis?addrs=$contractAddress&verbose=true", ), proxyInfo: Prefs.instance.useTor ? TorService.sharedInstance.getProxyInfo() diff --git a/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart b/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart index d5c4bc31d..bede12bab 100644 --- a/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart +++ b/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart @@ -16,7 +16,6 @@ import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/eth_commons.dart'; import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/utilities/extensions/impl/contract_abi.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/wallets/isar/models/token_wallet_info.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; @@ -85,11 +84,17 @@ class EthTokenWallet extends Wallet { final contractAddress = web3dart.EthereumAddress.fromHex(tokenContract.address); - if (tokenContract.abi == null) { + // first try to update the abi regardless just in case something has changed + try { _tokenContract = await _updateTokenABI( forContract: tokenContract, usingContractAddress: contractAddress.hex, ); + } catch (e, s) { + Logging.instance.log( + "$runtimeType _updateTokenABI(): $e\n$s", + level: LogLevel.Warning, + ); } try { @@ -102,50 +107,36 @@ class EthTokenWallet extends Wallet { contractAddress, ); _sendFunction = _deployedContract.function('transfer'); + // success + return; } catch (_) { - // some failure so first try to make sure we have the latest abi + // continue + } + + // Some failure, try for proxy contract + final contractAddressResponse = + await EthereumAPI.getProxyTokenImplementationAddress( + contractAddress.hex, + ); + + if (contractAddressResponse.value != null) { _tokenContract = await _updateTokenABI( forContract: tokenContract, - usingContractAddress: contractAddress.hex, + usingContractAddress: contractAddressResponse.value!, ); - - try { - // try again to parse abi and extract transfer function - _deployedContract = web3dart.DeployedContract( - ContractAbiExtensions.fromJsonList( - jsonList: tokenContract.abi!, - name: tokenContract.name, - ), - contractAddress, - ); - _sendFunction = _deployedContract.function('transfer'); - } catch (_) { - // if it fails again we check if there is a proxy token impl and - // then try one last time to update and parse the abi - final contractAddressResponse = - await EthereumAPI.getProxyTokenImplementationAddress( - contractAddress.hex); - - if (contractAddressResponse.value != null) { - _tokenContract = await _updateTokenABI( - forContract: tokenContract, - usingContractAddress: contractAddressResponse.value!, - ); - } else { - throw contractAddressResponse.exception!; - } - - _deployedContract = web3dart.DeployedContract( - ContractAbiExtensions.fromJsonList( - jsonList: tokenContract.abi!, - name: tokenContract.name, - ), - contractAddress, - ); - - _sendFunction = _deployedContract.function('transfer'); - } + } else { + throw contractAddressResponse.exception!; } + + _deployedContract = web3dart.DeployedContract( + ContractAbiExtensions.fromJsonList( + jsonList: tokenContract.abi!, + name: tokenContract.name, + ), + contractAddress, + ); + + _sendFunction = _deployedContract.function('transfer'); } catch (e, s) { Logging.instance.log( "$runtimeType wallet failed init(): $e\n$s", @@ -181,8 +172,10 @@ class EthTokenWallet extends Wallet { final myWeb3Address = web3dart.EthereumAddress.fromHex(myAddress); final nonce = txData.nonce ?? - await client.getTransactionCount(myWeb3Address, - atBlock: const web3dart.BlockNum.pending()); + await client.getTransactionCount( + myWeb3Address, + atBlock: const web3dart.BlockNum.pending(), + ); final amount = txData.recipients!.first.amount; final address = txData.recipients!.first.address; @@ -408,7 +401,7 @@ class EthTokenWallet extends Wallet { final List outputs = []; final List inputs = []; - OutputV2 output = OutputV2.isarCantDoRequiredInDefaultConstructor( + final output = OutputV2.isarCantDoRequiredInDefaultConstructor( scriptPubKeyHex: "00", valueStringSats: amount.raw.toString(), addresses: [ @@ -416,7 +409,7 @@ class EthTokenWallet extends Wallet { ], walletOwns: addressTo == addressString, ); - InputV2 input = InputV2.isarCantDoRequiredInDefaultConstructor( + final input = InputV2.isarCantDoRequiredInDefaultConstructor( scriptSigHex: null, scriptSigAsm: null, sequence: null, From 22fef651cda0f702713099d0295e8808529155d6 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 21 May 2024 11:54:05 -0600 Subject: [PATCH 076/318] remaining app name replacement and make app name const (and some linter cleanup) --- lib/app_config.dart | 8 +- .../desktop_attention_delete_wallet.dart | 11 +- ...forgotten_passphrase_restore_from_swb.dart | 2 +- .../appearance_settings.dart | 232 +++--- .../backup_and_restore_settings.dart | 58 +- .../settings_menu/desktop_about_view.dart | 787 ++++++++++-------- .../settings_menu/security_settings.dart | 5 +- 7 files changed, 588 insertions(+), 515 deletions(-) diff --git a/lib/app_config.dart b/lib/app_config.dart index 123cf606c..846af4811 100644 --- a/lib/app_config.dart +++ b/lib/app_config.dart @@ -1,9 +1,9 @@ abstract class AppConfig { - static String get appName => prefix + separator + suffix; + static const appName = prefix + _separator + suffix; - static String get prefix => "Stack"; + static const prefix = "Stack"; - static String get separator => " "; + static const _separator = " "; - static String get suffix => "Wallet"; + static const suffix = "Wallet"; } diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_attention_delete_wallet.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_attention_delete_wallet.dart index a5353fffa..6262e6eca 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_attention_delete_wallet.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_attention_delete_wallet.dart @@ -10,6 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; @@ -24,9 +25,9 @@ import 'package:tuple/tuple.dart'; class DesktopAttentionDeleteWallet extends ConsumerStatefulWidget { const DesktopAttentionDeleteWallet({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -79,7 +80,7 @@ class _DesktopAttentionDeleteWallet child: Text( "You are going to permanently delete your wallet.\n\nIf you delete your wallet, " "the only way you can have access to your funds is by using your backup key." - "\n\nStack Wallet does not keep nor is able to restore your backup key or your wallet." + "\n\n${AppConfig.appName} does not keep nor is able to restore your backup key or your wallet." "\n\nPLEASE SAVE YOUR BACKUP KEY.", style: STextStyles.desktopTextExtraExtraSmall(context) .copyWith( @@ -118,7 +119,7 @@ class _DesktopAttentionDeleteWallet if (wallet is MnemonicInterface) { final words = await wallet.getMnemonicAsWords(); - if (mounted) { + if (context.mounted) { await Navigator.of(context).pushNamed( DeleteWalletKeysPopup.routeName, arguments: Tuple2( @@ -131,7 +132,7 @@ class _DesktopAttentionDeleteWallet }, ), ], - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart index 1affdc0fe..cfbbac0ec 100644 --- a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart +++ b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart @@ -118,7 +118,7 @@ class _ForgottenPassphraseRestoreFromSWBState final String? jsonString = await compute( SWB.decryptStackWalletWithPassphrase, Tuple2(fileToRestore, passphrase), - debugLabel: "stack wallet decryption compute", + debugLabel: "${AppConfig.appName} decryption compute", ); if (mounted) { diff --git a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/appearance_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/appearance_settings.dart index d71dba011..d378e557b 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/appearance_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/appearance_settings.dart @@ -14,6 +14,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/isar/stack_theme.dart'; import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_manage_themes.dart'; import 'package:stackwallet/providers/db/main_db_provider.dart'; @@ -29,7 +30,7 @@ import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:tuple/tuple.dart'; class AppearanceOptionSettings extends ConsumerStatefulWidget { - const AppearanceOptionSettings({Key? key}) : super(key: key); + const AppearanceOptionSettings({super.key}); static const String routeName = "/settingsMenuAppearance"; @@ -44,132 +45,139 @@ class _AppearanceOptionSettings Widget build(BuildContext context) { debugPrint("BUILD: $runtimeType"); return SingleChildScrollView( - child: Column( - children: [ - Padding( - padding: const EdgeInsets.only( - right: 30, - ), - child: RoundedWhiteContainer( - radiusMultiplier: 2, - child: Wrap( - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: SvgPicture.asset( - Assets.svg.circleSun, - width: 48, - height: 48, - ), - ), - Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - Padding( - padding: const EdgeInsets.all(10), - child: RichText( - textAlign: TextAlign.left, - text: TextSpan( - children: [ - TextSpan( - text: "Appearances", - style: STextStyles.desktopTextSmall(context), - ), - TextSpan( - text: - "\n\nCustomize how your Stack Wallet looks according to your preferences.", - style: STextStyles.desktopTextExtraExtraSmall( - context), - ), - ], - ), - ), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.only( + right: 30, + ), + child: RoundedWhiteContainer( + radiusMultiplier: 2, + child: Wrap( + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: SvgPicture.asset( + Assets.svg.circleSun, + width: 48, + height: 48, ), - ], - ), - const Padding( - padding: EdgeInsets.all(10.0), - child: Divider( - thickness: 0.5, ), - ), - Padding( - padding: const EdgeInsets.all(10.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + Column( + crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - Text( - "Display favorite wallets", - style: STextStyles.desktopTextExtraSmall(context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark), - textAlign: TextAlign.left, - ), - SizedBox( - height: 20, - width: 40, - child: DraggableSwitchButton( - isOn: ref.watch( - prefsChangeNotifierProvider.select( - (value) => value.showFavoriteWallets), + Padding( + padding: const EdgeInsets.all(10), + child: RichText( + textAlign: TextAlign.left, + text: TextSpan( + children: [ + TextSpan( + text: "Appearances", + style: + STextStyles.desktopTextSmall(context), + ), + TextSpan( + text: + "\n\nCustomize how your ${AppConfig.appName} looks according to your preferences.", + style: + STextStyles.desktopTextExtraExtraSmall( + context, + ), + ), + ], ), - onValueChanged: (newValue) { - ref - .read(prefsChangeNotifierProvider) - .showFavoriteWallets = newValue; - }, ), - ) - ], - ), - ), - const Padding( - padding: EdgeInsets.all(10.0), - child: Divider( - thickness: 0.5, - ), - ), - Padding( - padding: const EdgeInsets.all(10.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - "Choose theme", - style: STextStyles.desktopTextExtraSmall(context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark), - textAlign: TextAlign.left, ), ], ), - ), - const Padding( - padding: EdgeInsets.all(2), - child: ThemeToggle(), - ), - ], - ), - ], + const Padding( + padding: EdgeInsets.all(10.0), + child: Divider( + thickness: 0.5, + ), + ), + Padding( + padding: const EdgeInsets.all(10.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Display favorite wallets", + style: STextStyles.desktopTextExtraSmall(context) + .copyWith( + color: Theme.of(context) + .extension()! + .textDark, + ), + textAlign: TextAlign.left, + ), + SizedBox( + height: 20, + width: 40, + child: DraggableSwitchButton( + isOn: ref.watch( + prefsChangeNotifierProvider.select( + (value) => value.showFavoriteWallets, + ), + ), + onValueChanged: (newValue) { + ref + .read(prefsChangeNotifierProvider) + .showFavoriteWallets = newValue; + }, + ), + ), + ], + ), + ), + const Padding( + padding: EdgeInsets.all(10.0), + child: Divider( + thickness: 0.5, + ), + ), + Padding( + padding: const EdgeInsets.all(10.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Choose theme", + style: STextStyles.desktopTextExtraSmall(context) + .copyWith( + color: Theme.of(context) + .extension()! + .textDark, + ), + textAlign: TextAlign.left, + ), + ], + ), + ), + const Padding( + padding: EdgeInsets.all(2), + child: ThemeToggle(), + ), + ], + ), + ], + ), ), ), - ), - ], - )); + ], + ), + ); } } class ThemeToggle extends ConsumerStatefulWidget { const ThemeToggle({ - Key? key, - }) : super(key: key); + super.key, + }); @override ConsumerState createState() => _ThemeToggle(); diff --git a/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/backup_and_restore_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/backup_and_restore_settings.dart index 51a82619c..9c9b30bf9 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/backup_and_restore_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/backup_and_restore_settings.dart @@ -13,6 +13,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:intl/intl.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart'; @@ -38,7 +39,7 @@ import 'package:stackwallet/widgets/stack_dialog.dart'; import 'package:url_launcher/url_launcher.dart'; class BackupRestoreSettings extends ConsumerStatefulWidget { - const BackupRestoreSettings({Key? key}) : super(key: key); + const BackupRestoreSettings({super.key}); static const String routeName = "/settingsMenuBackupRestore"; @@ -299,7 +300,8 @@ class _BackupRestoreSettings extends ConsumerState { fileLocationController.text = ref.read(prefsChangeNotifierProvider).autoBackupLocation ?? " "; frequencyController.text = Format.prettyFrequencyType( - ref.read(prefsChangeNotifierProvider).backupFrequencyType); + ref.read(prefsChangeNotifierProvider).backupFrequencyType, + ); fileLocationFocusNode = FocusNode(); passwordFocusNode = FocusNode(); @@ -324,8 +326,9 @@ class _BackupRestoreSettings extends ConsumerState { Widget build(BuildContext context) { debugPrint("BUILD: $runtimeType"); - bool isEnabledAutoBackup = ref.watch(prefsChangeNotifierProvider - .select((value) => value.isAutoBackupEnabled)); + final bool isEnabledAutoBackup = ref.watch( + prefsChangeNotifierProvider.select((value) => value.isAutoBackupEnabled), + ); ref.listen( prefsChangeNotifierProvider @@ -334,8 +337,9 @@ class _BackupRestoreSettings extends ConsumerState { frequencyController.text = Format.prettyFrequencyType(next); }); - return LayoutBuilder(builder: (context, constraints) { - return SingleChildScrollView( + return LayoutBuilder( + builder: (context, constraints) { + return SingleChildScrollView( scrollDirection: Axis.vertical, child: ConstrainedBox( constraints: BoxConstraints( @@ -386,23 +390,26 @@ class _BackupRestoreSettings extends ConsumerState { TextSpan( text: "Auto Backup", style: STextStyles.desktopTextSmall( - context), + context, + ), ), TextSpan( text: - "\n\nAuto backup is a custom Stack Wallet feature that offers a convenient backup of your data." + "\n\nAuto backup is a custom ${AppConfig.appName} feature that offers a convenient backup of your data." "To ensure maximum security, we recommend using a unique password that you haven't used anywhere " "else on the internet before. Your password is not stored.", style: STextStyles .desktopTextExtraExtraSmall( - context), + context, + ), ), TextSpan( text: "\n\nFor more information, please see our website ", style: STextStyles .desktopTextExtraExtraSmall( - context), + context, + ), ), TextSpan( text: "stackwallet.com", @@ -412,7 +419,8 @@ class _BackupRestoreSettings extends ConsumerState { ..onTap = () { launchUrl( Uri.parse( - "https://stackwallet.com/"), + "https://stackwallet.com/", + ), mode: LaunchMode .externalApplication, ); @@ -458,14 +466,16 @@ class _BackupRestoreSettings extends ConsumerState { "Backed up ${prettySinceLastBackupString(ref.watch(prefsChangeNotifierProvider.select((value) => value.lastAutoBackup)))}", style: STextStyles.itemSubtitle( - context), + context, + ), ), CustomTextButton( text: "Back up now", onTap: () { ref .read( - autoSWBServiceProvider) + autoSWBServiceProvider, + ) .doBackup(); }, ), @@ -495,7 +505,7 @@ class _BackupRestoreSettings extends ConsumerState { }, ), ], - ) + ), ], ), ), @@ -539,7 +549,8 @@ class _BackupRestoreSettings extends ConsumerState { TextSpan( text: "Manual Backup", style: STextStyles.desktopTextSmall( - context), + context, + ), ), TextSpan( text: @@ -548,7 +559,8 @@ class _BackupRestoreSettings extends ConsumerState { "Use a strong password to encrypt your data.", style: STextStyles .desktopTextExtraExtraSmall( - context), + context, + ), ), ], ), @@ -622,15 +634,17 @@ class _BackupRestoreSettings extends ConsumerState { TextSpan( text: "Restore Backup", style: STextStyles.desktopTextSmall( - context), + context, + ), ), TextSpan( text: - "\n\nUse your Stack Wallet backup file to restore your wallets, address book " + "\n\nUse your ${AppConfig.appName} backup file to restore your wallets, address book " "and wallet preferences.", style: STextStyles .desktopTextExtraExtraSmall( - context), + context, + ), ), ], ), @@ -672,7 +686,9 @@ class _BackupRestoreSettings extends ConsumerState { ], ), ), - )); - }); + ), + ); + }, + ); } } diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index cfe90cf17..31ff8deb3 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -43,7 +43,8 @@ Future doesCommitExist( final Client client = Client(); try { final uri = Uri.parse( - "$kGithubAPI$kGithubHead/$organization/$project/commits/$commit"); + "$kGithubAPI$kGithubHead/$organization/$project/commits/$commit", + ); final commitQuery = await client.get( uri, @@ -51,8 +52,10 @@ Future doesCommitExist( ); final response = jsonDecode(commitQuery.body.toString()); - Logging.instance.log("doesCommitExist $project $commit $response", - level: LogLevel.Info); + Logging.instance.log( + "doesCommitExist $project $commit $response", + level: LogLevel.Info, + ); bool isThereCommit; try { isThereCommit = response['sha'] == commit; @@ -78,7 +81,8 @@ Future isHeadCommit( final Client client = Client(); try { final uri = Uri.parse( - "$kGithubAPI$kGithubHead/$organization/$project/commits/$branch"); + "$kGithubAPI$kGithubHead/$organization/$project/commits/$branch", + ); final commitQuery = await client.get( uri, @@ -86,8 +90,10 @@ Future isHeadCommit( ); final response = jsonDecode(commitQuery.body.toString()); - Logging.instance.log("isHeadCommit $project $commit $branch $response", - level: LogLevel.Info); + Logging.instance.log( + "isHeadCommit $project $commit $branch $response", + level: LogLevel.Info, + ); bool isHead; try { isHead = response['sha'] == commit; @@ -103,31 +109,35 @@ Future isHeadCommit( } class DesktopAboutView extends ConsumerWidget { - const DesktopAboutView({Key? key}) : super(key: key); + const DesktopAboutView({super.key}); static const String routeName = "/desktopAboutView"; @override Widget build(BuildContext context, WidgetRef ref) { - String firoCommit = FIRO_VERSIONS.getPluginVersion(); - String epicCashCommit = EPIC_VERSIONS.getPluginVersion(); - String moneroCommit = MONERO_VERSIONS.getPluginVersion(); - List futureFiroList = [ + final String firoCommit = FIRO_VERSIONS.getPluginVersion(); + final String epicCashCommit = EPIC_VERSIONS.getPluginVersion(); + final String moneroCommit = MONERO_VERSIONS.getPluginVersion(); + final List> futureFiroList = [ doesCommitExist("cypherstack", "flutter_liblelantus", firoCommit), isHeadCommit("cypherstack", "flutter_liblelantus", "main", firoCommit), ]; - Future commitFiroFuture = Future.wait(futureFiroList); - List futureEpicList = [ + final Future commitFiroFuture = Future.wait(futureFiroList); + final List> futureEpicList = [ doesCommitExist("cypherstack", "flutter_libepiccash", epicCashCommit), isHeadCommit( - "cypherstack", "flutter_libepiccash", "main", epicCashCommit), + "cypherstack", + "flutter_libepiccash", + "main", + epicCashCommit, + ), ]; - Future commitEpicFuture = Future.wait(futureEpicList); - List futureMoneroList = [ + final Future commitEpicFuture = Future.wait(futureEpicList); + final List> futureMoneroList = [ doesCommitExist("cypherstack", "flutter_libmonero", moneroCommit), isHeadCommit("cypherstack", "flutter_libmonero", "main", moneroCommit), ]; - Future commitMoneroFuture = Future.wait(futureMoneroList); + final Future commitMoneroFuture = Future.wait(futureMoneroList); debugPrint("BUILD: $runtimeType"); return DesktopScaffold( @@ -143,7 +153,7 @@ class DesktopAboutView extends ConsumerWidget { Text( "About", style: STextStyles.desktopH3(context), - ) + ), ], ), ), @@ -182,14 +192,15 @@ class DesktopAboutView extends ConsumerWidget { children: [ TextSpan( text: - "By using Stack Wallet, you agree to the ", + "By using ${AppConfig.appName}, you agree to the ", style: STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark3), + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textDark3, + ), ), TextSpan( text: "Terms of service", @@ -199,7 +210,8 @@ class DesktopAboutView extends ConsumerWidget { ..onTap = () { launchUrl( Uri.parse( - "https://stackwallet.com/terms-of-service.html"), + "https://stackwallet.com/terms-of-service.html", + ), mode: LaunchMode.externalApplication, ); @@ -208,12 +220,13 @@ class DesktopAboutView extends ConsumerWidget { TextSpan( text: " and ", style: STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark3), + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textDark3, + ), ), TextSpan( text: "Privacy policy", @@ -223,7 +236,8 @@ class DesktopAboutView extends ConsumerWidget { ..onTap = () { launchUrl( Uri.parse( - "https://stackwallet.com/privacy-policy.html"), + "https://stackwallet.com/privacy-policy.html", + ), mode: LaunchMode.externalApplication, ); @@ -242,8 +256,10 @@ class DesktopAboutView extends ConsumerWidget { children: [ FutureBuilder( future: PackageInfo.fromPlatform(), - builder: (context, - AsyncSnapshot snapshot) { + builder: ( + context, + AsyncSnapshot snapshot, + ) { String version = ""; String signature = ""; String build = ""; @@ -269,14 +285,16 @@ class DesktopAboutView extends ConsumerWidget { Text( "Version", style: STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .textDark), + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .textDark, + ), ), const SizedBox( height: 2, @@ -285,7 +303,8 @@ class DesktopAboutView extends ConsumerWidget { version, style: STextStyles.itemSubtitle( - context), + context, + ), ), ], ), @@ -299,14 +318,16 @@ class DesktopAboutView extends ConsumerWidget { Text( "Build number", style: STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .textDark), + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .textDark, + ), ), const SizedBox( height: 2, @@ -315,7 +336,8 @@ class DesktopAboutView extends ConsumerWidget { build, style: STextStyles.itemSubtitle( - context), + context, + ), ), ], ), @@ -331,14 +353,16 @@ class DesktopAboutView extends ConsumerWidget { Text( "Build signature", style: STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .textDark), + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .textDark, + ), ), const SizedBox( height: 2, @@ -347,7 +371,8 @@ class DesktopAboutView extends ConsumerWidget { signature, style: STextStyles.itemSubtitle( - context), + context, + ), ), ], ), @@ -355,316 +380,337 @@ class DesktopAboutView extends ConsumerWidget { width: 350, ), FutureBuilder( - future: commitFiroFuture, - builder: (context, - AsyncSnapshot - snapshot) { - bool commitExists = false; - bool isHead = false; - CommitStatus stateOfCommit = - CommitStatus.notLoaded; + future: commitFiroFuture, + builder: ( + context, + AsyncSnapshot snapshot, + ) { + bool commitExists = false; + bool isHead = false; + CommitStatus stateOfCommit = + CommitStatus.notLoaded; - if (snapshot.connectionState == - ConnectionState - .done && - snapshot.hasData) { - commitExists = snapshot - .data![0] as bool; - isHead = snapshot.data![1] - as bool; - if (commitExists && - isHead) { - stateOfCommit = - CommitStatus.isHead; - } else if (commitExists) { - stateOfCommit = - CommitStatus - .isOldCommit; - } else { - stateOfCommit = - CommitStatus - .notACommit; - } + if (snapshot.connectionState == + ConnectionState.done && + snapshot.hasData) { + commitExists = + snapshot.data![0] as bool; + isHead = + snapshot.data![1] as bool; + if (commitExists && isHead) { + stateOfCommit = + CommitStatus.isHead; + } else if (commitExists) { + stateOfCommit = CommitStatus + .isOldCommit; + } else { + stateOfCommit = + CommitStatus.notACommit; } - TextStyle indicationStyle = - STextStyles.itemSubtitle( - context); - switch (stateOfCommit) { - case CommitStatus.isHead: - indicationStyle = STextStyles - .itemSubtitle( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .accentColorGreen); - break; - case CommitStatus - .isOldCommit: - indicationStyle = STextStyles - .itemSubtitle( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .accentColorYellow); - break; - case CommitStatus - .notACommit: - indicationStyle = STextStyles - .itemSubtitle( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .accentColorRed); - break; - default: - break; - } - return Column( - crossAxisAlignment: - CrossAxisAlignment - .start, - children: [ - Text( - "Firo Build Commit", - style: STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .textDark), + } + TextStyle indicationStyle = + STextStyles.itemSubtitle( + context, + ); + switch (stateOfCommit) { + case CommitStatus.isHead: + indicationStyle = + STextStyles + .itemSubtitle( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .accentColorGreen, + ); + break; + case CommitStatus.isOldCommit: + indicationStyle = + STextStyles + .itemSubtitle( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .accentColorYellow, + ); + break; + case CommitStatus.notACommit: + indicationStyle = + STextStyles + .itemSubtitle( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .accentColorRed, + ); + break; + default: + break; + } + return Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Firo Build Commit", + style: STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .textDark, ), - const SizedBox( - height: 2, - ), - SelectableText( - firoCommit, - style: indicationStyle, - ), - ], - ); - }), + ), + const SizedBox( + height: 2, + ), + SelectableText( + firoCommit, + style: indicationStyle, + ), + ], + ); + }, + ), ], ), const SizedBox(height: 35), Row( children: [ FutureBuilder( - future: commitEpicFuture, - builder: (context, - AsyncSnapshot - snapshot) { - bool commitExists = false; - bool isHead = false; - CommitStatus stateOfCommit = - CommitStatus.notLoaded; + future: commitEpicFuture, + builder: ( + context, + AsyncSnapshot snapshot, + ) { + bool commitExists = false; + bool isHead = false; + CommitStatus stateOfCommit = + CommitStatus.notLoaded; - if (snapshot.connectionState == - ConnectionState - .done && - snapshot.hasData) { - commitExists = snapshot - .data![0] as bool; - isHead = snapshot.data![1] - as bool; - if (commitExists && - isHead) { - stateOfCommit = - CommitStatus.isHead; - } else if (commitExists) { - stateOfCommit = - CommitStatus - .isOldCommit; - } else { - stateOfCommit = - CommitStatus - .notACommit; - } + if (snapshot.connectionState == + ConnectionState.done && + snapshot.hasData) { + commitExists = + snapshot.data![0] as bool; + isHead = + snapshot.data![1] as bool; + if (commitExists && isHead) { + stateOfCommit = + CommitStatus.isHead; + } else if (commitExists) { + stateOfCommit = CommitStatus + .isOldCommit; + } else { + stateOfCommit = + CommitStatus.notACommit; } - TextStyle indicationStyle = - STextStyles.itemSubtitle( - context); - switch (stateOfCommit) { - case CommitStatus.isHead: - indicationStyle = STextStyles - .itemSubtitle( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .accentColorGreen); - break; - case CommitStatus - .isOldCommit: - indicationStyle = STextStyles - .itemSubtitle( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .accentColorYellow); - break; - case CommitStatus - .notACommit: - indicationStyle = STextStyles - .itemSubtitle( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .accentColorRed); - break; - default: - break; - } - return Column( - crossAxisAlignment: - CrossAxisAlignment - .start, - children: [ - Text( - "Epic Cash Build Commit", - style: STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .textDark), + } + TextStyle indicationStyle = + STextStyles.itemSubtitle( + context, + ); + switch (stateOfCommit) { + case CommitStatus.isHead: + indicationStyle = + STextStyles + .itemSubtitle( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .accentColorGreen, + ); + break; + case CommitStatus.isOldCommit: + indicationStyle = + STextStyles + .itemSubtitle( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .accentColorYellow, + ); + break; + case CommitStatus.notACommit: + indicationStyle = + STextStyles + .itemSubtitle( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .accentColorRed, + ); + break; + default: + break; + } + return Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Epic Cash Build Commit", + style: STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .textDark, ), - const SizedBox( - height: 2, - ), - SelectableText( - epicCashCommit, - style: indicationStyle, - ), - ], - ); - }), + ), + const SizedBox( + height: 2, + ), + SelectableText( + epicCashCommit, + style: indicationStyle, + ), + ], + ); + }, + ), const SizedBox( width: 105, ), FutureBuilder( - future: commitMoneroFuture, - builder: (context, - AsyncSnapshot - snapshot) { - bool commitExists = false; - bool isHead = false; - CommitStatus stateOfCommit = - CommitStatus.notLoaded; + future: commitMoneroFuture, + builder: ( + context, + AsyncSnapshot snapshot, + ) { + bool commitExists = false; + bool isHead = false; + CommitStatus stateOfCommit = + CommitStatus.notLoaded; - if (snapshot.connectionState == - ConnectionState - .done && - snapshot.hasData) { - commitExists = snapshot - .data![0] as bool; - isHead = snapshot.data![1] - as bool; - if (commitExists && - isHead) { - stateOfCommit = - CommitStatus.isHead; - } else if (commitExists) { - stateOfCommit = - CommitStatus - .isOldCommit; - } else { - stateOfCommit = - CommitStatus - .notACommit; - } + if (snapshot.connectionState == + ConnectionState.done && + snapshot.hasData) { + commitExists = + snapshot.data![0] as bool; + isHead = + snapshot.data![1] as bool; + if (commitExists && isHead) { + stateOfCommit = + CommitStatus.isHead; + } else if (commitExists) { + stateOfCommit = CommitStatus + .isOldCommit; + } else { + stateOfCommit = + CommitStatus.notACommit; } - TextStyle indicationStyle = - STextStyles.itemSubtitle( - context); - switch (stateOfCommit) { - case CommitStatus.isHead: - indicationStyle = STextStyles - .itemSubtitle( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .accentColorGreen); - break; - case CommitStatus - .isOldCommit: - indicationStyle = STextStyles - .itemSubtitle( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .accentColorYellow); - break; - case CommitStatus - .notACommit: - indicationStyle = STextStyles - .itemSubtitle( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .accentColorRed); - break; - default: - break; - } - return Column( - crossAxisAlignment: - CrossAxisAlignment - .start, - children: [ - Text( - "Monero Build Commit", - style: STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .textDark), + } + TextStyle indicationStyle = + STextStyles.itemSubtitle( + context, + ); + switch (stateOfCommit) { + case CommitStatus.isHead: + indicationStyle = + STextStyles + .itemSubtitle( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .accentColorGreen, + ); + break; + case CommitStatus.isOldCommit: + indicationStyle = + STextStyles + .itemSubtitle( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .accentColorYellow, + ); + break; + case CommitStatus.notACommit: + indicationStyle = + STextStyles + .itemSubtitle( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .accentColorRed, + ); + break; + default: + break; + } + return Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Monero Build Commit", + style: STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .textDark, ), - const SizedBox( - height: 2, - ), - SelectableText( - moneroCommit, - style: indicationStyle, - ), - ], - ); - }), + ), + const SizedBox( + height: 2, + ), + SelectableText( + moneroCommit, + style: indicationStyle, + ), + ], + ); + }, + ), ], ), const SizedBox(height: 35), @@ -673,20 +719,21 @@ class DesktopAboutView extends ConsumerWidget { Text( "Website:", style: STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension< - StackColors>()! - .textDark), + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textDark, + ), ), CustomTextButton( text: "https://stackwallet.com", onTap: () { launchUrl( Uri.parse( - "https://stackwallet.com"), + "https://stackwallet.com", + ), mode: LaunchMode .externalApplication, ); @@ -700,13 +747,13 @@ class DesktopAboutView extends ConsumerWidget { Text( "Tezos functionality:", style: STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension< - StackColors>()! - .textDark), + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textDark, + ), ), CustomTextButton( text: "Powered by TzKT API", @@ -723,10 +770,10 @@ class DesktopAboutView extends ConsumerWidget { ], ); }, - ) + ), ], ), - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart index 1d24a74f3..f4088095b 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart @@ -13,6 +13,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/providers/desktop/storage_crypto_handler_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; @@ -26,7 +27,7 @@ import 'package:stackwallet/widgets/stack_text_field.dart'; import 'package:zxcvbn/zxcvbn.dart'; class SecuritySettings extends ConsumerStatefulWidget { - const SecuritySettings({Key? key}) : super(key: key); + const SecuritySettings({super.key}); static const String routeName = "/settingsMenuSecurity"; @@ -186,7 +187,7 @@ class _SecuritySettings extends ConsumerState { height: 16, ), Text( - "Protect your Stack Wallet with a strong password. Stack Wallet does not store " + "Protect your ${AppConfig.appName} with a strong password. ${AppConfig.appName} does not store " "your password, and is therefore NOT able to restore it. Keep your password safe and secure.", style: STextStyles.desktopTextExtraExtraSmall(context), ), From c9d4e57d65ab55a115be40cb4c4eb1f561c02391 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 21 May 2024 12:10:09 -0600 Subject: [PATCH 077/318] rename to shorter name --- lib/db/db_version_migration.dart | 2 +- lib/db/hive/db.dart | 2 +- lib/db/migrate_wallets_to_isar.dart | 2 +- lib/models/contact_address_entry.dart | 2 +- lib/models/isar/exchange_cache/currency.dart | 2 +- lib/models/isar/models/block_explorer.dart | 2 +- lib/models/isar/models/contact_entry.dart | 4 ++-- lib/models/isar/stack_theme.dart | 6 +++--- lib/notifications/notification_card.dart | 3 +-- .../add_wallet_view/add_wallet_view.dart | 4 ++-- .../address_book_views/address_book_view.dart | 2 +- .../subviews/address_book_filter_view.dart | 2 +- .../subviews/coin_select_sheet.dart | 2 +- .../new_contact_address_entry_form.dart | 4 ++-- lib/pages/buy_view/buy_form.dart | 6 +++--- .../sub_widgets/crypto_selection_view.dart | 6 +++--- .../exchange_currency_selection_view.dart | 2 +- .../exchange_step_views/step_2_view.dart | 8 +++----- .../exchange_step_views/step_4_view.dart | 4 ++-- .../sub_widgets/exchange_provider_option.dart | 4 ++-- lib/pages/exchange_view/trade_details_view.dart | 17 ++++++++--------- .../manage_coin_units_view.dart | 2 +- .../manage_nodes_views/manage_nodes_view.dart | 2 +- .../helpers/restore_create_backup.dart | 6 +++--- .../address_book_view/desktop_address_book.dart | 2 +- .../exchange_steps/step_scaffold.dart | 2 +- .../subwidgets/desktop_step_2.dart | 10 +++++----- .../subwidgets/desktop_step_4.dart | 2 +- .../desktop_manage_block_explorers_dialog.dart | 4 ++-- .../settings/settings_menu/nodes_settings.dart | 2 +- lib/services/buy/simplex/simplex_api.dart | 2 +- lib/services/node_service.dart | 12 +++++------- lib/services/notifications_service.dart | 2 +- lib/services/price.dart | 8 ++++---- lib/services/price_service.dart | 3 +-- lib/services/wallets_service.dart | 2 +- lib/supported_coins.dart | 2 +- lib/utilities/prefs.dart | 4 ++-- lib/wallets/isar/models/wallet_info.dart | 6 +++--- .../providers/all_wallets_info_provider.dart | 2 +- lib/widgets/address_book_card.dart | 2 +- lib/widgets/choose_coin_view.dart | 2 +- test/services/node_service_test.dart | 10 +++++----- 43 files changed, 84 insertions(+), 91 deletions(-) diff --git a/lib/db/db_version_migration.dart b/lib/db/db_version_migration.dart index 3cc9b9c3c..ed69c0bbc 100644 --- a/lib/db/db_version_migration.dart +++ b/lib/db/db_version_migration.dart @@ -560,7 +560,7 @@ class DbVersionMigrator with WalletDB { final count = await MainDB.instance.getTransactions(walletId).count(); - final crypto = SupportedCoins.getCryptoCurrencyFor(info.coinIdentifier); + final crypto = Coins.getCryptoCurrencyFor(info.coinIdentifier); for (var i = 0; i < count; i += 50) { final txns = await MainDB.instance diff --git a/lib/db/hive/db.dart b/lib/db/hive/db.dart index f63c00e94..25a793219 100644 --- a/lib/db/hive/db.dart +++ b/lib/db/hive/db.dart @@ -164,7 +164,7 @@ class DB { names.removeWhere((name, dyn) { final jsonObject = Map.from(dyn as Map); try { - SupportedCoins.getCryptoCurrencyFor(jsonObject["coin"] as String); + Coins.getCryptoCurrencyFor(jsonObject["coin"] as String); return false; } catch (e, s) { Logging.instance.log( diff --git a/lib/db/migrate_wallets_to_isar.dart b/lib/db/migrate_wallets_to_isar.dart index 72a9b501f..c222bed57 100644 --- a/lib/db/migrate_wallets_to_isar.dart +++ b/lib/db/migrate_wallets_to_isar.dart @@ -171,7 +171,7 @@ Future migrateWalletsToIsar({ coinName: old.coinIdentifier, walletId: old.walletId, name: old.name, - mainAddressType: SupportedCoins.getCryptoCurrencyFor(old.coinIdentifier) + mainAddressType: Coins.getCryptoCurrencyFor(old.coinIdentifier) .primaryAddressType, favouriteOrderIndex: favourites.indexOf(old.walletId), cachedChainHeight: walletBox.get( diff --git a/lib/models/contact_address_entry.dart b/lib/models/contact_address_entry.dart index f57ed6d4b..764212330 100644 --- a/lib/models/contact_address_entry.dart +++ b/lib/models/contact_address_entry.dart @@ -43,7 +43,7 @@ class ContactAddressEntry { factory ContactAddressEntry.fromJson(Map jsonObject) { return ContactAddressEntry( - coin: SupportedCoins.getCryptoCurrencyFor(jsonObject["coin"] as String), + coin: Coins.getCryptoCurrencyFor(jsonObject["coin"] as String), address: jsonObject["address"] as String, label: jsonObject["label"] as String, other: jsonObject["other"] as String?, diff --git a/lib/models/isar/exchange_cache/currency.dart b/lib/models/isar/exchange_cache/currency.dart index 0233cbe98..86236a685 100644 --- a/lib/models/isar/exchange_cache/currency.dart +++ b/lib/models/isar/exchange_cache/currency.dart @@ -161,7 +161,7 @@ class Currency { static bool checkIsStackCoin(String ticker) { try { - SupportedCoins.getCryptoCurrencyForTicker(ticker); + Coins.getCryptoCurrencyForTicker(ticker); return true; } catch (_) { return false; diff --git a/lib/models/isar/models/block_explorer.dart b/lib/models/isar/models/block_explorer.dart index 411ad4ec3..da0e2b527 100644 --- a/lib/models/isar/models/block_explorer.dart +++ b/lib/models/isar/models/block_explorer.dart @@ -31,7 +31,7 @@ class TransactionBlockExplorer { @ignore CryptoCurrency? get coin { try { - return SupportedCoins.getCryptoCurrencyForTicker(ticker); + return Coins.getCryptoCurrencyForTicker(ticker); } catch (_) { return null; } diff --git a/lib/models/isar/models/contact_entry.dart b/lib/models/isar/models/contact_entry.dart index b3a0fe809..16925ce24 100644 --- a/lib/models/isar/models/contact_entry.dart +++ b/lib/models/isar/models/contact_entry.dart @@ -37,7 +37,7 @@ class ContactEntry { @ignore List get addressesSorted { final List sorted = []; - for (final coin in SupportedCoins.cryptocurrencies) { + for (final coin in Coins.cryptocurrencies) { final slice = addresses.where((e) => e.coin == coin).toList(); if (slice.isNotEmpty) { slice.sort( @@ -102,7 +102,7 @@ class ContactAddressEntry { late final String? other; @ignore - CryptoCurrency get coin => SupportedCoins.getCryptoCurrencyFor(coinName); + CryptoCurrency get coin => Coins.getCryptoCurrencyFor(coinName); ContactAddressEntry(); diff --git a/lib/models/isar/stack_theme.dart b/lib/models/isar/stack_theme.dart index b33ca274d..3ff54c3b7 100644 --- a/lib/models/isar/stack_theme.dart +++ b/lib/models/isar/stack_theme.dart @@ -1858,7 +1858,7 @@ class StackTheme { final Map result = {}; for (final mainNetId - in SupportedCoins.cryptocurrencies.map((e) => e.mainNetId)) { + in Coins.cryptocurrencies.map((e) => e.mainNetId)) { if (map[mainNetId] is String) { result[mainNetId] = Color( (map[mainNetId] as String).toBigIntFromHex.toInt(), @@ -2176,7 +2176,7 @@ class ThemeAssetsV2 implements IThemeAssets { final Map result = {}; - for (final coin in SupportedCoins.cryptocurrencies) { + for (final coin in Coins.cryptocurrencies) { result[coin.mainNetId] = map[coin.mainNetId] as String? ?? placeHolder; } @@ -2511,7 +2511,7 @@ class ThemeAssetsV3 implements IThemeAssets { final Map result = {}; - for (final coin in SupportedCoins.cryptocurrencies) { + for (final coin in Coins.cryptocurrencies) { result[coin.mainNetId] = map[coin.mainNetId] as String? ?? placeHolder; result[coin.mainNetId] = prependIfNeeded(result[coin.mainNetId]!); } diff --git a/lib/notifications/notification_card.dart b/lib/notifications/notification_card.dart index 1135a478c..006d56185 100644 --- a/lib/notifications/notification_card.dart +++ b/lib/notifications/notification_card.dart @@ -44,8 +44,7 @@ class NotificationCard extends ConsumerWidget { String coinIconPath(IThemeAssets assets, WidgetRef ref) { try { - final coin = - SupportedCoins.getCryptoCurrencyByPrettyName(notification.coinName); + final coin = Coins.getCryptoCurrencyByPrettyName(notification.coinName); return ref.read(coinIconProvider(coin)); } catch (_) { return notification.iconAssetName; diff --git a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart index 267358b54..c0f73cee4 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart @@ -66,11 +66,11 @@ class _AddWalletViewState extends ConsumerState { String _searchTerm = ""; final _coinsTestnet = [ - ...SupportedCoins.cryptocurrencies + ...Coins.cryptocurrencies .where((e) => e.network == CryptoCurrencyNetwork.test), ]; final _coins = [ - ...SupportedCoins.cryptocurrencies + ...Coins.cryptocurrencies .where((e) => e.network == CryptoCurrencyNetwork.main), ]; final List coinEntities = []; diff --git a/lib/pages/address_book_views/address_book_view.dart b/lib/pages/address_book_views/address_book_view.dart index 3f47a8cd7..a57ed3622 100644 --- a/lib/pages/address_book_views/address_book_view.dart +++ b/lib/pages/address_book_views/address_book_view.dart @@ -67,7 +67,7 @@ class _AddressBookViewState extends ConsumerState { ref.refresh(addressBookFilterProvider); if (widget.coin == null) { - final coins = [...SupportedCoins.cryptocurrencies]; + final coins = [...Coins.cryptocurrencies]; coins.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages/address_book_views/subviews/address_book_filter_view.dart b/lib/pages/address_book_views/subviews/address_book_filter_view.dart index d973555af..7253d02d1 100644 --- a/lib/pages/address_book_views/subviews/address_book_filter_view.dart +++ b/lib/pages/address_book_views/subviews/address_book_filter_view.dart @@ -41,7 +41,7 @@ class _AddressBookFilterViewState extends ConsumerState { @override void initState() { - final coins = [...SupportedCoins.cryptocurrencies]; + final coins = [...Coins.cryptocurrencies]; coins.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages/address_book_views/subviews/coin_select_sheet.dart b/lib/pages/address_book_views/subviews/coin_select_sheet.dart index fe8b91af5..409cb2e7e 100644 --- a/lib/pages/address_book_views/subviews/coin_select_sheet.dart +++ b/lib/pages/address_book_views/subviews/coin_select_sheet.dart @@ -28,7 +28,7 @@ class CoinSelectSheet extends StatelessWidget { @override Widget build(BuildContext context) { final maxHeight = MediaQuery.of(context).size.height * 0.60; - final coins_ = [...SupportedCoins.cryptocurrencies]; + final coins_ = [...Coins.cryptocurrencies]; coins_.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart b/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart index 00a735c93..22433f8dd 100644 --- a/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart +++ b/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart @@ -74,7 +74,7 @@ class _NewContactAddressEntryFormState ..text = ref.read(addressEntryDataProvider(widget.id)).address ?? ""; addressLabelFocusNode = FocusNode(); addressFocusNode = FocusNode(); - coins = [...SupportedCoins.cryptocurrencies]; + coins = [...Coins.cryptocurrencies]; super.initState(); } @@ -91,7 +91,7 @@ class _NewContactAddressEntryFormState Widget build(BuildContext context) { final isDesktop = Util.isDesktop; if (isDesktop) { - coins = [...SupportedCoins.cryptocurrencies]; + coins = [...Coins.cryptocurrencies]; coins.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages/buy_view/buy_form.dart b/lib/pages/buy_view/buy_form.dart index 67021d8f8..d45f7ea76 100644 --- a/lib/pages/buy_view/buy_form.dart +++ b/lib/pages/buy_view/buy_form.dart @@ -413,7 +413,7 @@ class _BuyFormState extends ConsumerState { if (ticker == null) return false; try { - SupportedCoins.getCryptoCurrencyForTicker(ticker); + Coins.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; @@ -1168,7 +1168,7 @@ class _BuyFormState extends ConsumerState { text: "Choose from Stack", onTap: () { try { - final coin = SupportedCoins.getCryptoCurrencyForTicker( + final coin = Coins.getCryptoCurrencyForTicker( selectedCrypto!.ticker, ); Navigator.of(context) @@ -1331,7 +1331,7 @@ class _BuyFormState extends ConsumerState { ), Expanded( child: AddressBookAddressChooser( - coin: SupportedCoins + coin: Coins .cryptocurrencies .firstWhere( (e) => diff --git a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart index bf101ec72..beffa27c7 100644 --- a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart +++ b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart @@ -70,7 +70,7 @@ class _CryptoSelectionViewState extends ConsumerState { coins.sort( (a, b) => a.ticker.toLowerCase().compareTo(b.ticker.toLowerCase()), ); - for (final coin in SupportedCoins.cryptocurrencies.reversed) { + for (final coin in Coins.cryptocurrencies.reversed) { final index = coins.indexWhere( (element) => element.ticker.toLowerCase() == coin.ticker.toLowerCase(), ); @@ -270,7 +270,7 @@ bool isStackCoin(String? ticker) { if (ticker == null) return false; try { - SupportedCoins.getCryptoCurrencyForTicker(ticker); + Coins.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; @@ -305,7 +305,7 @@ class CoinIconForTicker extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { try { - final coin = SupportedCoins.getCryptoCurrencyForTicker(ticker); + final coin = Coins.getCryptoCurrencyForTicker(ticker); return SvgPicture.file( File( ref.watch(coinIconProvider(coin)), diff --git a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart index 7698d875b..0ea602e18 100644 --- a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart +++ b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart @@ -365,7 +365,7 @@ class _ExchangeCurrencySelectionViewState Flexible( child: Builder( builder: (context) { - final coins = SupportedCoins.cryptocurrencies.where( + final coins = Coins.cryptocurrencies.where( (e) => e.ticker.toLowerCase() != widget.pairedTicker?.toLowerCase(), diff --git a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart index 5f4ed4a6b..7b81b0799 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart @@ -72,7 +72,7 @@ class _Step2ViewState extends ConsumerState { bool isStackCoin(String ticker) { try { - SupportedCoins.getCryptoCurrencyForTicker(ticker); + Coins.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; @@ -207,8 +207,7 @@ class _Step2ViewState extends ConsumerState { text: "Choose from Stack", onTap: () { try { - final coin = SupportedCoins - .cryptocurrencies + final coin = Coins.cryptocurrencies .firstWhere((e) => e.ticker.toLowerCase() == model.receiveTicker @@ -483,8 +482,7 @@ class _Step2ViewState extends ConsumerState { text: "Choose from Stack", onTap: () { try { - final coin = SupportedCoins - .cryptocurrencies + final coin = Coins.cryptocurrencies .firstWhere((e) => e.ticker.toLowerCase() == model.sendTicker.toLowerCase()); diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index ba9e37ad6..58f1a0c6c 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -75,7 +75,7 @@ class _Step4ViewState extends ConsumerState { bool _isWalletCoinAndHasWallet(String ticker, WidgetRef ref) { try { - final coin = SupportedCoins.getCryptoCurrencyForTicker(ticker); + final coin = Coins.getCryptoCurrencyForTicker(ticker); return ref .read(pWallets) .wallets @@ -853,7 +853,7 @@ class _Step4ViewState extends ConsumerState { .useMaterialPageRoute, builder: (BuildContext context) { - final coin = SupportedCoins + final coin = Coins .cryptocurrencies .firstWhere( (e) => diff --git a/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart b/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart index 926fa5ddb..3e1f2c2d8 100644 --- a/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart +++ b/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart @@ -94,7 +94,7 @@ class _ExchangeOptionState extends ConsumerState { int decimals; try { - decimals = SupportedCoins.getCryptoCurrencyForTicker( + decimals = Coins.getCryptoCurrencyForTicker( receivingCurrency.ticker, ).fractionDigits; } catch (_) { @@ -113,7 +113,7 @@ class _ExchangeOptionState extends ConsumerState { CryptoCurrency? coin; try { - coin = SupportedCoins.getCryptoCurrencyForTicker( + coin = Coins.getCryptoCurrencyForTicker( receivingCurrency.ticker, ); } catch (_) { diff --git a/lib/pages/exchange_view/trade_details_view.dart b/lib/pages/exchange_view/trade_details_view.dart index 33d516d8e..8d0a989e0 100644 --- a/lib/pages/exchange_view/trade_details_view.dart +++ b/lib/pages/exchange_view/trade_details_view.dart @@ -88,9 +88,9 @@ class _TradeDetailsViewState extends ConsumerState { bool isStackCoin(String ticker) { try { try { - SupportedCoins.getCryptoCurrencyForTicker(ticker); + Coins.getCryptoCurrencyForTicker(ticker); } catch (_) {} - SupportedCoins.getCryptoCurrencyByPrettyName(ticker); + Coins.getCryptoCurrencyByPrettyName(ticker); return true; } on ArgumentError catch (_) { return false; @@ -279,11 +279,11 @@ class _TradeDetailsViewState extends ConsumerState { onPressed: () { CryptoCurrency coin; try { - coin = SupportedCoins.getCryptoCurrencyForTicker( + coin = Coins.getCryptoCurrencyForTicker( trade.payInCurrency, ); } catch (_) { - coin = SupportedCoins.getCryptoCurrencyByPrettyName( + coin = Coins.getCryptoCurrencyByPrettyName( trade.payInCurrency, ); } @@ -379,8 +379,7 @@ class _TradeDetailsViewState extends ConsumerState { builder: (context) { String text; try { - final coin = - SupportedCoins.getCryptoCurrencyForTicker( + final coin = Coins.getCryptoCurrencyForTicker( trade.payInCurrency, ); final amount = sendAmount.toAmount( @@ -629,7 +628,7 @@ class _TradeDetailsViewState extends ConsumerState { text: "View transaction", onTap: () { final CryptoCurrency coin = - SupportedCoins.getCryptoCurrencyForTicker( + Coins.getCryptoCurrencyForTicker( trade.payInCurrency, ); @@ -1382,11 +1381,11 @@ class _TradeDetailsViewState extends ConsumerState { onPressed: () { CryptoCurrency coin; try { - coin = SupportedCoins.getCryptoCurrencyForTicker( + coin = Coins.getCryptoCurrencyForTicker( trade.payInCurrency, ); } catch (_) { - coin = SupportedCoins.getCryptoCurrencyByPrettyName( + coin = Coins.getCryptoCurrencyByPrettyName( trade.payInCurrency, ); } diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart index 7ec0656c1..0e9444e79 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart @@ -45,7 +45,7 @@ class ManageCoinUnitsView extends ConsumerWidget { prefsChangeNotifierProvider.select((value) => value.showTestNetCoins), ); - final _coins = SupportedCoins.cryptocurrencies + final _coins = Coins.cryptocurrencies .where((e) => e is! Firo && e.network != CryptoCurrencyNetwork.test) .toList(); diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart index 74980942b..74c0eaabd 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart @@ -38,7 +38,7 @@ class ManageNodesView extends ConsumerStatefulWidget { } class _ManageNodesViewState extends ConsumerState { - List _coins = [...SupportedCoins.cryptocurrencies]; + List _coins = [...Coins.cryptocurrencies]; @override void initState() { diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart index 6ece250f1..9e1acb9f2 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart @@ -774,7 +774,7 @@ abstract class SWB { return false; } - final coin = SupportedCoins.getCryptoCurrencyFor( + final coin = Coins.getCryptoCurrencyFor( walletbackup['coinName'] as String, ); @@ -1036,7 +1036,7 @@ abstract class SWB { for (final node in primaryNodes) { try { await nodeService.setPrimaryNodeFor( - coin: SupportedCoins.getCryptoCurrencyByPrettyName( + coin: Coins.getCryptoCurrencyByPrettyName( node['coinName'] as String, ), node: nodeService.getNodeById(id: node['id'] as String)!, @@ -1226,7 +1226,7 @@ abstract class SWB { for (final node in primaryNodes) { try { await nodeService.setPrimaryNodeFor( - coin: SupportedCoins.getCryptoCurrencyByPrettyName( + coin: Coins.getCryptoCurrencyByPrettyName( node['coinName'] as String, ), node: nodeService.getNodeById(id: node['id'] as String)!, diff --git a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart index 7546b84fc..808b3429f 100644 --- a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart +++ b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart @@ -99,7 +99,7 @@ class _DesktopAddressBook extends ConsumerState { ref.refresh(addressBookFilterProvider); // if (widget.coin == null) { - final coins = SupportedCoins.cryptocurrencies.toList(); + final coins = Coins.cryptocurrencies.toList(); coins.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index a5c9fa0db..c144f72ed 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -194,7 +194,7 @@ class _StepScaffoldState extends ConsumerState { void sendFromStack() { final trade = ref.read(desktopExchangeModelProvider)!.trade!; final address = trade.payInAddress; - final coin = SupportedCoins.getCryptoCurrencyForTicker(trade.payInCurrency); + final coin = Coins.getCryptoCurrencyForTicker(trade.payInCurrency); final amount = Decimal.parse(trade.payInAmount).toAmount( fractionDigits: coin.fractionDigits, ); diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart index 6f50a7347..ae5b46b1f 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart @@ -59,7 +59,7 @@ class _DesktopStep2State extends ConsumerState { bool isStackCoin(String ticker) { try { - SupportedCoins.getCryptoCurrencyForTicker(ticker); + Coins.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; @@ -68,7 +68,7 @@ class _DesktopStep2State extends ConsumerState { void selectRecipientAddressFromStack() async { try { - final coin = SupportedCoins.getCryptoCurrencyForTicker( + final coin = Coins.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.receiveTicker, ); @@ -101,7 +101,7 @@ class _DesktopStep2State extends ConsumerState { void selectRefundAddressFromStack() async { try { - final coin = SupportedCoins.getCryptoCurrencyForTicker( + final coin = Coins.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.sendTicker, ); @@ -131,7 +131,7 @@ class _DesktopStep2State extends ConsumerState { } void selectRecipientFromAddressBook() async { - final coin = SupportedCoins.getCryptoCurrencyForTicker( + final coin = Coins.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.receiveTicker, ); @@ -178,7 +178,7 @@ class _DesktopStep2State extends ConsumerState { } void selectRefundFromAddressBook() async { - final coin = SupportedCoins.getCryptoCurrencyForTicker( + final coin = Coins.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.sendTicker, ); diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart index 4c579647e..0c7841c3c 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart @@ -37,7 +37,7 @@ class _DesktopStep4State extends ConsumerState { bool _isWalletCoinAndHasWallet(String ticker) { try { - final coin = SupportedCoins.getCryptoCurrencyForTicker(ticker); + final coin = Coins.getCryptoCurrencyForTicker(ticker); return ref .read(pWallets) .wallets diff --git a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart index 0d4d88328..6a5e32248 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart @@ -40,8 +40,8 @@ class DesktopManageBlockExplorersDialog extends ConsumerWidget { ); final coins = showTestNet - ? SupportedCoins.cryptocurrencies - : SupportedCoins.cryptocurrencies + ? Coins.cryptocurrencies + : Coins.cryptocurrencies .where( (e) => e.network == CryptoCurrencyNetwork.main, ) diff --git a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart index 53cc15f37..01392b088 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart @@ -42,7 +42,7 @@ class NodesSettings extends ConsumerStatefulWidget { } class _NodesSettings extends ConsumerState { - List _coins = [...SupportedCoins.cryptocurrencies]; + List _coins = [...Coins.cryptocurrencies]; late final TextEditingController searchNodeController; late final FocusNode searchNodeFocusNode; diff --git a/lib/services/buy/simplex/simplex_api.dart b/lib/services/buy/simplex/simplex_api.dart index e0e00dd5d..3eec5d140 100644 --- a/lib/services/buy/simplex/simplex_api.dart +++ b/lib/services/buy/simplex/simplex_api.dart @@ -405,7 +405,7 @@ bool isStackCoin(String? ticker) { if (ticker == null) return false; try { - SupportedCoins.getCryptoCurrencyForTicker(ticker); + Coins.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; diff --git a/lib/services/node_service.dart b/lib/services/node_service.dart index 31e624be5..2e0d692ea 100644 --- a/lib/services/node_service.dart +++ b/lib/services/node_service.dart @@ -31,7 +31,7 @@ class NodeService extends ChangeNotifier { }); Future updateDefaults() async { - for (final defaultNode in SupportedCoins.cryptocurrencies.map( + for (final defaultNode in Coins.cryptocurrencies.map( (e) => e.defaultNode, )) { final savedNode = DB.instance @@ -39,7 +39,7 @@ class NodeService extends ChangeNotifier { if (savedNode == null) { // save the default node to hive only if no other nodes for the specific coin exist if (getNodesFor( - SupportedCoins.getCryptoCurrencyByPrettyName( + Coins.getCryptoCurrencyByPrettyName( defaultNode.coinName, ), ).isEmpty) { @@ -64,8 +64,7 @@ class NodeService extends ChangeNotifier { // check if a default node is the primary node for the crypto currency // and update it if needed - final coin = - SupportedCoins.getCryptoCurrencyByPrettyName(defaultNode.coinName); + final coin = Coins.getCryptoCurrencyByPrettyName(defaultNode.coinName); final primaryNode = getPrimaryNodeFor(currency: coin); if (primaryNode != null && primaryNode.id == defaultNode.id) { await setPrimaryNodeFor( @@ -206,8 +205,7 @@ class NodeService extends ChangeNotifier { bool shouldNotifyListeners, ) async { // check if the node being edited is the primary one; if it is, setPrimaryNodeFor coin - final coin = - SupportedCoins.getCryptoCurrencyByPrettyName(editedNode.coinName); + final coin = Coins.getCryptoCurrencyByPrettyName(editedNode.coinName); final primaryNode = getPrimaryNodeFor(currency: coin); if (primaryNode?.id == editedNode.id) { await setPrimaryNodeFor( @@ -240,7 +238,7 @@ class NodeService extends ChangeNotifier { final map = jsonDecode(result as String); Logging.instance.log(map, level: LogLevel.Info); - for (final coin in SupportedCoins.cryptocurrencies) { + for (final coin in Coins.cryptocurrencies) { final nodeList = List>.from( map["nodes"][coin.identifier] as List? ?? [], ); diff --git a/lib/services/notifications_service.dart b/lib/services/notifications_service.dart index 528fe9ae5..461b65ae0 100644 --- a/lib/services/notifications_service.dart +++ b/lib/services/notifications_service.dart @@ -129,7 +129,7 @@ class NotificationsService extends ChangeNotifier { for (final notification in _watchedTransactionNotifications) { try { final CryptoCurrency coin = - SupportedCoins.getCryptoCurrencyByPrettyName(notification.coinName); + Coins.getCryptoCurrencyByPrettyName(notification.coinName); final txid = notification.txid!; final wallet = Wallets.sharedInstance.getWallet(notification.walletId); diff --git a/lib/services/price.dart b/lib/services/price.dart index e572f4b3f..e2ff7384b 100644 --- a/lib/services/price.dart +++ b/lib/services/price.dart @@ -48,7 +48,7 @@ class PriceAPI { ) async { final Map map = {}; - for (final coin in SupportedCoins.cryptocurrencies) { + for (final coin in Coins.cryptocurrencies) { final entry = data[coin]; if (entry == null) { map[coin.prettyName] = ["0", 0.0]; @@ -68,12 +68,12 @@ class PriceAPI { {}; // init with 0 final result = { - for (final coin in SupportedCoins.cryptocurrencies) + for (final coin in Coins.cryptocurrencies) coin: Tuple2(Decimal.zero, 0.0), }; for (final entry in map.entries) { - result[SupportedCoins.getCryptoCurrencyByPrettyName( + result[Coins.getCryptoCurrencyByPrettyName( entry.key as String, )] = Tuple2( Decimal.parse(entry.value[0] as String), @@ -126,7 +126,7 @@ class PriceAPI { for (final map in coinGeckoData) { final String coinName = map["name"] as String; - final coin = SupportedCoins.getCryptoCurrencyByPrettyName(coinName); + final coin = Coins.getCryptoCurrencyByPrettyName(coinName); final price = Decimal.parse(map["current_price"].toString()); final change24h = map["price_change_percentage_24h"] != null diff --git a/lib/services/price_service.dart b/lib/services/price_service.dart index 15e5dc437..930099d74 100644 --- a/lib/services/price_service.dart +++ b/lib/services/price_service.dart @@ -30,8 +30,7 @@ class PriceService extends ChangeNotifier { Timer? _timer; final Map> _cachedPrices = { - for (final coin in SupportedCoins.cryptocurrencies) - coin: Tuple2(Decimal.zero, 0.0) + for (final coin in Coins.cryptocurrencies) coin: Tuple2(Decimal.zero, 0.0) }; final Map> _cachedTokenPrices = {}; diff --git a/lib/services/wallets_service.dart b/lib/services/wallets_service.dart index 8aab994d5..d2a496956 100644 --- a/lib/services/wallets_service.dart +++ b/lib/services/wallets_service.dart @@ -90,7 +90,7 @@ class WalletsService extends ChangeNotifier { mapped.removeWhere((name, dyn) { final jsonObject = Map.from(dyn as Map); try { - SupportedCoins.getCryptoCurrencyFor(jsonObject["coin"] as String); + Coins.getCryptoCurrencyFor(jsonObject["coin"] as String); return false; } catch (e, s) { Logging.instance.log( diff --git a/lib/supported_coins.dart b/lib/supported_coins.dart index 70b6deae7..aea128b9c 100644 --- a/lib/supported_coins.dart +++ b/lib/supported_coins.dart @@ -21,7 +21,7 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; /// The supported coins. Eventually move away from the Coin enum -class SupportedCoins { +class Coins { /// A List of our supported coins. static final List cryptocurrencies = [ Bitcoin(CryptoCurrencyNetwork.main), diff --git a/lib/utilities/prefs.dart b/lib/utilities/prefs.dart index 74453c50c..e14e10dc7 100644 --- a/lib/utilities/prefs.dart +++ b/lib/utilities/prefs.dart @@ -867,7 +867,7 @@ class Prefs extends ChangeNotifier { } Future _setAmountUnits() async { - for (final coin in SupportedCoins.cryptocurrencies) { + for (final coin in Coins.cryptocurrencies) { final unitIndex = await DB.instance.get( boxName: DB.boxNamePrefs, key: "amountUnitFor${coin.identifier}", @@ -900,7 +900,7 @@ class Prefs extends ChangeNotifier { } Future _setMaxDecimals() async { - for (final coin in SupportedCoins.cryptocurrencies) { + for (final coin in Coins.cryptocurrencies) { final decimals = await DB.instance.get( boxName: DB.boxNamePrefs, key: "maxDecimalsFor${coin.identifier}", diff --git a/lib/wallets/isar/models/wallet_info.dart b/lib/wallets/isar/models/wallet_info.dart index 0e07b6426..b165649ff 100644 --- a/lib/wallets/isar/models/wallet_info.dart +++ b/lib/wallets/isar/models/wallet_info.dart @@ -96,7 +96,7 @@ class WalletInfo implements IsarId { } @ignore - CryptoCurrency get coin => SupportedCoins.getCryptoCurrencyFor(coinName); + CryptoCurrency get coin => Coins.getCryptoCurrencyFor(coinName); @ignore Balance get cachedBalance { @@ -407,7 +407,7 @@ class WalletInfo implements IsarId { this.cachedBalanceTertiaryString, this.otherDataJsonString, }) : assert( - SupportedCoins.cryptocurrencies + Coins.cryptocurrencies .map((e) => e.identifier) .contains(coinName), ); @@ -466,7 +466,7 @@ class WalletInfo implements IsarId { Map jsonObject, AddressType mainAddressType, ) { - final coin = SupportedCoins.getCryptoCurrencyFor( + final coin = Coins.getCryptoCurrencyFor( jsonObject["coin"] as String, ); return WalletInfo( diff --git a/lib/wallets/isar/providers/all_wallets_info_provider.dart b/lib/wallets/isar/providers/all_wallets_info_provider.dart index a51233a0c..a91a735c5 100644 --- a/lib/wallets/isar/providers/all_wallets_info_provider.dart +++ b/lib/wallets/isar/providers/all_wallets_info_provider.dart @@ -27,7 +27,7 @@ final pAllWalletsInfoByCoin = Provider((ref) { } final List<({CryptoCurrency coin, List wallets})> results = []; - for (final coin in SupportedCoins.cryptocurrencies) { + for (final coin in Coins.cryptocurrencies) { if (map[coin] != null) { results.add(map[coin]!); } diff --git a/lib/widgets/address_book_card.dart b/lib/widgets/address_book_card.dart index 8a795437f..f8f23da8d 100644 --- a/lib/widgets/address_book_card.dart +++ b/lib/widgets/address_book_card.dart @@ -72,7 +72,7 @@ class _AddressBookCardState extends ConsumerState { final List coins = []; - for (final coin in SupportedCoins.cryptocurrencies) { + for (final coin in Coins.cryptocurrencies) { if (contact.addresses.where((e) => e.coin == coin).isNotEmpty) { coins.add(coin); } diff --git a/lib/widgets/choose_coin_view.dart b/lib/widgets/choose_coin_view.dart index 862585786..abd63b517 100644 --- a/lib/widgets/choose_coin_view.dart +++ b/lib/widgets/choose_coin_view.dart @@ -52,7 +52,7 @@ class ChooseCoinView extends ConsumerStatefulWidget { } class _ChooseCoinViewState extends ConsumerState { - List _coins = [...SupportedCoins.cryptocurrencies]; + List _coins = [...Coins.cryptocurrencies]; @override void initState() { diff --git a/test/services/node_service_test.dart b/test/services/node_service_test.dart index 78f20b51b..85ee80dbd 100644 --- a/test/services/node_service_test.dart +++ b/test/services/node_service_test.dart @@ -114,7 +114,7 @@ void main() { await service.updateDefaults(); expect( service.nodes.length, - SupportedCoins.cryptocurrencies.map((e) => e.defaultNode).length, + Coins.cryptocurrencies.map((e) => e.defaultNode).length, ); expect(fakeStore.interactions, 0); }); @@ -208,7 +208,7 @@ void main() { final service = NodeService(secureStorageInterface: fakeStore); final nodes = service.nodes; final defaults = - SupportedCoins.cryptocurrencies.map((e) => e.defaultNode).toList(); + Coins.cryptocurrencies.map((e) => e.defaultNode).toList(); nodes.sort((a, b) => a.host.compareTo(b.host)); defaults.sort((a, b) => a.host.compareTo(b.host)); @@ -224,7 +224,7 @@ void main() { await service.add(nodeA, null, true); expect( service.nodes.length, - SupportedCoins.cryptocurrencies.map((e) => e.defaultNode).length + 1, + Coins.cryptocurrencies.map((e) => e.defaultNode).length + 1, ); expect(fakeStore.interactions, 0); }); @@ -235,7 +235,7 @@ void main() { await service.add(nodeA, "some password", true); expect( service.nodes.length, - SupportedCoins.cryptocurrencies.map((e) => e.defaultNode).length + 1, + Coins.cryptocurrencies.map((e) => e.defaultNode).length + 1, ); expect(fakeStore.interactions, 1); expect(fakeStore.writes, 1); @@ -293,7 +293,7 @@ void main() { expect( service.nodes.length, - SupportedCoins.cryptocurrencies.map((e) => e.defaultNode).length + 2, + Coins.cryptocurrencies.map((e) => e.defaultNode).length + 2, ); expect( service.nodes.where((element) => element.id == nodeB.id).length, From e0abd97041e41096aaf261490d4ffdee2a3492e6 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 21 May 2024 12:48:48 -0600 Subject: [PATCH 078/318] make it easy to comment out certain coins in app config to disable them --- lib/app_config.dart | 25 ++++ lib/models/isar/models/contact_entry.dart | 2 +- lib/models/isar/stack_theme.dart | 70 ++++++++---- .../add_wallet_view/add_wallet_view.dart | 44 ++++--- .../sub_widgets/add_wallet_text.dart | 2 +- .../address_book_views/address_book_view.dart | 3 +- .../subviews/address_book_filter_view.dart | 3 +- .../subviews/coin_select_sheet.dart | 3 +- .../new_contact_address_entry_form.dart | 9 +- lib/pages/buy_view/buy_form.dart | 4 +- .../sub_widgets/crypto_selection_view.dart | 6 +- .../exchange_currency_selection_view.dart | 6 +- .../exchange_step_views/step_2_view.dart | 103 ++++++++++------- .../exchange_step_views/step_4_view.dart | 7 +- .../manage_coin_units_view.dart | 3 +- .../manage_nodes_views/manage_nodes_view.dart | 3 +- .../desktop_address_book.dart | 3 +- ...desktop_manage_block_explorers_dialog.dart | 12 +- .../settings_menu/nodes_settings.dart | 26 +++-- lib/services/node_service.dart | 4 +- lib/services/price.dart | 5 +- lib/services/price_service.dart | 2 +- lib/services/wallets.dart | 107 +++++++++++------- lib/supported_coins.dart | 36 ++---- lib/utilities/prefs.dart | 102 ++++++++--------- .../crypto_currency/crypto_currency.dart | 21 ++++ lib/wallets/isar/models/wallet_info.dart | 4 +- .../providers/all_wallets_info_provider.dart | 21 +++- .../providers/favourite_wallets_provider.dart | 10 ++ lib/widgets/address_book_card.dart | 2 +- lib/widgets/choose_coin_view.dart | 3 +- lib/widgets/node_options_sheet.dart | 66 +++++------ test/services/node_service_test.dart | 17 ++- 33 files changed, 417 insertions(+), 317 deletions(-) diff --git a/lib/app_config.dart b/lib/app_config.dart index 846af4811..2b83a7868 100644 --- a/lib/app_config.dart +++ b/lib/app_config.dart @@ -1,3 +1,5 @@ +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; + abstract class AppConfig { static const appName = prefix + _separator + suffix; @@ -6,4 +8,27 @@ abstract class AppConfig { static const _separator = " "; static const suffix = "Wallet"; + + // comment out coins to disable them + static const supportedCoins = [ + Bitcoin, + BitcoinFrost, + Litecoin, + Bitcoincash, + Dogecoin, + Epiccash, + Ecash, + Ethereum, + Firo, + Monero, + Particl, + Peercoin, + Solana, + Stellar, + Tezos, + Wownero, + Namecoin, + Nano, + Banano, + ]; } diff --git a/lib/models/isar/models/contact_entry.dart b/lib/models/isar/models/contact_entry.dart index 16925ce24..67eac36df 100644 --- a/lib/models/isar/models/contact_entry.dart +++ b/lib/models/isar/models/contact_entry.dart @@ -37,7 +37,7 @@ class ContactEntry { @ignore List get addressesSorted { final List sorted = []; - for (final coin in Coins.cryptocurrencies) { + for (final coin in Coins.enabled) { final slice = addresses.where((e) => e.coin == coin).toList(); if (slice.isNotEmpty) { slice.sort( diff --git a/lib/models/isar/stack_theme.dart b/lib/models/isar/stack_theme.dart index 3ff54c3b7..b891c288e 100644 --- a/lib/models/isar/stack_theme.dart +++ b/lib/models/isar/stack_theme.dart @@ -1548,7 +1548,8 @@ class StackTheme { json["colors"]["box_shadows"]["home_view_button_bar"] == null ? null : jsonEncode( - json["colors"]["box_shadows"]["home_view_button_bar"] as Map) + json["colors"]["box_shadows"]["home_view_button_bar"] as Map, + ) ..coinColorsJsonString = jsonEncode(json["colors"]['coin'] as Map) ..overlayInt = parseColor(json["colors"]["overlay"] as String) ..accentColorBlueInt = @@ -1587,7 +1588,8 @@ class StackTheme { ..buttonBackBorderSecondaryInt = parseColor(json["colors"]["button_back_border_secondary"] as String) ..buttonBackBorderSecondaryDisabledInt = parseColor( - json["colors"]["button_back_border_secondary_disabled"] as String) + json["colors"]["button_back_border_secondary_disabled"] as String, + ) ..numberBackDefaultInt = parseColor(json["colors"]["number_back_default"] as String) ..numpadBackDefaultInt = @@ -1621,7 +1623,8 @@ class StackTheme { ..buttonTextBorderlessInt = parseColor(json["colors"]["button_text_borderless"] as String) ..buttonTextBorderlessDisabledInt = parseColor( - json["colors"]["button_text_borderless_disabled"] as String) + json["colors"]["button_text_borderless_disabled"] as String, + ) ..numberTextDefaultInt = parseColor(json["colors"]["number_text_default"] as String) ..numpadTextDefaultInt = @@ -1629,9 +1632,11 @@ class StackTheme { ..bottomNavTextInt = parseColor(json["colors"]["bottom_nav_text"] as String) ..customTextButtonEnabledTextInt = parseColor( - json["colors"]["custom_text_button_enabled_text"] as String) + json["colors"]["custom_text_button_enabled_text"] as String, + ) ..customTextButtonDisabledTextInt = parseColor( - json["colors"]["custom_text_button_disabled_text"] as String) + json["colors"]["custom_text_button_disabled_text"] as String, + ) ..switchBGOnInt = parseColor(json["colors"]["switch_bg_on"] as String) ..switchBGOffInt = parseColor(json["colors"]["switch_bg_off"] as String) ..switchBGDisabledInt = @@ -1651,7 +1656,8 @@ class StackTheme { ..stepIndicatorBGLinesInt = parseColor(json["colors"]["step_indicator_bg_lines"] as String) ..stepIndicatorBGLinesInactiveInt = parseColor( - json["colors"]["step_indicator_bg_lines_inactive"] as String) + json["colors"]["step_indicator_bg_lines_inactive"] as String, + ) ..stepIndicatorIconTextInt = parseColor(json["colors"]["step_indicator_icon_text"] as String) ..stepIndicatorIconNumberInt = @@ -1687,7 +1693,8 @@ class StackTheme { ..bottomNavIconIconInt = parseColor(json["colors"]["bottom_nav_icon_icon"] as String) ..bottomNavIconIconHighlightedInt = parseColor( - json["colors"]["bottom_nav_icon_icon_highlighted"] as String) + json["colors"]["bottom_nav_icon_icon_highlighted"] as String, + ) ..topNavIconPrimaryInt = parseColor(json["colors"]["top_nav_icon_primary"] as String) ..topNavIconGreenInt = @@ -1717,13 +1724,17 @@ class StackTheme { ..textFieldSuccessBorderInt = parseColor(json["colors"]["text_field_success_border"] as String) ..textFieldActiveSearchIconLeftInt = parseColor( - json["colors"]["text_field_active_search_icon_left"] as String) + json["colors"]["text_field_active_search_icon_left"] as String, + ) ..textFieldDefaultSearchIconLeftInt = parseColor( - json["colors"]["text_field_default_search_icon_left"] as String) + json["colors"]["text_field_default_search_icon_left"] as String, + ) ..textFieldErrorSearchIconLeftInt = parseColor( - json["colors"]["text_field_error_search_icon_left"] as String) + json["colors"]["text_field_error_search_icon_left"] as String, + ) ..textFieldSuccessSearchIconLeftInt = parseColor( - json["colors"]["text_field_success_search_icon_left"] as String) + json["colors"]["text_field_success_search_icon_left"] as String, + ) ..textFieldActiveTextInt = parseColor(json["colors"]["text_field_active_text"] as String) ..textFieldDefaultTextInt = @@ -1739,23 +1750,31 @@ class StackTheme { ..textFieldSuccessLabelInt = parseColor(json["colors"]["text_field_success_label"] as String) ..textFieldActiveSearchIconRightInt = parseColor( - json["colors"]["text_field_active_search_icon_right"] as String) + json["colors"]["text_field_active_search_icon_right"] as String, + ) ..textFieldDefaultSearchIconRightInt = parseColor( - json["colors"]["text_field_default_search_icon_right"] as String) + json["colors"]["text_field_default_search_icon_right"] as String, + ) ..textFieldErrorSearchIconRightInt = parseColor( - json["colors"]["text_field_error_search_icon_right"] as String) + json["colors"]["text_field_error_search_icon_right"] as String, + ) ..textFieldSuccessSearchIconRightInt = parseColor( - json["colors"]["text_field_success_search_icon_right"] as String) + json["colors"]["text_field_success_search_icon_right"] as String, + ) ..settingsItem2ActiveBGInt = parseColor( - json["colors"]["settings_item_level_two_active_bg"] as String) + json["colors"]["settings_item_level_two_active_bg"] as String, + ) ..settingsItem2ActiveTextInt = parseColor( - json["colors"]["settings_item_level_two_active_text"] as String) + json["colors"]["settings_item_level_two_active_text"] as String, + ) ..settingsItem2ActiveSubInt = parseColor( - json["colors"]["settings_item_level_two_active_sub"] as String) + json["colors"]["settings_item_level_two_active_sub"] as String, + ) ..radioButtonIconBorderInt = parseColor(json["colors"]["radio_button_icon_border"] as String) ..radioButtonIconBorderDisabledInt = parseColor( - json["colors"]["radio_button_icon_border_disabled"] as String) + json["colors"]["radio_button_icon_border_disabled"] as String, + ) ..radioButtonBorderEnabledInt = parseColor(json["colors"]["radio_button_border_enabled"] as String) ..radioButtonBorderDisabledInt = @@ -1809,9 +1828,11 @@ class StackTheme { ..rateTypeToggleColorOffInt = parseColor(json["colors"]["rate_type_toggle_color_off"] as String) ..rateTypeToggleDesktopColorOnInt = parseColor( - json["colors"]["rate_type_toggle_desktop_color_on"] as String) + json["colors"]["rate_type_toggle_desktop_color_on"] as String, + ) ..rateTypeToggleDesktopColorOffInt = parseColor( - json["colors"]["rate_type_toggle_desktop_color_off"] as String) + json["colors"]["rate_type_toggle_desktop_color_off"] as String, + ) ..ethTagTextInt = parseColor(json["colors"]["eth_tag_text"] as String) ..ethTagBGInt = parseColor(json["colors"]["eth_tag_bg"] as String) ..ethWalletTagTextInt = @@ -1857,8 +1878,7 @@ class StackTheme { final Map result = {}; - for (final mainNetId - in Coins.cryptocurrencies.map((e) => e.mainNetId)) { + for (final mainNetId in Coins.enabled.map((e) => e.mainNetId)) { if (map[mainNetId] is String) { result[mainNetId] = Color( (map[mainNetId] as String).toBigIntFromHex.toInt(), @@ -2176,7 +2196,7 @@ class ThemeAssetsV2 implements IThemeAssets { final Map result = {}; - for (final coin in Coins.cryptocurrencies) { + for (final coin in Coins.enabled) { result[coin.mainNetId] = map[coin.mainNetId] as String? ?? placeHolder; } @@ -2511,7 +2531,7 @@ class ThemeAssetsV3 implements IThemeAssets { final Map result = {}; - for (final coin in Coins.cryptocurrencies) { + for (final coin in Coins.enabled) { result[coin.mainNetId] = map[coin.mainNetId] as String? ?? placeHolder; result[coin.mainNetId] = prependIfNeeded(result[coin.mainNetId]!); } diff --git a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart index c0f73cee4..2179542e3 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart @@ -35,9 +35,6 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/default_eth_tokens.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -66,12 +63,10 @@ class _AddWalletViewState extends ConsumerState { String _searchTerm = ""; final _coinsTestnet = [ - ...Coins.cryptocurrencies - .where((e) => e.network == CryptoCurrencyNetwork.test), + ...Coins.enabled.where((e) => e.network == CryptoCurrencyNetwork.test), ]; final _coins = [ - ...Coins.cryptocurrencies - .where((e) => e.network == CryptoCurrencyNetwork.main), + ...Coins.enabled.where((e) => e.network == CryptoCurrencyNetwork.main), ]; final List coinEntities = []; final List tokenEntities = []; @@ -152,17 +147,19 @@ class _AddWalletViewState extends ConsumerState { coinEntities.addAll(_coinsTestnet.map((e) => CoinEntity(e))); } - final contracts = - MainDB.instance.getEthContracts().sortByName().findAllSync(); + if (Coins.enabled.whereType().isNotEmpty) { + final contracts = + MainDB.instance.getEthContracts().sortByName().findAllSync(); - if (contracts.isEmpty) { - contracts.addAll(DefaultTokens.list); - MainDB.instance.putEthContracts(contracts).then( - (value) => ref.read(priceAnd24hChangeNotifierProvider).updatePrice()); + if (contracts.isEmpty) { + contracts.addAll(DefaultTokens.list); + MainDB.instance.putEthContracts(contracts).then((value) => + ref.read(priceAnd24hChangeNotifierProvider).updatePrice()); + } + + tokenEntities.addAll(contracts.map((e) => EthTokenEntity(e))); } - tokenEntities.addAll(contracts.map((e) => EthTokenEntity(e))); - WidgetsBinding.instance.addPostFrameCallback((_) { ref.refresh(addWalletSelectedEntityStateProvider); }); @@ -292,15 +289,16 @@ class _AddWalletViewState extends ConsumerState { initialState: ExpandableState.expanded, animationDurationMultiplier: 0.5, ), - ExpandingSubListItem( - title: "Tokens", - entities: filter(_searchTerm, tokenEntities), - initialState: ExpandableState.expanded, - animationDurationMultiplier: 0.5, - trailing: AddCustomTokenSelector( - addFunction: _addToken, + if (tokenEntities.isNotEmpty) + ExpandingSubListItem( + title: "Tokens", + entities: filter(_searchTerm, tokenEntities), + initialState: ExpandableState.expanded, + animationDurationMultiplier: 0.5, + trailing: AddCustomTokenSelector( + addFunction: _addToken, + ), ), - ), ], ), ), diff --git a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_text.dart b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_text.dart index 77c5bcefb..f1586b165 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_text.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_text.dart @@ -12,7 +12,7 @@ import 'package:flutter/material.dart'; import 'package:stackwallet/utilities/text_styles.dart'; class AddWalletText extends StatelessWidget { - const AddWalletText({Key? key, required this.isDesktop}) : super(key: key); + const AddWalletText({super.key, required this.isDesktop}); final bool isDesktop; diff --git a/lib/pages/address_book_views/address_book_view.dart b/lib/pages/address_book_views/address_book_view.dart index a57ed3622..6cbc86a7f 100644 --- a/lib/pages/address_book_views/address_book_view.dart +++ b/lib/pages/address_book_views/address_book_view.dart @@ -26,7 +26,6 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; @@ -67,7 +66,7 @@ class _AddressBookViewState extends ConsumerState { ref.refresh(addressBookFilterProvider); if (widget.coin == null) { - final coins = [...Coins.cryptocurrencies]; + final coins = [...Coins.enabled]; coins.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages/address_book_views/subviews/address_book_filter_view.dart b/lib/pages/address_book_views/subviews/address_book_filter_view.dart index 7253d02d1..2f863f379 100644 --- a/lib/pages/address_book_views/subviews/address_book_filter_view.dart +++ b/lib/pages/address_book_views/subviews/address_book_filter_view.dart @@ -16,7 +16,6 @@ import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; @@ -41,7 +40,7 @@ class _AddressBookFilterViewState extends ConsumerState { @override void initState() { - final coins = [...Coins.cryptocurrencies]; + final coins = [...Coins.enabled]; coins.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages/address_book_views/subviews/coin_select_sheet.dart b/lib/pages/address_book_views/subviews/coin_select_sheet.dart index 409cb2e7e..f1d474170 100644 --- a/lib/pages/address_book_views/subviews/coin_select_sheet.dart +++ b/lib/pages/address_book_views/subviews/coin_select_sheet.dart @@ -19,7 +19,6 @@ import 'package:stackwallet/themes/coin_image_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class CoinSelectSheet extends StatelessWidget { @@ -28,7 +27,7 @@ class CoinSelectSheet extends StatelessWidget { @override Widget build(BuildContext context) { final maxHeight = MediaQuery.of(context).size.height * 0.60; - final coins_ = [...Coins.cryptocurrencies]; + final coins_ = [...Coins.enabled]; coins_.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart b/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart index 22433f8dd..33c901527 100644 --- a/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart +++ b/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart @@ -30,7 +30,6 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; @@ -40,11 +39,11 @@ import 'package:stackwallet/widgets/textfield_icon_button.dart'; class NewContactAddressEntryForm extends ConsumerStatefulWidget { const NewContactAddressEntryForm({ - Key? key, + super.key, required this.id, required this.barcodeScanner, required this.clipboard, - }) : super(key: key); + }); final int id; @@ -74,7 +73,7 @@ class _NewContactAddressEntryFormState ..text = ref.read(addressEntryDataProvider(widget.id)).address ?? ""; addressLabelFocusNode = FocusNode(); addressFocusNode = FocusNode(); - coins = [...Coins.cryptocurrencies]; + coins = [...Coins.enabled]; super.initState(); } @@ -91,7 +90,7 @@ class _NewContactAddressEntryFormState Widget build(BuildContext context) { final isDesktop = Util.isDesktop; if (isDesktop) { - coins = [...Coins.cryptocurrencies]; + coins = [...Coins.enabled]; coins.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages/buy_view/buy_form.dart b/lib/pages/buy_view/buy_form.dart index d45f7ea76..53dcd01f3 100644 --- a/lib/pages/buy_view/buy_form.dart +++ b/lib/pages/buy_view/buy_form.dart @@ -1331,9 +1331,7 @@ class _BuyFormState extends ConsumerState { ), Expanded( child: AddressBookAddressChooser( - coin: Coins - .cryptocurrencies - .firstWhere( + coin: Coins.enabled.firstWhere( (e) => e.ticker.toLowerCase() == selectedCrypto!.ticker diff --git a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart index beffa27c7..3cff7b1b1 100644 --- a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart +++ b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart @@ -32,9 +32,9 @@ import 'package:stackwallet/widgets/textfield_icon_button.dart'; class CryptoSelectionView extends ConsumerStatefulWidget { const CryptoSelectionView({ - Key? key, + super.key, required this.coins, - }) : super(key: key); + }); final List coins; @@ -70,7 +70,7 @@ class _CryptoSelectionViewState extends ConsumerState { coins.sort( (a, b) => a.ticker.toLowerCase().compareTo(b.ticker.toLowerCase()), ); - for (final coin in Coins.cryptocurrencies.reversed) { + for (final coin in Coins.enabled.reversed) { final index = coins.indexWhere( (element) => element.ticker.toLowerCase() == coin.ticker.toLowerCase(), ); diff --git a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart index 0ea602e18..b19057387 100644 --- a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart +++ b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart @@ -44,12 +44,12 @@ import 'package:stackwallet/widgets/textfield_icon_button.dart'; class ExchangeCurrencySelectionView extends StatefulWidget { const ExchangeCurrencySelectionView({ - Key? key, + super.key, required this.willChangeTicker, required this.pairedTicker, required this.isFixedRate, required this.willChangeIsSend, - }) : super(key: key); + }); final String? willChangeTicker; final String? pairedTicker; @@ -365,7 +365,7 @@ class _ExchangeCurrencySelectionViewState Flexible( child: Builder( builder: (context) { - final coins = Coins.cryptocurrencies.where( + final coins = Coins.enabled.where( (e) => e.ticker.toLowerCase() != widget.pairedTicker?.toLowerCase(), diff --git a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart index 7b81b0799..ac5795d27 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart @@ -207,11 +207,11 @@ class _Step2ViewState extends ConsumerState { text: "Choose from Stack", onTap: () { try { - final coin = Coins.cryptocurrencies - .firstWhere((e) => - e.ticker.toLowerCase() == - model.receiveTicker - .toLowerCase()); + final coin = Coins.enabled.firstWhere( + (e) => + e.ticker.toLowerCase() == + model.receiveTicker.toLowerCase(), + ); Navigator.of(context) .pushNamed( @@ -258,7 +258,8 @@ class _Step2ViewState extends ConsumerState { child: TextField( onTap: () {}, key: const Key( - "recipientExchangeStep2ViewAddressFieldKey"), + "recipientExchangeStep2ViewAddressFieldKey", + ), controller: _toController, readOnly: false, autocorrect: false, @@ -305,7 +306,8 @@ class _Step2ViewState extends ConsumerState { _toController.text.isNotEmpty ? TextFieldIconButton( key: const Key( - "sendViewClearAddressFieldButtonKey"), + "sendViewClearAddressFieldButtonKey", + ), onTap: () { _toController.text = ""; model.recipientAddress = @@ -323,11 +325,13 @@ class _Step2ViewState extends ConsumerState { ) : TextFieldIconButton( key: const Key( - "sendViewPasteAddressFieldButtonKey"), + "sendViewPasteAddressFieldButtonKey", + ), onTap: () async { final ClipboardData? data = await clipboard.getData( - Clipboard.kTextPlain); + Clipboard.kTextPlain, + ); if (data?.text != null && data!.text!.isNotEmpty) { final content = @@ -357,12 +361,14 @@ class _Step2ViewState extends ConsumerState { if (_toController.text.isEmpty) TextFieldIconButton( key: const Key( - "sendViewAddressBookButtonKey"), + "sendViewAddressBookButtonKey", + ), onTap: () { ref .read( - exchangeFlowIsActiveStateProvider - .state) + exchangeFlowIsActiveStateProvider + .state, + ) .state = true; Navigator.of(context) .pushNamed( @@ -371,14 +377,16 @@ class _Step2ViewState extends ConsumerState { .then((_) { ref .read( - exchangeFlowIsActiveStateProvider - .state) + exchangeFlowIsActiveStateProvider + .state, + ) .state = false; final address = ref .read( - exchangeFromAddressBookAddressStateProvider - .state) + exchangeFromAddressBookAddressStateProvider + .state, + ) .state; if (address.isNotEmpty) { _toController.text = address; @@ -386,8 +394,9 @@ class _Step2ViewState extends ConsumerState { _toController.text; ref .read( - exchangeFromAddressBookAddressStateProvider - .state) + exchangeFromAddressBookAddressStateProvider + .state, + ) .state = ""; } setState(() { @@ -404,7 +413,8 @@ class _Step2ViewState extends ConsumerState { if (_toController.text.isEmpty) TextFieldIconButton( key: const Key( - "sendViewScanQrButtonKey"), + "sendViewScanQrButtonKey", + ), onTap: () async { try { final qrResult = @@ -412,7 +422,8 @@ class _Step2ViewState extends ConsumerState { final results = AddressUtils.parseUri( - qrResult.rawContent); + qrResult.rawContent, + ); if (results.isNotEmpty) { // auto fill address _toController.text = @@ -482,10 +493,11 @@ class _Step2ViewState extends ConsumerState { text: "Choose from Stack", onTap: () { try { - final coin = Coins.cryptocurrencies - .firstWhere((e) => - e.ticker.toLowerCase() == - model.sendTicker.toLowerCase()); + final coin = Coins.enabled.firstWhere( + (e) => + e.ticker.toLowerCase() == + model.sendTicker.toLowerCase(), + ); Navigator.of(context) .pushNamed( @@ -512,8 +524,10 @@ class _Step2ViewState extends ConsumerState { }); }); } catch (e, s) { - Logging.instance.log("$e\n$s", - level: LogLevel.Info); + Logging.instance.log( + "$e\n$s", + level: LogLevel.Info, + ); } }, ), @@ -530,7 +544,8 @@ class _Step2ViewState extends ConsumerState { ), child: TextField( key: const Key( - "refundExchangeStep2ViewAddressFieldKey"), + "refundExchangeStep2ViewAddressFieldKey", + ), controller: _refundController, readOnly: false, autocorrect: false, @@ -577,7 +592,8 @@ class _Step2ViewState extends ConsumerState { _refundController.text.isNotEmpty ? TextFieldIconButton( key: const Key( - "sendViewClearAddressFieldButtonKey"), + "sendViewClearAddressFieldButtonKey", + ), onTap: () { _refundController.text = ""; model.refundAddress = @@ -595,12 +611,13 @@ class _Step2ViewState extends ConsumerState { ) : TextFieldIconButton( key: const Key( - "sendViewPasteAddressFieldButtonKey"), + "sendViewPasteAddressFieldButtonKey", + ), onTap: () async { final ClipboardData? data = await clipboard.getData( - Clipboard - .kTextPlain); + Clipboard.kTextPlain, + ); if (data?.text != null && data! .text!.isNotEmpty) { @@ -631,12 +648,14 @@ class _Step2ViewState extends ConsumerState { if (_refundController.text.isEmpty) TextFieldIconButton( key: const Key( - "sendViewAddressBookButtonKey"), + "sendViewAddressBookButtonKey", + ), onTap: () { ref .read( - exchangeFlowIsActiveStateProvider - .state) + exchangeFlowIsActiveStateProvider + .state, + ) .state = true; Navigator.of(context) .pushNamed( @@ -645,13 +664,15 @@ class _Step2ViewState extends ConsumerState { .then((_) { ref .read( - exchangeFlowIsActiveStateProvider - .state) + exchangeFlowIsActiveStateProvider + .state, + ) .state = false; final address = ref .read( - exchangeFromAddressBookAddressStateProvider - .state) + exchangeFromAddressBookAddressStateProvider + .state, + ) .state; if (address.isNotEmpty) { _refundController.text = @@ -672,7 +693,8 @@ class _Step2ViewState extends ConsumerState { if (_refundController.text.isEmpty) TextFieldIconButton( key: const Key( - "sendViewScanQrButtonKey"), + "sendViewScanQrButtonKey", + ), onTap: () async { try { final qrResult = @@ -680,7 +702,8 @@ class _Step2ViewState extends ConsumerState { final results = AddressUtils.parseUri( - qrResult.rawContent); + qrResult.rawContent, + ); if (results.isNotEmpty) { // auto fill address _refundController.text = diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index 58f1a0c6c..d7438668e 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -35,8 +35,6 @@ import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; import 'package:stackwallet/wallets/models/tx_data.dart'; @@ -853,9 +851,8 @@ class _Step4ViewState extends ConsumerState { .useMaterialPageRoute, builder: (BuildContext context) { - final coin = Coins - .cryptocurrencies - .firstWhere( + final coin = + Coins.enabled.firstWhere( (e) => e.ticker .toLowerCase() == diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart index 0e9444e79..929175498 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart @@ -11,7 +11,6 @@ import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; @@ -45,7 +44,7 @@ class ManageCoinUnitsView extends ConsumerWidget { prefsChangeNotifierProvider.select((value) => value.showTestNetCoins), ); - final _coins = Coins.cryptocurrencies + final _coins = Coins.enabled .where((e) => e is! Firo && e.network != CryptoCurrencyNetwork.test) .toList(); diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart index 74c0eaabd..02a8a6799 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart @@ -20,7 +20,6 @@ import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -38,7 +37,7 @@ class ManageNodesView extends ConsumerStatefulWidget { } class _ManageNodesViewState extends ConsumerState { - List _coins = [...Coins.cryptocurrencies]; + List _coins = [...Coins.enabled]; @override void initState() { diff --git a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart index 808b3429f..f94e52187 100644 --- a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart +++ b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart @@ -28,7 +28,6 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; @@ -99,7 +98,7 @@ class _DesktopAddressBook extends ConsumerState { ref.refresh(addressBookFilterProvider); // if (widget.coin == null) { - final coins = Coins.cryptocurrencies.toList(); + final coins = Coins.enabled.toList(); coins.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart index 6a5e32248..623aacdc4 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart @@ -39,13 +39,11 @@ class DesktopManageBlockExplorersDialog extends ConsumerWidget { prefsChangeNotifierProvider.select((value) => value.showTestNetCoins), ); - final coins = showTestNet - ? Coins.cryptocurrencies - : Coins.cryptocurrencies - .where( - (e) => e.network == CryptoCurrencyNetwork.main, - ) - .toList(); + final coins = Coins.enabled + .where( + (e) => showTestNet || e.network == CryptoCurrencyNetwork.main, + ) + .toList(); return DesktopDialog( maxHeight: 850, diff --git a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart index 01392b088..6c0537618 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart @@ -23,9 +23,6 @@ import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; @@ -33,7 +30,7 @@ import 'package:stackwallet/widgets/stack_text_field.dart'; import 'package:stackwallet/widgets/textfield_icon_button.dart'; class NodesSettings extends ConsumerStatefulWidget { - const NodesSettings({Key? key}) : super(key: key); + const NodesSettings({super.key}); static const String routeName = "/settingsMenuNodes"; @@ -42,7 +39,7 @@ class NodesSettings extends ConsumerStatefulWidget { } class _NodesSettings extends ConsumerState { - List _coins = [...Coins.cryptocurrencies]; + List _coins = [...Coins.enabled]; late final TextEditingController searchNodeController; late final FocusNode searchNodeFocusNode; @@ -56,10 +53,12 @@ class _NodesSettings extends ConsumerState { return coins; } return coins - .where((coin) => - coin.prettyName.contains(filter) || - coin.identifier.contains(filter) || - coin.ticker.toLowerCase().contains(filter.toLowerCase())) + .where( + (coin) => + coin.prettyName.contains(filter) || + coin.identifier.contains(filter) || + coin.ticker.toLowerCase().contains(filter.toLowerCase()), + ) .toList(); } @@ -227,8 +226,10 @@ class _NodesSettings extends ConsumerState { itemBuilder: (context, index) { final coin = coins[index]; final count = ref - .watch(nodeServiceChangeNotifierProvider - .select((value) => value.getNodesFor(coin))) + .watch( + nodeServiceChangeNotifierProvider + .select((value) => value.getNodesFor(coin)), + ) .length; return Padding( @@ -290,7 +291,8 @@ class _NodesSettings extends ConsumerState { Text( "${coin.prettyName} nodes", style: STextStyles.titleBold12( - context), + context, + ), ), Text( count > 1 diff --git a/lib/services/node_service.dart b/lib/services/node_service.dart index 2e0d692ea..8940964c9 100644 --- a/lib/services/node_service.dart +++ b/lib/services/node_service.dart @@ -31,7 +31,7 @@ class NodeService extends ChangeNotifier { }); Future updateDefaults() async { - for (final defaultNode in Coins.cryptocurrencies.map( + for (final defaultNode in Coins.enabled.map( (e) => e.defaultNode, )) { final savedNode = DB.instance @@ -238,7 +238,7 @@ class NodeService extends ChangeNotifier { final map = jsonDecode(result as String); Logging.instance.log(map, level: LogLevel.Info); - for (final coin in Coins.cryptocurrencies) { + for (final coin in Coins.enabled) { final nodeList = List>.from( map["nodes"][coin.identifier] as List? ?? [], ); diff --git a/lib/services/price.dart b/lib/services/price.dart index e2ff7384b..4bc02113a 100644 --- a/lib/services/price.dart +++ b/lib/services/price.dart @@ -48,7 +48,7 @@ class PriceAPI { ) async { final Map map = {}; - for (final coin in Coins.cryptocurrencies) { + for (final coin in Coins.enabled) { final entry = data[coin]; if (entry == null) { map[coin.prettyName] = ["0", 0.0]; @@ -68,8 +68,7 @@ class PriceAPI { {}; // init with 0 final result = { - for (final coin in Coins.cryptocurrencies) - coin: Tuple2(Decimal.zero, 0.0), + for (final coin in Coins.enabled) coin: Tuple2(Decimal.zero, 0.0), }; for (final entry in map.entries) { diff --git a/lib/services/price_service.dart b/lib/services/price_service.dart index 930099d74..b8d652ff0 100644 --- a/lib/services/price_service.dart +++ b/lib/services/price_service.dart @@ -30,7 +30,7 @@ class PriceService extends ChangeNotifier { Timer? _timer; final Map> _cachedPrices = { - for (final coin in Coins.cryptocurrencies) coin: Tuple2(Decimal.zero, 0.0) + for (final coin in Coins.enabled) coin: Tuple2(Decimal.zero, 0.0), }; final Map> _cachedTokenPrices = {}; diff --git a/lib/services/wallets.dart b/lib/services/wallets.dart index 22daf7716..b7f799fcb 100644 --- a/lib/services/wallets.dart +++ b/lib/services/wallets.dart @@ -10,19 +10,20 @@ import 'dart:async'; -import 'package:flutter_libmonero/monero/monero.dart'; -import 'package:flutter_libmonero/wownero/wownero.dart'; +import 'package:flutter_libmonero/monero/monero.dart' as monero; +import 'package:flutter_libmonero/wownero/wownero.dart' as wownero; import 'package:isar/isar.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/db/isar/main_db.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/notifications_service.dart'; import 'package:stackwallet/services/trade_sent_from_stack_service.dart'; +import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; import 'package:stackwallet/wallets/wallet/wallet.dart'; @@ -76,27 +77,31 @@ class Wallets { await secureStorage.delete(key: Wallet.mnemonicKey(walletId: walletId)); await secureStorage.delete( - key: Wallet.mnemonicPassphraseKey(walletId: walletId)); + key: Wallet.mnemonicPassphraseKey(walletId: walletId), + ); await secureStorage.delete(key: Wallet.privateKeyKey(walletId: walletId)); if (info.coin is Wownero) { - final wowService = - wownero.createWowneroWalletService(DB.instance.moneroWalletInfoBox); + final wowService = wownero.wownero + .createWowneroWalletService(DB.instance.moneroWalletInfoBox); await wowService.remove(walletId); Logging.instance .log("monero wallet: $walletId deleted", level: LogLevel.Info); } else if (info.coin is Monero) { - final xmrService = - monero.createMoneroWalletService(DB.instance.moneroWalletInfoBox); + final xmrService = monero.monero + .createMoneroWalletService(DB.instance.moneroWalletInfoBox); await xmrService.remove(walletId); Logging.instance .log("monero wallet: $walletId deleted", level: LogLevel.Info); } else if (info.coin is Epiccash) { final deleteResult = await deleteEpicWallet( - walletId: walletId, secureStore: secureStorage); + walletId: walletId, + secureStore: secureStorage, + ); Logging.instance.log( - "epic wallet: $walletId deleted with result: $deleteResult", - level: LogLevel.Info); + "epic wallet: $walletId deleted with result: $deleteResult", + level: LogLevel.Info, + ); } // delete wallet data in main db @@ -108,7 +113,9 @@ class Wallets { // when delete was requested so instead of deleting now we mark the wallet // as needs delete by adding it's id to a list which gets checked on app start await DB.instance.add( - boxName: DB.boxNameWalletsToDeleteOnStart, value: walletId); + boxName: DB.boxNameWalletsToDeleteOnStart, + value: walletId, + ); final lookupService = TradeSentFromStackService(); for (final lookup in lookupService.all) { @@ -149,10 +156,12 @@ class Wallets { // clear out any wallet hive boxes where the wallet was deleted in previous app run for (final walletId in DB.instance .values(boxName: DB.boxNameWalletsToDeleteOnStart)) { - await mainDB.isar.writeTxn(() async => await mainDB.isar.walletInfo - .where() - .walletIdEqualTo(walletId) - .deleteAll()); + await mainDB.isar.writeTxn( + () async => await mainDB.isar.walletInfo + .where() + .walletIdEqualTo(walletId) + .deleteAll(), + ); } // clear list await DB.instance @@ -210,11 +219,13 @@ class Wallets { if (wallet is CwBasedInterface) { // walletsToInitLinearly.add(Tuple2(manager, shouldSetAutoSync)); } else { - walletInitFutures.add(wallet.init().then((_) { - if (shouldSetAutoSync) { - wallet.shouldAutoSync = true; - } - })); + walletInitFutures.add( + wallet.init().then((_) { + if (shouldSetAutoSync) { + wallet.shouldAutoSync = true; + } + }), + ); } _wallets[wallet.walletId] = wallet; @@ -251,10 +262,12 @@ class Wallets { // clear out any wallet hive boxes where the wallet was deleted in previous app run for (final walletId in DB.instance .values(boxName: DB.boxNameWalletsToDeleteOnStart)) { - await mainDB.isar.writeTxn(() async => await mainDB.isar.walletInfo - .where() - .walletIdEqualTo(walletId) - .deleteAll()); + await mainDB.isar.writeTxn( + () async => await mainDB.isar.walletInfo + .where() + .walletIdEqualTo(walletId) + .deleteAll(), + ); } // clear list await DB.instance @@ -346,10 +359,12 @@ class Wallets { .toList(); if (walletInitFutures.isNotEmpty && walletsToInitLinearly.isNotEmpty) { - unawaited(Future.wait([ - _initLinearly(walletsToInitLinearly), - ...walletInitFutures, - ])); + unawaited( + Future.wait([ + _initLinearly(walletsToInitLinearly), + ...walletInitFutures, + ]), + ); } else if (walletInitFutures.isNotEmpty) { unawaited(Future.wait(walletInitFutures)); } else if (walletsToInitLinearly.isNotEmpty) { @@ -370,16 +385,25 @@ class Wallets { // clear out any wallet hive boxes where the wallet was deleted in previous app run for (final walletId in DB.instance .values(boxName: DB.boxNameWalletsToDeleteOnStart)) { - await mainDB.isar.writeTxn(() async => await mainDB.isar.walletInfo - .where() - .walletIdEqualTo(walletId) - .deleteAll()); + await mainDB.isar.writeTxn( + () async => await mainDB.isar.walletInfo + .where() + .walletIdEqualTo(walletId) + .deleteAll(), + ); } // clear list await DB.instance .deleteAll(boxName: DB.boxNameWalletsToDeleteOnStart); - final walletInfoList = await mainDB.isar.walletInfo.where().findAll(); + final walletInfoList = await mainDB.isar.walletInfo + .where() + .filter() + .anyOf( + Coins.enabled.map((e) => e.identifier), + (q, element) => q.coinNameMatches(element), + ) + .findAll(); if (walletInfoList.isEmpty) { return; } @@ -552,11 +576,13 @@ class Wallets { if (wallet is CwBasedInterface) { // walletsToInitLinearly.add(Tuple2(manager, shouldSetAutoSync)); } else { - walletInitFutures.add(wallet.init().then((_) { - // if (shouldSetAutoSync) { - // wallet.shouldAutoSync = true; - // } - })); + walletInitFutures.add( + wallet.init().then((_) { + // if (shouldSetAutoSync) { + // wallet.shouldAutoSync = true; + // } + }), + ); } } @@ -596,6 +622,7 @@ class Wallets { Future _deleteWallet(String walletId) async { // TODO proper clean up of other wallet data in addition to the following await mainDB.isar.writeTxn( - () async => await mainDB.isar.walletInfo.deleteByWalletId(walletId)); + () async => await mainDB.isar.walletInfo.deleteByWalletId(walletId), + ); } } diff --git a/lib/supported_coins.dart b/lib/supported_coins.dart index aea128b9c..133ded94a 100644 --- a/lib/supported_coins.dart +++ b/lib/supported_coins.dart @@ -1,29 +1,17 @@ -import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/litecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/namecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/nano.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/particl.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/peercoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/solana.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; /// The supported coins. Eventually move away from the Coin enum class Coins { - /// A List of our supported coins. - static final List cryptocurrencies = [ + /// A List of enabled coins. + static List get enabled => all + .where( + (element) => AppConfig.supportedCoins.contains(element.runtimeType)) + .toList(); + + /// A List of all implemented coins. + static final List all = [ Bitcoin(CryptoCurrencyNetwork.main), BitcoinFrost(CryptoCurrencyNetwork.main), Litecoin(CryptoCurrencyNetwork.main), @@ -54,7 +42,7 @@ class Coins { ]; static CryptoCurrency getCryptoCurrencyFor(String coinIdentifier) => - cryptocurrencies.firstWhere( + all.firstWhere( (e) => e.identifier == coinIdentifier, ); @@ -63,7 +51,7 @@ class Coins { bool caseInsensitive = true, }) { final _ticker = caseInsensitive ? ticker.toLowerCase() : ticker; - return cryptocurrencies.firstWhere( + return all.firstWhere( caseInsensitive ? (e) => e.ticker.toLowerCase() == _ticker && e is! FrostCurrency : (e) => e.ticker == _ticker && e is! FrostCurrency, @@ -75,7 +63,7 @@ class Coins { static CryptoCurrency getCryptoCurrencyByPrettyName(final String prettyName) { final name = prettyName.replaceAll(" ", "").toLowerCase(); try { - return cryptocurrencies.firstWhere( + return all.firstWhere( (e) => e.identifier.toLowerCase() == name || e.prettyName == prettyName, ); } catch (_) { diff --git a/lib/utilities/prefs.dart b/lib/utilities/prefs.dart index e14e10dc7..a83cd802d 100644 --- a/lib/utilities/prefs.dart +++ b/lib/utilities/prefs.dart @@ -85,7 +85,7 @@ class Prefs extends ChangeNotifier { DB.instance.put( boxName: DB.boxNamePrefs, key: "lastUnlockedTimeout", - value: lastUnlockedTimeout); + value: lastUnlockedTimeout,); _lastUnlockedTimeout = lastUnlockedTimeout; notifyListeners(); } @@ -93,7 +93,7 @@ class Prefs extends ChangeNotifier { Future _getLastUnlockedTimeout() async { return (DB.instance.get( - boxName: DB.boxNamePrefs, key: "lastUnlockedTimeout")) as int? ?? + boxName: DB.boxNamePrefs, key: "lastUnlockedTimeout",)) as int? ?? 60; } @@ -106,7 +106,7 @@ class Prefs extends ChangeNotifier { set lastUnlocked(int lastUnlocked) { if (_lastUnlocked != lastUnlocked) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "lastUnlocked", value: lastUnlocked); + boxName: DB.boxNamePrefs, key: "lastUnlocked", value: lastUnlocked,); _lastUnlocked = lastUnlocked; notifyListeners(); } @@ -114,7 +114,7 @@ class Prefs extends ChangeNotifier { Future _getLastUnlocked() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "lastUnlocked") as int? ?? + boxName: DB.boxNamePrefs, key: "lastUnlocked",) as int? ?? 0; } @@ -133,13 +133,13 @@ class Prefs extends ChangeNotifier { await DB.instance.put( boxName: DB.boxNamePrefs, key: "currentNotificationId", - value: _currentNotificationId); + value: _currentNotificationId,); notifyListeners(); } Future _getCurrentNotificationIndex() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "currentNotificationId") as int? ?? + boxName: DB.boxNamePrefs, key: "currentNotificationId",) as int? ?? 0; } @@ -154,7 +154,7 @@ class Prefs extends ChangeNotifier { DB.instance.put( boxName: DB.boxNamePrefs, key: "walletIdsSyncOnStartup", - value: walletIdsSyncOnStartup); + value: walletIdsSyncOnStartup,); _walletIdsSyncOnStartup = walletIdsSyncOnStartup; notifyListeners(); } @@ -162,7 +162,7 @@ class Prefs extends ChangeNotifier { Future> _getWalletIdsSyncOnStartup() async { final list = await DB.instance.get( - boxName: DB.boxNamePrefs, key: "walletIdsSyncOnStartup") as List? ?? + boxName: DB.boxNamePrefs, key: "walletIdsSyncOnStartup",) as List? ?? []; return List.from(list); } @@ -178,7 +178,7 @@ class Prefs extends ChangeNotifier { DB.instance.put( boxName: DB.boxNamePrefs, key: "syncTypeIndex", - value: syncType.index); + value: syncType.index,); _syncType = syncType; notifyListeners(); } @@ -186,7 +186,7 @@ class Prefs extends ChangeNotifier { Future _getSyncType() async { final int index = await DB.instance.get( - boxName: DB.boxNamePrefs, key: "syncTypeIndex") as int? ?? + boxName: DB.boxNamePrefs, key: "syncTypeIndex",) as int? ?? SyncingType.allWalletsOnStartup.index; return SyncingType.values[index]; } @@ -200,7 +200,7 @@ class Prefs extends ChangeNotifier { set wifiOnly(bool wifiOnly) { if (_wifiOnly != wifiOnly) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "wifiOnly", value: wifiOnly); + boxName: DB.boxNamePrefs, key: "wifiOnly", value: wifiOnly,); _wifiOnly = wifiOnly; notifyListeners(); } @@ -223,7 +223,7 @@ class Prefs extends ChangeNotifier { DB.instance.put( boxName: DB.boxNamePrefs, key: "showFavoriteWallets", - value: showFavoriteWallets); + value: showFavoriteWallets,); _showFavoriteWallets = showFavoriteWallets; notifyListeners(); } @@ -231,7 +231,7 @@ class Prefs extends ChangeNotifier { Future _getShowFavoriteWallets() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "showFavoriteWallets") as bool? ?? + boxName: DB.boxNamePrefs, key: "showFavoriteWallets",) as bool? ?? true; } @@ -244,7 +244,7 @@ class Prefs extends ChangeNotifier { set language(String newLanguage) { if (_language != newLanguage) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "language", value: newLanguage); + boxName: DB.boxNamePrefs, key: "language", value: newLanguage,); _language = newLanguage; notifyListeners(); } @@ -252,7 +252,7 @@ class Prefs extends ChangeNotifier { Future _getPreferredLanguage() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "language") as String? ?? + boxName: DB.boxNamePrefs, key: "language",) as String? ?? Language.englishUS.description; } @@ -265,7 +265,7 @@ class Prefs extends ChangeNotifier { set currency(String newCurrency) { if (currency != newCurrency) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "currency", value: newCurrency); + boxName: DB.boxNamePrefs, key: "currency", value: newCurrency,); _currency = newCurrency; notifyListeners(); } @@ -273,7 +273,7 @@ class Prefs extends ChangeNotifier { Future _getPreferredCurrency() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "currency") as String? ?? + boxName: DB.boxNamePrefs, key: "currency",) as String? ?? "USD"; } @@ -327,7 +327,7 @@ class Prefs extends ChangeNotifier { set randomizePIN(bool randomizePIN) { if (_randomizePIN != randomizePIN) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "randomizePIN", value: randomizePIN); + boxName: DB.boxNamePrefs, key: "randomizePIN", value: randomizePIN,); _randomizePIN = randomizePIN; notifyListeners(); } @@ -335,7 +335,7 @@ class Prefs extends ChangeNotifier { Future _getRandomizePIN() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "randomizePIN") as bool? ?? + boxName: DB.boxNamePrefs, key: "randomizePIN",) as bool? ?? false; } @@ -348,7 +348,7 @@ class Prefs extends ChangeNotifier { set useBiometrics(bool useBiometrics) { if (_useBiometrics != useBiometrics) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "useBiometrics", value: useBiometrics); + boxName: DB.boxNamePrefs, key: "useBiometrics", value: useBiometrics,); _useBiometrics = useBiometrics; notifyListeners(); } @@ -356,7 +356,7 @@ class Prefs extends ChangeNotifier { Future _getUseBiometrics() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "useBiometrics") as bool? ?? + boxName: DB.boxNamePrefs, key: "useBiometrics",) as bool? ?? false; } @@ -390,7 +390,7 @@ class Prefs extends ChangeNotifier { set familiarity(int familiarity) { if (_familiarity != familiarity) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "familiarity", value: familiarity); + boxName: DB.boxNamePrefs, key: "familiarity", value: familiarity,); _familiarity = familiarity; notifyListeners(); } @@ -398,7 +398,7 @@ class Prefs extends ChangeNotifier { Future _getHasFamiliarity() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "familiarity") as int? ?? + boxName: DB.boxNamePrefs, key: "familiarity",) as int? ?? 0; } @@ -439,7 +439,7 @@ class Prefs extends ChangeNotifier { DB.instance.put( boxName: DB.boxNamePrefs, key: "showTestNetCoins", - value: showTestNetCoins); + value: showTestNetCoins,); _showTestNetCoins = showTestNetCoins; notifyListeners(); } @@ -447,7 +447,7 @@ class Prefs extends ChangeNotifier { Future _getShowTestNetCoins() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "showTestNetCoins") as bool? ?? + boxName: DB.boxNamePrefs, key: "showTestNetCoins",) as bool? ?? false; } @@ -463,7 +463,7 @@ class Prefs extends ChangeNotifier { .put( boxName: DB.boxNamePrefs, key: "isAutoBackupEnabled", - value: isAutoBackupEnabled) + value: isAutoBackupEnabled,) .then((_) { _isAutoBackupEnabled = isAutoBackupEnabled; notifyListeners(); @@ -473,7 +473,7 @@ class Prefs extends ChangeNotifier { Future _getIsAutoBackupEnabled() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "isAutoBackupEnabled") as bool? ?? + boxName: DB.boxNamePrefs, key: "isAutoBackupEnabled",) as bool? ?? false; } @@ -488,7 +488,7 @@ class Prefs extends ChangeNotifier { DB.instance.put( boxName: DB.boxNamePrefs, key: "autoBackupLocation", - value: autoBackupLocation); + value: autoBackupLocation,); _autoBackupLocation = autoBackupLocation; notifyListeners(); } @@ -496,7 +496,7 @@ class Prefs extends ChangeNotifier { Future _getAutoBackupLocation() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "autoBackupLocation") as String?; + boxName: DB.boxNamePrefs, key: "autoBackupLocation",) as String?; } // auto backup frequency type @@ -513,19 +513,19 @@ class Prefs extends ChangeNotifier { DB.instance.put( boxName: DB.boxNamePrefs, key: "backupFrequencyType", - value: "10Min"); + value: "10Min",); break; case BackupFrequencyType.everyAppStart: DB.instance.put( boxName: DB.boxNamePrefs, key: "backupFrequencyType", - value: "onStart"); + value: "onStart",); break; case BackupFrequencyType.afterClosingAWallet: DB.instance.put( boxName: DB.boxNamePrefs, key: "backupFrequencyType", - value: "onWalletClose"); + value: "onWalletClose",); break; } _backupFrequencyType = backupFrequencyType; @@ -535,7 +535,7 @@ class Prefs extends ChangeNotifier { Future _getBackupFrequencyType() async { String? rate = await DB.instance.get( - boxName: DB.boxNamePrefs, key: "backupFrequencyType") as String?; + boxName: DB.boxNamePrefs, key: "backupFrequencyType",) as String?; rate ??= "10Min"; switch (rate) { case "10Min": @@ -560,7 +560,7 @@ class Prefs extends ChangeNotifier { DB.instance.put( boxName: DB.boxNamePrefs, key: "lastAutoBackup", - value: lastAutoBackup); + value: lastAutoBackup,); _lastAutoBackup = lastAutoBackup; notifyListeners(); } @@ -568,7 +568,7 @@ class Prefs extends ChangeNotifier { Future _getLastAutoBackup() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "autoBackupFileUri") as DateTime?; + boxName: DB.boxNamePrefs, key: "autoBackupFileUri",) as DateTime?; } // auto backup @@ -583,7 +583,7 @@ class Prefs extends ChangeNotifier { .put( boxName: DB.boxNamePrefs, key: "hideBlockExplorerWarning", - value: hideBlockExplorerWarning) + value: hideBlockExplorerWarning,) .then((_) { _hideBlockExplorerWarning = hideBlockExplorerWarning; notifyListeners(); @@ -594,7 +594,7 @@ class Prefs extends ChangeNotifier { Future _getHideBlockExplorerWarning() async { return await DB.instance.get( boxName: DB.boxNamePrefs, - key: "hideBlockExplorerWarning") as bool? ?? + key: "hideBlockExplorerWarning",) as bool? ?? false; } @@ -610,7 +610,7 @@ class Prefs extends ChangeNotifier { .put( boxName: DB.boxNamePrefs, key: "gotoWalletOnStartup", - value: gotoWalletOnStartup) + value: gotoWalletOnStartup,) .then((_) { _gotoWalletOnStartup = gotoWalletOnStartup; notifyListeners(); @@ -620,7 +620,7 @@ class Prefs extends ChangeNotifier { Future _getGotoWalletOnStartup() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "gotoWalletOnStartup") as bool? ?? + boxName: DB.boxNamePrefs, key: "gotoWalletOnStartup",) as bool? ?? false; } @@ -635,7 +635,7 @@ class Prefs extends ChangeNotifier { DB.instance.put( boxName: DB.boxNamePrefs, key: "startupWalletId", - value: startupWalletId); + value: startupWalletId,); _startupWalletId = startupWalletId; notifyListeners(); } @@ -643,7 +643,7 @@ class Prefs extends ChangeNotifier { Future _getStartupWalletId() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "startupWalletId") as String?; + boxName: DB.boxNamePrefs, key: "startupWalletId",) as String?; } // incognito mode off by default @@ -658,7 +658,7 @@ class Prefs extends ChangeNotifier { .put( boxName: DB.boxNamePrefs, key: "externalCalls", - value: externalCalls) + value: externalCalls,) .then((_) { _externalCalls = externalCalls; notifyListeners(); @@ -668,7 +668,7 @@ class Prefs extends ChangeNotifier { Future _getHasExternalCalls() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "externalCalls") as bool? ?? + boxName: DB.boxNamePrefs, key: "externalCalls",) as bool? ?? true; } @@ -718,7 +718,7 @@ class Prefs extends ChangeNotifier { Future saveSignupEpoch(int signupEpoch) async { _signupEpoch = signupEpoch; await DB.instance.put( - boxName: DB.boxNamePrefs, key: "signupEpoch", value: _signupEpoch); + boxName: DB.boxNamePrefs, key: "signupEpoch", value: _signupEpoch,); // notifyListeners(); } @@ -733,7 +733,7 @@ class Prefs extends ChangeNotifier { DB.instance.put( boxName: DB.boxNamePrefs, key: "enableCoinControl", - value: enableCoinControl); + value: enableCoinControl,); _enableCoinControl = enableCoinControl; notifyListeners(); } @@ -741,7 +741,7 @@ class Prefs extends ChangeNotifier { Future _getEnableCoinControl() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "enableCoinControl") as bool? ?? + boxName: DB.boxNamePrefs, key: "enableCoinControl",) as bool? ?? false; } @@ -756,7 +756,7 @@ class Prefs extends ChangeNotifier { DB.instance.put( boxName: DB.boxNamePrefs, key: "enableSystemBrightness", - value: enableSystemBrightness); + value: enableSystemBrightness,); _enableSystemBrightness = enableSystemBrightness; notifyListeners(); } @@ -764,7 +764,7 @@ class Prefs extends ChangeNotifier { Future _getEnableSystemBrightness() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "enableSystemBrightness") as bool? ?? + boxName: DB.boxNamePrefs, key: "enableSystemBrightness",) as bool? ?? false; } @@ -854,7 +854,7 @@ class Prefs extends ChangeNotifier { _amountUnits[coin] ?? AmountUnit.normal; void updateAmountUnit( - {required CryptoCurrency coin, required AmountUnit amountUnit}) { + {required CryptoCurrency coin, required AmountUnit amountUnit,}) { if (this.amountUnit(coin) != amountUnit) { DB.instance.put( boxName: DB.boxNamePrefs, @@ -867,7 +867,7 @@ class Prefs extends ChangeNotifier { } Future _setAmountUnits() async { - for (final coin in Coins.cryptocurrencies) { + for (final coin in Coins.enabled) { final unitIndex = await DB.instance.get( boxName: DB.boxNamePrefs, key: "amountUnitFor${coin.identifier}", @@ -900,7 +900,7 @@ class Prefs extends ChangeNotifier { } Future _setMaxDecimals() async { - for (final coin in Coins.cryptocurrencies) { + for (final coin in Coins.enabled) { final decimals = await DB.instance.get( boxName: DB.boxNamePrefs, key: "maxDecimalsFor${coin.identifier}", diff --git a/lib/wallets/crypto_currency/crypto_currency.dart b/lib/wallets/crypto_currency/crypto_currency.dart index 5a8e3e723..d4e484fa6 100644 --- a/lib/wallets/crypto_currency/crypto_currency.dart +++ b/lib/wallets/crypto_currency/crypto_currency.dart @@ -2,6 +2,27 @@ import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/litecoin.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/namecoin.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/nano.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/particl.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/peercoin.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/solana.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; +export 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; +export 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; + enum CryptoCurrencyNetwork { main, test, diff --git a/lib/wallets/isar/models/wallet_info.dart b/lib/wallets/isar/models/wallet_info.dart index b165649ff..ed61ddede 100644 --- a/lib/wallets/isar/models/wallet_info.dart +++ b/lib/wallets/isar/models/wallet_info.dart @@ -407,9 +407,7 @@ class WalletInfo implements IsarId { this.cachedBalanceTertiaryString, this.otherDataJsonString, }) : assert( - Coins.cryptocurrencies - .map((e) => e.identifier) - .contains(coinName), + Coins.enabled.map((e) => e.identifier).contains(coinName), ); WalletInfo copyWith({ diff --git a/lib/wallets/isar/providers/all_wallets_info_provider.dart b/lib/wallets/isar/providers/all_wallets_info_provider.dart index a91a735c5..15ffaeb38 100644 --- a/lib/wallets/isar/providers/all_wallets_info_provider.dart +++ b/lib/wallets/isar/providers/all_wallets_info_provider.dart @@ -27,7 +27,7 @@ final pAllWalletsInfoByCoin = Provider((ref) { } final List<({CryptoCurrency coin, List wallets})> results = []; - for (final coin in Coins.cryptocurrencies) { + for (final coin in Coins.enabled) { if (map[coin] != null) { results.add(map[coin]!); } @@ -42,7 +42,14 @@ final _pAllWalletsInfo = ChangeNotifierProvider((ref) { if (_globalInstance == null) { final isar = ref.watch(mainDBProvider).isar; _globalInstance = _WalletInfoWatcher( - isar.walletInfo.where().findAllSync(), + isar.walletInfo + .where() + .filter() + .anyOf( + Coins.enabled.map((e) => e.identifier), + (q, element) => q.coinNameMatches(element), + ) + .findAllSync(), isar, ); } @@ -60,7 +67,15 @@ class _WalletInfoWatcher extends ChangeNotifier { _WalletInfoWatcher(this._value, Isar isar) { _streamSubscription = isar.walletInfo.watchLazy(fireImmediately: true).listen((event) { - isar.walletInfo.where().findAll().then((value) { + isar.walletInfo + .where() + .filter() + .anyOf( + Coins.enabled.map((e) => e.identifier), + (q, element) => q.coinNameMatches(element), + ) + .findAll() + .then((value) { _value = value; notifyListeners(); }); diff --git a/lib/wallets/isar/providers/favourite_wallets_provider.dart b/lib/wallets/isar/providers/favourite_wallets_provider.dart index 650b57d64..b09e94c95 100644 --- a/lib/wallets/isar/providers/favourite_wallets_provider.dart +++ b/lib/wallets/isar/providers/favourite_wallets_provider.dart @@ -4,6 +4,8 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; import 'package:stackwallet/providers/db/main_db_provider.dart'; +import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; class _Watcher extends ChangeNotifier { @@ -17,6 +19,10 @@ class _Watcher extends ChangeNotifier { _Watcher(this._value, this.isFavourite, Isar isar) { _streamSubscription = isar.walletInfo .filter() + .anyOf( + Coins.enabled.map((e) => e.identifier), + (q, element) => q.coinNameMatches(element), + ) .isFavouriteEqualTo(isFavourite) .sortByFavouriteOrderIndex() .watch(fireImmediately: true) @@ -40,6 +46,10 @@ final _wiProvider = ChangeNotifierProvider.family<_Watcher, bool>( final watcher = _Watcher( isar.walletInfo .filter() + .anyOf( + Coins.enabled.map((e) => e.identifier), + (q, element) => q.coinNameMatches(element), + ) .isFavouriteEqualTo(isFavourite) .sortByFavouriteOrderIndex() .findAllSync(), diff --git a/lib/widgets/address_book_card.dart b/lib/widgets/address_book_card.dart index f8f23da8d..e1411a2fe 100644 --- a/lib/widgets/address_book_card.dart +++ b/lib/widgets/address_book_card.dart @@ -72,7 +72,7 @@ class _AddressBookCardState extends ConsumerState { final List coins = []; - for (final coin in Coins.cryptocurrencies) { + for (final coin in Coins.enabled) { if (contact.addresses.where((e) => e.coin == coin).isNotEmpty) { coins.add(coin); } diff --git a/lib/widgets/choose_coin_view.dart b/lib/widgets/choose_coin_view.dart index abd63b517..3a0f2e1a6 100644 --- a/lib/widgets/choose_coin_view.dart +++ b/lib/widgets/choose_coin_view.dart @@ -19,7 +19,6 @@ import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; @@ -52,7 +51,7 @@ class ChooseCoinView extends ConsumerStatefulWidget { } class _ChooseCoinViewState extends ConsumerState { - List _coins = [...Coins.cryptocurrencies]; + List _coins = [...Coins.enabled]; @override void initState() { diff --git a/lib/widgets/node_options_sheet.dart b/lib/widgets/node_options_sheet.dart index 7002f7fa5..85ba3ddac 100644 --- a/lib/widgets/node_options_sheet.dart +++ b/lib/widgets/node_options_sheet.dart @@ -11,7 +11,6 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import 'package:flutter_libmonero/wownero/wownero.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:solana/solana.dart'; @@ -33,35 +32,17 @@ import 'package:stackwallet/utilities/test_epic_box_connection.dart'; import 'package:stackwallet/utilities/test_eth_node_connection.dart'; import 'package:stackwallet/utilities/test_monero_node_connection.dart'; import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/litecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/namecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/nano.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/particl.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/peercoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/solana.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:tuple/tuple.dart'; class NodeOptionsSheet extends ConsumerWidget { const NodeOptionsSheet({ - Key? key, + super.key, required this.nodeId, required this.coin, required this.popBackToRoute, - }) : super(key: key); + }); final String nodeId; final CryptoCurrency coin; @@ -101,7 +82,10 @@ class NodeOptionsSheet extends ConsumerWidget { } Future _testConnection( - NodeModel node, BuildContext context, WidgetRef ref) async { + NodeModel node, + BuildContext context, + WidgetRef ref, + ) async { bool testPassed = false; switch (coin.runtimeType) { @@ -183,7 +167,7 @@ class NodeOptionsSheet extends ConsumerWidget { break; - case (Ethereum): + case const (Ethereum): try { testPassed = await testEthNodeConnection(node.host); } catch (_) { @@ -220,12 +204,14 @@ class NodeOptionsSheet extends ConsumerWidget { // context: context, // ); } else { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - iconAsset: Assets.svg.circleAlert, - message: "Could not connect to node", - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + iconAsset: Assets.svg.circleAlert, + message: "Could not connect to node", + context: context, + ), + ); } return testPassed; @@ -234,12 +220,16 @@ class NodeOptionsSheet extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final maxHeight = MediaQuery.of(context).size.height * 0.60; - final node = ref.watch(nodeServiceChangeNotifierProvider - .select((value) => value.getNodeById(id: nodeId)))!; + final node = ref.watch( + nodeServiceChangeNotifierProvider + .select((value) => value.getNodeById(id: nodeId)), + )!; final status = ref - .watch(nodeServiceChangeNotifierProvider - .select((value) => value.getPrimaryNodeFor(currency: coin))) + .watch( + nodeServiceChangeNotifierProvider.select( + (value) => value.getPrimaryNodeFor(currency: coin)), + ) ?.id != nodeId ? "Disconnected" @@ -313,7 +303,8 @@ class NodeOptionsSheet extends ConsumerWidget { height: 15, width: 19, color: node.id.startsWith( - DefaultNodes.defaultNodeIdPrefix) + DefaultNodes.defaultNodeIdPrefix, + ) ? Theme.of(context) .extension()! .accentColorDark @@ -379,9 +370,10 @@ class NodeOptionsSheet extends ConsumerWidget { child: Text( "Details", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ), diff --git a/test/services/node_service_test.dart b/test/services/node_service_test.dart index 85ee80dbd..a33d3c982 100644 --- a/test/services/node_service_test.dart +++ b/test/services/node_service_test.dart @@ -6,8 +6,6 @@ import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; void main() { @@ -114,7 +112,7 @@ void main() { await service.updateDefaults(); expect( service.nodes.length, - Coins.cryptocurrencies.map((e) => e.defaultNode).length, + Coins.enabled.map((e) => e.defaultNode).length, ); expect(fakeStore.interactions, 0); }); @@ -207,11 +205,10 @@ void main() { final fakeStore = FakeSecureStorage(); final service = NodeService(secureStorageInterface: fakeStore); final nodes = service.nodes; - final defaults = - Coins.cryptocurrencies.map((e) => e.defaultNode).toList(); + final defaults = Coins.enabled.map((e) => e.defaultNode).toList(); - nodes.sort((a, b) => a.host.compareTo(b.host)); - defaults.sort((a, b) => a.host.compareTo(b.host)); + nodes.sort((a, b) => a.id.compareTo(b.id)); + defaults.sort((a, b) => a.id.compareTo(b.id)); expect(nodes.length, defaults.length); expect(nodes.toString(), defaults.toString()); @@ -224,7 +221,7 @@ void main() { await service.add(nodeA, null, true); expect( service.nodes.length, - Coins.cryptocurrencies.map((e) => e.defaultNode).length + 1, + Coins.enabled.map((e) => e.defaultNode).length + 1, ); expect(fakeStore.interactions, 0); }); @@ -235,7 +232,7 @@ void main() { await service.add(nodeA, "some password", true); expect( service.nodes.length, - Coins.cryptocurrencies.map((e) => e.defaultNode).length + 1, + Coins.enabled.map((e) => e.defaultNode).length + 1, ); expect(fakeStore.interactions, 1); expect(fakeStore.writes, 1); @@ -293,7 +290,7 @@ void main() { expect( service.nodes.length, - Coins.cryptocurrencies.map((e) => e.defaultNode).length + 2, + Coins.enabled.map((e) => e.defaultNode).length + 2, ); expect( service.nodes.where((element) => element.id == nodeB.id).length, From d37be9d54ef329dd5195fe523542565f285cecfe Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 21 May 2024 14:08:19 -0500 Subject: [PATCH 079/318] include duo assets archive and extract it over our own assets via script --- scripts/app_config/configure_duo.sh | 5 ++++- scripts/app_config/stack_duo_assets.zip | Bin 0 -> 1318754 bytes 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 scripts/app_config/stack_duo_assets.zip diff --git a/scripts/app_config/configure_duo.sh b/scripts/app_config/configure_duo.sh index 8f4d73194..e9dc81ce2 100755 --- a/scripts/app_config/configure_duo.sh +++ b/scripts/app_config/configure_duo.sh @@ -16,4 +16,7 @@ if [[ "$(uname)" == 'Darwin' ]]; then else sed -i 's/Wallet/Duo/g' ../../lib/app_config.dart sed -i "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../pubspec.yaml -fi \ No newline at end of file +fi + +# Extract Duo images. +unzip -o stack_duo_assets.zip -d ../../ diff --git a/scripts/app_config/stack_duo_assets.zip b/scripts/app_config/stack_duo_assets.zip new file mode 100644 index 0000000000000000000000000000000000000000..2463d59120dda8bbf13c662a7b5719ae8070f6f4 GIT binary patch literal 1318754 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%0DZ^(V5Q!qS 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%0D53u9!96y}EJjg`b+| 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'}SFnJ43XIgmF-@Gb54ejY4UC19)B{jBknzj_7;+ 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
@MpG08jm2H+a^v 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�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∈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ఞ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�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 Z0M12DZBHIOjgO6_8 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

T2n{YF0ds*H*l44^fFJ#?dfrx(8BtHw&(Td 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%0AmU$@{e_C;mcAlGH-V*O>V@!6rgu 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

_IBM@YbY^$tEI1IuS@FnTOOhzjqMD~@Hxb6Q;O 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�Hk=GS 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

Bv7k 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

0z)#5 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

`jCTlPsn|) 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�S3kzyFW_`lnz0^|zPb{Pc@omf9Xt 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]S4bIzs1+E3k(oE?P0?RmmrL~7<%L{ao;5qc}TjgU@fDQWSzOy$E7k;wxAM# zv3Tce%0wXk?m=7}z5UmlC#m`|+2QU$;*d4Q3i=jKV>SCn!L)XsDb`F@>+gI#IK<;{ zi`w!$QdzsujN&7TbX+xoYiMXB0lp4+dMcO?z6u`-TQGcyk`I7x!#pxoH9>(Hmd(&; zSB?3G2De+}tMbawG9sH+G&(Ih(1Bk-jPz*e_{uB~lLDq3&!9;sX&9d}Zo@5Zd$3Ia z!RZp~80f50IP1L8NqMz~&Q`6^X}vnSU^tiv+kfF{8&Z|rXQ~~Vcj6?6`>P8jT;6q7 z<8H=OCnF%7W72gv9YHCn#^&X!GfL*FYy|_f*i3baUg_PxJsG=WTmbc!4QtlBC(JRM zknt`BXCGa%x~yReU8NChK((E+kP$+iEzTp{+3nHGIv<|y)}@n2E+6A&{%Q{OtIbhT zz+%ud`)NSn(3>D^gzA8HJ%hx%>yHZjN;r1u`vPHL1z7XXTPmM=MSBB2(*nM{UhW7iff+_ zTVXuwWo#9(uM>oC=$RVAh(3uRt+Eg+=M5oUhYk88B*(RraV4&PO zD(TK~Nl(6ZTF_JInv! z7)&qiONwexPgvF-ehLuM>*%{Bkl_J!Jjg+_;jzp_(Ik@X7NJ@Txk806zu2-8gmXvC zI6d&il^(sAP(#7Px0dRS^iBISwEPlKXt(iKzUFEsBu_8akXvYhgsgA4*%S)s3%+R= zlpiu{Gp-uAn$1dLaGv1NZp46U93h&WF8_hTzJ=%#`OqDCtCrFslE4EVCS{cSrPG)l_w&e?{(2yjfB{_R6zK_VdSNy$l*+Rx(XntYm3Sfh-xh znTJG1T~djc69Y^YBxYvXz0^N<+;d=<%rJyhZr3@wiK>)JS}JkicH)xTXOXM8oy?&D zXYzF=a2$ygF2f9h7E9hmc1NTz1d-z?7M}1J;S7rAQiHoTj5$9M-le-PBnGh(YtvP5 z^3Ah%+%!>(L2Ew2tF%DHP4eN#<$c-O%tjok9}xEEe|_f?BUIprFO_nVk;cM9F2BDW^fR~KOvCMM_tWwTYUxjn4gA@Y2Rj?2&b+NdJYJ+`ye4T5Bc|m3$X>0L zX!A(d8vJJpUSj?kBnoQYKUqF*7|+UE5ViaZ^<2tN#)*g9IrJT3AY;LLAX=t5y>tSc zJdcf`vPs_jF}8ThsU}wcDo=E;ooC8t$jkIhii+lq)XVw>9#`Sn-EyO-yV4ZgHP~_a z%Y`VG(=D#`&_8*1`W~+SFTVR;pWRJBdmrw38TNmC)JSUI{y_Q z%r@_&G<%~9lr}?z83_C+T%B)wO6?>Py>{as^E&*=$#FCdi~aH3jBpUR^(YG)P!rkc z+qs=O*|7-T@s`?|hw|4L^0|p%0Is4>xP%0(5#Gj1Mb7LN<%L_CB`?{-(PhM6nMj#p?8Q4-y}xGv=UvfrvIEdEI#{$o}X$eF(^j*8fTn$O*8 zM)OvaYO?tKv^TnGwB6ecckW02( zOYANUk6qMP>wWr(krbJ{@SA z4ogkSlQ2`OwQVD?*-$G_CD_hvzN&J{{=~i&z|*PXlrb|(4qAi6vq}yJ@6oel&z)tq z#n9&;qMjOQ!&O zm&;v)?wPslvyC<30%`aO3vw+| zr8B>RU9a3mXP(}yT{!5PF*@fPr9k^1-^xwY07u2V*|+62ZJ z;Wq{&w>)^g;qFtZS+fG|sw3R}V!=L2J_7Sac&L>*UMi3dBwF3EN672kh$_E`U^9`{ zlB~%30LKPv76n8da%jbF$5pIiZ?B$~1kTlZFN2Oxe%h<(8x?KRI<&_xy&qDU2MVx3 zKKi}V1)|}at`FWsu%(*kjt5rrkv>_zDv6%t{gFO<3CP^pZP~H~-afzcdXnG$(><cMr%3cFLEGC*#X7IdS#qz7HA%$<-x_BwY* z>;=$;wPt6BQOBV|xB_T9StIcWL|%9|U>PR=aUzgD;3U)|3B zw(z%DVqYgVp2Y7x z%jX3AZ9GX!dkrImL_i7X=|E2J1IQO@y)6NM4U*tLreSZd%u}($MLLO`uC}HpdX>v; z3}`V69WK>w-6*x>xPud>+HU=*D}!Cu|K+$c_b9V64SZFR>a9fQI%w~2j!_1~8ByqK z_Lk6s*II(ls>U_J@w>?D(`a@;PINAHgqX_s?#;iMX!?!5;KDn@<9!$Y||c6R+B&PW1BLvafvY+RWK&KAaVv#?5Y@{?x^N*B+N#pl^3kzlib6X8e>r z#DZGRl4;SBDL#QDlp3R&iltcq&RkjK@#k622=M)JlKJc|7bnmk`q~l9)E%`~Y{(*N z{W{uyhSA#yN;e6X{^ikqgVXPI)bH@srnu4O|M^AKiF;^X{nx(cJ*7PDzPnKp?AUDO zn7*Lqrf%b<(XJcTmmz+Q$;?D{n#Q7|5xd zC^QR_z(RC`N}cOk*}~+{Sg@aOa@m1pSLUUC&3*lz^_Nmb1%J4!p#^?Z$tMZph ztH$AeF&}!XJsk^89Aqn6MEKzP_`n$(mT&aBa&)9Hn!m4X3~p)+3+sBc(pTHkP5)Pw zr90zJ*7j?Wjy-MufkmgUoxI~>rwZTr=0N}>9S*C@S?;|sOxf@bpYq-mnmK=dVZOun z2QFgYKutZ#mTZhqWHn>|m^H^}h)kwic5 z?*89TH~n3o?}C2skW^12M=L)UaA0tPzcQ-3vNkm;gCQLsjJ9mxeq0o53M9ke?%Fr0o`U2f91Uo2)K zvVDA>;;q>-t#>zu<%&2#jlJG-F5;nU2Cjd5q>G%7B;0GxyC^Mg+~f2;TT5}2u_z&? z410+RL;doBDEaG+?2EkYOQrRUFSDRAv!DvM5(I`G3I(Bjd|d|4DSQV;d05NzT+~pB zB?<*<4SBZHO{c?Pf!UERVf{}g<)(|$9>cZnI@RAwtZ%-jP&M9O;Q+0Qa!NJsx_llO z8oQ2TbtN+(6ho*1K>1VrEhM`8WCR1SCW@yQs_|r;wuA9PdG{h5SNQ#h3tsj%kk!Ya zGM)A*GHAv3>YLN%C6RKeX#EdSaw7tU9E5MyBYPcPku$6g&>d zCHlp0;L130%KoF8L%u~a?JyIOx{6~NaVlH;`DCZB{@hzU5H-2MJW*tOJh*zCSJ3X1 z(7W%`H<|RHy&cX|JAy3~2hNM%fi`ImhQjb?2_QAvAO!QQk_c^|*J+!tG>Az%>lKEc z;OWVJb%H@7m@jzqK(CmDZZjF5dVxuMS3xnVR|x-UuebpWz0wNns56YzR&XbC&b3Br zk23M}^o-qDMK~ztVd6L7gS&Q9dy=+LH~J z`dRFCzRXP)Vjl{gWn+t@T#ErcY$yQ7vuu0gCt4lOGZ8E2&sr)A_>V|@d>MBAv~$9B zvj&)*6}ifA?BryFy%8|q0aJQvu>QeiT7sheW-FrJBIAGe00itv^U3<33WCcda;75n zDYohIhIy3BqQ7~FT%A&%D2O?ef^LBwHkFkQoHQ`Z_1{X1hnMQq8}}oN8Gy^760I@V#G)FQW_vsmO)Xm(LJ!{E}do?=eEvKf*#D7Vj)`5^! zzAafWrEX%4Pf;$$5Jfw$zUcAJQ12vrx#mNQdL@U{+GA<8W;&idR}27!Y0axCHQd4R z^0e!bR$E2>s%Y89_fKj)P}O}Ul5z?efy2&qy$I5%hEy{N6}f`iG*L2qHS!=hBAn$A zbD4lv|IGyU$5S96ZTUpi`P@lE{#;RT`f(&Gg=ak)?hZzZYh=v{vUAXa@gEO(@w zLnVQy+nVG$tb1^eE4Ch;L_O>`U#WPyBq&${PXP zXmT~J0&iAmJbFx16*Pf(G^Q!scIxpTCtIq>j@cxVvs8TrFpJAmlVXD}3*gtAp)@Yf zT&8G>9j)4GQV}&o=%1r1R%D)!o`?_s!llIYz0awDtw~9~<}1T4z2C5`Um?H-{)1J^ zPjmCRS_0pYU}TpPNDMz)f>mW~whN&Jo;lNC^D2PapR*8!;LB87&ys86%+waVH26ca zY2=u>pOZ)yydyw-R{UX8U}N&$$te%^rcB5!E@=^zI>ELMt@9z8e^epd*_}z}2|K^w zg&ok1zaOUXj-Yu9q^E`qS6KU1C2w0|{f|S#(gt02B_P_l91+8ipL{~u#?wO>$k+YS z98hk^_!ilIF*F!|kz>bhfq%9nCR<*n%?*FqPdgiPGx(^`Ee43WDC=`E%h~qp6)@FK zH63~_ugSc8zm)$qntD{kvL&yF?OMj(la}Jn0v2nPGycEl6;<4vEqr<4UZdTwBXH#} zf;g?M9A}rz734QEqw1w9UBLNRoDvr9i^8E(ZZb#Q)t%+vIYKo%SZh5TQB9$2k@cLs zD909Q$9f*===KIo%idoigRnwzNnmx(n z-43cp&-3=J^UU#08-a8zm-Tg;P6{mULGIb&+DBxajWB| zrk?ys%wq1F-_vM=vB~fsp&=jryIJ{GYIe0EVt_cd&T zg@thx46E3bO9^~w`lW@GU0Y@g-`vAfmo5rza?biXCjS zZt<-M=yCk)I6tg;XlFnXuAV%^xIRzDsW44rsL%^@jVmYjYD}S47}Pn@ow7i|=M-XU z%DUVCm)->Ac0gqm1-;?^=<|4!@2iW3M4kefa~e#sZm@_nV4u67GIC`tL_Z3Kt<4%{Dx>>D(N0x5Xqwm zyw4QdGFNkC2v9!^;TW-u-)aEx`==f~^mG+5wyehpBEia}K{ES2KlSih?32&h9!@E*7*pVFGF@@V`3`>#OC%5X##feT4$WrwI|oFGN~MjLUoRjZHc??RV?(X%~XV zq{Sm#^R07@E*$V}vSTte+jvF{R*v3eXMbn)@AlWnR>0bbqrP$53dWU7TeMke5v|%w zU65JEnDV&m^+_+#WQijLFYg=ouw+ywi13yC`{eNPsarrfAP`M_Ok%_d_{>)v^1|(t z2mDz2x*z?B7-VZ(ajy2voNP~Z+1z^q&@Rim2sZP&*K-X8lU>K@S!kRnWq}c*B9~bM z+4`Frt(Y)wA@2-P)wyw2VN^+71dt^S<7}yFaYC`^0qrTqLHN%;BKAwV0B zF%`K<4D3V$#&Y`f`8!CtX{6)8?5}$K;4Y0NK-*bc@qEg7rf__gWez=^MyGCNCTttX zg^++znlt0G5;JMjH_G)5dlYzmY89d@%%_d46EBn+hU#RQ65R~#c}VynRV&r45M(7) z<%rZOs+K${b31Bg9tj5r-}ur2+6*RBdJ==R>%{d+_ju%g3;5C#6?w#gAoIrZXvVbp zbi&f*1`}^&S7TxhjgZ(*`!iKlRHz9MQo5o8;Hzm-PZ?^98P<3F{CW!BR&wIVq`aYg zHSXL+5kLRM*gFMh!Z6{su`v_dwr$&-*tRCN?M!Ujwr%H)ZN72N_wRjss?NFXs_u)v zdb+AtExJ-`UcA6;QHj~E>4*%ISKUP)>&EdwH5h%fWAO<%E`~Nde2vm=LnwuJKYV=& zOT;UiiP=ynZ{eKTV{@3AAn!>#y{whMq0vyd^O-PLNI~j zmV9py=CuajD%O1j`F1cGuvF8(@c51w)*ug@`;W(ZHJ6#EdWRz$#B_}RsN)rYU=| z{CX*!8NDM`VxRWc4DyNwZeI}ieBcKvNf4cP=cU8*6;PAvg{&TGUkA+li2iUmeEVpv z8LAO^@W_{gp-8t+3vl+ESKQxZ`t@0zq2iJiyK}0{mNPd`8QTnFdpM!WUVR9T z33t;{jR9@?t$8J5BN!aLrByD|-h&H0y)<|$clFUGqe9{WXMOwU$526$f98n4zqTUA z_6+l7OZ(`y;;rQ>@Rq9V3b{eZm0!Ux=VTH|*U3yV?I6Nd6EZMM8al-XYk{$wbaaK9 zMk=|o5Xkw7!cORD8ZKrQSDOF!;4z~!hqeF@ zD)!^0Fw=PV_Ip&+peGmR6-pcIEK&WbC;~5x&HbEhwo9g-iNH9j>9xL2qEhXt`TE!4 z!(l3U)Xlu+BM#Kn{bfc`QTWyBBd<0Yg1A@c8L35a-)XDGdZ&1DUGS5YpCj))NqBw6 zPpCsFb(~=7Cgu!@M*1q7bS;?m?XEd->rz0X8EUP@D)ll2%B8~?AQ?j4eXNSIR7Q6( z{vD1)(ihx}T2P+omLap@YE>?q^GSKjZXs9qvAs4eRyR$Gu@k7Pc&TG^5o`__Abe{x zCwHZpT9v&~1YiL}v2N}Dg*j8PxEbzvKG#^mlN!zk-Fwur1yc2C2T?b!7{*MpjI+57nuZ?j&J}vebF&U+UT=ML z;1^C@+giA-YR_-G#u)y=tNJF=$fwPDE9LxjMp?~Vtt6j0{d^iqWh5OxnaT?E>nB=K z#)=M!vKF?---SZcJYv(14NMrkdLHA+b69l%DA{@FmYD{V2S0|n%CMcdeUG2ob9y7} zR(nK}<}=)pT7FTD?amHG6;+`$)g^giM}5N-d3NgPhI^o8b(<#k?J$Va+>Se6eT=-D z=rG>AZ~@8;c_lrfI>r;V@NsWRJL*hAN>hk zM3_+U(yg}m0=QNkQzlZDOK6{LNmqxFC8mw9cifcP#E#NVk_BP&tW%8>?Jxs54)07LW%4w*v*xS_o8A}`+k3&Z6 znG6{enog}4pM*d1Kz!AX4LU(z%$Q$$4@KZc!St5aZ!A{^VZ7nfx5TlUur za+vAYa4kr?H!}v#OQbT5n@2dUs05>0!SC|es4E`2%vU60HCSN`3|StI8^2k#v*ax{ z?JPTDv@eS2aogw;BTl(k|W~IMwTI?w_AN zuNY)q_){|>yY?Sf%(z-HF@>L_d%~f9ygvmmnxilo*@dK!8iY@pW4;aHi&0?~l7OLS zOu!Jv^U4ks#~-jOwq?`W@hHi;(7^RmDYiM{jQQ|6mH8QEhj6XOvuJsYNZe!cM=EaK z4r$ITK&v2L6@2gLNtIGT5Ym6XOWQv=;hsDX3vX>ujd_oh`EM_ChVzf=Ru1mdn*NeS z3d?yAeB5VRN{A6I_J3O}I-(fMrx%>{9zb!H1 z)D|wzod5}eC-aVgQKG}-p>;br9(CX0aV@IZt0i6#xvPY(4dd)g8pJRb5k5LT(7@(p zJD_fZjzJ8Z+AC4D70dl_PaciTv3(qA+#thsspLig87 zHJuJ#wD7HBm<#Q!L4DS~vY7bp9^H1LJNtv9THgU#->Lfnlx{}-9o_;J6N80My^NaC z2-=SxZVDw&0%Gm~{nsTsnX{sJ3K{y*D0>+Zy(8GOy~C~7^Hmx?Rms0n)L^aC|&05xp~-14wd zcH^pk4l;)+)8rpm1mqnIg4EH-rR4Y?V%RY>SRA(D&P)?_uB=ua1mnkjxyT{nLoIHo zd}9}dKs2Jlqp8ThVHo%`vRWV|8S=CJkSO;&o|0&_kSmLx0kyKdw(G;iRQ7I_*C|Ws zvRSKOh?@jk+4ynfy}XKNICCD6yRd9vgrjNQ8!WA0XW#RqvChU#j+079-J6N0-s~wyqgg{t49y?;xJfIf zsBcLBkgSuW!8wA3>tD5JX+QUNJgA<*BdxFG4Gc9P80P5qwjz4;wF{0UAYwl_q$@Q4 zn(G1iw-77q;C~oWIY9xct7z(l-D_~XV#k;2qUA{`S|WekmXZ_L9YPKNrp5zt>N8np z>S0&?TA!#(Ej)CMP3Bs8ao9`~FH=j^>G?#iA$8X(l&f2a=Azr=ZZTk#mEtfFqvR)z z6qqCDu2V{eufLDa$8RdvG7R6ysV$oxgwXUq1Yut{--tau@A=g;_w6hl30X8kt?Azl zSd9|W=NFB%%x<9l`aGx{<5INjqwbtE;20%MPXV$MO4l74iA#t4@p=bea zHcT8?CUXGhK?7!`rdt1RF-0BzZ{5|eCjOR)_8-vSk;+XE%tC7wS|Zpz|HBWcM<9nW z#$EdZS4N7%I{o)#b2jXEbf_})0rE)3In>j8^S#v|@*^bKN`hBYdgxl>IEf?nn99fJ z&+`a}`YT>&yZkY{l}c!?DARvfexfmDT}FhrrlYfR{z`*B621Q-Iq{)EEh?WvQ@<9M z;29}5{V#7oW>&sJ(11npl?06)CX>W48WV6EWWtV_Z2e4BqJFl-8w*5-WK?j_GL^|{ z-tkfpwSOx~6|sq*W2-N=4%xLD8wBi(6=z*ReW=AdR0_e$HP-#+-gX6M-~8*xD8g&e zSzbV0o8h^5nFFJ102w_Ho&6+kn}eqdKXQ*SJ-Ppt^Ve;SMlN7ULlwk_r%XD6}j~r{v9@d;lg4i6Qliq=t0%7 zHgR)fIE)@+oG%u~9_@*X^JWQ_*R@mSI8q%F=a^O1{LN8`8`E5ZSz3-mV{v8|mF~u; zhBhT!cKR#Rvj3PwgZ+05D8zJY-f`00Bk#qZ6ifGqIH zP#jTx-lY)NcB2**z|%KYxoxV`7T;Ajj4sO$m7u7jXOwM?*Ur_cAJQlZL0R_Ngn~7% z<8G^|bKG<#@vzhx93|dl!2LC)0h~4!MbWnHv7-EdHXN|wI`N3x9;iqkcg-%^h$0c% zIeWm!Sli^i5n3~nXXDkBW))!@7!zL~_F7g>jd9uqzc49qQfloY?2-vukUsqIhQ

Dcp){fy3-H1H@#C;K`oyywkc7&CSzzOjFkUH^6d+!@hDZ?#bWV2e?8V z?MX9xgDeqyHqKva*USm%@|j+3s9lJjN;m7O%B43F;(3~EQrU}C^-N~Q4ir|Xv&V^a zlJ8|05oFoiFYl^d5F(wbm=Q3Ijbs<-B}Hhuo|b^K{;fRyg~e!S5M@G3QHXaGmUEf# zSBx^~anuS2qOsW%2W~>7|DaUo%=*F6D^IbPdO^(NoHcR3I|lVdcZQ_Zz+jprLX2DQ zYqG$}J?9!%KAWYy~sPz-Ty!7E4WL6odoTvMeFTf$MWS!Te}udN=7a4XA0E;3AU8) z%x}i%jkH0fW>py(=4hBiHmN>wt9d=zuDJ=HF}2pr&Xw!3nkiZ1)uzw25z5#QI?O(% zYOwu1SgOfxFdIHZCZe7JEG^HZ(`;=aXBY}$EOIclIL7Vr6vR&zdqEo6 z!_}Poek)6)fdiQD8vh46favTP3fVLT#Z6wwYujUsF7cfukBWTskZV3iSpUD!fjIeo z((_m4InnXJ`$BiOa(eGZ>FpKKezfh#qlQyV>#xHDF9R8*On6V8UY@ddwbrR-UxPqv z_Iy=kdFsLs5v$h9v{d>WxpXcB)k)b;&l6RseJdEo2Wy@mUwTQ)QJXOKih`7X?%ta^ zwGTA~dwev8VNW>ZnbC!Fek8Qg2O59Fl7zBDp+=-lS4aYLm3Ym`P{zc%{-n75@6TV- z;kc}EH9gt8bV+SoGtZ9OCZ}448M&sO9o(!!6>`9)mC3q}O*dU=I?Ga}YH!mE6f0y` z6S^PI%DZTeYKj2=G2*B>=GD`W!|iseEq4^v#UnapZ74#Rmmq>86u8MNC?6y-8G_RA z3Sw^_z{VoyUk3^)H5-)hcvkk!lAc~_YTe|vHk_*+6O^`SA@@Jjn)v14I4qMnI+UYh z(s;|yFf^A5f4a$aChmdN&l(BjEZf6D&T-OoXvn(3YYkxH4ER&>asy|~JUk;S=(+#I z@F*u1qxtiT{zc#a(A`A*LA;K(*W+q07dysvQ-nm}4HKyAy=vgLrRz*)##rfStW7B) zd65A(FVeR_-xa_sA6cE5chO`uq^&oRanj4H9EU6Wi7tX#Pu&LdfcxE3uY-Yo_eXP# z7PE#;+=GXc0U{S;bL=NNF0v`vHOfJ2CTPl+e1<~+QmnwP?hj%d`C(W0etHbIub@Ny*tm<3YlEkLin=-6FQl8bB2V zKRTj+Uf)$XE<4MH6C;Z&M+l&zCtx4}cHJUcf>7onRTrs~)I+w|`A14{jMHf7%x*{c zR-$#99f$k(u-ka&vL&PJ8?1OUud6%=2-=ARM=U$E!Vj8va|FDeek%yrI7Gg;q7iZo zN@f^;A_?+hrbUu9|4pU@Z>?!~ht}~mQOfMIVd3$wH0&g?-pF&R0PLu6lDn`Bg)Kra z=9g;QTrNs#lr`k5bP0ywry)0AtxSVTRacSuZZtkqrGr-3A@eQ>4Q%Lq>Fd8euIPYp zgE{lfX0%M&-lD{lzdK!=)9^uImayK^7b|4%9WMEDk+v z6$nfb@}&b;P%0v|MVt-y+F=gH0#_(UyeE9rD~`uY6hv&57**835QRnplebaJUK#ga zTK1Io{mb?LXpkD|_z57K7K4-V=PY7yygXmKYPcz^J;x5->C(6AJL<$Y3fg^?tV?tZ z(NA~aYmd3MK+N1Q)I25FSRV=e7QFn_N8+*Kk8Te;@?_XoWSfY!X-X_@iqfRm>M5dS zfj@3e4+VyoD0ex`p;NbH*_;zWc^+OE!AIWj_==Er?q!#AZSnBl-e>B+`H8XKgC1mb z{uyMDl|s4@Q?xHb_ywwi9Hn%HUj$bJy{lI|5Xt&Sz@mr|y>Kxsc4CdpZwF$x96zrORR;j`&p$okUB8D-5=d;P=cGHAjc% zZgWe!++4XN*pl4kpN8<%*hS-tE38L?|W=G-!rnTg^@vPJ>&453-Z4{-=Mu4|5P?ECkugeB;&Ia3Ch*?E^a+ z%4GIm)e>guKVO#SEbYT&+zv=gxx6c~zepzsLa9CtU(2Q0{$Sz2!@C3lqa%~&6zdRQLG>5`9*%Cs4K-Zu{6SsCTYv;$onB}z*|@eJkXF2O-2>Z zrnZ*b5dkV{Xv1uv`|z`K0*Gjx5M%_VptNvI$&HO;&2*sQPiMs(x|}$wlNOK-4sF?s zkc~>LP+~@!uFG-=|A`ALpF?N2K*hxcKl=%TH$*lyizS`A&%uw--OlSpuih>b%&W;q zt0G#bIRuJ0{WAykyyJWDkQv&~*2EH2=U7j+k<}C$c8mA7TLLkK#ih$)GQ6U5YnLpyTSLte>aCkp50@tssP4wSJE7iC2^6y zIeSJGs1AI+-OsJLQ@nJB@u&T1xc)pg@XOY8FvoPl17)sN~f^ea?HD_)r zoG+O_NC3-xAZ)|ib?g`?!=AJ@x%>K4-;zy-as%>T=)*NRfdQep)P^6^VJW++t^|y1 z_^|Czy1)l(Spf85<35_aV}(pjt~|nu+zw@gQcf49xL>kx`8 z39iBTCxew{EclTfo3xloyvNHY`FVM#JTmbep6Z5v7Is%{ptb4KNsu@Cz zysOe_9Knt+iZmdoC8d2sK7KsQI6bO1E&W{A0VCtolUR^mAvN^ga+gX!Z*DQHUEp}G zQS#Z%gqxAjm1o3c=nT{y1-Pl<18Wx6SBUnsS4>49;=`ktH=K@Q8Bo(j5HX>WCi3Vs zCjt@&9ZpleVMZSfM9k`yM8Byn7;nW+6=iWzi1qdCN22^-5e!C;+ZsTcsHM0kt{n4| zL6~KL{h%LXV5;AZ<_9VqGw_FzD!xSef~)1TNEcXC*E|s9?&YB6*}Na$?pjE(YNJuj zsJOpz6%s@9=K`%w<3wpyV7?xJw@2Do8`^Z1I=jYVPui}l@}nmR6yxR#+XBpN7-R>nH=eDJZigMgZlW9=Q(>J$2# z6;JI0;VBRKOjS(eFq3D_6`V&qc;hB_Ms`%Hcvq46!Bl8Q++ybBmtVi#qpC8`n{_!l zWn*4W>K&bMok$L{5GJB~?W2uH@$E(;*|=l*!3(9ipk)kRO{Kf#fsXCxe=bnO;bre* zol`7cfkqx{)(aY<%{v~kXL>QlypaSQ{Cltrh>SjujmIsFMsv6tDeSB>+d88yW@GbkO^URfkd&jmNI*kcjZ*7(2ub8ecX$;(}`{itizI*6& zW#DVKP9}|iNxl4Rm^k_N;^gf7r59%)RvZo!2xQjDL@1R_Kyiu(4a?o>NT$m%?;I^M zn}}9`o?#fii22yxJEM)aG^ScXnr}tVY}yD!Y!#K0bcKw==wEiMEH-Dt{ld--7FXpL zx`99(2QaT0HNrn3{!~h$^)p;FtrUosP=^1=;jnmX9n%K!Pou4?Z;409Z?(`+j~S9l#Bcd>9*7A2Eac%|349FE=RRoM2{0@Nclp);AUJ@@B znLcY`pI(t37MZ<Q9qAwX#;e(FAdRj z=wzxZ7}Ea~;6(j4KG)Q3Y`=45bq8*UifQg`zE9O*iJ?8b#7qKfL`S_Ae&ORh7jGQXc~c zc}ZVfMhxjK*e3dw^R=v0PfZRK1(?P)_Ef zcQwLD9igT1lYNjifq`xXZ=to#SXx6cP|(%)+E2=m+TjdT z61Rm1ZULzdsavRVk~F%D*(T;;?7#%_c`r3YKJH5q6VfqT9d59J#&6iHBnXt^Evs4UC-2AxNSsK$ z>0cbI{sxf3OJ{KpA7jSrGeKkBMo5pI8aKl8+ht+%Xm%H_-%@Iqcx4^CZ_@E8>cu%F zTFJlT-rQGj{H#+iO6BR%4CKjC~#NTCYCI zc1`%V4*A>7e%rXb{Dhud3APd6*CA@vjQA^)?it`3_3qd|A8Pu4xOQ==?0WtiBecg< zL@|{=9-_A;5uXb?y5KbUI=plc=y@HJymx+g{CK*b^7jP-9R$B0kqHI-KF+5U4Zbw) zTrc=e#sCM227FT|$$Z}(U#a?tRpYNysYVq`vfLt0F3(n-}i@g@fMZlN6~Ex~H@5lh3 z_6M;Q_cuw)+BVy}$U#EB%+Emo{$Fq5fFIr!oGJ}&0-xycZ!X!RXKTau#*xEGweH<9 zNW5LDxx>z%V5j}i&;Icca$+eP!8Z)WFIe!)ys76uBGvGcqs~2kgcP5tBvLzlJ!S55n|7muk{3e5*-2bmk_y1k9 zYhMWZ|DoCSaPY7wtC*BmA5+zs*N<(KSG__5<-_4bKHx$4v3yu4(Z!SMT30&rWYmA!dz^)d%?4 zHx>R#LvPL3NF(K+llB%28{D_FbV`FIr=K?OnU0mO_m*D#k9bcE0E@>^9}sE#x#+1o z4{!JV+g{&WBmMf_iD0(xt*Wnc7pVO;0azFO9s*qXe;-~uyhxXluKc&Llb@}=(Tm+p zLi?ZQpUu;C!52cE6UFD%a*~-W5d?hmYO%A$mYiuu)U(i*JkAF$-nO7gY)`l`SGFV zgul1iLHgE0-`hulM-HHwENnXL?cP+|8XtbX^3^eBpYFiz-6g@jB^Y4 zm{{-r(dSMpvb=&a#n;)H@0C1dMj-!Srky!tLUSqzyz}kkS?Q_s-0j?cS#AX8w5|0x zBeCD=BwAu3wH^2THuJX~GF~XS_SNxrp|VSz}F= zuC96wh@1VUo0?INwq|{Pd5;aiW>0q640F%A04OD8hu+^-y9wXx*FDG60@rIT{Mj>= zVI7^jE>{~^o&;cd;8ftewTQ{y?Hu$9?hb%Ncc3{HS4hOm#A-mHn+|RTjQXnYK-{O+ z9#;TN_Znv}02mFg2?SiV)FM`qE&%$Q4Z7afqxW3AUtIWB*D+7`+&+%B+UvejXE)Gm z$J=Xs1EHE2KjdEIb!u)V7!$}afekOl@W4LXh)iIMqHD@mM`Kyj!u%#BKuf$LTwsoU z?UM7X`0H)Q-#Jhg;JE$r%J16?l_txXDGk!5+0hWCkIZN92sjI9vm=xBCOqqWY-yw( zhdPa=DD4D7{M95Drr7HE0Xb{v>%~0$HUpRHtQ#eOHH4OOx=!W*-P^ociQ(r3-3tlh zTMe617vt$1WsL<7*ue+R7~le5f=_Yf?dZlf&>7&+ewlVtzqXMD0M4wzzn$vycTPw^ zcs_bz{RSk3R2Jv~x4QwI;Y~4OUA7@$N9502f)GZM(LZYdXd$aP%y}L$)R$LZbDx{_ zDWliBmVM^6%RL+x9}3XdhUTgp==@tz&|^aH4Iw7rs94Ke%ih?PyK!d~%*TVaUP=#s z4t%R{q-xMfX@+@abF|bC)W#(JZWY*K+yH;~B}Uo#OTo=h9%QlA`{v@6>+af8Q!GFJ zI}BmCvu(ul7I5sevgf><$Dh9o$uf$0r`Tk^Z`S#6j|2VN0jc2vi28ID^Y z&~u=v46Sl0Ud6tm@%i)K`Z1V~E6HWWz+M@qENj00Q zyF){*!v%9Hk$}cUlGNClJwr2tdya-RjYHt~G^tW#}#8P)GnYh5t z^Zu2Kc1s?qNh&Zv=Er;n{NR7Y-TN5qPikTbG)^9xS0grdf@s+ZMamt zJo;{yT$@NLh&V!!T3sg0hxEnBjNMQzcWjveRtN>&*Qp>kjBGW?;Zqfu0!O2_nJ;_1 zbzITcIz8TXwhp<`3SN5n)t&7*Vb}dFI8TT#7+V`mM^7!fTDvxtHV_@ehnlFt(2P50 zTsb57o)}IbI;6g89U9EXA)S$2tc)XF zKUyO-@tA^Vu6!Ub+=0|Deh$xiI~(QQ%BHn93|2%T&9Pv^W0>|tV@O8Q%|-w&ccVUe z64(B&Ys6qNqILw!L6*n0*H5N0_(-WG!!|LnMs$#!Pgtr9@SRufTgYhl{xp2~(asv2 zD{`R$&&$<}msMZ8{25(e*w}GwpS}>jw%dipl1mjKA~okzVH0hzodQ(6a8Ix!{`wE0 zjKZF^oQ?;;PUkJx5KoFYiNmUemw^}mAl109$=~R~k2D8>yPzNh5&g$BC*=L>f#|Kk za;t|+VEv1=N(-7g_>NnVAz)LOX+`9h$ZQs1@4uM-^U3)06#sJ`@Bbd||9Gn7iU<5J zk8vz3pa1&B~bPw}0$6X#y-w(=4w03Kf{MAFe2^*+$Gw8Lyql@&sM~($Pw6 z+P$ zB?k?m{lUSdtaQN6KX?drb7t`K6V9Mfz^gV6mPe_-ge+Bg3lh%in`t|8ZV=;cgb;?WJy+N2&%bVjKERz6#dktK!?h%b!f4?!|gSsjO(Gxk5I#OG31O{kV zeOy^$hK%>5XFa#eeui&c4n}~yKYvKP#Uk9zj8uK+%mr`V{JSHcP)mOrY9KqQgnm8k9a|DRiG)DaX|}CV3U)6j~Ho2 zeHaoVBz6KZhNtXggh}!_6ap5{OVWw0(G=474x8@)Z4$aVpMKliI*ATJBd@=k{{Xq3 zFh0Nv;xn@R%!z!HR~i{NL!NA1iE@p>cT@C9cN1-=!W`Fqhr=U7dOL<^%&u>5{k&Z^ z0W;JaR($S1|A3$SuOAYUs759O`$I(}?)eD;LyRh}a`HB;HB5jk?TuSeQsx)?>nY!K z1!$;Tc|1Ckp-TWg6?P_={UnB?z2N}8rvSzkI|6UErtzCPPGsWzB8fS{q7=fHo=*rH zithkVYB(F{2h)c@cWl>9J)KV(@{4#Bx)s@bZ>M_vj*LnV0p(cS@}Gn}|DUB1N9<9#R}|C=i}|~%)is9<=*ZoB?V4RoGpEn)@hURxxf$W3xv@RfF{hC?ni8{jL%c8iiHGT{FRBC8 zJ&Y@Ga*6(%oQ=u-}}hDq21xw*tl91 zSnuQpWkYc@_%b0C`Rc=rjxL>>W@o}t=M~*mtrGp>PcUR`d_7hGmut{bb&0> z4zBq$TB5KZYTFfV13wnRYo|dhQAsKz%)YQGM)|CF;~p1I1r5c~1J`E9&{9)N(r$3+8+Bwh!u zY+u?Uz0ld^uox!;hW|>D*%(@ov=;%K-BBtiO!_4oSc5Ra*wsS(D<)NW&`!I-jzSaD zP!Ty5g2iiN5F8V1cwH3*#<@pH+Vy&qAilxjxodqjcE7!+oUAjDqG=+F;0Y>dr%qO- zM4+?1z4+9U>^)Z>&=uB+5Gxj*!iwJvl3!?r&Tz=t873}?9RP-zI?Tnj_0_ptk`yrH zfIAjoqa;1g@Jl_#$ZkhcB1plyC`o7#q{rflgbEWUDy;GW3r!T5%h$O_o^+13@q6ieZEc8i!r5~(XkUcN~Sl5n`nE(7=_mvS+q7x3W`f# z>lOcuF_5Dn2*ZI6`9+AD*{CD=I-iQ1qH`Qv>wHmW`X(zN=vNKIdoXBu!94b_E`GmV z7%ZY?lrz*up#~X7X2^%;t|t^1&wqECXXNH|byv8t`o{PGy;s&Jl*P9h;%~&B;mr)P z>!IoosG@YOENvl-^75(|uT?;NN1YbExEE}$=rE8#nsMNC?o^vo+;}LPB=h4YZ`g5u#2CgOyY+= z*VrtmbTX~MU17`?nsLCkq786$l-z1)m_ldfaPLKr}W_ zrc;?ez|zzt3v~T;Ru{bg zfSb;ZMt-+nxyM3Nyw%`@-dr@7 zw5#L*mK#-_=yk{&+078*rBUMK5jk~hSh2;}JxY|6qeR~+?=BtjjT-$!h~j}_z3Q2f zO;R`QP--8kir~fHMwK|n+G#xVvIvebS9Iua-!BCMuLk8A3EvQ_x_nEWQ)`BzUZ^i{ zk1M4^x=p@e;K6f1pI!(=Kh8Fa4eSP%%)T z0`^JyH++AZ7~oj)PXskKP*?*`!rboaqwFm>?3U0V0%mN@CYpoMBRnh5E*b!2tov4? zJS_g936nnEz{uDHGq_pz_#s4b9$r`TEFF>Ln9edqcO{ym|E|01q(hMwCnrPhbB}Yd zz+MIjQ>i_H5)Tb|oB69lw7!f9g&XbSrS! zzn^}Blqb-B*#`9m zqS1q;qaG7SU1pjYthFS$piSGSwXK#iaF`T`POnfH{k3kEgoXUu(QHyS`w}P{_VuUu zY3V7iE`H;uv1~@4zt|jF`n6s^9O0zm5cIkVtMPzo?!Ez6(eQJv@8iS&?J#_iJW^WS!F9K@;Pfl@mzf5au8VnBJD?@|{|Gt4DXdEjqdnlYla>WtiX{18hIC zHZY)Sah)anK*IL zub+_0ia9a9sp<8;WdicP$bSS%IU!=1?BhdV6OI0&8adw|E%q+EII#7ZP5q5~&CxUw zTqByE0z07p0S|g5w*HdJZtP_1DxV0z{BVu)^)+?*?foGj5L7)yTTeVi6sHVr@=^VL z-9v{1_QtrTT7 z4~FI7K=|5Y$BK7d*$KyjdNxZ9QcRJeJZq5XXXYfoZ;DH5rec}lSJCVlu zY_i0CpT40br<^1Jxsqp+*b5skSqP7Vpl+l-2t|JVjR_}1-k0cf0D4t3*YY`A$omI? zFb8WeLw84YF@srhcB^ZO_O+8AX&)rO{O}z3o&Ndp5Xc3xBk37}g`>TVlj)r+a85BN z@G07`nG-NU)irNE4a@HtEKJIe{V~3J@oyk_??L6D-3#C86U;G>=9cc8gCdB3Q|feH zw@&pN|MmKH$`&lTW<&6lxasbDK$q1$eE*t)ptBaz^OL zeEx*u3Yg-!4|u?cgJbDr6;i8gIk@?AW)~%Vg(ulJRijsB7b4BGL=-YGx9_n6`BbmZsQw!^B2|!KL;MEovy@ZPaQ6_e{*OE8o7zthxI$W0 zFw}xK{d}=_z(IOgNz(si@me5&7!u|BBK0I zvsZitO+DCiMeV+y>7)%Ch2^t$ptR}bWf%y6ysM4N3x?G@*hE!vB9ecWf^CFNesXbnafN(ic3;Vs=@ohT?9YcM9F14Hf5TYD z2ar4ULgAjemhR(ee!OKb-Y_rzKA=`T7<(4&+-B$IBe)z&1wKe4)%ez?m*bhXkTYUF znI~V0H3z3-`PvMBmtJ9A;GDJ914?L1=J8zLJ`9tKQwvu@>P6}!#IKFxS-Dp+NvS)I zNE76_FQv;{uZYNq`vA#rzx|(0*ZT)0Img1h#i2o5(q?}lDFGYcVo&9D+h=UcgW!gT zV0LH*A!n=LI9zXC6)ubGUd7%1iG@@p#gL0Y_wzGRs{gK>r8JrlNcC+kO;a`EJ`>q7 z5^^?kO=M(p=%cMHolJG*34n>gAo9%}x}^fQKI}c%)VJYUbOfW%o^B3y{~A74eb=xl z3KOhL=B`GNJG4a@Ljuv_L4A_}i8P;EVw>8|3{_G6G_;AGim*^gFyw1yEV+vhQYppn ze1wB^YPBh9cSGxR+zktmJ3=;R=Jh~&gGI@K`U806kcqPUd%bG#`Ih&!lD-2L1Y(d; zDcX?ZOvx(W=qf4}zA2&a?cNU;#4Zy+u%ItCap%A0d)LfRvj?+X`A35B;aZa|b9uYn zR!WHS3R=H~r<;;DMz~*}KBB_Ev9ZlCa>-2U;rGx>PgFsceAR&VQi~UXEtUq$Q4~y# zDplp*TbkT&7L;ZKu6PFFCMfddk7na;-40LUF*GoRb`c^5bNIVGa@A4`onfr$Uv=^b z;rwQAxg)?NF}|J4Ghr6`LAmSedN4>2H2!1KspQFav%c6tMx~|`Rskp`4;?my`?_8%0!hH_6BQhsVF)T~3Bd&W`cKc?BjP6jC_D$k7hTv@F z5lU^v&vc0l;AR{)WbJ&L`)~8B!%-y7(aKdJB*pQY5@A9ng=dw+J(TUqKKl{jLeW)m z%0m!6Oa_5cNkY045^`oa=~29~Nx(Y)o(xgPvs0**q_7xPI-yyV&iXn3-#*K+=i36H z4}`ZaXLdO}4}D=thjDa$*>c5Ey#>n;n}e2-4J6Ru7B%poqjPJvMox#1YdyB@C{+3R zQrJv9cOY@dBIk1={p+=TzBk&|VIs*79r(GR-&}U)3&A*KM{cHI5J1EI`3tGT+FkK6 z*{bwoiI+rmCqjQ1xuamN!9(6I-}oK2wpeh>aNfmQryTzUhcklfRER3hx&9T}L?O*R zJ@Id$F--XIqVP&ug{UtFK*Z{)FjO}}=Za(ZQ>d9GC-2uoYrVUP@M;45_-$Y;@bJ8x z*re<@VxBHrYfLPYHGHLb{-NN0F89I^E&hGk7jrpXxE+$LfE)!_LTSYkuIa6}uJW)7 zKAWN+Z9R|gaEv1RMu^P0m`sn$cV1JfjelRJlzsjR&vdBgk_;D+@jUxrO|#*|&rTSF z=ojl&<4LRTm%k|hDLeXSS>4M)Tiq;bQ;;yHCZqle z!jZLwWtW zE9HfHlt>@&@f&T>`5TFYunhz|d0WA#b19~6jB<03(bNjeI+XgcgN%?O#6 zUHg!Ea~Q9V8AgV;rT@-84Nq!Xf>@l+%po4w@;SpEG8{oj)S-7rh6tJUBc_r$WXbU} z{`!3RZ&Jx(mS5x+!zv8dZs@!~PHBZfzC7`t=25f>){9{O8xdXESD0@Fi^<7Yp5OS* zsf4kf&=6T8Bj%FtloY#ciZC3?s_5GpI$A;yy)~B1@MVaARrc=r?%&>xVyH>Y((44gFqq+SY z`s2gR1%kw)y5ojv>--2y&xSq4=MKzjZ*DH%FFrDbycbep^>2C`W!ge1D-)+@F)<9P~rayxUrd?fgc+tf-2i2prU6`eY+X|mXTc6z) zKF8_v&96t0cy;Un)_OZh0I+ySODtq%(A0&33XgZMAZ^j<;p3!K@{>V%>`m~b%1|z) zSKlA+ZbE!g`8W3R2~Fn~DU;6;Gj#Ajk8^wTFZurNc+%~#DV?8EdQIy9bMrOBc9g^W zV_ltAF84G1S%L-tCw=+GDlUAld%ior=xAPkF~lNeMW$~Mr))QqqKgyzwf9tznOwPve_R9nZ16=*_pN3sFn%=<2A5{u~kUim{3e z0s^$>SRKyAVJYWRZ7$q+O0s?n7c$zi%smGRjlVfT9g*+`&NI0korfOFN|!ePq<8-* zf&I(13U}e8%wD<*!9*mlcZG{uBVSG~Dv(`o;Y( zk-C0DSy@^%2Rpf8Rqcee#5# z#=gY?AZjB)DeNvJW8H`tDad(w6FyFcUy+nwTd$t_`paMOAxF|0_oJIVklQTtRu01C zjEL;b8jrWpKfYhQBp-Gd99C5v<7e%&?~kja9rwO?zsVo)v-Zm+?)!(|9pRKI1QOxX z7E};W8*ZPy^W$yskM9?+Jvjr=ASq0?N0&DKFjGaKky5iMB>Cm<2cz+H_>=l|S!^Ks z0B!ja51=qwvlhuL#L6#MK^ToUUqR)|i4-AD?NO8kWAgycbW$xAAUY~%%w@Fb`{`b2 zL_L-fx6FUZF&5&zg~)R}FQR0xu^0Sr|HUTWOYX69#&kk5Q3NOeF%_n)R}W3U=jn6! zkXK=L)=BkS@hD$i6OE`PFZ~MQ{6$*g5?-B_r2040SM}1W=Si#%OIu`W>1q$99)b0! z#cS^Ie9GN;p2X_vPxz2lUcjDz(z^6y;L~H#wtHbz5?4HA?b3G4vrqB-6IP}mK=+5I6DIfKf7|1(5JxV36DJDcK zkK{$5ZDxy5*sSP=kX%Rqc=t4Y$T0mhWY3?qFHWA{FRrJ!>Kf9g7`kSwOIF~@L%uE} z=#pfK7{~-JPOEbGG~f{>u4HIVHf2A8hf}95KTqY|<<)0>d-|mTT zm*(k+`u+5T4MhQ| zd6w#Su4-q5*XPh5-{0I>59tW;RUN0SN<=AHS1g3suN9vj(Y_e@l#k@v`cSwXv8RMP z3XZGN*(tAFv8YPIxrPRJzIoB|rqf#%$x1*mvA#(P`qGZBqBQcNeJCe2(T;X!MBjNbxDyk_9%v3CHAXE?=Yd1>ye!!uA98xa=!+qk z*H-Ne8s8y?83dH%Ua>^PJ3y6(^Xq3p7;Sazhv`YNBXuFjnVAt`uj(qX}Qy<`{o4hh|8b4{DT{SG6f**2Dwh6x#(R6Z_ zhyv86)SU>+WGk#qge3<4czOdr;TMwnSv zV4}JkV)=8ZxbLSUv9hV%l=oQhJM7bk^C1ip&lUYD2I%F2tSi#O2N~{t$=}#{{%b2P zj)1CUhS(N{e_s-hlSdD-%?m z)33Y7FYf%~;0u8YU=YXND!7LYy`P~H}hBq6+fq#tr& z!UY$V%=+4Vbqx;m={N06?njH2%kdY1&`Zkb{>f;ObtLD&%be@U_>d>#c=AC>9YKzW zkK`Od(Qk1wdIwe5cj#ds=_U_kb;7;1W?{8sbyE%UlyuS|J>9W&$De-J4~K@341RxYyY?mwI(klC5#BVVrasw{+p3e{!|Bc zsRvP%z8t_sh)*x?ha>6~2ODKEzP4Y2^y&C*bZU!+Gkt$;yQdiyxb4#s97|1eN_BCU z#}O&kKOQfOYL~&n)Zs?{P$)<@22BSyfE2Dev^wJPa^n3Vx#%1zkPQEEUkuW#Ebc7O zHJz-utop0E{6g<@Ov>jR_ml~Sk!qk5OMu(r5f16+n2Wb~A5QfiIEcWb=Jfd@8GU-y zI4y`T3IFQv7e8|m0i*W~S%=vD>co|}0Vl(;Gq*2g&3%nM6;B7M@^+@DM-nfO=My@; zT+y-bL>78+qK?=nX}nAmP`4DhQMs%!P&@T@sD?%u=^pU+;(qf)vxG&23^*8ima>}#$s%z4&DWZ@xn2~&dHos|NCElfsbJ>iJ^zsFl2U|V9I9?heNF1yj@TH=gtl^M!+SiEi?8|PEFXmNJIf^ebmRX1ay1WK6t+>> zf*h9PobFk)gfOTHZtOp5v z7wIg2+P?O;MF>R#34=FFa6j$-_|P<$CR2WPWcH%)MlxIb8YSY>4y8F)oq!yf7hsKW z70fv*cw~i{%rzb#pOemHA%U2|kh%!X@c7z}j+(Okjg)3d5#)!mjiDOF%U*LLZ5_B~ zMh>oFxu#6bnb>V@|=Z=}7T#gln(*3@F@5j|||M3jXLoPt)cJa4A zJ7U1!-G1GiW0JlfkNqP%{wh7k*m{3)^Dj~%TBxU+D!Nt69EaL2l%@(~^%^3;r!O%A z4_WQ$N{T8_4q0-PlbnKIoPK=*(Cg)2~9|kGjWtEljT={ zgkEupkihFEJ8HqsW~vpX;#;~e(-kw4;z6&`6+f;q6TVm$rfOWIXAr>mx1foK%vf1L z3q!E`rG4qG!LLXPa6=OR%{?!=Wv{2YRgR>H8zLZ`@=xF^xECf;?>=N0RFn&3M3eGB zE$fW4Fw{+J-j4E<=Gl{B&)|rMJl9lcZ5=XZe`!DaT94_BMyeMmHHf`i?5qfzr=V7f zB?q$CWxKk{3^pfS%BLgRdt&Z4p>=c;CgU4 zSD~}VDbe+fHLO$j;2N1K8;Yyz2yMzqiV{WEOk$JelydTG{Z4{e9Rx!DPy zcKeKK`Tiy9g{T;SXokNp$+pUJdkQj!JLfMUGkV)cOig;VTljCOd~q>NtFFwo+h+{U zb^MR-@8L3NzNXWvOx2E}7%|M3$|+@^!bV?H-c47R?`P!7LxCJ}=%z;J`bqm0?fQck!xo~6BNy!qq*EZ;<0Q>&yl(g*El84Zn+ZIid$73sew7H44)Bs z8`FD;lZ+B?kv`PURI|xZOvd`={gc+&0;+w6>*Hk3eXwQ@yYVo8Gs6{MoYvcLGY1h@z{Iz*Wd)a+{K zxW@JXybk78J)@b>wdlk#MtGhC+S6 z1W@6*Xk01R{h^LxOG9*~ZlF9Or^;bnhQ34qEdyuO8SzP|2IYc1O)}y8uYnAmw(?Aur7|BbXkysA}BFQ5ZO%cuT{U^VaQcY%m1%2MS2635{ zygdV}I7odiNxd)kI78mL*~Nm-`ioxz(2gM5sx)y|+czb-*7s4*+{LyOTzBX3{&i;a8Nl`# zsdmQ2s7$Ose-z&+wcp0;g>Rv3pP_(}WE$V=YQ(E1!HpV30bF29_n%BJtw7tizv94gN6oA%N#F4@1d<4V6V|>K5eT1($Y94gtm&DpV4cdL33~8e>mz( zfi?JLHv2NGO~s$~_!7tVC4BB}yflq=_*7=&<_IVGP*h3z;mTKK~BFNJ9?q6c!YEV~20eyzw zy^WW*#aj^FXQW&*rX-?w_-jU-3Rid=%K?9e(tXCvaRX)E?4rF`iy)B%AFKT~J|N~A zR3{gC=?pAyf5ywV=GhpaCq03$hpsey|?kQyHy|1VbS_a zL|qgq&ae~GkbH#hy^WWl10ZY#z2A>mL&Q>mC z@JBq|dl27cT+j?h%-Nd)e5FV|75@4fQTHX1?`^z9Er&ahXHKHemq)ELCm! zfSM^A27r7rX}n+n0Pa5`o1$(25r5M@Q8TvEfNTJJk7v9~uX98O31@Ka5nG`;scN6! zGZSVe5&Mt#G71iKdH#Ov{b%T<7JQwMxlF~{z{HBHQ~@R75+xM;h^eGXZ8GY}HA)s# zYg*6avD-+F`FzB0zI{IC^9sszDIINmmYLWe3|uC9Ho$ixI42_y0Se?f=4Z6&T{y-WKc}_i(*`}T z`LvW2+w!=4SE>z5ASzW6MKRj+hn${9c~#g0RVYsmZ=`*wd-YXZN)G5U8Y{N6x_@`D zladrmy3pVmRW_nsyv7>uR=~EPUYB6`-Is#aM(ym zdzQGO>b~N6jgd zoMw;R;%u|Cp0Ybar}=OE3wnHIE8P7HsqjBCXpa~M`ntGWodWH@+G1&Najk_i!!D55G` zq!1y7Q{^y@!gnes+oQI`GLZ$bs$ES~>)FocpL&h{!F9?#X1w^Vm7{&(k6z7Q-k$0t zFU|DUxvsaTb-p*pd*^Zc&F25Q&L7j5_uqVadkf~jzeoDtezW=Bx!iuU`J0{VNAtaN zdw<&Bo8ztX`@{bJo&Mf;yuWy!V+}d?Ys0)=yMWnu|W7PYQgW^TuU ze~bNyB;P|D5JCVd{&cgAeHgiscCot5olyJKu^9z}sx|d9B@ST}a^SpPQQ7cAs2o=4 z5x(s_@z!5{=4SYk6XI>W{C-me5)jwvR83MQsgCm3JPluxL%fYgJ%;~7wt5SvJJj(d za-^;HHDAMLqKNnLys$cvI{GwcZTQIIpfGN0T9hE-GhxKr_#fAl5ciLi54YcG|F7vk z|2xh5Z$AAWoXgq2Mthv?=wG9q!$0vHAI;>Z{1egV$8bQ1wwU^$@2c9~ZlSPpreO&U z*%>7iaU2>KO$QcH?IesXFU4hcog0NOp`yyka!{P}Tf}jQ%Lt_?)JvEL#oehMxLG%NqEhO(i|H`#DuMoJiZUMRB(ND&Odv-0}O0$?5rK@#ILEzd8N9 znIIe~wOQ2?H*M!YMNf9uVkOH|t2$`+Xt(V4jCOZ-t*)vtur#__9qs9Ma&x38>J_*_1l_xI-Qr_J=yJN@^b|IhS)%gRz?pOcQ60-iGx zZNjxQxq95>P$i&hvCq^Itx+Yd7zhDQ{7rj6og7?;ffq0$L1zoD1&+@Cs@;=A4LNSk z=rY`f*`;lk&t8VK*GGGt?cx6YY)?PeNu;QEiU~0|%%b;43Y%nOp8RQJJ~`&^{zX<4 zrCJZ(e&T;S9np$xA;3a@3t6MadPX#hKWFLm{9FrBB&u(WW~~%fyX5V1MhQ#Lcw`^( ze1*HOC8-wMdxWGVhPgS63w~SK`1|>GRUTJ10I{ejJn7ynJ4>dgU9DFtx;-xTdZtg( zbNKsd{=3FCxu*4b2QGOpUw6~f73oRV%qoCDr>~kLGt?8>MF!#4YV;X~WpJZ{8DwzuWJ=g_v!ikXo+Vu~0CZqO!m>>yay(iR-Es zDoEuqLgE&Dxfq)4loTwXxS4253mUTQRt*|g^|l!{Y-rYS`5-I8hH27_GfKA5Hx+&e zs^U5~-qRt;t3|OH{2g3Q?93!X!STB*IOq(WfrfSqJ)qp{&s66dK!>|KgKaYW%3t|r zC+q6A^)X}vxU22kV`GYHiig@M>Gjvk{rCV^#jz;iEwm9mBt@DcYt?W_&Rf>1&*W5> zu|K}QC!cbKgQ#t3slV4yf!Yg8WvoNRm?X{|qFex+M2Ar#g_gMriJQeBCrtY>MO+?9h|>TdKq&rP z3d|y@VTQ$G#cHiD3DsiYXcQodoxE(E#PI9XJ=N?mK>1O?YD85U;l?i+y^^(2B5Bhx z9ZnW`vJ&Ack?flAzBP}J?~A5hQ-a-9K-GrB6ouG(uv*i+%||Y`t0pAw+0S+SV~lyUBv4k2z+7eX@P7Mt#=T&b(((Q*_uh zFabwnX^5ps4&w9Wc$#iz7qJ&9lWpv$CN8_v_>#M}U{ z2vhS}sk*9SZo+yWjz29NgcOL9jFd+xV^jXj@fNmQf1YyoLvx6-x5{WIxwgc?bnzvi zj~pshC3R;n%L~*?pIQO#oN-ZxLS?I}#2yRxoILcT@v`N+L-hWFO58S~yo>-au1=DnxJt0$RK zHV=<4fvXkj_cs2=nPpGO^0=?Sz%!|y6Sur=|6M5R6eS_|3|k@TN|%UzGKhurLn{nv z*+x@g|LG-3E%PP6-U$weyu83l_Pwxz78F`eUQ5(t1#i}EP+Y^z)S>)FDqZEaY37&Q zh1cb2L$34j`@FtoQ92A@AmV8XU|)wEc`L)WL7^Fz+|x;Gdr00R_y8^Ey4=Ud=jD0u zk-Kmm7QR(J+P)xW9=lynV*OcJXC5Epe|&doHfK|6Q8q3;-g67S5*bF{9}y4@tl&@? z3G3WG-2O}~_?gV`Z9Ffms&tdHv*M5nN=^^S&5s0wA6X5rV}Ce_k}-7ucBYv-(Y*py zKhq3;rZ;>W|HIh@Oh4=}LP{{@xW$_M^Nfz~c@E#k>xDU}W09STv;i&bPRljja`fkx zko&{$PcXmzVl`(Pq$dzcMkLNR1?tK&*~2O9Eu*2iTX`f*TMD7YDXe1cq`jwEOVznU zUv$_i$@e9FxdQu_#EWl>QxtI|N`x01PGyoqQ>&=hk3@-|2^!zW2e%wv3@R5TM}L$5 z5%aT+a_E++L}3rzZlsw^Pj*11#l3#KS*nT{`ZU1a>-HtlHW?-ktiP`FLQs$uj2ITXEK%Db7s9T{rOv5(cJ5tt|8Ulztu1R*nul!(IB^*hLG? zE(VYH2=mO=4-1T$Nge^_b}^%U#BcyTgE}u`m2$dk9N(M;<0IYWXPV8o z@xnqO+u&z1U5Hua%GI`5dke|+48yYR$#Vq=w!4>g8DX?~im^Z9iJ0KJOO z`=_e=RhMWc;@!%fZiNM|%MCL&!9j|s2QEq!oG%LguR7u;^Edv76AvpgS_~Jg>)my! zSJvYUCrdt8#^&A(56KA%vg?Uvv>kTn4Pbvu9ZIl|s}>5=0X|bn1B&jZ2!=CUa7U>8 zhhOegaZgE{cGE3UD%FpZ@Q`gfv`bMvUEN>WRom_CQht6D5m`g^1&gj}(=|~&K^GB^ z-QH*0F3n%O`9HpYO?�-xM_79n+o^O;x0Z!KvBpxA8x|e3n+u+b>@F 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

*S&oFM|BD3{q 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�Gs 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ఞ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 FB`R+DI*o0@SU^7$D>2P^ZN~YwHkgape4HZ^3 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�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 A6aWAK literal 0 HcmV?d00001 diff --git a/asset_sources/bundled_themes/duo/light.zip b/asset_sources/bundled_themes/duo/light.zip new file mode 100644 index 0000000000000000000000000000000000000000..649716126f9496f38223a870c1ab1045e502827b GIT binary patch literal 563892 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

b8+ zryB_aF)#)e@R?R6E#Z8F{PHhLI@Bo>cddNFHx|Hghb7xS*ly+ONhe&wQWR98STc@E z2ahD(g42M=#wZsMg(X&N?aiUA%>`*tAdT@u0f2gMJC*~EL*o?g)erPMWBW{YXz0-~ zwtQm2@BKUT_2Iio!#{~*b6Lm5I{-hr{lDSWjh+>h_J8^Qhvfgv_|e~F_5a4Wy1o0q z-C2B9rv7346V=c=RYvKC=ug2frT;_NI{@htblZY$+qP}necCp@wryLdZJf4k+qP}{ zv_0p46Y=i6n7MN+qAH@IDl#fESMI&`&aA!G99IG!gp8|#eSE_cS7M#dEH#cISn-s+ zJPdNC_C0uPOVd`Q7opos=4G|qf8!z*geD%7}yr316Hj#Jg%w{fl_s^`-yG=QH3mRj{Rtf{jXXL z1z6N;G76I#7HicLf^-o}s~#m)MR@>%dr|WMcZyktl-gusEqaFvH6IiZjlPrZX&fwW zO`tnoaV;~;V}n<(NZn*ro<1&UFI>Zqg4}$P@L_Sex-k1ClO@Y%AOft5iWb|u7= zhaHYn{ecLzc$WDSjgVnYSK}9zE`TeTvY-#nCPr-~#n38ohvtl8%ON_h2R97b_;(h6 z&nn^K$D+;>Q2aB#quLQh4n5HQ%; zKeGJ4F0QJZcANh=7W#lU1^q=${`ufH*ib>9ih_EJ~81= z8l|SbU$%dj-xUNXgiXXd!kyzE|K8iM)5Y`a53Zb9a~@u=uLm}5<0-1su+i|=uXAj_ zn=sN3A-H12ma}veQ1b>ydukR{! zWe3BPJ?cwaV);jVjf7Q;G&fd`2PJ|Sir zx~ip9$=hTA45Flda+*x-_}u3i;`Qh2DWChBV36Q&v(=_mA~dzTAQXno>l@{P3p?RU z>S?To9Ou}mZFBIGShGG|%j^`$87d!V<#;2Wp`@quu{ZGSgy!$Kc;02W94@H75o#6X z*cg-a5PuUCl(QqlvnP)ebXHG!Pdcjrs&oN6!7%! zjSdjGYJWX<9c#Y>@C$17bC0tIt=@Hr*9QU^=0x-nlhNBA4!o<@v(cFf*6W+==O38 z6!=263M(w}Nv(yx5ABl*)2?|IeIC?0rPvecIS8%_v&lSEao0NJR0t(_rg?scB|Yq6agmA-hB!B`=1_ zi407Dvq(tp(2-;m1#4`m?7QBK0)+;puSIu7gv)fH$_i?#RLfJ9LGBpfILr- zvTzr|?d+w;|3)aLaV28t+E4yNNth5r^NUPc;2i5l;1HZ&5f)+?ONuGpkZ43GNSNCQ zj%GrxFAofq8G;~xTIbyKYZt>sw78-Sy_5Aw4e!F+ z-leM%^kLeHA@Q&TEB`rvC3P~gz5&glXDWC8rCurmo`c?1c(;GM`KRiTG;y_CjR*YkD&7|`IgHqLN?@wPo$BWNP zD#6NOyR)61@}2Io;mnf!jo3=RSB_bebv2a-4y>3Rq0Lfvsz*B;DL*&{4$(#tkeAu= zqtZL1=kuU<{LwGOG!;pQ%4&aokfgk_A=z_7Yt_u*D09Vh3?-BB?1=Gvn9;wG?deE0 zN6&_l9!e#crX%wE?jmXEN7A4Bz@|{%d_q=_Jw^Z>6aXzoOBu+bq5u}E^Rx1l8RalY|?tTG+X{5K@;hGE?qRWNlImMnO~$_Nz` zgvBW;JoUf8tsjrZh3=cY_d)nh)q81Z14s97`T%+=t9Wu^xcR+~IThQiER9)Wi1a=U zv?NjD??4xmwFx40iVPK6Np2POIH-6P+mXyi`RYw|HqhaB_SiM|Kq*?F`55mOxMFk|F<#q z`WOBEPZ`kv!<2Tw1e(nJbM>?TZ+CC1sAvB#rSeIu^o*CZ1||Z|ca=LA9cKkhGazC**^tYpDZxZNmSueb5avrGGC?ngN2 zQh8KYv#OFfghh-pC6k-C!UOQvO8ahjor9UR%4!(#_Y1y35g|8F#O$Fj(#$z5V)!7e zxa8qzDna|6LkPz3?kb<+ne0_JlS=|_rWY8YzDL#TYyl&~qtcV~Rmi8aaaQ@%}p z{&uf)@xO$#u2#CB9{!Q1|8(X5-O2x9Qt0~s<+1*AkMrM>DkDpCMm1Gi>gD{ny}GxtIU%!3)R${{JCs|7q9A(&hh9` z`{~aYV{PyEeyji67o)!vaR{M)@6R^j_wkFrR`JhQ`0m$}hW}@r!8elreyCvgfSoc z&%534+MjpE+TG9BaQ~kV{~z|9$KLP9!=EpAs_-AqFuNblg`eOozlU(auanW;Za?GO zM#1IQ_rXifAIsjuh}W-DgKs7nzq4!qm)W1LVSWGC;X1NYUcf%LGxwm0ZUr?<_O+=n&pw%;0|b;skS;HUA|X*$7|wxsV< z=B`uaN{?AwT?0EG#iMhzeX*v_sZJ#J@gv8E^;*QNWw)ZWN26JsUF~^SZ};(IW_}mB zkN7o*$T7RKm-V1sE4C%SfQ}C=YB1_W*3$*v6TO>@ofqx1J=A#EVpy3rD-(ue&;AWy z+p@T*_t~To-u?6r1D1!f*OAESXtATaYTqr(c%_lFq&4IM&?Rm?IriLipULs#-MT3$ zW8c_oHoBJpx;O!IABt zGsfXkxIXFKYCkw><=Obg9~_euQ_H`FV~uaG$MMFzVs88Q(8GJ`tidvFh%I(|1Lx|Q zU>AbIyH&p4l`Y)0n7w#Yq~G)-Ia+HW$u&FXohd=FAZD`(+*E<^tJ*ju)7Pq{rYXgs zP1jZ(eCqQ%mG)-#d0M?Do&DL89--5)v1G%Tv_!g9psD7xYJkQHi{`ORuR+U9upwpB zgBHDUE^NYVo9cPCtV7V5%;~7AaTVbB+-j1PQrkGwpk;{9^L!cAM%OFg{24yFVac&v z^+REv*Ikw}uYUCDL|s9D<+ zY!v)&WYjJT)hh;6Sq>VGNA>Lx1B-ZL4gxHfq$$(|>yT$NR(p&oELo7tfY_CdEv)pw zl`G4q>jzsX&av)Ri`mvloi-yFv!rQj@wfE_Dp8vHxnCe`sgP^{<4p7sLeC!q?ha|6Ag$ zrUfz6Y{ga<-LRFA$g+C2_z1!#hqd8%k=2x1*nttipS=py)7Y^I=#YzEV%1M2mYECb zrw3$)G$=H>Dy=tjD1!c;H4&1~SRZJ3f%g`4PX_$n?ZDz+A%;|H$;U?LPj>Y8X=K3D zRP^{dl4pHgDOz1$wzMbIw4(r}2&LkHv94-f2piW=V5ZFsDS;kV#O-MoagbF3Ug&eh zMa{RkJ zp3|ts3|q7L*neYYAW*EMnPy@KO)*eqUf;Ynw#FmF+Pk)>nYZ#epq1WqoQ_7I>43j! zVZ!aKz7hc*oP(elu)QJ3{+FCB5&-pNhHp^Ry7y3x{w&QXZzTH*6|~qM4U&VwSf~sW z+7)*da8Tedqs6Gbo7qG~x`AS)_Yo;APA5o9F{YZt?P;;H9#n_H=Hl8)?^8xA(>Hm= ztknR5f_sT5vzy8T#)jc2Il7Um=GaQF0psA!#e;E)l{jdopJ&q8zQ!|&4H{nUN0G{V z+e$F14|Six70Q11I>5q&1nq>yKhM+L6H9HcJogA=Bc-wk_l|A;8bXFcfo9bQ*9r{? zLjI68aji5zwB)_g30zsM6JR}EkMP5Pf(64p$@b;o8SQCs1YdWTgn_j}@ZdFx>~3P4 zCP|}rHUi#W8BzoO9QA)!>trN?Qy68nomfLzQ!3H_ZDizV)K-_TEr~$&98Wxt1LX@` zB4Si;P6vjHJ(o~rHciH@yX!`-MoIJUKD|~Hka?A4LP+{bh+kGyzX|z zrU^-rA&a?IB6k~PYGbAUPuQa}BdUEH{`#N%Ym0E_bZTF$FJoS?&88)(?V?1nq)Y9# z{pP0_rx^q8M>^PaY*vt^zM{;t^uAr8ZR3D`XZ}__qP$BGG~d;a1p!*8rWOI#H*~(8 z2yZ%2Nrye?a$eeKgjVWRCGU|_fK{6Q_{cI_$Mytx(1Ht$j#LXYc#;aL1n?4)MGiPT z%OTKTZk5^aWSP1m?Z)>Q90MyPa}L`nuzoSAYUxj~D$Qg$KD5UU_~1x*-BxSwA*S^_ zip$&xIT{LF4DT*zW*;*))7hgyIbjtRrZGjLYv;VW4MWLC+Nc%U`5u9Rl7<3$>@tRg z3UXXR0AWUyWw({-B`E6fnX0#I;DMPOyD-v=NDmopoO1*NQjv-@zz$VH2 z((`Vz+)iVU?c?ypW(ZDQOd@@AY)$BmonEL@5HLibZQ}frgp|6A>o7rTl`BWGg~AX) z`bkK3(8}t+?Z)LA6h@xDCa6p$m?C{-H+XeO#O2Ir94hlUx>SmZ*Sj2iymYKkEnvef zY->dqUZ`--tWoTc#(IV{Pa6HHcD$k2rgNgdZ6AqOV%)O?v|t2k&fRoI z!5_wX?x|GX#J`kdSsq1FFDuv31{kyqlcP17P1EKu%j{UHH!g4#XJLzeHL$pucJUio z*obdZKIqsYWMsgbV*hes2B=Qqv?5%i=Gwh%FsQ$pZRXjMYi#IRv{w@)1*1R92n#~g zv|%vAyTwLzw`)z3JT~!JesN$GCAY}@%TL zv>0B!v+&jd@fW)36Jn>vtS>JS2?g@DZA~+#mqY`=Xzv2(MUKPH zBjOY?77}z=Td?RX%hu{GqbM(n!y2$T+i-|F6)VU^{ zD{W?r7?Mc56HT!$;~85BJU;S#0;dZ{`#FU?3)3{Hu*Q4Z+1VjT1cg^)t>`3Dy@d`& z$!^kG3O6Ofr?L~`&Iq|$_&j^ok<|T!NvHH?sa9(O0E+j+Lh3$tbtiom&F{-gxrRoQCa#ED zI1)_to3NAEiG&2G=(eLfT1_J&i1lAf6%Uncam)O4b*bn#iT>8 zNTmykvP72{GP^?az`F2h^8?e!_v0{4hO8jEaCjZeRlvbcd%-NCbmWwG*J-gKA^aSy37Qm8W$miitN6J_@+>jN%G(BeBuA8ANN}lffG_(m9znLP}o4uHvnhZpC_j8!2 zg+7Y34FFynvGSAkA~nK#A-+j~cJm|^4m3s7>Sp@r?hFCeJ;hKpRt_xZ3}@^BpcZ$ZZKXTh`?b9^!dp4Ou8QDS}JgHWea-eRi1ntKu2x zF5wDJ595wZ4LP37aob~P&V*}_mbMSW^~Wjv-NxFVfYt`5@cNg(JRAm_ zMl5{jG2iK0RXyiW4&)EsRh<>hf_r`znhs!;TuS@&4R+0bh(V1eDP)%>weJ3rVfubMq2I4u;I$~w@vRW0-Ac7dGvNI+BR-|(fvmU*KX3ZMtMBX z8lCv^YZ=cV_Ow1&*a!<9`OznFRA2RQaJZ==hODsNfeEzcOD%_<*tlUSwpg6W`OgD& z(Q3E1C2Dgi#+_K1Y4v|umM$%xY}c+E6*>4Vg1wlUL=Bx)AE;5L5zNd@vVJp72WbhM zRfTlp1e-tGg!Z-4<9l0kZU^xi1Yi9A5;U@IV8M&6*EC(rSR31qyTp|M(G!;htV*Fz z%>fYuDqvcWFV|rtgKU?U&CG_Pv9ckI*~R(R;5f6Od2NoxTGUnH(!XF|%#&bLI=cxb zD1Yo0h?d}2tIs{GTHfL|Z4wF-G_%opYWbVjT*CO8%caAa-)ED1;iDAmEsa(B_3dJ8 z0t1sQGa*YJ185+^i>Ea;5jcWjmL`~NM%?XMhcURa;sly&!YL=joQG>b>CsUqA4$uU zN@A2^Y|MbvxaMv0g{DLNOXSb^OWX!PfxF2K-PxX-@_h||6^k^Ew#QmmJALZ)N>p| zA#fpC#crEQVTJPfJKGx{PV2R{db3_-pa(C)`f>V^@Dj>HZtg=9N%7~b=HMg{T=Ye8 zn3Lky6HqnbLT_sIWF>liO`a;z4g@1a2!AqEl{2e~@k!L$KE{Aa98{LrH2`>q)21h~ zMyw5yiY6~|u&d!2vXKk9L5NXOiX~~x0g1B-?jFa+xLN6-z%Tgc_@?^xbN}hI_wzjN z=fVA7;Cst)73%u6f6G6HGkBl2`~5!K`}36h{b)VZ6eRcENjTKvAlr|5O>&uJMSsOq zX7gF4FpK&1^y2?IdFyw;-ddUw(|0_NWXa;ZxWeWBMdN&TDllCXbpD$I^1O8ux0xqv zo+J9)T!3~k&{$^t1WTPF)CF1-L$T&y)>k{|9d;7l%)IFdG0yn_r1|!zT_JeGPzGh! z+S*()y?9LmAcBXp{qMzK#Ay?{6K&38U}OW<3XA9A+>c`D_fG8Rt>Ex;6!gTMXT_`b zd-GQKimMO^z=L=CS%Ki(J2G&Ms=wW42Zwrk*>e%TynUN4akAX}M}|UHG^3biTFDF3 z^EMWb@4RK5ALLe`LHZ%MTZ3Krc9i5=FD?ZQ!@m8wleIRY)Tzp9x6iiK;Cbic@mB<& zs9@0xQfvtRy_bX}31^5s&ET{FHfKR19H(dC;1mZV*1H3i7>(kJ!QEo9E!nPF9-g~R za<(v0)lOz}*1E*FVR`k*w2R`VAMr6olk27;GPzJ4E^X7C=+4~^OeaoG{Y^dS5L{k3 zS{r^3%(aT-j87X@LlCzSf{suN*d)Mg|>CL9LCK+uc@>y~O3jRC*r{#AqA|teq z3vqVTPA((nfgWH)^c~Dn*j&L{kQ?zz8gc@n`t6|>LBiNw_F$Tg7Z%2&#@(&C<#uiC zMRg$q_0nxsB&b9z7x~TDPLUP{4{cs>0u=fNqhnT@kkb4m$v}M1&#-WT-!oVqg|nXj$xDNhg4&g1Srpp37z^h^JFw*s?m^0nNiZ3X zFK_xh&3v_FI&TwJemrF75Dp0iln*%li7M^)G@Eo#4-pINy6;|4&JBdYUYUu7mJEf> z!_+}_2I*t2i(XITAT|^|@IGs8>%GasoQJ~-3>Mx(Fwflvk_;9hd4p>1Ys!ZDGz_`+ z1ml?+nEMSaE@cD+jsykFHp1il*EYpZc4!t$=V@cx+X!SQKQ>e_gYWxUU%*)yt1in z;@xwBBGSU&#=2DKAOGU7L_)uy^mn1I@5@2;-%AXd@;%^B-_WE42Ltkq_KJ z87fe5Lmj@sO^*#Sv4V#|m5@p=^HU&f&AJ-J+<65kkgH5Ee#6YZ`cU#=LkUT21l(9b zCNEXdz*DN0Nfr1QFpLoqIGbbx_~DUkL;$_(EfG_A}EpQh&G@Xfd4=d z?=3f>+2Z2&$6uyj=te><BVkY)Y8Ar^f7Twx|trh+#cs{ z+KEd=GSRa!*CKxGD5?Rxk=mvsWHtj_=+5BM5%Q_bp4LSpr4R#a8*!kZYC3kc+=FJr z5SU||b*iURPE4}DIlT}4wqCMF!TStsD13;V;9YBc^A=wY2X?p6So-UxL#)RSvur=r zvo?l`U80r051a$*!bG&-O_ZJHWC&oy9-Cs1o4IzM5yK=MF*MurQ3V?-dN6<_}k z>%0#mYnY)%V8A?-l0@`K&4#>T2ZSN+kd7=GAdiU200i_UVhZUSF+>zVL=i&)+yj&b z^fZ{OfM$@WJzh!gF~1T78R@~A_hj}Cxa}*X6~0Cl(A|mQ8u4@wmXj_1H51zJHvcK* z!U1R3tA&ep0NbToT)oPoiTjMj8T*)Os#+jf2T**w5tB<{(|VLlQ&p?#;1)-J$hxEM z!f|>zD6XC5en zvVdpGvnXxFyocwDcPGi2vB!E36T?j=f^}hCS`N`lbfG#tA9$-+@k6cEVlWEi*rC%X9N9Sdgxpuko7Rf^0x<(VAL9AXlAY`p){~B} zj$8wYD-lp5$XpIwP%Nc7#T?sB_Fai35bIC1>G{nBLB<6pj1vNaBq3_2m6677JJaPd zTN4e8AErU8(p#(t-CaKsV(1JHMA$qll$6^5w6U=kB3ya_za>R~v&1NepTcy-K4(99 zOdAIpa|@$$7x1CI2hpF{kSU_NQ8w6~JQ2&1Kk>N8avz%yh{7>cq+P`^INDkZfHulh zuHlj1LRo_VcFIe)jXN=0qX{!tQl&7C4;H>qF=mcjz9v95&$4nzV>@azmo>VSe!q^I@!?)L=SkwSUa4}@Y-Szz{JK)O;cimpM1S2Ke{eJu^$YvUuX zC4Oz=FSyf2qqUi|yP(ViwOF^WYkoLOL5?ca9Im4ZBGx=q-OToSQq75+z#&O)#cJVM zBFjQ34C}nv&Rv+mDG%Wlw{s>O@z&*S6^S|9}Z(hj6X)nmZ z{$@S@dVT6}Sj0mYQ8TojFS?W^ux46kI)fKMeisWtH%MBjl^v&aA`A++>4Hv21QQM2 ziFV4*z+Fy>_fGc?@skzsBWbJ``oTb9>BLkcH9n? za*Zha{0k4X3zYDu?4eIFd`^fC0-gqLBWvh^kIHI5H=aqK>y}w8`U$BmSQ3EiCD$?6 zS&GzCBAwE*!%bnrp+=Q!3Z@YpLO8Goro-u7nO! z#MwcU)I6zAL{sfiX&m*0P~LcuEWa1d8041ii(Gd&`&)sch`{$fyXSUJxMAwaR6ayL z!(_rej6bPf?Uc){7yG$wnTznV(*KI0u;+{hEPAmJ9krG3#b#4VNfbzN9}*elA~Rb2 z_zzli8*fzjXYF!%3)wx#{DH#M3zd9$`V`adXWm~{^iF>28~9Fi5^`I_3Pl3#;7>Y+ z=1mpakujE7l42(5Y~+LdEHP5>ln&Y4)$@AoD&?dxfe_8u`KHftUG^cVA6cZ?GA`95 z!wCUiGhSp^s~MJOAVz$eCtHE}(#%j1ZEW(77LNXqh9@exB-NbN$ktxyYuJSWQm|bH zOl5gN<~lu}m?h}DV+m9AR)I?3609VmLYXo`6@>`#^Hg%}`ky;vt&%v5T0Q4@#Z5rO zVFU7CSvTgFSZ3bqU4148MPb--xg^Ik%;~$660lw-`NrsF_Ng}K?5^U8xveqmByw@` zt~ae4Y3HW7sE5v8rgG(B=i)w&3y-~WofnHUrf1p=iqz9xep|kL_q_5k1>ezsIq|d8 z_rps%dUx&KW)^|8Q_^g7W*V*_^!_R*P~`0@U!*!$w--e0J_=yEqr|!}8^kyFU3)wH zt7-zIf_~viU}t*|QT`C2*cI^*uGXUTLPv`jfaNFuG!_jbe@PRHw9BN+LqnW-Z6pA` ziTf4V&itv&R#>`9WnZbAA|1eMtus4FepBedVMq7nWt^{qFrlPQ63{b=t5uj>+@V(^ zEn>2s|7sJa+n57W5Te>#P2A3ga+SpRl!yc4OG3#R8C+$P{P8!c%6y{)RD;@9)lA?F zx4{nkc*o?(O)m3R3gC`kigqlKGl3hR;>{hfePx!T5v7~GafOWJ ztuh1Ai{DFfsD4*cuOJuk$G*)*3v2Q;Dm3}FT}5w=#9e_l#)3KtweD_HdmIA0EKgFJ%QFxyQYQc6w?He7WGGd-o{sz)xOk+?!9F z)lw!%f1e?cCQF=FMrMm+x}Nd{_OaTCqgil(rV}z1N?SoYQ!7x%iW&rSGWgYqSR;y3 z`D*KbkpfB#kwi#fcYsBgmN7<32bH*wR|~H-t`9WI1xBIY*wxAt6ej?V~^Z_5-tFM`ZlV&o**qrht9KU|uYVaNnu?FwoJ9TiR#4 z*`E@3-_uDx0rN(GKM#EJ3;})ZVD+?}#BVzUDbisEudxG5=CnW;@*zkt;s8JD zNF|&!H-!=LL|SHU8y{lKRDXQ;Qo3#CY9tdS*tS3bx0HL(9KgJ4v|gc0fU=|~k+zS0 zMbjXy_D7zRm^>iEBE&)r9_Z`im9&)=1qXT8F@Rh7@#P*BNZMpiMZa)}nl{`ev8O_| zeXOaOEY~)1f{=1lvZK;2G!&%y#Ad_24ux{cL}SK2VF}Cwcu``!g~RI%5U@jCT+R0^ zvptKt*nqmEz8=e2^h}T!^Md+MVO3OVqA!?b(NDi&li>_ya}!WaJz2$~^wJi_%b1>; zjS9;{g<3f3*BOODAcWmVMHvozLZFy3T09FXAhII#=ZZx5kka#;)2SLo00( z20#J{{u)l0X)cQI-3vT>kDCZq;EcK6`}mxq4wZ=sZgx z7wU#7Mz8YVz{*Vj@Bf#Z$Z71u@PQ?l!}{Ald1KROa~Vo>#ND$+>nMR_Z}MRzMZ#Flq_sa}?||uV0ff7{5vlSXrX%ob z+lKGR)dhAp=`qZjzX0t_1Jlh;adQjPmUJ=BR_F;*Ah63wRi0B(aBu5$0s<`B13#yZ z7Pj_f%}Ur|bwErF`@4S=CgoS14^b}qIr|zHSAxf3rb+h>g_b>JK;_6GOY|(F8!nSR zx&FO=+jzdA-{w+rPE8-vmQy==*rO++PZ2LM?GO|Y-}WsO>tj_k*1)WdP=f%-ulJcy z`2(Z?aUh(|EpK(bg3^=Unog>?wfTXZT&wc&@^ml~ec?{M-*4aGh+$3u-DA4k)n+?J zB8peoqySTB=`4kKR2n`*S#S&&)h*DVA3ywE2T`s3X*pn!&=0acyd81 z-8XTQKK&y!+nK_hXoS2QMIeRO}IK=>Ar;>RSa!&HGFt+injj4NqB~4ilagR$QkI+J3O?TFpoJ1 zP4rM;DKcyuo1~ToM)_H;)u4i1>P9M>oE4$L&>{oA2e43=vD>G0M<0&^W%5hOR3y2s zUAvZx6Liv{T+iBnhuM08qr&3%nmMNGzk+!&VYuTylmg5yv9=UfvGUiTt%;p*^KG8s z4fll#Av%Dt^WR757qsA}N?}DIlIp64d3~J)hj)3r3^94=^DqgQpn>RKiJh};q-u`=sXNsg$E_doIiL%5aEUB)E z>ktuZQtmGJ8e{MjkXUI%B?-<*O)1^KnSPtnVb}M}b9+^Py`cv~67ng9j+ICv4VZJG zjvgPm#}kiS#P)mt1kD@g5Kb;+#rGtaF!_>OR~C_gY&6^tz3vAZ2nEcaGXs!smoS;n zn?`TYKDU;Tf4_r}nB4LcJ00!y!4BS$-~wIBn2u0e73q7_e!q!fEbvbgfr3GE2I6kr zegR`{Mczos;UjS1_GOA0hEWB2VZktfDaR_b5qEww%>1Tll;?KUV1=fzGOXcUOzZ?Ys> zpQ((ZQBwl_eTa$@Yl?BPoO)Op8H_~SHCugAIM4j-0gv?Q-6LB!V^i`CNDw|iVawiP zPhnPJ8g}LdPPG^f>=0{eR|5y!GfRz*LX5$AM1vwRh}SWdWmHnQ&ZE1MAGQ914G1ub zRdua0P{KAscT{DO_mZPQgQP%9&!`{*wVx=;R)Pvfq@KtDV%*`IFJimH_-<5%bis@) zRSpZ#OZW|MnGY5#^oK6qVxNb1zGzHwST663D2Vmd&LV27@99XkCgOSqw&(E+glBk9 z!~Aqm4(N|NNJOVcUS6tuo1|+STg~rbYHQ z+|6wnDV2lW9#W|}v>?}xLWh+Q%F#D?(HCIu{LTm5><7LAjH#0P8an8tJJ-C|W@o3+ zPkMcVdb=M6yedIVk#@GFCTwqG+YHjC_pw=O>;yilcOOoTyoLRT2t3@qV*A6hz@v9R z7V&QtiIlXJ<;`f|<`eL#FXo&E*6sl(d2eJEmAV}{O!~@FMSqP61bm^0*6&a`ydAOL z>&3wS(6$p8LkB!ql0PG-k+{#aMCaJLFMsV2UOgAUIX?Y{QE1!O#vR=U6o^9mxpDNu z4%OS+)cJpTm%)KiAnpXyN$-e$;ZSF0kC_^!Yk)U<9X*i?abn8P;DULc3IU&nF8NGp z3fVNW$f9b_Aq9el{1boK@h|^=3lJ0qBxj2cP7%73xb5Dq?cwi9@W7LJG!n7YroGW) z?lC9uKRyyaK^k==f{Z#&$l(C@7f8wP+%}iT=?Tr&AfSmXq2#)Cf4=!is>-~<792+g zP5_(@jpjM5QTQ($gSpXGFI;5x=C*h_fq?ep%iH;C<+9}SV<{=SxCkqF%u^1 zqNitc3+_nL+5k8E!n2RY+@i(dp*TPY+bNt6=gZs*RK7=*#cHmgnIW2&*`yB$`z0)C zHYYaB*0-7VE}uNN3oQ)QpS8k~2K|nNfS#}j#F+yVw!->bNaI=rKC!djIP@~m-eSOD z8CH*?DoW=&LtGZ7b-dO!#VyX_=BvHS=z6ZN-{yp!x!qaodzSmFQK1)WMPe;= zeL|b?<`;ZIp(i+044lxlYjp^KO!lLUFX9e~Vf}17Vb#Sl$o>_;KAv-r#W$ZM7r!aC zOb(M0W%aLgQb-<4kl1Z!;iycic9^V%BIY1eTW|DV+^L_w#Iww_@cIVtAL_xL(TCI zRH^UpfNJX^)Kc^O*;l`>hd}Mr4^gNeF&)$-x(9GQgh`PU{7#ubp!ULuT|%Uz?4?S* zIM|)CZuAe_poO{7=XA>NaOzR}tsfJ#3)M+X0)@&=G z%;pRhfKkNV`88+k8&58a$E&_^A-|9y#6k6lb74l{b-w-j zYmBkU<=ISl7UU%Ky{QbMyn;dkEOn4{KZVlXMYzQ6`mr%Mth6 zCG|Y7@#MN3MndpG?-lj%4Lz+=Fjl*SJ`G-UY+uq=oC*3^@L4>$1nOGLUgR?W?NM}+ z6!&=#%nN6{gUF{W#(`H5XAH2uwZanla+r1wC>#i1o$y!*tlEV(HcUrwslUr1SY4}y zML^8sTm1ua*A&3b5b>goNz(J0hCG;trxk$LsIN*w)|$WGT;e zAXPZi7=lDG7-fgyeQF^~=ZUlrddO9zQ%>p6dB4<$Bxcd>1}~B9%e_A%?Lw9p&vXH6Go-l$ z(Y=5N8jDI{@lmi2$`Lnr2{l}2MhQ`VOehj*k$TaajHH~o#Ki)SIIv4{EX=IMWj{rof-&8ym@q}&r({%+B#yIgfFy7^3Ap1!7G{|5 z=c9)RDxDZdyy16pd6G^tTQ2JAC`k!euYvtlc@|*)MR{gGN4o<8_sL3q{E(muLSIc) z9brUEO#lQ3oDC5;8G`fZCr9Afds=A1Eml_%-eBG4N<0{u(0{0J$D9^|4pcBPd0ud2 z8iV#Om!D6<9A2E$)?d{j)6CbP=WzrQSzEMD?IQ%E{ce7oL@c~M!NKRY&#G3!(hF8L zDUV5{RFFfWm@;MQPQmTay`e@kb}$x|3H+y)sHFf3EW&Sbny};TL8e4b!;0*+JiX`0 z5h?kt%6egXKVe*i@eOtl&X{tDdW^LW&a-!0*0T?^Ga?Z&$7dK16sZc4x>{L3DGm0? zuV#j!>GLr~w%njIO&lhL|0Zc1P%pR>4iOMt3w1g9m?+Rj0+fcB!&1_K6?2yt@0wkj z&&I8W+sZX}wqVLv^gKp8)I}5sGy%Jyva(pzQqYgssj!{&@daN3Ncg5Dnq=AB7 z!6#Ojpg}-v$zFni8ppjsXusHnTA;QFdzV05ocx|A|3spnhRl@T&deG9w=;GErI3+= z?I3#e1hPSBw_l1aTSG*WA*eC{dGf7QNpFf)4kc%fIy0QwwrN3d*17)qQl<>bUF4gj z`wh4G;-;e}qIh&u+YB%^N<$5-E?ShXaNRHtnxV1@RwkVRk3WP*1aa|o-}9U7(8$G5 z>Ih)2EXVw2^wR9GC1XC9VL`!8i+=3`Hev=`&Vs0#7@W9R_r~E@{^dDsyNFgQA#}Fl zCkOEAB@?(lXd@&2b($L4Ea8hHss6X)Q~@1ku90Rily-LF3wmb1FW|;8#&IX5qu9_0 zc{$K-Njmp09=VazD-l;C@#Snsi*1w@QUbVVtRC<$%=X>#G~!y zvha4wNc(mJbTy2JpK30_{Nt+Qzl0TP&6Sjk&(O%)_fH^nLF6G4c})`P`(}tB8l(~j zp(paZmHxu+nK;Gj@4k3Ww{1diuFmtx8Ma`!$X#$Tunxi^#5&3pd-on67VC@cMJYYv zX7GVx-qgTx%?9=v$7O~GUrQZ>_JBEsmcCqX*;^P#|LV_l^`l0-JU`5V8jEaU0p34J z@Y@Y>8SR-bHlXy<<4w3-Q*00GDjBF?R3I6eV@a`9o)^m)!BTwF&&heCkgT8cY$nOhqE}O#Ksc9TwFLuyy`cs;E?m~;5Vaa9}^727V`0s}~ z=ro8+RkF^9m>s5^oMBA$0_56OXAZqaC^g|x)OV{cz0&l~5@Z5-{Zz}nb20?${UU5p z@e10`UnMKe0D)}t^3hUjOJb&!`mrBY#~ zU*O8jhXLc z8NfSyAek4WKz0(XSO;yLek5Fkx!?gqEh3Sy&{XwL74}`mIAaR8{a*l9K&iiR=E!|M zQ|IVVfT8SnvG@DRdi%g_5N1a@+=s3rpDH-ompN^S7msV+9BQ5EbVcyf#9+;?EW)md z4txW6u$fQ<2F1YRH4aN{+%j(DsWkAtHiPu=|to#G7T=;}2b zg=gK*Yc8Kdy{V@M>JFDoxA!A|ZYLWtpNB&c{p>b+k4S^QGw+T!SD8(#CLglW0C$?X zJbRIcsO?OBUa83CnlZ@EnO$phTELBsK$6l^->o?tiN~28Tb&NQFPFLkP!Y0>d&d4?W25{nwjZbHOt zDt(g#<~Se;`NBmFgeAmu&FbYCMK|AMScWN$1?dAs3-KH{r?RHI+c%o5{(@;nl?j28 z>Ml{XkI+zbYo>K(vdo4C!;w?XC}|LHp^_+8*S?2a;?dzk(|kp@Ko6*ceXX zfa~DC!tuMLU=X$ckf`9X=s47ZqJz$uNptp*wkkRh#Qkw_5*?+WY0}Ajk#r3Jdf_@2 z&PEjp5V)wL)x?V+`hFfa`6YYy_GzwK9j)0Eh^&m<^Bhz*Co$BH)3bOzHS&bjN=_2; zhLF^Bj-~U8kBn9l#;S^R4(D@IZh~|UY0tbr2=x$kAOPensNyTxYlAlGXxs@P63K@W<)|(?H>7z0393Yq zNNeuY#pNtF^Wu`AY5dY@utnPm=~;7ms(I&Yydx<6nmcyZQBVPbLqjn{+=m ztva5^u5gCzNgRsO{jiHH?V!tRKx3^3b;ocDlrH4ioxNbAazW*TLJ-}SoJ2)?@DP&& zLc7p3hLU-(V~-VTnR2GkXK@{?2fx6l5YhGE6j)pU@yaPsmu&{8Il+5izjV5nj@Sia;hA@rt+ljGsI>1V(c5b_M>v@C6`qYbf2F z*KhTSS`neZK@Jc+i@gvbM3Mnf3rr?%FOq@I)n3EO|6Vi!V`YF>$5d*AKmva94q|E@ zx-Wet3HU-qaI4SJ5yKB2z+hlq*_R5*e_;^#!cuUpuK*@<;IAYBA5Kj`0WL~_dA)Wa z9`MBP)-S{Z*Xv`E5a1@B>ZAKY`3WY0-aS1Z3+*S!32yZnGp%dzoM@ocMM9vwuqW97 zJa{M^A04*o|p)$)Wdy|rv?+gQ9X$-FQ;kgJ3=J1W}C%6Z) z5`uv?5v9R{;^0>Q^B^)1A3#WQYkNCp?YNKkI|V_nlC_O_gHLt?&dQUc;G{*#=NUWBRPcH77mSlS z<%3|e3x9#9n?LCXdUgz2`e{A`MCzi*lLxWxxBB>QDi6n*HQ#iY0{?(+?*vG2|JPYH zAJ}ES>DYrvc8e;w-El(AH(*`-VO80%+=Q`1S4tHYUS6@tslJ}V+MB~=YNqj8i_@Bt zH^G0c*Yg8(+75sD^N_biARP1k{R`Omji?TtSg1s~^GzzS8`h^^x_9GKncR{Tlk?t- z%Je?ElD)X;X&`OSQMtibSQr`ROZ^1%#Q7=@>7GNkt)MK*2@hfyfu{m0vLb@)k= zX~^79o2`6#l)3+v#p3!d!uccypgNVGq=3-r2z{kPJqR4GwYgs1oe%{}`a)SzW$uH0 z9$x=11QNIU6e2eYi*iI+=U2uJlB|$Zy1eN`lS|!CopK<8V8L0w&`T5r=bb#kvwz_`jWXBovJX8+%B)5;ul#j=LEiX z^v2BA#`17-2$>%|p=rK;iW=nXx{bpgq5|MbAXT0^PUY2cSdVeMz5et4F^_yHMt9s~ zWu(%P5=e>rW!~K8#Rg6dx~1Zj9}IgzQ*a#G0AMI7F+lSZ`D&4Bk{_%LZ}A zXF6xZ4nUM3I9Z3tH{`8XJP|4jP#LgPdFoh_h7U`X-^Rd57YGn%tCGmDB|rPA%J0VH z=OTWB2iu7bO~H;{bs#3D9HufvX!5u>mfdo^s3q19pEYC z5X*oyz_vs?>1dH{*6DYD{RFAYwa++9&Zf)dSDN#DRQZu1RJzlMqMVDS1B|ppB88W< zo~Y}yi)DpfS_H4bbb;_fS;vocnS#Z873(mnOgUb>Pzv@?&<^EmI zZ$b#U9|=Sx&FkOTW?E8~Klx2G%6h*O@wN5*_U7K_#cMMCc6L`+Z`0DPdOR&-kMQ$# zL-$8s&zd)|EwguDR(W_i;`8CDV*T(Y>c8mc=85cvWqb~qK6QU$c{vp1=Ev}r*KK0n zDSA9?b!FQ5LZ}mjN$P&qH11cqALX+?CBcJn=Si!RgpXP57J!z7q6c>730>MMv`T$ez(=zf2E^2c{?p5NWPcFwxHuCj-Sia~3Rvm=X9%uMKaG z;LB7)_I3^L%ss~&AY-ED3i$-aA_|$6{p`WHaKZ_ zWLcUj55Jx6WDIB1{l%jurTg`)GKaFA)OkFS@luZMejQ5aSwH*dp5?Z#7nLb5FJ%~7 zELWB1YCp^6+IUQW?N*L{xqC4`%In#yJnq-iqdvm6HWqXdz`0iW01XXnZ0o- zQz8t38CWjcy<8vH$D`~^j=3o#xrDfs+r6Cq_UXlS*~`VNuaWnsd(m$$(dR+Dmq+xw z_3f`~L6hQAPV;s%C+G31?4so;u1D)L`NjDZFkxlTS*?$a8I5tV$>s_y(~{ z7O!z=OA-Nf3OZN;@$S@TD8tv!@~yt78eG{bzYtSa`HpctMzODOvCZz~YyHpnFU*x+NGh|k zeaO$`BtWtwlghXHpYLB-EWdDgR%IR%j?tCHrt&!QVbA*Zz`(EsxG%+UIS%ei+KNw- z%P)ME$g3^V|2yeMs>)SJ*?WCpYZSjo>*V;*77u1RcreAnNy5mucreA!m>J3e52n~I z%fW-0WQg7gFCW~NmB&mXq)djWL?8{r)9FE$N$EiwZLSxTwg@rXNr;(5!TEtiuSJMS z(i75Ns$0o%nc`x5~$b65ej3UZ>Fk*fozf^=`AUcPQCF?vIP+O)i zjG8Wb%Y`2E!Gx&L6Dl@c3K*vem7$uX5WM{^pd=<>;1!rC?0@(?{kI)z+ zkBKot&IFh%;TmO62v+)G*X10TCV(=Lgjtp~ed&05Ce)QjIc5PQL_D13 zsskwipbyB?FJ6XI8LsnG9fVp{ZYoY@O(y5|@x)bojq;AhI+T*F13Cb$18Rj`B{HGn zJ2t6KR3w-lmy2%C{`BG3gFh~MV|0IGRE8&F^6^C@mxY)>4gqO!6On^R3E=HXS#&r7 zwH#HYB$1zbYiiT zvEuw<+$FnSM&xSL%Zi*5%riqbl;Cs#;{JgmRQ++xZ_mQ6piIpwdo~N$antKD9rs7C zQA%Iizfs4VoC1O)fPVms8e`gM@)dd-NYCZ|Ii6nMs+(Yip5Opf@|1ai(Ff_8h}bXm zyPL%F6gY?Q2*8jq%+=j}K(unw=zQ+XH4T1P5(gxgL{lz_uT;U;kCR*%{}r%Eu$(}v z+C)27i3xLpQI9MEV>YVjEVFZ|o^-&f&qR&j2Cw_$04*XC=t)L=dq4fo*B5L&393a> z}6e7dtj!g^7=wmeVEn~Q@fU$?$gRPoqCn9=kvy63l4J%V(Z}=tk!Xyxpz6%8H}2|_K`*Q}!~-q?>38v7=0nMRR&?(xY#*`AK#SY?NOQt32cr zz?P44#$FFfub~t+n(%IhqFmj4o!L{|FaRz2`;_s)ve)PIX`Uj7`*l0EArzr;;PKdg zg7e$p_3&8o^VAykMs(x3dT(hf$8`}xibe*HI#)3M2av$|l?fsd(?AeWkeWll*=K5YZlzXcSSi1Tr(}`PyY2N>~*+2M;Edo9bCz zAQ?q_YN4MCx)zO(>de7%&LI(l*^U$$8_S#w!~HMS^ASA-7iH3@BBH{_4-M8B()$23 zt14%&FG@{J+Kp`3(XW#m1m)=E_PAe<=Uf@C^e!b}D2Q7;b(PH#=`~G3Hn-~Y^3>;4 z|9UmQiA?9V_ULoD4(}#c$cs$)RD%Kb$=9;aP2d5$X3y}+QhaG>F1dn7odm!sS0AZj zIB*K6QVt!!I7#SI@@yk$wh?@qFY69?PJT-h86|jl`R&ck<{QoaMldSBwI~}J`X?1A z9Qa=Kdg^P)bn22rL;9A)f~$8`ufsVj6hp}Q7?-ZEVy)ps!|SU+5_C49b%8p5)d9xA znRj{q7m88S?zXD-$FLBtD=j!wfmQHvdb_kk@VXX0A5EF!atV}N(!8h31d8n8^!?q< z&aQMQ3=GdTyPZU^QPU4@w$fo8BzdvsxIKm@iPx2=3HpD39Ti`l8isMAGV?et;r?md zAg;~X=pz-wzarK+Gf?wJ=?|D!5^3!i$m;VhJFqu;eF1-?Ytn#fYy<*lZ+>v}^YlfK z-ABv&87)wIwCLh_eHjA%_4V`#lF8})WVW|*@I^&ik|_A0!-gqfmWyC)r@Tfgi#Lvp z&(leQzML9y?Yz(P^$=44T&u%dL-A6*t}bOaVrNvjxS*xUTgB7j zH#e8U@*xz@y+pZHmvc*Ox(8NLd}`NdLQbH}J#!7&5ag)z>G!+XmZyeYPJsDvxrIgC zG{nkCoxaB^Hp4yK_jC?X69WU@&neL4z~Lw~ukY=PX>GzT2Ypi>+M~N~@ic9l=TSf< zh}+>?M_DRM^7P%|uM-4~DuGL7Qph!DnrcDP<93FJVA;WW%kEvW$s**e_h_nE3Mhf7 zg z5E!5uWd1Vpnxk}ZuHm8$Zc$eTB<$1Hy`C$wDfr8>XDU=dfJ4-gepRdlR&IWrN~XsR zi8S5iI|YpAP2W3be|(>(>99ZG%3~6NBq@9i#iQBOdMXc~uT}UB>_+~%)fWSUUPXkF zI&tNtqyz6>w6;VS1VRl~KNUR;;Wj~Ey2Rrc@??;V9!4;FBQG7MFesas#^!wZx1&{j zFyI#obX?c!E?6fG!MAW;gBQZ_T3or4SPMX~#JMQkeq9HHAXAW*yz?~=wFp*JzRGlf5}RIM51_e?i}KX`oEV`3s+$T!Ts_rK4aLB?tw?eW@VM^x zvt%}g31sIm!32}4x#G-8_c+1k`eu)i9?#apsCE}YRuFUGs1)I#$U&Pmqv%eG!<}71 zB0&e}S}{bf;KaMCj-Uf0`j(odMAay37%P(Kjpy+>f0(L6$o&(xQ8q*orcS%yCmg| zhssH}d~t(KEH}3UgT%6(T$!Q4;=b$dN_G{pEjXMHw~J=KX(RVzkb~>~(2@^X(xf;f zZBm&VWmuYI@P1kQXmi2WUD2h=4-~$%VC`{14A;R^v}iIEb=9DY`Z_M24sd+zMk-+` zwhCRtlP+VlIg`9nNFYoaJ@2v}5zpb!WHCBNSsL`T!zG<`CM~fNyxonjLIgB$=M?ZQL>F?k4!}m zbe&~gum1Yv<=Jk{VWw}?dAkfn`Nz`X^E@@nY1$Eoqj?mS6M#SlEQR91!RWFR;UI>( zvht-6n~Dnm&>C9De1J_0Uk|#xtZ-0h`WlZ8sdY+(Ll8(GH^mnMn7W5;T0MhAo_rZS z&E?B!Vz-g!#Jqm3+?66F3%;bXhd{#-23(z`z8pTZ(PLd2>gK{tt0OX0zHx!-a055X z!Kj9EkUhYoB8n>)9$KTSGdw62=V4k-53yEv)`<)EdN|#te5CBU4+FrWf`tGPv2geI zHD(V%uT{)c$PomDSIm^&z3415DH6m@(p~nBSY>!nS5?>t_7BP&>?Hdx%7!Czyhnf) z(hJ&`Zc}Z43=Tm>*K^f2E=(FKAs$PG{Sl^5wkmHSK z@Rm^^zHA-J{NlMxnNx47UB1OCwC4yWl#9xX5ts%-&Mu&oA%kZH-?FI^gCMDEQ6q*>YMa!79133pf7Q0r6OcWzx+t>% zW$uc%j@%!w_hfc@%tMwdP1`HDwzzc-MHry;5?=D=(Ug``z4%%}`xD&Wk6tSV;$Ngc>{dP{@rn4X!OH2&dM52)= z_IA2DZmr)RFDD#`?ob318SE0EeKI{WOVjq)UZ83l>8YMfRCHeWs-w|TSP;cR&`V*M z{(fX&bp0&SO^Jt7&4&sCg(;EDS)2=am?ktTH|oVQAi)+`2mx0vEd!gwO~cy>hu3eT zVth7cqfde7>S2CSEv8p{QoC}$CAz}O0a|?Nij@HcO1~x?aXi(p2M-)!n9$*jWZlkf zRG^1$(&&Jet~707)Y0^-L~`v(A~g z9}#(PF57>7{zhpkdJYfdB>ArJJO{|oTaW2jP5=$c(|2Yb=NW|(rGo0^?po3G&ZdOS z{@cMh!~Gw0hI|6bWL2U_2T1%bfp6W+6V)7#*i;K+CX1NwlFN3;p5PBGAdJ9pwV<4omr!62=}8suft9S?btR8jsDGO27RG!{?iZVDR zlFHemsxAqem!>|wyOCeKD|EVUaFSOKlHL}`{+J?;P&+$kqh48k1vbsOLl(G}I}TZ~ z5gmcllo5 z0`%Qgb@dyhSM<2MtCKM+>VIjvLAsg?I+fu(3#zQan&(sd+qk|_*uk?w9%MKg>|x5w z2i11_-Vv|eF|U0!k5*+UU~1(s$b7s~D*4$W8IVVV zb*Sh0L0Uk^2PY35cz^h*ct>BQaJDLi4@mFrY;)jor&BA2De`k(Mqpk>AcgH5S3Ol@ ze!S7A#L=KNWmbdNlsZ31Gw%4_)ji%Fx4t@Cg@i&)6mRn}pTgx^1HP3<5JJzL+(&5W zQDfvbGiZo{5i0r#%uQNx7rk!q*gvU8Bi0gOTr9=%-|}_&M_b=EbaBso*dvkz2N(|6E-INDMZ5&=xe9)LVV~jgD%VF8Pt9 zSv*gR$`9s?W01K5+w0MT`}!n)+}VgthxQKIXpxTFL05omwyY*oZ;;he9O4HXluFOD zgVq2J!n6rjBPP9bz0rVJp)H=OjF3J9w{SCwvzpGYR>fhB4TXVOn#iPS<~+Og-G2M1 z`vBf2*d*|t14anJOveG>bWkc>#Ltn5%2Yj;xkFs$$^Mu{+i8+z$5RrUNm@IBE6`Ku z0j{|zENBT0xK04B`BE4fWFj@Bd zsqwOS^dUpO!6~g}k>)+mtiQdSBHhElup5Y^6b2|LiG#)D<>=+2GS8j99zwsd7**6E zM$=`AsZ%yW z!R3b(o1wwMVQT=E!ipXaG(Em&e>BJ2caFwJtqooxW>{0J%evm=Xo1$2CPe`!JwO0B zw;k`}d8l*fekiNiQ!}wh;p>ds(gI0$&(p$qIGoB#7fk}@D`#RYNnuz9Gy`6ho}A!kHU=O{M>BO=>I=EQZP?vI|Mm?QXe zGK#YtZiKg&>;S3^Xgy-M6q;afVP2FV!%aO4Mq&9MiF*K?ou#S;2@#Bm242I;ap~0F z&+?#;wsUXhb-}aLI2@A{=Cuc>J*cu)mL|U z#KUZSeizceyJF*+0I|D*667$eOtZjoeSBJCyh1Li$umJ25GCs@U7sw=70i)IOya$~ z{8MK*Lf9ipOEg60_K0$2+&vS^jB;k;Le|ZxBsuS}?1@{3r!mpkoMhjx!URAfp-dD# z%p?|*a;C5ER%6z~H$EJ044n3*%xWnR$bDbrpJ%`BkAB}2%ALf?cXI0_Fk)c}Pce~R z+rD4lO*iDV*EgaSu)PDGrSLwFS-=8lR4a2>3nKE|`9#8T_;{mywh|pcbqel41R(MW zD#=Bzqq;v{&-T#MIEjUJ?HR7bDm$2S5`6*C0hKGFdI8CgT>qG(&=KG!8}7JdF;hpH zI)?;vqX~-vH!0%%$o##(+%@?icX;hoe#$zhgqq)E3=BPAn2``jGJ`o6$8%ZP3}- zv4R*3zOAQCylliyg59L=bWjjYaDvj-Xzcq@f{ z(K#?kU>jBCq>PDF34YOVW#3LKb8nd-k_fkjhxRoQP0>tebY>!immGbIjURfPKo3m& zLwRyC2Bs%Z_-C12BVJsT8`*q<#shj^ccdTY1F7wzKosbI=z-PCSPWoy6Ecu7yGd6b z$A=Cz9gdw%?NGesPT+u`;IWFtrM9 zax6XM@Ip(XFG=B#!fX!kwMqKZP1l1`htd+~1k`i#60bisHo(qkrIIZlleZAO90o%{ z#A|mMkPx8o@oH{Fm2ntg(q!k@!)adyjmBbue{UgDFqsiG7gm~Sb0|+{YDE$a;`yNt z0hN-<#S@RB)>6w3@~oNVPWtjd#Gn$HnvY#!=QeJJQ<@wP_n_Uv+)PZx&LG3&8lTLy zZ0a5;?>Ko!NJO5zG8v>#DsyTB|LQRHqN#j_@>mShrwVh0p!-+d-c`*0bS{LXvz%D2 zDl>#KWvUP^*5?{jT~_;}=a3p-6vKrSg;2}FVe;@PGGqc`s$GUh05#^(peGxWx^QYUgh=gvwANrs z0oGmY$*mi0N|i@FcP7eALUYhrqLX758+Pd2T!u1hO}vj&n?&Qtk&289h0FnBb;Jfs z{JNhhiY&ZR_s7SPnc&(SF$+LpAj)NB-b2Pxr+o>oj0{15^9h54yKLg7f^iZk`hYOL5=oEJhgn%k%ZXwrS5$Oa}a#FSz z8C!6h&?PCU0puvd|FFKI&bOnCySeraKF|G6oD`$IW&H9c~_ zOjI^9fksrOqJzE9*6)wEI~0ALP7(d!0<1L1tCD48z|Y7Ake)=xNyG0y+Wx3dPM)Fj z;~}vKWcE|JNk%9F!L(p?V<(oB5)cyt0COvN#&70O?o1fu zkj_AsZ;}8vy@2IgeYv&?di&rxlZbA#@_|3#>?x(7Dbfe%ZJ>pg6oH|WZCCb-XVvmR zj2=9nDSG)@-)$(*XQKHjkVK5mcP5@@pbkma5ZasPrzM@1an^OBia?yOj@yGy$zx=K zF!@l((-b#}lrplZfmDWG&Dn(i%nX*oaIR69KSJkIbkZ0d09O}2G>R(i{&r6^Ivy_< zg?Ku2A{+cKLU?usV|zL{ZK9t{qH}e+AbwrYO_aG3haY&CMY?xu{(gTug|G6NBmL*< z+TvhdmV=+_=V)5)Hz*_DxbKhpl%HHz>nK79G+~#UvQo2f0O&3Pp5oD4RLG0+Afg}J zhlNFgl}P9U)^PWc$7bh;rDIldr!Ah0Quyq=a#Pep1ezsHGSW1F2dZA?LG%N9gN{R^ z9jjO8vEM(;1>4aUB`FD-s$+P-PFOu(vmXxdZlD2mqrxl6SKd@U%$EmHSK{k5-5 zL3w$@blM;I?y3kIvjh71!s6Imtlzpn>N`6myBt!HpP(VYbU?X9M}fkfQ=DXYrD{0; z^jV*MIGs^Pr}#9_W96U}otnp`11z`GZip}^v3#!&%9mP%<>sLZn>~Owg4lrS)>BZyfASbJGl0eYP9EBpfM$j|s zST->LG-u6@plHGU)$GH99yHh**zT4Rr&2#2~B1xi624)c}|Y#68w3U5P48~FD5-~G(4{$ zD{%sUZ=T2)c?QPDGcftJSv(KT4=-Wb48At$$kGU`Jf0u5|JhV#uQn!pNbR55LD(e_sl3!$;I6qlG9 z5kYa>_Io`~WmS?-r;>#*Rq>r!`Yg`^&eB9u_hMu5TGwL(P3mSH&eNd{iN#JHX>2$O zm^JlbQ1M#VnHe~xVb>MGCh0{?PGV5CA!7_h-lA+n>~AdJ>N6WhB!-v-Sdwt+@w^rw zlUWvFI$pp-0`t^C>_|gl;>fi=XRD14bwYyL_-&y9# zJ##gPuBz2rtlp10+6GP$o;n4E3r^eNCoLgx ziTj60HR(pDKH&Xb{a~Rk)N^hkMn{?F(L49ly+8LycaVp8`h(>-pqII6z>*Wbc2~1F z;P9#VL}K|?A5!(EVs2uJ#~KGmQ5IV|t4lPZh>%fp@l#9?QaL40#jiz9#4zox3R-X^NwirTP)Edd% z04)hYnf!FiI)#zyOczkd+(9`@qSt%*B6MKkV38K zEV(NFIdM*tg|hmLp$Veh4Fd>g1aTvmZX@CzFTd!8cONUg>r?5GgB{eh-*{M9DPlBf7Is#r_AG|)0C?-b;K^- zs>PWTdvccYaU|uF{Qp*;?u|sBDfTA1sL4bZu~2zCeWtjoxA73UICKcutu7lUo`&As z-7U{p^CHgE(4*n*2H1yV<;81VYIPz~g4PzM$apBSs}6D?!53amRxsE4AOc|M#Qjm< z)x_>@4Z^{v*oSfwJiL0sARa)VXV>(_3s}C@XF!kS&QRLm`i5onK^+j$4qW@tH7bDF zHGskV4s0WJN;9IOCC)rXbMX!C+g0>+qkfmOD-6CtXV*89D>xFrnaK;;iRzaAHj|6q zyb2|L!&~s^#|+u?nYkPr^&_flk^G5J`}pP2wY4Fh zISdZ()Tke_9J6Lobal4$68dSjAXK?9H# z_wdoc;QW8>ear79$93L5f5pXQV=qM2`vHUjq-z;mGy$(>p^d>%lsPah2_zFc|9$#< zR6p)e98E?EybuUTQ@`6?U5`_z&htC=p{>*Ed$YEqYPD*yTb+chG2Tx*t8U%i|E(%( zRUKg6N;G6PUs*+F>Sj(x0V)e&>H6O7Fb&q&v#W%)NpzIDk5apzq_*APZ$zP)can`!yK z8p~q|%)=>?WF4(IQ#Ks*E<77M&YIIA60SB{CX%IhBz5+Q*lj#Wnw!iF@n5hc(E-O4{wDG zjmNKD`#RRfbu*wM^s3Z7DQ{Jh#qru+YHo3=ZEE-af`4bgxN6a`nKhc~&)Y^#k>8cq zSc<_*!F0w{kEt;{F%|!=B8J6C`e+v;C!J^Lw_m>Ottvbh--%-T=IT%?r!FZn70?ir z%*u3eY#}^^*$BWef;%uv;Rwn1B7X}^BF@cLy&+&D-fK~0)t3SNAhYdds5YQ3;2KbS~j!MtnWi|Vi*-21%ioUwO&!HswQXG ztO~wv1$&0f4OXiz7AvNbFdYI%I|J`Y1W-@4p-tUqhw0wN^Hj+xEhp_MxLt~tp39lM ze3R%nxcT%sp-yEdcf#yKAt)uYo+~lAWjds_w-0|DWZ!assrE!gJC+uPF%SJ^`7N^&KYNw5O zR~QZaWIOtUvKe+|F+qc#YAe@zGSd>zC%dM&m`NCxgc!0+lvX|~`cG1cz^N#fWI1Hf zUX{?N5tv*RncW3u>u2Zs)3JpuaLpR#1i80v%47IrmZ1l2cRtKkxluyJ#bS=;BJD|Q z4~G(}VR7uioFI4SrMJ)cxU$_BxKp;r1x#AzMJ)lncY2)BuZZn+Zw$cw1 znrpzj;`y9M#rb2Sw)@A)pvq^qBt|j}p&iqZX|m4ZASU@F66~xy?l>&cUv4g`)IE*` zn-Vn6EbOG1e759ZB|z3x-^t{evTK?rjnmeVZoDb8c*#d#iyIl0)?6@#*&b@9tUYM& z)EX2u4dWUb5kRsb>zPqT4M6L9Vuqlaa2<|eNy7;%C@(J zU!@IkEgZ!>)cwfYeM`7S*U9P*p_ADdn3y~#o3a#*x-QntRB(LGP2TEtS~^U&MMrm+ zDBaT*+jRJvN6)1X3JPG1^E7if{Gc#hfv0avAH@o z+wt+Tx7*8dEGI?v@~S^EIx$d;Z+d%w@?jU2W;QE(;Yz6%b>BCFZf5AWl!M+kJMJ?QJ+uN(xHL_4bZ# ziPO|DrX*H`mw~!wbSX5|lb|T$Hu+6=xu=k`gX*go&=@ z71^{y2xY>mU0Ed!$72Zcj8U(DLZ6|oWo zRhP`0!eT1cM8i5o*X7?{mV-V~E2X%9m=7e!dse+DBJ0Sfmc)chv!*lzDT^=$YidGo z65JNm3k=9QH#9ctoh4gS3mPD$uI|!mc9$}lR2V_o;ylrArML7IO&eF!Y7Fi2$p3Fz znBbV#r4&)ga#3L}+>mTbSSf_|_|`94XOel41Bu%@eav9%xGfvk@jCXWe8)}H9En$B-_hp?c$_MwMzKG_@ahk`HhzX@qpEUj6#iO%FTDFBRB`=@{?wIPXcXfd!pKK*;^8)Hh(B~4?Y#V}( zHZL?Qm_zqnZQFff27o!nBJ)SJ+A6iSA2H8l-$_6&*kJOp> zAlgYyx`H~>nCTM2r15i1YQx;Y_P9K6~o4|BZ5OjEIil;R9VSU!*mHU%C~wr}rqgo+)8uv)wcYy%H; zMR+D{Qk|;x-R!Vo`}RJKY64Bf17PdTj+Ua@X|%6e(aMhKke531R%e7t*7MzF-stzK zp*I!MW$MY45)rKC6;Hfb@#nZob|ljLY-H)!6sD6MTG^3AoS$fcS}%YDAO%}Yf$JtZ z;z}kYuftNpamuT#FT72olG)IvR3ShM+xr(GF0`sdpp`TTf!e)#wN z=h}Y0xIO)QReL?|=uD(kvb|ioMZXt!H$0qTpYZhaH2P5j2+d9_D~yH(L!0J-rCKBg z6{AUUESZlkD-=+gK>@)OlFYcHT@`}M%m&AW9fzd20#8}ei=ouYO*3RvM;L50K?Yp09F`oc4ZtoGbtuo zDsE=ISGGf|sKR%mF_xA=I5?nBxF9jjc6eqb0jT6$Hn=TrMQ(c(LN;#A;eII#bhDwT z2wBJkUEQ~$OMcjf8r7sFB&be7LWID+Q)w!eD^*cXnzHs&28e2dC?SEs1DqyZVjPTq zo8NQXco7HVZD!h ze&+B`$P_GoC@VcBqB>6I>8F#qA?L+%ytdQ3-R(Xf?oYeqfFihtNwOl<_MxOGt13qb+S#i~tcnmMAt{#XE2Al*JfbIcFw+MfNIXVot<;7(%FQ2!Y?nY+Y zeJ{DU*XcgbLr|@OMwuVEylXkV{Is4soFT2W&nQhdIe{h{b za8$%UCDSfXfX-m11tA+OIw@X(g_F_>gw9G#Np#~rW%u_9>W;eeNV##>ecfIbf-7?! z%2QD^@l;2$ZRj{+#m9y0VTMC)W8fLmTat#u1CA^<4L*~bG~1}JGu>W3Z#j}`51iQ| zM0LhflpXcftAm6){t`b2CcGAIH z0k_3#FANRUaRZw!4$cpY%~GabY*VPrkj-^{MH#-4^;g6frwNjCFE1oiOhViPUfSod zHAyYGXVkmK99G+Nh+T6`T}OzhB}E{9Xj3g2}%7!9qQk?uYljoAE8$peo*IcDR3i4d>`y!{NQsts@oP7n+UQ)w3(h z`|jB%54T0Nv!5qJ>8ezUc39Jkq6cz}ZjY}mOo`B?@)YX*;@~}sxBBFAaqSaJa=!9l`skc{ zwY@AhSN}SCg+B0m-GN3W%IeUwQ&<#}kQf>MJRJCFQ`0PROOY0>$@27d`=nhGi|y*) zy}OdMgUn9{aR!|>P8;z7HtLcijik zKg(>6+iGUTgE8v?0kVWYl7f%blwLDL zedCBdnx;MyXUo2fi^Fg!qeE=rty1N>1MyNou8QiR8OJAo>hb2V8{Yiz6mBmo&80tw zZhtE8P(@?O+`YG_<*{nb0Lj75L3>!keaa9&^t3W*SaB5JqCNP!EZgnND}Bcj=A^6E zRv{N;LA&~zpYvE2s#RPy!P!Ef&Gs}eA%ixe70EKSqwP#iTaH-k;0(j)!ExG?k*07E zHTRC3YFNV6yRwI2MwBk8km+uFJyd&AKs|Exc)NBD4hyA}Eq)zZS#R6RQqT{39nO>Q zcL^jkD3MKw?Fs$H-gX3!V6y8Ha9%0*#ay&{IBl_&tnQ<@7%8e-b}x=SzUtN6i`p$G zZ+7GXolNPtF|ymu0UlJ?rd{=}DMO!^H6c#ow)ES}TEPCv!vl%*x&AF2-841rM4@a_ z!Px)(76Ry#d%+t|Y7J!%$3@1~;TPzTpI9$HX&#`4qh81Ld*gf$h9Y7(tzIGbQ<1Ni z(Nv6vuFUi0=lZu0IM46R%Pi(wcqE=@uexq%#&@`5Qfzn%ad+vZ5(r1%_u8Cxg$9d$3 zABXdM>gZE(bFLNKUfld5DYM&tQLGkr6?sY3CYLUk9+V=xLZdUb*i@cA1slhQz+{b^ zwfiJftZU&grI*!S`><<|_kF=eT_^jDamw3;Hmh6q>D&%^+>zo~%yajpN6@?S#&j)2 zhnTN$SEM>c%L$O?VoSbGRE`I29=kdOH`FXNR|&^)S@^2zQpQ#n84=5&)nhjMMS`^Z zqq(m<+g=QY>^pfdTXv1r2_+CecDf_Ph`qDQo3ibsD>MsG5;RqHvC~*pSQ}f(JcnjF z?h1!MCKz47fhM2W9ncD4g3d4p#145+?}WD9w`Sj}+iag|W^v)}wJYm-ZC=YMrVg(- z*IMp-=dGpV4k~`18UUVW|4z5=!YtulPp@V)DR^}el0;Iey2F?xHXQ-btRaT%M1iik zS)JV99Mig@)5*Fx5EFTZGwLWkt8gq6=twor!>#h1QIIIwC*^Y{-YiU=zu29z&&ARt zzgL5kNh@{QXdReAXrvnlm#?y>H#*zy8?(-oW-4}}>?g&zfctorsHtS9{m>Wo6!Yp@ zRoXa;b62~Bzmm;dRM#1-acv^mMJbPt;+N@)Ea9M_Vq4C84V^LG0q33{c!{d$&Oy1OTz~A0QU&^4`IpZ!QBu;MMwlDPexA;5gI?J@7bQ@eI zDyBvm0_|)MH8SAfP>zo5hhG-$+xzU$z6+p*;^NN=bAr~<9p4~Ni~>c3QO*77+g~vyBP)F1jo)YRu>Af%|3V2umeyI$4NQe11*aE+3i$q z|18#WIj^!}59(*`-K|<5_A05p2G{+utg$bZnFfeb*W1BQFGD$!2WTDZBCbhBu5eTm z&x592^7|=wIoLq4XL7C7$ZFH2Rpg$<^Fa!Xj7C$CRXB&iN-&3$+p3aD(XSVUR)f9Y0xh~uy`5-njbHY#z;%Mpz%-fVZ{;Lh<(D-(f+w2e;6R9 zXoauG9olR_fC`Vrq5usYx=3J`omsDK5vOV+me}`Kn$M<&!scj;4`VZm6sh~=kCnK z(fhvjnIW?AdrDsryd{~kEo)p~=fyCVAXy5CYG=wcK_Wr-X2{m1%y6n+ZijVhEFwr^ zQ6ci|aNhf7Z7++5)l5FbL5P%yuxs|=hoa@rju=9KEj~CL$pS>n`}^D;D@Y(8NoZW1 zB=0>i?2DQlZz%_|(%|Gxn8k;B#oUoI-r72rLJ-J4wq|H}-&T*IW{uC&ah%M_iyY2} z-@aH|!C0(?E6qJyd`k`$$#(E8oGZoICPN|e^W9v*!;zzVnotvAey~^7HpVzEMuH$D z@RS{@8XQ`ft-in}`6S&^`%!5J(q&w+Mnhsb&ovy++kIassa!{+V^rOyoisakB-tRG z`wHoz%^+J(j#kUFlmM4?q{+obNdy%y6AaqfCK)+Crf&>jlemo_}G%;qv)l7?}iP~0j0#st*F{lL&et<$WB`8wVPQ;M_go3#&Eg)m+ zFjXa?#i=ClWMMZs&m}GMQ}pi!wZ2cys_{7-j9y`kQDx((GEjb;k`I$H<{$!6CSz8K{HBqbALd#VaLWi$%& zjN~HAYg#lOq%0wqC^1!ALMVt{XLwh8`MHiiOQrrWh65qCJds#aY&UN@& z93l`o6*(nKP(cJ01;&$t94iccW%P5A%-X>*7SnvSuwun9n+dBI5=YTUWp#B_PbdzH zvTZmxHUy?2KCCc?RF@H9hyyoC0-#sfSuOZmA2Ch~g8U zuXK-79Aa>W9GXek8$2&X3+W)MR<*&?qg?_1&88G`vQ#VzH0cyh)?ByQk=tOTU+hn_ zrc6tEQv5JDvW}NcF$@EJ+-YFD@5*oAJbwS~yYD`K^Y7oj`|+DMzx?n2<-h&us~^98 z{O5>|S4I;pXl)I_oJyqoz?RG`0B>Q{VnoJ%gCw~ZuSU5EJKe7O?+p)O+^&kK7H{sX6dRg8U zguNOG@&xRB*r*VN|91Z)k*9l0f@h^Yr=eUaN>Rl9-?PBDmH8At+K`RVAoRB)Y(C*& z<2}IoG$Hymb);|A{?_jWPJ(Y1NDb>je5Ifs1^XxjBOZjkE_EKSTxW7j`hR@))z|;} zGUdv0Az2cM8VVi`l5 zZ?O|k{UI7ix);UuMd+9v$7BB&Dv6+An0@j5jiXy{sgcWD5B}WQQt{vGG^-+0$g`s` zvT1^z3P}e99Pbbo|058RE~vrnbbJMjPteR!E`$d4AxMti6pumt;emGN#L3lAUZf}! ztKeMWeW(!oDxpjxCoRVsYW3krb>9If9ax4+TChZ9TvaiZ5sz|bERfQepoPbo4BVWI z3R@CEp00EMz(OVN!XT|-8dbol*wThSf#}X>&dzr7-2Z#?_~FOz|M;)pELwB(7yth5 zcRzmn`J43K$H;Yh)$tYA=~-L{RM(^3W-L3pH>1GdIUpd=b9f~Cj^rWpgDwXkmeQDN z4A(83gzk;YmoH4A&m4dCk(0={k$Vc_XzSk}Gl8hF6v_u@7w5R1&pzY(JN2Jr@jhy` zDulBK*(h++YM1G|R}QBk%_0iznpGFFvOs}$&H6^yw?C2i2ola|$h%dmY9;kd=@Jz^ zAc-`?3ZuXSB$ftaeLN~<0do}Nbj=0$O!OOBTayi-4yDQS@?hUZCrX0oeI%bqju?00 zxHI+pd;4SOWl*1%<@UaJ_5lL@PrSe%x1yl^HUyu*oOd7vL(!eU2*#oo!iK66Z{V^4 z>zCk|diOo9`;j~bw?$_mZK81i>9sP!xK97A6O!4_ed6Z=^yK|Sy+s1^7Z9P|V(qr$ zhZm9JV;LrP9W|s%9$&!i`Bp;9`r(s$?{Ld>L?xBLtCt~Cd7l7sGuN-5^oa`De*}n# zt$zU_35%jI~Db zzYHOuqL0FLO?mQ@r8%MYGy&$J!Xq67NgxJ=HEt8pFPN)8iBW}W46rNh&8S}iev7Vy zn@q5ptj>ss`&0?Np|0zgs7Q+>5&>o-6y$gsg&?}B$g}FwP{?^mvh$$|Q>VTO^2(OnniCbGT_9+s0s1vJ+3?H{(i@w(RM z+5FXS@ZZb66!5^n%F!%vFNbo0T*%W`8gKZ}sll_PLRaY~0!#2YLKEO&l$&CuSeo8~ zi#?*|F_h{cU8-X8q4GKW6`4lt3Q8Q1iyz0JepWeEnNAjBGA%xq^&&vdb-9T?Oevq)&AHI9{hi|_A>QA4)`Tmdp^AEp!9i0|3WD06PT)?aq zPFI|p6ug=R(l_e%;YoxEbXD>a6i=e@N%$+mOBKWjX)Qt>2K)o9ZAsP(Yi3bamr|Af z5?49WCc=rtOL-868jnd(i|{QJ;csy}@l;ajuxcm?jU4X}srsRY$3iX+@S?KPGXAZd z2Xrf}^q~kqrb>zD#<6k;_PtWeGI_~-Sj*D4p9Hy{S{L5l+&gYDi=XM(RbTr!lNuU} zFr&%h57%A!fM!y_>_QNDsvSxp${UU2xAa)77XMAWp2UMEP_Dv?Y{d{maK>OgK72X; zW%Pvtz{E5{2*G1^Mv)X0Q|OP$m|V6sU!wIO%9wM?JQn(4>PQYhgt~JmNDJML%a=)x zC{5hZVMQ%<#A{bMV&*zcg>}Cfz~Q029Nv$+E}*3Js0}~~p9PRb);o-NgbBoExITto zhLj8?BmFwi_wf)Q9-4CQFEq43Z?I?|4j8;nO}NNB2o6e3xya;-2{u(^gHGXF zA-KNRb?E;WtMJWt-@W_O58ph#{*TY!2C2sdq9>NrxLxo|2ac8kW zhyq+_UV@VnLL^d>{w!D_kZ=)zDZ}6=LTZS~HU)VE3m=47B6@23R3=84WoSothXTQb z+DrobYEj)0(<`V-JFvls;lny={QMB6rb;ejfsorn@T4hPSLJN_hghDu5eThkaR(0ngm}?V()__N+g2oBa2bHjYRlln~}f487Z2KY8J>EWChF6LqNHLH>ZFz&YfH zFGh?3S5=~<3Zo;q5vyCFy0ZMVEOrX1S2cbqX0keh_?Ga~RrdVJq6w8H(IYQTpboIC zcw65b2vaTi@M8=k?SlDF;hMF>N{*2A{i{NbQ~uDT3m%4PSjm-5Nao)Z6AL3It_W;# z)MbQ)=(M-Xs_%(Y^F{@8eXKH88uhJde+>E<2%2}4*YrciR@Agk>aV!cJPbBd6|Zra z;1dS>IM?*c%fFxRE&a>JTsQ5uo$u}Sg$!P1bDQdQ3C@MNE!brtZwvgg_Loh$?$vD* zFPnRA`Hd7VByuO67qVIe_d+a{e)0P7`yc!A=-{m$Ud{I(>2*6M#PZ=E%T3@6 zVD)PjzQ$2f{s`1TY77cXMU1gIOqEdYGX>{CQW4`Qpa;}~sVX2%nP0|P3O$29r1P5} zI&MPQWxzDc94PXiwH~_aA&@?n-bh7QDkCLI>fM`XOv~GcmvC1ThlQd95gfx<2y`~*F!g<>?@CeU+8_ua{ z(?xE(3q@+o4S0a`>(GV8bOL|bb?)Jxd}84g>QWWZh60lcdsoV3oun^Tca?@4yJRD3 zBR0HK5)nusjZk6`v*_RlTJZVjpFR_Gp7?rXACgtuqx8VNej|8 zbM~{!J&Z$;fn}D-Bi4XM#QD3Q&)f0+@-IB*x93n#+vp)lSv@T|Cm$~2_VSI7yg%@6^{cGM zqZaG4acz>~2HIGoZaM@>W$ezkFPwJYtQcQ8ZPrO@JUdYr)a#k5)u+vp!n!$F%CMK$ z6S#W(fV-#Y*hP8rj-z=N%Gz#^e4w{%{30dr+mY$BE9^7nZ75R-(w3shyVAu4v#U5z z5hgjp&DwJ_0DPpiN9%@zR3-QM#%-*=7}8(oE5~}V9#SBu`(V#617+MomWb%BWW~5F zxg&qL!@p>#e`EH4WA=Yz_GVpVL0T<2K(f6!&RHd-y*3xDsu~!c0-0@Y{E2~B#UULd zUAzKWDRsgTCpNcgqQK^p$Epz^<5d%mH4SvKe?4gvEwb1lDsS3y8Vw*RdRa9YhIJep z+cB=e=EE4~gwSY=L@d$gPH(tWvCbh}DfNV@R0mahd&~m9?AHfNS z@&}y1ISWVb9oC3>5Uogtz$b&*qx$rHAxZtr-l<$V14?CCvV~SEo-*g9&rJN<>>5=; zFj##ZD-V)Y9b^yS*10^QjPqDc<_0gK`G78!SB+>Y5h8|WqdGuj9*fTr1O1^ibveAc z=q8d{G|%SBb}sMoSGpY?jFb=KRBWHp1AaVne_43kL5#F{^*Y;XILu=gr_phv zR;xv?PS$ej-itjH_-(YydwaQ@}MIfS+S!Eh9wZJ`6gwRw)lj?uCvMDkG z%HxIFev*lO{qFm(zq1pJP&am?5gg~usFHT z$Z9Ktl+&uy(F}Z9R-H>_wld8yt9|6|Wr;pcy%RpVixePztf@VnC8MPXPQo$9YmX-& zjzK0CNDLFO`pQK&I&>GBT%_?6upmMy>Han|bDB~K7XAflQS0KO4~h|uV|Aw-Pi zS&eh)N_7M{n#xg*YA*Psr6DY0i5hk>?uKByl+AP!TmCFxX)!Y)`9iAE$=_>D$?$Ka zezmmyI@RBNtogwJ97filg`A>rWc_NxYw)QL*qRr2}j8i@+F zq#&N8OeZ2U2*WP>)*VXr=KI@9_SpM3X2yFne;JR*uw6!G;8yDU<>g4>AzXjS> zSBhFNFqzBi2=z|MrLy>~Ix}2fMPxaHIZmZwiy-+Z)cnqr&NZ~3%wGEbo3DR-;6|O{ z&11h!cg^>V9i?7J?mHMK0}5+sK}o zaXc$)jqT58R7t3hN(6=e=uF}pXWQR9+LY(w0}ir%J06`?R`&OS=)Nn=$b#90x-TGR zwq4T&^a?z<%!Wu0@`t*212(@49WT@R?VnxWwT`&$LO$0qk8>Rne$REhLD|UX$Ab&VpzFGs&FeZ2C)X;cg6tqD>OmyNZkayK?Pc^o@8+ZJz(Y;@P%{t=qeG3_13|&`WFu~Q zUtIB& zf_w!;&Q4D(5dt6gAa(%DJkq2HM8US*$Nuy4#MM3;88qQ`h>rofAj;m(2Y?d*i5n15 z`w*dR2EtsS7D(ElH$_T%V5I%YQZGc%=qyA)ydx$f11h*Zc#AVD7(wiFLvHe%#xtnx ziR)>qQUtQnagi1QyF@4iOa)hBIRMDFm*Ib4Pgy_G>D#*`j4ZL94N1{(PC-^qs7`1D zt=G!!etu!+Bn?y+sN=D&41Rsk63oEoP8<_f(qvR15qUO3EGYtta4U(mq^ytbL&CIk zvf{HJPl8S?eBzxT?jyehy{vQkA_%-Xo)GoVihuhO!~HS~!?Iy5Ex3>v@u#S01jh|# z{{XmYs}PbHOpVIbPlW9hk~WN>xK4oYLbE(IIYvg|j8`Q2$4yzAQHi&;JP{=xpars{ zeT^9kRh6}{pY>8rPn9qn+hyP%KWm~mFST-KhOmpKVO4M^QrbQUswY%v*gjg5in<@T zEwkr9NgDb5Fk&zU5V#dP!()vFsn7)50bMm_ z+6#Y>K<9*@WO4iLW&9t%0Q)=$yHj`m)M5Qaw&YHR72ut4q4h*q5G1X&={BARhXn2! z+Pi+*P)`{6RLJ1m>9Dbu5fU6D%{>ixao~UW-p;v^)g6>4PSBJ_EWPJG4MJ<;uTCZ- zd|QKGD>ESv#^XkI4!6f`^tb8XatQzY^a~LWa3}+U*t-f?GQA`*=L@(CY)__!HUv81 z@kVVDb&4OA7;9L($+Ec!|D<264^jdAj|nHFcNV{3a9XD_3ZdYEOQ6GrfyLXY0c~g@ zJ<^?95e$yY0Ew*-=-~5XGTv?QfAQ>p`7itb{O+6I{{Yj}ckll6Pgsq2`*NTW{u!}n z{~Skp^CCv={5+g8lv=MzF~3~>;ottmFMs%7`v?CIP)i30ay-TL5Sah~fSCaRP)h>@ z6aWYS2moq#sa60000000001zf0RSlgAOK-=b7gdMFLQQhFJo_MZeM9*Z*FrhVrgeD zVrg_^Z)t90VRL9Mb9QG{R1E+JD70E+kqv=ld<}tQb$AN^0R-p+000E&0{{TTz00mF zO>&(%@25zVCfx&WhTlB|u>mO|frB{H8k~thk=0~D#S6%iD7}5#x0Xj{M(m$OLamng zgLTq(-27_SWoG~8AO7oKKK}8yfARaj`jcPfZQFkJ_^aRi_AmeH_h;+B{`NQj`0xJq zzx~Otw#WA1PY?h7|M~6je)lK8`kTM~o8SEE@!$UXcYpH_fAXup`u*?!?qC1$AOGV& z{^Qp_mao74`@j5SZvErSwP_uIewqrdwzzVu)I{&)Z9zoNbU$F%kG zA5$6s7dLVB@fUycs~`LJNVRRxF~0I6^)w%O%tsnEfA#SwGcJ!=k2F%%uV)%PeU%c8 zUi9xA@!&}1Yv$GHZ9e_0Ro=DpYt-{simUond;HJ7@wctVvomhawe#%w;@Z{i+ zxXk|8<36tNmYlXnqw6`Ym3TD8%eMMZ5BL5UF^*i~lUrQKyf-(x*6I58Skw9QT(^I< zJ^#c0@5ZnGIOhB}zl(MFhu=K@JQg_~sK0vr`G1dJW45pMtHasO80Hr`jq*VrFp?(w~t#uNju;~0DTY9rAe@#5H={cFp-zsI(mj}fDb zchIh1@%K?<_f`7S+gIHW+LdKVefw&x>sKDD6<@3AYg2Ed-J@ONZTq@=#Mg3-+jiRN zizVM?^iJ*Q_I&iceiglL#M~WyXR_#Q%x%xlKBM!A*K?+7Y{&UknEMn99nBb0*<%;S znf)5&=&{F3W-j)4U3vD}zH-{RzJJ9W_7acN*T0Uo`?BOI(;>(?01USe6< z6}io?nD4H2;rfVO5%0<|l0CYb_xv^T5$7l7wYeSpx#t*Q=KejVB*p#gmgrmA##i*Y z$3YzIs*>U)&L{1}AuCK-^e@Nqa^y?NtV@uS_)Md{fAxCs{$6OuKG5^=59?mopL^Wj zylczQ%=eAwX~)!!81EL#op;(LHpsKZlocM2e@A&Vc57^pR8zb++9S4YjnCES=U$FB zqgPBv%`wOA8C#6U;vmE>i`!#Y^%k>JV^{Kc?O&C3uhF|2kH@5Uc5!X&r)P`JJ|UJh z_D$@kmc|$RpvJz~M^FqMwb4?ebUUvU!?F#AyZP=nJ}_x6mf7jNUUv5R9X zlpp}f?buQ!NG1Oizp2$DNat74!?6UhyGz}_HjY|QAGSz|ExDh=>hXL~gu)hO*xNWt zOp0iKjngpV`!OqH=>7~T2&(f{yJoF@r3V{zhnO;O%@naf-0)NHnW`PR}o?~J2l9srG+q ztZ|AtYEY&U2Z4T#I6pAjvO&;->o)h7S(_=IkA2MXoI2jA2ib&?<(Nx0aPTgg#X~tUZ8tpc9IsU#zzv+6A5k42Q$Bs`hrC`+Y`KJ4W{MWA8 zF_+Mb^tlQpRX@|gZF{dK#EIFC9S0ZVLC6B+z+7V&KN!0XD0F-;PxVqvDvmRkW0EH) z0j3m8ib2Nz!?c27A6z!skCVvbdmQUbJHxZQmw0=Mtr0sdrkb&AJ6j-j)-E z=W=X7QI9Q_ZpQaR04Ry?d1r}X#9Zz1`QSD=NMXD(B%?Sm@fj||fcF+t({el>D-Z{P zb}*=TJa}Hr&0Zk1O`i`T?y<)K8ywR(m|N_yn6Q|ebil8;e+HkS_oYkT2%(PGJ(!Ii z8*#!qV?%LH+m6^0G@{Lzz1V*p*)Oh-pbBw(V_+edZ~$UfgUF2_QphQVS)6hFo8^>- z;K;cQo{O9^IUqAOc8d4I4}++&bG9IAGxK~uxE@l%W5#6eB?Q6_AC2cl(~)0eHRE~Y zmNG>=HN1fYu+M`XQ@E~;9RhBQcWlw_oI9O&#u0K&OjFi@j)NEN=x@-MBj`iS&s00b zIgH!)5OjyAnAq_blKY6g)Woi1_|Xj{k=e?j`#0Jf_s8>9VnJthMZP#_!EU45)3iGF zAfiW(X^r8>p4(vm1=%v5k7Wps9qc}qDW)MrYfV>A{98m<#Ql-8VzOe=;w1E~_;?QZ zS$dqzdo(ee7IT+$ienCg7Q@UldIVz)`8ycHgv27L#7=7QjTW?zrKi~t1jms>Q0XB- zH1>0ijhRd$8*B>&pddKF+u5kWZ$h#SV*O~bBEj1aHf~60(T?je)j34K98y?gs4+#s zktKPyU@$pOdk&(&xoMe|kMBoe3SOi{2qBpBM!P1KF}x6+^Zx4?ekSV03@P~fs3 z1<@2ygpIfFPvoLPcX@qiCk4v3XMMiLhJr5@CJ+9f=Mi1_LZhMkA=Nxqz(S%GHMDP*w?zyfIm2tpEC%uX5TgYcMW-ayumtz5Ihug)|mA6DYb~6jwf*6DZ ze;@&b)TZ=;yuRa(Phc>h?B#IEPI0W&0 zd}i<-SUvk@LSK1rht39Fh}VXE6&nIsGbDEeil<&1z3F^5Haq)kLwZNX3@(B!S%U&f z1|ElQ%Ts$eR9A_nwOeEkNlv17Z0H9fH>yd8zy{CjF&VL&k6w$L~89ANV(f<0GVyIN5O@tZolUeCOZz4Ek7+3Q{>koSEpwU|aA0d(6cF zC5Q=#ze6y3s4(&O;Lsz(fvZ%UkU`>K2wyUx2{CKH%2GQ*@qhB$5BPfmDhwhW}b7->T{=JIj&!9{tD8t;)Lm`|&K;xJO ziwoAeA2Zk^@1Ka!L105!jOQTOu~)kPjiVX_J&t+wXT~bjy^8^C^O)#Gyq4MC&{ugZ zJ{v>>0ySBrpb~RJ1>$uGlW`t`D8}N(=TS3*O~IZuT{w}ieN(|fkJkR@nK zPufI6HI5BQYKwDD{}E^))Eg%=>-$5}1%h3R?^o;B8)Pr;kMYEZ@HMROXmcXnZVG z5ObPHh-z22QSj6bPSUp!gw-Ar5n&3lfzFfFMqT6fph>i$tWqos z1`4%fuoY7QVtZ^yv1!OQ<~F~zVtnCll#dXnQF^dbK$2prYfSmn-;DI7%)mKRk2PMpWotPG;n@5*$lBK z$dcD(W(=;8B;j|=Q}HYc&eTXJ1J5Y#>oOzFaXyOLU3yIBw(faFW`JuWmND-`7CQ9v zXoiB1^&^fc9p4dR<6~{}Jnaybcsj(VCUv86ctShc)Y*{`e$jrKCW=i_V^tABv`1qT zwAd6$REFzN6RRr>aT@OV<(xc7@wEiiDLh6aMQybBG^Ye@<{!d4YIgHPz zRF>`-ua9*`!)P82TX18GGB?PkvH)(L+K}{f$aWhtHnSlaIUZ-Ss`nhW6G#k7SIFbq zKATK@EM@G;L;6NNS2iYZgK{_T0$C6fI^xV}EcW+C<|#c8Oz1plsgp4DB_hDn{8jB0;bb3g|sDN}RNvPP6Hea7sOP z)F94(!v^@=k#|t2C9VZM4kq7hpWgNPpdM4!2Xw*sJOVQZ7+I&cC-grrTSv?(&1Bn# z3{84HCof(bH zkN_cyJF>v<{uWeV>^64t`1G;iGRJG<81gvB8%=ocvKk=bXEr+B5;bVvnfnx# zkS%q$W-jB3SjM62%s#3(2PKC4CHp_Zv^4pKK`UW&LNkvJd@gZ6M z;xyfsQ6t&PfU3;fl8-G-RJJ6E-(Tl)$@&N%hjU<9*W0lO2cJcy+tr3BKTTtJdu%Oe zNy5%1tMb$&rC4iG(pa*M-a?R>jEsyQG%;-+9C}Unzq|g;Vu%^Rk+liN7;_~<94(uz zFehlGgJg+<4in_;<)0#_7}J>N99@ysDCQeaj&{>SRF%CPADqiZBrX(OrVZP4N`vbp zF@8J&dKx;!YRY2ay)LT_67g7;JBTU+52jgyMeFM@&sb$FeVU+HE*-5+tF2 zHTWJ%mgPeBB-ULW)Llfku%&~F!st@5nR7r@W07i1HH1S{wP7a+5n;n15LA<$-%NNa zgeX2H8?Yq`#Nf`?Ayl&Zpot;R#9l^h=G+$<&MT9>KQvsrgfx0 z%s6uij}6n@j478{vc<3w?y&=M7T_U`yRmS`)}qbRvBW`opW;Ch#$lkcf&_Vw+k@(I z6naAW(CZLsmgGy{5?)9Y%S7K{OcKjXA6chh zmu-f}gPX@bz>FqoIo2I+iw6rLHG*@A_h$^H1AN8~x1_Fxpe{SQ|4y90S`4YN) z6`0DJDJt7{$^rsKjXCFC^r^^F^whU(S*%iU=nHdG@K`+5Rr^We4V)^ZA;?r4b zSw({2_Dw7od(lme>H`u41x;;xy+U+%o+okZ}uh8Q~#JFB;VhtW{VVz*$@@C)*Nv>3<} zYI#1ip_#nK#;xA)HCt%SIxbbSg|eIE7ikjJI|>HhuS=1OMc8%P60Ws`y;W`(n65Op z{iPVBYDEvSjv~Sa>xiRIYXVZXwxw-$?OV|hX_wWn$2^SJXbgLkCPpCaw@n)anj)pG zdEbxCEENTiQEm3Z^cao6A|VgeMd!M;BfS;MQcZE70vCh9|4d5+5SrMhn7d=ZUBBtZ z#=_^X^Ec)${Tg|<%fz<}zrZ`<$5UpExW*sL$GzozLwUdUyw~45d+~_~+5hb*-#Xhh z3ptj%#C#%S4CI&&=|b_B4kkJltKVcfk-uTrvGgM?pC}oAK097Y8Kdi?;yzfnS3x=S z8vR_aKX3Pk-#z;1`oE3C`0w9q^pAh_+u#4@7gp#xHp!B~YeIs>I3`$yoHy)x3Eq-iFvY3xH9%W94dv~^Q@UP0WOGA>uk*1^_q?PJ;qDd{l9 z*DlQvDK^;+ApIzv@)Zr6mx>ls8gVG^Quva@LU1|Jj{eD+j`cDWv|?SObUVklW&T2h zmn#&vZ?z!`u7N_wDFG=_(1C#au)QT)A7b)ScY{Ecft|-9{mI%k>xsBZc|B^XFih;j zAY?!hq?Te|5gV^Iur#C7R@@_Hldqdu6Pn^Q>v}8-UpxFXGH0tB!V=v-jTJpyN zF#f~u|NHNPy!`cV|Jxt^r{DeNZ~o$s{`znK;y3^Lum8*Me*fFQ``v%P;1>nA7|0kK z#>SlwG?{3{>MXOwW;%bJ_(06kN@&>01`SRK^?hEnd`VVpE;yX zTzjX@G-ruU_++C|Y~#Zc`OHmLPS8%#w{2O?3u+B&-}lbMWM#uIN~vB;L>X%r-54B3ra)hi}u)b~7o<5w4Uq^ZM( z$K=(d*~91Q`72CdtaM$ISpPpv;(?8`*{&NmNxuLeD1m6a0JMPYBt*`K_sHE9y{`JIv*Z#GsKIA8^BB7%~yp9fuAdWa>@r}^@`5iri0R;Dd zVku}=@z`fw8(kXGqk)M=;fc+;cdK1EdNmdhBDiTcH#o>6ttfG^zrp$j8FsG|}Z9uENztw8vxkRE|T6)6#T)y*~Kv#vfju>Nx<% z64Lq<4@mK?0{p_ZiI|(poMXb|o-7$wHV)PsO zV(t?Mk0wB-P+gK877W&7ZAk&Eo;Vz}pFy?7LdiCnElI_6Vh9tGRs3yQnUWv_qf0v3 zGPHNuPXrs<-AwZUZPGCdWw|q+pmMWJ&(Q|tU#rpCxyvFfkFPM%9pCp8>`Sv70U`X+ zY?iYfKJ=oG`F*d%zy0_8ciT8)*|+1|H=Fip#Ds2UN;%6m(&}!T4)QgZ56TYbn{YwIJ4~oO#mSt~?`y?mB zsq57ICK0NNsSPkjGwYPp`T($m+#Bp?*NlHB+F1kJvwF*HX*K_>c%oTe+5Mwll*6?|UEnsm|<4Eb*6P1C$99wP`vY#6Nm zzF17a*2H8Z%&Le^;?P3>+8NaW_QH?pFx9^1raxZ&$Lke0w&AbE z)&)@1rs<-u?X}WRDFm7x{;pxI4c4}`!9p+s46zxI%(L%i3tB%Id9~jVT8>9pI`l5( z;ySWFJPQOacteCR%i2xvjtXD2J&aX?&iebvKhK6EQEt*KpHmaR6nFt>=va?|yVIOJ z1XB@)32|uYuPtr>E3BC>A2PxwDZRnGw=Ajzf>LL+NJOc~=<29W#pfXYnc?o+T1@s^ z?BuB(uJDev!!sVof5CXGHer$lQi(WWy{9)L-W$lPd~CAr zrDqk?jq#$>nYN}OpRdDPCgA)en*TKjhnaRP6G#|GG}chFx9iUeep!(OX+Ep^WMsbr zWfU|-uvl!2ThIS6QwL>^(Ik!$5g?n0ELX|Sih5r52a??B+{rf)G??DA9Isk$rrYW4M>6H}%j z6iJ8NJ0jir z`o4Rs^KRsmvpfHbJN-O=II7E@{{UA&sJ{&tX)`e`1&HwG$h>$7-u2IcKK>_<`j_~u zP})d~Fv2<|Y3zbR5b)~bih~qzN8Xp16C_`9iUMD-_BF|{pmC#JB;w-6cce-p)C^Fg zf;|vDxDLKZ5sIaYbRoYBva;?69qi2pr6GVAu zbTpDyjGq#Hn$1Q;Nd+G%7F#9kwdxnVj)R`&u4?(QuM4u7C1N5T?|%Iu&469KOYW~& z^U<*t$Rl#t*xlKYDUf%e>|{s= z>@_)_DRFbfEIrIy3L&xaaB3#TNZN$M2&5zT&*RqlKd1r8NFMxV{TSZQ%b!B*Y_s_( zem-I8@}ubQx?w%w-&$$UIx!iqyF*Pn-_p0|`|bSQfx~`a_2tvP#(%e!L6FGHzaaT1 zDZ<5wr>P*EA!0D(Mdl179d^Pog0TU>)ESy`%wUF@zCM7taz>KZE$A;6z%td@c$=0{ z0k?$sl=`qoI-A#Sy90Rl?!AWjAcO2FzCLJQI{$}9THB(`(k8I>l(a31KGV@#H9=0t zAm+cwx;zAB&f*BVGe~r`b}iWC6Tw91tZtTx2w7k!m)Nocg@%_-6deo(^1Md#|X zV;@5ZA-a7d0_yd|Q0C6ch7Dv^5b4b(8KUB8=}hOkem*()`So}E#d(8bi}m7kNRu)o z^EF}yFJ*-JT9%nC-MpV>e45DlRbQZmYB^u`;ka}I^`$OvSb6`BFI4qyuCI1kaMyS* zvr=07-!UsgAoh%JDt1p*koohxzxWfzxA0(p&7xEVN400O!?M`AaIbN5DX$6th4F@h zedFuDG--VSXHEI^_T(c|Wz#D}z(m7)Tq=ajYBUCmQk%Ci5oCJIcjo#3|I+{A(YCZ3 zTGO7IcH(j{&NQXd3ks#Ao?&sLehq+ZwM zmqPjRyWU^;XLoB4`!kkZ425-|lvGCIm(q+&wh`CPR{V+7mX6pWJQz#wvrKsDY;AQ#40>#%j?^fdH}&rnGy&@ zBqS7U+t_^_DKKqzlM7ec6|>o(QCNkslUk#16+^2}NNEb5Y;s}Co}n#9#++v3q3PMX zfjQqZf)F@;G913DziyAuDf`1pST(H-q4-$=quV7K%6C~F$eKh+s;%1MzfTyYiKPgV zA|DiCAV$k=W7-%XII@g=-DgW-E2NdscyT_(lrvuml}`A%_M#ZmrfKjqcv9Mz<56*| zWQo%rCK^FpNuE!6Y2L&7!@T=^Xb%NTUk{=0f923$pZ{mbE%Hi8B+vCjU`~0-MSPLf zyP(&h1A~EAT$%n_-naXAyhA^#ERgTJ3BuJosvUBEvqE#*`}Wn3S8xB*@BZx1|MOk< zYo?a6Vv3I`V@Z-=sJVcUL1IM#Qav^8rWsz?Ky)Bjo>6-`op?Wdka0lta~_vtq9vc6 zbu^?$wH2mghmFojdi_)f&&D9ucsiJ`o%RAXo}L!}U8$a?xyAX8KYYN3_i|{kPap%y zkvLVpV{+9oq+{5XQG)lKKPwrU z_H}TcqpY8VB}*P_kN3>{;WPR_ID;C5vH>0cJIC|=FncQz7kUz~TFI%C?Vun}(f%lT znXWN=wkIgQ;Y2~q0O9`0^49xpe;5LT{YZ?knvN+ZO-HR7S5!j3vW_HA3-M+}O@Por z1%deK`S|1YW&hlVm!}6B!h4HN=2b^`A#JiC0Qqz-6^!CfLNVaIDrk>0Ges_mUxDOW>cKUOew%Zk{N`8oZ-mF=d(XQfm;Y19f=5l=pdB=R%?Ln zuyORB;_rY6ne!8?^y3rsb!4n5##j?8p|(Q!)Gls={a5<}82kC-f>Z*_DJ!^gX!QfN zp`a+>L)`MgrrLa+fRy9&;h#TVI4Ak|@)<!>44xB1PH9^?HHqHyYDqi)8ucA?iEx_6vquBZ10k)SWgT)ZMHIH!v*<}R3hSL!xm7Yu0Ml|~M9X<3o<`h*|+c?Y~5 zgaBfV)LQTJ7ur|!*N;!^*ijaYA9ZQa?4R3a;n0q{t;BC#G3jdSfT&&7mh7SS3%~aB z#|zRX(G&d#^v_;(G>4+Hvl1L~H1!3JW_;m%FkbNikR!@hPC*E!r$GJcSAs4SPl z)+v1N{U|eUyq=QmDUBs(^XN*%#4CWOc;yV{BZ&Nk^3%#`E2PtZFi=$p+RjKhn?X8? zDX&_+u6;#bsB%FL#)#hNIUp{(Nl=OL;qgjsZO`aGt|wgwGL??=!Ji)}y+by=l-Hge z#|Mz^#~XWh2t}xLJ&GwiluNLzR1Q1_f!S7@1S+pbdCdo! LbG=uwuKvg}a=o3w# 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

h!XwhLpnUnc&bozNK!|P?Oh%8cqEqnJR;% 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%0DZ^(V5Q!qSDaZDZVYO{WhD3#=p32oj_%5Z1lG>4C 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 Date: Tue, 21 May 2024 14:55:32 -0500 Subject: [PATCH 080/318] remove unneeded files from duo asset bundle --- scripts/app_config/stack_duo_assets.zip | Bin 1318754 -> 1174913 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/scripts/app_config/stack_duo_assets.zip b/scripts/app_config/stack_duo_assets.zip index 2463d59120dda8bbf13c662a7b5719ae8070f6f4..b72f55dec21d47536cc9be591d3eb4e06d98bae9 100644 GIT binary patch delta 105 zcmV-v0G9vazEFYNM}UL@gaU*Egam{Iga(8Mgb0KQgbIWUgbaiYgbsucgb=h5tK^ru z7ZN?U6eSV~1((I-6B@TA;uF&XmyhNXH^Tp L008gl5dZ)Hy~!e@ delta 133041 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 LKJfdg@VEZ~@%e8& From d329eba45e56452b76977752a57830349a10ae0e Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 21 May 2024 16:14:07 -0500 Subject: [PATCH 081/318] add version & build number update script ``` # To update both version and build number ./update_version.sh -v 2.0.1 -b 223 # To update only the build number ./update_version.sh -b 223 # To update only the version ./update_version.sh -v 2.0.1 # To increment the build number by one ./update_version.sh ``` --- scripts/app_config/update_version.sh | 47 ++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 scripts/app_config/update_version.sh diff --git a/scripts/app_config/update_version.sh b/scripts/app_config/update_version.sh new file mode 100755 index 000000000..d9d11e659 --- /dev/null +++ b/scripts/app_config/update_version.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +# Function to display usage. +usage() { + echo "Usage: $0 [-v ] [-b ]" + exit 1 +} + +# Parse command-line arguments. +while getopts "v:b:" opt; do + case "$opt" in + v) VERSION="$OPTARG" ;; + b) BUILD_NUMBER="$OPTARG" ;; + *) usage ;; + esac +done + +# Define the pubspec.yaml file path. +PUBSPEC_FILE="../../pubspec.yaml" + +# Ensure the pubspec.yaml file exists. +if [ ! -f "$PUBSPEC_FILE" ]; then + echo "Error: $PUBSPEC_FILE not found!" + exit 1 +fi + +# Extract the current version and build number from pubspec.yaml. +CURRENT_VERSION_LINE=$(grep "^version:" "$PUBSPEC_FILE") +CURRENT_VERSION=$(echo "$CURRENT_VERSION_LINE" | cut -d ' ' -f 2) +CURRENT_VERSION_NUMBER=$(echo "$CURRENT_VERSION" | cut -d '+' -f 1) +CURRENT_BUILD_NUMBER=$(echo "$CURRENT_VERSION" | cut -d '+' -f 2) + +# If version is not provided, use the current version number. +if [ -z "$VERSION" ]; then + VERSION="$CURRENT_VERSION_NUMBER" +fi + +# If build number is not provided, increment the current build number by one. +if [ -z "$BUILD_NUMBER" ]; then + BUILD_NUMBER=$((CURRENT_BUILD_NUMBER + 1)) +fi + +# Update the version and build number in pubspec.yaml. +TMP_FILE=$(mktemp) +sed "s/^version: .*/version: $VERSION+$BUILD_NUMBER/" "$PUBSPEC_FILE" > "$TMP_FILE" && mv "$TMP_FILE" "$PUBSPEC_FILE" + +echo "Updated $PUBSPEC_FILE with version: $VERSION and build number: $BUILD_NUMBER" From 532990ae95558b9953a92be16024c92f1b805d5a Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 21 May 2024 16:22:49 -0500 Subject: [PATCH 082/318] call version update script from configure_duo script version 2.0.0 by default and increments the build number if none passed explicitly. --- scripts/app_config/configure_duo.sh | 6 ++++++ scripts/app_config/update_version.sh | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/app_config/configure_duo.sh b/scripts/app_config/configure_duo.sh index e9dc81ce2..e3350cf24 100755 --- a/scripts/app_config/configure_duo.sh +++ b/scripts/app_config/configure_duo.sh @@ -8,7 +8,10 @@ export ORIGINAL_APP_ID="com.cypherstack.stackwallet" export NEW_NAME="Stack Duo" export NEW_APP_ID="com.cypherstack.stackduo" +export NEW_VERSION="2.0.0" +export NEW_BUILD="" # Will increment existing build # if empty. +# String replacements. if [[ "$(uname)" == 'Darwin' ]]; then # macos specific sed sed -i '' 's/Wallet/Duo/g' ../../lib/app_config.dart @@ -20,3 +23,6 @@ fi # Extract Duo images. unzip -o stack_duo_assets.zip -d ../../ + +# Update version & build number. +./update_version.sh -v "${NEW_VERSION}" -b "${NEW_BUILD}" diff --git a/scripts/app_config/update_version.sh b/scripts/app_config/update_version.sh index d9d11e659..d75fbdb23 100755 --- a/scripts/app_config/update_version.sh +++ b/scripts/app_config/update_version.sh @@ -35,7 +35,7 @@ if [ -z "$VERSION" ]; then VERSION="$CURRENT_VERSION_NUMBER" fi -# If build number is not provided, increment the current build number by one. +# If build number is not provided or is empty, increment the current build number by one. if [ -z "$BUILD_NUMBER" ]; then BUILD_NUMBER=$((CURRENT_BUILD_NUMBER + 1)) fi From f02634f63599db37be8512124c25918e7120aae9 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 21 May 2024 15:40:10 -0600 Subject: [PATCH 083/318] link assets based on config --- .gitignore | 4 ++ .../bundled_themes/stack_wallet}/dark.zip | Bin .../bundled_themes/stack_wallet}/light.zip | Bin .../icon/stack_wallet}/app_icon_alpha.png | Bin .../icon/stack_wallet}/icon.png | Bin .../icon/stack_wallet}/macos-icon.png | Bin .../icon/stack_wallet}/splash.png | Bin lib/utilities/assets.dart | 2 - pubspec.yaml | 2 +- scripts/android/build_all.sh | 4 +- scripts/android/build_all_duo.sh | 2 +- scripts/app_config/configure_duo.sh | 4 +- scripts/app_config/shared/link_assets.sh | 35 ++++++++++++++++++ scripts/ios/build_all.sh | 4 +- scripts/ios/build_all_duo.sh | 2 +- scripts/linux/build_all.sh | 4 +- scripts/linux/build_all_duo.sh | 2 +- scripts/macos/build_all.sh | 4 +- scripts/macos/build_all_duo.sh | 2 +- scripts/windows/build_all.sh | 4 +- scripts/windows/build_all_duo.sh | 2 +- 21 files changed, 63 insertions(+), 14 deletions(-) rename {assets/default_themes => asset_sources/bundled_themes/stack_wallet}/dark.zip (100%) rename {assets/default_themes => asset_sources/bundled_themes/stack_wallet}/light.zip (100%) rename {assets/icon => asset_sources/icon/stack_wallet}/app_icon_alpha.png (100%) rename {assets/icon => asset_sources/icon/stack_wallet}/icon.png (100%) rename {assets/icon => asset_sources/icon/stack_wallet}/macos-icon.png (100%) rename {assets/images => asset_sources/icon/stack_wallet}/splash.png (100%) create mode 100755 scripts/app_config/shared/link_assets.sh diff --git a/.gitignore b/.gitignore index ec9131840..3e7bee013 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,10 @@ test/services/coins/particl/particl_wallet_test_parameters.dart # Exceptions to above rules. !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages +# asset symlinks +/assets/default_themes +/assets/icon + # other coverage scripts/**/build diff --git a/assets/default_themes/dark.zip b/asset_sources/bundled_themes/stack_wallet/dark.zip similarity index 100% rename from assets/default_themes/dark.zip rename to asset_sources/bundled_themes/stack_wallet/dark.zip diff --git a/assets/default_themes/light.zip b/asset_sources/bundled_themes/stack_wallet/light.zip similarity index 100% rename from assets/default_themes/light.zip rename to asset_sources/bundled_themes/stack_wallet/light.zip diff --git a/assets/icon/app_icon_alpha.png b/asset_sources/icon/stack_wallet/app_icon_alpha.png similarity index 100% rename from assets/icon/app_icon_alpha.png rename to asset_sources/icon/stack_wallet/app_icon_alpha.png diff --git a/assets/icon/icon.png b/asset_sources/icon/stack_wallet/icon.png similarity index 100% rename from assets/icon/icon.png rename to asset_sources/icon/stack_wallet/icon.png diff --git a/assets/icon/macos-icon.png b/asset_sources/icon/stack_wallet/macos-icon.png similarity index 100% rename from assets/icon/macos-icon.png rename to asset_sources/icon/stack_wallet/macos-icon.png diff --git a/assets/images/splash.png b/asset_sources/icon/stack_wallet/splash.png similarity index 100% rename from assets/images/splash.png rename to asset_sources/icon/stack_wallet/splash.png diff --git a/lib/utilities/assets.dart b/lib/utilities/assets.dart index 9213fd1b2..ff557b46e 100644 --- a/lib/utilities/assets.dart +++ b/lib/utilities/assets.dart @@ -254,8 +254,6 @@ class _SVG { class _PNG { const _PNG(); - String get splash => "assets/images/splash.png"; - String get glasses => "assets/images/glasses.png"; String get glassesHidden => "assets/images/glasses-hidden.png"; String get mascot => "assets/images/mascot.png"; diff --git a/pubspec.yaml b/pubspec.yaml index a3fdcdf9d..d1ae29570 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -213,7 +213,7 @@ flutter_launcher_icons: image_path: assets/icon/macos-icon.png flutter_native_splash: - image: assets/images/splash.png + image: assets/icon/splash.png color: "F7F7F7" android_disable_fullscreen: true diff --git a/scripts/android/build_all.sh b/scripts/android/build_all.sh index 5da88e0e3..50dcdd7d6 100755 --- a/scripts/android/build_all.sh +++ b/scripts/android/build_all.sh @@ -1,6 +1,8 @@ #!/bin/bash -set -e +set -x -e + +../app_config/shared/link_assets.sh "stack_wallet" # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/android/build_all_duo.sh b/scripts/android/build_all_duo.sh index 12729db01..13424455a 100755 --- a/scripts/android/build_all_duo.sh +++ b/scripts/android/build_all_duo.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -e +set -x -e ../app_config/configure_duo.sh diff --git a/scripts/app_config/configure_duo.sh b/scripts/app_config/configure_duo.sh index e9dc81ce2..7605de750 100755 --- a/scripts/app_config/configure_duo.sh +++ b/scripts/app_config/configure_duo.sh @@ -1,6 +1,8 @@ #!/bin/bash -set -e +set -x -e + +../app_config/shared/link_assets.sh "stack_duo" # Configure files for Duo. export ORIGINAL_NAME="Stack Wallet" diff --git a/scripts/app_config/shared/link_assets.sh b/scripts/app_config/shared/link_assets.sh new file mode 100755 index 000000000..7c5ac2b4a --- /dev/null +++ b/scripts/app_config/shared/link_assets.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +set -x -e + +if [ $# -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + + +SELECT_ASSETS_DIR=$1 + +# set project root +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +pushd "${SCRIPT_DIR}/../../../" +PROJECT_ROOT="$(pwd)" +popd + +# declare full paths +ASSET_SOURCES_DIR="${PROJECT_ROOT}/asset_sources" +ASSETS_DIR="${PROJECT_ROOT}/assets" + +# finally update symlinks + +rm -f "${ASSETS_DIR}/default_themes" +ln -s "${ASSET_SOURCES_DIR}/bundled_themes/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/default_themes" + +rm -f "${ASSETS_DIR}/icon" +ln -s "${ASSET_SOURCES_DIR}/icon/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/icon" + + + + +# todo run flutter_native_splash +# todo run flutter_launcher_icons \ No newline at end of file diff --git a/scripts/ios/build_all.sh b/scripts/ios/build_all.sh index 8b03d1b6f..e1dc23d9b 100755 --- a/scripts/ios/build_all.sh +++ b/scripts/ios/build_all.sh @@ -1,6 +1,8 @@ #!/bin/bash -set -e +set -x -e + +../app_config/shared/link_assets.sh "stack_wallet" # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/ios/build_all_duo.sh b/scripts/ios/build_all_duo.sh index 0b264c541..bb1cb9290 100755 --- a/scripts/ios/build_all_duo.sh +++ b/scripts/ios/build_all_duo.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -e +set -x -e ../app_config/configure_duo.sh diff --git a/scripts/linux/build_all.sh b/scripts/linux/build_all.sh index d7c29e1b1..67e4f3066 100755 --- a/scripts/linux/build_all.sh +++ b/scripts/linux/build_all.sh @@ -1,6 +1,8 @@ #!/bin/bash -set -e +set -x -e + +../app_config/shared/link_assets.sh "stack_wallet" # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/linux/build_all_duo.sh b/scripts/linux/build_all_duo.sh index bbba76855..720d3c187 100755 --- a/scripts/linux/build_all_duo.sh +++ b/scripts/linux/build_all_duo.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -e +set -x -e ../app_config/configure_duo.sh diff --git a/scripts/macos/build_all.sh b/scripts/macos/build_all.sh index 59d1425c9..83191dcd2 100755 --- a/scripts/macos/build_all.sh +++ b/scripts/macos/build_all.sh @@ -1,6 +1,8 @@ #!/bin/bash -set -e +set -x -e + +../app_config/shared/link_assets.sh "stack_wallet" # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/macos/build_all_duo.sh b/scripts/macos/build_all_duo.sh index 08be98f32..43ef40d35 100755 --- a/scripts/macos/build_all_duo.sh +++ b/scripts/macos/build_all_duo.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -e +set -x -e ../app_config/configure_duo.sh diff --git a/scripts/windows/build_all.sh b/scripts/windows/build_all.sh index c055cb6c3..887c067ef 100755 --- a/scripts/windows/build_all.sh +++ b/scripts/windows/build_all.sh @@ -1,6 +1,8 @@ #!/bin/bash -set -e +set -x -e + +../app_config/shared/link_assets.sh "stack_wallet" # libepiccash requires old rust source ../rust_version.sh diff --git a/scripts/windows/build_all_duo.sh b/scripts/windows/build_all_duo.sh index 2f401237a..40b75c81d 100755 --- a/scripts/windows/build_all_duo.sh +++ b/scripts/windows/build_all_duo.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -e +set -x -e ../app_config/configure_duo.sh From c828081c3d591e4d1b53e56ad1e593e8195f74b7 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 21 May 2024 17:05:45 -0500 Subject: [PATCH 084/318] require args --- scripts/app_config/update_version.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/app_config/update_version.sh b/scripts/app_config/update_version.sh index d75fbdb23..8ab49f0d8 100755 --- a/scripts/app_config/update_version.sh +++ b/scripts/app_config/update_version.sh @@ -6,6 +6,11 @@ usage() { exit 1 } +# Check if no arguments are provided. +if [ $# -eq 0 ]; then + usage +fi + # Parse command-line arguments. while getopts "v:b:" opt; do case "$opt" in From ac38384e85c7d42fff982ebb47a71822c7362952 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 21 May 2024 17:09:22 -0500 Subject: [PATCH 085/318] require both args --- scripts/app_config/update_version.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/app_config/update_version.sh b/scripts/app_config/update_version.sh index 8ab49f0d8..499ec531a 100755 --- a/scripts/app_config/update_version.sh +++ b/scripts/app_config/update_version.sh @@ -7,7 +7,7 @@ usage() { } # Check if no arguments are provided. -if [ $# -eq 0 ]; then +if [ -z "$VERSION" ] || [ -z "$BUILD_NUMBER" ]; then usage fi From ef293ac68e8466272bc979dcee9304e009ac760e Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 21 May 2024 17:13:23 -0500 Subject: [PATCH 086/318] if [ $# -ne 4 --- scripts/app_config/update_version.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/app_config/update_version.sh b/scripts/app_config/update_version.sh index 499ec531a..e5b04da96 100755 --- a/scripts/app_config/update_version.sh +++ b/scripts/app_config/update_version.sh @@ -7,7 +7,7 @@ usage() { } # Check if no arguments are provided. -if [ -z "$VERSION" ] || [ -z "$BUILD_NUMBER" ]; then +if [ $# -ne 4 ]; then # if [ -z "$VERSION" ] || [ -z "$BUILD_NUMBER" ]; then usage fi From ab2806a4b70c5fcf42f0a6e624ff5127664a3d4f Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 21 May 2024 18:21:27 -0600 Subject: [PATCH 087/318] add master build script --- scripts/android/build_all.sh | 2 - scripts/android/build_all_duo.sh | 2 - scripts/app_config/configure_duo.sh | 15 ++---- scripts/app_config/shared/link_assets.sh | 12 ++--- scripts/build_app.sh | 66 ++++++++++++++++++++++++ scripts/build_runner.sh | 3 -- scripts/ios/build_all.sh | 2 - scripts/ios/build_all_duo.sh | 2 - scripts/linux/build_all.sh | 2 - scripts/linux/build_all_duo.sh | 2 - scripts/macos/build_all.sh | 2 - scripts/macos/build_all_duo.sh | 2 - scripts/windows/build_all.sh | 2 - scripts/windows/build_all_duo.sh | 2 - 14 files changed, 74 insertions(+), 42 deletions(-) create mode 100755 scripts/build_app.sh delete mode 100755 scripts/build_runner.sh diff --git a/scripts/android/build_all.sh b/scripts/android/build_all.sh index 50dcdd7d6..861f02cb5 100755 --- a/scripts/android/build_all.sh +++ b/scripts/android/build_all.sh @@ -2,8 +2,6 @@ set -x -e -../app_config/shared/link_assets.sh "stack_wallet" - # libepiccash requires old rust source ../rust_version.sh set_rust_to_1671 diff --git a/scripts/android/build_all_duo.sh b/scripts/android/build_all_duo.sh index 13424455a..e636ce29e 100755 --- a/scripts/android/build_all_duo.sh +++ b/scripts/android/build_all_duo.sh @@ -2,8 +2,6 @@ set -x -e -../app_config/configure_duo.sh - sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/build.gradle sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/debug/AndroidManifest.xml sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/main/AndroidManifest.xml diff --git a/scripts/app_config/configure_duo.sh b/scripts/app_config/configure_duo.sh index 2ff9c3055..3d0792133 100755 --- a/scripts/app_config/configure_duo.sh +++ b/scripts/app_config/configure_duo.sh @@ -2,29 +2,24 @@ set -x -e -../app_config/shared/link_assets.sh "stack_duo" - # Configure files for Duo. +ORIGINAL_PUBSPEC_NAME="stackwallet" +NEW_PUBSPEC_NAME="stackduo" + export ORIGINAL_NAME="Stack Wallet" export ORIGINAL_APP_ID="com.cypherstack.stackwallet" export NEW_NAME="Stack Duo" export NEW_APP_ID="com.cypherstack.stackduo" -export NEW_VERSION="2.0.0" -export NEW_BUILD="" # Will increment existing build # if empty. # String replacements. if [[ "$(uname)" == 'Darwin' ]]; then # macos specific sed sed -i '' 's/Wallet/Duo/g' ../../lib/app_config.dart sed -i '' "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../pubspec.yaml + sed -i '' "s/${ORIGINAL_PUBSPEC_NAME}/${NEW_PUBSPEC_NAME}/g" ../../pubspec.yaml else sed -i 's/Wallet/Duo/g' ../../lib/app_config.dart sed -i "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../pubspec.yaml + sed -i "s/${ORIGINAL_PUBSPEC_NAME}/${NEW_PUBSPEC_NAME}/g" ../../pubspec.yaml fi - -# Extract Duo images. -unzip -o stack_duo_assets.zip -d ../../ - -# Update version & build number. -./update_version.sh -v "${NEW_VERSION}" -b "${NEW_BUILD}" diff --git a/scripts/app_config/shared/link_assets.sh b/scripts/app_config/shared/link_assets.sh index 7c5ac2b4a..17ed27cdc 100755 --- a/scripts/app_config/shared/link_assets.sh +++ b/scripts/app_config/shared/link_assets.sh @@ -7,18 +7,12 @@ if [ $# -ne 1 ]; then exit 1 fi - SELECT_ASSETS_DIR=$1 -# set project root -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -pushd "${SCRIPT_DIR}/../../../" -PROJECT_ROOT="$(pwd)" -popd - # declare full paths -ASSET_SOURCES_DIR="${PROJECT_ROOT}/asset_sources" -ASSETS_DIR="${PROJECT_ROOT}/assets" +ASSET_SOURCES_DIR="${APP_PROJECT_ROOT_DIR}/asset_sources" +ASSETS_DIR="${APP_PROJECT_ROOT_DIR}/assets" + # finally update symlinks diff --git a/scripts/build_app.sh b/scripts/build_app.sh new file mode 100755 index 000000000..084e42bd1 --- /dev/null +++ b/scripts/build_app.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash + +set -x -e + +# set project root +THIS_SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +pushd "${THIS_SCRIPT_DIR}/../" +export APP_PROJECT_ROOT_DIR="$(pwd)" +popd + +APP_PLATFORMS=("android" "ios" "macos" "linux" "windows") +APP_NAMED_IDS=("stack_wallet" "stack_duo") + +# Function to display usage. +usage() { + echo "Usage: $0 -v -b -p -a " + exit 1 +} + +# check for required number of args +if [ $# -ne 8 ]; then + usage +fi + +unset -v APP_VERSION_STRING +unset -v APP_BUILD_NUMBER +unset -v APP_BUILD_PLATFORM +unset -v APP_NAMED_ID + +# Parse command-line arguments. +while getopts "v:b:p:a:" opt; do + case "$opt" in + v) APP_VERSION_STRING="$OPTARG" ;; + b) APP_BUILD_NUMBER="$OPTARG" ;; + p) APP_BUILD_PLATFORM="$OPTARG" ;; + a) APP_NAMED_ID="$OPTARG" ;; + *) usage ;; + esac +done + +if printf '%s\0' "${APP_PLATFORMS[@]}" | grep -Fxqz -- "${APP_BUILD_PLATFORM}"; then + pushd "${APP_PROJECT_ROOT_DIR}/scripts/${APP_BUILD_PLATFORM}" +else + echo "Invalid platform: ${APP_BUILD_PLATFORM}" + usage +fi + +if printf '%s\0' "${APP_NAMED_IDS[@]}" | grep -Fxqz -- "${APP_NAMED_ID}"; then + "${APP_PROJECT_ROOT_DIR}/scripts/app_config/update_version.sh" -v "${APP_VERSION_STRING}" -b "${APP_BUILD_NUMBER}" + "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/link_assets.sh" "${APP_NAMED_ID}" +else + echo "Invalid app id: ${APP_NAMED_ID}" + exit 1 +fi + +if [[ "$APP_NAMED_ID" = "stack_wallet" ]]; then + ./build_all.sh +elif [[ "$APP_NAMED_ID" = "stack_duo" ]]; then + "${APP_PROJECT_ROOT_DIR}/scripts/app_config/configure_duo.sh" + ./build_all_duo.sh +else + echo "Invalid app id: ${APP_NAMED_ID}" + exit 1 +fi + +popd diff --git a/scripts/build_runner.sh b/scripts/build_runner.sh deleted file mode 100755 index a8951f144..000000000 --- a/scripts/build_runner.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -dart run build_runner build --delete-conflicting-outputs diff --git a/scripts/ios/build_all.sh b/scripts/ios/build_all.sh index e1dc23d9b..595d6aba1 100755 --- a/scripts/ios/build_all.sh +++ b/scripts/ios/build_all.sh @@ -2,8 +2,6 @@ set -x -e -../app_config/shared/link_assets.sh "stack_wallet" - # libepiccash requires old rust source ../rust_version.sh set_rust_to_1671 diff --git a/scripts/ios/build_all_duo.sh b/scripts/ios/build_all_duo.sh index bb1cb9290..1dabc0834 100755 --- a/scripts/ios/build_all_duo.sh +++ b/scripts/ios/build_all_duo.sh @@ -2,8 +2,6 @@ set -x -e -../app_config/configure_duo.sh - # Configure ios for Duo. sed -i '' "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../ios/Runner/Info.plist sed -i '' "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../ios/Runner.xcodeproj/project.pbxproj diff --git a/scripts/linux/build_all.sh b/scripts/linux/build_all.sh index 67e4f3066..775d6fa9d 100755 --- a/scripts/linux/build_all.sh +++ b/scripts/linux/build_all.sh @@ -2,8 +2,6 @@ set -x -e -../app_config/shared/link_assets.sh "stack_wallet" - # libepiccash requires old rust source ../rust_version.sh set_rust_to_1671 diff --git a/scripts/linux/build_all_duo.sh b/scripts/linux/build_all_duo.sh index 720d3c187..7f0cd0286 100755 --- a/scripts/linux/build_all_duo.sh +++ b/scripts/linux/build_all_duo.sh @@ -2,8 +2,6 @@ set -x -e -../app_config/configure_duo.sh - # Configure Linux for Duo. sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../linux/CMakeLists.txt sed -i "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../linux/my_application.cc diff --git a/scripts/macos/build_all.sh b/scripts/macos/build_all.sh index 83191dcd2..8841de2ed 100755 --- a/scripts/macos/build_all.sh +++ b/scripts/macos/build_all.sh @@ -2,8 +2,6 @@ set -x -e -../app_config/shared/link_assets.sh "stack_wallet" - # libepiccash requires old rust source ../rust_version.sh set_rust_to_1671 diff --git a/scripts/macos/build_all_duo.sh b/scripts/macos/build_all_duo.sh index 43ef40d35..f4910ecae 100755 --- a/scripts/macos/build_all_duo.sh +++ b/scripts/macos/build_all_duo.sh @@ -2,8 +2,6 @@ set -x -e -../app_config/configure_duo.sh - # Configure macOS for Duo. sed -i '' 's/com.cypherstack.stackWallet/com.cypherstack.stackDuo/g' ../../macos/Runner.xcodeproj/project.pbxproj diff --git a/scripts/windows/build_all.sh b/scripts/windows/build_all.sh index 887c067ef..bf418a0ae 100755 --- a/scripts/windows/build_all.sh +++ b/scripts/windows/build_all.sh @@ -2,8 +2,6 @@ set -x -e -../app_config/shared/link_assets.sh "stack_wallet" - # libepiccash requires old rust source ../rust_version.sh set_rust_to_1671 diff --git a/scripts/windows/build_all_duo.sh b/scripts/windows/build_all_duo.sh index 40b75c81d..b66e59d4f 100755 --- a/scripts/windows/build_all_duo.sh +++ b/scripts/windows/build_all_duo.sh @@ -2,8 +2,6 @@ set -x -e -../app_config/configure_duo.sh - # Configure Windows for Duo. sed -i 's/Stack Wallet/Stack Duo/g' ../../windows/runner/Runner.rc From e206fefcebe45ed229ac5dfcfa6c877176db1899 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 10:32:29 -0600 Subject: [PATCH 088/318] extract project root env var export to env.sh and add asset gen script --- scripts/app_config/shared/asset_generators.sh | 12 ++++++++++++ scripts/app_config/shared/link_assets.sh | 9 ++++----- scripts/build_app.sh | 6 +----- scripts/env.sh | 9 +++++++++ 4 files changed, 26 insertions(+), 10 deletions(-) create mode 100755 scripts/app_config/shared/asset_generators.sh create mode 100755 scripts/env.sh diff --git a/scripts/app_config/shared/asset_generators.sh b/scripts/app_config/shared/asset_generators.sh new file mode 100755 index 000000000..599826121 --- /dev/null +++ b/scripts/app_config/shared/asset_generators.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -x -e + +source ./env.sh + +# run icon and image generators +pushd "${APP_PROJECT_ROOT_DIR}" +flutter pub get +dart run flutter_native_splash:create +dart run flutter_launcher_icons +popd \ No newline at end of file diff --git a/scripts/app_config/shared/link_assets.sh b/scripts/app_config/shared/link_assets.sh index 17ed27cdc..cc9bb87e9 100755 --- a/scripts/app_config/shared/link_assets.sh +++ b/scripts/app_config/shared/link_assets.sh @@ -2,6 +2,8 @@ set -x -e +source ./env.sh + if [ $# -ne 1 ]; then echo "Usage: $0 " exit 1 @@ -22,8 +24,5 @@ ln -s "${ASSET_SOURCES_DIR}/bundled_themes/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/ rm -f "${ASSETS_DIR}/icon" ln -s "${ASSET_SOURCES_DIR}/icon/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/icon" - - - -# todo run flutter_native_splash -# todo run flutter_launcher_icons \ No newline at end of file +# run icon and image generators +"${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/asset_generators.sh" \ No newline at end of file diff --git a/scripts/build_app.sh b/scripts/build_app.sh index 084e42bd1..9b1a20158 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -2,11 +2,7 @@ set -x -e -# set project root -THIS_SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -pushd "${THIS_SCRIPT_DIR}/../" -export APP_PROJECT_ROOT_DIR="$(pwd)" -popd +source ./env.sh APP_PLATFORMS=("android" "ios" "macos" "linux" "windows") APP_NAMED_IDS=("stack_wallet" "stack_duo") diff --git a/scripts/env.sh b/scripts/env.sh new file mode 100755 index 000000000..174a6d879 --- /dev/null +++ b/scripts/env.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -x -e + +# set project root +THIS_SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +pushd "${THIS_SCRIPT_DIR}/../" +export APP_PROJECT_ROOT_DIR="$(pwd)" +popd \ No newline at end of file From e39fc8ef8df8f070f5dfdd2feb33fa39faa22281 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 11:37:21 -0600 Subject: [PATCH 089/318] gen icons fixes --- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2689 -> 2607 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1837 -> 1736 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3762 -> 3455 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 5666 -> 5073 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 7544 -> 6677 bytes flutter_launcher_icons.yaml | 27 ++++++++++++++++++ .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 0 -> 3566 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 0 -> 2132 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 0 -> 4064 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 0 -> 2607 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 0 -> 5223 bytes pubspec.yaml | 15 ---------- 13 files changed, 27 insertions(+), 15 deletions(-) create mode 100644 flutter_launcher_icons.yaml create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index 9ce95f8f2e62f5ca767b401975915ef0f0a338e5..1fd042714c1fc8ed45dce516a0da56c6df8e4f67 100644 GIT binary patch delta 2599 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 M07*qoM6N<$f)rhHV*mgE diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 5e7ef3a9c41906b8a71b5441708cd63caf10f512..b816e61f290e93ccac822b89762da98a3007224c 100644 GIT binary patch literal 3455 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 M=7#Yrw8z8$0OetFga7~l literal 3762 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 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 0334611f2aae65433e34982ee6fbcc919827be29..6710b67f07c628f01b3cc8efcccc668c8baae561 100644 GIT binary patch literal 5073 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 CPlH7O literal 5666 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 AC;$Ke diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index ab5dd7ded8b2d8d51494bda4aac8e7fbd61e45b4..095c133e4bee7df8982236a6fa60490c1094df66 100644 GIT binary patch literal 6677 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..5335b173ba03fffa0cd07c165d89f1a65c294786 GIT binary patch literal 2132 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..9b0dfe27bdc2ae36eddb6ef573d56707546cc946 GIT binary patch literal 2607 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 R-yQ$}002ovPDHLkV1hL{1m*w$ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..750f49158e5e3b35e8a4f23c17ab842279c0cd07 GIT binary patch literal 5223 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 literal 0 HcmV?d00001 diff --git a/pubspec.yaml b/pubspec.yaml index d1ae29570..c9a84bb2d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -197,21 +197,6 @@ dev_dependencies: flutter_lints: ^3.0.1 isar_generator: 3.0.5 -flutter_launcher_icons: - android: true - ios: true - image_path: assets/icon/icon.png - image_path_android: assets/icon/app_icon_alpha.png - image_path_ios: assets/icon/icon.png - remove_alpha_ios: true - windows: - generate: true - image_path: assets/icon/icon.png - icon_size: 48 # min:48, max:256, default: 48 - macos: - generate: true - image_path: assets/icon/macos-icon.png - flutter_native_splash: image: assets/icon/splash.png color: "F7F7F7" From 230669bd97d86cd95f6121626abbd9f1c50535a7 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 11:41:49 -0600 Subject: [PATCH 090/318] disable splash generation as the actual screen isn't used --- scripts/app_config/shared/asset_generators.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/app_config/shared/asset_generators.sh b/scripts/app_config/shared/asset_generators.sh index 599826121..25a71c747 100755 --- a/scripts/app_config/shared/asset_generators.sh +++ b/scripts/app_config/shared/asset_generators.sh @@ -7,6 +7,7 @@ source ./env.sh # run icon and image generators pushd "${APP_PROJECT_ROOT_DIR}" flutter pub get -dart run flutter_native_splash:create +#native splash screen not used +#dart run flutter_native_splash:create dart run flutter_launcher_icons popd \ No newline at end of file From bc785e13fcca42b1e4a5886f671a1016ec58c0a3 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 11:44:05 -0600 Subject: [PATCH 091/318] call of env.sh should not be needed --- scripts/app_config/shared/asset_generators.sh | 2 -- scripts/app_config/shared/link_assets.sh | 2 -- 2 files changed, 4 deletions(-) diff --git a/scripts/app_config/shared/asset_generators.sh b/scripts/app_config/shared/asset_generators.sh index 25a71c747..a0dfc9ab3 100755 --- a/scripts/app_config/shared/asset_generators.sh +++ b/scripts/app_config/shared/asset_generators.sh @@ -2,8 +2,6 @@ set -x -e -source ./env.sh - # run icon and image generators pushd "${APP_PROJECT_ROOT_DIR}" flutter pub get diff --git a/scripts/app_config/shared/link_assets.sh b/scripts/app_config/shared/link_assets.sh index cc9bb87e9..205841368 100755 --- a/scripts/app_config/shared/link_assets.sh +++ b/scripts/app_config/shared/link_assets.sh @@ -2,8 +2,6 @@ set -x -e -source ./env.sh - if [ $# -ne 1 ]; then echo "Usage: $0 " exit 1 From cc7b958c5a94561be1bd78e1e823cd67c840974a Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 13:38:49 -0600 Subject: [PATCH 092/318] script generated app_config.g.dart file --- .gitignore | 1 + lib/app_config.dart | 61 ++-- lib/db/db_version_migration.dart | 7 +- lib/db/hive/db.dart | 5 +- lib/db/migrate_wallets_to_isar.dart | 10 +- lib/models/contact_address_entry.dart | 4 +- lib/models/isar/exchange_cache/currency.dart | 4 +- lib/models/isar/models/block_explorer.dart | 4 +- lib/models/isar/models/contact_entry.dart | 6 +- lib/models/isar/stack_theme.dart | 8 +- lib/notifications/notification_card.dart | 5 +- .../add_wallet_view/add_wallet_view.dart | 8 +- .../address_book_views/address_book_view.dart | 4 +- .../subviews/address_book_filter_view.dart | 4 +- .../subviews/coin_select_sheet.dart | 4 +- .../new_contact_address_entry_form.dart | 6 +- lib/pages/buy_view/buy_form.dart | 8 +- .../sub_widgets/crypto_selection_view.dart | 10 +- .../exchange_currency_selection_view.dart | 4 +- .../exchange_step_views/step_2_view.dart | 8 +- .../exchange_step_views/step_4_view.dart | 7 +- .../sub_widgets/exchange_provider_option.dart | 7 +- .../exchange_view/trade_details_view.dart | 19 +- .../manage_coin_units_view.dart | 4 +- .../manage_nodes_views/manage_nodes_view.dart | 4 +- .../helpers/restore_create_backup.dart | 8 +- .../desktop_address_book.dart | 4 +- .../exchange_steps/step_scaffold.dart | 3 +- .../subwidgets/desktop_step_2.dart | 12 +- .../subwidgets/desktop_step_4.dart | 4 +- ...desktop_manage_block_explorers_dialog.dart | 4 +- .../settings_menu/nodes_settings.dart | 4 +- lib/services/buy/simplex/simplex_api.dart | 4 +- lib/services/node_service.dart | 13 +- lib/services/notifications_service.dart | 4 +- lib/services/price.dart | 10 +- lib/services/price_service.dart | 4 +- lib/services/wallets.dart | 4 +- lib/services/wallets_service.dart | 4 +- lib/supported_coins.dart | 73 ----- lib/utilities/prefs.dart | 267 ++++++++++++------ lib/wallets/isar/models/wallet_info.dart | 8 +- .../providers/all_wallets_info_provider.dart | 8 +- .../providers/favourite_wallets_provider.dart | 6 +- lib/widgets/address_book_card.dart | 4 +- lib/widgets/choose_coin_view.dart | 4 +- pubspec.yaml | 4 +- scripts/app_config/configure_duo.sh | 25 -- scripts/app_config/configure_stack_duo.sh | 44 +++ scripts/app_config/configure_stack_wallet.sh | 68 +++++ scripts/build_app.sh | 3 +- test/services/node_service_test.dart | 12 +- 52 files changed, 462 insertions(+), 358 deletions(-) delete mode 100644 lib/supported_coins.dart delete mode 100755 scripts/app_config/configure_duo.sh create mode 100755 scripts/app_config/configure_stack_duo.sh create mode 100755 scripts/app_config/configure_stack_wallet.sh diff --git a/.gitignore b/.gitignore index 3e7bee013..4b76ab9da 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,4 @@ libtor_ffi.dll flutter_libsparkmobile.dll secp256k1.dll /libisar.so +/lib/app_config.g.dart diff --git a/lib/app_config.dart b/lib/app_config.dart index 2b83a7868..998fae02d 100644 --- a/lib/app_config.dart +++ b/lib/app_config.dart @@ -1,34 +1,43 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; + +part 'app_config.g.dart'; abstract class AppConfig { - static const appName = prefix + _separator + suffix; + static const appName = _prefix + _separator + suffix; - static const prefix = "Stack"; + static const prefix = _prefix; + static const suffix = _suffix; - static const _separator = " "; + static List get coins => _supportedCoins; - static const suffix = "Wallet"; + static CryptoCurrency getCryptoCurrencyFor(String coinIdentifier) => + coins.firstWhere( + (e) => e.identifier == coinIdentifier, + ); - // comment out coins to disable them - static const supportedCoins = [ - Bitcoin, - BitcoinFrost, - Litecoin, - Bitcoincash, - Dogecoin, - Epiccash, - Ecash, - Ethereum, - Firo, - Monero, - Particl, - Peercoin, - Solana, - Stellar, - Tezos, - Wownero, - Namecoin, - Nano, - Banano, - ]; + static CryptoCurrency getCryptoCurrencyForTicker( + final String ticker, { + bool caseInsensitive = true, + }) { + final _ticker = caseInsensitive ? ticker.toLowerCase() : ticker; + return coins.firstWhere( + caseInsensitive + ? (e) => e.ticker.toLowerCase() == _ticker && e is! FrostCurrency + : (e) => e.ticker == _ticker && e is! FrostCurrency, + ); + } + + /// Fuzzy logic. Use with caution!! + @Deprecated("dangerous") + static CryptoCurrency getCryptoCurrencyByPrettyName(final String prettyName) { + final name = prettyName.replaceAll(" ", "").toLowerCase(); + try { + return coins.firstWhere( + (e) => e.identifier.toLowerCase() == name || e.prettyName == prettyName, + ); + } catch (_) { + throw Exception("getCryptoCurrencyByPrettyName($prettyName) failed!"); + } + } } diff --git a/lib/db/db_version_migration.dart b/lib/db/db_version_migration.dart index ed69c0bbc..333ddfabc 100644 --- a/lib/db/db_version_migration.dart +++ b/lib/db/db_version_migration.dart @@ -10,6 +10,7 @@ import 'package:hive/hive.dart'; import 'package:isar/isar.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/db/isar/main_db.dart'; import 'package:stackwallet/db/migrate_wallets_to_isar.dart'; @@ -26,15 +27,11 @@ import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/services/mixins/wallet_db.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/wallets_service.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; @@ -560,7 +557,7 @@ class DbVersionMigrator with WalletDB { final count = await MainDB.instance.getTransactions(walletId).count(); - final crypto = Coins.getCryptoCurrencyFor(info.coinIdentifier); + final crypto = AppConfig.getCryptoCurrencyFor(info.coinIdentifier); for (var i = 0; i < count; i += 50) { final txns = await MainDB.instance diff --git a/lib/db/hive/db.dart b/lib/db/hive/db.dart index 25a793219..22722d6af 100644 --- a/lib/db/hive/db.dart +++ b/lib/db/hive/db.dart @@ -13,14 +13,13 @@ import 'dart:isolate'; import 'package:cw_core/wallet_info.dart' as xmr; import 'package:hive/hive.dart'; import 'package:mutex/mutex.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/exchange/response_objects/trade.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/models/notification_model.dart'; import 'package:stackwallet/models/trade_wallet_lookup.dart'; import 'package:stackwallet/services/wallets_service.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; class DB { @@ -164,7 +163,7 @@ class DB { names.removeWhere((name, dyn) { final jsonObject = Map.from(dyn as Map); try { - Coins.getCryptoCurrencyFor(jsonObject["coin"] as String); + AppConfig.getCryptoCurrencyFor(jsonObject["coin"] as String); return false; } catch (e, s) { Logging.instance.log( diff --git a/lib/db/migrate_wallets_to_isar.dart b/lib/db/migrate_wallets_to_isar.dart index c222bed57..810185463 100644 --- a/lib/db/migrate_wallets_to_isar.dart +++ b/lib/db/migrate_wallets_to_isar.dart @@ -2,16 +2,12 @@ import 'dart:convert'; import 'package:hive_flutter/hive_flutter.dart'; import 'package:isar/isar.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/db/isar/main_db.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/models/token_wallet_info.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; @@ -171,8 +167,8 @@ Future migrateWalletsToIsar({ coinName: old.coinIdentifier, walletId: old.walletId, name: old.name, - mainAddressType: Coins.getCryptoCurrencyFor(old.coinIdentifier) - .primaryAddressType, + mainAddressType: + AppConfig.getCryptoCurrencyFor(old.coinIdentifier).primaryAddressType, favouriteOrderIndex: favourites.indexOf(old.walletId), cachedChainHeight: walletBox.get( DBKeys.storedChainHeight, diff --git a/lib/models/contact_address_entry.dart b/lib/models/contact_address_entry.dart index 764212330..9e64e4f1e 100644 --- a/lib/models/contact_address_entry.dart +++ b/lib/models/contact_address_entry.dart @@ -10,7 +10,7 @@ import 'dart:convert'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; @Deprecated("Use lib/models/isar/models/contact_entry.dart instead") @@ -43,7 +43,7 @@ class ContactAddressEntry { factory ContactAddressEntry.fromJson(Map jsonObject) { return ContactAddressEntry( - coin: Coins.getCryptoCurrencyFor(jsonObject["coin"] as String), + coin: AppConfig.getCryptoCurrencyFor(jsonObject["coin"] as String), address: jsonObject["address"] as String, label: jsonObject["label"] as String, other: jsonObject["other"] as String?, diff --git a/lib/models/isar/exchange_cache/currency.dart b/lib/models/isar/exchange_cache/currency.dart index 86236a685..d206d3326 100644 --- a/lib/models/isar/exchange_cache/currency.dart +++ b/lib/models/isar/exchange_cache/currency.dart @@ -9,8 +9,8 @@ */ import 'package:isar/isar.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; -import 'package:stackwallet/supported_coins.dart'; part 'currency.g.dart'; @@ -161,7 +161,7 @@ class Currency { static bool checkIsStackCoin(String ticker) { try { - Coins.getCryptoCurrencyForTicker(ticker); + AppConfig.getCryptoCurrencyForTicker(ticker); return true; } catch (_) { return false; diff --git a/lib/models/isar/models/block_explorer.dart b/lib/models/isar/models/block_explorer.dart index da0e2b527..ed16c995b 100644 --- a/lib/models/isar/models/block_explorer.dart +++ b/lib/models/isar/models/block_explorer.dart @@ -9,7 +9,7 @@ */ import 'package:isar/isar.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; part 'block_explorer.g.dart'; @@ -31,7 +31,7 @@ class TransactionBlockExplorer { @ignore CryptoCurrency? get coin { try { - return Coins.getCryptoCurrencyForTicker(ticker); + return AppConfig.getCryptoCurrencyForTicker(ticker); } catch (_) { return null; } diff --git a/lib/models/isar/models/contact_entry.dart b/lib/models/isar/models/contact_entry.dart index 67eac36df..5ccedd4eb 100644 --- a/lib/models/isar/models/contact_entry.dart +++ b/lib/models/isar/models/contact_entry.dart @@ -9,7 +9,7 @@ */ import 'package:isar/isar.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; part 'contact_entry.g.dart'; @@ -37,7 +37,7 @@ class ContactEntry { @ignore List get addressesSorted { final List sorted = []; - for (final coin in Coins.enabled) { + for (final coin in AppConfig.coins) { final slice = addresses.where((e) => e.coin == coin).toList(); if (slice.isNotEmpty) { slice.sort( @@ -102,7 +102,7 @@ class ContactAddressEntry { late final String? other; @ignore - CryptoCurrency get coin => Coins.getCryptoCurrencyFor(coinName); + CryptoCurrency get coin => AppConfig.getCryptoCurrencyFor(coinName); ContactAddressEntry(); diff --git a/lib/models/isar/stack_theme.dart b/lib/models/isar/stack_theme.dart index b891c288e..32e25dd78 100644 --- a/lib/models/isar/stack_theme.dart +++ b/lib/models/isar/stack_theme.dart @@ -13,7 +13,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/utilities/extensions/impl/box_shadow.dart'; import 'package:stackwallet/utilities/extensions/impl/gradient.dart'; import 'package:stackwallet/utilities/extensions/impl/string.dart'; @@ -1878,7 +1878,7 @@ class StackTheme { final Map result = {}; - for (final mainNetId in Coins.enabled.map((e) => e.mainNetId)) { + for (final mainNetId in AppConfig.coins.map((e) => e.mainNetId)) { if (map[mainNetId] is String) { result[mainNetId] = Color( (map[mainNetId] as String).toBigIntFromHex.toInt(), @@ -2196,7 +2196,7 @@ class ThemeAssetsV2 implements IThemeAssets { final Map result = {}; - for (final coin in Coins.enabled) { + for (final coin in AppConfig.coins) { result[coin.mainNetId] = map[coin.mainNetId] as String? ?? placeHolder; } @@ -2531,7 +2531,7 @@ class ThemeAssetsV3 implements IThemeAssets { final Map result = {}; - for (final coin in Coins.enabled) { + for (final coin in AppConfig.coins) { result[coin.mainNetId] = map[coin.mainNetId] as String? ?? placeHolder; result[coin.mainNetId] = prependIfNeeded(result[coin.mainNetId]!); } diff --git a/lib/notifications/notification_card.dart b/lib/notifications/notification_card.dart index 006d56185..434af20b2 100644 --- a/lib/notifications/notification_card.dart +++ b/lib/notifications/notification_card.dart @@ -13,9 +13,9 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/isar/stack_theme.dart'; import 'package:stackwallet/models/notification_model.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/theme_providers.dart'; @@ -44,7 +44,8 @@ class NotificationCard extends ConsumerWidget { String coinIconPath(IThemeAssets assets, WidgetRef ref) { try { - final coin = Coins.getCryptoCurrencyByPrettyName(notification.coinName); + final coin = + AppConfig.getCryptoCurrencyByPrettyName(notification.coinName); return ref.read(coinIconProvider(coin)); } catch (_) { return notification.iconAssetName; diff --git a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart index 2179542e3..2d6c27adc 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart @@ -28,7 +28,7 @@ import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/sub_widgets/e import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/sub_widgets/next_button.dart'; import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; @@ -63,10 +63,10 @@ class _AddWalletViewState extends ConsumerState { String _searchTerm = ""; final _coinsTestnet = [ - ...Coins.enabled.where((e) => e.network == CryptoCurrencyNetwork.test), + ...AppConfig.coins.where((e) => e.network == CryptoCurrencyNetwork.test), ]; final _coins = [ - ...Coins.enabled.where((e) => e.network == CryptoCurrencyNetwork.main), + ...AppConfig.coins.where((e) => e.network == CryptoCurrencyNetwork.main), ]; final List coinEntities = []; final List tokenEntities = []; @@ -147,7 +147,7 @@ class _AddWalletViewState extends ConsumerState { coinEntities.addAll(_coinsTestnet.map((e) => CoinEntity(e))); } - if (Coins.enabled.whereType().isNotEmpty) { + if (AppConfig.coins.whereType().isNotEmpty) { final contracts = MainDB.instance.getEthContracts().sortByName().findAllSync(); diff --git a/lib/pages/address_book_views/address_book_view.dart b/lib/pages/address_book_views/address_book_view.dart index 6cbc86a7f..3dcdcf907 100644 --- a/lib/pages/address_book_views/address_book_view.dart +++ b/lib/pages/address_book_views/address_book_view.dart @@ -20,7 +20,7 @@ import 'package:stackwallet/providers/db/main_db_provider.dart'; import 'package:stackwallet/providers/global/address_book_service_provider.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/ui/address_book_providers/address_book_filter_provider.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; @@ -66,7 +66,7 @@ class _AddressBookViewState extends ConsumerState { ref.refresh(addressBookFilterProvider); if (widget.coin == null) { - final coins = [...Coins.enabled]; + final coins = [...AppConfig.coins]; coins.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages/address_book_views/subviews/address_book_filter_view.dart b/lib/pages/address_book_views/subviews/address_book_filter_view.dart index 2f863f379..8f63ffc15 100644 --- a/lib/pages/address_book_views/subviews/address_book_filter_view.dart +++ b/lib/pages/address_book_views/subviews/address_book_filter_view.dart @@ -12,7 +12,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:stackwallet/providers/global/prefs_provider.dart'; import 'package:stackwallet/providers/ui/address_book_providers/address_book_filter_provider.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; @@ -40,7 +40,7 @@ class _AddressBookFilterViewState extends ConsumerState { @override void initState() { - final coins = [...Coins.enabled]; + final coins = [...AppConfig.coins]; coins.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages/address_book_views/subviews/coin_select_sheet.dart b/lib/pages/address_book_views/subviews/coin_select_sheet.dart index f1d474170..c74489fbb 100644 --- a/lib/pages/address_book_views/subviews/coin_select_sheet.dart +++ b/lib/pages/address_book_views/subviews/coin_select_sheet.dart @@ -14,7 +14,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/coin_image_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; @@ -27,7 +27,7 @@ class CoinSelectSheet extends StatelessWidget { @override Widget build(BuildContext context) { final maxHeight = MediaQuery.of(context).size.height * 0.60; - final coins_ = [...Coins.enabled]; + final coins_ = [...AppConfig.coins]; coins_.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart b/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart index 33c901527..27995cb04 100644 --- a/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart +++ b/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart @@ -19,7 +19,7 @@ import 'package:stackwallet/pages/address_book_views/subviews/coin_select_sheet. import 'package:stackwallet/providers/providers.dart'; // import 'package:stackwallet/providers/global/should_show_lockscreen_on_resume_state_provider.dart'; import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/address_utils.dart'; @@ -73,7 +73,7 @@ class _NewContactAddressEntryFormState ..text = ref.read(addressEntryDataProvider(widget.id)).address ?? ""; addressLabelFocusNode = FocusNode(); addressFocusNode = FocusNode(); - coins = [...Coins.enabled]; + coins = [...AppConfig.coins]; super.initState(); } @@ -90,7 +90,7 @@ class _NewContactAddressEntryFormState Widget build(BuildContext context) { final isDesktop = Util.isDesktop; if (isDesktop) { - coins = [...Coins.enabled]; + coins = [...AppConfig.coins]; coins.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages/buy_view/buy_form.dart b/lib/pages/buy_view/buy_form.dart index 53dcd01f3..c28dd9c6e 100644 --- a/lib/pages/buy_view/buy_form.dart +++ b/lib/pages/buy_view/buy_form.dart @@ -16,6 +16,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:intl/intl.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/buy/response_objects/crypto.dart'; import 'package:stackwallet/models/buy/response_objects/fiat.dart'; import 'package:stackwallet/models/buy/response_objects/quote.dart'; @@ -30,7 +31,6 @@ import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/services/buy/buy_response.dart'; import 'package:stackwallet/services/buy/simplex/simplex_api.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/address_utils.dart'; import 'package:stackwallet/utilities/assets.dart'; @@ -413,7 +413,7 @@ class _BuyFormState extends ConsumerState { if (ticker == null) return false; try { - Coins.getCryptoCurrencyForTicker(ticker); + AppConfig.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; @@ -1168,7 +1168,7 @@ class _BuyFormState extends ConsumerState { text: "Choose from Stack", onTap: () { try { - final coin = Coins.getCryptoCurrencyForTicker( + final coin = AppConfig.getCryptoCurrencyForTicker( selectedCrypto!.ticker, ); Navigator.of(context) @@ -1331,7 +1331,7 @@ class _BuyFormState extends ConsumerState { ), Expanded( child: AddressBookAddressChooser( - coin: Coins.enabled.firstWhere( + coin: AppConfig.coins.firstWhere( (e) => e.ticker.toLowerCase() == selectedCrypto!.ticker diff --git a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart index 3cff7b1b1..22dedbac8 100644 --- a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart +++ b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart @@ -13,8 +13,8 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/buy/response_objects/crypto.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; @@ -70,7 +70,7 @@ class _CryptoSelectionViewState extends ConsumerState { coins.sort( (a, b) => a.ticker.toLowerCase().compareTo(b.ticker.toLowerCase()), ); - for (final coin in Coins.enabled.reversed) { + for (final coin in AppConfig.coins.reversed) { final index = coins.indexWhere( (element) => element.ticker.toLowerCase() == coin.ticker.toLowerCase(), ); @@ -270,7 +270,7 @@ bool isStackCoin(String? ticker) { if (ticker == null) return false; try { - Coins.getCryptoCurrencyForTicker(ticker); + AppConfig.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; @@ -305,7 +305,7 @@ class CoinIconForTicker extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { try { - final coin = Coins.getCryptoCurrencyForTicker(ticker); + final coin = AppConfig.getCryptoCurrencyForTicker(ticker); return SvgPicture.file( File( ref.watch(coinIconProvider(coin)), @@ -326,7 +326,7 @@ class CoinIconForTicker extends ConsumerWidget { // }) { // String? iconAsset = /*isStackCoin(ticker) // ?*/ -// Assets.svg.iconFor(coin: SupportedCoins.getCryptoCurrencyForTicker(ticker)); +// Assets.svg.iconFor(coin: SupportedAppConfig.getCryptoCurrencyForTicker(ticker)); // // : Assets.svg.buyIconFor(ticker); // return (iconAsset != null) // ? SvgPicture.asset(iconAsset, height: size, width: size) diff --git a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart index b19057387..2fac1d83d 100644 --- a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart +++ b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart @@ -22,7 +22,7 @@ import 'package:stackwallet/services/exchange/exchange.dart'; import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; import 'package:stackwallet/services/exchange/trocador/trocador_exchange.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; @@ -365,7 +365,7 @@ class _ExchangeCurrencySelectionViewState Flexible( child: Builder( builder: (context) { - final coins = Coins.enabled.where( + final coins = AppConfig.coins.where( (e) => e.ticker.toLowerCase() != widget.pairedTicker?.toLowerCase(), diff --git a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart index ac5795d27..941707b63 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/exchange/incomplete_exchange.dart'; import 'package:stackwallet/pages/address_book_views/address_book_view.dart'; import 'package:stackwallet/pages/address_book_views/subviews/contact_popup.dart'; @@ -19,7 +20,6 @@ import 'package:stackwallet/pages/exchange_view/exchange_step_views/step_3_view. import 'package:stackwallet/pages/exchange_view/sub_widgets/step_row.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/address_utils.dart'; import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; @@ -72,7 +72,7 @@ class _Step2ViewState extends ConsumerState { bool isStackCoin(String ticker) { try { - Coins.getCryptoCurrencyForTicker(ticker); + AppConfig.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; @@ -207,7 +207,7 @@ class _Step2ViewState extends ConsumerState { text: "Choose from Stack", onTap: () { try { - final coin = Coins.enabled.firstWhere( + final coin = AppConfig.coins.firstWhere( (e) => e.ticker.toLowerCase() == model.receiveTicker.toLowerCase(), @@ -493,7 +493,7 @@ class _Step2ViewState extends ConsumerState { text: "Choose from Stack", onTap: () { try { - final coin = Coins.enabled.firstWhere( + final coin = AppConfig.coins.firstWhere( (e) => e.ticker.toLowerCase() == model.sendTicker.toLowerCase(), diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index d7438668e..b98750816 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -26,7 +26,6 @@ import 'package:stackwallet/pages/send_view/sub_widgets/building_transaction_dia import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; @@ -73,7 +72,7 @@ class _Step4ViewState extends ConsumerState { bool _isWalletCoinAndHasWallet(String ticker, WidgetRef ref) { try { - final coin = Coins.getCryptoCurrencyForTicker(ticker); + final coin = AppConfig.getCryptoCurrencyForTicker(ticker); return ref .read(pWallets) .wallets @@ -851,8 +850,8 @@ class _Step4ViewState extends ConsumerState { .useMaterialPageRoute, builder: (BuildContext context) { - final coin = - Coins.enabled.firstWhere( + final coin = AppConfig.coins + .firstWhere( (e) => e.ticker .toLowerCase() == diff --git a/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart b/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart index 3e1f2c2d8..c4d089b55 100644 --- a/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart +++ b/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart @@ -12,11 +12,11 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/exchange/response_objects/estimate.dart'; import 'package:stackwallet/providers/exchange/exchange_form_state_provider.dart'; import 'package:stackwallet/providers/global/locale_provider.dart'; import 'package:stackwallet/services/exchange/exchange.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_formatter.dart'; @@ -26,7 +26,6 @@ import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/animated_text.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; @@ -94,7 +93,7 @@ class _ExchangeOptionState extends ConsumerState { int decimals; try { - decimals = Coins.getCryptoCurrencyForTicker( + decimals = AppConfig.getCryptoCurrencyForTicker( receivingCurrency.ticker, ).fractionDigits; } catch (_) { @@ -113,7 +112,7 @@ class _ExchangeOptionState extends ConsumerState { CryptoCurrency? coin; try { - coin = Coins.getCryptoCurrencyForTicker( + coin = AppConfig.getCryptoCurrencyForTicker( receivingCurrency.ticker, ); } catch (_) { diff --git a/lib/pages/exchange_view/trade_details_view.dart b/lib/pages/exchange_view/trade_details_view.dart index 8d0a989e0..93cf4cfd2 100644 --- a/lib/pages/exchange_view/trade_details_view.dart +++ b/lib/pages/exchange_view/trade_details_view.dart @@ -17,6 +17,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/exchange/change_now/exchange_transaction_status.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; import 'package:stackwallet/models/isar/stack_theme.dart'; @@ -33,7 +34,6 @@ import 'package:stackwallet/services/exchange/exchange.dart'; import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; import 'package:stackwallet/services/exchange/simpleswap/simpleswap_exchange.dart'; import 'package:stackwallet/services/exchange/trocador/trocador_exchange.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; @@ -88,9 +88,9 @@ class _TradeDetailsViewState extends ConsumerState { bool isStackCoin(String ticker) { try { try { - Coins.getCryptoCurrencyForTicker(ticker); + AppConfig.getCryptoCurrencyForTicker(ticker); } catch (_) {} - Coins.getCryptoCurrencyByPrettyName(ticker); + AppConfig.getCryptoCurrencyByPrettyName(ticker); return true; } on ArgumentError catch (_) { return false; @@ -279,11 +279,11 @@ class _TradeDetailsViewState extends ConsumerState { onPressed: () { CryptoCurrency coin; try { - coin = Coins.getCryptoCurrencyForTicker( + coin = AppConfig.getCryptoCurrencyForTicker( trade.payInCurrency, ); } catch (_) { - coin = Coins.getCryptoCurrencyByPrettyName( + coin = AppConfig.getCryptoCurrencyByPrettyName( trade.payInCurrency, ); } @@ -379,7 +379,8 @@ class _TradeDetailsViewState extends ConsumerState { builder: (context) { String text; try { - final coin = Coins.getCryptoCurrencyForTicker( + final coin = + AppConfig.getCryptoCurrencyForTicker( trade.payInCurrency, ); final amount = sendAmount.toAmount( @@ -628,7 +629,7 @@ class _TradeDetailsViewState extends ConsumerState { text: "View transaction", onTap: () { final CryptoCurrency coin = - Coins.getCryptoCurrencyForTicker( + AppConfig.getCryptoCurrencyForTicker( trade.payInCurrency, ); @@ -1381,11 +1382,11 @@ class _TradeDetailsViewState extends ConsumerState { onPressed: () { CryptoCurrency coin; try { - coin = Coins.getCryptoCurrencyForTicker( + coin = AppConfig.getCryptoCurrencyForTicker( trade.payInCurrency, ); } catch (_) { - coin = Coins.getCryptoCurrencyByPrettyName( + coin = AppConfig.getCryptoCurrencyByPrettyName( trade.payInCurrency, ); } diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart index 929175498..4e01118af 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart @@ -5,7 +5,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart'; import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; @@ -44,7 +44,7 @@ class ManageCoinUnitsView extends ConsumerWidget { prefsChangeNotifierProvider.select((value) => value.showTestNetCoins), ); - final _coins = Coins.enabled + final _coins = AppConfig.coins .where((e) => e is! Firo && e.network != CryptoCurrencyNetwork.test) .toList(); diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart index 02a8a6799..5849b7987 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart @@ -15,7 +15,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart'; import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; @@ -37,7 +37,7 @@ class ManageNodesView extends ConsumerStatefulWidget { } class _ManageNodesViewState extends ConsumerState { - List _coins = [...Coins.enabled]; + List _coins = [...AppConfig.coins]; @override void initState() { diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart index 9e1acb9f2..446d1527c 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart @@ -16,6 +16,7 @@ import 'dart:typed_data'; import 'package:frostdart/frostdart.dart' as frost; import 'package:isar/isar.dart'; import 'package:stack_wallet_backup/stack_wallet_backup.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/db/isar/main_db.dart'; import 'package:stackwallet/models/exchange/change_now/exchange_transaction.dart'; @@ -33,7 +34,6 @@ import 'package:stackwallet/services/trade_notes_service.dart'; import 'package:stackwallet/services/trade_sent_from_stack_service.dart'; import 'package:stackwallet/services/trade_service.dart'; import 'package:stackwallet/services/wallets.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; @@ -774,7 +774,7 @@ abstract class SWB { return false; } - final coin = Coins.getCryptoCurrencyFor( + final coin = AppConfig.getCryptoCurrencyFor( walletbackup['coinName'] as String, ); @@ -1036,7 +1036,7 @@ abstract class SWB { for (final node in primaryNodes) { try { await nodeService.setPrimaryNodeFor( - coin: Coins.getCryptoCurrencyByPrettyName( + coin: AppConfig.getCryptoCurrencyByPrettyName( node['coinName'] as String, ), node: nodeService.getNodeById(id: node['id'] as String)!, @@ -1226,7 +1226,7 @@ abstract class SWB { for (final node in primaryNodes) { try { await nodeService.setPrimaryNodeFor( - coin: Coins.getCryptoCurrencyByPrettyName( + coin: AppConfig.getCryptoCurrencyByPrettyName( node['coinName'] as String, ), node: nodeService.getNodeById(id: node['id'] as String)!, diff --git a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart index f94e52187..3b24a782b 100644 --- a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart +++ b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart @@ -22,7 +22,7 @@ import 'package:stackwallet/providers/db/main_db_provider.dart'; import 'package:stackwallet/providers/global/address_book_service_provider.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/ui/address_book_providers/address_book_filter_provider.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/constants.dart'; @@ -98,7 +98,7 @@ class _DesktopAddressBook extends ConsumerState { ref.refresh(addressBookFilterProvider); // if (widget.coin == null) { - final coins = Coins.enabled.toList(); + final coins = AppConfig.coins.toList(); coins.removeWhere( (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, ); diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index c144f72ed..4c3f378ac 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -28,7 +28,6 @@ import 'package:stackwallet/providers/global/trades_service_provider.dart'; import 'package:stackwallet/route_generator.dart'; import 'package:stackwallet/services/exchange/exchange_response.dart'; import 'package:stackwallet/services/notifications_api.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/assets.dart'; @@ -194,7 +193,7 @@ class _StepScaffoldState extends ConsumerState { void sendFromStack() { final trade = ref.read(desktopExchangeModelProvider)!.trade!; final address = trade.payInAddress; - final coin = Coins.getCryptoCurrencyForTicker(trade.payInCurrency); + final coin = AppConfig.getCryptoCurrencyForTicker(trade.payInCurrency); final amount = Decimal.parse(trade.payInAmount).toAmount( fractionDigits: coin.fractionDigits, ); diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart index ae5b46b1f..cf4799255 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart @@ -11,13 +11,13 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/contact_address_entry.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart'; import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart'; import 'package:stackwallet/providers/exchange/exchange_send_from_wallet_id_provider.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/constants.dart'; @@ -59,7 +59,7 @@ class _DesktopStep2State extends ConsumerState { bool isStackCoin(String ticker) { try { - Coins.getCryptoCurrencyForTicker(ticker); + AppConfig.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; @@ -68,7 +68,7 @@ class _DesktopStep2State extends ConsumerState { void selectRecipientAddressFromStack() async { try { - final coin = Coins.getCryptoCurrencyForTicker( + final coin = AppConfig.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.receiveTicker, ); @@ -101,7 +101,7 @@ class _DesktopStep2State extends ConsumerState { void selectRefundAddressFromStack() async { try { - final coin = Coins.getCryptoCurrencyForTicker( + final coin = AppConfig.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.sendTicker, ); @@ -131,7 +131,7 @@ class _DesktopStep2State extends ConsumerState { } void selectRecipientFromAddressBook() async { - final coin = Coins.getCryptoCurrencyForTicker( + final coin = AppConfig.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.receiveTicker, ); @@ -178,7 +178,7 @@ class _DesktopStep2State extends ConsumerState { } void selectRefundFromAddressBook() async { - final coin = Coins.getCryptoCurrencyForTicker( + final coin = AppConfig.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.sendTicker, ); diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart index 0c7841c3c..4cd1e98d7 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart @@ -12,10 +12,10 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart'; import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_item.dart'; import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/widgets/rounded_container.dart'; @@ -37,7 +37,7 @@ class _DesktopStep4State extends ConsumerState { bool _isWalletCoinAndHasWallet(String ticker) { try { - final coin = Coins.getCryptoCurrencyForTicker(ticker); + final coin = AppConfig.getCryptoCurrencyForTicker(ticker); return ref .read(pWallets) .wallets diff --git a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart index 623aacdc4..9c00ead29 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart @@ -14,7 +14,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; @@ -39,7 +39,7 @@ class DesktopManageBlockExplorersDialog extends ConsumerWidget { prefsChangeNotifierProvider.select((value) => value.showTestNetCoins), ); - final coins = Coins.enabled + final coins = AppConfig.coins .where( (e) => showTestNet || e.network == CryptoCurrencyNetwork.main, ) diff --git a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart index 6c0537618..f70032049 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart @@ -16,7 +16,7 @@ import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; @@ -39,7 +39,7 @@ class NodesSettings extends ConsumerStatefulWidget { } class _NodesSettings extends ConsumerState { - List _coins = [...Coins.enabled]; + List _coins = [...AppConfig.coins]; late final TextEditingController searchNodeController; late final FocusNode searchNodeFocusNode; diff --git a/lib/services/buy/simplex/simplex_api.dart b/lib/services/buy/simplex/simplex_api.dart index 3eec5d140..d6d371756 100644 --- a/lib/services/buy/simplex/simplex_api.dart +++ b/lib/services/buy/simplex/simplex_api.dart @@ -12,6 +12,7 @@ import 'dart:async'; import 'dart:convert'; import 'package:decimal/decimal.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/buy/response_objects/crypto.dart'; import 'package:stackwallet/models/buy/response_objects/fiat.dart'; import 'package:stackwallet/models/buy/response_objects/order.dart'; @@ -19,7 +20,6 @@ import 'package:stackwallet/models/buy/response_objects/quote.dart'; import 'package:stackwallet/networking/http.dart'; import 'package:stackwallet/services/buy/buy_response.dart'; import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/enums/fiat_enum.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; @@ -405,7 +405,7 @@ bool isStackCoin(String? ticker) { if (ticker == null) return false; try { - Coins.getCryptoCurrencyForTicker(ticker); + AppConfig.getCryptoCurrencyForTicker(ticker); return true; } on ArgumentError catch (_) { return false; diff --git a/lib/services/node_service.dart b/lib/services/node_service.dart index 8940964c9..7381ca66b 100644 --- a/lib/services/node_service.dart +++ b/lib/services/node_service.dart @@ -12,9 +12,9 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:http/http.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/default_nodes.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; @@ -31,7 +31,7 @@ class NodeService extends ChangeNotifier { }); Future updateDefaults() async { - for (final defaultNode in Coins.enabled.map( + for (final defaultNode in AppConfig.coins.map( (e) => e.defaultNode, )) { final savedNode = DB.instance @@ -39,7 +39,7 @@ class NodeService extends ChangeNotifier { if (savedNode == null) { // save the default node to hive only if no other nodes for the specific coin exist if (getNodesFor( - Coins.getCryptoCurrencyByPrettyName( + AppConfig.getCryptoCurrencyByPrettyName( defaultNode.coinName, ), ).isEmpty) { @@ -64,7 +64,8 @@ class NodeService extends ChangeNotifier { // check if a default node is the primary node for the crypto currency // and update it if needed - final coin = Coins.getCryptoCurrencyByPrettyName(defaultNode.coinName); + final coin = + AppConfig.getCryptoCurrencyByPrettyName(defaultNode.coinName); final primaryNode = getPrimaryNodeFor(currency: coin); if (primaryNode != null && primaryNode.id == defaultNode.id) { await setPrimaryNodeFor( @@ -205,7 +206,7 @@ class NodeService extends ChangeNotifier { bool shouldNotifyListeners, ) async { // check if the node being edited is the primary one; if it is, setPrimaryNodeFor coin - final coin = Coins.getCryptoCurrencyByPrettyName(editedNode.coinName); + final coin = AppConfig.getCryptoCurrencyByPrettyName(editedNode.coinName); final primaryNode = getPrimaryNodeFor(currency: coin); if (primaryNode?.id == editedNode.id) { await setPrimaryNodeFor( @@ -238,7 +239,7 @@ class NodeService extends ChangeNotifier { final map = jsonDecode(result as String); Logging.instance.log(map, level: LogLevel.Info); - for (final coin in Coins.enabled) { + for (final coin in AppConfig.coins) { final nodeList = List>.from( map["nodes"][coin.identifier] as List? ?? [], ); diff --git a/lib/services/notifications_service.dart b/lib/services/notifications_service.dart index 461b65ae0..b4097131e 100644 --- a/lib/services/notifications_service.dart +++ b/lib/services/notifications_service.dart @@ -11,6 +11,7 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart'; import 'package:stackwallet/exceptions/electrumx/no_such_transaction.dart'; @@ -21,7 +22,6 @@ import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/notifications_api.dart'; import 'package:stackwallet/services/trade_service.dart'; import 'package:stackwallet/services/wallets.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; @@ -129,7 +129,7 @@ class NotificationsService extends ChangeNotifier { for (final notification in _watchedTransactionNotifications) { try { final CryptoCurrency coin = - Coins.getCryptoCurrencyByPrettyName(notification.coinName); + AppConfig.getCryptoCurrencyByPrettyName(notification.coinName); final txid = notification.txid!; final wallet = Wallets.sharedInstance.getWallet(notification.walletId); diff --git a/lib/services/price.dart b/lib/services/price.dart index 4bc02113a..c602fd5f6 100644 --- a/lib/services/price.dart +++ b/lib/services/price.dart @@ -13,10 +13,10 @@ import 'dart:convert'; import 'package:decimal/decimal.dart'; import 'package:flutter/foundation.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/networking/http.dart'; import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/prefs.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; @@ -48,7 +48,7 @@ class PriceAPI { ) async { final Map map = {}; - for (final coin in Coins.enabled) { + for (final coin in AppConfig.coins) { final entry = data[coin]; if (entry == null) { map[coin.prettyName] = ["0", 0.0]; @@ -68,11 +68,11 @@ class PriceAPI { {}; // init with 0 final result = { - for (final coin in Coins.enabled) coin: Tuple2(Decimal.zero, 0.0), + for (final coin in AppConfig.coins) coin: Tuple2(Decimal.zero, 0.0), }; for (final entry in map.entries) { - result[Coins.getCryptoCurrencyByPrettyName( + result[AppConfig.getCryptoCurrencyByPrettyName( entry.key as String, )] = Tuple2( Decimal.parse(entry.value[0] as String), @@ -125,7 +125,7 @@ class PriceAPI { for (final map in coinGeckoData) { final String coinName = map["name"] as String; - final coin = Coins.getCryptoCurrencyByPrettyName(coinName); + final coin = AppConfig.getCryptoCurrencyByPrettyName(coinName); final price = Decimal.parse(map["current_price"].toString()); final change24h = map["price_change_percentage_24h"] != null diff --git a/lib/services/price_service.dart b/lib/services/price_service.dart index b8d652ff0..0aaede505 100644 --- a/lib/services/price_service.dart +++ b/lib/services/price_service.dart @@ -17,7 +17,7 @@ import 'package:stackwallet/db/isar/main_db.dart'; import 'package:stackwallet/models/isar/models/isar_models.dart'; import 'package:stackwallet/networking/http.dart'; import 'package:stackwallet/services/price.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; @@ -30,7 +30,7 @@ class PriceService extends ChangeNotifier { Timer? _timer; final Map> _cachedPrices = { - for (final coin in Coins.enabled) coin: Tuple2(Decimal.zero, 0.0), + for (final coin in AppConfig.coins) coin: Tuple2(Decimal.zero, 0.0), }; final Map> _cachedTokenPrices = {}; diff --git a/lib/services/wallets.dart b/lib/services/wallets.dart index b7f799fcb..67806b99e 100644 --- a/lib/services/wallets.dart +++ b/lib/services/wallets.dart @@ -18,7 +18,7 @@ import 'package:stackwallet/db/isar/main_db.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/notifications_service.dart'; import 'package:stackwallet/services/trade_sent_from_stack_service.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/utilities/logger.dart'; @@ -400,7 +400,7 @@ class Wallets { .where() .filter() .anyOf( - Coins.enabled.map((e) => e.identifier), + AppConfig.coins.map((e) => e.identifier), (q, element) => q.coinNameMatches(element), ) .findAll(); diff --git a/lib/services/wallets_service.dart b/lib/services/wallets_service.dart index d2a496956..1f7b3b17c 100644 --- a/lib/services/wallets_service.dart +++ b/lib/services/wallets_service.dart @@ -11,8 +11,8 @@ import 'dart:convert'; import 'package:flutter/material.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/utilities/logger.dart'; @Deprecated("Legacy support only. Do not use.") @@ -90,7 +90,7 @@ class WalletsService extends ChangeNotifier { mapped.removeWhere((name, dyn) { final jsonObject = Map.from(dyn as Map); try { - Coins.getCryptoCurrencyFor(jsonObject["coin"] as String); + AppConfig.getCryptoCurrencyFor(jsonObject["coin"] as String); return false; } catch (e, s) { Logging.instance.log( diff --git a/lib/supported_coins.dart b/lib/supported_coins.dart deleted file mode 100644 index 133ded94a..000000000 --- a/lib/supported_coins.dart +++ /dev/null @@ -1,73 +0,0 @@ -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; - -/// The supported coins. Eventually move away from the Coin enum -class Coins { - /// A List of enabled coins. - static List get enabled => all - .where( - (element) => AppConfig.supportedCoins.contains(element.runtimeType)) - .toList(); - - /// A List of all implemented coins. - static final List all = [ - Bitcoin(CryptoCurrencyNetwork.main), - BitcoinFrost(CryptoCurrencyNetwork.main), - Litecoin(CryptoCurrencyNetwork.main), - Bitcoincash(CryptoCurrencyNetwork.main), - Dogecoin(CryptoCurrencyNetwork.main), - Epiccash(CryptoCurrencyNetwork.main), - Ecash(CryptoCurrencyNetwork.main), - Ethereum(CryptoCurrencyNetwork.main), - Firo(CryptoCurrencyNetwork.main), - Monero(CryptoCurrencyNetwork.main), - Particl(CryptoCurrencyNetwork.main), - Peercoin(CryptoCurrencyNetwork.main), - Solana(CryptoCurrencyNetwork.main), - Stellar(CryptoCurrencyNetwork.main), - Tezos(CryptoCurrencyNetwork.main), - Wownero(CryptoCurrencyNetwork.main), - Namecoin(CryptoCurrencyNetwork.main), - Nano(CryptoCurrencyNetwork.main), - Banano(CryptoCurrencyNetwork.main), - Bitcoin(CryptoCurrencyNetwork.test), - BitcoinFrost(CryptoCurrencyNetwork.test), - Litecoin(CryptoCurrencyNetwork.test), - Bitcoincash(CryptoCurrencyNetwork.test), - Firo(CryptoCurrencyNetwork.test), - Dogecoin(CryptoCurrencyNetwork.test), - Stellar(CryptoCurrencyNetwork.test), - Peercoin(CryptoCurrencyNetwork.test), - ]; - - static CryptoCurrency getCryptoCurrencyFor(String coinIdentifier) => - all.firstWhere( - (e) => e.identifier == coinIdentifier, - ); - - static CryptoCurrency getCryptoCurrencyForTicker( - final String ticker, { - bool caseInsensitive = true, - }) { - final _ticker = caseInsensitive ? ticker.toLowerCase() : ticker; - return all.firstWhere( - caseInsensitive - ? (e) => e.ticker.toLowerCase() == _ticker && e is! FrostCurrency - : (e) => e.ticker == _ticker && e is! FrostCurrency, - ); - } - - /// Fuzzy logic. Use with caution!! - @Deprecated("dangerous") - static CryptoCurrency getCryptoCurrencyByPrettyName(final String prettyName) { - final name = prettyName.replaceAll(" ", "").toLowerCase(); - try { - return all.firstWhere( - (e) => e.identifier.toLowerCase() == name || e.prettyName == prettyName, - ); - } catch (_) { - throw Exception("getCryptoCurrencyByPrettyName($prettyName) failed!"); - } - } -} diff --git a/lib/utilities/prefs.dart b/lib/utilities/prefs.dart index a83cd802d..060118437 100644 --- a/lib/utilities/prefs.dart +++ b/lib/utilities/prefs.dart @@ -14,7 +14,7 @@ import 'package:flutter/cupertino.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/services/event_bus/events/global/tor_status_changed_event.dart'; import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/utilities/amount/amount_unit.dart'; import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; @@ -83,9 +83,10 @@ class Prefs extends ChangeNotifier { set lastUnlockedTimeout(int lastUnlockedTimeout) { if (_lastUnlockedTimeout != lastUnlockedTimeout) { DB.instance.put( - boxName: DB.boxNamePrefs, - key: "lastUnlockedTimeout", - value: lastUnlockedTimeout,); + boxName: DB.boxNamePrefs, + key: "lastUnlockedTimeout", + value: lastUnlockedTimeout, + ); _lastUnlockedTimeout = lastUnlockedTimeout; notifyListeners(); } @@ -93,7 +94,9 @@ class Prefs extends ChangeNotifier { Future _getLastUnlockedTimeout() async { return (DB.instance.get( - boxName: DB.boxNamePrefs, key: "lastUnlockedTimeout",)) as int? ?? + boxName: DB.boxNamePrefs, + key: "lastUnlockedTimeout", + )) as int? ?? 60; } @@ -106,7 +109,10 @@ class Prefs extends ChangeNotifier { set lastUnlocked(int lastUnlocked) { if (_lastUnlocked != lastUnlocked) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "lastUnlocked", value: lastUnlocked,); + boxName: DB.boxNamePrefs, + key: "lastUnlocked", + value: lastUnlocked, + ); _lastUnlocked = lastUnlocked; notifyListeners(); } @@ -114,7 +120,9 @@ class Prefs extends ChangeNotifier { Future _getLastUnlocked() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "lastUnlocked",) as int? ?? + boxName: DB.boxNamePrefs, + key: "lastUnlocked", + ) as int? ?? 0; } @@ -131,15 +139,18 @@ class Prefs extends ChangeNotifier { _currentNotificationId = 0; } await DB.instance.put( - boxName: DB.boxNamePrefs, - key: "currentNotificationId", - value: _currentNotificationId,); + boxName: DB.boxNamePrefs, + key: "currentNotificationId", + value: _currentNotificationId, + ); notifyListeners(); } Future _getCurrentNotificationIndex() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "currentNotificationId",) as int? ?? + boxName: DB.boxNamePrefs, + key: "currentNotificationId", + ) as int? ?? 0; } @@ -152,9 +163,10 @@ class Prefs extends ChangeNotifier { set walletIdsSyncOnStartup(List walletIdsSyncOnStartup) { if (_walletIdsSyncOnStartup != walletIdsSyncOnStartup) { DB.instance.put( - boxName: DB.boxNamePrefs, - key: "walletIdsSyncOnStartup", - value: walletIdsSyncOnStartup,); + boxName: DB.boxNamePrefs, + key: "walletIdsSyncOnStartup", + value: walletIdsSyncOnStartup, + ); _walletIdsSyncOnStartup = walletIdsSyncOnStartup; notifyListeners(); } @@ -162,7 +174,9 @@ class Prefs extends ChangeNotifier { Future> _getWalletIdsSyncOnStartup() async { final list = await DB.instance.get( - boxName: DB.boxNamePrefs, key: "walletIdsSyncOnStartup",) as List? ?? + boxName: DB.boxNamePrefs, + key: "walletIdsSyncOnStartup", + ) as List? ?? []; return List.from(list); } @@ -176,9 +190,10 @@ class Prefs extends ChangeNotifier { set syncType(SyncingType syncType) { if (_syncType != syncType) { DB.instance.put( - boxName: DB.boxNamePrefs, - key: "syncTypeIndex", - value: syncType.index,); + boxName: DB.boxNamePrefs, + key: "syncTypeIndex", + value: syncType.index, + ); _syncType = syncType; notifyListeners(); } @@ -186,7 +201,9 @@ class Prefs extends ChangeNotifier { Future _getSyncType() async { final int index = await DB.instance.get( - boxName: DB.boxNamePrefs, key: "syncTypeIndex",) as int? ?? + boxName: DB.boxNamePrefs, + key: "syncTypeIndex", + ) as int? ?? SyncingType.allWalletsOnStartup.index; return SyncingType.values[index]; } @@ -200,7 +217,10 @@ class Prefs extends ChangeNotifier { set wifiOnly(bool wifiOnly) { if (_wifiOnly != wifiOnly) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "wifiOnly", value: wifiOnly,); + boxName: DB.boxNamePrefs, + key: "wifiOnly", + value: wifiOnly, + ); _wifiOnly = wifiOnly; notifyListeners(); } @@ -221,9 +241,10 @@ class Prefs extends ChangeNotifier { set showFavoriteWallets(bool showFavoriteWallets) { if (_showFavoriteWallets != showFavoriteWallets) { DB.instance.put( - boxName: DB.boxNamePrefs, - key: "showFavoriteWallets", - value: showFavoriteWallets,); + boxName: DB.boxNamePrefs, + key: "showFavoriteWallets", + value: showFavoriteWallets, + ); _showFavoriteWallets = showFavoriteWallets; notifyListeners(); } @@ -231,7 +252,9 @@ class Prefs extends ChangeNotifier { Future _getShowFavoriteWallets() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "showFavoriteWallets",) as bool? ?? + boxName: DB.boxNamePrefs, + key: "showFavoriteWallets", + ) as bool? ?? true; } @@ -244,7 +267,10 @@ class Prefs extends ChangeNotifier { set language(String newLanguage) { if (_language != newLanguage) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "language", value: newLanguage,); + boxName: DB.boxNamePrefs, + key: "language", + value: newLanguage, + ); _language = newLanguage; notifyListeners(); } @@ -252,7 +278,9 @@ class Prefs extends ChangeNotifier { Future _getPreferredLanguage() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "language",) as String? ?? + boxName: DB.boxNamePrefs, + key: "language", + ) as String? ?? Language.englishUS.description; } @@ -265,7 +293,10 @@ class Prefs extends ChangeNotifier { set currency(String newCurrency) { if (currency != newCurrency) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "currency", value: newCurrency,); + boxName: DB.boxNamePrefs, + key: "currency", + value: newCurrency, + ); _currency = newCurrency; notifyListeners(); } @@ -273,7 +304,9 @@ class Prefs extends ChangeNotifier { Future _getPreferredCurrency() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "currency",) as String? ?? + boxName: DB.boxNamePrefs, + key: "currency", + ) as String? ?? "USD"; } @@ -327,7 +360,10 @@ class Prefs extends ChangeNotifier { set randomizePIN(bool randomizePIN) { if (_randomizePIN != randomizePIN) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "randomizePIN", value: randomizePIN,); + boxName: DB.boxNamePrefs, + key: "randomizePIN", + value: randomizePIN, + ); _randomizePIN = randomizePIN; notifyListeners(); } @@ -335,7 +371,9 @@ class Prefs extends ChangeNotifier { Future _getRandomizePIN() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "randomizePIN",) as bool? ?? + boxName: DB.boxNamePrefs, + key: "randomizePIN", + ) as bool? ?? false; } @@ -348,7 +386,10 @@ class Prefs extends ChangeNotifier { set useBiometrics(bool useBiometrics) { if (_useBiometrics != useBiometrics) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "useBiometrics", value: useBiometrics,); + boxName: DB.boxNamePrefs, + key: "useBiometrics", + value: useBiometrics, + ); _useBiometrics = useBiometrics; notifyListeners(); } @@ -356,7 +397,9 @@ class Prefs extends ChangeNotifier { Future _getUseBiometrics() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "useBiometrics",) as bool? ?? + boxName: DB.boxNamePrefs, + key: "useBiometrics", + ) as bool? ?? false; } @@ -390,7 +433,10 @@ class Prefs extends ChangeNotifier { set familiarity(int familiarity) { if (_familiarity != familiarity) { DB.instance.put( - boxName: DB.boxNamePrefs, key: "familiarity", value: familiarity,); + boxName: DB.boxNamePrefs, + key: "familiarity", + value: familiarity, + ); _familiarity = familiarity; notifyListeners(); } @@ -398,7 +444,9 @@ class Prefs extends ChangeNotifier { Future _getHasFamiliarity() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "familiarity",) as int? ?? + boxName: DB.boxNamePrefs, + key: "familiarity", + ) as int? ?? 0; } @@ -437,9 +485,10 @@ class Prefs extends ChangeNotifier { set showTestNetCoins(bool showTestNetCoins) { if (_showTestNetCoins != showTestNetCoins) { DB.instance.put( - boxName: DB.boxNamePrefs, - key: "showTestNetCoins", - value: showTestNetCoins,); + boxName: DB.boxNamePrefs, + key: "showTestNetCoins", + value: showTestNetCoins, + ); _showTestNetCoins = showTestNetCoins; notifyListeners(); } @@ -447,7 +496,9 @@ class Prefs extends ChangeNotifier { Future _getShowTestNetCoins() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "showTestNetCoins",) as bool? ?? + boxName: DB.boxNamePrefs, + key: "showTestNetCoins", + ) as bool? ?? false; } @@ -461,9 +512,10 @@ class Prefs extends ChangeNotifier { if (_isAutoBackupEnabled != isAutoBackupEnabled) { DB.instance .put( - boxName: DB.boxNamePrefs, - key: "isAutoBackupEnabled", - value: isAutoBackupEnabled,) + boxName: DB.boxNamePrefs, + key: "isAutoBackupEnabled", + value: isAutoBackupEnabled, + ) .then((_) { _isAutoBackupEnabled = isAutoBackupEnabled; notifyListeners(); @@ -473,7 +525,9 @@ class Prefs extends ChangeNotifier { Future _getIsAutoBackupEnabled() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "isAutoBackupEnabled",) as bool? ?? + boxName: DB.boxNamePrefs, + key: "isAutoBackupEnabled", + ) as bool? ?? false; } @@ -486,9 +540,10 @@ class Prefs extends ChangeNotifier { set autoBackupLocation(String? autoBackupLocation) { if (this.autoBackupLocation != autoBackupLocation) { DB.instance.put( - boxName: DB.boxNamePrefs, - key: "autoBackupLocation", - value: autoBackupLocation,); + boxName: DB.boxNamePrefs, + key: "autoBackupLocation", + value: autoBackupLocation, + ); _autoBackupLocation = autoBackupLocation; notifyListeners(); } @@ -496,7 +551,9 @@ class Prefs extends ChangeNotifier { Future _getAutoBackupLocation() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "autoBackupLocation",) as String?; + boxName: DB.boxNamePrefs, + key: "autoBackupLocation", + ) as String?; } // auto backup frequency type @@ -511,21 +568,24 @@ class Prefs extends ChangeNotifier { switch (backupFrequencyType) { case BackupFrequencyType.everyTenMinutes: DB.instance.put( - boxName: DB.boxNamePrefs, - key: "backupFrequencyType", - value: "10Min",); + boxName: DB.boxNamePrefs, + key: "backupFrequencyType", + value: "10Min", + ); break; case BackupFrequencyType.everyAppStart: DB.instance.put( - boxName: DB.boxNamePrefs, - key: "backupFrequencyType", - value: "onStart",); + boxName: DB.boxNamePrefs, + key: "backupFrequencyType", + value: "onStart", + ); break; case BackupFrequencyType.afterClosingAWallet: DB.instance.put( - boxName: DB.boxNamePrefs, - key: "backupFrequencyType", - value: "onWalletClose",); + boxName: DB.boxNamePrefs, + key: "backupFrequencyType", + value: "onWalletClose", + ); break; } _backupFrequencyType = backupFrequencyType; @@ -535,7 +595,9 @@ class Prefs extends ChangeNotifier { Future _getBackupFrequencyType() async { String? rate = await DB.instance.get( - boxName: DB.boxNamePrefs, key: "backupFrequencyType",) as String?; + boxName: DB.boxNamePrefs, + key: "backupFrequencyType", + ) as String?; rate ??= "10Min"; switch (rate) { case "10Min": @@ -558,9 +620,10 @@ class Prefs extends ChangeNotifier { set lastAutoBackup(DateTime? lastAutoBackup) { if (this.lastAutoBackup != lastAutoBackup) { DB.instance.put( - boxName: DB.boxNamePrefs, - key: "lastAutoBackup", - value: lastAutoBackup,); + boxName: DB.boxNamePrefs, + key: "lastAutoBackup", + value: lastAutoBackup, + ); _lastAutoBackup = lastAutoBackup; notifyListeners(); } @@ -568,7 +631,9 @@ class Prefs extends ChangeNotifier { Future _getLastAutoBackup() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "autoBackupFileUri",) as DateTime?; + boxName: DB.boxNamePrefs, + key: "autoBackupFileUri", + ) as DateTime?; } // auto backup @@ -581,9 +646,10 @@ class Prefs extends ChangeNotifier { if (_hideBlockExplorerWarning != hideBlockExplorerWarning) { DB.instance .put( - boxName: DB.boxNamePrefs, - key: "hideBlockExplorerWarning", - value: hideBlockExplorerWarning,) + boxName: DB.boxNamePrefs, + key: "hideBlockExplorerWarning", + value: hideBlockExplorerWarning, + ) .then((_) { _hideBlockExplorerWarning = hideBlockExplorerWarning; notifyListeners(); @@ -593,8 +659,9 @@ class Prefs extends ChangeNotifier { Future _getHideBlockExplorerWarning() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, - key: "hideBlockExplorerWarning",) as bool? ?? + boxName: DB.boxNamePrefs, + key: "hideBlockExplorerWarning", + ) as bool? ?? false; } @@ -608,9 +675,10 @@ class Prefs extends ChangeNotifier { if (_gotoWalletOnStartup != gotoWalletOnStartup) { DB.instance .put( - boxName: DB.boxNamePrefs, - key: "gotoWalletOnStartup", - value: gotoWalletOnStartup,) + boxName: DB.boxNamePrefs, + key: "gotoWalletOnStartup", + value: gotoWalletOnStartup, + ) .then((_) { _gotoWalletOnStartup = gotoWalletOnStartup; notifyListeners(); @@ -620,7 +688,9 @@ class Prefs extends ChangeNotifier { Future _getGotoWalletOnStartup() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "gotoWalletOnStartup",) as bool? ?? + boxName: DB.boxNamePrefs, + key: "gotoWalletOnStartup", + ) as bool? ?? false; } @@ -633,9 +703,10 @@ class Prefs extends ChangeNotifier { set startupWalletId(String? startupWalletId) { if (this.startupWalletId != startupWalletId) { DB.instance.put( - boxName: DB.boxNamePrefs, - key: "startupWalletId", - value: startupWalletId,); + boxName: DB.boxNamePrefs, + key: "startupWalletId", + value: startupWalletId, + ); _startupWalletId = startupWalletId; notifyListeners(); } @@ -643,7 +714,9 @@ class Prefs extends ChangeNotifier { Future _getStartupWalletId() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "startupWalletId",) as String?; + boxName: DB.boxNamePrefs, + key: "startupWalletId", + ) as String?; } // incognito mode off by default @@ -656,9 +729,10 @@ class Prefs extends ChangeNotifier { if (_externalCalls != externalCalls) { DB.instance .put( - boxName: DB.boxNamePrefs, - key: "externalCalls", - value: externalCalls,) + boxName: DB.boxNamePrefs, + key: "externalCalls", + value: externalCalls, + ) .then((_) { _externalCalls = externalCalls; notifyListeners(); @@ -668,7 +742,9 @@ class Prefs extends ChangeNotifier { Future _getHasExternalCalls() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "externalCalls",) as bool? ?? + boxName: DB.boxNamePrefs, + key: "externalCalls", + ) as bool? ?? true; } @@ -718,7 +794,10 @@ class Prefs extends ChangeNotifier { Future saveSignupEpoch(int signupEpoch) async { _signupEpoch = signupEpoch; await DB.instance.put( - boxName: DB.boxNamePrefs, key: "signupEpoch", value: _signupEpoch,); + boxName: DB.boxNamePrefs, + key: "signupEpoch", + value: _signupEpoch, + ); // notifyListeners(); } @@ -731,9 +810,10 @@ class Prefs extends ChangeNotifier { set enableCoinControl(bool enableCoinControl) { if (_enableCoinControl != enableCoinControl) { DB.instance.put( - boxName: DB.boxNamePrefs, - key: "enableCoinControl", - value: enableCoinControl,); + boxName: DB.boxNamePrefs, + key: "enableCoinControl", + value: enableCoinControl, + ); _enableCoinControl = enableCoinControl; notifyListeners(); } @@ -741,7 +821,9 @@ class Prefs extends ChangeNotifier { Future _getEnableCoinControl() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "enableCoinControl",) as bool? ?? + boxName: DB.boxNamePrefs, + key: "enableCoinControl", + ) as bool? ?? false; } @@ -754,9 +836,10 @@ class Prefs extends ChangeNotifier { set enableSystemBrightness(bool enableSystemBrightness) { if (_enableSystemBrightness != enableSystemBrightness) { DB.instance.put( - boxName: DB.boxNamePrefs, - key: "enableSystemBrightness", - value: enableSystemBrightness,); + boxName: DB.boxNamePrefs, + key: "enableSystemBrightness", + value: enableSystemBrightness, + ); _enableSystemBrightness = enableSystemBrightness; notifyListeners(); } @@ -764,7 +847,9 @@ class Prefs extends ChangeNotifier { Future _getEnableSystemBrightness() async { return await DB.instance.get( - boxName: DB.boxNamePrefs, key: "enableSystemBrightness",) as bool? ?? + boxName: DB.boxNamePrefs, + key: "enableSystemBrightness", + ) as bool? ?? false; } @@ -853,8 +938,10 @@ class Prefs extends ChangeNotifier { AmountUnit amountUnit(CryptoCurrency coin) => _amountUnits[coin] ?? AmountUnit.normal; - void updateAmountUnit( - {required CryptoCurrency coin, required AmountUnit amountUnit,}) { + void updateAmountUnit({ + required CryptoCurrency coin, + required AmountUnit amountUnit, + }) { if (this.amountUnit(coin) != amountUnit) { DB.instance.put( boxName: DB.boxNamePrefs, @@ -867,7 +954,7 @@ class Prefs extends ChangeNotifier { } Future _setAmountUnits() async { - for (final coin in Coins.enabled) { + for (final coin in AppConfig.coins) { final unitIndex = await DB.instance.get( boxName: DB.boxNamePrefs, key: "amountUnitFor${coin.identifier}", @@ -900,7 +987,7 @@ class Prefs extends ChangeNotifier { } Future _setMaxDecimals() async { - for (final coin in Coins.enabled) { + for (final coin in AppConfig.coins) { final decimals = await DB.instance.get( boxName: DB.boxNamePrefs, key: "maxDecimalsFor${coin.identifier}", diff --git a/lib/wallets/isar/models/wallet_info.dart b/lib/wallets/isar/models/wallet_info.dart index ed61ddede..f7a3692e0 100644 --- a/lib/wallets/isar/models/wallet_info.dart +++ b/lib/wallets/isar/models/wallet_info.dart @@ -1,9 +1,9 @@ import 'dart:convert'; import 'package:isar/isar.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/models/balance.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/supported_coins.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/isar_id_interface.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info_meta.dart'; @@ -96,7 +96,7 @@ class WalletInfo implements IsarId { } @ignore - CryptoCurrency get coin => Coins.getCryptoCurrencyFor(coinName); + CryptoCurrency get coin => AppConfig.getCryptoCurrencyFor(coinName); @ignore Balance get cachedBalance { @@ -407,7 +407,7 @@ class WalletInfo implements IsarId { this.cachedBalanceTertiaryString, this.otherDataJsonString, }) : assert( - Coins.enabled.map((e) => e.identifier).contains(coinName), + AppConfig.coins.map((e) => e.identifier).contains(coinName), ); WalletInfo copyWith({ @@ -464,7 +464,7 @@ class WalletInfo implements IsarId { Map jsonObject, AddressType mainAddressType, ) { - final coin = Coins.getCryptoCurrencyFor( + final coin = AppConfig.getCryptoCurrencyFor( jsonObject["coin"] as String, ); return WalletInfo( diff --git a/lib/wallets/isar/providers/all_wallets_info_provider.dart b/lib/wallets/isar/providers/all_wallets_info_provider.dart index 15ffaeb38..f2efcc090 100644 --- a/lib/wallets/isar/providers/all_wallets_info_provider.dart +++ b/lib/wallets/isar/providers/all_wallets_info_provider.dart @@ -4,7 +4,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; @@ -27,7 +27,7 @@ final pAllWalletsInfoByCoin = Provider((ref) { } final List<({CryptoCurrency coin, List wallets})> results = []; - for (final coin in Coins.enabled) { + for (final coin in AppConfig.coins) { if (map[coin] != null) { results.add(map[coin]!); } @@ -46,7 +46,7 @@ final _pAllWalletsInfo = ChangeNotifierProvider((ref) { .where() .filter() .anyOf( - Coins.enabled.map((e) => e.identifier), + AppConfig.coins.map((e) => e.identifier), (q, element) => q.coinNameMatches(element), ) .findAllSync(), @@ -71,7 +71,7 @@ class _WalletInfoWatcher extends ChangeNotifier { .where() .filter() .anyOf( - Coins.enabled.map((e) => e.identifier), + AppConfig.coins.map((e) => e.identifier), (q, element) => q.coinNameMatches(element), ) .findAll() diff --git a/lib/wallets/isar/providers/favourite_wallets_provider.dart b/lib/wallets/isar/providers/favourite_wallets_provider.dart index b09e94c95..889ac396b 100644 --- a/lib/wallets/isar/providers/favourite_wallets_provider.dart +++ b/lib/wallets/isar/providers/favourite_wallets_provider.dart @@ -4,7 +4,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; @@ -20,7 +20,7 @@ class _Watcher extends ChangeNotifier { _streamSubscription = isar.walletInfo .filter() .anyOf( - Coins.enabled.map((e) => e.identifier), + AppConfig.coins.map((e) => e.identifier), (q, element) => q.coinNameMatches(element), ) .isFavouriteEqualTo(isFavourite) @@ -47,7 +47,7 @@ final _wiProvider = ChangeNotifierProvider.family<_Watcher, bool>( isar.walletInfo .filter() .anyOf( - Coins.enabled.map((e) => e.identifier), + AppConfig.coins.map((e) => e.identifier), (q, element) => q.coinNameMatches(element), ) .isFavouriteEqualTo(isFavourite) diff --git a/lib/widgets/address_book_card.dart b/lib/widgets/address_book_card.dart index e1411a2fe..f7715410d 100644 --- a/lib/widgets/address_book_card.dart +++ b/lib/widgets/address_book_card.dart @@ -16,7 +16,7 @@ import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/models/isar/models/contact_entry.dart'; import 'package:stackwallet/pages/address_book_views/subviews/contact_popup.dart'; import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/assets.dart'; @@ -72,7 +72,7 @@ class _AddressBookCardState extends ConsumerState { final List coins = []; - for (final coin in Coins.enabled) { + for (final coin in AppConfig.coins) { if (contact.addresses.where((e) => e.coin == coin).isNotEmpty) { coins.add(coin); } diff --git a/lib/widgets/choose_coin_view.dart b/lib/widgets/choose_coin_view.dart index 3a0f2e1a6..a234d89ef 100644 --- a/lib/widgets/choose_coin_view.dart +++ b/lib/widgets/choose_coin_view.dart @@ -14,7 +14,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/constants.dart'; @@ -51,7 +51,7 @@ class ChooseCoinView extends ConsumerStatefulWidget { } class _ChooseCoinViewState extends ConsumerState { - List _coins = [...Coins.enabled]; + List _coins = [...AppConfig.coins]; @override void initState() { diff --git a/pubspec.yaml b/pubspec.yaml index c9a84bb2d..268fe5e9e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ -name: stackwallet -description: Stack Wallet +name: PLACEHOLDER +description: PLACEHOLDER # The following defines the version and build number for your application. # A version number is three numbers separated by dots, like 1.2.43 diff --git a/scripts/app_config/configure_duo.sh b/scripts/app_config/configure_duo.sh deleted file mode 100755 index 3d0792133..000000000 --- a/scripts/app_config/configure_duo.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -set -x -e - -# Configure files for Duo. -ORIGINAL_PUBSPEC_NAME="stackwallet" -NEW_PUBSPEC_NAME="stackduo" - -export ORIGINAL_NAME="Stack Wallet" -export ORIGINAL_APP_ID="com.cypherstack.stackwallet" - -export NEW_NAME="Stack Duo" -export NEW_APP_ID="com.cypherstack.stackduo" - -# String replacements. -if [[ "$(uname)" == 'Darwin' ]]; then - # macos specific sed - sed -i '' 's/Wallet/Duo/g' ../../lib/app_config.dart - sed -i '' "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../pubspec.yaml - sed -i '' "s/${ORIGINAL_PUBSPEC_NAME}/${NEW_PUBSPEC_NAME}/g" ../../pubspec.yaml -else - sed -i 's/Wallet/Duo/g' ../../lib/app_config.dart - sed -i "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../pubspec.yaml - sed -i "s/${ORIGINAL_PUBSPEC_NAME}/${NEW_PUBSPEC_NAME}/g" ../../pubspec.yaml -fi diff --git a/scripts/app_config/configure_stack_duo.sh b/scripts/app_config/configure_stack_duo.sh new file mode 100755 index 000000000..c910deef8 --- /dev/null +++ b/scripts/app_config/configure_stack_duo.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +set -x -e + +# Configure files for Duo. + +export ORIGINAL_NAME="Stack Wallet" +export ORIGINAL_APP_ID="com.cypherstack.stackwallet" + +export NEW_NAME="Stack Duo" +export NEW_APP_ID="com.cypherstack.stackduo" + +PUBSPEC_FILE="${APP_PROJECT_ROOT_DIR}/pubspec.yaml" +PUBSPEC_NAME="stackduo" +PUBSPEC_DESC="Stack Duo" + +# String replacements. +if [[ "$(uname)" == 'Darwin' ]]; then + # macos specific sed + sed -i '' "s/name: PLACEHOLDER/name: ${PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" + sed -i '' "s/description: PLACEHOLDER/description: ${PUBSPEC_DESC}/g" "${PUBSPEC_FILE}" +else + sed -i "s/name: PLACEHOLDER/name: ${PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" + sed -i "s/description: PLACEHOLDER/description: ${PUBSPEC_DESC}/g" "${PUBSPEC_FILE}" +fi + +APP_CONFIG_DART_FILE="${APP_PROJECT_ROOT_DIR}/lib/app_config.g.dart" +rm -f "$APP_CONFIG_DART_FILE" +cat << EOF > "$APP_CONFIG_DART_FILE" +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'app_config.dart'; + +const _prefix = "Stack"; +const _separator = " "; +const _suffix = "Duo"; + +final List _supportedCoins = List.unmodifiable([ + Bitcoin(CryptoCurrencyNetwork.main), + Monero(CryptoCurrencyNetwork.main), + Bitcoin(CryptoCurrencyNetwork.test), +]); + +EOF \ No newline at end of file diff --git a/scripts/app_config/configure_stack_wallet.sh b/scripts/app_config/configure_stack_wallet.sh new file mode 100755 index 000000000..2f698ba6c --- /dev/null +++ b/scripts/app_config/configure_stack_wallet.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +set -x -e + +# Configure files for Stack Wallet. + +# currently unused +#export APP_NAME="Stack Wallet" +#export APP_ID="com.cypherstack.stackwallet" + +PUBSPEC_FILE="${APP_PROJECT_ROOT_DIR}/pubspec.yaml" +PUBSPEC_NAME="stackwallet" +PUBSPEC_DESC="Stack Wallet" + +# String replacements. +if [[ "$(uname)" == 'Darwin' ]]; then + # macos specific sed + sed -i '' "s/name: PLACEHOLDER/name: ${PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" + sed -i '' "s/description: PLACEHOLDER/description: ${PUBSPEC_DESC}/g" "${PUBSPEC_FILE}" +else + sed -i "s/name: PLACEHOLDER/name: ${PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" + sed -i "s/description: PLACEHOLDER/description: ${PUBSPEC_DESC}/g" "${PUBSPEC_FILE}" +fi + + + +APP_CONFIG_DART_FILE="${APP_PROJECT_ROOT_DIR}/lib/app_config.g.dart" +rm -f "$APP_CONFIG_DART_FILE" +cat << EOF > "$APP_CONFIG_DART_FILE" +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'app_config.dart'; + +const _prefix = "Stack"; +const _separator = " "; +const _suffix = "Wallet"; + +final List _supportedCoins = List.unmodifiable([ + Bitcoin(CryptoCurrencyNetwork.main), + BitcoinFrost(CryptoCurrencyNetwork.main), + Litecoin(CryptoCurrencyNetwork.main), + Bitcoincash(CryptoCurrencyNetwork.main), + Dogecoin(CryptoCurrencyNetwork.main), + Epiccash(CryptoCurrencyNetwork.main), + Ecash(CryptoCurrencyNetwork.main), + Ethereum(CryptoCurrencyNetwork.main), + Firo(CryptoCurrencyNetwork.main), + Monero(CryptoCurrencyNetwork.main), + Particl(CryptoCurrencyNetwork.main), + Peercoin(CryptoCurrencyNetwork.main), + Solana(CryptoCurrencyNetwork.main), + Stellar(CryptoCurrencyNetwork.main), + Tezos(CryptoCurrencyNetwork.main), + Wownero(CryptoCurrencyNetwork.main), + Namecoin(CryptoCurrencyNetwork.main), + Nano(CryptoCurrencyNetwork.main), + Banano(CryptoCurrencyNetwork.main), + Bitcoin(CryptoCurrencyNetwork.test), + BitcoinFrost(CryptoCurrencyNetwork.test), + Litecoin(CryptoCurrencyNetwork.test), + Bitcoincash(CryptoCurrencyNetwork.test), + Firo(CryptoCurrencyNetwork.test), + Dogecoin(CryptoCurrencyNetwork.test), + Stellar(CryptoCurrencyNetwork.test), + Peercoin(CryptoCurrencyNetwork.test), +]); + +EOF \ No newline at end of file diff --git a/scripts/build_app.sh b/scripts/build_app.sh index 9b1a20158..5d953e9b6 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -42,6 +42,8 @@ else fi if printf '%s\0' "${APP_NAMED_IDS[@]}" | grep -Fxqz -- "${APP_NAMED_ID}"; then + # shellcheck disable=SC1090 + source "${APP_PROJECT_ROOT_DIR}/scripts/app_config/configure_${APP_NAMED_ID}.sh" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/update_version.sh" -v "${APP_VERSION_STRING}" -b "${APP_BUILD_NUMBER}" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/link_assets.sh" "${APP_NAMED_ID}" else @@ -52,7 +54,6 @@ fi if [[ "$APP_NAMED_ID" = "stack_wallet" ]]; then ./build_all.sh elif [[ "$APP_NAMED_ID" = "stack_duo" ]]; then - "${APP_PROJECT_ROOT_DIR}/scripts/app_config/configure_duo.sh" ./build_all_duo.sh else echo "Invalid app id: ${APP_NAMED_ID}" diff --git a/test/services/node_service_test.dart b/test/services/node_service_test.dart index a33d3c982..5b4f1e635 100644 --- a/test/services/node_service_test.dart +++ b/test/services/node_service_test.dart @@ -4,7 +4,7 @@ import 'package:hive_test/hive_test.dart'; import 'package:stackwallet/db/hive/db.dart'; import 'package:stackwallet/models/node_model.dart'; import 'package:stackwallet/services/node_service.dart'; -import 'package:stackwallet/supported_coins.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; @@ -112,7 +112,7 @@ void main() { await service.updateDefaults(); expect( service.nodes.length, - Coins.enabled.map((e) => e.defaultNode).length, + AppConfig.coins.map((e) => e.defaultNode).length, ); expect(fakeStore.interactions, 0); }); @@ -205,7 +205,7 @@ void main() { final fakeStore = FakeSecureStorage(); final service = NodeService(secureStorageInterface: fakeStore); final nodes = service.nodes; - final defaults = Coins.enabled.map((e) => e.defaultNode).toList(); + final defaults = AppConfig.coins.map((e) => e.defaultNode).toList(); nodes.sort((a, b) => a.id.compareTo(b.id)); defaults.sort((a, b) => a.id.compareTo(b.id)); @@ -221,7 +221,7 @@ void main() { await service.add(nodeA, null, true); expect( service.nodes.length, - Coins.enabled.map((e) => e.defaultNode).length + 1, + AppConfig.coins.map((e) => e.defaultNode).length + 1, ); expect(fakeStore.interactions, 0); }); @@ -232,7 +232,7 @@ void main() { await service.add(nodeA, "some password", true); expect( service.nodes.length, - Coins.enabled.map((e) => e.defaultNode).length + 1, + AppConfig.coins.map((e) => e.defaultNode).length + 1, ); expect(fakeStore.interactions, 1); expect(fakeStore.writes, 1); @@ -290,7 +290,7 @@ void main() { expect( service.nodes.length, - Coins.enabled.map((e) => e.defaultNode).length + 2, + AppConfig.coins.map((e) => e.defaultNode).length + 2, ); expect( service.nodes.where((element) => element.id == nodeB.id).length, From 7fe110966542067797a60bbccf78d4bf1fb5dfef Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 22 May 2024 14:43:56 -0500 Subject: [PATCH 093/318] add duo theme bundles and images TODO script using test2_duo.json --- asset_sources/bundled_themes/duo/dark.zip | Bin 0 -> 604359 bytes asset_sources/bundled_themes/duo/light.zip | Bin 0 -> 563892 bytes .../icon/stack_duo/app_icon_alpha.png | Bin 0 -> 10161 bytes asset_sources/icon/stack_duo/icon.png | Bin 0 -> 12284 bytes assets/lottie/test2_duo.json | 1 + assets/lottie/{test2.json => test2_sw.json} | 0 lib/utilities/assets.dart | 2 +- pubspec.yaml | 2 +- scripts/app_config/stack_duo_assets.zip | Bin 1174913 -> 0 bytes 9 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 asset_sources/bundled_themes/duo/dark.zip create mode 100644 asset_sources/bundled_themes/duo/light.zip create mode 100644 asset_sources/icon/stack_duo/app_icon_alpha.png create mode 100644 asset_sources/icon/stack_duo/icon.png create mode 100644 assets/lottie/test2_duo.json rename assets/lottie/{test2.json => test2_sw.json} (100%) delete mode 100644 scripts/app_config/stack_duo_assets.zip diff --git a/asset_sources/bundled_themes/duo/dark.zip b/asset_sources/bundled_themes/duo/dark.zip new file mode 100644 index 0000000000000000000000000000000000000000..9823262a9dd969947e9e4cf662341f62d3e38160 GIT binary patch literal 604359 zcmb5Ub8u!|zpZ`8wylnBbnJ9&+qP}nNyq5ewr$&XI>{X;=Xv+u^_}lMb-1eLto6sL zYyE20s4=D#q`|<^0snd!VH)CFKEL5ygFOuPCIR8`0WRbppHe-a;)ercno+GNp+-c*wK6Ty^TQQqf&qU z1)wT&e)JHhCt}Ha>vMIs+w7_19eOt&XXmv?&%|x#^yA?R^UGdP(b*KRVe=NspNo)V z$M<8MXa`atceZvHE7~&4z=$ii1rC;kuBpzyt<(S0mvH-G&)>)?37gkjj_gg2nKhv z9qDwx1xZjMyzemWPn%R0rqPdLtCN9J^Z7VP0D=Pud_68Pn_UzlYNP4ufL1rCTA|rF zO67UGB)b4hxqdzPT&8V+got_(W_Xr!Uo;k1$*;V~4m`0fIBTNFBrjv|a?WC zV?Y~GYBnj+lpr(v%8h}ot_#9X*Qak^%FAub?%lR#KMdpL&Zph}Mi|QGHQz}~5(UY0 z{C6TG_iuoLG!*m)!Hw`V2mtUeUHqr?{zt`J!2$pT|AS&&J?V|@E$y7?EsgE%{%>^S ztH$Sy&k2A1N$bWSs}w@ohm?RbDb}KRn5jau<-waqw;e-jSsXq4`s|6cr919ab&?hj z2f8;12HfHI>&}XMj~;wFmwT}5=-JZOB^r6V{QCQHy4|{{`}?5S^I#|ab9(yx26zK> z;`DugKLOsmxchQ#eLFfi@e&R)hjxZnqQx@j_TArXXSb>^o@Rf3-ahAH@8^YQ>-&?$ z5k-r>QdJ*)Y%+Crem{EpzhKP^pCHQ1VEyTQt`PdeV+||SDNFt%*-VBie4&vhomwOF zK1HE=lt&7wyCrO>M8*-)YAa58TjqjGg_9G5(I|;NC^W3?C6*6oXC%Y=v_``+t{tgr z7+*ThE>DT5O>_UfY9W&SSVpHBlg$fm-acU!>?&a zsS}f>-+Zo%Nu^lozNx8@ulb1d8eyR0zltk(T7G&E&<*7)41)eB`;)84=#+$ZGo&j| zFk9hQteu?5^GQ6+rgWPIxpL+z@{WM7ieJgipl~9y6~!Y?+>>6l?1=BtwZ&5t-r|OT z13HbxfR|iD1>>>((t;f8r2EQYg?OO<+G3Eu$+%wN#8Ut)M|WCGNJ>BVM*I%HNv^!* zsx^$Tz{KM&Qiu&4K0b>j4_01d+Y;$BJ-{JC3uCEko`iR#u5L%;>}kS@%=T!ju)pW|VxcyJ1x;G5B3m8E=5W7qA7yMKmM|th zW&)EQUxU0O1ZxgCv=Pzmj;V~88e680@!PRzuS(Mp~{;-_CM2(SN z{dw;ZkBwsiXD3?7@MXq_-4Hl?nF8$f6|Rr08Np2`}{^9rjd+%|qTzW~uVd8l4y$&PDi}~Yr_J4Y! zZc*xEIXD3DFX#L3acmL!?{SRz@1FQCKh*!19sXCuqc8p+lKEd#11atHe~WnB|0UDN z^1l+FC(Hi-E%5^~K>+0cTdt9%%fG7sHy=;@pXYx{w^TC2xZ@9xJpFsAdlqMdf#;Hv zc~a4Y6!(a(6B0%;3xKR(hol0)CHUjnxWbB1TkTM`K=h7(7CQd!Zg>lm{ptJd^!t;s zw)bnl)&KRA(O;4zgh;RVdz`~9*?^nE?s`?3G*|2o=xBFH5 z{l-|k`|%R)|NZX&&A#*4`}KJE{pn5>{>>R?_szNR9h~j=5H9d}GP>LCXMEczu-y7K zc**%~*?SoA^7%*qiwV~6?Arf%_Pc9X&;Mn($SmW$OfyLR>a`QYoIw9F_2m-_h!PjY zeXQE}Zx5}U?j^@?lN>aEkwrtj{CPkM82gPdBPYtP0W$Wn=z+VzPvrB=$4`-4#k zwk3h*hd(^W?gAS&FAunVI$fOJHdnIm)_B`~Yed!^kCy@;#-FDdgr8axzE4@ZPL(S? zX7P0m?7S3@&eirM8rrAYkvPYX92?ea5wn)v3f3NtX7P5l=Uu(s$B$VBUF1Gu*Brvf z?9N`+gLbVrmVEr$K5%HkXcyT}7x+)~ZZ39Sv_O04@vz0PGA&jnOvj%68^dkOlHy*V zNh5;$=^Z8<4`r_-vD49FM|ah}Tek5^BUx!{$c15-nDyisu<1UF5V zdbipSPFi_3zVZdfCdbzDZQ)uI*z0nbL3GszFSB ze5KLe%mSy?YBJb?mh_07292c~#$=^Zt^7?jr&R+qR@gL;Wx5TTW&#bVn;x_njdNiW zX4_Q2*|H7+=O0c-RgJ5Lj=)xvXcs)+hMj1=q5|XGEYzgOl{q}cJp6BiS@q?b~7BwbG5+07P`{yR4}u)C%7ntXcV+A z3zaJdG#L&Wjz_ia5PgdTV-7-Wm*gq51?v!?8LK_!6t)cLWkB4@#uj!);L4Td)AfTb zH0M}%tHo?>R!in~Vkk^A&hqtaVlMLfE)oA~S7PNGZ&)0$xwEu!D>;$U>hh9#ZzsBKUCe z?j9cj2BqRn)$1uO9QC{N=*h?w(Go$AR#e(ZnzfrFcbq-=Jm~MV{1Ipti5ZC8u=?91DY94#~J8^8V&@T7AD-zYAX>C z!MTVU0oxk_?0?DGA`PLR%n0<0TlXHSF@RExaz--0(7;OU(V;jPj0MZEU|jK54G#(( zW;7YKcC(tO$Tm=|bl)ST#OMTQDaKTixjijb)`RLW*<4&(>3zy*rTZqYm^B+fQSmO3 zq<7PJz}YYzB}O;WR2^IC)nOgHxp*)yv6BYP^zuy_+t+v|alpc>{V39Y-nJ5s>OtRU za)q+ry$rB0A;UOf^Ud=#_ry`#E6qK^+DIxd!oT5|zl8k2r9ijpgKvc~3_^LAGI6am zKeYULr5(7kSjW$Lx*p+2@B{~rcar1F!86*^;0UqqE&&T?h3N6qB(l4SZJIQl-q{Fb zdu2!!l-ny%#3Q^Mz{vU18EWJoKEYD^JUBrw%N2Kvt1M~k#MQqw%_~^`_R)KicKO6}Vf*)|U7brx*ZBgwf0!SG&vTM(jmYG@K-f58;k3IEIhly=yI zE$63?Mrfv8RsKA33b0Do8y{I_>)4)v2wHG~)s}35fk;+H69-vBw#bD*U^xW*Wmko$uivC~YXD$0=h-tRTlDG9=23 zvh21py#zxWK2z~_4LmTDWjDrzV@NIiWL=*UTE(CPQLb0&(>7r257;DqTLSK;$nG@u z*gg(lY=+?0#U{}=$JK=1*y)Bk1%W^Y+9u5}iA$=vxDFGhRk?DcSjZ0%W}JlN1g)%E zyako3Qy6*rnxHY2VhQ*CxWTVOCMjn|=TM%{)uB>Iy58mB{Yl3P-2y(`!nRg?;e`ed zEO+ZgpzlFajyB7Q#7zFNzT$$ovf3`9+T6g0>FqHxfme&~D6nJC(jUe}c?Prc1*%%p z>(no2xT_D!zGJg%4>t)3{&R+Qb8S9~F42k8y&4_wHKbrB!I)qfE!11wIoY+h+`i7W z;Yq1)M8gLEiZzNI%2?Nc=1ILj&F*LDwdtHlwCy9wO00V}za}hy&AFTQD8$1!&pnm$ ztJtSf9Lu9{+GXV$`T&EbK}w8zvuXMqR+$}3^~MFR!Yo|zuLc%3(=I+E3mdUb$_H&* z#LP?tQ=DHe%!VpcxUGoSXnA(e8w_eMW}Er8A!wsCfgZQE4+<%#cj# zon(rAnZVdW=<%NK6F6No+RrKIS(L6$g+1QW&dv@=Dj>8PXGJHT<}G+I`r{_OrD#(; zJid7xU>PxPd2Hfq`nNBIJ_bD(%K*eVKB~*VZ>3%;Rw}Az8u=I{yLX$Yj-`r6EsdQB zZ${A7!UyPCM_TtCCY9Qotx~OFXsB>MEU4yVS9j89(fqc&lxJWxY2u2ci7U=jzX>;q zlSD*_hG9FpquDefj8y-*RPj*BCM)y)o5{@4yVxci!@dPiAJb+tJHxl7R`4~4eDK@! z*%c@oz@bCDxZH}f(KwEq{mFRdQc9JXgv`#i^5ks8^jCUeZlIRqE;a*ZMKVJ`ge9ib zfY}v>2hN38iw}fGt{<0aGGqnGg~RJ$t^yuz+6#6OwIjE@yH1m}T0!>GP?}*usVOtX zauRaW!{B=z)DxlN0O+1Azc@5rr>1=fwGy+Q2(~x_4oP=y!H3j{lmya2h@a|f<)3fL zdm`RB3+d-zP1q!lCSzB{Ud6{Xl5dGQR^B$)BfCV0cRjIFuV!hsVz*2pf0sB{%;XFA zRyHr8dbw4QD$#ap5SSe{cijwAQTlY>r>;e`_{9{t-t5KX)TA%GyPwNME%;unrElo9 z5hpiUFI*#}8{(U6*lwPz%z>_eR^3b=)1ArBx~CAT%F2Q5oQbG*$)+t+EePKCbD^%b z%Rq9#6SjK}^L&R(7HV7E&6ag}gNJ0^SX~C1O_K0Zr%jm{ai1M_{;FgKrc0=T)5EwU zOI?;HYuxr2hBNURw59FcVEu85;5hQs&^^Mk@@`}8cR*`{Q+WOJUmgzqO(PawjM%RX z&8nVrXb18K@2bvZa-qKjPU(YVqCNMDBG7GBo zF@Od#ykuHK1Cb*bc4>miX2jjDbr_Q?JD$I}CY*9Y)OolDj2;7R@{z1eu{2gO*2WB= z$~A9OAUGZ3Un+OTSL!wZ2GUJ#;Lcu+v9Y?tl+=bt65YeTmIbVWCueqa+>|rHt?%Bv zu_{G?#QVlKz#rLevZ0wm9^zQd#zAZm$pE!095oSaL<*t$b!VC-Q$Jr?1KZi}mf5We zeI=wlVKNRWuM~Q%M(wQ!&$NCOyuex&zK1g)_uIx~T5^4JECm84sOLDAg8xFIirqGi z!V2{xI>(y;Uh}24db3`6pa(y~`f>V^=n~pPcJ5sRS>gMv=HMg{LgZOtn3Lky6QG)C zp*O91vJ#`dCSQek2a*vogf9iU%9&N!_#|p=A9KJY9y(j}+7M)h)21h~MzjryiY7mD zu&V(G)yRd?Ajl{o$&x(gfXvwhe~)Wp+^l#|=okEbd{h1MvHx`1`*9xs{owx3!uOWr zD%ACJ|CVnIckn)a_v>x8_xmaD>(P3sDMDm8f^49Nwz4cFKY~S%bvL%c2;tH4hCyn#nDgShF(0Mcm)OqVBUNcYjJV(sAIX~@S zpt1D$3AP$Vs0)k+rb5lZtglwk8{8y6@Rt-&sQJ4#}$7mtF5Vc-7T$yy6Z@>F@X+h^Nq@VxW!_%ni6M4OXON2-+T?@ZF(Hv8XItEQzfE(TI2n*Tib; zM*>Uv1KpnCg|T-$em0;e?hqx5JJjM2wKPSM% z6$c3IN-@JK9cg0+TlmVl>)KKH=*_0KCK+wS3s`db3x7X=q!)BAq9C@93vzbUPA((m zgB@T-^c~Dn*j&L`kQ@D!FyJ(d>bHkp1Px<%*@JC1URW598h5wmmff|n7tw(V)XlI} z7N-)nT;wxjJ4Id?JhXYn4Uq2}jEP-oLdi%BgvL-t*u$z*14{&bf#n@zGLt^u+oUTu z!yG^r_I-IWkaoWcDzgVm%RBBCVmDs{eEm{}$=^0G?Z0F>fV@mMRQE77P-J>cKRy&X z8WT3Q>OI$koFLj)1T9dQ1R5oCtpg8m2EB z;RmSi`587I$Xh1Mqfj=mC58fw49u<^+oH(U#aO5S#(}M1a1TmORGi6Re0kI7Y38#f z%Xyoq^8FzvmuN^ZpnSmTchsMLPqRq}wGh#;uKVrQ80d@OA=XV5<8 zx|sEJ4iW>A1Mjoew%(g;ta*6sz+j;*MDx6DfJCq`=__<|UsDeBhe61-Cpgd4z+5zp zn4}Q^0vQ^FZG^}9uWhQI%+M^h_R;2v*Cwa`JIT-H+s~l3Hi7SB0e`mh*INIV_}=eZ zfv=lgzxU_wx6$3No8FJh@3(tK|CeW??}zYzHvT?WdtV3jWu(BzuHuLWe^;!@8`Sny zs>x3G?@4-#=}-^m4jlzfLrv=Gfq0N0t7#BM8a29ocCYp1?RDp^A}E>KCfxxG6_Aex zSu&S;y150~CB6>y?PTMxn&Oz?*vw_1vN0LMEV$0wJPoz7VFNqsqKXgD|UIZ~_L zp=igyBk>H;4&;Mp13ja#Oh1zAZH;U^%xB;O)&{WeqBXeJTwXuZ z0pa#5w^gfiL4p7=Ftj~VnrBtv08wjEQFcDb+ltS@O9(%3YfQ-(SF#Du6Cjsr&=WPL4ONw`V^T4-e&!zVW3RJ%-ck-AEpp zHqDo}U+EC@pP!@+cWr`}!QQZGCA&i$|p^aD=%)cQVtO;wg4a6mI5b@#!n7mX(0#B)0 zCY2Fl!7)dK;cZg%5r#){kPO+CM+kSna^imBhxWIN6GIEfM6>~(4gCj-f8KHvnJq4U zz5iwUg<&MvLav(sB&3BbjS92M&MbryTqdcik(i%VvFfblK2qJZ^Anf^z7GRIX^y0b z5vU9cG5C6NOB~N)sJGVBI(eJ7*jMJ>f3e0G|B^dzJSc{oK3xr;ZLY)vHe?!aS+3k` z0X`)d$CQDCmt*wa4Rj9!0h*ZF1A4>9<+}(JLv`nLLSB*ihW=K*tcVN!g`5Q0>5{5d z+K8MY7lw_ht8qjjGl_5w#YkGN*)RoH)s5S-sHK0M>0{!WbTd70xjoL?v=ftzWTIzd zu0?v^QBXDXMsAyqklqY%p*w@mKrEm#ds-KXltc=wZN!C!uIbp-bPt*hLu8I?)~=pT zJu%7o;`BcB+j`C!h3M0_q3|JgLU66|&0l;z9N67LXX&q-4zV6T%(ned%if&mxZ|{T zH$*_&l@+Dnq0t5dv}ve+18cw;PoURAw7b^g1NHSAC$ zh~Yf6qIk?m&4!#o2c!YskhToEVLmaFJ}B68#1!%uQizBlF-0r|NDm+#@HChwkFKAj zHC{>YF~1T773sm6|77-Nc-vP*D|C&^jg#+HMR}&BY z0Io}?q%MW=LC-3sqj8|be0XR$tvg_DncgULQzaAL>UcjAS^9>MY@wm@LYxA@bF zb&tTC;7*!5V~_n7CW@Cr4ClhSv>c+D&Xt8y!TwwGQL3bT0xE zbS@V@D2`H%Vvg-5=dRQe!1`TndVVuOn0bK(>x76XL4?+6Wu(5_&UCrV)5&wSzyj$K!#!-s*Zl9S2Ke{eJu^$OXDM+B|&ZDFZk0& zqqUjzyP&KC)i}4$Yd&~O0gfuPT&|-EV%B^#ovikHGL4Dcz#$24g=(Q$V#^|E4RVRMki+{}?B=%>qo^Ikxj>5UAI3@fMw3CNa6imo~hk}7*XIPPuj z)LKXLx4j>Y+wcS@)>(Q6)7>hFAMIQLYFYk{)qBPO4GW*NKcdq;NPgHh0V^gn5_m%7 zEZ9idUt<(a9-yfp9QHy?s9jkROe73zFdVvbow=V>!Izuu&GQd2+6!{`pFBmGUJp^L_q;JT`(C);3Ac50-m(oEAJ3DBQnJ4!N zYp6adj-#Cr$r%s+DCmVZ2EAqbB-a_v`I4t7CiH#F>A9T~YM6R5l?#!}G?{P@<4dkr zJ>_!i#R0Z0a}j-1`d?8L^_osAu^BBv!aFU7jW-$s zP^(5rSmG4DRiGk-I4h}$V3xFCMG<1cJe6#_-p9^Zs{}5iX3sf(NfUr1Y(VZa`^Nkd z+su2ttIy=1I1EQNkMwwkIb(NH9L~$6z!;;cM7I&^EKgiY29UTng2 z8gpR_LsXipN!r;^uaX&`l5k;tNhvuagR5*(-v35bnQxSWsZ-mknDL+C6`BNcq7sbV z0s~cew9*oTcTA4lWV3E14c!U;pdX9pPT&P7dvgbDUzz2qN9p8jT%jO)E6+go67-TD zs@;{=%gaXmwr{i1#GX8j3QakDX6_~;;_8~(!kqZCr*vuUY0QS81coESty--x!GHmrn~^ z#Dk;fm&Wz|^Rr*mAN*@yW`69N>sgt$4juI}R1FI`>QEGAs59kObNlL9Oa5+Zaw;r) z*@s&C%4d@whNdV1b4BsL?pEGbSFVm-Vm2Z=^18+9;(FqWmU*w@B<1IGqxJgB>irfU z5@v@_YxT@B;FEu{VkYZ82zFrILgj)#Bh}{lHid~J?T-JoZSgfvO`sw6%uwq+zLl;+ zxo1QN0T9#p+rxJ@ynBFHKbIAP<{kGI+3Bh-@a92`?%kulfjoJsa&JCyR!f>7{{=!K zPnJ5ZjLeqAc0CpF?_;--#IWE3rW3Q||FnX2rd6Pg6*mavX7Z^LvqluB@z&P=A~P&C zKo%y2+W`?-TE-mtGpNXYyjpavetn=`&OZwC%C1_Ts4!uO=UU;mwkq)WY~OMD^UZk) zGdnR-GF>&uLd{@z$$nrq?C1yIGSEiW%+zonDflP0c)0IWK^WNR#Vsw+ZuYy>-S>2o zm*2e6-#BY6<@W=x978}~J9s^9C&}v$VX9P^{!84zk~uBlLM{XuR?N_kI#Llg-A#T( zEQywx+s20kE6tz4{SVzXb2YMwB3xUbA-AM^(43)p)o8tZ7e8fbPZDh(`-+BsdhNFy zCkc5#rbUQ_C<5T~{e`TR6%`j{*D-)w>GAm<4IpK*r>s{rL`@s+lGIZn(>~VJ{3Fjc zX@ZDyRHCEOE;JOh`NU?!y$+Rf%0zv}K5+@$17uNryoJN-%rIbwx}=&HD7`(4w%CBS zq_!T%Sqvo1k9|f%47w6goahT?S@hFu*km|E-P|;+rk<=~QG9L-`^lJ*mV*YzLxol} z>em^CNhpZZM@1P9cS5L;I$AOd#xJ}z7XEu^7kjilKx&|EXQK%+03gvz=ATmktJgw% zKm3N3ygM0&rA?&l{!_xz1I2z^#5HiMgwK$k0lgjAqH ztmlnQpUq_`@ey~=7OkT=vc1W>kt8W&Ig{r8ki7$zzXbqqbt6*wElivL#kP&Wk*f>* zZqj3zwO|3pnFh9-o#N&ewk`Q$oUO!x+qz7S64Lxk_)0&m2 z!|H&98ZNqj6E^i%oeyyy#yR^M7gwUkVU|hv4uz&YR6ym(Axq3Gk{ceA9=YDVUfXzq zf#2p*Np4La)0R^^M%be#l27qZ651hX0PprKH0xtk4EDgRjbH;m=&!e#P`Lx-05Je= z=a#pcZsDJkXbmS7yxM|5POeqC1UWib@xE}U-mlj$2&6D4L!D!~ywzqqMq-K=xa0s+ z7^!Ue1T-360~rWR7nLorpl?5dT?Y}(f@xV0n+(j)$brA*&cm7{miV$k%H22dlRo_z zkQ5pk6bFC*;c#Ce;bVgaZdC1RZ4<4|SGsTEM3unUTn!&yoT4p-@u%h)GlwE2l4hXm#4J9wR^F1p6K^&~VyGsRKC4{!z?dWVO06Xi1pp^F^yFGYrJ zrAG!<$`zO-~#**wL- zYF*^T@GVtgEjyNx0iOn~O@0#XQoDx?^7h|5JX0W}a=BAuNs=KMVM%jMT8E5SlXQ0> zP#;5}fWl5EE=_bsZc6QrW{NhY!>R9?=k}`pe8mWcBH~pH9V?YU9x&%Z8$CX9Paqk& zi0k+M4w^U4C7N8wPUuM~W%4Drt}G@6-DtQUdf5-u7Yvv`XEsE+UBY5MZyLQp|JYhW ziGBkmHM!*@aXQ-TgB!df#RFVQn~qRh73+D_e!YrfF7QnggMq_v2I6hqeu7|aMczot z5+HKm^<{|~gi!^0VZ$e$@I4E+D`tPQ|rKUlGR$ z!%>Ar&P$dC9f|@yBeQ}S%zmOcM-e(0iFzUzz_`OZU(9xg`PHZb<$@LYM=2~oH!&K) zvH(0z@Hbt8#Xir^`QkB!VcGmM;vm)+JBz5TzNaIZnuzNexSq#PP@dsEb@S6fS-@|1 z(1=ct{QNZc$nO;SHX6v&zPcp8fIAlof0W7LOek7a3-#{}YQrmb0fK2QVezg_y4tzY zLoE>j26up%C&U&NHkD{(`$S*XI^*1`J9#KF5?<<{NPmxqz0v&anki`Y*FO-zqxos|w*A<+tK|~i`Ld|pQ{&@A1P?3IxD?E-2oG^4YFq-GE zM&-M34CY2(y>OAyo!k1!2>|T%tw_Ckb<2P~4N=~T>Y-?G>BL{7?(Erxc;^Zhl2p-O zZ%bd#qQQ5=oy9-}ro;{`p^V=``QZ#Qnb?uF##@Aw-WfzL9P#SGCos74*G6&@I9T#b znVf9K$UbgVTiYbfCCHXZ9c9LYO>3KAgRJq6mXvvSvq@&Ts}WRO%o50i!rcggW>KNp z*;p^vH_h3Kq=q3K;iK8rBj!hlg<2-SKr7HvP!tM`v64~#vXF>JW+qC}!N|z$7TA%X zwE=1NMPMI|y+x15M|FS{vXeg_E|9+EuY8Lti_=&^H$yTnv&k3`@=ILOXijRFt#32! zT|NP}3oZ=RpS8l11w}_f!c15M;?98!Sz-SzqH!&TnAllw9C{vTZ_#J4468>~5ux*) zAt?*fJYMUX;ud3Z^VQmAbUoM8YjeWM+U~6NJ@r18qtFkCQc!e_r6ka{T@~N-l z-7|lEUjz^CcUE~gciM+9$t*K%f}ynVcfOMIVtAOGh1C8-_G|8{8fNJYv zv_IwrvoC(14}n@~?;_COqS|Q5bPo`^h?Byp1f9}>fcBz@T_WV8oTW{IQf7!3hbp@x%Lgpu*m$Nu-tYBoQk!EsI+_St(` zovg37;zGNJ5fc2(d*tSJWVJXFmJ@;ROYgg9G^DDe0Rr(%Vc*MOrK4srzqvi{xV19#bv5>!9>7j4fXaaM| zns1Fe^G&{<>>Kt0#RoqN;9Z1yNSB8N^I6#{e<8Ec_4K(DQm3c3TeGc%GMh747^Z>k zTu?7?*_#Pm`09bII#Ar__IdLtuC_!X4pgEH!Hj;!?q}Z#5kvE;)!`*dCp#ud{VZ6& zY?P7dr$Zo;k;49Tx8B`3~Df|av%D1@8|p~N-1uzZLK3fu)@oyr;HSz?U?Wgxpp$-;lM=dnhY{dr zVsc#U^(*5Nl(Dfe8b^7HOu4QCz4;4?K_u+7dD6+Ug<@d3BzdqS2-;tM{WZookI0hZdxI`1Vk^hIb$vw-G7j5&`vg=8J1pQw{czU4^!?Gn14*Z8ts z4kIB1VD}2T1O}c~shF!>f*<E6#*{ECei`T>N#dWzVu%|J+e@k`VKG3(OB^ zyn`&DEWt&P7h?>tzO}*@{&bjj4k#K3U!Cw+39Qlpl>DM`tEv7Vwo`<6}%xY-y(=a4tzuytb6b^3?JtjeKN7}XqKOkFat^>KknZ^J# zioqx+4F5wDMJivoeb7U;B7<^DZ_fL<-b%SID1SQ@qvd!W^<7cA(0~LOsLsHD=@u5j zomb>QuaU@rPSgFfLW17B|Jzcm*Ci>Nb~kv5bYJ!jh`b9`UNX}KqQ#Kz5=8e55ojzT ziOoyFIw(uh+$Gp>ofRcW`97gQtV!lYZ!(g4<`N$VGUC84!Lcy27N7NanS+DUkyuEG ziP01}sk-GO)x5_25@LJ^4VuQ<3P|FK`xK>nH}kHJMYv5e7CvaHscsu9kO(Dy;H}lY zpWoM*@R^n`i2qLF5B%LrlR)msqDUIploO+IeuUWKs;A7zpQnlAN;8h(U6g_@mg%g@ zMpS^)T|sT(G(F+bOKC&ASOsgkRWV_TvQNnm8Z*=)JEtD`hEV7&(JSLIoN`6uO>J{|22DEtR2_3=ZZ3MhRwRds|BEj1wk z9wY}ca54n<(NC7pv-h;fgj=+(BD}%6&6Q*@GO_GW|pzCo28d+PsPVFNItMz7noJ=CLKEc83w$G|s%F+v7HYtZitXP;! zs*pNm=}y7z(7mBbGj=c*l?C#pahj;(^+CE+R^95yOL<1mkt1@-YnAoF z^nT*FFykxS9=tK-5cL>q9lU4nwv1;VSZ72MQm)T1J{WQp5_PqbUUE9zlV8mYL(|7& zs!X|lXSx_{D&I}=xM97(PB>&hOfB@~t|&f_7%k@V}jL6R1Uu6l@1EqbE=e zg1h~aY&q(}5)46=0VtENt%|x+w6dtVbJSVk)V56v0<+Hbz)R^eXm{Z+((YHh=8Kz- znuwCoO)WFSu~8ao5H*qF4EgJZaj;C~P4F_QOay`IYe&wH@)3%G~f5ZjPR{UfQy?TG} zUmvvnAp3Qi7TGNBiz=b^x8qbE19q;FW-yd?cH$FeX1_1s#xd4$C$*!*zzAhI&~8a8 z?=L>Nk<$w?S0l;gY)9qs6zyjFM0mq+7}y_bw!X(C;AHh5uYoOgb@_^l1}bL7Jz89^ zJ1Z1Lk@Sf_zqENh;rx~>ILSNEGSkwiGfz&@w8JJk;xH7WXmFVz{6W z*RpnSSteCyrRYv&_wwKEw*eN0J z+YQjwFdlxWx&-r$tBn5=lCL#aR4O?`|IxmG0;vNk2buKKB(c74h8VIzGHDQIBHvr_ zFWjDqQ=H!Jv*&c%Cd}sQJg=-l3#N)dZaTCh;-K#I`%l`r3oTBjC7WHy^E)+BxcNOyI^?Cw zkIskK9j4seVJx*ml-gEj4&6p*RiRO|H>)n)KN+2+D1>r)X_kBEKM<|=i*ZE6Drh@@ zm98}Nx29O{>7qIlpuXkth{I>I7DlPYvrA_&i-=u=|^XmQbEY4?shA*S9 zp|~25v07yZ-$Z>_RAbrTbG^>K`5^Z3B(L&(!@U|+iNojYEeft({O90m%zP(XAHm@r z*}O0ns*`xdI%wQrmBCcsP8h?8B3_m@np=GU-|S*A)w&Oz5e-q z!t1@y7THXKXDhshG>?XBBc0ne0xRBn2j42^+(qneamZl0hHjuH643|Dqb^ec{0Ozi zTb4J3)?xwO2#LaS7+jBN)!~r6HO`|7D?Yf0SbqBxKIZ`b`0RomKh%7C)|w$tq`UkN z)CFR?OzSh5za1qWb6&Uz%I6h_SG;6!59@6lr+TJrB?VE#0>C}1o!2`tyzE-WSFe2R zIE#5~=2%|-=wX#yY;4xL%kdcUW(sHM!BcM0uYD+N%L&YIO}3lo9xjzS4F7FNhBGvs znoZ+GH}Rqe<2O@t-;IH1<|z<0!msexl>XX=cN- z-#FM-yU^f$?h!8!qa%N0JRDi}o47xKQ$NFJ{S!i_3ta~fF47dgHrPa)3f+SP|N6#T z&Q2;>7c%3-)9SKyt0xu{eGw;k0lS|+xmb9tk-j9#GT*oeirgDm#QP-j<3@p<7wj-C zz~i0gakrWqFLE@KKsyJqn=!ouQ~{+S=2%dg!ZVDJ8#Nkt!cKU|hQ>D;{Dg}b=5;^} zA%uL$W%}Y6Ta0tpL?etk7UCRC6z(3M>rX>z=O$-X)mM z)H66g0j`FtoGR2V#yA>|BAY@y*n9{O~2KqV;2w_F(aNpwK~ca|(S#S9X{$JW5J|_P0mV{q9rBP2OQ-5I#{t^w;5< zGaN~mqMf9L3cM8gX>!D}qVYOP``@l0LsS=gUXSH{Eg!$MLl`Cuo}nCf3PIM*wtEy6 z%wgBa8!FWR(t%!S!{QX5*lZ1D=)Czs(I;-#s151)EOAkk^*KvC<%?^IHt8*yMumo@xakN1N`eiV=`}B}%D|4#P{?y9x)&akDB6XYmjT znoS~Mp=XYEn8-|^SA*n`8V>`qPVfO2k9VHVpL?d`Uxx;}`So*8CJ(5abU!w&I-bX_ zaE9zj9E#HYu!}71pv!AOW32~u$8ZXiF67yry5R(H!yU;X- zl6kOWj}>Z}a;DH{aUH7%zrd#u(e>aISX=<{$|+EnZ3d@0vIBr!`AQDZ4DBYdcZ}o{< z5uw0A4iG$xy$~Tpk^xZ*OeStGl7Y_EUc<`&UNiw?Wq?=5RBD4j0)FxiVrm__FMTBm z_(DZ+tIyF9!w(+7U|?O@mkP;$VG#JjQgE%W048(buOtB=lU@Wk)d zFT?}a>tm4+;3l5xqx(Yn2_}KwJv|=_?I*|yZuJ>6t!wa{XrR?aLZG~`C)ofzcqkX0 zJpYANpleOy6Y_kL72tsYEhqh zrNM*Z;8y?hATkgiL0xm!Sqn64dplAaoRy&7 zm<#%1F1WK3AXBn>gh}N)1wpTpwT*d$Pj&;&%9Equq(#Z+89UBY@OknVjFUR$gJ81@ ze}Si)Kj{a0b_`njX+8r)>Y~V#2eIzA`uJ`t5677`-*lJ)|A21q1W0iI*I6|m*k!)y z*n>!Riz>L?aYD^EU|sxSRoSrIgt0?cN);AfUa`ojzMjI`o5N*lrtw;f)0&bu!GEpS z^8<9+4uARckheu39P|DC3)uLLs1BW2s6@H*O)9V()~8>(cjHr;+>#WN^WKZf^gg_To4`LUArvfUp3akHh_(_s!$lOnx zt$cZux&M{L;`%Pa`6LFQI+dTKfY9j(eWgP^2pq1pxnA9!5Cu#6LRnE|?t^_EUjHuy z61VykA~y<)azt6@SH=yJtdLW>yy--fOWjYMav*|W!CAi0OB4m?p)L{}^(5%H)&G3I zwr1mBOA*aD&p*H?B2qUMf_c9E{`5_eJai5ElDQe3sxXh-F0Y^B7g;ao1ip6k#?02n z@^EqpnIAl%X}*4n8szM{jl&+I0^mv@Rh~Ld<<)Umk8!-c{`37Yk9;Xccid!Uq|%WR zNQwJp-rVNJ22KsSrQ(zy40}OSa2(p@W0u}u{`r2Nwi|H@3%5W@;X)G*<^eDhk7;n9 zCa7J`>s^QKu`N@k^K(hvUQWmDA}#qiXh@jm>m((`NlI>9Bwr{;pu_VylO0Bf)KqS8 zjZZEU%+-c)7F264t`I%mWV zK$IXjS%=6sR6J74@;Hb#=uAy2oPthlE|34tq1gXol&p1oYrpx75n)7^A`H>-1y3>fFoQtLdjI=}|g_pFRsOz(f zWrbZ@1h2t#f$&0E$B%WHg2j6k>oBTJJ`|9oCf(oselaZScr4z(>Q|NJ{$0;+LI}AZ z2}C5#>)+UBT2huj`Asy+dcPC#we|e==HBPUYclVDQV?pL`V<+DB|!Gm$7ewk63!??j4&o^l^2IwXp%2A(s% z9x>eME48XjH)NJe73JanZ7zIZDU!Q*SJ^{lTzgBLWuLoXyxxdqo_?9I1svYtmrGXJ znTRAeMD)wD-(Hf+6rNcdDa&2=C$Hai+3)WD@aQk^O?OAH-Tn5}R=QMCt}2hH`-9gP zPCRmNW7(e{{COfrmb;o|g&;3HORxLcgvFnY)D?m_{n;p21zn}8Oojqj9$xN#-BlY# zQ;VX5EW7V|`tyh>ElSwxD~McNmq5Abet&%O$9Hd@-`%`+&bqsi*=9kDs|061vC^h6*|-O~K<#Y^?i_b0E`7v8Ky ztQ`0fsbDS=s4BeEtv1~TPg<=fYnIE;DtHmulhD1$6>LvhE+TL5v|3+C$A-|!+>oMt zMSNiu$oyX4y%i&gm#eypOlKn0lPI$^i!N$b9fZ^58nQ{R!)v)+MqU&jI~awgisXxf zl;+85nmgnsEP5839_Si>5_UoVko~UO-PLH&kq;eV=<|d;N?nmx+3cH6`z)I2RP|k- z=+4zZLXM%0h#U{yy~aZjc$^;EI1*xif6|lPx=r~3XY1Y4D4JL7x8@744R4O%%Tz=7 zdNr%Nj*MggF61tIsE*)j5)PimDmYYyEB>r96b$rjFM1u}kIE*gUA%ruJW`(39uN z$fFO_Rzzqr-%uu$9tkB`Wo-N8j^lMVl}D3aWo0kQu+2J?b}X5tL)Mte?6*gDmg09T zCml39mWWB3I=WxbP~=)BFXy=(y-~FhS3N7}-rKC-@6+n@{R<1-7nV8rXs6b9a0`|L z3&FoXs?!&JXQBHEqB-vH$m>K}K}*j0l%5QBE{fxYh_1;KKyq29^t(~`&B9%r`I33R zSN}hWrsATB8524fq;)ES3?$^_!KEk#)mciB5Ri^lRoTqGKkiBo2y>Tg1A`F2U zST5VWTp!oRqwGtLxhW&Lgt(O3y`25_>BV)~%f+j&k@u&2(Qhu%=Rv%eNA$b(?XPP= zlj2fN^L8^Q=kcoSqU9*AN9!}>Dm=SEDd^YRlRvzv?9XmKfwK#F@*aYf%7y&!FcCeB zJ~6pPet(C2GC@+*bQd*MqK2X@DC~+nA~Gu$*M)BNKi{8Jm0y@BVM^oXT$TIBkR?u> zOZ&a9r>9-HCBM)}HhEznOQsvfC^IX!J-I0baNm$8TCMB67M~}RcPoBvrEf3T_!BekqWR|!3^z}c8 zD4(2@$c$vU(u3YXCc*o~!*H)JF!qg<@(VX;Cn*fMV-_<4(?0ZicgZuFMO8B zt1Z(1JLyKM%2i0&dwpPQ6u(I8m;$pv49PLSS`DC<2iV97#Ob9t#Z7e4*-|DZ(e2>YgLwk;k2~%eYJSi`qES*tK zIONJH?&xJ-N%#7ghh(KiTv~LP`5?-SBFcO)VtygNRD@z6I){xV>pU7zTc$6Jnl5_F zg&y<4gsB9Jj-7ucedFPa4*60S&!X>`6P+zax`pU7$4Q?_(##6d%zn^kk~F)Le2rfo zqu17R3TxM+b{ea8J!;?CG&eD6WKvZ%GVpYs8VJB@(}7(&<0`--Soa6L=0;(Rb7=|G zqpYlqRs$Bny-e=tNeEkevUz^KKVGmY&oB#-%6vm)?;u_dLmz&)DI+#O;pW-kNvC(u zbsoK(D=`SPhXzbfiLQPsGqgrP$4TB8C6kF{XU3p>70l@cXI?A<*$Kgq&=@0+i7`Ut zD=wY@#5GaQ1ehz~8f8xiR{CMr3Di3)Rjj$W&tEbJe=jK11SKY z56IImUWQW{uJcqKgj!W@Do$oiCg=9?#8rEZ@{Yzjl#;CjIsmN$YK2`TGNIx-HmOcj zB$ytTi*C>U^x@ZoKQ4M>bbn)1h9_e3@kJw-g_uAN0cmg(k%LGH;O$9SbT|RGC^IyQ zXQ2=EoVa-klti&6x2`tTpf?y&V+HNs65$fH^PH-VzHF5;{0OV zCA(fmqM^)!ltSv~tqueD2IO4SrY>2PBt7Q!a_GRKeGelUx`76|hLKoItDEL_1fB z33Gx`k1PRWHmc|>vvaAQbik_5M2+AEulwTwEg}-=Nk)8oKmE?v7i>HUszp-d1s)|O zAT+oGCw*oZ2JQuu{zGIH>a6ckX;d+Z6Uh;g2J$4Jcpa2J2p0w%fAlF!uIOTOYkH`1 zmv0nL;mPll=C7QLXiKP3)_m9T<*^SjTU2rVReBE*ug^TWJkvqelsN%BZCvDB2N|*) za3oKL1W0nwC1u%!<%`9}1fQwQURsWLUdq$`fmw`*w2R;ruPjG7_@)RaZM)#$3?ejH z=JyN&d{LhMc=D8jkF4nRNCW{mM9zt}k{_a+r^J}Ex*PyXGyy}eZ2Y3WJM2KvEJ zu5wOr%Hw&VcRfFddbH-^gOuEioFF|bT$ z3c`NwBf(v2D0BbpL3&41_A<((n`jELqfC!Qb9!#lqi?kNNp=lvlwS|4JmeF=mXC7A zUJpvIp%gZn@NR~pT-|(~*;Cvw04@3Zl<~o`*XQ(Uo+5|)bvw2p6rpk8@z{QX^V{I{ z@L2Nm)Ef0hbmO^tZ)q#XbrC{}Mh1`Lu0~nnt>tye|1S*aIO>?McNMjWM}!2{R3D@Y zBl{4_Cfo+8c<-WprMT{s{C))x(H@d$6j8GTGBfG<+GQO|SQR-34RDYN8AW?) zp`Q!77LAYU%)xTbArXVwjuaUi%bX0u{V&z?5j_PLWzwi3qQb`y4b~Xa`v5enDrc`R zN=;1KjcnM_uag@D<>=-1xL=RwTp6zPE+t?nh+8~$mCX_9HBCV_x9aoq)aO+HdNsd^ zOy{=t=ySOa?kfEMeoGS>C3txG?aj^R8_oVkFe<;bC>t93Clx3h_+IsT z>TAe!>XJi4`j*6kt9Mne!#OJyL&*6Um#(j3t>Hw&>#IN#bT*-NfjWNG0mi|ZcX|F7 zic!<62 z49_*YokXxv(+_U8(qSDWd9miWJ%%QU*OjOV`hR~N6hmr;us3>r0e_=w(tv7g1OjJoesJ{j^hJ=}N6Y&e zEl_*3=;C>O83O(F_4Emn$?5%MwzqQdMMYbZDEOhnhACi{i(qW0yhbXEH;#bkpry%M#na+9HVB zSt?8N^xfgF69kPaflFml$Ter0YC+QDc7}&w*}-|s?p?CUBIK<1XsTEWD1oSjUXS3| zA4ha-B$DQuFW%(oT2l29zV-P2c>Sj+`QzF;Ho8QDt1ZR#26VWSx&r&p4hIT~DTxX$ z1kz}1wEk%<`;jM9!0C4*?D2kN$nDh>FxQ7~%n#($&GMH)esMIjFe*^@vs>;E7@!(t z{xb5KqjYet;i3(0QC9{e?9#X zT-WL@SSJm^w{TvA7sBycT)C523qY{MxhULzT?d08Q;?Rt^ED2^{Lph$N)T91viyA~ zO|m1k2v$_S%5;Ddn_gcJpt+5U^3?pC7@-2Hn+ii*J=ISQ#lX0&NOBGExbF9}WHyEg zWalu!1e2<{;>=0+IKk%nW{;2_&(_1Jb{9cb5Od(D6yc!AL7O$B=uV2mon1mAK?mqs zF+{H5#Jj4FpaUcNmYStR)hKHiE0XAq=kYf&9O@4?9}>Y+d23F7=_{Zrm!Agux=vxJ ztap@YgU4{xr}ro(e|{I7!#Pf&vsBk%Bw(b@eL2SG(s|5qzMjsrDbq5kcjyZBr9z69 z=q9JT4ojjHA9G z{`%zQ*>25Yrf<}Fy9`D7$I{{RJT=Q{+7XANc@&isfItQ;h2p`%=&}>xAcnfK@}&@) ziVFYG8d}GEfK3Zu54yapa8PLa8jlXCbxMRo5J(?4#TNpYx`%CAJ%dD^d>K8><;!Ve zw~^<>yne0Rl_DhzzNE5;K*JFRT%D!996q$sV_h2R=E6;@BQjLJae?Y^12@aTsD^To zJ;0+PiYpf$TBE8nJSY|CVOmZPu~v81i3|67INhdvr0lv61Hht!g#Zz;aQF8$W)DHH zRm@b#5d?%+%#_}}=qxfR62wi?UG|PxWq43mRoDmi56T?uB>OJPh9h&lM}QU53)+`% zQ*D0?4nalNbJaF3Od2X79!rJ&5vEVJDsLe`=vh{P4l`1|OF^^<^^+rSqPx$a%P_z_ zTwn|3%W{!k!3`ogqkUQ9rCg#w$8svJrqdq*;mv13%<>3!w^@-`F@0kkdUulWmQf(S zY#qw{;<-$jQ*WwWzQroE=Lja0i^_`;mP#t|060Kg<~+DPtfz_DITdR=(2 z>v?{+*V9zKzChYu>I^*&+H*;`6S!0qv7z9{{bA1ic23`>vmhBuObpmWqLC-|cDg!l zt=}InCme|GPy`bh>=K}TGCea()Arb2plTcGsh&(!bYA$XqtQ}W5XC~!OJSJ)eq>;D z{VdW=iHB3ohYA9PDUr-soC|oECNwHH>cui3!4_Bu0aq?91DnH5!`lgm*Kea@d^TpI zPl4y^VSZ69rdNAXyK=uJy28ol>r4xza|`UJk_rU4;*2b(BX_^-Og=PpoebK z=zx~4G=;@aN3Gn=Zs5z&9M!K{CUg2S^nm}hFZbKG(f^TT)OfHJE&Y8F$5qWPe z+kbujMrkT~4iDrc`L6Ih2guM{kLg%W01e91cV-^v8HEz1g6ie&TG8~*ri9G?+rc@* z{U3COdlD|ouLIzMVsoHT@kcRWm;KYU%-OW=O;uCe*@(=%u8`Xp~hK)_&B@(jLU$&sXv8g%}HOUabCXPNASsABw|^4gk_P z^yBG859fy`@j-_m=6jT>szt?B9bb*<9$lG`Fz`u`q6?40M8^Axr_y6xTWA_2dihg# z@28;5q_V7<1jRjiG*ODO7Qux>Nhj)13WMO5Bj;4C9(DC83sKfop5A(jGB_rZ%Gsl; zE(x2Lrary9kzc$kbh>VEl2;Fs-WJIIm?Dl)J3D8iURiwwHqE(17Pyu>4q34gAV)1P zx>+4uU5dp|+3+B&6R#Er*W>*DI+zB*flghEXeZ}Tyq!sS~7zLiH1LeHJtM`-9#W8^k7 zXo!LlD*6e`O9T>KdFbYK&kohYw)xx#Sj~s(`fn12e1u?8tLn^7~4Yj1tW(M zF#>FJqkRa!Z}PpFk(@}BA~sLrV5^8Oh#2p4zkL+3RcwbM>_A~n7hpqdzR+jsryNp) zk?&dPr)0DEIr9JJ#jISZ;4mqXTehG7TwMc53^sbu7BraDTYdYDj%t`L`H`eqJWq?t z59W(wkhuce>(PVz`Xqkb*@#Vt_72);k&fFzSAcA`tR_=$kkwKg;s+a)O3$-{)&LH| zv!VFxAB7?5CbH)6-T3M^TNyFnUc$e*(%f@8EZ&GE79b}(u1f!BEsVO z9nQ6e@e|yIh6Vt5+}fd}q1+FoyvjwVK3$J)m;Q@v?aI zAw#~wDXnFZ<~`4>zrCCy-NV4J8;GP71}G?rgT>_K=;fj^&z-&=Lcg&XRn#Fy(`AaO zR1kTv=cdYoM;qSW?#(%$ujWXLbl<4PGKx|pd0!eqz)53T-oXSe&Bv~}eT|_V0O&8ihVaV$hbgmvG9YWk1#$GSd8oemCVyTbXGBrwC^rNnBHKph#C4+XkDjBLBlvSNinAPU zgtwRM0ICdVJz}^NnqY5XUX&oiO+5=nVfi14djOoBrK$x95sZljUc<_9>D1oO@}Q5l zb8qH#!L!sj9Fr90w%}eU(_w{jRs9^j+*u5iZN11_i2MbjuL@mO07MJzCA>3SR3q!# zgA3ou*8@Z|$tX{7*;MN=T9EYe)I%IMT2iCyYwaW08Xg}+Utw)&e{?kwmYRmd!)$zh z7t+7GV&jLN2MvGeH>;CF?9*pDfE2%#le<;=R25Q)f6r z*dt0yG(_h1h;n7zJrm1}a%SQ}*3GFTIq$ISiCc!JG11tZWZ$pC1VAF8OcXuLBo>o$ zrmyc-W7fkrJ{)cgoc5*6YAF!NeP86CXTR=`e%} zH{`X~H=-4=y#t=5@IH@OzyfGgD|1*2BJ$k%M8a|Sc%yu_5*2HTfWScYE;@5Z`69|ML83Wzvd$EIs7# zLQA4AN#T#eY!2|XN&3@G*Mm}r(h}zc)N}F@uRk?5z|Lr;k}V&Tw-CG>217x_Yj+ut z5TNk!YHmc8aTs9IWarq!XK-WX zIC)1%M4r4d8Kh4tb7}+s>M-@9seFd=SPavr3Uh^^`&ZrGRm}c$E`+4BoLH_ZGlVi_ zst_*OUpL7SRZ5z5f_IhRNu=Ec7K(ww#^aePV{Z%`CNhVDkOA|aY7&Y;LcWl` zQdmH)i>z}xhctmj*@#65WGD|&)!DjG(x^OV0oS1BRQS#_l&;Ek5+bb$5>is>k~Vr> zR{NvpkQ!eU!-W)uP|Lz$^6)7#WCCKUU4};hHRjQvCmWKwaB4GzNbP>K)?i8j)?Mt$ zts8Ahl}9~yCdy1gbI@6$lVcVecIez(hB9kSypL0xMB~Vjii`_|%mHF`#0E?Jx}PbE zEWA?p$H$SG;MyE93qWBY%4KEVL&j34eF?6N3_*bN34?>XY~tug#&pEVINg#YnsM@S z8vu4js<>ltT1h9hnKDK=z**Hwz@pJE#UdJ5TC|tJ<&TF=w-X1khsa%|YvbON`{UDG z897@cj{l@%%|xt4$PMQq{THn+Wu_BY3Q8U2!X`0Y5gSVpB?@v9+2Gr=Ya{2k?vJ+< z%S=oywU<&waUL8TF{{AV^3c{dB}5i^kYLN!{ZXG37UDaA2Mq9ux^fkOQ5j;yV6+if zRWc`KFFPRlR-byUvPFs3@I-R-P^t@u3z3WH6n6}SfGTHhA=h6K=>$}AQnnWvTX37u zB`K)^+?6Jn__%`4G*q3Fq7ci-Abw(B;Yd63Ww-U8f+GW ziq#Kv#_89hFyg-0RJ_&&(@bX|fM?qB)RzEC8lLzP$WsF|ofOi|ALa;Z-Aox+r)r4tEY_b)vU(ItinH1zaEO!k2jc`+l$c$&+!Y z+2P%ET$QXc!g5UqHZw~D8Y<4dsN&SmBzWH+^~qGE*aaQ{b1QhpZ{|?$Oc>;l&OnxL zk^ncofaP0#xwZ*<``|f~h;FpKGP0?GREA#7*@XYh43@%hu2GmjLg!O-(ij~8R~J4siYo2?c26`q9xoS#csg_< z8~iUqcyXj<+!C?nsv?~nSFpIle#C_)G{VV9e-QnPRX=q>`D;?Y}F$cyqIq95Cbg++pu zNazCAaQBhNX6J{cV^(sfEuM^0`0TuLQ`AEQnk7v#(lmevs$S+n^aFZ>jzgmzt5@f- z-#^R++tC&!DG8dYV|c($SUqJ=oD!as2B4XRGg5DAnrrrThKe zY)kPpn?!a&GCcSs;h|VYB>M&S)YA4 zol!@p_%zRB<)9Run#ZLBEVt8ch%hIye6J76ms*77=AjCkJ%BcX*oUfkHMw~F(BRg^ ztblVqZH_f(td3QO8i1#kJy5koo6~tl3=MeMg2+H)695Rzhg_?kp3tTaY{og$q}3fw zIT1`pZ=M|tC^c3U8mCjHgCCYC`5FDVs{6;0bVQ`fS!dE97De}!4iYCKC@Gx9(f2*G zt9Y%;z*ZIV20;kL?8XAZG&w~mJA-E&1T9Vxn(ZWomAgOJ$1Yx{yB%Yz_E#npB5^u4VP-8}tz^UK+b z<#m5n^k;i<=yLP&^p<#H2NZvlv$rhi^09imQ#<;;+u0V)bLN30=e+j3kTykg+r1;O zk2i-kV)bJm$038=6E!fmS|KkCJMnXEIa`QufQFrFSI~IYVh9?Kcx8 zk`D7hIr%os17MtDA7%Ilz=^BF)U!m1A3_9qPLAjj{CSlSc~E*UCOvF4Jg*=taRPsD zp2!$^2FAuSF!{AvJP*weFJamYzBcK|(g>_Po*%XU*;Hn)HYR*X?VuesT@8Vv*_=@- z>lj^f3%QWEYlkzvJ+@2MjvnP*L-;tmzWw6L2=yn zdp%EORgzDql7%o;@ts-vEYAYY(nM1CVq@`I*JA@s>Si6z)1eKC#ZDe+Y&Z&-HT7Xo z@mklJ891e3*A>Ag=|xOVVo|$ zdKm@i&7Piw(^h1tG5MIbt9Jl&_517TWV}9KXSVCG_QKVJ4Tb05R8kqDdE7O@&{V~t zOy?$}q-qYomxiXCl8pQp5q8|0zdv68`Tp2fwU45n4-~dnIxo9~OLpc!I49v*g6oX~ z-gGh<%ESACXK|0{&IIM<+_&xh@p^8=*B8hwiG2p-+`}OcI<3Cypdb0)S?0+-b2W&r zs_e%(((Rp8X8-YAWg#Z8V(~h*bM~VjdCJkO-j6!k22K&4It7IbPTS!pEg^7;`-ez1 z=|-nM;Qd|wV4*J5b8aF=N15l*JNMMRKlev>kcW8sgXK7&m$_-ck`ummSF0fvXi)cE778N{Elr~9z>sB>i_j@>$K!a7reLZLvq$+>pAWpY7(!jt8p+)NEeS!H z{B+AYg_Xv^OgxVx>I61)AvfaOeN79?-?}Wjlth_(?~(oSep(^d7l@pYLapd5xhnoS zaZZzkvigjn38LK%0|;jY&Aj0Y0DBbd&*2gxzaFjMA1^0Yv>(V-wISevcs><69TZN9 z!tGOMjZ$D?qhR@39o-$XA3o+MlZWKxMpYUQV>0 z0oMW(rZx{;l5-$o|F8N&$`qs^*8NeRiiA#^#{=L-07*Y}SW=exfJIH=mh=Li8;I>V z?T`9CWogxcsU9~BDZvSrP}1St=);6uh@mN4eMZc&Kk9Q)DibM1?~_pc5H%h6iYZGm zf=;JhsN-xBGCt79xBB!5D={cGF;-PSy^TH~y6@satju#=l8#=2!NHS@Z}sU@O0FFy zIl;5iSfRmCyQ$91T>X55tVIXyhfeTY{pF3I3KVpdL=*LIWHyzPd{^l_X?Y{6REe~_ z5l4M~a(6!DNx1H>9DuCHFfWiC@ zY$J6_Goqp;&OAnQ@eS_VRrGbEewVW=48B2U*EfX!aClZ)QG3MGES zTkz=QidvU~CH+(6k=dy@p&us3=|#beG8Ki^{QB_rI)6L8wVMtziN2>4DHznBifCqV zy}G^&XWzY>sEDbtoBzrr#LJ@Hl~IPr4B7LUxf~nyBdTkW{E1Ne_~p^HwIQB43=Z$s zL4es4N3)-@g|ePbD#y&@F{NzDLR63$<>KX#pJja$b#*3^Xy|!*W0G4z1CSN>@X^5F z{D19z%kL$}b>2RI#l>V}FGSV*0fYghYZ+WL0k3AEjlocqIWR2=BojOTefoP;KkiT* zO-2d45C}+9zuR41k5i}4^E>vTt<&mzv$msZwQ8|jorJA1-cLKLZr$Ghttx9(9bnx` zG-NhkSw&{*W==){Dhpxh`rhp@4c6GRtAw>lbdB?1Y5Bhz%VP=5 z!zq$v9j!Q1HXQUWJR3XCn$sc@vo_gGYOdF-t&naK_27^_Wn&>aj$bG6Z&JQL+XmYh z_hwkHJKxx2Xa1$Bz3I=zwN}_(r4T$cTUp5gn(lf8iwA2$ftruN+OscC9!)h#+QS+g z0f-!KQq|TJBz$J0-r_wnGBCopotow@qbOX(Oy4F-Fv@WTXYecsx1}j5uL&H2itZFX zA=*r@3D%^bVO0gA^EsvAFdl{cdMF)+I2mqJaZQ3{Vmm1@g1lvTu`L!4Z-oqv$FE)c zI@ZQ@GoT{$s?QE}DE-5k<&=8c&%5-sT zAv}cH2*5CcJ1|S(2+8*%e+x_^&dpZ6Az&lkYf)s?mjV4Cv+ZT5HlTD{DC&>_g&*j0 znb1{l%~~~<E6ckRLLnVC+#V?U5b{T%bC1i+d&nyTfggy<`K_NagA;#>|yT9Mnz5*r`LXJr;T`57!CYn zJNkpN8FpncL4%%ZE7y85(-O}oyQa99Nf?%d7_v;1Rz55GPg04%sVJ6YIb_jZmC&aV zm|PW^-34arXXpCUv4t&g%^Kzexwmf0WB6m1p$BbuKFn6RQ9{MVVvgn_?MZ77hZ3q` zaqPjIAb01bx6k;vvfUTBQ?|ziOj_neEdjlEdYsX(i0yT648aU4jLo)xFGbHYh|mc~ z{JlRGCh9quX-c?mJfmwaEBTZy)v4R0-s%*iYTIcw(p8oXv#6*Lh@LjgQp~@aYrwnW z`J6|^`D3HD`^U+k%4fDDMluYc9n+9$vd-clCix^1?5sQPI4sg%ZZ4_RJ&pyN5;V>% z?4+1{w&Y+XK-N^>$>f=`YnmsG)7Fu0yeYGI$wy#|8yS_>Trh^&9%`nnJ!tRL8Wc4R z;~E+fK(Zn0nNda!NJ}X`<2H9F67?|KqEe!&B4*(oDQ4GkR8u*9QsU~$wzq^|r44Z{ z9K}4;{m9#WOSnbX$?6WFli3)Um^>$&vJ{QFF4oLcaD2{9-s*K)I!v}jM|YPf-P0D^ zboiP_&!rCv3Sf-&VnjoqWAJxS9c*3_*==7U)qAsi7?cBoiW$R)P{xI^xjHx7@$s^^ z+skq+Cq?!0sy{J0F;I+edVUlkt1AH{iDEESc1t-+q#R2Iv*|EdMC;T&6=4MClPn_; zEXigwO1x&wWyvvJZRxr$3l&5a5MzQR=CPb0PEW1deRi1bZ8%R#3QEiM_Kt3e)6_7g zBvyo%fx2dNDKyoSpeW-u`Av7Zr;x0AU#Gjhd>;cE!ZYRicE$9o3RXFUiLT`p*|b9l zWx}dmStSj}V+it&u!syJRbgsmL&Sy%FlV`Hlb;)>UH2(lCr+(mx}>pCR3X zoT1s#R>d(~kP;;msHoa~c823Q$MYoI4~2|qz{R34F2Y3-Nk-Br5BogfhKQ-c=Uvz$ zv;)m(tmDVBSvHAG<2@>L5v!UVF{0bW1u2{)O;=LV&T~;#Dq(;rZfa8i!cUjYC>-k+!oaf z49Ge+G&bs;C0kPq8X%>v?$T;@mok}D7(vDTMa;)-PITl6jB=iQ77T%wX%dEgRSII`*f0$IE9+QvxG+87!px zfZp4(otk-H6eG`1RCQ)%UI>EUl+skL|;-pKpO8CL}qK0Aljh6!PgGDAXOzQ4o zF(VGtpk;8MH2vPiqq9d^wuLVxFQ5nRnCh-~b%76+kIjNfH}q@^GCJXDz&yBG0$Y*NkA^xVDho#iY@S+J1c|-Qu!28+Kn%2>i%i->{yI%DCxJlcuZ^Ck;=(csmN zj*CT9*xrHt!wE7s+t>H4O>mK@)NVY;-7yo4F$vOUpo%jlrAoq&1f<(u-sgcYhk`jA zJSba3P0jZ0tr7T|>ll`)G zIrZ)3ee7~G<-*p5O^Mxc4o&Us0FRdBN65v=AFPrO<2=eSCCB+~qBWa-!xrjs37*^xw?pJ;(vFMtCe1zSvk>n1wlN+u+) z!&1U=%B!p|yiKE$+0dp`AwWJlh?<%Z@-l$H(BK>yKc_a;!>FL$9Bsp*AukFBDjNoj z?do=NJNxm@bvRE`cVQ1%}y&TjD`h6o92O~S|kP)qe*cr znU5|j6i}K$0l^fK%($an6@tsm2FHaRhorayPg&CBLCRMKt=+Z&SACGjMOiHimEK@` zbCdYzx>J;$C__ydjH_z8Fqy_=AIHVpdZ?^JHY(eciB**OBWmQ>thdw}oN7k9>aS@K4ATEPf~} zJtd+#PUh*Sler=1#d5s1)4Sd6J|FH+yX1f(xQ0oxBGu$@dW;$rpX#}*VCu=mWwMgF z*{*)R`1iJ`pzHnSRD6b5RYx^A|A71U;2i@yZYqvWw1X)XRhP;xH<3yo? zt${|FAGy41IlcU}o;#c&t+dZ5O*c7#CL84y#6n&j<(kC+d_|IWR&a1s#6Km|E>D2Y zV5S8j8!S30UV(*^(h7vmN=!*~<345g_X+Bby7Nf6ao2s_UKWBYa~;Z4Q8e*XN3w0` zIAX=eh3sL5LvCZ>8PZ#lhQkAnEH({3lbbZ#sIN2KUOsO*l4=i}*&;-B##59X_13F{ znpKepYm=L(mI{R>Er^IyOBHQjuU21Z1$Gh&+7u?$>w3N`zwr@Krb=|8Xu8Fp8NhQOeO*=$VrG?a%7fvohw39F4;Z?5Y1!Qea1&6ZD zXH+8fGby4mN0v?ZuEk#MF39&Zyqd#NFhg5D=u#^(OsB3AK?-)#!CL{h#cMAN4b^c2 zn=TH{4~xxGre17QsLYVfb$vw{zLE7;#22Rtl5;OFBved7+yh?P=dd+NExBjZyT%+= z+jEFrb4*=Fh^Qq+Abx05Enui$>W;9wt;lx!F!ex1xA8oV=e_Odvh0rqN0ag9CC2G? z+04O0J(uo>_r9C)E!viy#2J)L>9Nu5P99-l9oAk8e*roSSKHY1m< z>kYTbfT%Gf!s(bl`I4vBl#4}>ZfeV%C8)RhfgP)lC*=&PX}=Z zoik|DdCq$VENx(h|Yw5lZD9Lx-2hl&vY>wqGJ{#xe zZZFHn)D6Ws@Ghj&)0};He$_^}vD|`|YDQA{V_mG>!2nx8q`wuyP4VxKBL|4>>i+#b zr55F*%>h@rDO-L!Lt9T~cYG%cQG3x;VvV=d9f{)ddUNb~}@lrspit3>m$0vX4@#e4_-u&(DRa`Z}*+QVr_B1acgEpcS$uhO0?MzNvj#%s948!QbaoUrSrf?87_l}%u zSi;r2vWH27;HRC`iDJ#zJUyLJr@3#F7TejQp_Z`;dK&<}eZ&XezV2_!Tq zkxhv03H`?2b_9=Lvg;CXUMcs*T(o*PZLyWC?xVOEDXLp`FOEIF>ebte+ASwB4RkLULp5Wk*}B0RE&nM z%=6{v`nM1`&+pC4EaqEyB%Wulx^8I3wZWiYM#H0izWltb4SS8(@13)^l`)>Z9;+5F zqlp*|Gt{7#&J`t$&lH8wG?spW(pz+U@Jr4L&s7K!$w}iYCKhla!Z2}`pam7Ta{2sg>#m)WFXOn@hiDZq(dE|#5hx2>t z=u>fXt`*!~-25Ubv)g`AtQK|^c}dkKmoAqclp?!AqcgVHRGvNs8^?#hWR07(`y^AW zYvC}Zm(^bTuxpR^eZfXuC;NXg)bN8i3(7W=+bS*@On6GeG zq&h{*36SPuOTJE2jt6ZXyE+6n)GRbt3CD3+_^Rqs##R>@5zC>~V>bImg0%aixvxCi zUJQopJ9#i$c8%2uB@jP$x+BDhy|c=jvhAcRGz(A?G*xx6(^yql8(Yadhh{qN3Wq=@ z7+t`DCZE_H&L@*{a4Zw(NHxyGt@4~vkSN+G<#Q(9EKHrh*qyP@#nL3dSA&yD zD|Omv9hgCAq#Fm9ud=2$I@|6Wv(A)eDt4jlC&jpc`*@Y8sbr`9&=>X;^Xghv+Bk}H zSG$D2lFeLH*BPvFZ6eu4DW7={ZCvc$LUW?xm+6Wu;h>;mTjI$awio8{WP7cHOr?^Q zs*Og=-3B3>ys0?RTLqcG*|K&;I$E$OnMj{$p>$T2M8jw$ZA@E2$B~W&T@QRWIsJ>; ze{||n@j{;@wq3WxxuZDWfd5Mf4*nwcAW#cH0P<%%Hixb?J&}MOH~DY=@>ahvKbY4> z5G=;z)3Ka=Gy0)N`NWZ($sFAo4JJ~V)6|1vqd|>u1awz6iv$(fUfu^kkX!}1Ae#!C zHj7Q6=YVm;dW&a4i3A^GxF}KObmAr#?jLKG{ zB5ZJnxP1Rp07jfD+o}hTC<`m~-C*j~O* z3AP-5Ci>M%Jt9mPTvHso83o@2$IdcV7Yeb>K6lfw15ggfNjcpEEsFiw?Nn|5EY@;4 zud-qf>SylVty&-UDyh8&*Zr}qu`iXG28dGE+rdvSLphQMXdUY!u1Q9&a8we{gQi{b z`zd!h*g&yoa;?Osg}TpWjK&@Vu+cp3znA1{u^NK3n*@lWw##Sz?yeZtex{<$K57$Bx-g|EjQ z+H6383XjF201X|wNMM(pTh@7)%I1nSVcW^hiEJdT+^*;=+QJn5`P_@^R&6h9VMXj5 z&r|+GPRDL#*E50^%}veu@L^OwZ;3tIl9`=A44(+kr8C*!GpV|jmmOc{?##u}`@Z#= zA+qs%N?#DXC7H4#W= zi<%s7DF?FB;N(r1#fN&u+>tZh+B%j(5Xe5ZW@vcdR*#`(jnC6@oXp9K9L|T|zF1qq zSgeIB%{^OuOAZyucJM5mE5+F+Lm~3>-CV)Lk)wN>P!nN(uvgVK#yBoUf*>UDlpU%X z99o#IzQ88=B;8W`QE3O#Wn8gFLt;74H5|{|eP1Z4Tt}m0RNbbXG&^=A*&v+z3hAQF zAX`t4R?D-L0GD;7$;C!V1Qjn64BFWy896?um4*{iAoF=69D(en4|UgQbXm$Vieww! zm5LJ2jsbD*46KI1&Xi`B5FL3kO*pbSC}Ex!)gd*YSnTSyXq-E>y{w(ZzGFB~?NnD= zqg}~^`MCPYl7Ri5w3P~(5CBWcE4^QM4%pfSok7vSsdP-ywP-+lQOU=BKx=6U$IW~! z&vqXzc|dj)VKNUeP8G1$$paio3Z`OGQg&i954gV14z-)$Q!v(&nR z1Pw-hJSE69F=oQmOpB$7+E#J`RAS*Vs09vwfI>7SC{ol;#E}4mg1Ia$AYzE91n@i`ofUSW(;W#gzaP=1_}50f$E(3V&z)W7Kf>7<-t z04P$rOGe_F@|>ehz{ROB2P2>2by8}QbChApX4e$H807yXB@<(NstP(~Gz#;K<{hrWA6rR4fWK=@d@ZT({Yg+hC+$>`$|%OiOxF z{4hAOj+ad_3>L?@87=r@tZfl{O|wezy0Z}AHRM4?(;Wa z0?ULt>XX6_ey&4Jf z1nhj+s1Sw!cK;)hr+Z6+XQe%-p9)!Ivbsn!=XL3yXe|-1V*Z=x5<;rp) zSrUmF3LXcnS69JK9B@FGu@ZPt@K?{tmB9-kdV8TUhh<&%4|kRkPOOaS1`G*ru@g`I zAsR@!7sd5O=$IYHWB(T_iJ)MZeewK_qg!vOk;_{T{@mG8@!#t-t0Gg#v!gJwX@Z^# zNe2WR?+_OMBM_1)#(UfvB+*$_Hl`=eVBFKI8j4^`B(%K5DfpgtG_P zC~(tim+8A#4yPf_A`0!ARTr|dK!JA6`bO8cKauzd63%JJyH%@dCG||{5*0lli8R9s zqrd|smIh;eJSt@Ya}?ur%?0>O^cz`QlMSE_rOEU1VBbY2N`mNpB%er*7 z`(x*2P@k6N_P%%a0RsI`yucr~qM-dY1fRg1cOV5r(Vf5u#-bL&hN=>8;IaYhm*ALs z_dTxrkvs;sMQ0&xqHzG}wKBoDPXDbFlG)FF;^zYN78Rzl1A;gfpraLaT=C6&OdmmyMlp8#?**RP-Si3-_&1c->Oe*q!o z3)H#WKQV~jxD&~UM90^2KQDm2_xRcE?N`$Gm_PL^|Ms!FFlm+#F*wMKwMOy33?ZPR zkHU3LdGeE`IidD60p_8?BOL@uAO?jsZWGZjn5#dDQH5#@uq*A&s9ynoi>`y4Ot6}) z&WMNmR0+MIuIrenNQ)#A0cIl<my4L5}{MB#p z-^;!f@W8;z(JXK;hjM{j$kSIEZ}`xu!Ly`7SLr4KOYk{D6X0Q#n_{I{n%;toJ)-6@ zlRq_%PPonWj_$$Io6~qW>EkYdz`~$6RN!AN%W>Hp`QkDJ^S2@xq z!imI7c@Tygk4aFA@GTVKZ*e>ER8r}%YA6Yf9PbaQ`k{u$LM{&QqO#I5{;iz{bStd% zp$I^xN{Q#jv2qCZy;93EdC7cO%hI=>1i7AC7vA37J8m(HpXu0DU;8+d8XAi*qsihA z*IoI5W>UcHLJ)YW9ZDg}8;#?)^jNGG|4qD}#DgbLuEL6J#SlYq#$Y`@d^!GQ^o0Vz z#56((!DDttkrWhD=#R;mT(&h|qV*ukm~+ZJ7W!f8NDe=Qx^pN<3*C;(mr0H&P2A97 zMJ;v2Ygaj9<~mJ1&~G7JB)aQ3B+c&K89b0lnf;! z{W{S1@em*$nsV+hG_*i(uxK9+7`#qRxX3&R4oXeA$mELUB1%pPHdSPUPT^Z2xW3nQ z=>He1@XdGMz5CM--#otlkI&x->F>?s>;Jv~8%1yTe}BLKeexgsANiNp>;B%u7OmZOal9A zQQZ;KE2v64u)&Do!#ZmG{1B$5N-kr8klRD>tH~7@#Hp0qYa+~^AX=HZF?c@IWZFzR z(!`F+P1DONV}9R&Pn5*L&{p=SB(&d5=iYZHOifJdi-#tG2}m9T&0E3CFGzXK|`SJpRz1v(rdEu}uyns*>b*SG#{(z&vIpl{gMvMVh zRidN{qa(Nxt6QPEvi!6xb_%IiHGU~(vO0qJmhjV6_Wa4B36&+$BQH*%4zR3vTi+ZA zQ!V)LV+6~^X=VIbb$IH}{; z|Il{{?LFgyYHP2KvGwb3tharB@%r%lAN%s?;H@5B&G#Sabvq`+^5GxLP2db*^=lTs z#!*uK2-HDp3<^s{jIlXPl~C_91?NFh5#uPJ2h@V8Dj-dnU&dJqJ%c`^^P3+!ZbI2* zz%?2#n3d;?gE9U4zWJ_0i720 zZRnAks>@zIeHrrVG36GtZh?!j$|Q=DG*Ci>G?HPxrX4uKdD}Gb2+w^R&Z%hAMQ*zb zMQY3qc!2cl(1pcx0)N?c?%|(&V&N3(QWemK0+R}RSIT9bq%T%?m4+L;WFu-LHoQ|3 z5lA47P+}0X=->zA+`E9yaJ9CTZ$8fIY{adN;_UG=rxQnK3^3@hD$>SD3(_`o_Or@8 zj6;xuLjh9~!&Qldb#DYVpIJhkDM(ednyBi6kt9<4cG=ALEY&aG)XV<8?(KcwUufb= zE$3&Cp`63J4th=H`Q9Aw3vgeY`@+30>t)fm`;L71|Cl=8>%T63nd@{NzYKk#n#tE|VP7VEQd zZIa>!+E}A*Is{2&?9R6@oOa)=7+*PU)=6qSJ5d+Z>zS(6r_GYWx;a?Nu$R{pxO)76 zyQk>bMS1d$qj?s}+HQ}0pto%NA|>$Kk?FH5>@($UC{qd2mZHhK(!~X{t2j^*CON{* z+H*4ie5AEU>xP3=CHMKpZLGc+(qHE*$9l0IQXr@MV9zfDW!yrRi0G|k#kefFBY(KV zzi6m`WA=Yz_J3pcW?f`KS}i$1vb{LYStX>sHW#d_8W^4enQd;sa!e(N@ZEHg;pw_GUuhwO#IsH8dX6sSbZHU z50X_KWDnrhxjdqb^H@#h1}~!dfG(9+jc6(nB8Fz8IzVI|i_Z}Q{h>5nwU14aRfukW{rfSrHQX;hIHC8Rxb%IQ^zqk^JWlJX0ge8t?kg-#fqa+!@zSlpfmyzi=QtmhrA4$~cfPi`-C zLnE^y7q&dl1gkEnH70jqT%#U2MgovL(GuD2{TNR<#``!S^49qCO43-rE2z3D+<(;& z1LR}(8x9*KDMI@@YE%wrd)(Q%_zt3|I) z*KW0BI83MOw-Y;x?=Mi_V0go|%3&NuAfl65Wg0NGz&%og&{Rc}>VLShDKY}eW%0)LibQhXjr12B5AVMkW{x&mnnoDk>cjLKCFMCz*D)Cqdp2ts{0%<^WfJrt`3SdXH z3racX)I{KfQxRBai!Kj44f3XxJtpK6EMqt&NhoI3s6gQWz7d3o(CE4$M2zHFjdSTr zbp$w?%2AGLF8HLSAuM8v8g?=6hG4st&2$o5{w!Z@ z)!%%q`N04jM%JK(oT6}K{c6K&@Tm{jnisxBBT@sC&5=FAOcIoi!gjhEi3+x)AfBX5 zCn7Tl!!G;Q9ZL4*``b$P*!wqT#(Oh=8IQ-XT}Ec)jqT|6%j;0P6Og8LtU)_MQk^S} zb}Bh4%9bER@5BQ=CC~n3$A6_Y_~;ONnKr^uTK3d^&1576ALXE|-UqR*s}eD(GBcqT zQxuj#G|oa=Y0nR({)<@Il1)lNI%7?fmGT^%5Bg9PCzCz9#ANEED=xig1eBAVvs!g| zawS%G0(#K<^?A%v$>ttReOzY$i6NUDE~h z3Ou;XhDZ+1^wGsKYsu2KmP6) z@e%g_m>D)6ySniA{~x}@at5&4?3D16-@E1^WaLC4o=EX&o!Rg(bTFj2?zbDQ9yEpp zBF51^6j;{?b_rBvE73(>liLE$f@lCU$(-YC`b%!&wqC_tcJ7BbsFZCDO!$45HgH+g z(TKZ-9D<6!?<_hbx!U(5jQ40&x=-jQ_w|^)4A8{sLBX*nAv^^a9U*PA?kaB**49!m zUDK^p`Ud+46MzxUuuGO`cV>VEn(SD%EEk0d>w!WK_td*nLf?!W%NJq=A-SvLrwcoGY|};Lyg)4LBaH7BW`(LT?QaA zISr+;HkzTQ!Wwt6mGP#G^Dfk4YSv-eB}|5)AsTW<+d6k1fI4iv6n1I?v|2HOd<8_# zPERZm0w4Dvb^yyf(xeDP!M5GU{`2$1)jk>-G~srLj{&+M%HGZgfD-_T8xTLr2WZKFGSGjEJQ%OBPJsQD!4s(i!&=2LF{uwZt|SQGpOx}>uIV| z1hUd`krn~FL?{GI1y^D@0LZtO;eTLHSwGV0+q)!;EU}&qNzrglK~_$vPG|$I*UIgF zeqrY%4OAAWJNI#|>ux0Jv$Z z5Rw>7jmp(egzXfPHjJRSPJr)1vph99Mn>U`S0wqzO<9{!iMO>p5hWg=1+t@kjTs76 zm9?;+^-@hwl`tIJW#At_Yoa(WwQ^^Mu#2W)Rd6R#+CB)XCsb(IK3bECx*xbLv+gJD z=>V;KW}<9Gi8nYLthybgL+y+Rw$x%t8u|P%VlV~}xD`9YV~qu=&;;87T{ULf3xAM6 z=Y*hSar^CM{2#vn`#cD{Q+NKtq;D7ku&bg7*9h4_d(3D0jz2`m+LTlo$P9`IKTZ3OK zGa(Pg<3@H4x5sVtx9Q(<2><-_3lR@+CfM#oMU?ZD=7q(w$oo z435hHiLDUm;PYcL-fi%I@$7&3FZ=)e?wjBL0MpcW@BZ{pSdDl4a-b3Z8L?;o97lTd zB1Y}}Je)F=TCYhlzg+#{-~PlefB0Yf2mcRHO9u#YJjL}8nE(KQnE?P$O9KQH00;mG z0BU!sRsaA10000005GEg04V?<0AX`;Wpr~db9QGhV{d70Uuk1+ZgVeUX=g8DX>?<6 zX>Ma-b7(Gec4t*o4FCryv|4154S{5K4S{5Jcnbgl1n2_*00ig*006|j%dRXCXBs_yl@g6!^zR(; z;7H|b=GEwJKK-jz-nH{<)bm%0tNK-Y{LjAex2?ysGj7hc^X&NI+SUra8aaKLNp zKCbYVoVG`!>p8BKcr?Y!w)#*H_x>0$j$GoCTU^MzH#fT0>H79q)A{pUw|})g|HJ<8 z#;^W3=KMFmi*@*i-#q?27C9cMzk2-ne~({dwy*Z9$KS_a`yBBj{@5~qdc7h#vFjDD zWt(mPs!Vt+>et>6wcDg!zqaCb>29azZ2fC8KikM(rNyMhUu&Vg$AxI8ugvssvww|v zx_xO~wmH9gdCoe&+7_4Nb$YyRUuleJr=4Y=C4HqCuS+E^#MkrqswqB~a(uTwXKHa9 zGtPr?|5oBQ-dD%h*dJr=@x7SF6a%m07<>9^Bheo5;@F)1Ys9cG~HSCEsTB zPVMOSeDuA36}@i6+#P*qvgmBgZO_j>qw|T^bEax+$N5#5`xFZu%@|VIV;9Gn{Tk)y zvByhhF7|j`dG^}Aa@x7Rf5ja35|7j5Ri%7wjm@b69=*gP9IRaH*BH-UVp-W0xy`Sb z@2+*>`iNZ-@5(WfJ-V9r{5A3s=O^a1xgGnt=NMq-{ynB7#r^D-=v&#wSM<5ZK^*L= zlHw%JC+)-`D@t5KOd)(i=Ys=8g z_l@Ui$JC7&?-t9QciJU3$g{CE zF~{v0Ta3rzAjB?<+hbSt7PC`hSMqr6UzK&Q(YqRt$E0_5ac%6UXN%1~A(l1vP3)(Z z#uxjb#=h7`Pz)Wl*y8b6J7Sz)v7Kqhf~IGUJ>S^FHO3OVt;P~1JszWoHK;7%h_Tl= z3~{1s>>Kwcj%Ym2p7zbrg_>CpKDKXPaT60T`%wE(gVR>`_Kd9;Z{xGEi(@O4AOOkj z*it1(CI1w^snsJ$=U36gu>`TZOWnUVj#^M3wn&LBxu3)8@qAE(!WL!N+c-*0ifDh0 z(=g)uF)L%}{tPJys`FL5X03gt2OD*Vm@?y{!B54Q~NRKQc19|cpuke2gUh}vlqvX_f=*k*j}uu_J3)taf&%= zP^J~!S^s6xUIVd2L+S$->t~d`}j5S8JNKdSt-X8}+?HbQV_Zk~MZ*g!MT>q=WMN;e? zra8J1hscyp-DRz5##-$f?KX8e{=P=P>3Wb6J{Pmcj!!V9VAS#Xru&2Z*RI(ym(Yv! zxe6s!Khwc&d#@(MiP?@F2N&Z($O7cRTw@nM7`qNAbbK#Q^-@eKjx(2Ik|!qtrW8zy zLB{{Xw1QzDTsGN{lgQ(H9P3Ow!?V1XczcSi5j!oWnz3vP8cFGoqj@S}3qRp7S*nb__FRqWE3UPd6U?G=q0Af~y$c-RU$SH+coN@e{<&=it$hi!j zi<~k!ATu_0iuc10gQ&4{wjgRV^L#(J9#X<%#$@g#1i}s^_z$rXfUYO;=C+TSQmH{gJa`vSQNWB=oKLcnNH#i^S$3lXeJNs)xdPl|#E`lssg91th9*1tr zQ+qg6SBa*zTVxJNPNH{g=m#PUW?C+>2YV_Vvs#}Nz9^@0OqX6 z;Dg)hDDJTz_&0>(BczZx*>NANZVyR(=im4Y`dE<)QaMAMndrq}TkrmR%*6pEhzW?l zLoj-%F!A@`&?Ccvt5lqjLE>KsUoxQyF>AoeQaeU0VTS<4N(cXY262sJfTG2jMeA)^ zy8*?BH5(J*am3%FUom?lD2?8S?vwL#XtLw}y^7_}piCtw!`#qAA)G-#rQtz-Wzlrb`}INM6-Br3@5s` zLnvE3kJ_nrY?e6n@U0%*-r4%WeSLqhN49dX)u|)UA3J-uguWcpd$zZbC1^`e+C)M% zjtxm_i*ru@5ojRP8z(dC`$N(Nf?bR6SL@dsWH0WI@x-l23($$j&3f?jSC4=A{onuX zfBp@|hOy`V@6JE`(K1-2?e&+x__Kfbt3UhuzyC9=6k8nXt6d^g=9p4wd@NKDbDBtq zYFD>W@YD`Y(zg(V)gBTNVG6S2urV5KII~SaJs2scSPUA17ZPUB@-LKUI3t{=HK}gV zj=v`iP$5U@I_g6_9~%h6#K1xkLYoNZ@cR&-TCya~_h`nx-IsZ*#c=9w!JF;|kq8N{ znul#u-9qV!W05$%2>=7aItemgTF(#b{3rn!FiI>{u}&7B-{N63aDF%046!H3lGkNs z46czR;djha@hl3?)JP`-&nWKeG9%4#K8o61dQ9fF?s-LKfNLX`G4DebI`s2shJugv zBaSH@-w|TtV{P+1?GTlCI>e_Yb)#{3LOa^j*^v-_(SDjHicL{tRS`k7M`IJT*c3@r zhU-uht1Aq0u(!|%;E#P>4@E-Kqs|Dl{wak*>WQ>d8_|06^NcF~Pe+V7jL)Z3mhKp@ zk99`FXdVq)aAS)yH^`>40B)Yzko0rNb{jG_vmqHd9%r(u_Z+qpNDN9>$m7~Rn@oHx zW$ejA`bIrhHYRU_ayRb+Sr8LC;@U;0{=w&CLu~oj=_Ox>3-{-a(6`GFtrZl(L``Ws z5=pdUe{dq&MB_YmiDO8hY~Jw4I@@J^*rlE`7~dZ!Ik*>V^UUEUYlSRVd(hr4>qp*2jD`9j(Gmj2@G1|~9Fa^c);xuUL=un*EG~Jd_ zBiYJ;s?6Jxk1b79wj_z)U*~ek`UoF~b6{B4+p!1-pGBqH)rKfPO=Ea_Y%OR>!pM|kdQJDgyZ+5$h#A3=wF$-;b0tF@Et{<{CupUE zWQl?f6XfjWpCYFi)0pQRU6Iu&<{M9rcGE*tmAxDvoXbWeE)-m*4cl}|gX<(Qemnts z8al*k%3|TYE~^a^@mQ8Sh$;gQrdfhT>+3MjSY<4InxI%N9j#5PwJje2hG=N?hMf|o z8E1@D+~7=T>eELCH;gp(Db-kJ934eT22j~eM~F7`kFzn0kMhW-xV@i6PI#UPf%@+!qKAe989Pj-b)-McICBY) z4b$9=DVJHY#jp|Xu>*1z;318>v2e%MqRrE>#6fzW;z1I|VW6^t1bL6!gX(e=dP4co z>kw&{%dxC8VC62_ zlXZ~tf^;|N)xIPdo)1!x<-2T>ng_B06axZ%=<=p!dFq;o?XX-whaOF(*g_4<6FJ@E z!8lB^;8r9leAbKBcIz;6)0~MEF=to1d^LS5qP7^R^%*r%SlJxfm7?KO$prSRad(BnnKxN`J@EDSh`v@uqm zMHktV%S*~7Mwe!(PHqd-iQQ6PW5Z30xG0BdZ8*Az(NM}_w_wun3-W!m7|0W9c|NqE znY_lvt={l8TWHNXE>*LIvYX@=X%f{t3I^Y=OOcC3*mc?xuC;`{Rc;rUt~9s(r5L1Y zMGvx$BEkmih@($y0#dfNrEPZYThS0{m({PwJdD?9411F%Mj-6BO&bK7BBiZ)-;d2K z6$Ow{ZT7&RpArI9>=eo5cy%ow*O>v+C7lXn7OiKh1n%Jk9yJNszzv;%t!soB^ zH|8$=8hN+N#J3B-z&ql{Q)Y~~#vjYaz2$sEdB66&*WWvP@rel8|LrK>I@>i1IhMP` zd?I5Eee}J6=i|qwAyMK3KO`K{@mq{amj< zZ}*4aJ^JYSzm3EA@84_mkAL;s-~Z+pR_Ho5$&$fqLW0FOCRl}>H|%-|-jeqxwyS+f zFS+Y_-RH4SjBfiQPSLRgC;$M0Eh2^b2v`EcAA-deDiqe*hQY1Lv9m*JVcEzD@vo$| zW)|PZfn9H6CY_M|azM61pnQnHgldkzC<74MIQZp>d9qEoGWI?kE=4SMVp@IwKE^U0 z%exjQ_|{hUf#2*1DlAOLk&>iw&5rpr!|}vlgFw-(K{x1@tfrgcIGU;G_N=nB2c?&f z9*L$x7;z&n0cOfgG@;5fz9xi;Wa;^|byIp?LEM`%E?3Le!Pal>W7-HQ=`h9DF3k`r zHrWjz{V1LC6%Cu0iWXBEaVYOn_>#mza5>SA{>hn+^)eK+VqK$jJIA+W{z8P8D-^eH zwIK?wfkMYA0Vz??fq?t4y(L>8V)9aVgFuymoyQ{m$=WvSiMUF6J!+~jOzguTWIz$5 zmSSHK8?QF7G^5kx^^y(N&UT3bbUV!#+fP%%HzxesvH1Bz{k6Lr-QX#^k-YD$7n=tc zgREcTh#hl)WK|RhZ);#^1FU1K8^0I4VNWhZ9tmje3lFv z+iP0Mu@s0=nTg!wF+XtfZZYwDL*8gloWk+6WJ|fA*#bT^>f_~OFXCca^2Y)&{=@J8 z`|pCh{Pl1D+aLX>-~Hxq{^F1R`fvZ@H~;#t|I6=w|J%R&-G9H}7X`N%$QT>O#+?r| znP|o8EVIOBI)9zyJqe;E>KwnGMQ%(edY4or*({D2(3dz)PZrxqsXT<4*{7^du`-Xd z3m$ot_dI^%R~L4qsl$fHA)qw23wJTb>~nKeO=fzF72N^9JtQQfBK zV?J99>xM+dk19D~6CBS!5kL^CwO06SC8m~fu!8)=O>@Lw-Kg)qu^r5Z-Vy>#l557( zl#C6LYbfaH`@8S{^~8VI{xILITdEBtL_y$1=BZXr>FH)W}J{)@RazO2O`I_~=J)Mz{j*gD7m$aq6xivNCLyqNLgG$WE#*#9AKXq)*E7O?}Jzy~V| zh;@7jt}yI0ssg9T$HL+?(d8Yk!qr8z$7A?Zjzfym(sX{kKKSm&A6}m7IRM8J()tt+ zNb#)#{KB@0n48L+W5VQ~EE!fd4%RMCezxOB^sUJ<55hqVu!AbzZO{ZVB={a;?h^-( zCP1c8U6LIZ4Ax_9Ndc>#I2^T~LAAv~$u^lSNyT(x2osW3{B2s9k{|=4OFG#yw0GH0 z1RL7jO!EM3(lHBVxig-iaTa73_h~l+I^sgpX~(u-v z5vq!*4KPMC>y*^`0I-DI8|-J-k7u_?TZR15(;Sm^j`nAlwSiD0Phn)4zU8p*1 z{&E#7sly|Kn)c$`=wOggA3=#2=Tu4*gr1%+c!IcU9xB_jyl#5U-g}nEf8f6x&7o_O z-1qzh&AzEIG)F^0Ci;n-rYn|4m?u9Kd|t?!bkY(G`EKS-)4VGlBM3!o7_9!jSWLjy z#AGAPs)$bF&_e&(8Px&y!jI`N)xPGYKVJRE>lHV);jjQ^AvR=%V(T)fs>kPO-}6!% z|J_8L7-yAUWVS4)WGKv-?)QCJsDp!I5L<1$ZiGEJvZnK!y$Yj@y+Iri`z40f1yIzc z>7uXgwbD;11ezZHu3@bW*0#05LNEdhu^Euev+rgLT0aZne|=OF%>;qKd7O!iys(2^)S&;;3KCAjQ^;VHT+qz`QFLX@Owu&2Hef6Q_3K;Y`8Z!ucz@>AZax-0r>_4S_GvkPlYqt zJJcnln8%N5&DnAVY~uhNO=Iszv$9fhIwZ%J5hTl(r9y^CZy987rw*JuBHj7=zI&_l zZse1*JO7J2{XBm-s>`1L4Hs!MF)am%@aD+8cnRM1&w)PvCy)A<_^eRcNQ*GSIwfiB zff?%o6mUo0mzWbIUvi29U$FKy$*`btqg^E8;>LHRN+Q$@P@{r95IwjKzDN;@ zrHgbSzYDUm?gt(0%?70*jyBr7-@v3>zdz`w{_k!d=#D{z5cUGob3hrA0SIY~z*)R* zR}5iG=G1#kFi|UcaccJ3Y0o+_8LzuTO*-Gwx99uq{M~`Weqig!q*Dutz$Z z*KWH5c=ztThWQ|a>?yuJXkR-2heul5qRi4Ju=bR+Es8$V(OWe^PRAhTzsR~g1ZB?R z2)Z*!bhUOZ*yIzzMCYt-mWc>iU?-Q@vIB*NmrfKN6MXA7=J!SC>a$}XLkJdgVg@f|g!x*Q znJnGBpJsfT$oW-YpoMBVU-#j-bOZIJE^k%TNRH}o|<;zaxl&` zrS)LVY^iTsun9xg`TJUN1zDI+O` zqGCZ}!)mkPPfa*LNuLXnPtUIdf6r1Y{CD4Lc4KWahYEkxjJuhL!NqwyfQ8Dgv@2>$ zIIdo$VoFs8Cd&Q5LKQ5)IZtYfQ_{mxaQ1yExl8NBDm-b+>)Vxj0Kra~5(q>jBou7h z*nJ%-Fl}~|3s>3|v)Q0gScS2ZTBC0jL#t0nX$qcfa$(D!p)E$noMz*p>Djx1Io~sa z5IB7@9KNc*Zja9?`@>3DHLVPx_*ns?+a(&xcUd0DnnX#et=i(hPZ*_%r3jKD9~5CA zM$2tu+87`>vW$J*XG>u#q?OQkaX!VAGhYdnPWZX@q8QVrY49_6Qref}QE{teiPIh? z8bMr1o=OCD>F_ssm^Gx|R`gBpag0UiH4$MgL#dn*wadJ?c&$*Gg=pde4t{wR5wt}%PI zCn&z*L_y2|;r_|;*86RL7y^U+NQ|(WjwvQhN39xHR6@V9jwDYD@n%I$fY3n&f%xh9 z_~Z3u|J;X{rw1Csdy7rxRY!LrZL%N$`E)K7jN(s1HhWG6|Be1A#DZZ*WxlSj{li^2 zfeqOJnrZcxc!q*zQ=G?4DZoOK8H9qI;mF75vp+w9TL>H-i3ot`Ae8}DYk=;sarBE4XrK^#iq`peW!& z-15Pu+I*dWl;iW^pFdtWC;9mD8AQCR-S^d&j6@8=zS`pjkox)KijY$9i?HUHe*_GX z<(2jhoGL^$LD<1I&I`OMUiFEuqEUz~!0+(&Yg-@$=cAKThb{u_uC< zt3!%IhdM9({Bgmq5h$MwH`xV!ZPOu>v}aLUUV|Zb&+++i^!tr`3q{9`;XG)=cE-tB z-VZ{qr}qbupfAW=ydo<&r;9JNa8*3~1k#Mh1ykMs9n{T?4kAxzxMOT3(_Xh z6a5GD&t7#jhoZ8x5*%_g^#zV*eBpdBUhx5tBg$7$dQM2!Iowh*evoshESJL8DSYq! zC^K)oo|5b-jU{LE=t{)ID}bkXWpq|<*eP*n)p&PX|%K{|>luUfsX zeMMfVazPHph~DTqATGN}P>J#3@k(uN&*(p{CtU|Jm5%elpC2f_LpHsX*Pb262axW^ z8+&&MMW}Q=iYYskOR%g|4m<{d*;bnbDz8U*%?Fy#sh1QqgZqR)RXwKY6HTB$gRS=i zB)Vzb`W?p_9jj^;h@AmCSRI28+9wvaOJCt){eTt5D=v6LWl3au8a~(q#dKo%E=WbXaw6b50k73i*UU4{gd!FKsV9@Bf{dzCVV)2Ed;#qaj*f!dArnDVzPA^S z?Z*d{j`N`Ofm52u_x9`7pFd8N-hmdGS6WncCUxhw4fqog?;I7lU>(@P93BWn)*DDkJ|}dhT)=`sN*W)k_hZ5L^wK{a zoR(k5r(?$)$jW5xanD{rzxDY~*x#QLOcl>5`%oONx$Np9>+OON{Q2Vr93-%7=4#P= zqys3ayfDf_MB1N_D-_CwfPrx92bn&@7-N2t4M9%haY%bpwu=IZKCo>kwJWmE3;!6e zctIj}C!b18VuQy6sH%=6`g7m$8ywnadBN%(>{v7* zlLtoj@TrszS+EkAReOaCd#inXj_+^I=BIo$MK_4k>W2Ln+L!x9^EI!BY(9_@=8j{t zF0hz}hHB&Qatx9NlaIym6Vfn<1D)&2-zC@!(%gFP=Z{Y`=%3;>4x)%ZTO!}C1aHY{ zQ;*ME;lSL~yjj7`l8jj%aPB5fg5dMIoajy$=O(069`a3Y(8LBQ(N!e^(Qxj0nG=+ldR{2T4}!>{8XUkDB& zX8`m#e{cFWCg{Y}9#wfQvjHTdes8~Sg}mQTq{L_Wm9cK3iryk05p%Ei5 z*6;0)n}7beB4D+ns*;!#@Hofya_plExb~3mXIm>08&EmSjHoFh1SsD^2oPV{ZrEI2 z_X*rRb9E5rh)4*<7ltsVEEi#|l$kD0WvLg?FFW@Jd@bt`ZIFwk%_@A())eWE9WFIT zcA~pqAOCp++#ck>7|Q&hBmTX8MX~<)guwo(lAW^4m7-uF``}$4H?iyAxZ48O-?c~rF}!fmFo)$jYR8;Zvz_I$0r7u*L;A338B^IpU4G=W1dzL zFPTY-KSN&rR6l{mv5Xf0DjpPjuY_gFztH}?{pSVNdpOTsaRlfb-`k(?*&lD%?SZRI z{_+hyc|YEl*c~T`SCGP@k`64w{N8@u`tt_BwX0uU0WO)28>sciCm>cyL3blyhxqlk z_WNc!cw%f1-0Qine9R>ISAB(Kh_^cE+zE<7rg=UI9lRi6#Si8pBSo!6Riwhph`TTJ zYUS)-p8k0U;vS?FoML1k0!&*!;jTZfSlI*oe(44`Au)YxUvB^T;|9zXm_`CuvfO@Y zUGIJKA03uWIg549f?Rf`ie9j^l+HX->7b^GYO1U#VTPRrH+6xl<8`TPDjoc9kA?2n&b3=N#!kXs4C7N3D3%hEgATgPF{~y zr^_zNh5LbWjn`b@udSQVf>I&+m1UTI4;3shrU_dDDC~k4UN#J1#MlYsNhAQfTIFs@ z$@a7K0dn!^Bg%pGg7QMy-uPZ+QBy7hnFXN+eF*qNVqNn>eMHHHKA^!;Gd#SG?h)fy z5Ftm$Fqe#7$H${T?}%b;^R9uyrt@)!?f$sI zeg)z&P5Z~ID`{7}4qexNhBpkIl*T zd}3=W9Pa(F2+qT(UzvY57dWsL6lx%)f;?Tiyw??|P{;9p5>@1lF$UE}mavDFw^-MY zi>TEXsISiLex}&N0t)zPUx3s#y9&^uS24WX^N^McyjS$2dp^ue3Aqpkm9)%5*KHhX zp8f0dh)@@Bu}#tCrQ031>kyO^TuO|r+=>88EIMz}e0Q50FikSHvPt_mAN+X*t5(EY z-G-z?9`&h|=SnrQaUG`LjTGtixByCjoCs90av9nRqRjriy>8@@H^NmMz1fG`tZjh> zlY3TWK!Bjg`36i@?f1hceMT)%lHHZWD|fAPb`mer&)DKzlCP)vg4<%Rd|_}gj}GPH zDoXf_1+yqKGH`+{3+67I9zf0X0pE?+e4u*qvvC^}#%(BrGS5N}l&*ZZsf=ImC!sPg zm~cPO1I}cXT1r+wGD-NldOfrT{S&rwFG2}HZ`6tc`A%d1W>$qSDU>sl6M-#hCUwt`GKINj!0Q z$FZm*iF$|)(r)Pjibb+Kv9jcFvmnuBIVD|1^Tn^O%VVq*O1yPF_c||i&Ersl-c3$q zMLx?fA$y7n6{v#Kmh3n=pM)WNz_?-gb6eQnW(MFzr3wYt8R<&%MY@lVhhM}j88WJ6 z-9**--(DYQF(Kg-^%WR%KWSN#=EzA4a>&#xr4lI*^YMb$QWXkoEb)b|?=?jt)`LHP zd;+R@Gif3vcFE87t=&KS{{gS2Y?$gNp*;?1ld>~Y7ehFT-35!tT*VB(9zC~Jva?;L z$)X|y@-V6>l#tUeAU0e14WY)FH>>YSHgY+qxqY3lI}w6TG_!0~l#x+dcxDtVo17o2 z6LY+8{rQ2C7JHrYp(A|G@9j5u`Nt>PSr*$O!VYj|*L0vkv0sWNZz!wc6n5nEQPhGL zh8gHUM=g-EWD0z-Ie%iZBksIayIsE_EfndShBa$Hao+mETmjjXp_H2uG0F!%n%BHx z)8kA=3)rU1k*^v!00SA+ID5zWogav6&;1(|EfdCBudS9FWcufKNHrjyY~V4Q=hnR8 zkbm4@%m*mMEVow|8~xtC+;6e-f{RwbIuDc~!RTB2a=#_7Hw;@7n$UHyU2pY!`*OP{ z{S(ujRZ7Oy?%MbE=iN91E&y_Ke}h7U7=3SE?q;QKc=Qd8arg!aR`>Shew(8{z}pAm za$V&^i%etR+SmJkUZCQV^HeGfE7-DXo)=l^6N#-u!x>^p09f3c=Z%c;0{7P8_wo;w z1^C{++%JsPC%jzSS4x92K9z6n+x<+@4X+MlM#=Dt;0@o}*ZYxS-)Lspft0lcnJQ== zGV3O}hf+s4j$L6{-E*zu+e0hY%gFr^M7K^v0~_!Bvb@jE7e6GL&j3UMHK;< z60g^DNZ}{U+jBbwk&K=8t@*m~=LgLEsLF^Z(Hlr@as$o#}<9zVv1)Y6>6;`DMwpltZpynT+80gceQTu0O zlm%4svC2z2nhG(&Ec6TQkDH-&C!YHtsgvAFoLbb{Z|(Eem$j=o(_Bh+c&S2_t?mkD zgv5ioATPP53QI@1V9kGiV2f2wX)3*O6E5a^`vvd)@rDW?0Af_l5e3Q3nuZmqpe<^v zSrCxl4@xXGO3}78AwH>|&@ia5?_^1bNftF(0oe;D+8U%@ejxDbP zimN(Gxmb?X3-5fxG|Q&4DMxgbp}48e(29T+90b8=x8FOAuCvVIaTCl7r?@Rbu$K0hNDTLC!~3=J{laJp_ht?aS>ye~^q@9D&U- z<;)lY#lfxa;AKSkA$m$eu;coyg(V@6ooxF%5*etW5S&8}%(AZU41*>rDZ1__#Fz?`xbcBPWr~YFX?K+$BG+!! z{oU-N>*c#%MhbNyUN_~~kG`fSdAo+n7AhYQpa< zZ14NpEKVJ|npKU3bFbe)@1M{8{6Pw4)r$kfH^y_8W%yFiZ*eN^;XO*GZ4fNkN3X=) zc*B&6odP^fRamv|3LzdUmr*fWn_w2H*4JTbLz_#V$^ugg^OZkait1QfTE<)-<7=2h$7C*R#CyM7i6Wq&`W z@XT#dj&j^4FJ|-F|M-4aIaQ^s-<@n+$n#Z6nKMkKe;?uFs>8-ClrU+fZSdXTHVL+&^%A z9;Zq6mILTt%M*W|!ly|gtoyX*WaZIPXaJFylxi;v)1C!AdnNP* ziIz;5h7y+_w~u3ZYOYVCeDnPi126wmPt*32xn7`&DRTW!6Ek# zT%Si8{~Z5QrEH4orF11PLoHSU+o4cs=QPNM&ZC3mRdIe`Q6CQdOvd<=;gfyTS4c(L zAJ^$Ut{?x-1C`{ZxH(slF1jOiCVEFY27&|6Pap zf!+UP*ZCe;^pxz2%@`{g@?!6nd}vemxm82q<*XEQ|!blrYnmG?%-DnX;t4QNKsxU7uG3q7_YQW0Qaac(>D{tMZ`0A_}|&93tN3 z8fe&tNrYBhiW%8v_ui(2j4KdN&5-oJA$ZP{WS$(637c&NdbVl@-L({waJwXF42qEnYKalqxVm&R%M*gwpqJvTZ7L@ zi4Rgcr;Z{`6u`}ovlui>y*aL~sA2%}|Gq-?*qql0#wT_zg^V!V-S?|9gsVUMEVx)T z(Um$3$`Lvg^`h<#Z6zFRkK5ee<1X!zvlN!wO)5(_sm!5~_lV5v^9osAL6RhJY`+{d z=~&DnpZ7gB^ZGoD<1?(XxkiT=-ZfN`62j|J{1wu;CgQGPg{|HFUBt6H6u*M0CyT^Evja++8yu)WlM=PtOHHOkv z=U|GZfk()T5Y*tf)Hg1RtYnh6bOY$L*N3J-sFVRBW2y$2;~ul_jIy-><( zKia;(KhM$TEQ#+F2hgjuq$mYGrl*8wtL(#c5f@MPQ73(t>?zfhtdK2sx)5P%Cyh^S zNm%55ysp+gVs}xlcYmI=ho^5pH68&gXisRvw6#;)qbrlFeD`dhY5`F zIDLJHZOgjJF(FlOoMdHeg;c1d1IxXl)G4_@B|w>mhl*MWz^gi+6k1ockzSX|6?A}H z%#!uj6KDDX*wrmDwQ&EZVF1qkU=e= zZqx)@n<6+Wqfi!`s3ybvvbU6}B(Ec_OaO~4XYH))q_5Y#aNO4B=a1`XpVTSzQJS(W zt1zL&HANOYp#Dl#svzp|6gQA~sBA(s3kF=8u_TJgZR_&ZbbI#eRQX(OSFKF1*Z1W6 ziSfnARrEe!pigEgYwzLzjrT{pug(=R&bS05^rk;mDN8Wy)EIKe`(Pj#7l1qq{8y;FPY`&(C zak{CXw>hwm=yc>bd!t$>Y{rHp1lt zPZz#ywyVSr$KI*fGZo{iCZK!>Fsnql?H>4?tycHp@p-(AZVzDb?a;D<=k9Vg6 zlRyg=vfeWxNUb#`La|KJOO=@(Wr_@dgqF57K+;=pD|lV<*%Vh0@S6cQ$+vQGiD{JM zHoWDQfA>dB+hy1=%Qcl{vQPq2D9Oq>B^SEz|2NzN?R$yx~qUP!?6`l1!Tn} zTUpzE4M)U=4M8SH+{0US8j9icV~QG?tH?ul)^hg8u$EtK#1&}zmJdR7e&5=vv+OL- zSz7%rYod6jsf|RauHxm{q_HNINhl^(T?y-e9Z2>Ap#H?lsM;BjMhj@n43Vk3R!%+v zRP?H+=Tsm3+RSh}dec=!Wtw)y4OO8kgrGuJ2qJzg|f& z&g2=&q|uEn`K44CuH9H6=f9BSVo9!|zU`h$!%j89Ze?c)S!}KVPsb(6|19s;RB~EM z;K@}s!N5%$9YZEiorkLZg1Oq%xVa&TZnu3k^4hqb<|T)d2QNKyOWRz4_?@mdVpxF zu0m~sK~hk)F}It~3I$h(i=cd_2vNv#S&0)U6on~QQ2?9Dax2a2D2^W4s1TODvy+@e zPmqRMc>)`YvdrqNtC)f-%j_%aieR4W=p4@a(VZtq$jn+|PNz@|O1V;cba|D49ww!n z2$Ahu$`Wy5nU-@aqWM&F?<+$E3h;Hb_k<}9VEjyB@;xQVX0JFFcXS_c4SJ!(|9c7) zC%zhvU5ripWFK{f(y2@-m97*v0FEM&x$%~Rq^=~X2?7&55+jI(ZUnY9BW9IEKDK1S=mB0Ja z`+J5Jx^u~tqWUl*^qVr6E3LOINdGBF=C{%u{OuoSWmt zW!b)`T(N+X93P)uM@X^!Q~a42_NhpJD7?(pQ|UN1m!nY_pRzsR@p8R0MV~Fq{B>x~ zz4g(XrxLuU>LBvrq8Ibkoud5Bm^i3XOg?_-b8>7pQ=#IANVC*ut5f-Q9dsw0KZV@l z_$vO9jr$Gu@ps0W6#jvC8^JTMa4ita(dMj*tU5vnrTW z;UP2;!cQoIQ}Jn-l(|0{KgUF66BHq7lk9jRI7#t;#IPn+29dNuAm^^U(kgh!yka?# zErG|8lgOz~0j9K)S`5kU!l)@}KzV%6yK`9<+aW(r{L{jRC=S?c`2@0}ym8~C$MuNa za}ddDEBzdTu}i4kbzoa{35hE`xqThA;FI7zl@VwvrINHnEQC&@`n%JNda~F`m#6nm2ike>TQ+pR#8U`X=z0a=64-Ne*QXE(={Nw1N_xg z_gB`RCg1lx;nDSbKYzU6_=JNFm9q4=q?a*sR1_|9MU*_D$s`sCLx#UlhTcSHHfU9Mp!0St>Fj-CyRkET@ahcsa zmb3xYK9WsaLKgH#lL(mI&QTM$}cXN6-CI{~-84%A7~vX~mND1ydUvu(%4&U7Ob?#Z>Jv`Z}&0T`ZcuWyo84cXLgL`{aC zBr6(Jd!^Jym1R#S5hT-n^w+^Tv*Sm9WQ0=S4DIBzrwn#jYpq46TD|*y(j8K()I?V5 z^P)jAv`-7mY#!?0!Lv-VKq5ViEvXj&*z6Qf9P4BfdQaT7R$Ga5o;o~RH>n`Y7wEVy zO5!>eU=Ou61jbscPh}A%*(f&4b0k%R+#;167C4C1(cAQ4WtyZvLb&-Q`Q&JcW&Wm03U(pri)OU*SKgh#+|8kZ7an}dAF1#ZYVkb zc>QU*+--HuVO66P)?Hb3_9|1AT+teU&JckD`|7friuz9qFp%9($zdpZrV;|N$Mc%4 zAz$2H*6iWpSE;PJCR>-~U(mV?mq>;c5wLhoY4?PfIZd8IMC4dXF3z>;I5ZnOk~ow` ztpEb)qUqrnn(nr`R!kgd50BgGicHZOib5ijBHq;&%cl)z9SZuhcH)7~rkoXQ(pYF4!qlq=T%V?3r=Qh=ck=;U)6?)0j z;iPUMd?>nmwKul~&ZZtU7^Uk>GxeXH_ZHV4m?{pVpv}1^W>tB}D`f;+s-GD=aCz7g ze9kj{B@Cynb;(`TS!!R8`*M|5xsnU^m0Cf|=-XvX!w|)hmoXpIMk)a*S2$-qvf!;Qk!Rh)e4^s=Xhl)~zn;Ltq2rEb(vlh=hBP5mU9DubkoG_upu z-la|`icrm|+BHiW>(0Yij1uHJXSuNj*XxinDaT#c^HkeXsP!_xKyO-drY+jDir)#i zM|=4GO{L4XvqtDH^?_aHA|6sIX^Y_ESzWhRSNxcBU2m>+sca?QrFwljKi?NPtgX*a zcVAJz8ji|q8$!eI5hVphE+%w2si5ib^h{}E%IUFWUpUU?P#xD@3xBz!r8Ivrv5}9A z&u!wzDh)0+uo}PiOH>6$EK*Hv{B)8K(vtQw4;(vP8(;IKo$hn8?W>LGe9en_+&YL; z;@t(6W~rtL`ZgpYo#MKz?7Po!v3X)&qT-fa;eNBHl`{@?l!339P*Zkm&r35FfY9(I z6K>;^P-y0All3X6>r9KzGQDoj2;~60>)?L=xb^0# z1ZZ{j9!3muX4iEUdzEmj!KW`%x~#p1`CFKmxvdOw&}hs=`Z_|?6n<>jPz;9J0+NSf znF9=>>ZODC5}n-K1fMU$;?*{s3_V7YGG?7%4c}9=Ud9H8x%5X~B4todN&~mH>sqR6 z#jnV4T(ccq(SI4xiYwm&Y;e}7d4f8wsa`QIX4{PbV=CpD3`65Ig$mz>#S2PGf*M`V zt^p@4cX&W;czY`oU=g1CHlN3Bd{}lb9eT>zsl7_zP;`L8X6;N2Kc zfO0us1MEc0hgV>X$8Es(+_%aT_?f}>Np)?_w-_A(HBCl5K%+zL;dGuLIiIw5+kU%h z)*}9FYyJS;bT;`ic+Okm+o!Tp?aS&{b`9QlXQ5e;9zOP!LM{L;|`+OHI>8FPlSl2oT%T?v?~a@e8_Bo!sp8J2JVq2|cGyxVxI zqyQ*lg8y!lLMEc#keH@Dr=P#3^H zn&s51hMzvyeP`WC(Q+G@8G(C}<)Q@JE^@iaOi%E&T$oAWd{6A_O0z>oN&K1JUNCaG zJ(P4bt&>f$D=2}u5Tr+y{9Nh23{}Rv=ZgkiS=UL+F#wI% zlucQ)G(S$!jQo}!-*Sp0aO^9UVw)O(Q!`fAA!LB2yzrdIZG!FzxA8h&(q=#H2A*~t zCC`|W>SDu}3sour*>1~}ixmxlCWSLcGAG?|w*rA!-h|lDM83;_K|b!__?2WhZC~dv zMlN}KcM9Wu-cxcv>nT&=0AplhAu%|gi8k*~e&1j#z%z87h4R2lB#=36L>O%597wgb ztG!auRQ0lD`PJpBc~Bl2USH-t-8eZ@F8zO!dq}7z(cO4KRY+UxoJ6Tqr6!WV!@(W8 zeUW{Eq(}siL{Y&!rN=KN9aqXH72Fh-lAb?VdaK!(DW|rAWvtd+T|0aD4KDYrvY!pNIjCcE6$b5d z(~0eD2F<}SxUI~OF7T;p8p&lVxt#O**zoPPW;98cRrxp8kmRfHWF>X)d3{&(oVKRMjt@DhtT!kG`{(zkgWK(m8T-LM|H0#FOTldwxpF7 zQjX3x5gqdjWfXm=q=OVc!V|i9U-d>*M3ZNmQ@1iNw`ANlu>j?u)j=?fF z%IlE0y_dDkb90?yEu6pss!Kf2Q?hln_j8+z8}4Tzf}w4U^Lk&SVd1gv%|%0o-#_~r z-CVSPN$tbc6lJhM@=Q+%sA7T;@^PzU<(0XL`X7Xidmk2%T7W0O`I`%Yg<w zyFTx%;Fn4ix56RB>9uS%f-)?!5hb%eaZ_50u6E_*Qr0IyN$@Ub^#COvmWv`;=P7Cald6+Yi9wFp@@yHG0k=6OMEejU7-fO{)XUB}Kja02P&J|XUA`RRGGm2|xKsn-m)b_cQP+}6| zL|a2^kLx_%D}sP7eOLE*BSE1Zz359ea6rmvXX}QLG6Dh#s+Sv0`6M2c4H#BC+G$X* zG((8XE^OIm(pGdo)g|&WKuJg6or#3!L8i+2w@6{J%|NzgeSg;$v&9OJb8#*(kw%2- z=%2KRZhEsD%$7t-n+lAp9*VRMZ1Pk0+s4q0okMtR3(45sRw#?vnihIDqr%Xmm0fRZ zyIQs^>TSBawzI9vbz2V;_KA-m&x6}UKHfr~O>iT+q84qh+?@wpj z*Gs;BuUv1><9ho!m({yE@9ASMo$F0azs*G=nzUmbf_?Qi`Sz5TDQx%To%`~f%y+38 z?^BNHWdjI(C`7(ZkU}4hzU;AV7}_?k%J{4MwFb1auG{rP1`!+Fl1dL$!FY&!tn2k< z+8(EqSna%Lf9~tNRNJ(4uxmcUW$J1Yje_)2mtZiAr%q=*046xCwDDEZ1RNIom8*km z@H?Ml&t3paLCRC1&AR%I+w9rp)7~w%42QUNmszlN^|jfR*+KW)u#Vu6b$zC_LL64w zmS<(%ReP-ao2lMzDb2wSdczIc4rwx)G?MP~sx>hqp83ibMwiLVN-kk=M zBJL|gmsXFrgMhD|eF7SJ%(W-d>ir^v4t`W%k_eM~>M{vz*fsE_vlc^qSGfU>yaqa# z(6%{#U|9N=V_Ese=Mpe;)3z5FRBm0-{H$q1^MGb2qrr6hFsBtwUeT23Gkxi-+SWK> zyFWi&>E5*rl&{r$!cdG10$51l4I!D^rf6^J~kgb z=eUt11FS#x*|WD5BY4_`Ss;sY1UY((~KjZ!(ZzPrQk>laeb>l zcAaV$tg@QBxxf#OjeQxvo~@$>M48Zoz;+f@`g(jDa{$ z1r((}GKuWYL$eL*mLxp4vp_UT2~D*ZhG;lCf~tYZlc?KOFA1?3L^|!by^!2yXXOSAGIU=B*0UCb!uJPB z^d;VHE7=GrT8wcU9)?g~cTD!YpMa7iBTa_vY*n)NZLRJV@0>*GqeIFLp-^dFh$~yD z{ow%&0UecbfbrpMBpHeNyTq5gAVADV6=i9jF3fJCB+8P%3I3^|`F7TyOKK_!4b7JC z_4CB?aN=)u5ti)AO!R$<#M^3#oswe7Ca=KX%@6^ohE|4f21nIaJx!Vy!K0P@ zXoDyjp7gO$_lkhdQu5Jv$C*e`S9%f?RjJNHC=S96wrz#PpsPZAb?OLZ%8K`wan3$3 zh0W&uq!|iFP^hK&$5iSFR~y0v?sk&o0l%4wvb7P19hH^k#by#k-9D6Gwk*3ucJimW z*d1aV2y(MCRmy{13BJt1#7(UH`ppNoSd-V>PfJOlq2_X*Aobk~BVH%ZnI}HF?+ia? zw-VzNb=^*O+ZWo*=UC{iyrfQI@qG*pNZf{lNy?IT)RzBI$sW|kKMAGGe!kgX`9UY{ zRVT#&lzR(hA9&T7eo3)3)8E@yJQm-h)>A#N8_Z@EmgkLSH`!`p7z8+N%P2*nLS%}( z5Clx;b#af|?EMnM0uG(sCS)9kpgE>gXp*W|TdfQc(yA|qtTQE>JZZLf#3$3J-QJnSS(9HAb7yBekRCj^-G`_s9S6jySlvmqfUkV1)^R|>LqlDUN zS=zhX*)Eu#*L4I0+_Zf?j{^!E*}m>ix?S)Hns|NZvcIU^R(p+RG4Yho>($rK;Vi?y zd7M6HN5MEh@AoU!q`K?p=YGysUXiPAcFPE*tiZ7a1(R?_n}9mv?)svnz=O9{c~p|M zw*K^DCj~O(6FIghO)bmXt-J+}Ln(_?5ZH08#rjlI{YBf#fv}Mx1MFm$?w-pqaeKN;d3(P?4a#vFzS%F@feR=6@CvEI0 zVPgo@>iEUHu21cZeU|s@l{0yDy-Sv~@H2#Hw^O}(s*8N+V_z%L>f=Uq?j?9#_u*q{ zjWlaZ%!dh*zkab?Wj9);8+ah5o?L84)v>J>b{0_+%aj38{2oILN|a0UI_F(kh7a}b zLBOy9KvS^|wA*Vi2tP`(9s%!tHr!&n;cHGBppGi@mUd#*~(~=#IDjvWr^V3b&2Z8=zS~YeI1=e=#TD5gmwT1F!a3U zZ&@kG?T6)hTT)YZMBXmX10ewI;e6k2PK&hN61hU+5TU0<@L|n(chV(^(BoeuLYvPr z5J}LsK_MY$eQw#H{JDCD01%yD^@)|q}stv;pMo2z}zO2eSke++>^SSIC-N+2A z>@qL`R~Hb*4arlO=#6-3!V<`~d0roaCOCUTHxF0A+RvAFCpi>eXb5j)lpa8(g+J;G zVFSVkr%zkgYxVWAu2(;AfHodhqXZqd)|KvMPZLy_da@;a)rR)Od8P05Ww0L+XlC1ni}Rpwj_lr3$E+ z=NXs8&MGT1b9253Y<}B{G~LERAgNuo6G<{%Rva$ijIrd1Y+Eq)yY;-PZ3u{%9oeb% zK;v;(^-6cqEbM1hFni-K2t}oT`^u@!_1+{v%KxG`@G5asbrkvjT;P#25|#;Qf zbF-~efk#dSOta1vW8aHvEjgkew7DxY6^E?~>@ie%Qa5|-n}e?6TUBFsx%#abU0RG{ zR%oBa(dM~N%BTTjIz#^!LQ0wX6h-T)IDzwnQC;Cj20V#s2#_a~VLyZa zQq|5kBy-B7Ajqae4a*6T`Z!s~ZKI=9UzSQ*`tI4ciff<$(iCR1d5X#ohbWf4Q^h$` zHYeXm8kE;n!F5SFUoN}gxP3S{Cy&cIf^#aQNxiPQt%wT5rR6)DZm+xX{2(5c)y9KA z=+`xhD`pWn9s)R^vOk0R5&pV!C1>-rgu zlkl(BCBzgLt-yV~El72-pU>dY>g>_&Wb-5-87shJ!C(ab*i1i!2=Mnl<_<^Nr9*}c z)HNP?=9-;F&5A}p7k1i@*S_|3b)gsLdiic}gtQEoShutMM8X0bP=NU2d@J;2mwRC4 z{p=Rz6Im!_g%DTkG8c1t&UHYto-5axpbk%EJTu&9$WJ`xvglQrfNt}C+@`^SFYmr+ zpte|!g$p_m7!LJwZw=xPHGxsr|PRK$EHrFaEDws^dIZ9 zm))=fhFSIcG0)SyfB1Vry)2fvrgqOOwwBaAJ-e6y z@8`IKziumnyE%E5!k(d{SYL5$X{mSlzl5JUDPwPRhGWJEese+C8Y+EvA-eF_ z22|`un{RSU0D92yLC94BCLF4zN+t@`GAG!J0T!P-?YPZ0fygWSD}`Bz{%5agZ%v0~ zQxI`m*NLMZ3uK&$o9asA;%I*W4^=5Dgd?CmtyD?YR!KW&t#Y0>f#?)wF1;X2wpLhq zSM0F8M(xC3s@>H;CCG4Fao@SLcN zF!b3TXZyHKpMys~=0^$76_G`moMN5YFW^QO;&9d)l>A+;eP^|S{->pLb3c44EBG@h zXA*#u@wm^ zXqnpxq|qi|Qc@e9)7?d*)Sjwic6%O#Zg%)a-d!1-cuv}duw*KQ4|^|EtOqb?H(G!i zOMpYK&yyw!e0}EyvO_3$qT0!Iaqt$Y#C@Kwi&MPl1w=pje=pAy{+zr^s7<)Ju#VeA z9Y&j+g%UIs&vjrzSGyz^+POYY_Awk3yBC3s!*F-Ci8ZOJX0)Kj+y}_I>dWCk*>+_p|N$6~6y@{r3E}U+-7yhWB;h*DvkM?R{Kd-`lNS zRTBp?)Z03-w5!1YO+d20jpxhEE4OXEts3R!G!~jUqrlpF9KMc6y{@_V zNP15*?LvzWR)q9d^ zaYTH-0OMpfP~}`zitWnzAbqVUACstQ?m7w`*A22NDv0)3@y3QR7qErH1@8LV_(Y*9 zmUhst=%&ht%y0^+0Cy#5lV7b+!o)RhP+j>NVZ$4kz2=jTWQ#@&ttwcU0FnC)G~3s^ z30-k&IpzK?ZsNWNUFc8QwV*Tz)!(9;0DNq#=SX3D+m=_;5|c6?6@ePW78UHGwjoz4 zC$9EdcBM5=m_rt@qMmJI3G%Gxz6z zs=e;NULK$AH+fhIJm1?yU;#m{OK~Qc;!I>k@De3+P+iEPphjhS(^QKJDvyj@8D()K z0FZndt5;pde86n+%)A+ zXKT{@7bjAqy?)@!^D!bO`>K573y*y>#~Yu4JV~3DuU-USe_ZGJ17Z`f?A6* zZ9iPukC7OZV$GXgQ`G?$tSP=U^D*wYF=)VHS#I?+}YMbz4{9(N@#rz~jF zkDG9o3!&ewAyuRDh1YW;-sKnqPSVbRU`d%$_;%YCH!Fx`&4q$qlu5DFjMgs%nJOmfZBg~_?P?&IUOvEaRz>5QF*v2=L>$y-9UeM8BeNohNgaNJ)G=Z!kg zp>S;5N;5!CxO|2PD`U&!wphpQ>(QO->jjS4(h7Y`E@-eKi?)RzaSN}zlFrNJ*rsvR z*{JWfQnF;HY{Ov4F28jBxP6+asC@;lD=b!KuFW7oi2~q7RQ^*ART7<4t2HFh9z~jM zuZsu(K*j&A>shX@u8ce@A{k*EOk`R+g@DHE_fefM9}owT?E<2doVRN21XJL$GNDZ8 zp0t^%sC<+NuvV(rJFHsM%Us%BdwPr&JxRVf(%v}gsyesjSV^5!lipbxMFoKJI|G|m z2CMYRhnr7L=!xqLqaP`} z)Klhq`pNLFNe)z{YS4A+cX4njZ) zSTD)zQx>ilEBbZnkK61)pQ`IfDpyAwE5Z*PW(9(&37q{{o~K7soq1hVxfP&>t_>i1 zrKh!TislydUEUUTbYhNiz70-y{Wem<<@KW7NyHs*%K}xGVyI0uA2Ix752$&leyjai}e8va(Gq1kV`HEWk zJWrX!l;&)UeC(_j@$P+FZy_Tt{;}Ll>l>*74lhvH`D+eE+&ov^owKx{02MEK<%}~>)+RMZ%QIcw%5Vn4LeJmnPor}_=Kjc& z6Iite`8e6!#f(?a(p>TsR(tMBFztf*qvU`cBtWPUMZEDl5P9tOF z_n3%xOXql3KX)c$Krq)wp63rdkRQErKF)WqlMET}QOOYgG34z%-`lTYQ_uJJ+xB?% ztr-yd>UwL^RnCz$qj^q98_1n~%|=u0fY(Q!AB(*`K6b+D*=wh`=kJ~5k*)2fQRj0- z;Y4-3KK$K`aG9+)cMNBRRWQ#18k1v3`_efQzU ztA1Aa;^Rhex3rkA{BoZ|Gi`tOWfdterv0n3@GDCg%1v7MglELrPBJ(-BMTvnh*uqv>JZ;-TOYlCDXs0zbnBOS|BueiJl&>08$}T-0*O@%7 zV`HqB?x^>+*N_sey89=l5sUy(KJ7P>EhJTpZ)1&~VEm+lNB?ho=hA!2ab5R$KE=V! z#2Sd|dRGHs0Q*FO1}z{X4Ky(rin0jPl0wq4^X*gXw|4)}>2pb5Q4c1FWdicQ?&(Lp zx@y*xCYTZ zBm^Lfu-cQT_=7A$!I*ORU5jzb)1eTU2$L~_a+|Kx-^;sA5c>3ZLyH}eAiY~7g4cFu zfr80UYlPG{a{;-m^|UIkoP%C9sf@>?o{UU&!-wqhv>InRuh;KVO)>D9nOIXZ-|8@M zTE7FJ98Tqurep5_Cf}Y{QsoZTKR&kMKOAS-jdSfPQd%Xp+ooH5qPu1^z9xwM>Qwal17pxAEaH-4M zbyVIh=ui7^b8L249Dm6Y^UW78aN5{+kCYSdp$~@j-gkuzG zqE3;)FjdgqL&|Nw1-;Ypa=$6*I)S*jVVq?JO%nKyLU2UKobv_s@xtr<29)gJHwIcc z=Fs5=0qWq}03&v`0A^2>yB~PHUxP9&Va^SQg5lGHT*RlH118N7@N^eNZFgMn)w8Pq zR!}`KDaGc+lvSyq?=W&9^%z$H9MRvSOj;%83E{9U_*8bgZi)~{jeI*tq&NKN+BO)3 zO+kMbU1uc7*;QB>mCTbPKR&zMoPK8n%?^e~Q6c~|J6r%I(y6o0;gG@X;376mtx)b! zu_d2dlZ#NxY-Xj_HzP9+C_;9*E0=!;E?nuCrhAzNb!49#yLUJZhrj_j>}oy%J?{zo zlF#1%c{g>-bGu-IsVRCfJ+UvTti4=5?%vN{JzyOI&V~Fe4mZ+hR94QJqH6|InNjf4 zZ^!lRnj6hww}Rj7kiRdVIDu?7dT7jrFA+@+BHCoZD_Ug0%Hkuc<;x{{rJf|8+&%ygifWs^?}E4zviWgaj0%f5)@ zY^}HgbEV+p0$3t!mV6w=-^JF6VUSrV3`~H-p6)jvW%lZT^a+8UW_v^d8d2gCwohg< z$PwEE6f^HSv+OxQGKz;ODHh;H<@71XCjs(g8vGoVH08wa@L;Q~I6@B9Kgxx}da5JJ z{7ibJiillkW89;>`|{b(vVV8u9_1YOS1#XX{H)-h$|)Wv?1yUSr8;U;&1L*nTlL|L z*4$c-M@dIzNB&EE4ao8!4W_|jugHLVIXd?(@KVy-Moq1sXfATcOA4%EHjM*Gaha@` zyMTDZ=q?EJbwVbrEaS1*J;*{Yp!0DZX>CkrbxDG6y*wIHEG0%eUEa#s?!=(a^LJb* z*$6wzb{wEXOWD`=b`FCtpE0N<9zUX+n^W>jT-`mT`uX;lVJDPIiG_+>oL>M>Q=MXl zHVzCtIf! z1y(teX(kn8R+ZxkjEUIg@p8Xo3B>n`r4LjFcCK{}S4xR>LF*pHW;?QbRVfBMs9Zhf z-o2$(?%S&@b(KZJpc%uIDWp44?tuqknJGT=s@!K>-(BAQei+j9JSKDy$x@%j1Rh|S z;2^T6CPnqBUp5&Zzstl5rfu~P1R~9RG%~r6ODgs>=~Ot(2uAjZMp&9RTexcJuECdV za1ik{ms^xaJzl!oF0ZEwu@H4Pz|w9yRI_lZ%&JaEv5$c*yGp?5$S&5`bR=R@t3i2eBtCNk#b2**x$sMp$33X*{g4AzSdmFJSX4>c8l}F9H znsKWsI6!h3$Z1&JMb!$RsoEoJp~d~GKkQ~vpJbH8)ATuBMpKb1C1+y7BQZpUj6U69 zuM(`t-)Dn{OhN3oIqmcg6Ia0YrnZ4&x+jP3~?`HA8JCDr|5IGPZly^l`EG!vmm`uj+7`F zv5enM7gN!0Y6?xdEgZZf(9#@%niCay`3|8;_Z%z6ue7r==6euZ^f}~&$0Dt(6d3nO zQDY6uK4M9N(C-f_@^0!Gy-#P27HQ{vw7ZFVXMgVyD>F_V>pAlMx(5p}$+9wcT0xkt<9FdcdVN$@LS;tT*-#VSC5n^P} zDooLg4=KJ0^Hs(kp@+*I=&}$JvbNE#!rA@&rMwYC@|8W)iiUOk?0>Cb@U8 z%4L@a&)Y(omBeSk8M-&6&^E9+EBB#1&Ns^l$omB?mBT@J@8o>U1iKU7IuSxOh?QUx zfIid2N_dK@Rl+J%Xgm*5WiIpUc0?1P(JU^D8bIZGmVLQSDqL>brY*ThqWXllU&Un3 z%{Kh*-He{NWoyXs=%!X(miVbiW3@c-Qd@*iv(PC#Pkn#4zS!=u5dta)2P>9`4?+ax z7(0!v2;X9CF^Gl<@31r+r^+q4oUL9y=&S&T3t82h%NS78DMHGj-+fSn-UH^hfdPis zy#}&fpd?(I)40Uz+&Ny_rv_`;jnNh$SLI9x!ztd(uSv0%C=Qn;&zd7?2dcK_->Kg| z2!imq?y|z9S|fK)mYWObj}+&aG0`%%7Op70tA#btT+_`*;uuS3R{>GZ@eNmCG^zO; z7E(?oS7zkE=9Wl+vk4BN=!{{j0C}OTk(Y9Fx%%c!EGanRqSeE=U%XmI3{yt73Bo!9 zT%J0aBja=3eIWKXSG;62XZrd;;Mn@sU7m4PD{+0;-SC6@8}`YtHkTzsnE1aj{2tREnZ6kb zUAE#f%yHRCG`g;bucMDx>K#soV@s5drzuU3_85T`W?A0lXCJvbl~8MCGIVS zD~%qyeEeR3l>=<#{``@JMB(68SV_L1JyL^J)|n96LT=wU6Cw=lGPzofKYzKZznLO4 zv4CubgSz57z_=NN(JD_TAApom8IA8?^8q+NZYFwj5e3xl%oz0(*(1C0^jeJMQIKDi zSvJv+Y^MZ`i59`F)EcuMMbqZ&1QvjCyo`gqf@kBbK3`fiTIrB2dTetBPjtT=4+_?? z#3=>C$wENUYvdZ8=|GSZt=SEyM)Pp$6eMSJqu0E$?7>j0;n#fCc<{9k7;YI4Sr7Eu zPA^w?(_?(5#;0!p@SSmD)vlqkO&JBJ|x`fSteFS=Qb; ziM(>A(I8g^UYd^(6plslr!y31O?`eOzd16i-f*DyQK0?5B=km)niC!#9bdZwI8{_7vGK_@V*tRZymf zW=>*xs`#p3?pFtf@3d<3FF17yJq}wfP6~2zYIEMORt3U|0_h$vx3A}2D|By2sc91A z>6D;iMvW@(LAt&7{>$_4r1;DzYWY;;4tq-VclpxZ>+2&@_vmosSfTSl>wPyIO*RHO z8}s&F2VXl7YHWfJ?3$(^)>m#^>g~PpyuMzZ^ym4+-i5M0B2R7p7Y_Zq5aGfh*EYtaoQ2ZX8 z8VsI^+OOZ%^V?1S({;TzE%o&V+$`ZdoovkP>oN%Nj}0$PoKX^|CK&QLHl>?)-0rP! zSYEvD&E;xWceBlvfF|n%!(0=zKfyAE90l5B6{s`_9K$b2xQeYhL2fi7y+QRssdaO{ zVM8I|cxj$`|5715WMC`R(VFZf^m%1+2zn+cuq%M3ng$u#3|#!;br{}?>4`~s_c<~F zMHW4R?bT`CiEfWmh33NwyDb(&J+HiNaekjXYS_zAvRa?mhpWvVtV@R;FYPnY##4o0 zn!u7fjU5qh*m$z3Dd_!-6O6X(X2=x!YUatkF>m~0o05lX{_hb_rA*LQrhwa2*ElF@A^;uCK0)w%by5&Qb^GmQq8%^et_-kC{b4jo`5Y-H z&?TR5c9-Rbs{Zsv16t3Ms&g&?P~!5izz@FQ-K%g}6H$&o*8F;sTG}RuCy?xIFD!DL zC(`9OkSNMiCe0-&su4t|d%WnYHskiv`^QV`WCc7|2cHW58!g(E#7@Y*sF&9r=mVAZ z*BuTUI15FReYUFLyf0#$dGlO$~xQLisLhnOZwAzDky# z1Ud|WtGZ=(O32gw)?a?AFZvtMOsN7}D48%jq#KxS?^WRX0@l^S9?E8avuwE5t>({o?7oEWF^^$YLhyXLXXnx|FAx;a*yN?Gg61#zs^&lZgl9$_wJ{Wnn*F-Yc{UHu1KPM$@h!uT;*B) zyEIRU3Qm{TtmFPtTo#w4f{I(zM|$Y2D9QED{EYumlTC9)QwE=xnAGnoA|lO6L{GLzsqr4k8>Z+JE6PF3AX4s;X+4=IGnq#;N5E1z zCb1`8rq!Bf*S_>vX+x*nqpzpSdchVM?>ZK39xF(5RMtwQa*J~HSi$?J^6*^1*E=Bx z1_4Rm&2dh&MBhRF&rIVmrbE74dYRC|M74^(RPP7Nw}f)ML>8O3TXK@M168&?Z=1xah= zWu&E4*$x`Yj;&B3_)o5jhUJ-(3RWz+@0eXhC1wdFnN+4p#uyhRiVoB_HEJ z8evXbJ-Hv(dj(X!-khSSr0@0U63?12s=Yq?a<69ab1%_Ohw9mhQKz?KK4@h}v&F++ zffojg2SgFl(?G0iD5vT40uaE;Yu7P2uJ8Vq&3ne?o!9|L9gqh?5g*0Ra8U`Snb^Ha zIOR~GMRIpOVlyj=cJE|s2oOd^yaB1^+IEaP%Yb=`mZ9nd@sLsd!rq~Msw`t;T zmH8YenG!6@Uc)h+`Q59FGo^dNQ#r-u+Msd>BC6bcx$6ev#+P@$t@&}q`xnGAtfU+pCZfme z-ZN|+QKTr~l*2Nb*kL<{RNv675#j{HtJ;((K?FgBVX%FZI%;(pw(r8R$J&SN-{1?T zRq#Hze}e?n3*kWZSJJ}plsL%<{Yk!)WjR9%ki+)L$IJctCR-e!)iXPmDIS;xLpYx_ zVh>P$WPdr76-q0|%l)XK;QqPC9~&``9!Q=Fw+P<4T^`>Z${rG9!~@aD@(4fw^n-rB z9;CXCrX8+cCF%asd!-gJ*Y*iIj>Xd`ZDUNPzgj!r4%I^3bbmCQN43X0`q?^#O=)U8=&e7>`SPNdw_y&*InGo04qOHO zEghJ;6*e8l8nFDabk^|RDDh7=+!<}Pltv){Ifki1rtwdbA=nRX_N=KDJ*O@Z;KtJ$ z2o?GI-h#`W3@0BVWaLc~L~v$SIPBKh6K)apLgphpEpp8rFHMsl`?)ffrPy)HXQz)P zONT+7KOI%z%R>1WFKl%{#GaoKECWiPp`0DkWH+{h12?P6awVc(!1dDeZv3wc$61&H z(=>usQQ|u6=d)PtufxV@Fca2!#;JisGMoXeN#*Pm}3ZhuJEwAC(EmPJ}8{_Rvr0BVC?R&Rk#I z5ACDi<~<)b{W=b4)JTs{mQh0#)7qQ+i6Ic?p>wJ<#K25_TR#W9Fyik^F|#?VpC(9) zjKCi2fEYJ4D;{xg? zaTM5u0q}!e8pJ4*V?-5LRvH5td zWkhjd2Y4B*{YIj#YoE6eV_>2J-VxYqWlMX+6V-y zTs`;%^wd612Zapco9jN}(cK9b;zZ5m7=k}A@N&uDRfNM>m#@>*P?E8;5f!?)4H)vf zo3>6xqo07?#v(RQVn}WY82T)u3 zJ@&jcBsh?KO#Xc>p-M5HGAY14uij4qyhBtz)*!vDK!dF^i6nAh?dxiJ3*`}FTC+rf z0oK!-mn_mORoPitvT$!XYN#cP1GgyYhuWu4S{A65H~H3lS|;!|gj&GM(czREN($In zyJ3UU44*auq174^tip`eqMn#%UVXLK9WSH4milYY(36YYtvJZu><|^F+z7S~WaFx39Hw91*K#K&Dn_x=H*Z2K zVmKRCJAr5lVrh$|WSzcYK+~*6H(12oDpOkQt6jD%ujHNT6T((Dy*6`tBYsA!@pIywH%}X0 zrito0-c%elBlAt@t(=unowJxWj>U#6q?6Z27|ghQ%n3aYwosqfa0DSH0|kboOoZk6 zeVg5O&0eB>VmZ)@v z5i*F{C|AgMX+o$v%Hm2R@Ua;U7eeO5+y_S5w4KeA1jbNBapI*zVNh( zMt0{UZw<|MDv}Xw&2o`gW;J31wkt}oOrbR~BjG}2p;ad|S9|GRQdA!y55}`Pt3p-b{Q}7alKv3W`u*=!Jnw=9)OIW{(QQCKjjY_ zj^x$`!n;CokDtd9jDTcs0Gig>weY3m+tqZvV~22bvUY&zRg7GAWCgz-!zv!(d@rP^ zX%i>E=cY_9VyTr`byHpxxCt4cxgUi<6xBoR)QO1IZl(4A8llY+0d-=yA`ogTZhlHTSByuDJdUd>c>mh{puGlmA^|^ zWV7D@4QbNeAW|8q8x%1*)NsSEW2724dZ3HeIx8EId}73=*Y!O|XIT@YKvWPQlVNXc zbE-u<_1w^jpu!3itvNJ%R9LR)ZXz$M8{WzuqLH$&ihIkzSA?6@naS{AIgM{3GjX!Q zV0S8rABRgyW391snPdg!0vZ3WBlYV2>)0MI-Dem@Og3yb3%)bC(nkgrpE=iFp*P_Dj0SR+mc3VO&&r?cd#sR)9?)LtUys92xQ$2(zd5y3N)3X+WC zG`1VR7`JyBm^D(@*4`^Bn#r9h2}ni6$gGwepTg+f823W_rCBIdT{9iuG0FWX#!sAb zCR(x-G#4ONO`Q;?DxNfX7y$FtHJj-G2*o7AQ}$S8LTva5_zVlGPdFp(VMiMf?=g-- z)8PW^-(%KIOR3_%Q~phBJ>275rU^cnTq99rdsDt(GBzz||*=gH|~> zG~bFf73a1-2*M#OOKXEue2HMHPPwZ(vNPC#?X?2>1VmVv1jSy-fJ~Z&Lg>mV#F}ls zGg38h^9xy)j+fE@)h}MU=Pto9iU~=Tthh4HF&zurDhHE&0VsCQh?YBEw^mCDQw_Ta zR$V1#w&QCu%1}C3#o8Ib`U=8==ZCz?1T&M{y34p&+twBzVgx5!?EU(%6yoE%24?_j zF88Ng z>(Ac(|MG`VzW(j)*B`$lyKL2ZZu^ltRG6KZMur<)$F~M@UedzF9)(qKsxLZj z_pBUZn}qrRnq%AA(uEUJNfu<)H0&~_g=*GYY)rbK{pOgi$~qX{XARjWohRCD7x!BL zZdO508s)w#dHa^+fT%Z48>3*rO>akX2P!SOt9hc@q|yVnCPfc*L+|FQ+|-1zb~^{l zbe;AKIQLhxhroG6cBcAdjBKR_9-&Ou+*|!&-&wn8{#5T zao~J;Z=z;4760Q{j zq@Z1Yr1(Yu2GntG+xkP*f?N%L7$qF4Cp?%pseC`iH9A$?{koqRoiY|P*KH@2d2$H&Hs+E56GfpL`-J_nJZ^>A118>_ge z4u~$rDn4$*+uJyZ1sZPMei<)(RO8Q^@70qk!y+mCNs)3uN1kpsU3St@XLY93adb@% zX|UwUv4s-)W<#RsgtLvc;S0jLfs$Jf+IHxAfNki`Mx>t(k}6N(C)GrR`(_|*W@2xa zP1S_R^40=nvygB_*G>R`BFXG|f{zqa+Dm*|VI!T8v&FGD2QH8e?q(X6ViB_Ra%k)* z&w;Ja2BB-1Q{WlCP%)o*$enzh=Z^>@F1?O9bTZAPjg%e)o`brdN3_WqDN4{D0Ch;J#4B(RPE^_-t^x~16th9DCq;? zyV-FVHDvBu)XSNoZVXup05Z$Bfoo7+bX=L6 zaIN{Sjwbti>(jpnlglR8>5h&f%GoL_eM@*z9Z*!>OstPDceBtI1Ye!s<(#t!0%e7w z&AAS)5gAJH-mW7bLQcs@)h(H=D&cdY3_@1r-bq`fehHBU(r`od5@s>LoCp~S4c5@j z+FFe2HgT-)mTuZkhn;og#Ed@gYCqfzQX1{SV@V1n%PGCX3LBFM%^0U% zYje&^x1t4cDhz;RjToeN84W8`Ai5yaj>c6$y%nEiY`IE-CC*YjS(Fo_c=tZeG8zt0 z?0YhKD&!EjkjO#_(JZ^c$=Nz(E}JzYNJLEd3Is2Ny5AkrOpP;S4&Y@OzK4Fe4=>TQ#vegs8ihs%=0*379CMTw}}xg90Aw_QsZ< zL^x>KMTCM9iNk7o$iA9MMS5#Uyoh&JSj*|I(f1-Y{B{ZtA^%EwdXZ8X`>utNT%lB) zztAJnr0*yD`cY%)%*JwBxlaPe$T*?p2rh8;qt+%oGb)Lia_syD3O4s zc(H^KWXej|cvWA?)XX}S*J>?!vk}*??^oa|D_T{=-}{I>W2X3epTf%QIn@d_`hZ(} zVN>X;=Im8AG>R6)!u4_&vemCQ@l1dF{xd>Mie#|mm|R=H*Xgm|fVL_)p4h{9`gNNB zdEX2RaU*UM)F!5{2zlhw z*n%pSuQ2#e6$shN(>Zp-<3-G3%NQ%l`(*PjPS%pwjEZ`Nduqg=*&Pb7?zR$iqR|0S zp?RbI`Itz;t=FCym!1Hot4q59>O3$y#OM6Pk+vgSwyA%WF2v!;EUf+$EmzlOcLGaw z!EB3jqjDG~mC&N9?Of7JGag-%@A~im{~7SThFmgBXmM$;&g`}@b8E8}r-FLIn>ES7 zm5*5+(P0AD-ain)9TsUtQ9_3q;jSuW0RCA{NvBX3j&K42YcsWY)ovc57INKF3){U? zCsk&h2H04w&N%>1TxBf5XIWokf}qMO4YWNt8X# z2}&H(rh(0jvqFXyKLSl@y~Tj@^JwVpFWl;HI-DqbC(MZk z@u5~l6ySvV_HtF(Ug0J5*|2S-*f-3Qx|{KL#%f#P6VY=vi%lo!4CK#2`mG?SDnw?e z!<#)p?jjcNxLzy)o@@zP$sRfU91G^{rQT0_3;*|h;|J0dtX?v^l(sjgV<)&U(4xjX zm9}-`Y-)=^SweyxTYG+5mM0*&32h5Y&HGSnw)GUWKFJ(Q2(cp6sx&6KBvyM)i)5eV zd0G3h?56G$47#}C-o>7({^#`r+5((??$8m~Oq!=ZOvk$Fs8|9lKq8*?04P_ehxQ&n5JA$xCf^?QdU0fZzfp!cAS_vNWNXS=_kP0h zx}T<|2!9$Js{K@WhH|w!FI8*hZbjzl9br2qLLs`7N+-PcJ+`X>VG}Z1mK3cdMGYV2 zCWffgm@LLx40R5!G1Nh>*>n}g~-B-W){g?kD|I^o>eEr$q{aEQE z9i>ekaf`cu^i8jPm;xXghq&g0dX}}Jr zhfL2`X4kDd{D(4=qcg^h=>X9D8K8qv-mc8^uRk@uyS3Qg)$(4jBP+pwV>7THxj6#g zwgGQx{CkXea`LyS{rIUcGhkpOXj{VlUk&?gCGyQZH^SpBxJMx5%SZ5{$0Z-Itb(;! zO4w4|<4-n?GZ9B*cFAf|_SVP1~i1>-Pw+3lpvpQPAi$qb}w1vDOhYr`MC z)QbN5o-2*NYt5X7Xw-I+4G4a&AoU)cHptiR*35yJzH+q0MWCE#T`#sS@=!D4jr^V? zQ)!4zvKk*Q+5u6@?e(KGuS zVMcmL@^cz}op|*Ti?1aX-sy;}qBpMDYNw!X)a zt7`lDavj9Z-t_}s+#1aW1u=0ihH>%>pQ(a|X{7eIf8RGurQ35O zzk81vo-w7G+Qm5Da-aqlixce$s zIx^AZFv4;QB8Wat?7}+a6M^FK+F}H=8}bSPJKp9E_cXb<_hH~fhdyE2OA9ZTXfk}{ zSTlJT`cRg6c>Y;M`LV|ohAf3YtB6hXN4q_G=DXM5YtP)@>$vA$ed_JUd!F9?RHLVQ zKG*)yrq|{^^~9rpUV84eU!QvXbugaB=`wzok$oNZ%d9wtiM9Km0)G1HfBx$yUw-zd z&eeR*({XZpw_iTb7&_=}&WykEocV?W>)+V`IFpA6X-1J27EhZgA5=jERDU*yj zq4-t1lS;px#49%vy?wxbJng#^n-mD(WK+FAlKalaQ9~HAZ8tmBptUP9s3|IPU!ZvQ z{bJs|JnTa+F42-o`h_B2Zl_)zsTmn8b`}P2iv&gGxJ?rd7Nbd&o1EzYLy;y4wa+z|QQm>Wc zNC7x;M2Wyd{!A%2t+V@BM-mamk6jH&r-tMAXqCsLXKIh)+o0>z>6ERbj{)(wZsb7&;aU zYh$Xh`_R{o7kwbFDhZk`-X_mIunkA?i$EqKZIDWr?6%zSCY0>$pm8?~R3c!;kR zjJeL&gVRE3*nq|ck%R^h1~gEO&|ZNDV?s-^e>By(b&^X8C^1d?zHL%#O>hY-9aOc^ zlu$O9NIXSFr)YI`k`Zg6_;0I*b_3)*#HhSFE$eK$K1YH1CD)iyH=Oq=$Mt%huHV<1 zHpS|@me<^@8M<$x+t^9lU5o2|FY$i0Y8`!dL43rzvBN;Qi!fp}x}Z9l@hNw6wCK5(@UQ!BAyo)_LD0A|>wdY5%1@Ii*oo z1bOzGelG|^D9L;^1ZjqR6ZONI66^U2t*o^|baraE=naZED&z-itKpd}aWzF$lDpEI zS4S85eDsY<1#Pa5gc*L^SL=ap5geYkDObkYRWbyoYaGN2uTN6V6EB;hOW#HYC~6`oWw0p=IE#o0O7xv%axDe&S?n4ZZ9c$N67xh9gVG?D-nCXc ztrS`@68uUKYj=5i%_0X^w7AZo3b4?`Zn8wh|8%z|4cuhP%+YO1fSj@01Lch*5BbX?j;bUd*d&t=JPpvGN89dO%KW|t zYu8Jr4u$v|cX^UQR#y6Y&jwluH!6+RojMaG&FfR!6YfdGEmwngar}!nw^-eGJ$QAZ zb$MDH$IA!tbeu^)``J$&68rMAPrtqqXUofO&`~hYbqEYoL5*4_#k<>YKl}Wje*5*u z@01`^BfzH=o3XX;eyTJivL7s3fxp1BAKRs5*UVy})&353C>$O3QbJ{Fo_-J*$Rxo8 zfGFSE>WHBv2zu7-q!*qN0@^BN>gn+i3O|+Ob#G;TuT?oq)At8tSkEU6A~vP|^JHP# zJ4f3REGRgerDqg;A!sP^_QRj```UI z-L~~#BIA&-^N)UjcL~9HX0Po18{haCVVTv59FqGO`;CYDcM-e(JfTS6Rl`Be;7jUZ zF&5a)qtMP``piHLQ?7iWu4VZ5cJ5pAYzgot=#uJWUDf0bAh{D%rNzg)tB4L{U5?H{hM1{<3E zYOSm1t0lXVpWYnh55L$CT*h1e_K%+zr*^)0ZQ*~37xO^b1K<5(+vL0$MYu8_FWVKp=tbj{ZIaB{m-vI`^{In_lwW}@ZYrze7@EJ6}Ep=p2t6~ zFa6!i_LR5nX-2s8-lNaw>F;>OPrmwJ>xKUZP)i30g|mLyE1>`YFrxtgP)h>@6aWYS z2moq#sa60000000006|_0RSQZAOK-=b7gdMFLQQhFJo_MZeM9*Z*FrhVrgeDWN&9> zE^~HgRa6ZC2Pm{!WRMMkWOfaKWOaB8009K(0{{R7=mP)%ti4OKEXi@LH`lKyYmV<` z#ydiGA+zp8!+KD6+5^sLBt*ajku(q@sedp3){3lMRU4XY!=U>dKbe(}$OsRAEMNXV z|KmUZ<@R5H{O7;?;Wt0z<2Zh}{o(h2{Fguc<&ysMkH7z~pZ@K?fAhm}J8t~b&Hw&? z{_#(L`ppmj`fvaG`yX!q{eS=IU;pDbKm6e@fBE8r{xbWSj(DWnj$7~b*5Wrcj`kdvoatkYd>b`= z93$N%&vKiseZ*;L#zl@a;@|H6dyaeYmz3jZS|4kz__M~p>>>GwYh3^Ccfb2NM&XCQ ze;K%Pl#eoRbFGgO&y`pCnC-Sw+@5R1?cogtFIH}=myfpg@f647nj_v<@<1LRF&1&N z8h=?K&p3_W*Z59xv&FdV^Z7PMirekG$M=r`Y9D39?|c4O4Y_=DJ?zv|9wq)@2K}sbamY>I$ zU@p|St4@zEF=L|C_{L106q713H<>_VACEt4iO;KPvpzK2<4?)@2J!pqu}ZO~dd$%p zW0GTTrha_%7}LriAZDJTu6S7P7H6duzh2|x(68f*#lyE0r%nI5#d$4O;nMl>baAy7 zPjyVoN4rZ-x?2x9e&0Rxv2684TTGGKEbI3%h4r*CwR$`~vVPzA24~!Mc{I=vF-kpV z$iZkd|Jh>{NA=t17`alU6Y6K94(8O-`wV`7D(iHGCUgihog zW=vZx5&!Fq5z)ot8RNUp_@l7GV&%^G?z3+>UJ1n(3-FKziPIyc}%Jqb9!c;wrTQn*@G26tCr-9$DNh?$4Z|e$J~rX&pr^pk8L5N zK=^$;DA&(5v=;Y|FBj@-q74i8XB5+I#CNX;^ClK$jqP!Et?+@`50Pn5V~vd%>~b41 zW|_%3Lf?db8ln6WOJ~GV3S~J^<|97!h(T^G=c8+p3G9# zN)H+R5~o*2^)`4%)SlKr9L`o8BTLJT#Ms2m;v2*ejGXzBEU3lM52ifZbdOhyPt#*Z ztEsRcVrA z6T5$9EXwljLYalR6N_j+Oz00bgn};ZG0kF(*brhe`1hgf*+3FHm-BNR=k_)E-Q#$P zZ;?v(%g5MZYaN(D3}Oq5C_X&8fT4^pUOG!&hM6WpiNz7Cke|mOrjXfpD!TaKQGhbeR`u`(Mff!oLCUk)Y) zW7BwzTh@|Ye!H1MKCqx}dij_rnWdT;+xUHGI4qUeI{AHKtH`09s|GVRq?p$jQmtrS zE);HN>J+9%V=83+Kn29y4MRAy=rl9D733pc789k%TX2=dDq^sbO&C4hWS5O8A)`4a zM3OD7U6f54wcgk(F>5AU^pJkQB3K0zA^uWj8Zhf^5}?K64XTX$n1)4$OH7y0KdopU zgdG%`023h|1}%v~VKc=9iOa{EEV zP>b=Qu}m|xm`$0Dt>HiE1I9FnB_%69_JGi4IbJSa01p5QAv2Yag;^b+pxtDB^X{1S zansl}togHzDXx++t}=#iOj69`6hoiUc5(ZK>wrhbTGE=x?9w?DNo+VQ!ORfnIKYC( z1wj|*m}T+mtoTym=~K7^F+_!-$F50pD-;wAChEi{422W(3w;(-H4K>&BYUvI8RF2k zC5CRv0FJEz&n~9Z!B)a-o~XMRBW@qo8*fu%I@S_zA2XXtURh~2S#c(-#t1QXmN_dr>kDJ9SRoS0$9vcJp>=l#&$XQ zQnCKSPil*y(U%%r9^<-VS!VfN;nT(ks{B5lE3^&!QMjCZ>BUaNhEO%HV(oTqx`n4l zONHIlhm_e}^J<2-9G{ClH+Q*N?BN4XCS#t(aX#Ep?6+py1c{-}@z~*1^Br+un2zz% zF#}^?(a)DH484PX9V3sy5w4QgMCgsdnqc9vgsQBW1H~sC zHFoPkj>j!0rVaWpuG7QUpD2j^;PE8uVB5sae2xYD!w3IChKmX%@{NW$}{O5oCe}D5sJ7S6|$ng6={ppYY{vW@;{nLMQF2Db$ zI38;z46z?>e~y0*uphS#8GhNCr#>jF%kt-+@Bi-Sx6nIY{d$~K7W4FWUEAX6 zv*vYl|8f0xi+-v7_kFqRhu7`ip84|y$B+HT{NrEyB5h^)WCa6%Uh?Ok@Bgm1+d{`p z_@#9O@l^?>s;`QU_+h4-x+i6LZ&$r{B|Hq&IpFhQN z`Tc+X{$Ky?pZ_@~Ys~-me`6H7toiUY!@6zd>{UkgignK?h#iw*4MmAY3j?}202iwI z#J&z6H`Z~9{Ro$%;lzgCIzlnw92^-LukqelXvEwO#1ji`%%SDZcf?iY$68Pe0H3bt zA2P=K<+J|7|EeIs1ElsMi>^FTxICx8;_S$ux0btke>_->PRvn1G@%LENq!;!alI_Y zZNIndmuoBojgp2TOni(pW^0_z<9L8IqAScz4ZlV^V+9V~oKS4c4Sza+xtPaaKCQg7 zIKAV{@#4?o4S(w3y)lC@5^)WAN@5@}5&Zli?+Jka&$ubr7QVxqeAng6zJ9&G-tAK- zp1=DkjQDTrMBO5Pz7dxHBH*8_+hTXo@u5#GopJC*P&7;&kf@m!|9oJHL7Pzgg1w{ZHIQN*qmqk^Af zO`0?+@vMyEfr{aHd{Bj?md+;H%YN}R=JnU>d;YJ=x?oE`V!DSSBBDQtaUU_uiB*LO z&`RF1+I4FrN0Lp9cp(Nv67l(>jmD|7_)@RZ{q0VFo2kS_6;673`~x3@$43Dj1i>V; zUxwUq3y|^PV?8G#dxWM*x5U(93L>+MH0fo_gl^&+@D9x%JZwEiBOMqzLVa8JR=|TnO*ohx9K1F=mOt8#(G|op;>g5P(42@0JSdu%9-;*fRSQq8% zG`5zNUGWEQ*SGj(e;ei)>r@%F<&X3t$BpBC`@V2Ej*M!)@&#c$@?w>M(}4-lHJ1n3 z$QVt{x>x!BcKyHAOdGNze9_o54pd6tDUr}TvHy@GP6wgDBIldLaE!*%&JnJ{mJf1U zja;dIA6vwX-{Z(t$wl5cZZCm|1Iw>T9VFd9W@^DZk3lJt>xb0CV5jk*9icuH=wi9a zwT(e7j*%;+%tDU+Q}@S?ij}|=m2M-3#AJ+>a_l5c>=QkHmUX{FVIRW72a9|4$L3x1 z{MchnMr5%rTzcL(FKhY7?2-{lx=gCMMJWlS2n<%xS|zb!xZx*^7rL?|FXaT-i|#GF&o?Y zCg0GBRWB+P6EDK7l-?srdSV_|r=R0P%eHEIE&^3=;{EO7f19aHwhluk5$PNCK6!OT z>a_efYP>k-B)~p>P+OsCYV#92F>*N`8v97Te5PY)Uc1p#>Kn~gXDeiJpEH<=u2V@eCSppVG_3%C$d_q_CJ z$~b_rqIzs1oR-5}h>7zipI?r*>8rCM?LriVu1LO?bD_OiNEt{#Q695vM5`j{_)}e9 zA9JLfa~c5(#*-gvJCoy>nIf$IfUy<)q@p{RiH}1+W3O6%k zev%K;vW_h^-EqU3&<`DnO}y;bZrE2HPqR9pINN;?Di+2a?L+}wIyU5R9E&sZ|-V>%K{dUaty(xmWBf&tDITUJa{8KWypi`W;PNnyl7RszD{8mXm?tk!)t^B|x7 z+Nc4Q96qjlg)(FxBq1rlP6KOl62?XulCTP$$&=M;xDG+>7f};dcouAc_;Rt5^9G0< zVbHyZw=V02w?cvTCz**EcOFXLBvN5Vymj9jT9Vm)1FWLAj?J_4sthL}rMN|xMb-6O zFT%Y8wUBZrr{G7lnSmb}ldmY(hs`M$z9flkZKM1uzdsYZ@;_UYGlH!H0<3J`yxV2f z*|8YH+>n*r`{(I0Ov5!L@>6UYkXUzQNP4w)B_e#e5Szk=vAz%e9E<`R^dV06GBmJ2Vp#LmpXh^{WrcSc7E?%vH~IW>Jl;kyn}!*Pg)b`vb=KviRShrL zmY5%M6pK+g#L{r9y#4EZ4K*nrs>T9e#U&V0n@5xEq2g#-H`hZ8WOP#)Z7LTqI*&E(5J< ztc&=fy=x8PNZ-joCrwElDuNP4II^6)jM$pI0}{XtZL;L?Xjd=sbCeC2yR^-V@_ABd z<>$11`%Q&LCWRPk3{hi=y~?t$nbTO)5@XUOhr&PzU==E!3wWr@n%7}Fk|8(A_N|hl zsM<9#C1hk)!*dQMOwxB$Xgnz@dN%J3=n5rWvEGRp0qSx zY!kRMo}7?NTh4wYRu!|m82V}8PusQ%>!T*S-=$i4r6He3Ghg_xrlfkcMW4b$n8}E@ z?XUriv2B)o^1%S%UW5{nJF-<0552z!zBaBj;cULdS{S z0Er=`&q#5$YUPa|y@GykLBf1`|AkC??K#s=- zP8vR|pNyR^E76T<8an?5oM!c;1V!e2kO*N1knX6QuX#vnU^@6!aa59$CyJb4e{&r8 zgmMEI8A=u*ZvbkUVWrq4Tcu<(nM+ zUDlrJiMg{kuk!6vPC_Mh*#pV0ds(trlu17fm*aI=2E^#t_1|Qv!#Vu=p*_cO_%Ok! zus1=ia(GTz+jo7tRQI?0Wq-=2Y0`fF`TXuQ2|b0gj1Q^&*sFZ&go2c}9@ysCG@~|Y z)q&+eJdXGyfgz@Ux9?5TM_C*!s@~*_hEkI|3(~VH@Q&H2i`&rEw9#=TMM&`+xL2eF zc1EZXo^8e-RDdKqz&eK#NXJI4Yf@Y?+b}o7+ai&m{TCA{=94r+6B4!i>( z32oG1%!b-@eO}-`s!u(|5PfHivY31*M0vF$^54@l3=Qkuh3pc7zSI44AB( z9Tg01$?1j268nfSa$!6J{?tyv1_>SrWlsox2!G#=$pnLisI54;54XM5C!m#6F&t=fN6pqO%;KV1ugILeYQPqwW8`B z`viZ?SfuXQ+8P^7RPPEP04M{u3ef9ScEpnvdAM8x(@J2KU7_H}xMevRy%`g7_`E|l zGnX3#vgBY18Hk@~7fSJ)<*E#9!ee<63gO4=HBUXk+ztVfh1n8{j{J#axmpx#$&DmF zB%ht^9r7U)-DMiOo+h8HTOm=?;Ubr6mBQ{)94{#4l21bb)6;RxQRx&}=n7V_sWZ40 zc%^{T9*wp3iklt{9#6hd_3KmXlJf?APGN~tY%Z$!A&lihqi2~)p{~a#&bQ*@)>M3) z;maKN`IU$?l|=jg$UINQH094MfSu&BWv)johTk_bapg|+Ewe|CVCC@1k{xva=qrrlqD2EjH{!XE&$T zlg#QHUTakm6`{|fxC96l4G~-Two2mnN`YX!d-0-~NtuAh?OuOej}g`RRY8O2rzyYg zr~2E(Bc}>1z+DkSZFgXVs*P#kIE09$#L{a*TbysQ+>IruH@N!pEc5YCYF);GVs6@- zK_w0!7Zep!vd`x0t$gAKB;S6jHU@Ys?q>_lCHIHG5i&8abx!I!x(dR`lF4eBx;|Ml z%tiKTyhq*|E{10f1C(WCOhps~9cT8G7#^Lk`~WJDWYDS1M-$pU={1N8u?|Z!I{)){-{&Wl z3tHy*+{d?SR<6-GC>|%g5ZO2#u&<54X3U}VYj(i`N`w*s^ky|;mv73ytCXPZmwJ(n z`PZ(QmtQjUtx5;@b7PM6u;}RxD@_&+K_1GPaG5T7sT`2o==9}ZJA#`87?73RpU$m{ ze5yL3D#5ZoY+E;P@UC#vzvn$piHlbyxIE4}zj#aRj*=H6AVXf7H(Z~A9Ewxu^yaTx z_tzA(S($HNoqf8fyvnr`Iu1ys?2I9oTgB&>X?uW}Tl2v2bQKeL58#ol?e(^D>vsul zvE7h0OZUj8wrfL{&rd}kq=HD(#$J7WC4jw=>wI*YCPJ~?tpxNzwFoaTxu26o*o)xe zUUXd%tGM6tBArbea*;oe>F8n+>O7itltQaa{*DTruI%)-PDrhu&gF7co{@3l3?kWW zYSdLLl)QhW*f3uAlPA;qIDb3ScY_1?69n=R9r>%yMc4UmlDm-p%SXdufAryu1!g>Mj zm*if@H+U5_Is#)-*q*}B28&8ODmut6o`_TRPWQ3MrOyzDaG%r&!y!OC zP_n=lb-V53{yIiaM$zxi*mu6^;gCV#nz-RrUPa7ZMNy8}>;{l4_S{Usw%mqlz^8_$ z_LDNy#QPCzqp*~jL?A-dA@OE>h{MN;%}v0_pK{DJql-ynQy!5F@-0HFo|72za#)?5 zIN9dKcM;b>eV6Z3(4wTsZ0L(ShDGm&$;R*RlVHytzgWL_-d%y+43=s9sxc_#7ydm= zzx(Uhym*x7x5t~fn}DTDL9RFXMgi{{CSw2_GI5t=l^AO}2^dK(N{2H>VB9v$eDbQS zo2qg+o!OI)S-d2&Y$Dq-a6Z?})uErS+8!Bx&SqG2yKZ(CjLHHwcLTC$AF zKhc_D;ps5N(zt?<_)x<@8LP4d{LxSGP4s}AlR5>QV3Gs%MZtLWojOosR z>#>$6V%0-SKD7uiXZCTY1s*l zaWPlOOGrr|`KQ2|l3WL)@@hT$zB*1TH^=fh9p&>;MaWfT>uXO{)iy-~(HbhYrcwb8 zktQ(_;84x1!oG9qAeb#hh3z6xJOmsxW+01Gk9l{dPP@T@{UqJ+i#5d)n)Upt^l$1Q zJq|G`Dz1gTe33n0*kq&t%SPtdZqa08`fW9W}3cb z3S!FPrkZ|mp_akO-+(h0Pn<3yow0pg5)2APrb|{Bmx)!RXA}(7JQFmBdAG&>Cf?s> z<&)9behP>F`%{10X?pzT3h-etBtR@a^|tAhPGKpA3CO%3Vv&;iICe-dTOqiNfK+?F zWX?}~n$P1T_}Y^aXF27kRVYoP!Q01GrqA#7>0af#z+pXTJ+-y9atGN=B0#%PPhA7&bO+ z^-kqww`}8MeIB>*VIYMJ_o6td%(c8tk0#rrZoJj7i6`bCW=fT5FUC2U9wJ@b>RW{_ zvOVO`nJWy_1MZn)tHU{VwT#M0WQjZ$<*}Wa`}2BvcKd$H-(7)v`vO3_o=<-d4b+^~ z9#CO9gru-&jq@lhRg6_73!%M+Vidxu*D7wTs)#TgH|reY|JoD~lbrBj`+xwYLQ{2L z55qQ}gtk;dXr)ASP1+L=q8TL8>ON>PT^CHm6aD+UT8VPp2N)|p) z*x9Au9*Wq%$imV-WJTgXe}8Cbgls|*;~ijveYPT+Px4g$ZI^5-6$hwy6q1eXQ8hlAw#gC`wF$8RtI2>yG zdzNu(Gt_hehDms6I4wPtNqd&=aLgG)qskPe0lQ+)Angc;m7T#nEK^IS#1FprxLp)d{=CniBeDIoZ$o46Kp|Ni{Y^B}EKNw!VZu5hGo(Oh~3pSJ#OltY~Xeb)bUq zS0BnBfM13>aSWf@4V?hs#%^n@L(%y}EhJA>JSaGp`lhoH>Z>`~bqZ!_NOb?X{ z`l3Gn^u#N*WFO@A%LywQ{8qJe43;NZGeyM`O431!>Ed|pCNs<(Dws8M zsS7iI!dM#!2R^alM(cQd)f0=tR7Fi#Q-aDy#xX?=G)1twFE_}c$tLk=Z28!9N+HLpWMcYd7ON5%YSXvjBj{$v91{6BIXX2{hQ1sI zt1mW{HGh*&y`BshoZT7=yzu96~%*rel@ z!V?7E3HXac7&mE6vucuN$AN#9&#%Y#^^}(9eupcF;UFHwd>LcOOgY(P`*^o2R4-Ww zBdq&QP7!(9vlv@k4vLqfUwe@v>?$y>Nnj1a;G^&S?e>V9PzUUmF+A{%>2^hla`G5j zXjN4qA!jcHDBTXuPv&~87~d2!u8)n)Ay4G(b2hRO>7aCX>5m>jh|$Jm#56RV!#O@ zu48+J99L5B@OE2=v;aB7s?j0xp9KEW^;!~R74onwvf_sfEOHnumNh)UdQ+UAFImOp z1Q=92-VT$)VI^>Xa^VdV{P6Y+cr2D80SF(@0^PmI=hx$Q+w^>r*B(y5x?w)FUBwN6 zCpM4KujiWr1U<<_>rP~G{nn{s=%HL1<2MD^8REh2mdU|(r~X7|$@Te)nm%LdeV%1t zqivHBKs|$bB(Hp3-&1^b{(gW2PsBsFgQS&sO>;@RC;QXm0fCNnSd-z=A{H9qY+-~>j=*4PqHe&Oy8LT}xQVh$3 zNx)r-0dGWdvkYmg&Ody9k$=_3rDz1;f$Yz3k5i*>o3F$5X)HMUCZ6v{^#!L!+CT&X*cME`HT&c2p7CyvUrd=;X%8^rBa@ znLA}X@O(a>5Lwf_QLQ*~@w{Amo*|yoA>Q}3F*kZ!TfIXecy6a<4T7heMA}xfAus-} zdxNZ9^Q>8xE2?Sg+a;Y3{ktB2IPN#rb$n@fUgh)4aV*8OAGgvc!b-D&FSa zJFkB2mjpRMa!bdOQ6SI0KV~)Y1JDiYfOno}ay~ge@TndF*Q<`rAH z2opB+i-4}UFeNL@!0Y)t<1eT4^Z88RKQFEi*r$b%*v!Ysm=@F#$kI}rThEh+WHIMV z6=Yp@9@l@7H52?i1lFc@-==kdqKwTyt!$uT?^v%8F3eE2wP zZW|gyPr$Nnn|;Laplgi7%d(8XG21A1t^gvRvOdojw(0qJv7v{&ERRq5M1I^4Tj(KI zIio;!{5iq@WxZ~di&GV75s1ewjI;{Fvy2~%AD*wGpk~<)%Fy7{>!|827@UzVAY)R1 zBWZAovuhZi_RmQBoUCfkJ>@KJX2;*aNOBWby|mz)vA0oXWPh#;I7X%IMY+lD@+zNS zj^nSD?a!fu>fTEWsn^g^X;*v`89+x8>$*IBwuo2x9AdB%bFKI}1Y9fX-y-6ZfiW-d zn>v7Xc6BLPjug~->tplu5Gf&K2mG(?@}ku5Z;_R!99{mg)^ApNsZWF=a<~wusBdCI zhyz~mdxX|L_# z>bm01bsu)3VJJwd5^@43F^xLYK-Z23zd2Z^tc3Ev1nauO%S}9UkPkac@gkpJk5{R2 zKKf=ba0s_N&OclvG(G3}Jq8tA*(wffK0hlFaw_YRcCmzu!>dDy)fpdKlSgx&WGdjn z3{v-vDZ-YarW?Xd6<-URp`33raTm4C>B|I~>S)99LpI5&N`GvKL)dTf?BRGTjw#ZL z7y0~pJSpri8fQi}+0mzb3IuspK{ugq*&|evW2!+WU{(Q@5D`jumXvDBc($^HNpwe+ zIG@<7(yQ4~|Lq4RF-gE~trMQ@k z+yDjVL9K|e4a{bqxU>T6H(HYkGLl?uO!{4`;zc$vW4a>T@?7GQ(9mbqnTv_8Ia#mZ zuWEKA4^ftysR9{f-;FFup?e9Ta*T2c2KcZ|Fmw&lyuXdv6IpUwt$vdvNYQ#?o(J`8 z)9eHkF)C{V+i-OhN&DYW4w!%gC?PtOVaZmv8e;cSQ=FY^i2W3;_nb6Alroe5A;x=U!L`1Py%|2gDoZ8`dTH%lyqTBGLe+ZaFY?`G#6|d; zMYlCd1W`{|i%`82+0{s!AgvO(l7i4@mKBA9AcR@3(+OQp%>vL@ZIc(cyBXQnWBsy+ z`)N_l_1p68I@m*SE85Yt^{XN|GH=j~Ds@r`5%OeLMyBzP`JEJq(dot38+5u%zN7?U z+cf)0^`rz{7L~TmK@Q|<4u1!clseWXsgPSkvliumm>P(<^*9y25&KRN9AMw~9MvT! zh&(0p!SN(j&EWS|-)gCf7k68?qR@sc zQd^>B0i46dgC6C0I*Y)%eU+r zY!uHcVAAk5+i>j2c2OuSd4oo9&*#3Lz*K&F_+P+67h4RxufR#w4M)VZY~-FC=Z06^ zcWAI#TXC@HAldWfi+5KJW*%inKp+uatb$_~u5=@l>h^u89Mt)s2)io>tKL-Y7Eqe_ z)yz(Jt}+zx{&uAp-()Kx5%sNI zbv+K}!H9Bb2XFh|%{r(yi=VdAn|yzy9;chxQJw_K8A}Qq=~Z^-k^xqhLPg<<$(SXC za;Bv6EFr(;3>I$~6co9ryjl@yD?8<1;e2k0v#Y(@{@#*p&j=xNDt(n5D9<~;gNU_b zSNU1Kiv|Moh6ybtI@Byn@E;v__ZYFIVs;QX5qm~8?IbZ7H@q9_R9FvFI+ARpEgDG) z`3sY$zB>t_%1BiGU7<_Kqz4eii784tQl7M#X@c)n*PIn)-$ZaXhUKx55^bE41>009 zy^kLo8KDr>CF33M^DQSAiWZmH3kqRTDN{mL>*;g=*6ZnVRrcoNZ7>3Kelo%}H`k}q zMMuDl<;?G^>@Jnc@WL6^&o}v|(bf5^%IYYWd|Y74bV^yx8Rq7ks=A6@XvO5Xk=~~j zm&(PY)bE?mEAA;{IHLj?qR=z=;&k#b`F4(DxO6{{;=0DNDK&r+xwnPHsm)4|fno<- zb$M>PB!`_UNI)B2r|PVy^Rym`#VzNt^%86vwBPA&@+6uBJ*0x8<{e1ewAoOEN}r|| zJ@E{({c+asA`P#Lwqo${vuGHB>Z6MbJDC?4&g>6eZE@skil;+8O@M2t5WczYxbB)& zr*o7?s5_oV4!tV==m40f_xNyoEGQpN6%y|f*?m+wVkdWWbnODnlzevecgZ!ew7T3P-8NYykD}{!rHQ0iHUF3pGld3OC|xX^DkMY@5(}m z*8%7AS;nl_TFV||)H=~)<*cp#ef=$y18bb`o~EDY@8=&|b(qU74}&j6^RQ(N2RZIN z_mA~-IvT^Ld(v7%C|PTT{Pr>*6SI|MGBqN@vPW7+%~OZ*ywI8`s_dbN7f zvUD%nqVv2=2|--fhb|=VNc?Wh?YDswXNi~GkSR+FU=V}slwjP zZ$PxDpKr3Qfswto^Nw3@eggb8^m|KAzN_C*8Cw<#QlVSt>UWKN@g@yzNAV|f@^lws zm*UeQn@|Vn^pMvs#nW392*@z@)JXmsus?_qKplXc+%-Xs z3*<@u_Pqf$9k+%OJ@W45Y=)V=`X2J|^Wt$YpReZ;g}he?*1p=;b?@rRkBUh4)INB% zVpL2H?*it19t zHiT=5AHluJ_zZ6dL`v<^xUF;&A2c#J_w!-jH$eeSRD5hM6&GDBk1vaa^GRBDm+lL` zXLyoa9(P6*uaO)q9%q>6M-2*g??PrD1pGBwR^v{^NKW_K-X7MDe+{z^h$-aQXX|Bu z*)RVB8vU{V^v#hhYR;`*o9DA&#e_XAW)Ug-17lmN%zBr?nZqf^M~L=WIF*bP`*_;y zBE!oyn$z1os_oRHUsZc8b-=Qf8$8)DjhVJ?S_)k7w*`^xWTo-#Ta&7AFoVq?kL zakZ_;vqZI^7k0K3(61nkcc$Z2!7%C*~OYc(nns zjarPD{U~GGIAY9Q-c&?0-{0l)uN=4aD*KSfq0D`G8ut#bHtzRKs<<0RwNXsO%2Y&PAYC(Y=SzDfRaw}$NoZ$nje*`><$ z_KQ2nPBUokywl?%{Zqr$SMmIEw0iHM)Ym`;Z-J`V<6WCj{z_TSU3nvQe|RoS^)7!4 z#Rn)1%%+quY3Q+Qhr5mI{cwr;W9_(M%CBH>8>tb z4qxCrDec&`q}WMjvwZPd2{=yfW zUi^7VWY33W@IZPTge8N#ThFe`peHiadukM4PE-NJugFB5mkQg5x*dUlc>U{xR#92#49a&4tLOEBRVS&_PpE<33kYpLA*AUpe0f$M#5+R31eifgNc8dxR zB0&tm(Za3aLd{F*IYpQ`><1&Q0B$`tO(k8zL)+X($~YGi1o-dAZo2Fir@A(qc~Ljf z!|U>EBX30PGCHokq$V@AIpCem%}k-d+F5#UW*4@}QAp41q8; zQ!fj;?S7`JK&^t-P1m3H6WXV#>q2M%97dNh%PloWhgdKUbs$j9_F)PM@?xfqDQ5gA zU*z-4aU7}Pn$(fUW~te)HBaFBQ~M(+lPr!#+Q>k-Ra6%3R2Nk?@LCO%7Z8qsorLHY zMFUx^K=--FR&Adem1R$JHkDuZ+bPcR9Nq-W^O44q3dK)Moo41O(~sW<|r27raLOG(e>$5 z8GoIg_XF$aOXTl*Bpw_h`sI0?y2Q?(-NT@upf9eks^CUH-(+2l=Az77$zwwhD2P){ zN>014vWiTyGM~s9WiyOb6f;UapT$%^SCm@lZH229b@=RLr6UJ`gU4QOX)nho`6RJ6 zmzi3iAP zy{=lLq&*>A1T~^!PE7Z0oWf0KrS8UND@s>|w(uK=$G1x39#`>@s^nk9JMg4Kk6X2W zYUGevAhU~3MBiSmQ{(*NmJFaeIeoe{+E5h?=pj-w!eBOf!*zv>f=heDofiO^2?`9L1^SmF4B@ux{Y8uXx|PW@4e?LCeK&C74o^2K#nJ3shN0Z*W!0#aKH1{FGdTwNmXI_^6m;e8Q^eS2mJw^o_21 zk@rxnr>Aoo22&#myOkC1z<5w!nXJlcl>&%PB@2BA>Q_!*%Btrb%N<=*`wCAxv$}2> zV}o_0%d5GZ=A$3S=WBjiR*V*icGckH23Ikr_)9uxB}j+{)3gVwB{1oTqL$({+|D0| z-7))BJii_l6BngvhS82`G`zaQpP~SfT+BxRxKuzR^NPNRcejWF^(MZd`|kSsIR{^5 zG4TmH!?F=EA6TBDGPqM06V`0*lT~0K?3vlEiUC)cCZdoku6q*OL>6l=a3AxWBxOLT znHP65(Vr!V>|uws8iMPtxuP#p!M*TOroNVZ8nIn8zSMmf zemi%eZ#F*mY8?dE&Eckx>hU`y#=f(rZM-3jZB^6fVbtJkW-XCrsUM&8AnE$?Zc^X( zVP@4b`(+kVyd04 zlJkjJq-0$X30@=(a~5EB&|HO;1pI13RpN$nA~qE{+tP9uV|q2Is8I6|AD9TPOieo4 zAYq|5m2^$j&tc93<^l=cwNG^sW{OovWM*-YI_Fg1#JecK_1f7o9s!;pn7&lqF0xgT zN(dea*c#~N+;B-&vImu)OJy_dP}%+droo@KiSpym-$vCZ^+6Ik4T?YMLdX!r0d-gS zAsYt|V&+Bk>Zh|JoV4AH0Q^>{tE~(|t0N2NVjS?*4Dk@*j0U5n3#D6y(v?~Rk`L-v z1t4Q1{JWdf7)B#-7YP5R)(#|L1n^((v8?Da0Ds}Bh44>8_!pht+#QPql`p@{bdp?5 zE{K1=jvM3Or$GMF7|jG7YZI#->glKzaLf(zH;i5d!UFMUYl!hhKEEC}sr=ZHbz%Ig zC;S8Buk}zL5dWt2k{=NNs^wH35dR|mWvw!lhgJ!~)ow3K$rN3E3hiaZ(KgE8szC%7 zLiJlU^aslSA#arb&>UJ1lz$P*-vDwzjlanHq;#4z(YkQ`25QdnMLxeC2P$VAXt{9y z#p*e2oPQP0e_lBMmBny!nDDD>_g1r{3+F%72IUw#BsR0uMadiI--YuRyP0tQQ+0_4 zG1X+k_eZ&KYSunOFK?XxwDDoGwSKrRakD5Uk!)V_opy#=jYhh^tj@m;biIp!&M}Zm z%ZXR{M&m?kUopj*;n!gT;W1uawpSMG*VvuObb2?3Sr;rV+q~d>vOfGi@BUg~@BsB4 zhSt8x_f9_oq5s9Pbnk%uTvT-*Vgbmy)_|&79NAr!@o1bkITkws=q&1MihsI!Hn76i z6giKctT|E$#=aOG+NY_1CY6VMx~~{r{p6B{dZt4Y#)~{M%=Ridi@uD|C+EM&itkbQ zx_wj;9m#8);(_`64(_LkxVqgYHsY7hG=JS+>!q{q@6P$%PJ1egBfHSgXCc&`>jH7^ zR1cLMVp*opna38h457#P4+A=p_3O?1j9hl)yWfQ}xV^|CA4O1VP7 zsz6|Bbv%jWcu|8+DvcejneKUbsPtZO*4-3RjBsMLj@LZY4nlF&!-to}zFRjc7K)!d z=_h@ti7{S(m>YzbB?_Jp>rhaMDOaheY44PoL|3yrOR32CRujuRUk>V7SwfB0a7KT# zfMbifvsJ)wDAqEmIH9JcLu`FajC#0E3ke!Mp>oHPs0LLkM7Q zGV%V{?FB4%QCD^Ycc;ppmJYY#&Z_-g$1>&18WxixDe?4iGDc(no zxLYF}JB(8wQARg_P$|b8*9Y478iI!HZ%>eI=`Gb&ffCu`QQ=M^mH&Kd)4n23MPrxh zCLcfEMH4&+I;Hs&@+tAjRB3=(SSARc>P6#;q+L%PelWw@W}AuOR@Vy2R7R`xckb@4 zhkZvh`4rM4Rst@p0^GurVS+hwKp_KR!n_ZiV{5oQfLF{Fd6q`L`#K`SeB=1Mj1QVO0oin=mWjgm#xX+ zXUWoZYIedPs@tblxr(-mI5@rP6)@E*2aN$grQQYU9O^H$^qo8qCPqh3DvSU{%&?3a z)vl2&E4c>DrTAGkbIjIln(%mV#Z@GF5~U+;m%&>DUqrh&ZLtuJVG?T;#?Vsg+qxC0 zQCrTzEY)E3ZBKGTxG_~fB(UA9c>a~63z4l}Y)aLKh2SCq+x(R7e;_>Ka z)7PKM)D3N)KF=w+xBiZ0pIx`5Ud8)r zBDkU${8TO~YlLuQ>3%RB>ms9FywgdaTvmY@U_|kw>~N8vqt-^2CT~5>6vMDiCHs;C z7fV4OW$%h(vg!CD-<1TE%@Z0%eOrfj1t#?CoO`O&j`dl7_sw~X=^-Kv?YrljEIXDB zN>O*4hxkN8v~;0Qr|DG3cC4H^bo{^S=ZEbOk?ra9(w$2fZ8NrahgxcVI-PEk#C?m{ z%_zs7*&T)^k#}JJd2efkeP~}tKwL#}OHn0Avy&NIMse+@`h_f~4N*!oRt*ewZMDz8(;k zgR3C)sjFi_;Bc@(s*{hIpVTQmP9J7EqC2?S1hJp)!+E!~=V2eGoA-|3i@K1^W6RYH z=+i?Xs^kUvY2C77%*4?3Fl-*LlG;Qt1;mov-5z#$0?qr|bb5-N)tE-#oN;g^;UMk=ABd(w%#dTdN@)iWNb1Jby2%C|7GZTO{*DoK=>kLOfh&f4DGIgtl>l_AA_PXs*7J}kIX7N^3 z0u`x#8gXfqL3Nl**|2Ot5-#hI4c#5OqnITO`fTD2e*-C65*zSND-eoLh%D!CcOP8a zqut~~I)8aM6e#V=79IU`*K~0qC~30!LShSWfa)-VW$SS&#^K>z5o3}5jPtMt#khNu z?_Eu<%T5kxl3_ukSG9l@A#Ba2BL)sz{BMv*n{qfA^vK!0nINh1X6-S!r`DqvS8Ly1&gX zC0E3*`7A0~*tPnz6Pp0rG*i^QNKiqNMMbDY?bbS+WkcXpXubns1ZTr1j2R6+Y8fa% zCITjeUM$DHE`k6%C~>K}6cSWOll+znuXgLi`0}WYBC0aQ>u%J2abpv8X*Q2yKwOvJZ9C^-AE=^-P2C7pBNb|#u7QoO!9YtHungmFRLt@7 zAsX7HkIW>y+&N*0NTp6oF^$?D4@3x=RW+jc%C$#p)}i{TS-ye~I! zO=P0UaQ3QLE^LBbwWCF*XBbBUc$e-*s%_FueW?!ufdv>s*i)D}1ZXv9AJ9r4b#(AW zJl~J1&rsK;57RrxD`)Vh&u+5Zn%D!JDe0Lhp4_{%7=Z|fOfh>XdPT$% z+q=koc)?f@37aqvlvT(Az}+Ai)>3@PO>aq7RSTdQ0-l{9g@3qYQ_iprY+36`(~PW* zj!!9M7L5ET!=&qO6M3DjLe60>n!@s#rt56`Vnb|~BA)Nkdb!%^x9n`cyf5yxWCoqg zVQp<_)?>q5Q4KVwyE>Y2JgdjcX}~ArN)Uf;3m5(up_->-Sty|-T;x{J!z8TJSsaQd zdv&Hlr{hqbSN<+GGR2aaOWcZd%i(sE&ix!R(e7_^{h1Xjp8A`tSkrA{+HssB=E1rm zsSa}xSbkWlt)5W`=o5A!-+ODHB>Z;QQ;^2>rJH*t>rz=Q#K3y zVYQSi{N3bM3SO+EATo!2>QLNGz}Va8Gpp@e{P{Q9k;uOuZCi2ue3NDMEm$qP5?}Hd zl|Z4Q=I9Ev4$hxqp#yaUq!_b~_^P7UGV>hi26See$T6I7Sd=XsMoweo(Qn3acqd1{EXm4EsBO_jfu~JzUlCy8%{n(#4;WcaU4a8dadu;r`7n;D znSil-q=yfY+Pq|CWXiCdtI{`pJg#>08|BZdLvDJs&*KWEHOF_Z5mEy-%4^Am;Dt7s zTv``!DsVmZj4ncfDBh=v2r+scH2q3SSPzlbXVp*G;eL_t$Wt<0gV^XVvT_rR>rCTc zL3lNzH5w*8!M0%Nq@Wk=nt@aGWZ)%=9YCa3{|<010siW@}?8xN;JX-)v+oY+;$ z3O%wF!9yn$hx#@Y+0&yrIb~NX3w$BhiSvP-vV-@eX4GtQVkm6hh?-`>hv+FeMu4Bsh6o;%uI zV}BRzMt229;SN-h&iIun&D8(=cfY9oqHMG%nn!FR*01_A_U>6E7ZoT8j2rbn3r zqN-S$VbmpnTIA=HR!k}11tTsqpI?isaYH_*NY7UHv!ort?9&mgUAt0YausxQH!~7; z(HCdgA@0Jk7g083fyDU`Li+wTK2J+woj;H7E`?V;Y2RbI z>Lw&yE{#*o4+FpyTvL4VV2Y+B{AG1N$@aZfx%Mi{XR@>1AD>8m+TjlLWVcl$;#kT& zY@cr*Qh7m@rls@psxh~Z4Lb6%AyC1ae1DsWPaf27fBd<9x1;SY=ODl`x@!cc@I=*B z#7)RtIy+a@M2i>?S)IQKbA;s5BO&Xrvkg)Q>!<=(Qp0Zi-d*sj4)xA`pnsR^Bae0k zd_T7yBlrfEqqZZ9Y)qOgig)bBfrNT-V7D}85OOd2%19S+KRZsVXSNlPYG`VaY z8_r%}m>+wSQIRW@LqgWHjpQrd1kJ9YvaaI2u}#%Rj^*luX;MjvZG+S(43haM`Fv#c z$39MqM+DG<*EKuY%zWU*b2s@A=dl)E-N&~)iW3ABPz<{u%DB~?j+(B|Wm`XXt*xq< zk__?_kGU;dS2X1=#pWk2OIOd&f>Yncb$za8*N+%|5;!{B6wKX-UW(@NpYat0a!u;N zqllaky#gC}_O&na{dIOeGqwCUzYA+shiuKd;oS!a)UJnZVy)@Pd%Y?ob!OEzE3L%a zh&Q?F+Y}XCyZiNSpu+rB>FulRK1-U=!#Xq1Ez_l*JU@vc&dv_G(H%vB`6^8}x=ouH zn3K=~>m<=Cm1s~Q860HtP%3aOCi+I=FaZ|1oAMkXN>kR2;d=hNSxu9Ixu^&M-b z+Hg15QMhv_l4Of7<7szbJWqQLBj5ED$^dm6kGsv*mZk3Tte9TQ^v@c=rZx%+G{~|q zWe;cHCrE%t0;6F~gb zb^v_2skx()a#x+wi+rjfdO-o~3O#;Z93L0s{IUFK-3<$Ql*6W{C`1#e-F5uUKPMtJs`Z(J;X3Wt`%1>~g-0f{X4H$Grd_(mK!$m0K$tZF<@lwbC|d5UDv3gz4MzF8~) zgl@ohyve4G%2Tl%%ZHlHL#gTWl^ea0oouFx744`JZ}UxbC-%mhDfM_4`wxL5p|g+` zUyQpm6}H?QSP~iV%ftO`VmYD+8k^%OYXqKUQwXWkCVY3*6hiqT-hmv*SVQyI6%%6} z7eC!**wml94Fg~z1ZHZpbW;O^wF$`7lt3MZPxYr30~}aL@gDB}ueF#f z>_tAm9?xdlgQrHUl4MFYO-(g{^dagm^V1=>J<(@*m+zmKZT(Sroy!dX65`CaF_~f^971&N*yIMrA*f9 zvN|}WM7P$&Y_As1`qJ6Fm8tBG)rZMJ^Cr)Fk?(IS=V^KN@nimOmkf5d<@~x;^NWmb z9ag>5eKy(u>a%M0e%Oa`Tq?Fw1ES$(SC^~~?!`ob*(m(x^Sk@Ym^ca=L$UmCesQUG z7p@JFABhijhgU)rIoA-qAQzWstrWYo<91fFT45lI+;@A@F5Y~&;hy370y9aXHH{Ro zu1(G7?%6ROj9rhO)DOAtf_wj-J*~K!UyNN{ZChn2(8cB|RxmqKY6?T^*-b>;mpPV` z(jG)=r%yKBQ9R7NHq1xr-1Y9I?`xeBb!h_xL#C0Of1S5X6iS7Yr$kPldu3+vQpupL z`)m#mm-arc20_Qoolk7C=nG(*fC^}RSLPA^+T}Sh*|L60#|QURfrn6bx>`adu9=jG zDSA+t!-ujw9@7{3mrxSu&b#R8cJlC8<$RNGqO0Ruk&SbOpZaWfyJoHk7D}J8g z`F|4$BxM$Ar6t3d(TuU>hl2BNM0D8MptNZ$Ihm}cXai~adZRHy(o7=H8mBjh97RJ| zu}4&zZGK0C0n}g~%M2L=yIblg_Sn@5PpqTs`u@w`SG35DHKOy~Fq2fQ3PZCQ!qnE` z*sPai1=}_Z(c_$7hs$7j^_65@`TVTC75ssm=2sbwJ1nc3{Vo#Em=_FP&$gHPx<>Ms zJ+e>U%uheA`dxxpH4oSvnnyX`YHjEIb}c5Wi@ZQIq~>r z^BLQNImN;(CQF&o?wgu73rX87%lf^Jo6$U1>oGH+7hf-r-5tPe(Jog%C2Q>^H>`M^ zf0*+VM)S7W`P9sSoIWE0)EXQUU2tzIi@`p`g8Iels=1H9!yj+ zKL#D)AP!eWytxLK$@?gfFXLHmn=AX0&ELq?xEOx)coK)s=Gw~z?tN45$tA-sXipbs zd5g7sY`L1i`Z#t^`>~0(TA3l3A@ zfu);FDz3|yA({>`3-UO5lRB!!H*z)GE7=Rl$s~`{RK#@EkiDWjp}6t#RhwTy=*1x@4oBnU5A_#u8$ddMn1fM^ z1+eb!jk(l7zD&0}5x=F`J-a)`%de&FnaO+AvQPvR>UN^eyn??^x6)L|i1=wU`>tC4 z5I~(`9M{fZS|#z1({=~D+eE$9>2|3;8lSABc)J@(;tnX>E~@k`J)I0k7T6P6kTtvi zH<&k_?yf9)4V&<)-`+M{**q)zxyoh)tZuA`dAS2nNn@r~f23K(Z6p6-%Epo@@{o6N zez7G-7OJf;^7-|6a+|E;1_;F@%tIU!dKzWGhimZl=xsCk*&FHNRd_sn5y1sfI-Op- zd#7d_3`N9qDg^HS{_SIv!I@^?r%$bBCQI4mg8KU1c;`bK|4nmKEzSF1 zF^HaJQ+MlJt2cfMmMAB4s7UTMq0}TJi^UcrB5x6!2e-d&6QszX63uijmqk)+k%$9@ zo?1IzWVsqcs-M?*wrU`#2$nf6c%?|mC2hYmskWI&W*$34P;D+Z+j60R+i;^$nRZ2} zPWdM^u*^wePhDADyb!vV{S+WT4@pH4*6Xs$0tpH(<|S+}A+hGBXZHTzCRAUi392Ra z%LQ&~R;ZSn7+}vQ7qy5dk~ek(KVq>EJ}cBgie~7Mc@VbYAU|`TahK%baNFD6yx%$fl}3Oqz7Kd8fF>MQEe*Rc{rZ zgloeb`GG{B?%%)2cX3f4`#Y(1*o*ApLvDTF&$VK$sqW@<-zCA!+*_2C6s|%2m=1&C zifNh;hq0wSzM4EKy7XOmucpf6VsL&EJiGQ>UXnNl_!B`RZ3o6OO}p{G|=v?hv8nPzGNF3^zAdX;3HifR%;QFx}AuY8)bx4UPL!ev8+MyGniAoePH;xBBUaWoY~FaXpB;JjjKC&ncUArk*8Y? zDXpd5fsH%KqOeYSkx$82%5vU5MWHl4&ld5A&ju1wcQ@ud-P(SW*}AJ(a!q6J=DM%8 z6X)$}{sb&zT?&HA=`!2{!2L}zhGa|SO?Io!7Fz#Vz50%7o}}Dd*NNFUx3)EbOK;^} zKGkvscn47?w_q`?5<$|ME$r-W!d$uuEmyXKIma>bbbE6Q6MBK!&!G6^HaDf zUPLaexuM+72ol0+$`=l~#-E3~s)o>$)8aDaTB*C0N_N>=8JYd9EH+a{NMk?%;J9xN4U~bEa`T;w77z$(zaq4wxq4rfMwR0&LKC8J0h(on)m3=ZeyVw+< zB64H9roC(_vC2f0A=KSzh>keLCW%&wsw8DMO?P}Kmo-$h$ikjdglbwHs7sw9SZ)%$ z^Tlp~g<=wpXZLnTkBv>4r;AUcI1CDK`{eGv_VqFuk_*t3yT)V?8>I*i)O})Y#z@&u zhcs|@>!F?bQu(fwCWz4_z)H34sj!1kZaZ<6H#Mlu=B2~U<>;~qs1@vGo6&Cfr>?ry zSLf0CqvN@v?|nFuNV-gjyS~pJqSPQ4|LFAWi}~Wsw40W77=PXv+pX zAL6ldinU4ZWy{NQ^VOf_eZI@($IcI#oYrR-RhSP`r)wA~nd8%Bdl%e$h#|_uSdA;O zRaXvop?=7^$p&Nl>fNRJ3ht8^++C~NPG#{G)b?hlU#koD)b}o%EV;Wm%H{f3d%TKw z7Jb4pw%xx;g{NnP56X7ZmGydfPm@o3W35 zx={4yBaj+u;t^@;W@Jn~z-TQ{N{^~Uea{DhG2M? z0YssaAY{oA=Z-QJ-|gBi6`*MV3XVWO%XdvmBG%ruSPSlv4LGZZ^yaqM)_VOKtN{B zU9sf8b_feb$Ek`A^G&)p+Qv;QBcn3ivD0DAjoDLj4$BF4Qj$JfyFO_`A$mYryUV+G z-xvA(E60URB%C&{{AhO@^G#mq93@c$r;n622OKQsXz@-eg=u_IQy(zE!l~`csVn+* zyRNMc6~8kq)|1JdPcCCYEO2TwrCv&83Vr&j*M71SFlsaPDNnUzS!SaTaXD$Z6OAl# zux@>`nr{3F(`fEk2$@A9!FhL&Qb9qef_dA`q%;Kqr)*Xf+jEz|~E{>M%*WP`$F3j8N^; zlAx}te|ajqR>Uf`%1*8|motep98m8P@Vl;Um9iy@iDK9e#rZ65HhrCLVhWp$CGBK* z_oqC}=zORvlKJOU9-`d(G7Bm$tzS~zmqbZxHEF^-QTH+e=|TUf0iuj)v$1J2NXl&& z2e}lT#ERM5ia2#40-o0v$Z@KjG;Pe$Eb7qW9Zyu2W5>vnjZm589p!wl}>3lA|K< z#2ewKMrU|p`{X@n`T4iiPx837I!hxfIF>{%vk&_l=+;#@R>k*JTViH}E0+o<$l)gA zNtQkwA!#Ggn$!HvXY)n-*v8(Ae118OV!;V{YzWHQ>1sM3C#4zfY6VYQHh(l@GL$NUGI*)B>KICqK{3lsq>R}!PI;8b2?~=S+ zy-h+8F1x1r!Ra=!`Ad}o*FYR1($I^d#hQS$5&`PNF(&=}BHwMEOd$Z0?1!qXC+?f& zVIU^8-V-f3jI3l^IJ(1{Ds>dn@@|_xUwl)K;3i5#*h#6fajCLjwrcy-o2{0gbN{a1 zoX1`)=hNTqG7Z;f9x~aO36Rc=>gIrue8LfTd;F~Ctx2YNgDF9feddmqz}AZ{HO=Pu zDXVWI!0~;4btkW6WU0E^4&imZ3bwN@RGB=eZf82}-h*9hj+#1Ii=)_=m%L-pW?Z&) zxo0YgI)NC6yd1pkA>;o=c8ny=r^jiBk9UKHGJGsghqHP=@N`?x$~WlhV_Ut3vtcdj z0V0OtXSq6(kUaG4sbKU$^4+w#_r6J(tEVaor4BEIDg0os+f_|&ta#z%jqPaW-;7J}JB1s5`DdPBwF?&^S8-pzmAd2f1%1Uwft9GnvUlRaQSgMbOXHrzf+0 zTZIqLHN}w}xDals?5lN|D$?khTTPuQRhq1o)P(m??Qz{6Is_{#yNM@dFw<~1jbSxM z=H`nq+;zJDgkiOWTV)p?V{iKSX?f38rJ$I_fLigo7SwUmI^7xII=yux2fH$7U6`bC96KKd zf@By+n6^p~PH^Wo#<=*ftpOav6?NBEe?y!40RZWtM4v*UM?cCpTd0X8aI?0oi#705 zR#!O6uJATQlrT(zQA8uQlk9UROQx#mOcp5$N-EekgTQI#BGn&?Z=s04bJREKd_6|Z z)GTgL_9C+<=kp;>ao`dJ+q}bK=2+c*2u1v?lN-c;pka=yx1mXpDZLj-vpJJ}`m^Y> ztB@Yl%Ph6?I~auO#$xIky^baN!>TSOX|q%>F~B8TIvmcTSfsox=`{Vb%KesE!p>LG zT?8*iYkij~_8FdvM3e9sL@ihX!&JW&VwG3< z4pW`jowM}7eL-MVMJ1Bx-1R(Re%^?T_wjqKSb_T6C78Xl>@{buYy7$mwVmsGd-1KYbiA zW>IscZ@1}fH?_vqYZ$spG9xRy#UmAipo^}D8QxC#Ud2rZRJ)0jJj&I$lNS+N{mwD+ zo^B+k8r+j{=>4%mR@=i+oKb(1f6<`+x(D_1JH-MxzHR1-eV~~+_E|7Ig&<(tF<&3d z4mTf%3O7W=a9e6)liavREt!blPU&!Jrs)B<)C|q#aZ6eLX@+Lrn@(Z0_<{^o^{gSpOs?^M<=B9X#t&Qz_{z zqDs<++BF!jsb=$PRj4$gtM}1e2RTkW8zwAC9|({EeFJeKhc0puXto}|22GlZt_}Ya z`o>pdEhRA{=|!}5=k8^qrFNhdSpKXQV(;1X2Fom+{w*T0|7{~qt6omZe)y|#(fAqP16l^oL$ zso@_>U463^niJ=+2TTEnEgK;?O|mPy{KzV?7-FPFOS_U)bUKCvAHI{Sd0yr7>+vF} zFdKlIX1Q%u?G6OeaO`l&{H*TS)wUh3kJ;*z?1o>&Ss%wqHkr!DO|-h-g>bVPgmt-~ z>RGAYXyTkEv*wOo`!HC^>a*!mwaiv38KWw>-j82Ts|qEvfkrkP!yZUBl_U;~{wlfc z+WP;R`m#C=4c9wK?Fb*%STPE=F6I%D zQIKC@*m_NEK8)Fdw)zA_p4xnRlqPYKo@F917>lcDs%~h=>+Hx_4s3dN*@X%#r)N>1 zxGE*~K0h(t<`Dd{2BpDo_LBplNJBV4F9YM0=W+hBxBYupwL$W_NWOB$0Ds#=3pdK| zO4`%%-eo`)R1&#KYP<)#qJwfTX2|SK!s5w?^KCrbn?3C0UhMBBymQ^zFiV>5 z43|W!O$u(Z)Ntb$ZX3+7=Vc|W#<9S{{-+ub2l5j@j!m=_2{@WKNqr*jqv0ECl3&7L zwApWxA-?BybTLMR@xJ)=aF}_nwfpw+85B@fj2~7;UsIi-P+vx`h z(gY^_NwQ^<5N_6;l-^W07i5x|Q>++sw8jUmRY>L~&K6Ev*egWKRb1`!^*A_F9KR*m zp7?uGz@qk0z~Dy5@pwa8A32b7)Luty$WWlaFt%XHbxKuTFhr_if)oq zD?gW(P2rQZ@Ru2NNJfeO#}YLb5zpWn~k~CDH3REEX*lRiG=sJjS;lx#%v^+DdX@ z%=UxI&?VZ3t2H_X&uDqmura!sJjpc?phFbhod#prn6}X>LCbEdXtXT2gTgJOArCBSOj8W3-kGege0d_u04^v5=^sQ>&V9Jcot+^-P)rVZ(E4Ew+rf#SG46y79GaF!}^ zGcOny+~`lDUeMzy=>&w5(lpKv%({?5xGN6!Yfk$!qFXX9Jjmuq{D(7xyERU z`~+N&AP3|!n`}5usE>&e*4xqwHjs2l2N3w5nJZ$!82vm1^Y62x^k#&}lRQ@O8DGqzG0H zEi@RXUQ$1)uS^TN{*jhCEfMSy8CEZTlTbj%X+22meIRp)=o zEMBDHjbBusU(s7iQK3ef3$G?W;Da7+W+g@OMrW5<90i-eBaNAWo^a!p#`%c9c&UUJ zOH?B1DIfh71;rV>bSb5VKWD798Zf)G2rvInGat`sHQf|PLqZsaVCNc ztPBMz(f5s+`=F;1-$G(jIlks1Axg$>vUGvGnzEQ~P`2wc;P{mYTs93&g5{V`g#QIr z!C=LsK&pbTaka@NOE+sP8e^D%pQAe}{=F6x~(~?ca z)*xO^fnn?HqIO?xjsCn@<5)uO+NxNI%cRw2yQ0COo76qIQ`)MxtKIr zCE_n}WQ(N0HD-Gd@A?xw$(1DA2wIuujVYk9ZpdRv9AEHGo8~*Ir*R46O$ZN-_Q&M&ZKPrNR()jS-Y#^9o8ReVv-J-5kz*98pKo3}LL$pScT&6*} zU$oJ}=?Hbf+v$~&U{Xxjs&ha`RyejwVN9Bi;Xf?nIUN9}lBDxVnsuZs7ul6_4?MiE zN>wy3M%kXt!tFV>>HTDo6~MKJEoKmExH20Mz)#V{)5U~LvQsOH$VF$!#w!{{DelXq zlvM?h!8(Rv{h;LGff`1iIpSv8l;8#x^OH?lu03(dsrn^s}@5O+Ma*aBf(w(Beuvl-5#0VN*? z6G=?jb&q_R6mh+bDoXDto>^>2y`t_Wc7yaBEg-O;iKdcFvSwrtN&b;1d#97()N~*8$AT?d)7D=J3N@t2L@r0`7$c7c&w46|f}GwkiY}P3)4Anx?3?*-ypy+ryN=o*G^} zqv!Zghd{Lxo!@3F(;U?U`O{c&Q(6}+510IP5F@)ZGyL#E82$Zaa}a@|^mUxe1#NUW z(qgh?8nyy(oWP6bT5YnjP2IMHrVyY4t_V(Y>1L~(ip&SFk)(DJb~9}P3x#4!bq2uv zecUvYi=`PYFQB{m<1VR(0~kgHP(|HfQj{QQjO$S zjj%X22Db4IQE-@KYP9riLNT7vg-Ga;MHft0%Azos~Quv7W^yiWEfxR+C`>t846m%x+w> zB#OIoshC9GotZt^C_PyzEA|-0%cPrv%Pu<#C2>=nsd+N1c2b$q4h$Ra5WzQbIshBu ze^b2~kOkPq?4->JyEr*gw&$E0uYSnCdS^b;rS!tB+PRwdM=;cQOiG%azfw+z@JG4{ zHQ5AkNs*IJ@;t#tYdgJa`5O*VYZA(ao7n1y&^b7SPO5EUAquuG)CgG%Hf^v<*t!PU z*vAJ+gu!${ODE#!*opIGgDUpC&HHrv=pgj_&`L|MJYYK*<*DO}MM$qW+UUi8u5CDD zY|c>MJ5>Y$PK&}@d|Yma8lm3wH(-U0b@$lUA41A-FhnB(yCRAUg3;(el6E4YZAEez zQa;tb6d){l1!R#|nzl!9kR(Eii}#`w19}O>Qza>;k`wL5>w(OJ+;(MriY$R(=mXaZ>qDXK-9BHA zBLSTCi)k?YdD=)oKz*{^PiYIdA26N7;jli4a8+SzaQ;wnv61olT z3c`Fnn-AXq#>Z80m`MCXVEd}_s@v@+usW5^1%Jo6n#MYavm4365%F@~kE>5=4(VY? zozHOcVRz?d*AdCe|t<)wL4EMIxIniVp|U zBrM%*Dk9=^(lnhwYUs@e!LYEMowLz$S9Vr&N+Vj1FX$Z#(FL;zw)JR3K z!=~6S)|*$X5&H`7#_>}vOk1(sRt*|l6On$07Hg_Bxn&P(K`JgRoAfCh(~|vv*#G)_BRB8$cYlb6QDQqB`woj) zJB#s`WHD{CL4{f^r|OU{29XMUKF9Nc!|@89iuExXNfv{r8Z4|mBF}e#pPSv(em+_7 zH7PUZxY|Ecs;KDt!uJFEgcRohc&yfZxlymo?4sA}48}NYCHx4kT%L2^n3hucn=^lS zKWHwpg5bj`=Vlu?qCAGE3BVDVH0qcYdjkQ{&m=?mBml0j1pJfh92B3ceZCyWoWt_W zhFoVdns!WPc_cxGBFaxmv^p0_Q-s+7Sa-5J6i=AC>LabkM)f@>+cje1#kY-o&_=DO zN)CWb5*;9>3dxd@l-CH60(gX?3m#fji9mMoW@JKMbi9!0rZSb&GO2s}+}AVfnL|q8 z^A%>sZT9(kT&Y*&vSMn>#YN>MQprNjYAL&Yz8*JvS>}a00;GcMsQPTqf8&)HAWJ2~Y9`OxkPD)*adtGI9I%Za48Nm85{pO09 zDvPr`1eY*2on~GxZ?pj|okVbZqZfl`8_!qWXb)+YR%=ggor2M49rT+ABkLi{fY^6< zJH8%losy;g15sG$@@MX)V}xn983G98Ixl(1P1Kf*)<#S*p4}VdUj1>8V5|n2F@xO3 z@g(&p$};ft2g>DyUN7fE=hM(h;&=;@wkDzrJr5VbC&e{5+z9f5Tv2II0Gktb`-x4B zSNT|MKI?crP^UWD6A5Xwv35;~u-wS`nZxIE8&0P&`$MnGyM=CrePko~CZ9107N|(Y ztyFAgQ;^r&OCg!hSp--T*$8lr=s{E9IJzEgn9&lFkrFerGB%{{aBSH9tMne#VS!4XDx^EA?0RV ziF$-q2Oxk?jBbsEqMkr4&=i{D6EdyHS!zA)6Rv#UJ|~+U*dV;1h@O9Qu*%Q_E=iQkeec%orqyozWuHdg8{AQ17sU}uIX9aD9lcg^F3QY^iU9yVbp}^I;=0~pNUN0)9VrvhT{WR z)*HPXSwbgO!!z2DmwU15Ip$UK^1?4g!&MSxUto?MUpD16u_3-}fx=k1NV*9^7^2;s zh>5_IKC`K*TdTM;7CCL zzmgVj;cEqy>~wIio|BEs6>yT>kQv1=IvwHKHyJBmd z=mu$j9@U4B4e8s_)Qq4m%sIpCLlFbLdr1*u?hYF4**6*5IZW7tbG^6Mg;1UavJX@4 z;pV(pc~S&rf;H>onbTegFshoo;46S@uwJ%&1zKAJG^p$VwbwykK_a8WxF2^9nhXQ! zr?I3p^qJuECw)Mco+0NHsw-;pSgY~AA^a5as!ekA`u8e}KH%R25o_4oj= zdZNX-^sv)`DpG6fbabY1IX3g?OuCzdOyTuU*4djzx->q9sI;8R#@hfBakKN0r%q05 zXCtLD{PpEVQkaryz+EGY_z~1w$O_hu>0`vs20Old9X~1ctKLZ>d2S7xwT?1*?RH!V z!An?ly3}=TiV*{N`Odye~ zKm(KKyKN-8p}?d>M1r?*5|1S>8_$Orrpw${9rAl=qrKWs0Kxs(C&v7Q8@TZC5FK$u zOzQFZZ9TVfe_?L?)q69-2J={>v#Xq&O#(34`mjJA246I!BYF=4(-im*iWsI~R_5{~ z>Uk#S2-3yC!a-YIA0zyjm5B+@1Vs!oy&n9K&U|Ik8G#e|_p%87^~71xBU@k#P6tP2iON`tEF7;>uQ z=Bm24W9sXfjRAzZqgA?SNm@iA+iBx`@)q~?d^C+VX){udj&}6o$cv^U2BPf~vwJl` zi^ExrJ?I-D4%N7Rsgx8s+nOzQ_Y_SD%qwV+$8j)oL`KC((tPsZ~G8p7EA@$Qi z3T5Q-%f~<{HhnB!Up@vhNYP8?mOPR0w{yo04|Z;3G$6x2?Akcad)om?o?4o@O%I;L zQtLqMFMqb(n(VKn4^Yj?Sqa=89j;JoNtB;=QB@0uNL1CBp}pDX%W-l(2SqA~>?Lb1gxgAAlFh}NyMJ|h! zZ6(@@{_^n_iijr&s}*qsrV&Gi+~(6r3C9rkW<%bT)A8#Z;yX2XsU>gT$iBYG1XEV? zR%$bioYWEc5)o52_j%y?hinNdSEuB3vRNH=OnwrHIl>NfEQ0`(DB#E&FQsR~%cNPkMGJO~eD(o#R09!z$zh919zmiQ> zfrmNRk!JBoA|kwOI)Mj`t1QPhAaVi zItYds99(J2X2aYfbnRr5?~MfR`~v1)&)ZMXtmeaep;_Rp1Cl8cijQ@QM}!;1xlxR! z2N#c+E;DV8WZ3xN^dd8QsXSECc_rn{XGwH|831`i7o#;pF;Zkz=*3f;2+tci_~VnT z1hJ4b?jRvFnSZsYa$aZ$&9RNj-r*YGIfC2h4un=1N-2#Dlji_VVR$Csqh%5MV6%Rd z+m?9HdD+2$4N`c)GzmAA*z=pIm}C8enZPLp6V!HGkUCM#f|c8oH>=Tg2~P;Z?bMGy z=(6I%o$B*Nt;ttYp39s1GPpb-KKKF0;S?6?? z>lAD(GoJjy;exc2a+Jtc=~*f16l!cnI$zArRYRqyMh>|wgYr_7BmoxlO%FDW0v|&4 z?-T{1gGhpKiEGH!md8l8QgfoRW0)k}H(KbnlWhz|S<4XkY>=^V3C=kV^GJkX3>=~` zWFc-Eh{5l(+ULu0(AsL?CVHjNH8h=n*Pr5(ug|mCQ&0O<-~7K9@@*JjJmfhUS;|Fm zuFs7IlS!qU5iV_`^U5z@waOZ{>{wC@~L*gKF@*{Tz5$UEf=0 zwdIlXbKSzId(`p9n$o*J3Rh1kGkx4z`Q^MBmn;g>*>gV#kZCS?42VEL1zr`n*~F zwm$yeqztCDaegY=Y%aD5g;}?j^j8dV^sIC6%kenkCRtO(wOqK)XI4LZDnE0@DV2X_ zv!j=23L_vo&U~!OwY-zGJN7DCjgY}tX-foFL=L#dOd=ux$%;CnvYaSf*QcBET1xy7 z-aAYviAHULDF{3!8jBn$Z3S$U?c-xQ|KQ>t8bRS+LJeX)wjp-$hqM02Hl+hQ54(lw zxL0ugw%s`2Y)^iS!-;vxQ+VdS9T<4iDVU~>4pBL6TJIZ+?)^B4lPKUv&W7Hgl?b;s zUYa_SX=f)hV|grX*Yaa)%WpqcchMu9*Kb6apkvOvIw9EHxRCaV3_R6(9KUSQQ80BN zOl6y1mUfAc#SW61i+Oa^6J{G7*(EvotNLM4>b}$A#F&6LO*QmGrf*cqv+5%w*{YfF zkUOO^-e)J~Q;x4>YLhQC0-D~R76a#MP9KdY!w2Ip8lS6U_NKr?wzM3Ae;m%kZl6DO zyvQz(<<8}k)!@sx4KUUip@r8B9gRYe5DT)#J%}Vj;v18Xxiy2p@TvR*BkA+bvWMe+ zb#((0<+&~DPenq!!;f*u0C1A6s>40X;^^W_6NL@4gUWS#HTkf4zU`V1jWAWZ;RiN0aw|93q|;s zht1N<*G6g*?yB=BQVsy~77&kGqjqn)l0Yxp4iO7dg_&hXGqWJ(b)fjFvY)C7M@#S} z#WGNL>S3h}%9O&%&s!f!>ACgKZ$A=q4rDT3c4WIDH3OzMnMJZrA|&Dsu`XsRq(_j` zGSUv-^3CZfv_y!@w!(**IqVhbOZ2xu%9}!!g-AM2raBno*Y&w5?RI712 zc`IN~tuu~i@@Z(7;xx;6YfXT9*4FJSJ4Ss*ee1c|LOYH614n_`Otzg52b?u0a2Sl$ zjOHE5*M8V6-(B0d!g$9)-raZz2LfoXwJ&f73|HCthv<==AKN}-OSadSaQb3fhHg^V zCC#iSS@2c7yPBV&0@!}DOS>NLR08$rZ3a8hu2R4S5EHpNKD^0za9()ZMWGh;eR@%f@!+oa{px=at+v3LV&jzS>aI0+;B8ubYW@TEcU- zHdqZ-_#?!EtPZ+bET+N?O3d0`b`de3UI6V=l;rdAYTY?xL4Xf?|J0Q^k$kW23zBlt zRd^e<@wy??;QTe}Pp7N-_t&x7{r%y#94>%ynhdcRv*n!jqd{5ZX7g6TnT@U3WowTIoTpq#I|>_p+i|^yQblaqaWGdNFVX@)dL0a>$4}*M;_NZ>PgZpId)VE;R{_ucd){!ovenR4f z$#&WYMN%5mhHtx#XlT|}8~A{1=O40#Re)`f47*-p9NCUZa6uzH%5vPEWQ#RXQ3248 zB0D*A(?!{V`y@?I$i8koERuYXxhHLuf(4^$Ux{<~o@8gKKScI%9#=B=C@-{gvZ=j= zCe?IKG1%D#E8RKSiKx%xU@EoxaAAGa1xe4qmeF*bg@Ay{Q=Dx#uCD|g(@$`ZKUmIQ z-w@x#bv(&$a9tn2HqyXzVz)7w#(p8ejm!usK}q-3>@Q{5qFGb5%Jkd2FXWn2sQZfHUM|8U z=CUf5(ktv*?cAnakq{XcQw8`ZXw)n zfFy(EzWlZwzZytB(Xk8QlNj-o<4)8g!yB3?4)GZZ8Pf(V-hebxxfqd`ZiaN4a?gV# z{@hI-=7vv|F+a3n3Zs$U)TUp^#egtNtfP_7&DLW&8`ezQp6PI-Pa}R=t>;GLSX6qs zwC>6HXu=kUv#643ayUhiJUd+x@fS!Il|SCN^9GmpD6bgfi)_&+f^ePpFHv#)WEtK? zX*mFSWShT=v!-`8ABjUyZi-4_Q|*0uzT6nAO-}$J@tFUDeBx2qS@DC?TWsjrLm^YM zj}d@9oIPJr21L-8FT`n;%#j99$MS^l0-5}5dSX(@b(^M-Vtak7{bjrYgQX(Y;gf*=Ys%?DIF9*2cEQwl|9Zj z2pb7Ir_bUfBev}LwRB$0bfPoIgwNs|SEt3YiFG?>3p3${)uA9^7B>W{Ma;jl_W_D0 z=%+9yI*_yd#jrGry`P&cMXp+JFl;fh1_y^oBq~^7ZO~I@BXSS2xu0p`p1}E88~+>) zgP%nsmrD{X7>h}UYLgm6B$!dBLr+Z$6{P^wp#-Jsw&8HJSH-3#_*$=4Vn7J4>*=5^ zbRt#MXIrYGqu~q9HdJ`Q!E`=8z30}ezYL-Y>cJYy0Wa>I-;bePu}Fv;8-|QD1^F=j z76fd|Gl6Bz{A9VDDNEav>==DMN!i(yCmGX}f+3?bR>^0g@!*9=Y9 z6A$h!E($m$c5S0w4yi8R?S^n6+wa?tsY=^jGEC=cJ`y~g@nPg8y)~o7GJpU~{iaZP ze8^4esJ<(Bizn$j)OX7Wm$&w0;j9Eo&(HN{Q+ncuZ*qPo7rO4zrU$C#OGDZPA4sun z461m*LY`&5;nG_*kuy*oAee=XZ;G~h9 z!;qubOG4!t&a`!J#XGK4vf_;APIQ5iY`fH_RrC;b0Wk7D)((U(MZNQ5W>}^@EI4#- zwsh4;xyZz!%gt+LRo!zt|I2iD7V4)uIb$yg(t1ans@#E(EU$PUoVmXP+6tY}8LWV~ z-Uq&F0hIvNtldtw+Q!P>ai}R0KhuKasH#IbG~^D@8WNlObGxW97ak#8eeXJ`Ht)1^ z*HS%ug+mF=eWE9k8v_GOwJ!ZIw>3NQ@S1z5ug^_^_mu}i72$ysV&4kxWd=Ra=LJVb z*e*_^7nbP#oA6ly?nd@JJO&pUPMwx=u0aVv**~|teW|y*Kf-0h%|^ZQ!yFO#u#k>= z*oL$34JdEUNrC%X6Sp6G0sqifU(`eKYC^TuPf2_k98YLdM=ghF<&&kH zQJ<6*NA*ID#MYM_a`rf|6@4*PT~E_0l0t7!y(H8gP#k`Guv!Rv&&YtJaZRm=QP+lIFC4K5M^M2j(nvIZ{_uml!B8y0Vzbc zK_or%iQw(bRcyN=K{+8HPaK_-6ZFbOa+RBuxu9=9l2j4Xs3(l#+-xI!Y!b6Ko8ChY zZ(<_*1}6-P-B%JN9y}i)!S-0nEA5k&J5h)H`tQa+g$>-oTz z^y@U>JB>=4-OqRB>p|wj{txITdPvjhUXSCb2Xb;;<#w`YAr2aXM5+yD%ZiqOHnVG) zsU9pLA2ASSs$0f7dm`rcr2oBY&(u)ISPegGj@HqrZgegqrQ{ppy$^|<;*sF)$Hw0K z-9BHBgF3^;Z;k|2?nKZQoorA>si;ye@~0t@${yz#-(>P)-+1!{1>-r4d;vwrA$iO3 z?ocKq6RA!z$5dOIz%>q{o?L#q?SoU>@Egk-LVDBkaAkl~eoC(n>ZLQwK^ZVOHN3YGE*fxroZYBECssy~z0s3^ z@F2ey0?H};$uE(mwljw9ed#?wlhJHJCdyu1RifDYV&_-lxlM|d1WQ%? z#RZs)*@@6%APTuN^@))wGCMTdj1w?loAt@$RwEu%*Z0rtYz%DCq;H$d@}5(HH;^y| z{LDUy(tsoOI_`w!^hxh{wa?e%aBlK`Wb@I!J?U{G-Y$j2RDSk%S4Q>ux`0f{T9{;X z9&ET#zwB)^v*{>}(XDCvO76|(xoOfof0f!hqfq@@3lbpAoCkd+kSmY;C9)uZLcfY{PthPXBnFt( zKKtkzEk4ZT!?pUG`DW&~A4RQV6ekhW@nUN;K)V`8YP30t_8VA9e9cdE+eDougkavx z5wHL3kDB)qp-v)IA(Dz5G*I?jZO!1#{7TV3wwhfp`QLu`{g1zu@ehCe*WY~i{g40e z7hm<6>wfEen+}tIap{Q{*?%4J>4=hu$hZ24{oBLkf{CRup&=Je>-~o0?|X=^qg#zn z2D&3mA0QXe(;OU%nIKK}4~Mgh3m>&4>Zc;sit-zNmr-Wn&5Rzc-wab{P(nzC%N~W3 z0u6=NF_ofd{}Dny9L@5f#C?KlNLda*8joP(NlueU6Pa5lA|h2LlKYUTj#>mUP6Yd% zz=VdMjFNbr6UAx)JRg>W8N7Rylw~-YOi%$&$b>BXO)`|cxVON^c(9JWO`h@K-&3p4 zi1yBi`!6S;tC!fGnzzm1nkO|<5)K)PeOc`s+J+iN7(=aIGv9L9OEud=i_U}adeC1?fw`@ z`+tmD;IQ^5$qDwIm{)+)2}ogev7x~ESVtx-XEV+xe7ipexr=&p1TII@LF`rUrCR>N z#%LB3{Z8F>96e)X9&NV+UsTlWl8{f)p6k2l? zAJ6MKzWqqPHX9tDj?8WhLp{0YLtUUlRW85?>5yQ*=SA?g_du9xKoJv~NEmczj(% znnt?_5uvCw}`89~D8my}8c>mKhrTB_#+Gdz(*Vv(q^Jov}nS`&bgkRhT#; zW$bv>ffENN7`-n%*hw*pVP+2Dp`ieW`_2jn%}5Vi7-jTvZz>kvvlG{OnSGReL_&2l z7Y8gB8&=tv0AnQl$U$bRk7yA*vpfo_zW!+A;?!FJ37s?mUwb4>=jen*XxY29&J}Ods4`L#y)&{=qL-u3)5{km zb&H8Y>SWKPYGYjaWHtDfVy+z4u|UmUQYjd?GW88a(ZK%S$gl-!4RVAR#)!zRLpEBF z4@Gf|FvFITb)FOxkaTizMUqq6P$>Xs1aY5)gI{_Q=|O)M+EzZXK^R65@pr5b)9qlJ z2IW-${y^>!u>krIRH6WjZCY`O1+EGOgcY1ALzc!RoKQ9(`PT!fLe5CQDZUfQj6+Yq zTJ;SBQGduM*r`eU1fqbDNe)}p42jA7sC1FLzXWBs6_9VW^STtyU*OHKa&COagJ=d! z&a_K@ZqN7a$4poh9}u|;XD-I0i_$Xv+_~Bc7Cbq_CVJ+a%&)aTP zqQ<~f)gQ@ThslTgYWDud2rLwN`T9V+h_BjvJrY7~h!DajQb@z_%;1Ree2tiRPwex2 zW`E{$fIjiC=Bh9QLuu$0h^0_6iBH=U;4nRy%!Jg8EF53ed3&GP9u5$OMnzeNumE5b zh&IvI%S$A(FKXOA;J_Wuu?hlmh7jPx2QGFJ5{NPF>R}iVCJ-54X?_9%K)@Th41t00 z_HC2In?WqXvnX9D$bin*w~3$@$DczHS<2pKZJj{DhD-=H1{^~Exjmd_6M`2rojWIN zvMga>?vwm=99^})yW6JL?Rnb)?f3wug&|||$Pl8E_^!Yq9^Voil}A0fLX0*f^;Zfz zWp-dsEQ`+5ZI9lnaOra#J-8-ISTu1@1Z;LC)P`tMJU5Uz>ti7@goRlE`u)i%2uhMT1NwoeulNLL3eM|ojqzU`ln5lPDv!M;K5C!cb@MtVGb1wucGAwK} z1=5`MncRWnqu_?1eNF8FEyj^4uWc|^>WSoSs%7C8s%S&cA|9lHN(MHJT98AOq|ZZ# z9+i8>QMo?*6yBy1{A$(28BDvx=~#`E`8TD^oFqIWz#Zh_)RLO%Nm{0&sLE}MQfNsd ztzAP>HlG=S%9k>Z5qvuyi%dkSSYP@9%!Uy;qOr)FY-Z+-=~trdkr$QC^MDQx#0ChIQ*2zBLmud)z?sfUq8`)E)0NvQJTEWhQTXdB zFQluyn6!&zd9jThFD^+3pYp^~ShYql53b$&C$>0Plb>`pM>aQn!@76Sy)hp|sITdd zh36QfGq$r0IpJsu?mL#1i;3M$MF0bFvIrewi5OaAKE@B8!k>r(1*+HR z^b%Doyq2OnI=e|>-~iizpsjOzjOx^8_r&g<3*$!6Ue?~bS0KqJ(0J$J-%g@~fLIf^ zmms)m(G1=^n8BN2w!^t4C z+B@@>#i%a|aysEED9YCZkST%B_8f^gYxtj4FN)pa&nO>ha=NBct&N8Qrx{)V9cqn0 zQ6pJZW1-E+1gx)x%4CJlfr#lteS&QdnsxiYq{U|w7PxhJRwaG;VMA-wwvPvc9Y#sMZ{U8K+}b5>Gh zdBI+2631bSd}6?I$;*hj;2^QOxv)G(RFzikb3N`^k{$spC;7Z2S4kQ(=!9zg@DGv{ z!)RotjbGUUnGP5V-kDY~diVBx_&O9*n*c<6PI zgN9J)BHC@74&B^IXdWD+b-O1RFaOCp+w$(siP*7z!fmdvI%^8SSB$Nv{Dqh@%XN1QG6aDoO@`qi&rIN?Oip_q;nOsu z^^c@K0s+3pCoD%X%oeA{lmETZx1o_Li^J)fX8M$abtwk547w!@r!?5U$gZFmM*`@F ziMxl)Oh$t!BYrKlaeW1i%W>$2=v?IVM;qC*0$Np5I{}P$sWj=#Vz@v@*|}A{bn(+z zb&=Z4LXm)qACAx@B$JYhB$IA0@CS4MnA*X=mUf-4-v_BK6)-BIW8vB0hhiE1$9a`Z zvG$`}r;mDIf5Nd6%*!@xl4Mz96FN8l=BP42cOnK;q%>jhP!nSv}m1_LGwa|&Y-_@ zcVic5r-SqW{Wu1>G|#5Iw@N`*xk~5Xb$?x8b?LS8+;xJC*tT^*klL~buO)D#(Vi@8 za0uj7B_5otcChLgE{U<2})#K_lom6GL89BhCSD}A7kRZ-Dy9_ric{^cL@DyyW#nReroa_@vnR; zJ6*qf8T`RCx5s_9_g04Y=Up=X%3Ip$Ru8ycEJoZ{lPAJ0GJ5qHq>{7FJuv3TsC1$i z+b8A%zkMD?M(r#(&E-*~28;?ZC%%&lE6a&LLfNgJSZj_lR@!hj#MKRyxtbxTNwkyPF5k{Ryqq+f3^* zOibxn9i1!*)4#@7dSkHSRHwrrLQNqCM!2-u& znt63{=|~hQ$*%-oKxTpgP7K^p(5vpWgu;Fgey<{#Ud14|xQ@D`x7|DsLD4A6O~|#` zRZu0!n|DmSp*}Y5y6384NLHiZsw0|1N(>|;T&ML;(aQcH^M~E>uq8-gXuh!Z(I#&d z%Zq14z_-v9(kz-n0jnfOtrua69uo?AJRLY;#ad8iIJu5=SU$o^!SO z%u)qWz@V$2oCvt?h;sE3osRb%si~9IkdglTq<&6&AWK5851L+nDo=eM zIDom3lOH`XDuP}C&<;Z)8mpTYXqweqeBO11=N_H&KoXRpwb7ng-hsmZkh!2EfXsX2 znnIp7RyW>RCHqe_XHCyc1yVjof7E3D60pxDN+fv|hHdM8Dtj{UD+h-gXM-ZDe?tIkYGvlh2di5{K4aWXnSG zkgA&*d?bTn2co&T(BVL zD@^3VkKCw|32U;VP!@d3idNb1q-u7Wk!KJx@N`R%&43ht+V2IR*cVr|G9BN zcO%~5#b5p!|F+iN(JwnVX2;IVaE|AO_Bda_AUjrM$C5OLRxhl{jzxLFs=Q!XHmu8z zh1sAoFG!jlX|p47cBIaZUw}0;=w?7zo)@g;oS-f<0A>Nk?4X$)RI`9?o)aMFT!1<&gy#nLERY|2 zj?X;q&*L~hH>Uk%L)zaD3;Lz%_jkgReyQqRu&4zuHG!cfh}4Xnnl9b(y`y6P>-WF; z?w?;Pw$;GauO)l}c4|jeIa}rccEwZgKKIQp+lLU>;%>0jbHZS~33K%X{^~JMQmuZb zs0)VmT;W+09%}+!MgQ}~-2klxk2T}8nzv^~f&KiSFYt@KyT9gjZK$vXF}7mKCY0GH zE%(nCY}E?AT3}f_WNQO-?QpLR4Yq;Bb|~2fG+RJu8$4~ru5Hk^4fr;L;ug5v(rA-3 zX~4g=fj2nWbAp{E3ZJd9q9G~gj?$W^WWnu2yF+c?I5-V1ooT}V&@BdY=@Wa=(87W z+JswMKy6P0yFD)Oo4|1A3rOw-M7KQO&o{=OL#Ryvwgum|AjX~>qU?M{oUM4Yp9HI2 zP__-|W_%h3htr+U4KnwNr@J5KGY|fPUE8s3JN9jXk3Bbd*}0?7c5vE`UE7dtJMe7* z#yvOS-1!2m+ktoM!~J|qya3x?ac>JOZbgeQtF8&o{6ARa4o2!upTB7e-|FnpT&#k!eLOJ|}42IYahlDBle6TcCeCEN}r0 zu7JWEcR1yaw%ov&J6Q7-%(*n%&$|v*?BarI+#rt& z7BW2ygt!9~C+Ok=X?(#uE?~$BCAq*Sr^;QAvGn~v`zib-d&vtCx!@#s4CRciT(FHR z^l^bju7JrINjU*5SLEda%Cw68J)U_(R_?gV9hSMFHa9%kgfv?aXg4x#2dyoLwgv0< zIb_^~qMNaGJM3=9J}wmO zjg8$myv2L8!g5O$!T@&7G#(^yeu^BnGAj)3hX6bQZ(Pos|f?u0)Z42IQ z2gA)sxeZ0PAnYdO-Ga!Qp?Wid@5c2lc)tk;IO79%@Zf|h+~I~Z7V$zTF1W=R(0HR9 zXYAvGioCFr3xaY&R?c|K4T?FVGzW5XLUYa_&k6ZylQyvo6H;`-kM7XY8*_T0P$z8a zf?A!?tP9F@hQF@3*bOwhAZjn1?Sj7Dp}8|^cLVgUXx|$Jyr6@3=w~g8QBU;WJKrgOD%y@(Fjo;L#_X z`h{KJLG26T{YJts2>Bg7KjZ2by!`~kpYZuJZ2tw)e@`=i#q6{IHa9Tm4)t7MpgZVt z#bj=X%@xhLLp^sK=mHYmFr-s;-{CU;?eBm8{lEU{w~z1s{TE;L_wv=_yS{}5D)Xzy z5B*Or_W$vhv^LnC-JfPa78 zeg5N_hW?^Y_Pg(Y`0n@mVq^4U91E_0ru}pMnU8dX>Mk(e72rETe?JM}dcNRaXK?HV znO%XjJIZzj;7+*Q4YIofdN;W50tH?`!aIU^0~l}c;~AQ~fR>k5`gv#EfcQRV;O{44 zbDuM6_gvt-3(j}K|1P-T9W-pW`dfmf8~S&~1+S3d1x>ucc~`9O1OlF*!4qJ30TQnm z;{|>^RqZn@+L&` zhE^W+{7l$lhYk}?ynu{vobU6-|DHD{c)|(q=wZVY51er^?6`a5k#h$q&(P&jtF)`kc|j z=Z-AiaK}3;dBZGkh~{xJP|w5xPk87BC4JZXGo!?R$jJOx!P5R5so)oZ-GR}Qo28iY z3Dj}b-n{nDAkf)K4-QAm0PF)dR&)!8I{Y4Tdk4&eyxQeQz^YY-JAsJyhdELEa2i4z z2hm=09TpttH@4kmIf54G++b|&tvuiMCo4ED_vn+e9U9Q*NlQNeb$VU)FP9ZtCiZ17FG-)d0OAjJ zAI3#^kq>$iCl8+VpAt*AE|l-FG1SSK*FrRwW;NZ*J(A^_T-(X>bAW~mk z1xD~d!xUmdXutm-bb58rK0Bz%7y62*U;5mN`+R+NWH$mN@ceVY2~P(Z;F{zD>+i$S zo8~RHP@h~ARSWj|@}%FY$yMI>wB4qpJBBK1^lasS1_#Rt8OZfscwfahC{2)6yOPSu zRZjCjz{7Cj%np$7z@0G5Mq z>K|pTeYa-~7efB(@w?xC|4+aBv45>l?F&_|8zxBP_Om7O1|7KVbZ{0=sq2S7>Ab)*F4sBI1c1&O_Qx# z4HLxMNM@i2NF=ibna@#tiX^7#W6>M26G(nZnF>G%QxYkkpk~d>h>Kbt=+D2Tzr6K+ z{NXo$_|yOX;}8Gxi?9CWH$VRH{lEXWe{heZ|La3$rq}tuf9@`Qw!7~Vo!x-$vY#ux zWib7GzI1p-N9o}(FX_*hP49s_lKX7we`5MO>V{dMAFJftDFJ*9PV=ZH0b7(Gec4t*o4FCryv|4154S{5K4S{5J zcnbgl1n2_*00ig*008X0OOtHJb)`A)UlDdS5eG~jf4i3z+N=~U8V3ohL0fTvNf`=+ zNSMHf0Z>u;_r1ThJTl`%UIGNJ$fDE`&4lzD=i$eF`+o1W|LfQP``4F0e(|ese)G}0 zd>qHS%Wppa;@7|V<~I7@Uwr<@fB5~se)R6R92frS;(!0AFTVWpqj$gi{qH`1clp=f ze)+qvKYI6@Z@&4%fBD(Z{`ki~KK-#g{r;<8|BOq27B6`BfB#?q_46;k{NfK^e}4Ha zo>f|YYO}w)eD-f2y{pH1N~68Id={p|70xj*Hj`OR&{+t%=#%X%tf z?l-sNY34b<_04|LWk2M-Z~nul-~8tCtB>A&oNB+MWA*EpPi6IVN%iPYbzVxHPrZ*z z>N7vZe_N`TH0FFx?TA~(nAg;g%1>z=`I6>5E~(9VNvp+QrSxk)dQ72TR*vgh+|^sX z^c0u0QZH>B*Hq)NEywM(%uD9(qw8VU9*Z~UQ*2be)Nx$O%9j%V?e)0k`0tF1V;e6s zCVTsePrhrF(~+i^IKE{)?Y-@D?A6Wu(|*J(J;&AO58C6d zaX;EM#z!pbW#sWR8|ySitm$Qx_Eh>}T%TsTjGCWvirYs#H^;C(rC7Zf=cglH*Hhdc zi!yq78kaHR?#$h-GMw$H7w!(ySoOjjO3iUMbQ9whzvtN35o8fBpGOI*;AyEm)e__J zv__8mQ+qnrWv1Bf8E@|^zN*G}KBZZqgA(tJ@p>BZ-xS0Vba|OMUb~)S*jbC2dTbfD z_x3cF$7^wU(13<%C5DA>Wt?Y;%Y)n!;}J_68`?|O?Beb5;uyydGai>?5Fz7+Sb*a~)*`(v@hzXB47BwcO=dU2OxW5KvrMNy`5Ff;0 zUQa8Y6aN?geU5R=zw&#`BiK%j^<@~eQ@A`fxp8^WMvceR9IxYXvHmHhUt{`gYOti> zov@sEO=cYX6O3xb&kSP~g9cKWK{^a$%j4w*%Hip;7(Ga(K-an)?i!cJu}g_@duohJ z)uL+r>|v}`EW%TKdI@@tt=F)|T_u*PGY;C|EqTT%YJU3>gqmYdS!&*%;+W*10XRua z>xr$-L3vf*R<%Sqw%*?!?+IR=xzC@TWGiX!y5o+I^w#d zk2v5!L3cgq^xzlVIEK{>hB{q?ZS_~)^nHT&R@$R?N! zZ%5oU1WBW{oBlo}hGposW6G^N)0+TaPnV0&yJ zOO@bX`O*g;!Q11HINY6w7H$u|I2l7%ygeu&cCg3J%*ET|GlEV-YKPe1_3=B3Q?Sv| zbU*KnaV#$KgL4>L)q)P5~k;gr&kt#c~l^u<~t1d>ia z3@xsYZ=Y~yPH9NymV!rg);=gC=&A)5oscEWB(#%;E||qV7N;8~Ked)gT%^YAg5tf` z!2)6W9GW=YF#U?CoosbbQV>`j+%C!zQ>g=eKy;aTU5!K9;eG3 z44aV35uY2RQK9P<{2OKy)2x|Ow=Bd$Q>d}HP0Xu_xs=If1qVK2-C|kFE?#FrPFafy7CH6V?em?8+Sl!Tuxt!Yvlw8Qp;=j7PrLt_-M5sG+l8F*$$IF3R_ z7i!RE6_3n31~rhA1&?2-25fhHF9IueHD%GZWdXFDC3C8z^0bN(3O`C{Xx4FJIufi) z8l%sxczq60fG9$SBdzmRWhPJM`cQ>nC_!zL|7Jv1(eD$H!59%0tGK+1oak9&(SQwA7Q?+eY(HEo#S(mG*UKN*Yg*WEVjGA6N-Kp zXDLC=d}sWApf{8$kr!L9WvKDrV7sh-mZlU8G9(VGziLI*=};HDg_coc7a^wL$_JKS zs3`Gc!DtBqP-AW4;O5xT+R>9xa)Weq-gz0M2&n{&3lwtBcZRT#N+_AJ zQxH~%C8K1f3KI*W0HLLhKv zLKu%YLvh5}P_d{HJH_u679cCQp}4eQNk@{^tet0rGn6x?^!mnh688rSo04u5!WlsU zD}-Orfo*UG@kWmOfQ`%x#-Z$MUkU+Z*Ni2*r$ezNc=K56Hg1cFuO%@q-pRVLAs74~ z6?K){LrQZLbJL4a!8__)W7VdOdofJ;N*YpnBpLDdj)PC$UB3S2tKa|g=O4ZMyMOrk z`iFAd{^6(F-<4kf-;MMw(q|WuHdf` z{Hb#GeR+`Fg-67HuRW-dpZK?YcWJ&oAiqBKcCB7_o5QQ~vI@bp8br~4DMPO0=i6;=Kx(4;N=Qzh=`2P8qGYC64-}8AE-@XAMdUY=GiS&l7jB^{J8!tvZ z`m+p!+;4{P6-%JWOsh?fpWqs)CjXA(=XD$hJwEZk-%+kF|9)h#Dfwhl+wKL%K|xKw z$H{qqnAXcTco)uJfb}dTf;TOs?T{6H#A=uJJmdVLOJu2J*BQq*A!PZ`*bBxOy9Z44Hs6y9;dDJg@M_4i|j(vtkHBK=OUV-JU%g6J>+`jcQa`5|5I_3%u zosCFCW(KBK>1<4qe`jD~!BCOF-JZOP5|D#mL-UOJ+~E7cpLIFbNr@TAxy3#NKP|D~ zG4t7Q5ukI#7(+2sjfL*R^`SCOto0g_^gO+9-wNa}g^q|u!Z_OP(TP5I{=yZs@2H(0_yq@U}{e)j9rM)iz>Wq#y5VY%|Tv7>EqbUM$D1(l1F zDPhyazoQH7OF#IPK^MIrXtkjapd|hh2R4dkXa*y66W$v~0RIgu0B0I^W9ijs5WNvGLa&4I4yF~% zet5dU?3diM`jUxpFoJL7*`EEZ(3itz`lX-w2`{j+w9+rpWM-1CjI|cRYH@D-;1IZk zY2sUXaZDsQKqzijZPn#dHcJ5HI>gDrivn z=m!oMsDrCka3%hgO%%s}#vr+jnVw&t^Viz7466>sA|0OY&~&|~VKQXVbd?i-5TL*b z?%0r=?pc$UL?3WQP9qk1C-@V*ec<_hdBrEZPagiBB(~$m0BJy$zmN_XZ&0qxvKSK$ zSXv=DRMLS-zI?dC23(l1qdWGIn|xaX!;AUzp8Sjbnh)F47QzcU#3`>(iF|xg!VlSL zSr&Y+ctME`1j|ONu6rmi`Uv7etCEu`%h4uQ8`cw&T-w#4NQs;?)~gBI6kMDGr=%_) zG6zt~nrzNVz(xlqVHmY3!)G86i6XTr$M%q6wQWX*M1`cD%GE>oE~SZ*+L2-k=T%)U ze=lQOoH|tugRZ$;a#`ap6BIYQ#slkICh5}aLPsK|H8BgB4F^u_p?2}ELm{*nhx$7* zay>3jMf-~Fqqr@8H`Msp?xf3)3zlKWY1a?A;u#WtHEC&<46B*yZBVcN zV{W|*?`M2&4=bzIZP0gq$125$KBQQ8Gz~xHAQ00-vq%b(EfXHLH_mwms{5yzP0{L`F%`ul(R=Ibwh_4!ZJ|4c_8|FaxnCUMdK z_}v%ZeEre8fBE|Jum0aqkUszKzxy9wlWq}q5`Li4-(5mw!iy3**t=U6N2>WXi6hj` zGoOj~fA#ri-<))`@BPFd#?D(p=LzeB6pv@cKZB!o#o>$Nr6b8tkj!SX&B`Dp#XE@M{njMuy(jn6)8x8M?9yg-xuB{iE>r`JKJW0-tv479z56h=bUUm4%NXgeP^P5rHem-OTZ^@^56fvu%=_q772=L`> z_K_g|P(Y5&p12*yRvBg=y(rOQG%tcIBv@r%o=&o+q{$@qi_wr2@p?1fe0~v_(>Uqq zDK~*}Yr4K`@sQAnboO&@v7-3;vKWfDi?Or+NHJ!E{e~+GDW>=|&!2L%GW$Xtvjr2< zxZ24LuOYJ|6DATpigmGgp1*zYVzxuBRz+xr$ONI9#QNCmr0j=#a{uIGu|_fb862}o zP{m-}_zVnEFY99yZ_`FLOF-QjBFjw3UnbXJvIv9>kOsY6Uqqs!1ve4dHSWIO7kd&Y zzkF04^>tH@;V>1qc4-EwRG%S*1|TgF>T`a_Q*^>dCP2L zgJXd@Rw|AM;&kzWI2DV$LQ5G3tVQYlE%Bb2@3V|z3?rgqcxK*=PuI(`x#z|^mb$ca zK}2uI=j(NR?%6Z$rp{7hixt-6&G>Y^9&pc$pKZLstbVPABrWWTL)2C>-s}6u_t*1)llX`Wl(-c) z5I4^68K17#iG7eK*^b`OPby)OH{;Xwdcau#)!1;(paL68zL?5i!(AqpV1g!9JH3%# zZv@spFf4g~s`WkN2WI#2y%6(xB%e(Tz1v4SB&~a$&-d5r&U=aWti*2kDvC^hGdy2y zVzPka(kU`yvCKBkZQ%yI-%| zuYHw+o0FMw9KF3ApReZuC#m-=O&T{7-lg=u@#%U!;8hG3rFwOpE0|L1a&hIu`KHS7 zYZ5f#^S3)+Mb457zM{=B%DS$itnHP?-^^q1k}C24RaxR*^Lk6zXDJcexjQ8mAI2}2 zGJ&&5d=PoKg%`R4$yySyWRt}>nIYZZErxI}(Qp%!tTxb8@ zNohs7DRRIg5Ep(~rTaHoD_xmNy<6UqSvMaAs@CLQKw7=l1?yE63st0(TBR2}O61cE zu2O%oRYIs7()0#tt=h1elXD6r9^;Iy^eCX2&`IFpTCTW~wZ1COh%H8?pyVUX%UcP5 zdcjp8i4eHZKyCTexk~!(+ptRsyts9vUCgou_j3G%HNHCROxy81=g}*erEagZc|*qzN8Y@;P^`SXPFYGK8^6 znfIVvM5<)o_bNkkKk4Z>n&+^$YTdlhuZqn1EqW~pPLlH^m-eiD2-t~oQ~4QHP$fVZ zl?ms$Ox<*}M@7gBRIPX9+cr6aDW^TT>cpTv_5vNYFqX`wNj{+rj65!HwWRyWYVt@I ziOIx5@cZFlj#7iPhDk!_)f+NDT0aT+xSigJHLJ}CIJ&3*szIn zvecwpWO?;i9TFSKhg3<@*g=c*pu}CJlwtHz9iY`*4nD=W%suAuWXY(i2PcQe%9PdE z8AS?;zftl|)7AX%wK(RltWSiRA|5@<3&Z{l48rpR9<@kMsEpeLJpr*~sz9{e%Mpp# zZ$&6bh*JO}>H9(_nGR32V~>$_vFs(kQ98wS?$yYv)>nZ}5<5BWSzLxB{jQkRgVuU} zf#;K5oY%@;PnqS1O;i`xp)I7FNjpUQT?gFd6%hZn%$sZd$U`rWO7E8SuWGFAZ*1h2 zZs9(M_ZpdD?ea!zKEJ>Qd6i9Ja;6xiYdrGY=KRuFdFhHS`g#ZO4mKkxA6O%3k6~Sp zD)&}!UUXKGyZ(h)v)>i&PNkUzpTfe-u81A3G-Bn)NJhpe^SmJw<=S%Dn zg=dxZXg@HUlRa>id`73GOi!yhn%FeKYq>)o4Up3dt};lPgQ+ET%k!-@DnN?Nk|^g*vGSrB=hf~1tW~`FMPn%v^_z9vSuEC9 zlE-UGl2s+(DM2q?UIZU5r`$KWWtmIq*pg3q1QY=6@yVPz%~tfgl&Co(Nbh! zxt?y`zG6n7Wo_yZXD?62yEpBc?GE0TE~%E_dMG$8ZPzcEEa>{jxV*=9yk80J?A_e2 z()l*qc11ZxpN7&b-`Ie|T=CfDD7z{^WAYF*&R&YLRpr;Ec`!#coBQXxP=G8R3=+BJ zBZEvuiWeN_!nHLwL0D z&&#p>MAC19%@?abN+wD#Twg~HkyR}cht|B$izZhB!Q;)%UjO?XR=Fmua*f(l@4g|iZZZTj(Dl0n`#`_E(|Zu)UhK%wspzF z$uaZL$EfIyac{%PFa+EvJaj5kg&!%IW;iTy?*h47x106&GIbx>>fk_`)}v)qNz!|O zEu=zvtVk5GvQL9je+U+C0)JhCN9T!Nd`lEc4kWCcyt1Ro-K_LyrA<{O{-}Nt-WvPd zhn#jI`?-rZ1w24yUJT=;9?hBxPwy(Wb)>4;(~!4mjtxoLzao>PI1LDA{H|g;lG1`k zRoc*l|0Z|IDT#)k13ok!EMSbd}j+DHobAEl+7FMr|4~3 z-ANW@eQwc`{kt7IT)*$nV}DM!<*LPmn+z#1OJwQXTLt4s+LoyUK+U2f$w7Z;i*-n$ z4Fa``&uw;$E@j{bsVP?xLARtW2PyG0Q6+g%PL#64Ew9UYRVF6(g|Hc#c{}cX>Si_% zbQ&tNE_Q?v0Lg3r4(Q2JI3`aSzS+r}*uT?`iezhPC>J1gSEAu2lq|VdHy^$GmdwlJ z*0y@vt-d;PJcZYxfQ$|6s>D+wERr73a?*UuO;Ts4Dpvc6go~j0Z*xb2d~($G>*l=| zYTAp1@>6WB*=&sxCyxk3!6w2AAx3TE|02l( zdk?YrwDzA>zWPCFy^1uC<5E?45hUEGJnMo#DeLfc@fftmm#4o;rT_3*+}(Be#=Ci( zE+7klf}i-;(^U5dJpSwb)%y!yzWL?-4;VigNa&UmzAc&D~u4*fHnT5{(qmoKeV%oO_nuA)nFZv9MAF!E>;0BA>43O z@5bXrBboyo44)fc>_8ig-~!nf-BARK!pa;?)gx6;hzb5;my$f6p1=cNuW_|>*n}1S zS~W#OHsIGkG@kmZiiRT7D(jO~yL^Z@^4ujN^J>-8G(P$G{6l~89kEQX{4VkX)1kbs zchybV&=l<{n;I5%&*b0ZFfPhUBEMp)T!%nH7tqDgL~gHlKh#h>)Fz!4<8d_~7W=#t zF4TEh>-yJO+=o}({reAG=D#Ugf7s>+B6!&3H$-r{`;+fordGAC1g5Sch1faV*ca_% z;=#k7iH<%D^SbILA@bqyAVPalwZTQO0}QZgR1$?~QzhaNe{yvYPs=!5$@YrBZ^a^# zrlPvFS9%@h?Xbp!e~W2WiZuLhML!xxrCrQI<&=;0rpS@cp|1Y|+Lj6<<9=WO4JpWj zYB{(_MaW=uN!WKeHEL)$tigzhWUmdiXWa56@HpS3VA|MZ!8LN100q;f=Eh|)0hC|{ z>E*hR^wsbPtXVurs2jXp1%Uu1=rU=Q@`ytJ@u)6nuvqi>lPdr>i9h9z=`AKQeXTZ8 zkI33yCzp}_Dq`gmUN`=OOC7UH=j!2HH$8V8&(exnba4^ZKqz+4_t(F^dX+KqUrf3I zLs6@1J*klKT&jTlvam5A@1<;!pqE&sPV7qg6#LGdMzi>~;B5Ol$RaLaqe$db0%rP3 zCq>1^9?$37KCobsQxPOh)o&qsZ~?F-5nfU)axm%}A*0$B&^(}eekjWaxdQV9Q-lm^ z>xLeR>xkOxAnd|6PDt7+Fb?MU&550zqgZUi8pZ=l|471M(vzTX5+r$DwdY6Pyy4gH z-H$8r+G7rDl1`?KPw9s<1h4VI(-0YKjDPoXTtyTv1vCay0~s$M zRq<`HVDhkE*!+})H8>2G+8m@6CQG&o3osejgs~n4B*Zzq8yUO}+~3}RT@QH%n*RWYT;MM*ma4<%##p}|Iu+Dzso zZ>W-)jVOv(!m+ao@ry7e883lImL|+L*fNCAMv_QXn+aWKkMS@lPTfgB>?ey`4fC?G zWG=$>pkx{WfG(vo#R&t{i9^r?OH%mMg1$3#`lyc==#;*t+ew#AB>HyYS?q5wJ7FpB z=ds_qo)m+nLnwd;#yX^R<42H^&~yk7d{0?nCE>{(&5w&EZEMHW7VEKA* zl!IQ1rbpUAr~--7-)cq-e+6AnkXq|7!dm=}hEz#foI1k7?KvND`~^v%6hfK7{lf!7 zYt5+I>|{|LZD|kyEX-~pPN9INawCZsg}~9U4B-~>;zKO2$X&qqDM<&Ghf+!&K+*CQ z3B=xwa8?w?aL#fwg4teO!SM;v%&RXXWyZJNF-J|e-D_T65I|KeE5NiO_&XH~5AP*g zpU85b{#jM$O%T!=<3EO!xV#=lCR~m@3x0G-1Y10eb@O&4a$2D5X;+G{Q6W?lI%v*1 z6x`kf4U!eHXo4cG$-yOr*O7hPI8K#}E{^9WSrx&HJ!HQq_$oBZah9JQFYw|xJJE75Wx}$ysexq4X*&2rhLJU3G52RYFC2K44+VsBf!D$Q)Y9A$UkmRVRdl zHe9NXXA$OH+d^yOhz1A3w+qU6(wDk$y5P`WYwIW3*lE)ndxQY(*>%?f_YHZ=_Awi0 zGH^zP0CPUeAExYudV0zBF4^+QD_iiyRzTU^f&jw=JV&WfNBk*qz$BWnj4?U2Qc0L@ z($HiVXuYLuRl#2fo1|*h$G9nciq6H2yAE!f*osdI6J1Dn@vq(2>T!h=r94z4PhO-e z0EZ`w`}Naa^{P4hKj!=w)2q6eD7<@-g1|U?4hL~`C^r~N79ubEs-(=AE;2~Ej6|ZC zcoMY84cPP4qNf=vJ(Nl>q0JV}t zXI*tz4WA~M_*0?DF06IXxEyxtDrvzOkZR?88Q=hg3bcbi1x(Xfyt_f`B|dryZhR(Ox+$^PVp851+A`cRo}o9z_tX zj&!5cqIx-~dHCmPXa(pGqN}R4Tf$VsM^k(E#hiCgL=+mHLVBnIco+_B!HP(pntkWS zG%2-3<#2pdwNg875y@(NR@G-okB}Bylm|yBbn~ay9AP#4DoWcMO1-EO+S(}@AdIVX zu>`WrSYU*}M)v!m0IW35X>Y6zu__h27jaKP?g%JeYMx%Fq=mMOK8u=K9j{$J$eNAK zr;2W&1dwWn6)BX;S;!(FK2~*($r^Uv_*baby@=Ne*sLxAWQ*5INu5dqVr`R{<=mzmtcj6VH) z_5D)7W&fK2gQLqZ`SSdNIS=M0plEwM#JFjyan-nps;7_z`?ROB3+@$!dNFAVN@d2e zBNyOVGweyqtNp41|LaP6()p9N(EtV)dYMI}Fnci?vy>T?{slV$m~Ja4!Q=!vY>}BH zGKv05S;=}F5X7t70nr#2+u+!+9r46U@-32GMW|BpSD+cViwGJcz1Z+U~2+^)+64 z!^#$OBl||CWwa`C86$&PJg-jj*2Pli>BUUm3Wc?$%Vmw*xUIdnc5hVAd*i2n-Gp>( zHOy2eNc6km*t@!^Of}gW7mu+yH8$1NzNgYX7HdMsYa;Pumb;l(%d~20kv5_O%qJ}! zp|v#kB7GoETy4cG$x2|fh;wG)7oe@kRw4CBy2$dr$iOT&s3Eoy?E!;P-7v)DQ6`2a z+tjT?0OleaAux;Clp)^KZb6=6-ZXH@RZ@J~W^Kb>$<(JgAAsuza(6RgA^<`*$Q~1L zQYdL{#+@`SFMQp(LKR`DRumD)sY}4iQzQW{I(8uy0zQ*8g+c(bGwHBOM?3cK z!6^hVnPjhvo}DFSbw%{qoMa_+rElfSZA#>nc4mwa(4@Z@l-pSURGKL9yJxFUlId5Y zWO=MKY}Bc$$d4h-P`8@LO~4FY7|I$en;30v|Gqq2)~>`~v3%x^3U%l4Z0)L9tya2| zzD9X2=-2bIU3W@WBl61GpJnHzND<9>CxP>D^*Pw(V#A7TF+!N1hGShy{aoH^O1bLg zR{w*doL$3k*mNuVVhjlCOkFHPQHxaYrjmnc`-gI~e9MU`(%|RV`JG*Ejr44Nj#3sc7y!@&A`}#m9hLj^aG1Nyw<>ynY-<&oH9Ta&Kk`ih# zK2_CmV3KaoU{LELaZ#(BNVExG*2)XI~HHH=dQ`|$IsZ{Dqbq&k0@*Ma9junZ5755G5K9@BHp9q zZ&u0mYZnI=71J$kmpo2+?l(9mbkxVq@NZu4t8IR(IPw5YwNfblv-^246`<97agZs#X&_5tnJDnXMAh1$Dr z|LR7DYU-Tv7t3|12J%H*2>e@&soB-3NM%-JGOHX|7H?5JilS|)xN_>Namg_^Ci=4R zA^l!%x+;FV5PwQbwDqql?V|o-_6`sWkk?^|E;24E6n&fxc%o#^+v=kNM1B>_uO+o5 zDSe>`-a$SfDyHgQZY3X^s!++G#JOHP+bDcyhDlem;BwC;$yWGr>vKmV+`2?P1Hf89 zi6UC7(z2$aA;ty(Zpt5kg&$=j{^qH1mN&8swO=g$$UF5oDcVt`#Hr1xRKRMT4{bSL zZ-pFHeauAj*0!XLX`sw({=fv-fLYxLTKyi3DZ_F0PU8O*$8d6G5bz#Q-p46 zd>A9kMj#mgeFN0ug6@PfcNJ>!SRN_HcrF;%U66D;l+xi`v#S`JYHL=zJ+JH>`Rv2Ry;5@5&*5Q@1A5OVd{*DFk`>s{`g<>Tggifb$tBI|YAO}zXuH~kk6H7$n5 zE*l&U^YpsC#3I^iqq4cpm0V!WoWdU~Z;mmkri8Pw%!d8pV{8Nuyk%m@F8O<9GE25p zms8xVfe@RV;G1#Ci6OvWc{7wvAwPCg0SR1bs64;f8;U8fBI2%cewjk{EKga6FBo}4 z>utuQ8rxz|bKP(N-R1^)2#WHw;U+(6*VxuQziGD}>WNG@0xQ`92;VW){_>aLlFaI3 zrT|q{uZ%J_ARtZ!+9MH_uRHzXFqb*n)|2F`8r#s`i7ZN8kk{d!>ut7-rA`=rCJV@F zWh#peF85)hrbLdvF2q7ilp!~T*OMJ~T(I`r1hX5c^p^={b6L%gdbn&KD()d*@EwMX z(<$k?1enwmL4gS`l0Nylm`OL~uH59W3SI09o4YI9MadrccT`2XS*nD%l7GaZ4||{1 zP%eo2w=z|g7h|^Vq#-%V_#IcF>)nj>qHwn2VhXs4za|~)YX1xU zuX1{gcM#XW_bkhgak38)eyz++I?I-Q%Bsdy&^1$~E`-ZX}-E@cRhCM z_vS7AlJT|Jf(=E97C&-51Pe_&9aQ>rrunKENJMduIieE09$Tmvk*T>l?5qqe}=cs?g1h?04nT ztEnMb+hW2_)mD^;KZ{!vdQqy-NN8PHr4GJM=LdT^zL!bCH_=;>ULyX&kmQVV8pa$b zQ{!^OAgER2Djc9R-Fb03B*wV={xLU<)<_z!+x0X1^Mw-x%vRO7tX-~1oN4Sr{q7K4 z#+@o`4T1E>c3eNeyU72Ky?c<$7+WQ&JoROJH>-%a zxjiMWO)@YUn+Oz=?aq77@RzwajZN*#VN1}2CX_UGu|Sso3OT*3(rwLmQ9ExNbg^v) ze$ZHYX#yNB&O?@eJNa$hPj5+u0Peg=EX8C8Mwy;IRsOGXjjXyjdDH5mxRFu}DMXkaC%gK+YtT%f{xg6B(jj^GX-paUu zuDqem74$;{NPS0|25L%EVaJSW@SZc?U)a}E9Yis;=mck&!0L)`se<#+RMZJ{Qbawdx76K z?&mUYGt?ik3+?iHhZ{7%JdlI2A9#4Ib9S3beVt*wzD~SeUcc#fN4-6NKd|0j;P=)0 zxoGf#Es45VyR2FmW47N37tuv6va!b_{P!ky+)3XG~do3p)i=h)Coo68tY zT1>$CdDHwz?(t%W81GRA`A!|uto}MOq&XKMiw!nw@-Su?)%3^4vB0mQ@5(}SQl`1w zBWOUZO?7sD+fFQc3Q8}p3b5xcz_6M%IqeHGSc~fbl#-(9j5xjPVpw_C(zUWX8)qZoo!4f=jdBB( z;YuGY7HI;6l3qx;4Am<2*jq`jVv>xDcRpwJ)UIO}yl+Y{bi~|}plnQ_HTC7iBT1pd zKu~gQG|`t~Ash}z>=1;&%eQg8Q%1XJLLSNO zszk(N?+Ky<2fycYjGHTy`OxKgk0Cmup?zQ8G(6VMNagOnkye`OQy80(HKDMxb5i2u z9$MZ>2U+ExW!$lsn?B3e_q{qCpw_o}*;S>%cqvxivwtV=J?|5>G&aP>Y4tyBCrc*u zKn(zYFi~iaJfT=GWn`+N2BU0U&}9-5MhR-9)X!b_0fqy8x*<%0!2r+TJu^Iv;6t8W z^>lI0{&8HC13*nk_6(}aCzGQscv(<4)h-$1hH4YJ5-*;s{Oz9oU#&vzD9%73g@|Rq z?XY(K{B#f0=GE3KtFZY$l?9~Z^l zE1e0KC<$|l=BJ8I^SrICW>92}SfNs&zZ%GoT8wIR@b0P=6~U_keZL443h3_h@_eZF ztHeCz+{i9BOp5rFP{6AEPn<_}`?fqDF z=6BU&)q*IV}~gdwIJ{pK|g}3|CrKbvCNX_fY9n+CT-%=eLl!y|sOJ zJ``HfQe~vlb?UbGmuXn|Yj@+;&%c+4u}tYKbRx#7r@PRr~MQ6WNm12p#`Y`Az#nqa=9OyxbDVfp03Yh z?cek5d6$Rh|1c?Y?(10BPrvw`K!);NTgQ77LHj6S#&~~1Bb&NDM2<1%OdH3 z6sO7&=P=T?KrHGmJ5Y7_+Qo9lLUggKSBuKoX+Q zVz(i^!qoIxT}LY+9HC-^fI<9X84!c4R}%7&1wf4qD(r5rEJI4q&~E}HcyPuKp#!muRc#K-W0$^bs$mUUU?(;It!=AQ#wjD zhvhwo;ko-R+vPNmO^B4*cY}Cw9$<<>9dDPLL(4Fg?9a^qx|SCj4~ z|Jm-AT!ne6HNtC~>xN6=NK*nP>LZ^|L-(3(LbH{>ux@UuO7P)0JjB-B*>(7Ox*(|Z zbPDRfH;*YL6@p3jr?gG{1Lzp7OjutZpU1-hJuRthUK%DiWfbrd!w^4Q)`PV|&7`#q z-Lm8i97*-mIT@agz7#{WN1V#iB6B|ln_3Qug+>ZBYKfuARIi-uWPPEj59|u~BS-j= zBmBq_{&R7JZ-X^^z3llGqJV~LGVCA`44}BWIw8GY4Ao9I2&K3ur$6Iv;w)AH>0EKX zU6@{f`ucXh9{Blhf88f{oXi+vMQ~~Y|LiVJAf`)aFEvxjLeE-lKA(@~iN`(bJdq1W zq7~NJoAK#-$DqvhjP10skHQXpJAS#8+iuKFP}hAQp>iH;)$hi_HuH@_Y};%xh?80n zuaz$%uPO`4Dj9=qU%El~URfm94rPas{6!nH$MN}k(Zyz(Or{GrfTCoz&Uzf*E;SRp zW1!DA0fL~Dx|zObe7b%s^)H;!$Wov+;KA?j8{c34$(xfPwAU(t-)V}0d*i@U_ra`u zLQzSdZ%)RE=^8E&++)mS*`|-<)Abua|Ah;4{V;+DUbVNw`-}I@uT0sOcl#gedxod0 zZ|{EL(QdSXr3qNZsBg#T>-V|aT-$F0gM*6hIo>mVy;z`#_e}g*Jf0p_SvB?V8K17# z1Ma!{v$$$@+pqFwbh=iQf6u}>HR>MPT+O^G->8qXmPeMqDgTwHKg(wU?2Byr`M&Y} z^_u=YlNZeb{TFYkkAu^dyP4H16MJcLKyH}fhh5mTvaw6v@GU&5_74%O|v zSsVu_d<)Ypd_aQ8j~sNLfY--gh3CGcR~2JPD-lsSOHx(vXH}Q$l5!i=O>*gS!Y%qB zVA5?j<^^#Egx*?rf|g;EcEVSeV}Q?fFJ9FN36jbU0=8w|?2Kb9jF&-|6px1pY$%lD zh5_=6-hKx74u`axB0sS3Vwh=Mfb#MbH5E~hFMW8qJwB^l!|p<-qTPM@9;?{+WsK6W zW3^-V#PiiF>19F+kmfjdZ@@iXf_XcRja128DSt24K!tI%1Y>qlLPD1d*9vddNp+#u z_DG?Kst~VTP89Pf2i2VDer4Q=07q5dIQ85f3F}7clvEfyQUw)ccl^$S zS$>;p*ae?xKDe?|0fgX}m+>|f?$6ep>P}dACCf+6L+Zx;>KFzTcOw>>2yeYGS|y&p z(Mp=3lhl0;?HBa3>=)Jz#hDy#SoTNWum1DH`^8G{HI%Ey6w#7$r1f@pC7%vM^i}(DB#Uh+$vU; z;q^wtzQVk z534NNV$$@Nv9hOGI@lRBr5%P?6%e7iCcRO=uF{Bl7fWB8A_0WM*cZVN3K)`CPT^_Y zfNE73v0ZtMYGGw(|NY`T>WLDJ_p|Zirg2%j5@?$3d_aX|);=iwFfDEVq1+@Q<`*?2 zy?Jj_w<)Dhf7CQjFaPA@2UYTVqh?s8UHMHCjK@m$D)mG-pO2cObDKIka5wCbI?TmV zV5hockK$S+#jg2Ajs4`~2W4{e4zu}Nni(i$L8ohOJMp9jpPugun0TCeqF6i&!bQ#A zRGYN~OQdNUl>Pqon$MkfYSy&O3EXU{C_*nkh57zj7d}7V8Qb09cIDP3!?z!G>jTpm zZL^OD-FVODMcciehH_}Uj#Y}JvEvf!*o@WU+qz1ze}m}5zWYuQKhI?s2W1B}ZVfN2 zY77_ijI9eaWBlLER5S0E^BbxtEKYi?FM|`T!0c^V~PTFgAHlgl6PG5U( zC0Y5%9xJs;+DFq^Iq2sHJlbem6-yc~^S7kfBQ=UPbg}oXO$=|4TFo$Cb*t6;_tp3KmK*NvZaP|3 z$q!18>zA8r&D3z4-VWfWyr=K$m!f^>ddXw4@HbZK{rXr{ty?vf_Sd^r*S6DJ&t~dr z@wSoJ#Q~Sp`d0n1)YwluLQ%98G2M>p*Za>#Fj|8$ucb|^la|m5p%}NzUEX@ZwQjTX z<=xu{cr+P;L!OGJ{=T{(Lz`=NXgb`*=B-J6f4?4hZz7{6sUn4bEduCpUt@*+#W-lq z#_#yEsS!Kd=vTb}KoIJBq)EG>9D1HouGH|mY69xzb$-8P{mtrj6g~+RR<8IiY^SE^ zgyHhf=Kbl}*3htYsVO~@UCKqnZjZAyLL{xIcqALuq+cd0O=>QHtZF73Il#z%UMK&+ zEySIL%B{lIBKu$N-=za|Jfh#*UIx$d$Aec0&`9NwAgFL z4P!`6V{3d}q0<20r-a^E3A|SRM&hQ2n!oX#Izcg>eD9b(2}hPx)fk)Xpma#fLP;cJ zDHK{7?Ncp+eByD?)gct8XN}P)8LR&jc5!0Guyn1+lE`t`UPkw$_u1~yv!4ej@C2cqAL4iAnPu;>Wm2rJ~NjT6*k@5NR zBe}@kZ5}l4>N%IZI$$Gqiz%4HK_LL{eCoPbj4sr=p~@)6N>`0>QobsSTle_3_*2&_ zRXsLGeWpc+hxSr+nQZN$x8t|GinO)XfNKmj=)qyKR&y)((@K2cF-EaFvKsdcpOsq! zTXz(SB|6kdDqinqQQ+jq0Gdj9U&47jRPlObcjwv9eLY?O&*FdIcYec}+ea?u0Q-fw zv70r#Qa87-<1QHMqW|Y`e+lsw?sQF($W>Re+*vIoPVe~O`D)+ngCCTSbRS8MQvBv4 zm5fEI?www~m~R_qVX+k>RLR=*R&Zfcv5d*-a`%o8nC*|e>qp-8ADnm5w`?iGF0sDo z{W;>m&7}Y>hkBvn(x)|~|D3!0d#J(Eq*!5mVNQ@4*}hqX7Bxq60oVi?FTRb~qlW5FJq6|yOT)M`=AWn9 zfyTElHC9s$9JGm8I%TRoE7GvyY9789F>^PO4`_iRP(4h2Xa*pDF~*M8UK1yX+p%r& zUyC-9=B`xfG1Z85c7+GD^sG0ov)HDYgrz#2{2see;32-4t4|9NhiYcQKu+QXUE8ND zsfqIff}Q{Y#pFR78-5!vC&)O&gH#mFT1~VgK7`!mowf+6+Rh^qk8f{3aXi6 zQFMc~63F+E#|nxI9@4#bBPbo~Nl_Z7QS=7RprH14m7UKiYl_0K@!K@nPVy@E zb3b%?6V)T02=Od61!dJd!KonE1PnzJgwnc#Ktr9sgY09|4--M(E$Ai*gBRh|zdZY| zr2_oOhkoQke`P+T8g%t!QF%LIABr7atu9c0!$%h3xF%nwu8e{WbNxQqNNVpV$ToLT z*wE44?O`r%QBnjadn@|ai}#h;uu*f@ngiV-n51#JpW^qe`oI0lmtXwu^Ups0!$M_|NZYQ^dIO%Tn#^o}CR5rTiMgnj@ z3gHv;u^a%f-EJ^{r5mj?8yJQpjbrz-SQ~+z_Bw)&s~cEhXmJ%)Zh7vtSKr>IsHV3@ zs9FSyymcy!xZl|Cdz$`TDU8S@$O7_RVxt^t3YbGvkc3nq&~F7MgNuTyT6RiGQmjTD7D$=lbzEMPy^3LpjpFky z#F|592jljNoJs%8V}q~fq?;AQZEAGPvo~ggdIUl5>)0UnAh~5VE;0q}4kb!EbR$f) z!MH&>2-`Pp%=@MeqJaDrcYnRLGc*!>H#9q8GU2cpH!l92t9`LCND7DEUgg zgtRXPECYVFYH^x!R8o4`S3RFbfZq3ZqnlMk7e#d)?qCjJjC!c>eh$RkIF?EeHRO%z zh)-ns?|njCpf4>FD3aa3p$G{ixdj|;wlhfg0*MBBK8B?3=+54E zGYK#pl%cmfDsiS%aJ!pZfXSeak?EzEMiz_N%_;zKp+)hUug`-vgsnbQsh`y!sCho1 ze~@3}&K+H-DrxrxyL}ySPHx$x04e}>Q(r3#q8QiRvcC%UrAF2dH{U&6uWAaWvL93Z^m3+2T(I83t#ko1>sdWGcPfenj~i znO-SwQkA_z9FlAhK&^OjhhIQaN8KM&McgZwFuycs2qRRG0?1k)mElr(O8O+Y*mMYZd9v;onil zs<#C^BjSm5cwfNGBkGj*L1p2USzJ9`0N0QUyLY3Gg4%^;cew=b2-mDovAg<(UYcqY^JR3mCMDN>|;~2lN<#A9nY%z65Pm)YEGS-B;)^Zlj}isA})phEMh~md@1Y zPN{Ih!f{_3w{H}-v<`*%TtD2AgWW(YQM*?jKb1b71zimz!0glJWVKgXM)F}SKDN}; zPvc|vvV7U=Pd>0n^~dx4<9Yt^JpV17=aYwVAo zbiEewo_RcrzP6$}TYk^@bUhDv;3m_b$Yt!J^5wgH58;uk7ksU6hP}m`i>; zJYB8Z@41mlsG9;*OZjGex?T^sV^7Q%<^arBe;nLjs4u@~RNk3vTI&?kz8Rmc-<0sm zxi%>nt2Q0$edGJ<^?(OnHVw3gts+RnLon_boWhfH1~!O_iImv$?V_bSUT6j*^@55T z?oSRYVgmBLOMql)0%lMjIO%P6FAVOgF>VraFOS`JsQY)xfn^IT-?6V(c6N2c;N-Eo z6v>mpaBXb{AD0TH9+|5qW9V0ETynRR5WZ@=O=g(W)ZNeYkvrc%-;E}52?(Wl%UsM( zI@72R(jzN9yPO})p*$&m&kY40yn6d<_)7iyY zdjFmfFQlPQ+w*A#L9Ns87n4n{9y;IuC`Xu27AksybeG=`0%hG;c5lSS{p&TId#T{v z0&laZ1lsQhx>WVC`EtJhQ7Rc#A0F5gO>qxp<5jxLX;ZF97K~+olu4S-y^Jw2vt25N zNv4;!H8%B4dK7A>7hJ`oo00YBR^3sVP}HnmPiZD3YKw)RUa$EqL#6VV=9AtGwJHSN z>ijD~txAb{l#!)zt=sNdI}C3sVC<~|-pkDM`?pZ!7~*Nu2eKf;W6>XFU>>h_ zYc9UTO!_e&rQZG^OHqXZc;QW|&fOs9QOdr)U$Wx<1?C^5KN0D&4ldC2MERxMU5`?8 zs^bLgs2=W#W&%gJO)J4-AH}^*-iYnf`;uGsAbKvvIz*TPOQOw$$Fag zK`igqhvryGCe{>2Jf(nc_I^M8N2NgRpYI><7CzlJ&6GQ@CLLg!8T-Jd+W`Q0K!?A# z=uNltZ*L%4N*4dBb9?i;`BzC=p0iSMdb_4`_jqP=+>W=qZW1v`)*;+y>_NxauPYl0 zQ_~w_2W}@nlOdY%x^GMUb^6ce*K0cW&o_G&9B?f9+}*ZqAyxB_d#wdy*6`9*E!(D> zA7N^nbqP@sR#x-nVd{_SlL+VK;aBx!|ac`@OKs0yw5-X zSX`shW&x*5A^|9$w`k%!wwNa7;6}bf{caR$$DI|ox_J#}YKfEY23WwctKU^mM*im? zA+0iY7u%=ZD@Stu;%48?{6*ZU+pBPUQQGZf)hbWb1*|p@zHXPJKZoH^09sb_A1czO zGKqFZkdMpT4_Od3RRtPw?Hj zJ{|abKJdaEPF&-}PfncXo(0{}Td;GC*Lx!Ti#7K+)b=zfv8}tgM_1=TlDIBvPAO>i z>YDuB+%u{8tEMFskx10Yt;X>Wgf51Ta}`XX!Y%D$Gqz_S7d9cjbIx4^=eF_X(wU( zpj*wfQ9LnoCJj=;PTAZox1{buC+yWxqysp{5XGMVKW+>U+a=Jj8`c^)YJI3s*$wtgx3$vWE z0a0(ED^(Ozt7l#PIJWf3=9$TOQm;H!`;vVzow9}KK(`_NxGaFGZ+41QwO2?z58V7m zN-gbsr4=o&B6Auy@3q89XiYojP#n!rw=Df$cXUIcrtWdM1=8F|j5JZT7Hv-1!pu~x zrCWC3M=3jWw5*}GS?pY$R+8J&SP7w7U?-bnO&jVR&MrI9j)By>x!6|t)#0Kk=LDRI zn|h;0Kg}@w*sOhfT~f0R%lRsjBmNx~ou&<9c-TuzTbHM1ligZpx0qs#gO-vQ_lZ?L z4_0Gt?($l83d;Uj`6gZZZ?j*Vow_|6eV9(!@;EdBvL)1R`4_vgxL{rCZUdJVCIoKA z9i~$AA^eY$`1f3Mdsh{{J)XStOX|R~CpO6yd9>}p=j0LPQ!9~W8p4o5Q&(S{B^p?0 z`hsqq(ly-12kw~tJQ=@0`!=~QWxy9P2LkO01V(ZdM z+-`2jGXzhcX`>A^3(|FL5F^<+!Rt za2dB&m@i!D?s9mPIqr10pt+@&#_p<9ucy(`&%gRR?#BB&vFk;KD%|dNAyl_s5!iqy z$K@zG-C?iRjVG;^TEoLoZ?bd4QodC$XMK2=dPJ7haMZ2uDnuoFkpiC)q=zHW%dJcq zZ^3#K!#g*tFH7lZ=Zp%UlROn!Mc32%oGd?*%Et?IMpDAb5#%3 z!}^4nH~1Q|hPRuEQzwrKiLTXVxz0r2R(&m*jBAM zl%iS4l(DTgEl%D)n)2OMn(D1C+7tR+HMpFeT-6V+R!4^V*|%!un`kKO>zCQzNSh^X zW}Y3hXim{%efs9U$*v%?$8P3LhG{kPM)(MxtkC_Cqn4i*kW~*{7a` zqiB@FK+vif6l#2>vIQf|H@-f;75?|ST&LB0S+0lIXPGtwA2WmnqFMSyDh7Q+H5*yz z&0MvHfDhW-hz3c1>C2e$$IEj*a6TmX3tAnWT3y}LpB%K?_~K{PS|kBFj#?ek>=&5d z9;%qP1IDIC_v*L_TE23Y$XE~cXbAaM3H9o-MCtZix0cQ20=rY~mik1;@0h@IR|f>2 z8>$87{wc8Zp=LhCeXfJO02HHkG3uMGp<l@88wC=TPq~#>L2`x_Y?3Qy0_HWF;75xR`s9!%`i}r#`i}>YsUb z+7U#a79xYC83JlEx``~XM*SC%fLBI>T;vBn;IC{)uu8RjVN59%4H zJ}ut{hCjQ2e!t-i4}qH@KWx+*?hmK4>QsPs3qmBh!xJ=qFL9Hxy>egy(NuRgI0w#G zEqSL2E1pK1h>@H)A375tu~}wCSIQNBm0_h)(I!D=<=tcQ_0W9J4%q!o>9R|Rq!*~; zs6wPvBh(^yiTQ^4-gx!^FyGKp$~t@{d)%^jF|9XG*{=%1UetG}H#|xzN4DC}KF_8^AO{pTcJZ=90HyNzxFd1ECJH#`HCb~_x{FVy-%S-)o z9gQz9RVxST*9F~Y`x7;>?)h7JtbGFs$D?Qysx`kD`<6=7i}RAy9bVx-_^$%i*WD;y z!QhLrn}rpdF83S%T?$5)Sg#`E=AM(|FjysPDsWalQEfh-@2`J-@+xEG?@OFn)o?Oj zr~#U;Y*T!>EV+owZQCk!J5;!`$H~Q%BHIeqL7aU6?9gDguZ zP?#!FMdT>a*k;=xZWq8pY64ZReiFN>&XA780vLLXt(TU0Ta36;ts~KOnWQ@Z$ge5r zLF^(*=TKG@*9`(9*9?4Yin&m!QSH_Kjc|2*EUG{F*QD7X&>0^~?cvn*QF)VYu#j*_ zN|hJpt$YmGm@*13V70ug_n*d%`m^>;4r;SKAK9#&prX@Jj@^E`QWd7!FRjQyo#AzF zP`7b(MDF#~}X9b~VJmc3<0F zdYNn$HkX0zz-UpCdTMZA zf)7>Icm`*qFRJra=-Em7w?euc2!K$Wov(0nDRsvL{l0I{Q08f^@9d3RVQ6(W3KBE# zhjkSp-_mR2y5b0ifgb-s>Hs}JB{2`c*_*92B-o)WF^OrCQoxXWY7G`rd@DQAkA29T9i*+n)vFK!3DN z*Fid>S9lfw>RREcQsC(-PpF}9Hl!BiEUUY8^V4u+dCD`V3(t*3xGTuDA;Z0z5jS~< z!wgbn&+Wt;zfRD zK|HSw)9jd_bi%1%sCEopukR46P-k&}I>O^*$mEW;L{7twdKx#iscZ#PGc4Kr#`eo8 z(8VtCh_!my?BFAcw{L&*cPU*WhHNULy?yT9d>qC`gyaL=f>#)C87-N1B)H&!u#ja+ z_|RC`*>c!=Vs1MSFMo?BC+o8DjIR_{Yh=d=>vPzpZB*ZQPsV^-ZbUCRhVL6i3G#7>5Y5&^-jG zp>{DinB+%iQ`Ek|5?`+Pu$n~)BfX$x#5L9yrjrpQUv~jL@2SLNR58D2^`Q&X(EZn5 z8F=0rULDW_ygYzFA2SBueD&$?zW%4*fAw3+y1)7Ko6rBAuU0qm3)n4nxcg2umqlp#%BorsF?qlG}Dc9zRlv7@_1Z6$CVrH!Fpx>|0?(}Jlt zn^f$i2GSHXxmUQu)ek$SNXg8>B!ITdL z<=uHfz|FOr|bY0x`W8=Yx zb<&KAr$&`a!?A=UxC9rE4O2E0_w?P$mQY8Kb}=fyT5u{Bt>!bEAF z%BD~Uk=?;ft%-z-v)dKaeZ4zFsI>!+bGx`C;W^v@Gzj9gW^1c}- z?B=_ZvZaA=tvor>O%;V8`DVUxX?~x{o#Bnr@zR{6eh0qMc1)fz8KxQ!k^JGrJ37)i ztI@@LKjLY8A3TleFu6X*h zwAjzS`0BGSw?jr|xm_~C&BZ5!Yxa2c#@vUt?r#M!`gSY8!M?S(@4nMd_l?K-m3JQC z-+ubdS6}?=->1tF|NCitCf>5tj-PzTYSD%0O&4ur(WU=s72?cpyR7g4){oUm^pMUY|-+c4Y zyFtQ5vfHjuqIA6O_0NC)^K@MgPo=9$_JavR%>Kd8zE6p@+lCNQ5ymxY64@oHxk~i1 z=G?1T%C)6k$tUq5na(PfO4I_7$Ds~1*~uwtfCDD59ubs_iZkDTw9b!jqkiY(Km1GjAnSI+bd2%dH@?sh zUN;BRNsXIV9P|#q4z4B%<3fv7ia04E#l1zl^us7uq=K)0C1_8w3guRbWHKe2CAqsUr z73|BH4jRy|K`lKijK6^Fs1$7sB~BFqPmmzLt`)p|)oEfXIo*mr6t1MK8mpp_+K)c3 zjLWbsvWjxDo^bT&^OfXq0NJDEIl@$`ba22DBCFn<^YCUU@$V3Q~=-jEUWA_#Uvz$i~wQ<+*taD_OidNr^qEc#LtU=}^o zBXt57?oH?#-|x}4?2Xm6zWP)Il(v1=+;TLO%U19@%LKrPI) z*QR#Hls&QEWoX!`VWZ%$=Bs>^6q8a9IEfhJ5-`r_3KCRVv$P09&UDWg^5F z|0>^ZYV6#c;m5EA3sch5uKq*0Zz`ls-ZDB#bDpwamt!`lJ=5qo2b15M#ir%yF;R7n zQ5>%;WBMVpO*P&QZa*K#x6_vz|HbgO&>Dpthbo>oHEGXgDqjTdp`3$hu$wj7wW<9@ z(c05_g0IU;H4*E4*r{*dRsylqEM+=er*tLR^-zvW=tabfsR4na(DP~UPNFC{#USDw zept1+RbE71{!CQrj@66X=dkiC@Uku{-$0q=ssd zm>e2liR;z0iMh_$VC?RNG$QqKaQUI?X=rxVsmsB)uq$GD0gXW@4; z9g+d2u?B0oP|lf@Ne3s4=S#6k7GNc&LurQO8%JwhX#ZK@`(l;xzBsyLdFMiTxehq4 z2=mZ?iIf(6)nJ(|k9EXAKy12v@_H2($Ll%yV}CyNb2z-Jw+5|)*NJh{b25arrURX? zp`%E9Fufkf*GyN!_b?O+*eH;r1UPv!n#QNi`u3fjq`;uGlgFLLbyBRC-2Z1@)C#Qg zYY}qxq((e=P=U0Mb)71uUT*h8Xq22>b#ki0FdP5JZ5|<|txVl7fIgnI@a+fmN7}Mm4U@neA#xPb= zXhW@a$9WOadUBmd)A^!_PS`qdSh-iYDAcZ>>>20s^5>$gfIaJ#c9Xmd~k-f~CKk?h!8RQre!*a(!vqi7sV_$v5k5z?Vq zW6R?)Am+z90#7o#_AU4-b_cjAg+xmxk8~;3MKQ@^42`04u`9!*R%h59NoGqZVgB~g z_4HZ1D+4onsi`s9uJJ{l%Fsf>!cb845x zOc$$!Awq|`!(H6S(!?-X>IZfRxrq|YMoTY1bwZ%wMoV-AqyB-^Q_ym#8IW72yOdMq zLqkxtjNz*g_-Yiofi>*%A~Gj=U!n;e4z9s`vRdJB;6wkG-9?o&WRPSS0mhXzj%B{8 z*ovi2wy#x-2Y*46{{IR)mn2zo-H6V$idsP{_$MctzeH4sEwU* zD;WF$aKHh;ZM9BB-d8qQ1kP%8J`eN9lCJ5>h2~>iy>Min51)q%-}FpOu}k6mIQ1*o zWz}p>KUL)AP6KmCro$<3@z)SY^7Wc2->^;-J(Cu; z1tZ5uQcK+xu*v3J;jFnzf}HwJgEVLySd}EGmozKHrbX1k>!7*`+2Ts-uGj4TlMmzh z(nUbRa9e=^=}WhK-P4l>cE#lfC`9#aEr4M!nbi1vkq*-1CA zRrKi2oiNI`mki$%@ZzpKClgK6mrPz$Z6KHLjJ+jrp7S{ES=gz<>t8RQpO49ooI(lG z3>>duO%F);LKp;2hl9}Lv6;BaY?bHde?T+nLCDbXkV_PQ>vk9Y`D3rXft^PHEjy{) zrKhLpHo^Q}j=-1I_}yA9KV+k*MY$|b{}5>8^f9-G$slXdO4K#yTb0$#Q~Ip!^Q6Qy ztNNxAz_Z@gjsXRnq+yjs=()EjZx z-?9ghDRTfY`d_ceAwzj$6T$Is%d5xusmD8Xuc(i&m2+Jog4@Crto*eV{Ib2W6Wj5xo%(`x$PZ&#hF;UpvJ>!h z{M_vXoJ`-n^kyy#pffeJ(fQEdmIBU96%+v3ccGQYnx)c*vbrY4vUHzs$X*z`7c9^r zaz<7a3V|S_>TuWBVmhd&<%PdiozM$!nxar_bZm}_7CUz~97Ycj8f6fW(6o)D{E_3? zBTm`@ij==1Y|!>=rb!}u)_K~>a1mYicKY<>-T1M2H~I8@8Yljm>j0PLQZ%iPm7b<1 z=&^)Orll8ZadKTDVn%phACSz0a3Vr{)gRx6L)-*8$G^7f8`80Oal=Us6v5}t+-JA4 z(ze0l9X3tLeN9U>D8(t)xX6X3$Vt89)lfbs&*KGKJdc>JVI213^El~DzlDza1a^D; z;bP*FLhuoGzNcX8;fhMaX9)7zYBU5P$OrS|M1{5cJepGthg=0)G<_x!lpvq0;#%HU zD&XQSJzK$XVg6)Ta3#pxI8AIq)e&ygy`CS&!#1^)$-M8!gf2PtIFi9Gb!BU?KmadX zROpxYnal@CJFVc&bbbBw^FP~aI@{HUsk?2YJ=~q@_@A5g#UdszhZdsr77>k5<7PVs zTs-NL+9iq-XMJ~9tx zQqIZy1Ppn@rpaU1_0eUT!>(O=k25K}r?DYeNAp za0io(IyYeCo*)D-r08c^=E8hYN{9B0Re{>##b^sjZf!s2&vrHY@cSQgxQ~Si8gBZ% z1YhK9P3-|^gOah7q4}?QyG@aKx(20cOjp0I%xuQ)?dOlp`i6D7u@1JVtqV(u2>HjT zkQwxHxO6(^7!Tb~6q1-%qe0o@OhZ&;F0{tLiiS>8p6K??mfTLHm>Sm$_2Oe&A z9xJ!`I^0U^JpD%P7sDN}z-JSC)sftGDim0VQ<;L>xf=n}szq_P1c0zz*f^Gw1Ifly zV5)#Hwr&H+0+s1YN^fo)8rSmi#eJfVt|eZ0``dm(!k}Nb^~so`zq2#+0_1gEwJY}D zuuRK22R4y!z2mj;J^%$_3%T@oVhC{>bBK;xEQMg33IRF)oQ__oC^>^fz{E~4gbMd7#Ku*@Ump-cvL zIY+$)HHGrG-UQ>&TV(M_v$$+Gy*D-4w z@A7BraK$TOcoFt3z-s%!*LhcCA1L0s5 zFY-0 za8^++leMQn>pEc?km6XL_&n&4V9MjKz524TYghsaaI`KWCEP*Szwm`soHD|hphLHH zlH2;rzVsfo2cu+C#<=E4p$Mijx_UsbTJ!ma&;?JNFi&uYdj8iDB`u1i97=;S zn@91*WuK&~()?U?h99O$iSPx z9$_X&a_*FV+g4Nng;$>^kBlR|c{zsxQO(CcTiDWiwguY*+;Xg6bl#v$_lV0s0bSeV z?dTzFKtN)%IHzEU?C!_Wh}C*nj{mt+-*8S9I-~EKIAp7x(DxYW;F8XfB8iqNe;|m_ z)c6FymtC`$b6uN?hL%xf+lNI1ka*M zHL>-wg-Mt?U~k4lPdMG!KsMtw-ipytkPB=KjkjxgEY0Y6ddJ?G4hNycZNqeZeev_} z^k+0+IeK&XJj;VnLC5j0&H93LXnFr^3z9ryk)fS~8+(zbhIHq~VxwQExrjt!U{oW@ zpLHUzbzAfDV!rh3;BCtTuX=NX9h>qwenLBrI2$3c>u8fT5h|it+ z{EP{o8gdY*;JM79U&kN}lnmGXS{?*pklGl{3Cb)f0vOd~jSxQb_0?~`&$rhI@4`7V z136~|su=&?s&7E23Y%#yH$@^l{4TQbcaRGXBa<*9pzd7?A_)^<6v^84FAc9&^%xzOjMs6+h@Lzbl5(|hA*Lc1-5;%o(0XQ*xL3%3ADKsBP?GN||<`#Wd;${R{$yd&IHD!BR3-2hwV4=J~_>5gp#m z>3946?G&kjJvPq^+-65Sj0WO=BK|4( zwA_qv1_2q5%7Q(k-jOY?U>p*L+CS;9Royc5Eo1ecNmtd!VGi2cjkjP#&-cU|w81N# zRo_RzRk)2;8Yd=`@+MtB(-5FlzL|NBetA)8^0Hh0zriCj2!?T~wm_!@b+`JV}0RRC`jY1$)TPzak6NLJ>h0{)!7B z*Hhmbn|)_K9PtsK&Cu(0T;9#`= zJq}bdyhXT|7A68u5pD7@u#!WGuH|QyAK|r?#|LkxraW(_cnjagr(>!U2Itn}X1+ig(4xSWY~C^* zObh4)O7(0A+hP==lIuFeFHhq>)0U33=WymPB?Yy7N<}y4w(Sy zjO?xltz!j*yOx${T278i`V@M#fF;7)5;|x{Pv`^f4$d$_7ys&jaDNQOcmrVhnSI*a zci5Lx*VgdDv%!F_wc0BQkHMclU+o23Y|ZHUWp`F%KW)5%lHg8C^0Reg14Qiq92LXt zcN#U>>tJL|42uh7*w7l*In|5TZ*+VP{R(c88O+LG%Yy)na+|7;1Z0>Fs(Zy_!)$&1 zN@qiufW%JZV-G*hqOC;K#?K#H^#$g%)bx6j4?rX;z}+2l6ZY||l^hApB1 z`ZBUsUmXXcc{Kk0@M7rYaUIxb8Fx^=QTK!ioC>t_6<-ZOv-PU~hoDuFIK?K=6_gL_ zoEOr7D7OD=lfI#wru)cr^DD$CdZBKj4ekN0Ec&n_oA;U*cz%b8*A+6CB=^z zsQ>^oOf0t268BN8AS0K6qSn0bT0$QH$9!Ggv{@mLLa2>xD>Y+NN}xKfW1t1*1RLeg zOW&j)--mx5CZ*2Z3!_0>kiJcvFb-p>GHc0R{Z7!#w_}GDqGCJB58`GmejP=M^({O8 zwO9XsW5ExQD-6s5Kbjmq#&xvUZ~a4$&$$!M!T&YjfX(uW8}6C{PdJ@;{XnB8Ld>}7 z@Fm+_s|}x5pq}v8aR@y#UUeeOO`0uU`Sk($tewn-86P+vKvn^|C`cCeoDI~g0UwQ6 z>BTDnA7m#D-%mUwOMm{BH_&CDANfdBlLneX0GHmhGFI&!3yS-^erEiemPmi}kWsHr znGM;BWC-!r5ogiyV8}EHPAAukm2_Ts6k)+Ue);Eh_PX#~lz+L7@sB$G=RSRdHr+;c z*17|GkWc8}8hS(3FPJefytH?R4lw&wk!eNMY+U@TnU*`|vzx9*V%X`G3ifDEA6KC2 zRay$x!+9iz!L1;z+6)$*uOBYylu4G1DwOrH()y7vs-?kY*Tp;yKxxNvI5;dA2PIT8 zJtlDW*?O30WLhcywxtD46kDl82z|CB9SOC^P8lks_6>Bb=d~f%lDF*Fn}0;CAUiWj zv|5DdW{Q2k3ek9p`3pta&Ffk1Le`Hh*|)o)$eQ+CV~B|Oy;tARO%W|qoEJbrrC4ST z6B4TzHOZMGOzr=#nsmcdiu(DxM}Vd0-T$rkmVE~Yp?RzfO_oiGL>+Gk-MWe-xIC7R z7aCzn;V>d#La{RT@+9fbqCOmZ-4!Y7PT-`+!EEq}GsKwqtl=Kc3VLK#bBbu}!s}>b zJ|v%~JS4HIuD8TJgIWd?9z=v(XJG*005~o+ZzrcO$9)M?s;h8U{D@Mv5^t;iok^)S zR6vn4Q{U_YNcw{-#hP!Eo0|14t(V;A&+jezvYlL*796_Bv(n++9212QhKN&#@p_67 z;rC+k9}=x#M?y@jA&3t`tTiW%nQzOD4qYt8r*S;8NHEsNwls{#ex?2*EG(`CR7?A$ zcrEN3CB%X@>;Wjod3s&`4Ao&id6bYWbT<--A{&>9L>?VHEFcc}<`FOChk-cG*d9Z) zE91E%u4pLE7@{CM^dxVH_G5lEc}E1h1^3k+YD8HmmBwvI)Fmy+#!Jp1LI&O4Ba4x5 zOk}$1W5|@ zm%% z*@Uy8W-m;-`n^}*5KR##Cz%nJ41$T1Qs%s`F> zI?FiEQl(Xcvc!47wMxjj1rkNkfv4$X8A}i4Bi)I($s#sflW@eid*kp_7*?qzI)KB+ zKZkqcnP16MIxYKxxdFgZT2s%uzLPnwB+eN^WJx3S<3Diq)Os*9M?S7ezdkx@|JbQ7 z+j_PbS^Ywe6*dchj8G6cR&*IfTjQLe4;D5_3q7HdW3^L$n8^a|DZx-qxZiNJmm-=o zrf>DbnEP{O54lcDw#m)~fXjC{$?iK0%cUDDx(MVB%IdEioQ8OqlbQ=Q*wbJ29<{zr zc(1RZY~l!l-l~s!F&w9XLy3AJv4$|3Z-;oDaU0F+bobD(N^zI4zWCR5L_Y$>`0Fq( zhRsQ;7)z;5jRk`)%qH2wloBI8=Gy_Sr1=m8?60mSEr>wI6R)QUSHE}a8>*=m0JASi zn;&os$@LaqGA=#z6AkEG(8++Ud@2C%YBSggp70q0C$u#1DfJUq$Ux7_8hMIOD^*9B z>T(@CM8`w`P?6WG!!l(y%UC|2GGtCY|005nFl?s&*e1uJB?HaJjZ>p?*K74i;Ncz> z{k2d9{to)%|D|mLQ4>N8iW=Wj{@&-3v^rk})Vc*Df22$Na$Nph8)VY(fS5_GYho(uUn zyCKcpet1icACY$U!Du9$WE|-v7c>67PhZSn`XFkrLOdo6Q%$j_?&wqtog{#yT#nW) z;RYCbXMaR9fB+bL*l~rftJ^)Vj<$*RW}o@AB6WtPt_s~*M`FncPsmrpe%jZ@Rus3~ zb%ZN%*7GvLdJH#Maw9HfgFIv}GA15tkO#?PJNNzC2YDYkH4@FIw{4r#^GNo#tU$?F zBi!kzD9Zh-E4FB%nDNevNkq!S2g-6!Y|BoSlUi z0b`x;HnOZ(`QID$4cyegWMBr_RS+lrW6P)+aK!QrpcFJL-mU6?9+Io@m4hkB{$(!6 zSi}-e>y|mAM(B4_VKeUXCNZ5@2lRKuikQhD<2Bs^4P9d8(391?>)ukF2?$w*;55Vo zPj2W_ZpL`DWHIPTxd9d-^A(d#R8dDn2@T?{e!!_j!(fTS`Qo~-WMeZ{{o%`fhG7*< zHBL3YL8~e7eH?mIj)t1ZwLeu}okE*ntznmvbFPPN%k%U7X3!AF%c9q^^ z(*$J`be;BLd|asdc0IsG^$L(%m4++qJKV~tFROaraX0|D)J9W_mV zVHuNegM4h!X85&%6eNVGK*+3G@jj|xNT`8<>y=u9YQ`OVaN8r^m{W{)x)$9Y8H~B0 zTwKUs5>2w}&)e^|mh3y^%B3@_z7XpS^O(_tJcw8VqB3sCKp2f{8eD-S!A?=F#%c;BXMXl1C@oi`X?ZMj zeTw%k!IxpSEpC-#d+GK@vi$*VoYBn zKuNf{O%EoO-O-?F9enX0G6%mC@Pp(kwhW~NJmFiF)o~$pcy%alx0XrXpIcmGJET-G z62<{scMgJXEwvJKO(0iQr!8YZKr-^c)nO!8SygE|o(6a9Zl<7|pdP5JktXLAIuUqLZ zDv>hYFAdjLrS!?=*I#`3t6zV6EB))2 zU;N>xzx%hJe3CBd!arU7@Bj4WS6}_)li&XCw_kj6`M2ME_1kZL^2x8i{r30&dW8%==Y!TrGNSQtN;Etl+!=v)Ydh1|MUIHk7Ihj_$p@nn=dY($8yT4lus_7|9kv3R(k56T)vKf9c#uP@sH8p{!&Hx zS^e2`6)!6!md$=z^|D5NYJFT?&MMc{U5@stoZEAh$J3^r?P*3gQj7n_>+!E+G|KfU z#p`uHrM=?yx}Gw>$M~lhtP~4r?8}OQA2lA2^)lk|7`(JM<@lpsW~{?CHm}D>?(|fL zKAmXlocU?9mSVVOtmv6z7*p@j{!2{P)0lLl=Xfc~^0)`qM>0E zlzo~Wd$7mQ#ww0-nlaax9z!{M3{|}FlvQ|+`q#vsSzZmE=qgf+%V~kay_87xx zed}6>G4Cq|wpq@_+tKM3l~>xzvY6>cyqMJ)T^pCWR#cYb^)Z?C z$}CQ;sud4jYP`0aACI0^_C`~6F+@?0`O5XQy|qh?b-cAG5x4bHOOFXr*9W_z#z;l$ zE?Pt(v|?mNiZz`>sKq}Q222ATi?he?2q3ziOQyOq7=Py7%c%4bBgRBWuX_|@Lnkeh z8TDLBh`Err@pwqA8Zxu;Im$6s{2uchD=J>6m+^aH8Aj_v=s)!wGB*Chs@$yBIM(88 zArUhFj_78#ON?C!@mZqvF}8!&m#XUWX2)eja?DB0HydpuAV+yB711Aa6H`~Bd7Gnz ze~yVStfd&>#CcI-aqC=(U59+HF*LDVbFAq)W8^6}gz=7D8H=vQV(osvvZia(%u(Ka zq{bk{DnhnbK2Dhh!TD4}9Mt$D6+J&0yBgv^&qp;qz8`x$8Wv@KkM~=QN-dmgPqC1n zb7QI)8;;DFQasp<0I_gJty_D7F}UwJk@K^#nG5hg-_DSk4Q-3sjEj>T={$$aV zi^_2(R?g+7{w<_SEYLUuVn-l>YgIXMHX?yz!?AW)OFh;YMJA!B`J3jn#!_onJsuNJ zd2NO(kOsfUsCCwIkMG8RTl}Z8A$wp81Z!-#kdE;_5;lI{J&tCYk6Zy`#eRKGY0bYWCBdt!uCjlJ1pPc+v4h>B_)Lmg=q zuU8g$lw--ovK}#uaX!X360&T>pvGY}GD{D@I<@LYVM=1IM~q#3e1s4gEe@^0c^&VE zsNJ!9LRL+^&stzEVgc#=4ICJ|u|HSXC z@DXcka;|VhN40E)8SR;rIgJn`NRk|7t)=*0Oim0o-P%aM8N(23V~j2swc-p7STqLB zZ^)6Q=CcG!2!T~;ca#x+@j7@5ynt+tmARtYke#tgW1}I4rbP2(hLF80R{H8fH>m<-IJ3zr1uWuk(%+D_I>767RC!3Rz+Ob|hTG5uyF5NL@ zam3D$`>`V9bO#!H?q z7M(>~vU!6d^E~6WFPklynWor6gL2f*Dp|4RLSpQYAf;E&OKi~{(=kH5(Y(c2?bsr* zAL9LZF!4J>I6cj=#dpl>?x;biVbR`bA3J)*P$Sq z1sDKh6bT_MNCDRv*fv?9F~AgK-51t(G?C(@gBe`SG6&vM>jX1iq#VThm=zQiXeBmB zMVafYt|;#(362=GA}l8PAJ{~TU1*9?AF&#n%F#sj^3aJG<)K4)#8>ot3>)lOk4yEH){ztCF1*r`!1POf0d_dS)j71gQ1Muh(fQa2&r&*#gPU5* zQQ5LVHBzvGn}<<#0~W>Nsm(J{W4+f{khC5#CM~?6#Yb5fJw(;8(#Wz062_oWdmO+6 zK$rCvsvFYK#MVHfWr&njtD;q5v1DL9zTod5mUG&p6+Y?YpWp8EIKN zME0E4M5sO{06~=o8chhcYN*533@H#wO^gwWObD7x8A>AtFL92Ake;ZsybnZn=X4E96$3nxIR~Fz50m88wXU#JUbnU8RH=bTyN;+EwEet(p`H1eJ z76+n?BRLQXAh0~wkclaT*BEHo0r~(giE^|sgd3nWkdzTXX;(mR%Vr2>pgR;0l>foB zgSnA?u^UDR297pV(vT|yEZN4jO7WN~hd8`eEz6~@?Y5sAnk9HA{(TN>!114e(b4E~ zK_^+A^5$z-#7scy7&&yh{@f%J8OeY*HC_k#3SbECNINeJx+Dv(NqLVErv8Bb&tT5L ziBT?Wk{(-id)#}1SqPlpJd|_*RzRu0#>@icuCeH`)#7B-*!5T}y@`+ji=m8lXp`8o zqoD)lYuDP2>MP3odPZ%CR{~3R@e=WsSkwVE(cN<3)!0$+8KHKsw6DPC4O9aplz4p^ zV#24aIL3g@Aq zSAO21TE;6-7SABy3M_A&<3)%U<|{fLCqXnj7V(H`dMx$8dsiV|ngO*r#3w&s60|*W(@bz@J*FNqz6vi zn%xE<4+Or%#zy@pZ+%}^EDjhpz85&@c|ip6Jrsrn76d<1j{e280nv8s+XgrYwJL-y za<~D(LauL-SN<8r0Jymrj@UQ@=*S5eC5WDO-5`^wtRvO}ifnWv7I@5Y2<(vd(V5t$ zOirjU0rZAWhhCvxt{V+6gn<_Pn9m#HIq~x_M1dpN(zvof1=60C6iY*FX^2BKvY{yn zsUG!E9bakFXfDnuR&W!bg3FCv8LjQ&*1AquDSmoCDvqfc893X0u9vALn2j0Yq#Wpj z`g(}RIix}*fD|Vb5{pAaa1c?7=rrD$(vP;b_Emgp4A4Ls#o!<+EHs!HxUqN{NWR72 zu6#(uiHZ^;pz`tEZe=%pcWEK<@lr&s37JohW6^~1y=Z*M$k;V{KZYiXvDr{kcs-$% z#2yu%iX$Qx`Qo(g+jMbkvK8kdnmlj{b45dk;dS)3Lz)}6#tz_ct+f~j#}Zpo0ozq) zHyk-U-`?h`qirZ7{#Y#G(C#?;lNeF>-9QG_sw{v9og+R1%L1V90Ebu`LfIht&@n=u z48f@)>S{x#pw9t_Vnjp4nbnAY6wny#OIlyp7*QUuG*`VJiv}GgfgI4VqOp_4GEt~l zs4y{+=yM7Ejq;57&>9^e(G3xcqQRP7l#%`2_$x-5_d^AeGNaG4h9|2EJT`@^MjWrG zLWqS8xv{`!%tZW`H6G_^sCk?~7q(JJBVMaAJcL-8^fIPhh?j-tQ7ZGmLUv?lnW!5v z;UNy{vg!hT5Hk{e5z$+9l%OXLt?mXczM{*neDG5VSpw5ttr)R9*xo|C(9R)=ir|Ly zmQcx9FJ&EYzV`EC1`Os=zE+nq4@)c>3te$;Ax#LN>*9F1(_ zLyA|AGqh%^dO88-VS$H=t&0SXBfeePmJJn-a&(>Y29-k!v+p>IrBTeKwu4Jl-A2W{ zLN0K~MY%vdLa%Vhghqlu7TEyui~dQWUZr>}E9RTC`|`Lsrm*5(%l+ChXUh=X+Bb2=h#9 zHY=xvgkG^)7DL^!Xf0Xp7OEs?Sc#_RA>b;_m!S@vQS&j$HqBImyN!VZhy$hhG@vX7 zdcyvV!v**HJjH};bEU9O*k_8!P?=J&_nCT*Juvrm0@)9@8OSh1zqfaf<9W&Ym-Y4* z%?37U`!E6lZFHDm)lUAIRX|rprfU~?jI77ufAV!6-5y9rTT_t%V-(rP08$Hy1swsd z3yD}oUsN^(w!MTvguPgS>!9Efctf@+F_%M)v06K15mc!Ks-wha#R%BSGbpjnQ|^G# zWZn}v7*ZQt$WR~xILiUAQO&|&0Vv*}$CyRV%@HfR1Hl=0 zh63YYfMEE_JUkX@%6hl_yc7wcDXNb#$^rj5d!VF|4ePm~>5nsuV7Jb+^+Q=lxrvE3 zL4U;uVVe+da8m)oW3E||aYTVMV+G21ETF$+y=!nRoqbZT*j^@^4G0~8yaEMQIV%+F z9&(r8vxs;0Xo6n~T_nK5wPGEiZ$Ri7s$4%(AJmt#>=W=6^fHFH%7jfB18clqr}=vj z@*dBj-o^~DJ39#UQsE$xUGzFOTupGkybsu@S4fn_$tvz=J|og-9VVoSv8Gy-VK#^r zQn1>wXw}Wos3FCQgbDW7XRL#2P6gr08mPgo1E#b2G8{ERP#%yUHs-gq85SZA1^ zDx6PaC1tsrTr&nKK9^;gfg22Iqa#r!>{u}&tvK_Vx|8vOpgCCgC*+{$-6(<0*hw@_aYP z3s?1wi-~+qz*ssx(VqjG33wL0&oZEY0rCkEuU!?-W+Yg2QGH1p}uc_&EsK7<;L|a){Db;n5i)KvIaSIFYvWlUF?0 z4`wPmiT>6x=C0|F zU-4rf(q^QqSpM%D;M*9Sr{34JY$%He< zj}oE2mI!Oh=!d2GKtbf*+F0BAPG(!ndf0M^l@SkzxrQ1loYw_Lm{#}bx>0|pYC(}K! z-pb(?1CfmNd_;d~_BQezlfVAncr*<(T3OcRsW3FNTjpvGe(I9F*_`Db$*bag?}yIW zRHgW@%qn+*5q~YU6(?bQiT7E5xQxj6Sgpe6f%d26lAc}YFi^nyr{-Gr#WN29!;GL$ zxU?^~mAuxr>jQu9>gR^09Pa@=u{?u(L7oj&iyws=jTk3^qS8y2vlZtocZn^|1-n*wvMc+4XqVRz5YEk)c=)b z4|~q?{gdAkI?Rv`!7IR+W^EW>L48e{Gn$PyyLM;IT3G|IdTPh=7{fX9nS5M@Vpr7T z=;8@hMMs|8di8E}TIYWsJ32U#3W6u}1pSRkyIJ?5fBAeL-K?8|r+2y9U7$*>%VzfH zQ#KpbZLLRnffX{fx$R{rDpRC3nvhs>yzWd=$>41rsUD6|91`bTtehsM(mM|IA17Uh%x$ z+j9~3a|l2bM)8byqxx=s{_bb|@1y4j$sLoG#dXE`KMPC7UII2xD5VUdZHV8;47^m?bz?=qub)g(7NV3^pUyjH z7+N~dNmj}?QmXS*UsatPw;vk!f2H?Lo(OXE7QG;+EId!DU5E6W8!x(AO%BZ6ylk4N z3lYWDix5{DsHUzpmXYxoR`s_iE=ICj&NjKZbgz(gR&n=A#e07{@?c&bn)!ca911-w zxUoSjb(|Px(5$f{VaW74rm~t=csTkiwVb zDyF^LWr@*<;nQj;BGnm>X-Vh5{gD6GQtAih^)r0fgGGmqXVHrKw|zRX1iFX&QimMk z5G&%ITk^r=bAF#vk`vyu9kN~&k20scz2v3A00IQZQtLFLLtI%lkdw3d+0q67jqA&> z-$9k1_n-dsXMb9=bKih-_MP@~IN0dJOB$1EXw;I%2M79;P9yK@xgUq;$052Kx%=^a zHP(+aaW_McGj~6y?`Ha81-xD#_iN|%y1HL;-?J9aX?(wU@7DGGSbXg12e%bNu~=Ac zu05}*OrG^pF>ilE-YH0N@Xcn_#^CIO=Clp66l}QwR?DkV$Fr$veSqy@95%G3ti_D& zgCK;sW@=lggOaAybDhfW>BKLdMGI_$qSFdHTIj7$ceu9Ky~;-;gTA~eXjPMwDSm2V z(VNa-#Zf|Uq)(x;?Ks)(5vgT-_CfJJ@Y2K?y3TjcIcVjSG#-S&QIx{@t`$EN=@6d; zY{UnIEq*N48r5oZb-(?cB|VAO6fmrew*T&Dc@PqJJBS@lRuue`e7sKy41Z7d-rKi- zXfK)xk@%7!=v&BkDaBeccVbO zOqN>lv=z^1mwP0f%1t)#c$PSr>&u%o93RMT?E*d$8?8KkFv1^&#j)cu1xuo1i^4ER zL>QW8Ueh~K2BZLVejW-k&5mHw@LA`4dbK>H96!mAaXNqo zRa|~$gaWmril5L4%x+E5)fdIcC=jIh=pmFsu0BjTQ!(U^AqrsJLMs&bai*rbOOI3g zdLNvjAIqD6VSC=UwS$M#_bk&_yW{bFc7Q!g6u96X;R0sHNIl9YAcFvI%}sN#$dnJ1 zMt7dr6Jb1Xu14fR8d3VxXCGp&pY`zajLq>1NsIE<`a?>9>`?NTA%)kocD8lqn!P{d z!-lI|c9R6es)7M?Q+S2dYDe3=+UgHOz#!i>+R-+Oct1UA`xZPS>Zz3z)fAhiz7}!M zVmKUVvfbEWCA-`Yk4m5V3$HbA4vdpRjypK$NrJ|KYqH(z{vxTx_v>+8Ft_1*R5 zNwiHuz?AhuOq{gT>FqbRjyasnbo?m}M1<6n?Wj-E+>Zr{bQpr1NG9#p<=4eaRz<>Q z{Q2kEO%1iP`x`o0_On)ay~+M*#;l*CcpT>~Nsjs{|L>!c}vO&kb-y0=)uSs(+&BUg7iTzHO!Hewn@9hXble+cB7rrC3a_Qdd-jL0^yWYme zPFVMi|G{RAX6iUuv$ew5KE7F|FPx*4(k&+oGbU8|UQNtmJvAlI-cQPe^S~tMhNd-RGLkv6(NzBeyK zqc}tHa!((F2!^-rF>4)W%@Ck9Z@!~eP0c|+V!(PvH)pB+d3~t!j)#i&t&i?y zKL;tAhPZv1gPN(P-hFzW64qk!duaFc*_}MY$Lq5adD!NV%sm3KX&U&qJ36}?j~t@7D;JAd#e6m5=r(Z^qNqov=}yY}RlY3eNgF=RFZGFK%cI|= zT)ce#2XjqwBhM!uyUQf~sol)4=f_f=KLzpsZA%%AzJG<1NTeE1-yL!IUqSph`?UjG`iGR5J*kdE^n|J@Y$A-LX z;H{oteC#-sqEth0!l~OTabnB8-eHQ({@o~KXGs#BK5aY2M_E>Jxfy!}DPh=@<UBfBv-|_f_Sm%CTWK0ix~ zYs#8I5oe;uuf6{Ir+2Nm|M$y#%CGBr-*eDz-8!qf(dYKVeq-=L@0B)q7jQ z0GAf6>ZNHKWgSn2?i@2#aTMWJPEjrq#ep4^6#?f_rmWtgN@iCF=>(oi&7Xr2#3owY z8co_9C*+GDo99>MSHG`Q-nX(f*w#*2x!dN``FS3QSBJ|(rhji)jTK|R#_4<(kA>2j z)^S-oJc^QMWd%ZsN$JgVDU9QwYI(fb32SLDDBkTN1$ms~MG41F@)!p9hJ|JtgiTMbac4Lx2hJ*soy@H2>-gWn-+ z_TZA@uis6XJ;+L(u~LV%5T@CSaRM3bVVBiN%1YbY6~C^9GR1aOr8lH3*&j!8tLOQ% z>ns$Au6F0=zLovE?DO~K^Zk0gt8PEZSw24JI7=IxD7WG=y%xBymO;!VWhH_-M*__^ zy7Olqde3N(uyA{AKnXmSy^q>>RnD)TfBpOG_g~6CTpQTdH?ldaee@VD@Y{)Yal9?- zvz)EqwcNdwi%$+MZ0)&Inf6!JUKdKf+M}^^XZroib1nLZ$92Q%6^N%&pnh2*%g{Y6wb3eR%I7CWM3V}(An?pjCQAF6{?gy ze*J~BmKc&FqY1b!lDK&BcI$b#)y?s)n57(^lH*02119jSwHMd<-l;R)N}k2}t|_OI zv0bHkN=!A9oAo5JYUfR5ao}w3_P0;f@RhU#`$!-~o2WKLv@8F#)p_Xxq)QmXzP8R; z^(=jsL=cK&7F&-%CHPM#)gT9h&m^a@x-k^aYI36iw+%!y<&IsJ(h>cgJ3>roc;^NzpARip8P(V?DSsF;0h*k zuxA}q=a84nyD z__D1i%gDtnS2ss70omA48GwiF#<$D0WVg;vmZt8UazEYM*>-32o=c1hl7owVvO~`b z0$+-opRZhprSg6A{$r2l59{j(J3N0_b?@(9xN^(Ql#YU1X`_S1kWN2^4n@+Ba+g>HQ z@?FT@Zoyr58@ucj?Om7hsoY&w@Af+WtoG%iemR|jW~CcUop0UOL#Q?Dc(i~Vlg-{NcMXrBae(cQQ9A3pCFCu+67 zAb{0H0r7J!qsk@@J-i|lc-;Q5lz9#}TBeDzJW~&VmkU^PwDsB+>vG#I^~L?MZkLnF z$K$Wq+{f_m^Sp+0?(_a}mqeS@^WE;z2lh~w`!x;*vb6bvWTvw1``&dH3YN}(2-CU66@Xr9^ zOXo?$?%*{1rBiV^O_!yxWjoU0C?`T<>Gg4v38-u@SkVo-5?nVQXkBIx;P5Tzs@#lg zx1aj?_z($HbnTv;6XYL^&zWAH$|9~|%odAY1@pvl zbhMw}XRt&}jBUU8?Tif5D_dhJ-|hP1EbYrvoWX%|KJZmYC2ifHip@fv>(sXmXysFz zWc}0yW8G6L#&qs8^{$4pe7R%YY!}m6R(<>N+cMKxW4(WzJ4xEPyp*>!^2?kYWl67P z>8Iaiof&7LWjPUmeC_(3EH0K?!K)i!6I%C=u7y$!u`TE22AAjS(cfJR; zE@c@I@;%>w>wB-N&b}15L#_>bzvYA4xU;@)d-CJUi(lTu<9|d??yB#vtGh~=E9Q>t z;__o_-o8VDa4N;%#1fd_GXt+j=>GAKyiDPHhX3)~ufO&1_{Wb~pSn{Bvk`j%iXtR1 zf=Soafk?SV3GZoz_Xwe0WL3qULphE%<(?8iRY(hNRK8ejibW@vS?Lf7Q&Iw-j9c^_ zS2h9q55DAS?yOYhOO9eNu6txd%-Grdz7(9eMekrDo9uS!S{JU#)_w546ZTSdgI;!- z%X&N40qOBZ#;6J_svsn%L7?x+$7N=k8Ja{8Qui^6Tc(^gXbvMc515v!REH6SG_zZ01UI(fV|DG_U0qr%=#9K;rSbm<{b#>s~&C`1}oh*SE@_@7evS=U||mDviD?pz1`&3HR{HxcRrn=xj(wtYJ&h-8HEMd0oqk$Ul}JL1kdtQIozcD>;IPAy_sQP|Vy~6a7=&x|^6D#tW)VQ6Om7ZK%@d@Yx()d9Io+U*mZ$K90}jDVRNC@9;Q9 z(ufV2#dPVLhB&rP2qS*h+Ct;tWiD;f)1W65zOHz+p~yyQn=XZDKvkWtnn>u2GwFBqv$wfXo#}htysNcB^1S> z+dTF7hOXc;YYp1w)YWa_EkqC-S~tUd_~-lR6O{Ll;eV=r96hbn$e^czm`Liv zb5Rm{#%wxCx^!VGuOe&|zFbdZxOD#9P)u97gIg;_!3vdXbo-+pS5y{d-Oe|wZtvsy z4e!b|qBE=9k&hayt2;) zu6Udz@$7nEa(zw_yi_j-%1I!$zRs=pL_Pslh`yEw<#k{hTt{BFInWkccs(M1A1WpoSg}7A=jH>9q{<1x6R?axpR&)ZqN&07WuL~d#))ZB3|Ut45!o>bY$wo3&!cB8caF|;`#2=t(v{nK zei6dKU@+La9#_9B5MDZlBDNmp>dk3YWPcIL-SB;c=EwK~{*n@lG*NLRUY%mzn^q*= zZyOgD$^xoTwCkHj=z^OW4~84^O#1z5e!d;L;9H5~HWHQ)fs+HG+jHlNz*O&`Q!+@OjB!g3_aaR9qrhS&G+YM#MI2m(R zH*%J~0}k--75fEhIm?DSv1P|7O5vfrp3M*RzJb)VqT8^Ddda8WU(F>Vo=C8A3cvnvz&8jC?B_qixfU%c$OE+ zm2^Z=3AT1qMmLxO)|~@tIGq%@yUFy%NtK1mrD04<3%vJLJs@oB`t>Sxc*<{8KB86S zgN(^8uIj-%!lI>}=5XF6=XF8j1tQ`TECp9-T|l$ zo&hr_<8pAAk~m}oZGBV4)ztQ+%E4bCO){bu{~iDu#=2UAJ;*rZu5_U^4Wy?b46SKK zrbFrrdPo*>&Cq_+CPK=ioJg?!%V$LW!;ER

?DhWcS(rMLj@%Y`ap%Pt~>Mqz&hhA@qzm#`dHVjP1#-iiH zKsNUmrxjwmqK&pR-b5qFsL%^89efo663OwvAlw{Aa{tIft)VDsD_)1bu`l^rWVNWz zsSp#x0tGhe_-2r^Zp%;@F)Y|_oYbLhj=cQCiL?-ZN`e6qOdr2AVmy1-^H0(0RYB2c zF@l{{0H6=8-NWwSpv8JF%RrsxoMLUyb7{DwEMkLi%b!f72|aVJ?312wvEfPHXTAA8apR9~>5auDK_*p;OZ5W#(47FLgnxySsp9vOG+m|AFl>`7nH zf-7;)s-st7_CMtJA$BNma*urO+MhYcSHKQ^Bl@&tq!tCvJe@Tod+eFFlU~`Eu2y1K zpxm75zp>4UIw!Yd$Jc{wP*(8FXCikR@t+L!n&)m*9^J9`ww zBXoV;hRIsEY^&w%O-K`p7D zdNbs>^xcYIh5)E(f$F=5rrmH_0I%y}OPr1*!MPczAg49KI&=_c6>mlnVM5N}Q?5jF zSEt_&4u@0FiP&T#W`%fQjMRu(POec|-7CdhS0l3Et7!*MSx7Yp&La3)wh_W(DPW5s z3_94*(2Y7jJ!>>{x1}JH)`-VdyL={Xk?r1@Me$BVIGktGBrk_68t_QO_hq`ioY}S# zhX5}>ck^P6cl8A6tv6+6yRiyobx0x3`?9dqa@0AI=V4{h)RHD@G9RTyL_R5^;C|Ye z$fy3rUi5c^nLbjPWYq)qC%AQ&oOm5EXLWy6?kUVt$^9oWtaBs{r{i)sgk9G#>oumu z$$+D$)L7@h0>~a%N%czUAm; zOY${#m?'}SFnJ43XIgmF-@Gb54ejY4UC19)B{jBknzj_7;+ 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
@MpG08jm2H+a^v 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�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∈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ఞ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�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 Z0M12DZBHIOjgO6_8 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

T2n{YF0ds*H*l44^fFJ#?dfrx(8BtHw&(Td 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%0AmU$@{e_C;mcAlGH-V*O>V@!6rgu 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

Bv7k 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

0z)#5 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

`jCTlPsn|) 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�S3kzyFW_`lnz0^|zPb{Pc@omf9Xt zDwjUXwe+RmV~k5FL%-)-my(lyud=Rr`TpJOL#_2POMt0ea*03Y>5I9h7H>-rV~+q9 zKQ4Kvb8)2SJKIjzJo1Ac@4H>fn(^X($wObb)Lwk&nCUuGKNrX5Vs3RjEWq^;W9W7G zzW77p7eiW!3vqR|#se{jo#L6=;_9k#wUl-4%Ojqh{4H&sEh#3-#ek+}KiZ{j{t|0c z7oUy=s(D;v@Ua_wqHfKPx5e7UO6=yfjJ3YZ&BXI%rg%@$&s@gUixaB^6xcoW(I@XLI z@yA%l{`87c%P7ClE1pmxw^-D?W60$p_xvchbi=C~u0?Rk^P1b74~_fBLr$?NEpTHE zkH2Ye^Fyxz#~kvE=b1bA?}u4xtXR%$VkyiwcCMGW9vDyqUn-jx2ry$!^Fw_3F)qiX z7Hj-4c{=_cw}G^i?d@$o#ND$#q#FCu1O56II<*ml@4aiVYdpj_H)`s%>&PPzQq`_ z?oTo0z~%AKLAKuZ!-)Ii^z5Shi*S9dn9|^T^PzxXF{M3uen0GdX$*G8O7{`7xU{@t zznD5FtY2D$ut;jPNm5J{HKZn$BhHLkuQP^jhVS^Y;)(v;_)I<{k&+A&*O2u_UqJaVTQ! z@xE0LyyHyAU{;U&OB}zLq^^TpaUy15Nr}O)Sh85-fMdglPEQ%_kwY3gsQY`J9N!=b zae8(Qq7sWUV=v;c_5>9Ij)`pG4S9;^2k3t3xjw8KCvncs^F0HFG*3)r{?@0ib} z$C=J+J?51H72@_5TNzKUtknVA;-hh#l4)LaJt*a5WfqfZl@k~AF*a0RUmQr_9b``T$I+Sbn$q=r zVRSR_s;A=F1P09s8DZ&S8aYT}U@HeYQ1@X&Awff}ohG|dtoMX8#?rPNTqypT3_n&S zNF;0M&&Q2Hc2^w2y4dI~a{T7&Ti~Gn@|HR4>N%`fxvnVi}9+>S+CJRj#E&iGE8@eST>)_w=|>r2d|Llbu14~^+eF2wz1_?*lbZoD_n zfBeHa3F;V!b_bO!;5p|eXv_`{uycmT#dreTK_dh0N33dmX2+hao#XM?j39%Xt>^A4 z3bljqG`QUeA{m$W{3pwPZl+deI3&;PmtE!_44>Dv=n5{F_GBy4sDEe*ub$ZJx0z!4Z5)7ye+sW z2R(?_jtK?BxQeTkEI2K39i6QmSQsn-cxkY)jyuH}Yq5c4XdOHI4B<&x@6Vhu2vwj9 z@2f$F0v_7Ocs|6KM_r%nQ>+0zFC-1#-n25Xz(C<0#G(wr9UNv;3&f}mxKkj(co2sS zNhfd!9EmLm7z!M4im^ctS{Jzp`Q)KB<_hV}!nq0#ws>!F)D^U{BU-f}VhNmu1H-X{ zR_*{H@9}sI(i)#xBk_7mVlnC!`=$e3V_#z*Ij1Yd*3`f$PE2fjplduI8y_D8%DYeA&-TP^~yoIVyyaf zu;m(4NfN}I0dFB8#?MvM;(zp)FuRxA6gL0*yxSMSZ0u{)W6DS%p4bB6{N@KFD zK_7xNKL)sAs4K`@K{!YdxWGBYupA$cwHAU0l2zztItLD<3mg*|=OIMt4B-f|lT8Iq zEpTx`PJv_D1IPA&sQdHr$;S;h39iBC`y5wJeaIUD!yk*z)o5Kfy7w09*KE3)tm3R7+zpW(8(P~3UZ$oJ0H`Fe-P~0=xpB6nuzaW5OqGX|AVIyn0h?j_~^b& z?F_so4pseZ8k#EghnV{Iqs_K2AuS zl91YhYrqW>lxa%J8*qyZHdjlX1uTn=LMnuqx4^PEkOh%A#uF-ym_tyuW}dzqbTPmR zuC~Vw8kBfDqQt1z9b_7brp02_I18MC8LQDUqH5smeJ*B$IM zW)$*#oH5Sc=KV|Zf8aQpl){Lqt(>Jy`YU#DOTaq zVpU3%6wx{0;C&tKB^QPhpNcIAfg0k+<1zY#rj^;_fEfkD4Gt`|5^ZDv!v^9y%2u4% zfP(^U>wPUgAA+1TH-ui;Mn+JI?{RJdrNjqfv4aQ178m%ykYX5{GZ4v3tX`Zm{w!+D zhhRrRz&4s+L6D1oMg!I5f_ze@SVIQW^mxbkRcKmYN6eD!Q$IDhyr$EcOl(_en`tH1pASAYKVuP{xd zIM}a^5i`~!!`+9C5x@nuGi;0i<|qPVjF>T@hHx=#j6m4OSOc4Zkc8SE>lD|gjS*;Z zN$GoL>Gh~SI zE-i7OVZdnm+q66+fFKirEHPZ^n>-$S5I7m?iZ$`rCk{4(OUl4m_6Q{HibY3sWjyZS zq8d&}bQmO{)-#FjG&KJ$W-Fo0l6>I)s1n*RNdz@+mNyaNLN0|GOZtw(fo8vBk3&ue zu7;8P2XNOBP6(DrbxroJShoJ4@xVQR3%nJf5|c#GPmfFYcf`9GFdAWS`3F|{*ana} z^>`4@EjWgUcsH;|Ag?|^J`?&0Pa_m=uPS6OOW%a6J;XZ}bxS(7K_Xs@2_ct! zzFNRlq-mQZLZ}zHl37jEd!hOT9Gnx;wsw)ff;^^0OMc&!7#VQ${XsGKe5?tmRTyRP z9@b>bA}o_cj=9SQ%n}_KWgA|m(L?>Z;R^3S$^#A&3XOy7GTyQ{XNj>D){RE>sLz3^ z!27D(G3K>oMK_3zGzzLD4v+{fE?op-a!N zEn~rAD~HVV(%54-9ah#i!dhqsvBjlfUSxAZYAV)RN1E37yPrqKY+2M&5Q@F@f`XN5 zB#fljov_O^Kiy@9k>TGv3E4(M3%Hv^EolLIH_~z}O+r=)@k@#uhBVM$ZI(9d%sw%=@i?JZMOJ6b64wd+&DD5^ zOQXO=gqLxn%!NrtZcfwV47#&r1*%vjuE7^WjuMt9uzzUGJe?7qFL-t)B%sIEtj95? z_IaYtl*$p#$_1A}rt1T{2;5_EQJQWZXMg+(rzAdBcaibc~gE9@h_ z)^jSs>EI9ev$FO8vw(zX5uuKDDrcTd5i)63nVh8r2aGWSFQse|GHK#eM6T;Xk7dTO zYzhV!u=(P7;rWJu*b&ZUjR+QOLs8wbMo7r#d8xC!Kg%2uy2yk4a-ot8G@B)JL}s%W z9A5T_jFy_k;bo7I1|rR*aNq*OAaTt{kw7Wsug%I?g~-d)D04)75-U|aTxE_3Sop=z zFh>N3Ekf&-WsZ<`)ih<9Bcy$mjMZ4?h=8-CqCUjR3bG$`yviJrQ5vBRJcZVUlDKh7 zb(5@8u$o`JC;nW5t49Gh0zJ&ebTJ$;=~?d%{xC95J7eVB#9wMy*w;w zSu=x6-N?wlVyuU?Iuo0>R2S8CVASf zf<>YR?ao~9wn#vIP(XIKMFJ%^^lIxyZN?70%j0XvG&*E^TAf7Yi?U48iEo!UPg^9q zWD-o1wn#|c8#j|DzQjPL115?sqs3vgnpq@& zHc%u`hY*Op1EcX91?mu3kTH&NdzI5HwzQ%$E6Qdf;$P*AhQbfoIRmrfF*wkiwkC-# zZe07Z%rXOYs|rI7CI?R-*kHguV)gRtu^8fel!hG#3(0O^ec}MYIO^riQhfO~tmJvk z>(75SXM4Nm>+RCYZN~eOd~6t#FT$L%9OF~5Y}W^Im@Vt(2qqR7l$%puCV+!RvnSg% z*|u%J*>;m{+qP}HCfDTNY}@AkcW-uY_vZZ0M>x;LF4 z*BQU7MGd1eN)Ru|^r~L@9y=v?NV~;~yhRTSB|7*(NVZGrZ$$+b@$Yq1R0V#)Q5=TE z$qI8uMneq*GsDo%G3^+w=k{yavv)8m@BHno3&wYQ_RrunUJ4kzSn@?pK@f>=DqS13 z1+ycmZ}b)77LoBK2ok;)>B8JV@a_m-ybB#P03IT$IEIIg4SOM3vOzdhoFM;1Oi60$ zud9ijAy$ullua|7mVl~)jcsB~%DrmQv+hw7Au0(AGa)!$P>0v0^6hV*RqQ(ZMM%Pq zYc0eaoRhBL>AahMddkFKTIY#xQ--tPSRv_R9K?S@A9>8E4ORkexHKGA0yOvJB0cvL zZ7Ue4&I^ObTQQ>mfQm_>pU}368BF5mdh(jgJB!^=${Kty>(xzNVBi9EPxDmr&+8rbN)u(XwGNbAie} zAE_6~&H*r+`Slij#q2 z#xYd8P1jM$Q5*9tK3_u#kRI&j9N~?X#MDdS<5ox6(G-w}_vza`SeE_DtMm|Jh#T|n zi!*wEbJGl@u=hZ#W1mEe$?rxUolE=8<)WSKdfMB1!+kVGi*hh!VBWIPcNJ6fWl(@r zeB)29UD$fhc=Fz#cQK2qa3Sc>-GgF)3_wr8f8>N1G^=n48fMa;WLk;DAj9Mq6Z&F6 zY8w%t>EXK8`qb;@it_LGxOqVKd)|4w5ww8e9K8N{`>OZ*65Nh*eX7-b;YT`m=>OU> z=zqU0@PJNoo;$J$J2DX*unt=zCUOQ7ri_z6+D`D*|9tjE6m2JWb!veYL2(R__lPYE zJ^-j&eeHcl>2&RXB=vZj^2yWl8B!k`g7NP7`@1dtGXI9Prwc zUuIpF)|Y<^ZTNn8dl0y(elT|xKpDBYc#aaq31dkN(2Ol7xQ{^{SU2FELwA{91T!+&bEAj*4ltk5P$Q+nI3Fx9LEklL zsEaL2i0m9;1f}2Vt#$T&-)1ZCvyM)ZcDv|186wgJYt7dxirP9U0rnK&x3iB57L5CK z+mQYQrQ5vUH(so4zuh}Ch6&?_DJ{;%J-0*|7%bj7^`112JUc0!c>db4J(#-kZM>Ql z{W)}gHOYP&%cUslxnqEnb##@tDqXwVhS^EhgboWYRVOysaSAGX8uwuw7U!`G4!Aoo z$krwmQ9%EgS;QkrbcsTfQAvR+El+5BT3U*IXs`uUVhA5IX&MQ=erZ;S>cY%j$ej{v z;pc)ATO;w4L%G#)M@f-y;ZVZ~$wvJxi)dR~EWzu28A4(RD>!bZY3Y@UtVUg4tCsKD_)N9|7f=_ZW-UM6SpK zlSyOYpjtF!P#0`W<*?~{!@pl*URk<(y*xY;pwIi5y&uEcmSo z3(P)3s;Bd;uQa^pJBbV2>3*u#&qFI>o<13Te+v2&z4$%d7<}!;_rFbJr5pTwyZd{6 zaMqRzw54+Pq)U)8CjP~o@EV2dxVjsQ9lg9m8%H6>sH47O%23OqG|K%0%fjRq`O*FP zEM|jFxy%Ef1i@KLH?OYK_=O{gODp*Zqul*EpQGZcBIE#jH_2!x8rcCZ%E~RK_jUy# zXYt0gB47?$WH140Y2kM7xqm(zCN7u#8y4myAsYK2NJJzWLg!E?Q?j|J_0K3VyJ2=k zSKT8s4i7pmo9VYQ%?(S_v^j#RY5YE>DHJK1bVE(O9xS1VFwpiiE)@E@XrH4RWD3HB zve*z=kMJUR4skK%MV|rIGl_ZaRgI6z-;51<g9Pbam76ULP(6Ak96l{&fLhNI)17yh^z z;a!~+(4){CW!^oXv8^qqTj@DQDJIj`pOYo#vzQXlPp%N#TcZ#mT{6+U5l7?}<_wax znBcf-t6xe?zTN#g=DU-62h4h| zeP!XC)t^&}0AjzHM04{IfBe3?5BS>8*Qog=J7GqZb2H68Tf~L-)|4a;CP&_K|F%@m zQRSO>D8CobgR%Ur6c9EHpaa|Xu4kx=cZN^wo8<_+w?*Ru){Kksq*F19myL7)^0TVm zMc7dbL4>`d@kwv%?KBw98JwA<*2RzjD%;Uer|S6sE|wndvoEv!as6k%sR@!|Cx_yc{M8r*k8yHUQd{>( zZgCZnZ3(I2Y$WyNV>vS!Kd2(L7L2G;i6uyrDR@mwML-tY2#81Yd-*it2E3NwU)5Au z_{mDmDaeC+=r*YXLfuYz4U(!Y4m>s^ZnjO@_$|he{QosD10chZ(qhI z#_YgabIafeO~6RcOdRSJG>8ML7?FS{oo0)}Eh!1rrOt;ksz+jp{pwGj0P4gOAOM!4 zHM6aYi8pkQWnzqP&q{;}=Dp7Mzl{Q~+fANyv@WaBY zFqy$LR_V#dg}Nx`vX%SY!JjFlzMkI;tjqrlZg-H3#quqsUKI%r#;$GA@X|zP6puiD zgCV5Ksnx{_bdoo8pVz@X$R-rPX=<45nlCm9k68*-z=YT0iB4Q#0R)ryc9${G*_1+= z-!QURW>UeO!=6H*@@6bJU)>X51d2Vsi%Egyo)1}7Lxm3lL{d6m z>g5_MVzBdpzM$H9nGm5Dp&0sZ)x=a0D>eO>L}|iJ8Uu25qH35yd-L@o+tS)F%Iu&i z*(PZ}i!cWtz4G1hoLe6HLi#APRR!*T+bKjDK$`GDV`ITVSPdPij+t?+ zG)=3x$6r^?`3nHy>+b~Qs4DPmnTi{8Hm}lGBq3tns0xZEK~@Qgu=bTH1+NbCN~$rZ zLn|Qb8bH9BlVVVO!X@9K6gi1Ia;N(VG1(~Q_EA%d*cP_GplyEPbYACo# zQ{W6XO#+Wpe`R;h!yZDh;?UgBUBt1Aw+h&n@ctdd zmwoA~sAAKTi$74U#%p7maeQ7d&U4{>Cuy;9g<$uSDkK7pk>LwX3ZHm)sg; zBlOiHK60OEgvL7c)42Mj0qE*d6ICt_uV^qWfuOzXfK`YpjAEA`*aBn@l1pjx`zon1 z7kInA^EC)XO{{4%wRTj|{JUUsM8zPtS61sVz@{0~B^Q=gtb_sut|<=XR$|ksPp3jf z|HW&Rv20AblsY&5tKD_`R$c0awe}L{<-YV0u5{B4OVn3q9W_C{L z#DGXjnoql>%4qF9OrE2tcSQJg(x<=4xZ5F?j$7|)vHbyRF?+$UmrL^H_0!qk@xzga zWOno&F!mK$_jlHig2-yM9CEwuq3}|+T~_+3pOV3kcY{=ZZDKE=m>36e{73+uAnT{=klLWt#{@zh6#8n*B2VD^!+45eoTqjKdpsT z1nSOFJ@)T*gb|1Ra;QV^yl69D6Vv|J8P)_$(E9SszM-_>Ubv?BK}*KbPXreODnH& zgVnFeWY;l}n4B}NkR;AyoK#nZ>)&QE$il2oKfoEf9$ELkYf}d=43s0pV1LoC-5&~k z3jdxp;k}bc(&C=hQ%HZP+TV}}S)`PT5K@@Jlq*qlmt_nO1gYL`6~k%8nK&0L3yQN> zu;WukdbdxJd@gX-yA~jEmb%9&cSmvrWcC?SCiK3Gz4Fa_m{CE?kU*^!f(4Sl;UJW} zYJ79LVjcjO`{Jh#{3dV8Km8{C=gL2MW#)SGKR+h=^FL?z5B*EPWWvTmg`DZdYYvZG z+)eg#+XCUf`da2|LC1EMX2tkd(U%BCGp+Z^q#ln$GOIHFxc*h?$H8|$PiH{V6Q$f! z-GW(Laz6Yk%4Vk2@YXj6IVumHFZmW2s!XV-E}*D8S&c8>f>;PirIdnxYBz6+cjdl%;j~_;B1kO3nQDmZOytE& zQODQIQA1D8fbO1QreJ>#O4;=4bVc3%XQ%^9^A(EMVD}2o_6?V%SGbL{;}uiY!1xXi z!9V(k@aUsL*!{7)ctAC=>Cb1tx4-Ryhw8$nrcYgQQCG#hL<^eRNWSQAyoe&qa;3;7xNT52p zrOp;j1d+xF857?Ziu1_gR+HXs+`fx4Ah~m^P6e*#cXes7L5*PB)4qND0iNSwIOnor z%-rW-+)pl0WjKi%OQ^kh(!pA_B>`d-ZXmHvXoPZ%da-lP7_7mjM%t z^BhU);HbByO@I-noNB&p-@1t*yV#tJN(sC;ozUY=WLv#NubD%iyQcZ0CQ<{}Gl3XB z_E!SdDRhZyr!glgG=m;IM-;S$22$bMibJ{VpPz7d)^Ta3 znM(k~&=lUX2B}z}*q52QyIvwmva**p1h+4Kce8b1+fWhbKg_4r%!Fe5vg_h^zmjFa zcgmLQ(}DbA(+=O6lB!xc@xk<>k@uh>jmez#P=SNT%`WwTw3)lKwn$v{Y~PK9Iy)()9i zH``%U-ADFIx+}208jee*!{-o;v!cNfAWnC49IF#sY^#k?%cch(h{qk?8P1TYL1a^dvRSTNltRG0_?>f&>;_s2E;J#VxgbEO?i>}lF9sp;Q% zJaw#l;Zz7rP~KiCjFGe^u;}y(camL;IX*Jg2OX=LblgHJ+r1VL235>>P&nIl*X=pj z_uk!q$!YPG+~8gBqg?l6%rSVA9HmRoWt3^Ka2Vt96#vIxW?5*%&jle+-N91o7ACr{ z(;QP;TEHyCu{k3lJ&fBPyH%`Zs2BH8@A~R?FrhNxlVe~j2QzUlpotzp(da@mh&``h zg0VfRe}r9AXKrgp8W@;f%t09g%Z%KV`WMhJSZx^Cl%)7iqsbc%dqfBWPVJzE`jjRW z`en2N@vJIPeUWL;xdPhc{VHS@WjEcvm#u8Ksm>+wb|RE|lj^YDc%F|?-KWRAo^*s$`s5Uq zJNZ1jzk3!)YP_$mUX{ZdQwvsQ3y;&r({#)ORU`XPrO%T-e3xh? zi$K@UD-$ez=0fAo3wKqe?A+x@>e6bA^dD|b$5hFmW%OQD+uzh%a$PQ7xhwZ4h|_2` z9{)L{`rB@ZAC^y6x7Vg|4QF$%oc>bl@LEY~w45+!0uZQ=qD0Bq&g6^N4fw-#7VzH7rRxbpw( z!;Q*cQJ}ij7tS3nA{lm7+-Xl2PB3`nH2!7Je1V|7f%8BI!qZ*3d1LmpRLaixi0bzr zg<*?+F>ze;aisIrihC0lE~WAQk_liD1vz})#S6t#BR93GbBcA+rsfavW(tP5Qm5)^ zqK)#fzrQvEpcVSBC2%@a-9h0bGjNrUn(RX40g(I6e+w_y1sS|@)Df~=hG^A{>V@n!r6;WFQb+xl=E~Zwygp#Qd_h)vc6@5W< z%rm1==u)6Ob*DJEtV?HHuAz`hQEO_$R)JzY3QrtMxm`VI218jhU4!M2*AuUHf*J zo8ux!-!$c}NfT?iB~eY#tesJ>3)Bik-l~{GfhHXx099I0f$6TpS27m%|;o?W)&~ZaIm)JJGMVA0!Wt3{V!Zw0gUtEk=O=$;3Ry zTts}n7cf%^&c5ES*u`O)J;VVxOfo;eS3efSFf>fHCHQ?g-kKv3RUHz9!56K-f?(E* zZ@c1=+JEXbuYcf!H zj&vlTsrpSL2NWo}?NVSa(Te96MPU&*G6OE(b zx{lzC&D2fQB6g9F3ZjlMM+k8fsLSedxaw+Yu=QhRsgT4K~(`S$e*)J;N{859pRdnLm6qMRlA`kdhH@c zT3&opJ;*Q%ydw3h)_hn;P;HRBQ1*FYx;`}Hfi|!ZQ1=7(h1QjifnS4zi!3UlQ|3lsWeBxqnaiVU0gz)C)am%+;H%TC6oB zVqBs_HKssN`ggVfl*v3r?f6zYq0GcB^;DbKsr&8*%wuR$Z!D29BrQ8DD=qQaJtc{_ zpN6fuyritLSw$aqPka6#ipxiD_2q`L6z*P(P#-CM+r&pWN_enKzNtA2&uap^XlX}UY{^` ztCM|QN)a#DZAsz7Ug+_zh>3II=nY{>0w}r@Rrc%dk9(Ixqt?m(vg(VwPN1*1w7wDm z-jUdgG;=D-*<12X@Xx!NK74y|^|y1Wn;p^67GA`HjGnf>evOD`lPzOkpRSd!f zNd z&**7k_{)Xy=TBQ!@;`j374zzB!%WSn&J9_RfU7=4nDV%P29x zS{p{LniEDsU`2yHa!ws$bJIb-f;olSA}axrvqpU}dz%P6)kMHPJ3JRFQ1%<#^#fBk zj|Ts$$;Xyr&$T=qvysoJ$LE}j5boa@9Cn}P0k%4moTkVbw88bm~8m^L=rw9zs`EJ&%)M{vP?sj@bAlIu3?wxHpF(o1_N_i95= zTP$QWc1dAREEQP~=xb|7W$Usc+r~LEtH9?iCa6nWXUDZHSzu3EU!Hree?&`@K^Ng| zP7Kl(Lw6QDMp#WhkH(yB*jZY06AD636aSb$kw4a*zZs{QN2h z;3o3r8-5#du~Cr0)#r>7ETN|^5W#U=DHvijW7JEO_Tso|>QdE3iJ2;!c6C%u8lrj* znHKEVj)Pr<_@tcqdF9Y8c#w<48cQ0=b+u2?JF4IDHt|5soR=Wgn_onMo1^*?VTV=I z837N(+R$<*qe^blP^U-e9*moq$wA6Y8b7FqNk-JfSOrd1A<0p z*6Ha=FIUvT?Vu=GL7!|yax!V^qc@1j-c=x0C`2l@jRt6lVE(mKK2S18!nJ2!{X+D& z@%{I7uu^o+*n;jl%`kufWq87$3s2Iyda{IzQxh?$`VY!X?Kqg4ZT__M<(BUqd{&X0 z|5aNTb-J8b3HjY0)L;Mu2+TcajjNZ!Iv{-ZDS`%NyKG!@hTH_gB2y}3_EgqOPIqLYyGrhc5suVCCVqMEF3f~n?-_e^G zhkPM!S4R5iUigKSt#9{*M7-P`CL98I@eoGH5efUqH$Yj_)6F#40+8`6@Mm4{Y);q~ z@RhTvQ2(CENoxjd{n?x6DQCwdi=#b$t>*EEwyz1|n-TdF0xt2XN_$%(v%tsj5P^tb zaPi#D&h8yCZ#b4djezoWKF-PuQqJtcPi`eg zC`RE3rke-t?6JM&mKR9p#|PV;(~)FnwZh=AF<41KPNv;fghv9Lagg!OUG=c(+qC^5 z-L]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�-xM_79n+o^O;x0Z!KvBpxA8x|e3n+u+b>@F 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 From 057c65a9184ef35ddcbb36a9bfcd9d4fe12cd9c4 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 22 May 2024 14:59:43 -0500 Subject: [PATCH 094/318] use symlinking instead of sed-editing pubspec etc --- .../test2_duo.json => asset_sources/lottie/stack_duo/test2.json | 0 .../test2_sw.json => asset_sources/lottie/stack_wallet/test2.json | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename assets/lottie/test2_duo.json => asset_sources/lottie/stack_duo/test2.json (100%) rename assets/lottie/test2_sw.json => asset_sources/lottie/stack_wallet/test2.json (100%) diff --git a/assets/lottie/test2_duo.json b/asset_sources/lottie/stack_duo/test2.json similarity index 100% rename from assets/lottie/test2_duo.json rename to asset_sources/lottie/stack_duo/test2.json diff --git a/assets/lottie/test2_sw.json b/asset_sources/lottie/stack_wallet/test2.json similarity index 100% rename from assets/lottie/test2_sw.json rename to asset_sources/lottie/stack_wallet/test2.json From 77b365fce8f3cf1f81453d1d51280a6db4362555 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 22 May 2024 15:09:12 -0500 Subject: [PATCH 095/318] add missing duo macos icon --- asset_sources/icon/stack_duo/macos-icon.png | Bin 0 -> 18431 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 asset_sources/icon/stack_duo/macos-icon.png diff --git a/asset_sources/icon/stack_duo/macos-icon.png b/asset_sources/icon/stack_duo/macos-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..026154cba3e936fdc7e3ab0193d3923f314869af GIT binary patch literal 18431 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 literal 0 HcmV?d00001 From 43ce896ec7cc085b3804877d09e82a264038e25b Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 14:48:31 -0600 Subject: [PATCH 096/318] update_version script changes --- pubspec.yaml | 2 +- scripts/app_config/update_version.sh | 32 +++++++++++----------------- 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index ad7096d2b..97117e6db 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,7 +11,7 @@ description: PLACEHOLDER # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 2.0.0+222 +version: PLACEHOLDER_V+PLACEHOLDER_B environment: sdk: ">=3.3.4 <4.0.0" diff --git a/scripts/app_config/update_version.sh b/scripts/app_config/update_version.sh index e5b04da96..801530bb6 100755 --- a/scripts/app_config/update_version.sh +++ b/scripts/app_config/update_version.sh @@ -1,11 +1,16 @@ #!/bin/bash +set -x -e + # Function to display usage. usage() { echo "Usage: $0 [-v ] [-b ]" exit 1 } +unset -v VERSION +unset -v BUILD_NUMBER + # Check if no arguments are provided. if [ $# -ne 4 ]; then # if [ -z "$VERSION" ] || [ -z "$BUILD_NUMBER" ]; then usage @@ -21,7 +26,7 @@ while getopts "v:b:" opt; do done # Define the pubspec.yaml file path. -PUBSPEC_FILE="../../pubspec.yaml" +PUBSPEC_FILE="${APP_PROJECT_ROOT_DIR}/pubspec.yaml" # Ensure the pubspec.yaml file exists. if [ ! -f "$PUBSPEC_FILE" ]; then @@ -29,24 +34,13 @@ if [ ! -f "$PUBSPEC_FILE" ]; then exit 1 fi -# Extract the current version and build number from pubspec.yaml. -CURRENT_VERSION_LINE=$(grep "^version:" "$PUBSPEC_FILE") -CURRENT_VERSION=$(echo "$CURRENT_VERSION_LINE" | cut -d ' ' -f 2) -CURRENT_VERSION_NUMBER=$(echo "$CURRENT_VERSION" | cut -d '+' -f 1) -CURRENT_BUILD_NUMBER=$(echo "$CURRENT_VERSION" | cut -d '+' -f 2) - -# If version is not provided, use the current version number. -if [ -z "$VERSION" ]; then - VERSION="$CURRENT_VERSION_NUMBER" +if [[ "$(uname)" == 'Darwin' ]]; then + # macos specific sed + sed -i '' "s/PLACEHOLDER_V/$VERSION/g" "${PUBSPEC_FILE}" + sed -i '' "s/PLACEHOLDER_B/$BUILD_NUMBER/g" "${PUBSPEC_FILE}" +else + sed -i '' "s/PLACEHOLDER_V/$VERSION/g" "${PUBSPEC_FILE}" + sed -i '' "s/PLACEHOLDER_B/$BUILD_NUMBER/g" "${PUBSPEC_FILE}" fi -# If build number is not provided or is empty, increment the current build number by one. -if [ -z "$BUILD_NUMBER" ]; then - BUILD_NUMBER=$((CURRENT_BUILD_NUMBER + 1)) -fi - -# Update the version and build number in pubspec.yaml. -TMP_FILE=$(mktemp) -sed "s/^version: .*/version: $VERSION+$BUILD_NUMBER/" "$PUBSPEC_FILE" > "$TMP_FILE" && mv "$TMP_FILE" "$PUBSPEC_FILE" - echo "Updated $PUBSPEC_FILE with version: $VERSION and build number: $BUILD_NUMBER" From ecd9c7c884dcf78fd495837225ffea4ca49512c9 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 14:49:34 -0600 Subject: [PATCH 097/318] move version update script into shared --- scripts/app_config/{ => shared}/update_version.sh | 0 scripts/build_app.sh | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename scripts/app_config/{ => shared}/update_version.sh (100%) diff --git a/scripts/app_config/update_version.sh b/scripts/app_config/shared/update_version.sh similarity index 100% rename from scripts/app_config/update_version.sh rename to scripts/app_config/shared/update_version.sh diff --git a/scripts/build_app.sh b/scripts/build_app.sh index 5d953e9b6..63245d015 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -44,7 +44,7 @@ fi if printf '%s\0' "${APP_NAMED_IDS[@]}" | grep -Fxqz -- "${APP_NAMED_ID}"; then # shellcheck disable=SC1090 source "${APP_PROJECT_ROOT_DIR}/scripts/app_config/configure_${APP_NAMED_ID}.sh" - "${APP_PROJECT_ROOT_DIR}/scripts/app_config/update_version.sh" -v "${APP_VERSION_STRING}" -b "${APP_BUILD_NUMBER}" + "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/update_version.sh" -v "${APP_VERSION_STRING}" -b "${APP_BUILD_NUMBER}" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/link_assets.sh" "${APP_NAMED_ID}" else echo "Invalid app id: ${APP_NAMED_ID}" From 8823a7e1bc7685dcf60b419fc29ff1a1289c3cc8 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 14:54:28 -0600 Subject: [PATCH 098/318] non macos sed fix --- scripts/app_config/shared/update_version.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/app_config/shared/update_version.sh b/scripts/app_config/shared/update_version.sh index 801530bb6..d056b9b73 100755 --- a/scripts/app_config/shared/update_version.sh +++ b/scripts/app_config/shared/update_version.sh @@ -39,8 +39,8 @@ if [[ "$(uname)" == 'Darwin' ]]; then sed -i '' "s/PLACEHOLDER_V/$VERSION/g" "${PUBSPEC_FILE}" sed -i '' "s/PLACEHOLDER_B/$BUILD_NUMBER/g" "${PUBSPEC_FILE}" else - sed -i '' "s/PLACEHOLDER_V/$VERSION/g" "${PUBSPEC_FILE}" - sed -i '' "s/PLACEHOLDER_B/$BUILD_NUMBER/g" "${PUBSPEC_FILE}" + sed -i "s/PLACEHOLDER_V/$VERSION/g" "${PUBSPEC_FILE}" + sed -i "s/PLACEHOLDER_B/$BUILD_NUMBER/g" "${PUBSPEC_FILE}" fi echo "Updated $PUBSPEC_FILE with version: $VERSION and build number: $BUILD_NUMBER" From 2678513474ebfa97248770ebc0f768d8cc4d4518 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 15:00:32 -0600 Subject: [PATCH 099/318] move all lottie files into symlinked structure based on app --- .gitignore | 1 + .../lottie/stack_duo}/arrow_rotate.json | 0 .../lottie => asset_sources/lottie/stack_duo}/icon_send.json | 0 asset_sources/lottie/stack_duo/{test2.json => loader.json} | 0 .../lottie/stack_duo}/loader_and_checkmark.json | 0 .../lottie/stack_duo}/onion_animation.json | 0 asset_sources/lottie/stack_wallet/arrow_rotate.json | 1 + asset_sources/lottie/stack_wallet/icon_send.json | 1 + asset_sources/lottie/stack_wallet/{test2.json => loader.json} | 0 asset_sources/lottie/stack_wallet/loader_and_checkmark.json | 1 + asset_sources/lottie/stack_wallet/onion_animation.json | 1 + lib/utilities/assets.dart | 2 +- pubspec.yaml | 2 +- scripts/app_config/shared/link_assets.sh | 3 +++ 14 files changed, 10 insertions(+), 2 deletions(-) rename {assets/lottie => asset_sources/lottie/stack_duo}/arrow_rotate.json (100%) rename {assets/lottie => asset_sources/lottie/stack_duo}/icon_send.json (100%) rename asset_sources/lottie/stack_duo/{test2.json => loader.json} (100%) rename {assets/lottie => asset_sources/lottie/stack_duo}/loader_and_checkmark.json (100%) rename {assets/lottie => asset_sources/lottie/stack_duo}/onion_animation.json (100%) create mode 100644 asset_sources/lottie/stack_wallet/arrow_rotate.json create mode 100644 asset_sources/lottie/stack_wallet/icon_send.json rename asset_sources/lottie/stack_wallet/{test2.json => loader.json} (100%) create mode 100644 asset_sources/lottie/stack_wallet/loader_and_checkmark.json create mode 100644 asset_sources/lottie/stack_wallet/onion_animation.json diff --git a/.gitignore b/.gitignore index 4b76ab9da..aa47e6c48 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,7 @@ test/services/coins/particl/particl_wallet_test_parameters.dart # asset symlinks /assets/default_themes /assets/icon +/assets/lottie # other coverage diff --git a/assets/lottie/arrow_rotate.json b/asset_sources/lottie/stack_duo/arrow_rotate.json similarity index 100% rename from assets/lottie/arrow_rotate.json rename to asset_sources/lottie/stack_duo/arrow_rotate.json diff --git a/assets/lottie/icon_send.json b/asset_sources/lottie/stack_duo/icon_send.json similarity index 100% rename from assets/lottie/icon_send.json rename to asset_sources/lottie/stack_duo/icon_send.json diff --git a/asset_sources/lottie/stack_duo/test2.json b/asset_sources/lottie/stack_duo/loader.json similarity index 100% rename from asset_sources/lottie/stack_duo/test2.json rename to asset_sources/lottie/stack_duo/loader.json diff --git a/assets/lottie/loader_and_checkmark.json b/asset_sources/lottie/stack_duo/loader_and_checkmark.json similarity index 100% rename from assets/lottie/loader_and_checkmark.json rename to asset_sources/lottie/stack_duo/loader_and_checkmark.json diff --git a/assets/lottie/onion_animation.json b/asset_sources/lottie/stack_duo/onion_animation.json similarity index 100% rename from assets/lottie/onion_animation.json rename to asset_sources/lottie/stack_duo/onion_animation.json diff --git a/asset_sources/lottie/stack_wallet/arrow_rotate.json b/asset_sources/lottie/stack_wallet/arrow_rotate.json new file mode 100644 index 000000000..c729d2e7a --- /dev/null +++ b/asset_sources/lottie/stack_wallet/arrow_rotate.json @@ -0,0 +1 @@ +{"v":"5.10.2","fr":30,"ip":0,"op":60,"w":30,"h":30,"nm":"arrow-rotate","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"arrow-rotate","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":44,"s":[200]},{"t":60,"s":[360]}],"ix":10},"p":{"a":0,"k":[15,15,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-0.828],[0,0],[3.389,0],[1.441,-4.074],[-0.781,-0.277],[-0.276,0.778],[-3.22,0],[-1.369,-1.823],[0,0],[0,-0.83],[-0.83,0],[0,0],[-0.023,0],[0,0],[0,0.83],[0,0],[0.83,0]],"o":[[0,0],[-1.964,-2.437],[-4.533,0],[-0.276,0.741],[0.781,0.277],[1.031,-2.916],[2.494,0],[0,0],[-0.83,0],[0,0.83],[0,0],[0.023,0],[0,0],[0.83,0],[0,0],[0,-0.828],[-0.83,0]],"v":[[8.25,-8.25],[8.25,-6.497],[-0.042,-10.5],[-9.902,-3.502],[-8.988,-1.584],[-7.073,-2.498],[-0.042,-7.5],[6,-4.5],[4.5,-4.5],[3,-3],[4.5,-1.5],[8.452,-1.5],[8.522,-1.5],[9.75,-1.5],[11.25,-3],[11.25,-8.25],[9.75,-9.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.828,0],[0,0.83],[0,0],[-3.347,0],[-1.439,4.073],[0.783,0.277],[0.277,-0.778],[3.262,0],[1.411,1.823],[0,0],[0,0.83],[0.83,0],[0,0],[0,-0.83]],"o":[[0,0.83],[0.828,0],[0,0],[1.922,2.438],[4.575,0],[0.277,-0.783],[-0.778,-0.277],[-1.031,2.916],[-2.452,0],[0,0],[0.83,0],[0,-0.83],[0,0],[-0.828,0],[0,0]],"v":[[-11.25,8.25],[-9.75,9.75],[-8.25,8.25],[-8.25,6.497],[0,10.5],[9.9,3.502],[8.986,1.584],[7.073,2.498],[0,7.5],[-6.042,4.5],[-4.5,4.5],[-3,3],[-4.5,1.5],[-9.75,1.5],[-11.25,3]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254908681,0.137254908681,0.137254908681,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"ct":1,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/asset_sources/lottie/stack_wallet/icon_send.json b/asset_sources/lottie/stack_wallet/icon_send.json new file mode 100644 index 000000000..7dc1f7c2d --- /dev/null +++ b/asset_sources/lottie/stack_wallet/icon_send.json @@ -0,0 +1 @@ +{"v":"5.10.2","fr":30,"ip":0,"op":100,"w":24,"h":24,"nm":"icon-send","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"MASK","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[0.125,0.125,0],"ix":1,"l":2},"s":{"a":0,"k":[87.368,87.368,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[23.75,23.75],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.125,0.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Arrow","tt":1,"tp":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[-1.009,25.009,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33,"s":[11.695,12.306,0],"to":[0,0,0],"ti":[0,0,0]},{"t":53,"s":[24.398,-0.397,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-0.69],[-0.69,0],[0,0],[0,0],[-0.488,-0.488],[-0.488,0.488],[0,0],[0,0],[-0.69,0],[0,0.69],[0,0],[0.234,0.234],[0.332,0]],"o":[[-0.69,0],[0,0.69],[0,0],[0,0],[-0.488,0.488],[0.488,0.488],[0,0],[0,0],[0,0.69],[0.69,0],[0,0],[0,-0.332],[-0.234,-0.234],[0,0]],"v":[[-2,-5.25],[-3.25,-4],[-2,-2.75],[0.982,-2.75],[-4.884,3.116],[-4.884,4.884],[-3.116,4.884],[2.75,-0.982],[2.75,2],[4,3.25],[5.25,2],[5.25,-4],[4.884,-4.884],[4,-5.25]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254908681,0.137254908681,0.137254908681,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector (Stroke)","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Outline","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[12,0.063,0],"ix":1,"l":2},"s":{"a":0,"k":[90.104,90.104,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.137254901961,0.137254901961,0.137254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.5,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[12,0.063],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":58,"s":[0]},{"t":97,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":58,"s":[100]},{"t":97,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":100,"st":0,"ct":1,"bm":0}],"markers":[{"tm":0,"cm":"{\r\n\"name\":\"SEGMENT 1\"\r\n}","dr":0},{"tm":53,"cm":"{\r\n\"name\":\"SEGMENT 2\"\r\n}","dr":0},{"tm":97,"cm":"{\r\n\"name\":\"SEGMENT 3\"\r\n}","dr":0}]} \ No newline at end of file diff --git a/asset_sources/lottie/stack_wallet/test2.json b/asset_sources/lottie/stack_wallet/loader.json similarity index 100% rename from asset_sources/lottie/stack_wallet/test2.json rename to asset_sources/lottie/stack_wallet/loader.json diff --git a/asset_sources/lottie/stack_wallet/loader_and_checkmark.json b/asset_sources/lottie/stack_wallet/loader_and_checkmark.json new file mode 100644 index 000000000..406f52030 --- /dev/null +++ b/asset_sources/lottie/stack_wallet/loader_and_checkmark.json @@ -0,0 +1 @@ +{"v":"5.10.2","fr":30,"ip":0,"op":130,"w":24,"h":24,"nm":"Loader","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Arrow","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":117,"s":[80]},{"t":122,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":117,"s":[30,30,100]},{"t":122,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[4.75,-3],[-1.25,3],[-4.75,-0.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.5,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":100,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":117,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":119,"s":[30]},{"t":122,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":130,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Fill","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":117,"s":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":119,"s":[70]},{"t":122,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":117,"s":[241.821,241.821,100]},{"t":122,"s":[1511.821,1511.821,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.647058823529,0.470588235294,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[6.243,6.243],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":130,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Сircle green","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":73,"s":[0]},{"t":74,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[0,-0.063,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.754]},"t":0,"s":[113.562,113.562,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":111,"s":[113.562,113.562,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":115,"s":[90,90,100]},{"t":122,"s":[113.562,113.562,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[19.125,19.125],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.647058823529,0.470588235294,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-0.063],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":74,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":87,"s":[0]},{"t":111,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":74,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":87,"s":[55]},{"t":111,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.647058823529,0.470588235294,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":130,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Сircle black 2 turn","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":36,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":37,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":74,"s":[100]},{"t":75,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[0,-0.063,0],"ix":1,"l":2},"s":{"a":0,"k":[113.562,113.562,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[19.125,19.125],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.137254901961,0.137254901961,0.137254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-0.063],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":37,"s":[0.2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[0.2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":57,"s":[27.5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":72,"s":[99]},{"t":74,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":37,"s":[0.1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[55]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":57,"s":[73]},{"t":74,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.137254908681,0.137254908681,0.137254908681,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":130,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Сircle black 1 turn","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[100]},{"t":38,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[0,-0.063,0],"ix":1,"l":2},"s":{"a":0,"k":[113.562,113.562,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[19.125,19.125],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.137254901961,0.137254901961,0.137254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-0.063],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[0.2]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[27.5]},{"t":37,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[55]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[73]},{"t":37,"s":[99]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.137254908681,0.137254908681,0.137254908681,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":130,"st":0,"ct":1,"bm":0}],"markers":[{"tm":0,"cm":"{\r\n\"name\":\"marker 1\"\r\n}","dr":0},{"tm":74,"cm":"{\r\n\"name\":\"marker 2\"\r\n}","dr":0},{"tm":130,"cm":"{\r\n\"name\":\"marker 3\"\r\n}","dr":0}]} \ No newline at end of file diff --git a/asset_sources/lottie/stack_wallet/onion_animation.json b/asset_sources/lottie/stack_wallet/onion_animation.json new file mode 100644 index 000000000..9988b5a7c --- /dev/null +++ b/asset_sources/lottie/stack_wallet/onion_animation.json @@ -0,0 +1 @@ +{"v":"5.10.2","fr":25,"ip":0,"op":436,"w":180,"h":180,"nm":"onion-character-animation","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"failed","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150.3,44.3,0],"ix":2,"l":2},"a":{"a":0,"k":[17.188,17.188,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":393,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":408,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":414,"s":[108,108,100]},{"t":429,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-6.919,6.919],[6.919,-6.919]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.187],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-6.919,-6.919],[6.919,6.919]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.188],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.388,0],[0,-8.388],[8.388,0],[0,8.387]],"o":[[8.388,0],[0,8.387],[-8.388,0],[0,-8.388]],"v":[[0,-15.188],[15.188,0.001],[0,15.188],[-15.188,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.513725490196,0.513725490196,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.188],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"globe","sr":1,"ks":{"o":{"a":1,"k":[{"t":195,"s":[100],"h":1},{"t":213,"s":[0],"h":1},{"t":378,"s":[100],"h":1},{"t":427,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150.25,44.25,0],"ix":2,"l":2},"a":{"a":0,"k":[17.188,17.188,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":32,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":47,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":53,"s":[108,108,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":68,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":328,"s":[100,100,100]},{"t":341,"s":[0,0,100],"h":1},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":378,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":390,"s":[100,100,100]},{"t":427,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.001,17.795],[32.376,17.795]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[17.33,2],[17.33,32.375]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.233,0],[-1.818,-2.345]],"o":[[1.817,-2.345],[4.233,0],[0,0]],"v":[[-9.721,1.975],[-0.001,-1.975],[9.721,1.975]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,27.059],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.589,0],[-1.622,2.672]],"o":[[1.622,2.672],[4.589,0],[0,0]],"v":[[-10.14,-2.278],[0,2.278],[10.14,-2.278]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,8.227],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.026,0],[0,-8.388],[4.026,0],[0,8.387]],"o":[[4.026,0],[0,8.387],[-4.026,0],[0,-8.388]],"v":[[0,-15.188],[7.29,0.001],[0,15.188],[-7.29,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.188],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.388,0],[0,-8.388],[8.388,0],[0,8.387]],"o":[[8.388,0],[0,8.387],[-8.388,0],[0,-8.388]],"v":[[0,-15.188],[15.188,0.001],[0,15.188],[-15.188,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.188],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"globe 2","sr":1,"ks":{"o":{"a":1,"k":[{"t":195,"s":[0],"h":1},{"t":213,"s":[100],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150.25,44.25,0],"ix":2,"l":2},"a":{"a":0,"k":[17.188,17.188,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":32,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":47,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":53,"s":[108,108,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":68,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":328,"s":[100,100,100]},{"t":341,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.001,17.795],[32.376,17.795]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[17.33,2],[17.33,32.375]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.233,0],[-1.818,-2.345]],"o":[[1.817,-2.345],[4.233,0],[0,0]],"v":[[-9.721,1.975],[-0.001,-1.975],[9.721,1.975]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,27.059],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.589,0],[-1.622,2.672]],"o":[[1.622,2.672],[4.589,0],[0,0]],"v":[[-10.14,-2.278],[0,2.278],[10.14,-2.278]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,8.227],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.026,0],[0,-8.388],[4.026,0],[0,8.387]],"o":[[4.026,0],[0,8.387],[-4.026,0],[0,-8.388]],"v":[[0,-15.188],[7.29,0.001],[0,15.188],[-7.29,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.188],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.388,0],[0,-8.388],[8.388,0],[0,8.387]],"o":[[8.388,0],[0,8.387],[-8.388,0],[0,-8.388]],"v":[[0,-15.188],[15.188,0.001],[0,15.188],[-15.188,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.549019607843,0.901960784314,0.803921568627,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.188],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":3,"nm":"null-indicator","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":38,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[153.988]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[514]},{"t":211,"s":[720],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":378,"s":[514]},{"t":424,"s":[720]}],"ix":10},"p":{"a":0,"k":[150.125,44.219,0],"ix":2,"l":2},"a":{"a":0,"k":[60.125,-45.781,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"indicator-left ","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50.969,-46.99,0],"ix":2,"l":2},"a":{"a":0,"k":[12.968,22.698,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":40,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":45,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":51,"s":[108,108,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":66,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":191,"s":[100,100,100]},{"t":218,"s":[0,0,100],"h":1},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":378,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":385,"s":[100,100,100]},{"t":402,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.932,0],[0,-0.931],[0.932,0],[0,0.932]],"o":[[0.932,0],[0,0.932],[-0.932,0],[0,-0.931]],"v":[[0,-1.688],[1.687,-0.001],[0,1.688],[-1.687,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[22.249,3.688],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-10.616],[-8.447,-2.437]],"o":[[-10.394,0.857],[0,9.232],[0,0]],"v":[[9.281,-19.82],[-9.281,0.361],[5.343,19.82]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[11.281,23.576],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"indicator-right ","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[69.531,-44.51,0],"ix":2,"l":2},"a":{"a":0,"k":[12.968,22.698,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":40,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":45,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":51,"s":[108,108,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":66,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":191,"s":[100,100,100]},{"t":218,"s":[0,0,100],"h":1},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":378,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":385,"s":[100,100,100]},{"t":402,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.932,0],[0,-0.931],[0.932,0],[0,0.932]],"o":[[0.932,0],[0,0.932],[-0.932,0],[0,-0.931]],"v":[[0,-1.688],[1.687,-0.001],[0,1.688],[-1.687,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.687,41.708],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-9.232],[10.395,-0.857]],"o":[[8.447,2.438],[0,10.615],[0,0]],"v":[[-5.344,-19.82],[9.281,-0.361],[-9.281,19.82]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[14.655,21.819],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"network-small","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":235,"s":[100]},{"t":243,"s":[0],"h":1},{"t":265,"s":[100],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":319,"s":[100]},{"t":327,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[168.65,44.817,0],"ix":2,"l":2},"a":{"a":0,"k":[3.912,13.78,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":211,"s":[0,0,100]},{"t":222,"s":[100,100,100],"h":1},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":265,"s":[0,0,100]},{"t":276,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-4.365],[2.407,-3.331]],"o":[[2.348,3.306],[0,4.424],[0,0]],"v":[[-1.816,-11.78],[1.913,-0.067],[-1.913,11.78]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3.913,13.78],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"network-small","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":235,"s":[100]},{"t":243,"s":[0],"h":1},{"t":265,"s":[100],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":319,"s":[100]},{"t":327,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[131.975,44.817,0],"ix":2,"l":2},"a":{"a":0,"k":[3.912,13.78,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":211,"s":[0,0,100]},{"t":222,"s":[100,100,100],"h":1},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":265,"s":[0,0,100]},{"t":276,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-4.365],[-2.407,-3.331]],"o":[[-2.348,3.306],[0,4.424],[0,0]],"v":[[1.816,-11.78],[-1.913,-0.067],[1.913,11.78]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3.912,13.78],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"network-large","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":246,"s":[100]},{"t":254,"s":[0],"h":1},{"t":276,"s":[100],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":308,"s":[100]},{"t":316,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[172.999,44.817,0],"ix":2,"l":2},"a":{"a":0,"k":[4.625,17.738,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":222,"s":[0,0,100]},{"t":233,"s":[100,100,100],"h":1},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":276,"s":[0,0,100]},{"t":287,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-5.868],[3.298,-4.406]],"o":[[3.238,4.383],[0,5.927],[0,0]],"v":[[-2.527,-15.738],[2.626,-0.066],[-2.626,15.738]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[4.625,17.737],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"network-large","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":246,"s":[100]},{"t":254,"s":[0],"h":1},{"t":276,"s":[100],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":308,"s":[100]},{"t":316,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[127.626,44.817,0],"ix":2,"l":2},"a":{"a":0,"k":[4.625,17.738,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":222,"s":[0,0,100]},{"t":233,"s":[100,100,100],"h":1},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":276,"s":[0,0,100]},{"t":287,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-5.868],[-3.298,-4.406]],"o":[[-3.238,4.383],[0,5.927],[0,0]],"v":[[2.527,-15.738],[-2.626,-0.066],[2.626,15.738]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[4.625,17.737],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":3,"nm":"null-body ","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":216,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":225,"s":[-10]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":243,"s":[10]},{"t":252,"s":[0]}],"ix":10},"p":{"a":0,"k":[90,101,0],"ix":2,"l":2},"a":{"a":0,"k":[0,11,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"hand-right ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":23,"s":[26]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":308,"s":[26]},{"t":317,"s":[0],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":378,"s":[26]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":414,"s":[26]},{"t":423,"s":[0]}],"ix":10},"p":{"a":0,"k":[31.615,10.647,0],"ix":2,"l":2},"a":{"a":0,"k":[7.62,2.379,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.469,-0.257],[14.905,-11.105],[-2.867,9.613],[-4.387,7.038]],"o":[[-0.146,-0.515],[4.244,2.323],[0,0],[0,0],[0,0]],"v":[[-6.294,-13.745],[-5.426,-14.434],[-3.238,7.488],[-8.799,5.079],[-3.74,-4.723]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.667,16.691],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"hand-left ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":23,"s":[-26]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":308,"s":[-26]},{"t":317,"s":[0],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":378,"s":[-26]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":414,"s":[-26]},{"t":423,"s":[0]}],"ix":10},"p":{"a":0,"k":[-31.366,10.897,0],"ix":2,"l":2},"a":{"a":0,"k":[19.478,2.629,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.471,-0.258],[-14.903,-11.103],[2.867,9.613],[4.387,7.037]],"o":[[0.146,-0.516],[-4.246,2.325],[0,0],[0,0],[0,0]],"v":[[6.292,-13.742],[5.421,-14.433],[3.238,7.488],[8.798,5.078],[3.738,-4.722]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.665,16.691],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"eyes ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[0.213,-2.898,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[0.463,3,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":51,"s":[0.463,3,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[0.2,-2.898,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[0.2,-2.9,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[-6.787,-2.898,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[-6.8,-2.899,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[0.2,-2.9,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":133,"s":[0.2,-2.9,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":136,"s":[5,-9.9,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":151,"s":[5,-9.9,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":155,"s":[0.2,-2.9,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":297,"s":[0.213,-2.898,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":303,"s":[0.463,3,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":322,"s":[0.463,3,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":329,"s":[0.2,-2.898,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":408,"s":[0.213,-2.898,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":414,"s":[0.463,3,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":422,"s":[0.463,3,0],"to":[0,0,0],"ti":[0,0,0]},{"t":429,"s":[0.2,-2.898,0]}],"ix":2,"l":2},"a":{"a":0,"k":[17.045,9.606,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,0.833,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":19,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":23,"s":[100,7.967,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":37,"s":[100,8,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":40,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":112,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":114,"s":[100,8,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":118,"s":[100,8,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":120,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":169,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":171,"s":[100,8,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":175,"s":[100,8,100]},{"t":178,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.201],[1.872,0],[0,4.201],[-1.873,0]],"o":[[0,4.201],[-1.873,0],[0,-4.201],[1.872,0]],"v":[[3.391,0],[-0.001,7.606],[-3.391,0],[-0.001,-7.606]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[28.7,9.606],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.201],[1.873,0],[0,4.201],[-1.872,0]],"o":[[0,4.201],[-1.872,0],[0,-4.201],[1.873,0]],"v":[[3.391,0],[-0.001,7.606],[-3.391,0],[-0.001,-7.606]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[5.391,9.606],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"socket ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[31.022,33.297,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[23,33.297,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":308,"s":[23,33.297,0],"to":[0,0,0],"ti":[0,0,0]},{"t":318,"s":[31.022,33.297,0],"h":1},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":378,"s":[23,33.297,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":414,"s":[23,33.297,0],"to":[0,0,0],"ti":[0,0,0]},{"t":424,"s":[31.022,33.297,0]}],"ix":2,"l":2},"a":{"a":0,"k":[24.058,14.693,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.1,0],[0,0],[0,-1.1],[0,0],[1.1,0],[0,0],[0,1.1]],"o":[[0,-1.1],[0,0],[1.1,0],[0,0],[0,1.1],[0,0],[-1.1,0],[0,0]],"v":[[-2.435,-7.07],[-0.435,-9.07],[0.435,-9.07],[2.435,-7.07],[2.435,7.07],[0.435,9.07],[-0.435,9.07],[-2.435,7.07]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.964705942191,0.901960844152,0.658823529412,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.435,11.07],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-3.981],[3.98,0],[0,0]],"o":[[0,0],[3.98,0],[0,3.981],[0,0],[0,0]],"v":[[-6.771,-7.208],[-0.438,-7.208],[6.771,0.001],[-0.438,7.208],[-6.771,7.208]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.534,11.07],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.696,0.681],[4.036,0.072],[0,0],[-17.923,-16.81],[0.72,-0.711]],"o":[[-13.443,-13.126],[0,0],[0,0],[0.739,0.693],[-0.693,0.685]],"v":[[12.516,9.362],[-15.743,-4.76],[-15.743,-7.963],[15.001,6.767],[15.023,9.345]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.768627510819,0.768627510819,0.768627510819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.373,17.343],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"plug ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[-26.789,33.296,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[-18,33.296,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":308,"s":[-18,33.296,0],"to":[0,0,0],"ti":[0,0,0]},{"t":317,"s":[-26.789,33.296,0],"h":1},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":378,"s":[-18,33.296,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":414,"s":[-18,33.296,0],"to":[0,0,0],"ti":[0,0,0]},{"t":423,"s":[-26.789,33.296,0]}],"ix":2,"l":2},"a":{"a":0,"k":[27.268,14.693,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.1,0],[0,0],[0,1.101],[0,0],[-1.1,0],[0,0],[0,-1.099]],"o":[[0,1.101],[0,0],[-1.1,0],[0,0],[0,-1.099],[0,0],[1.1,0],[0,0]],"v":[[2.435,7.07],[0.435,9.07],[-0.435,9.07],[-2.435,7.07],[-2.435,-7.07],[-0.435,-9.07],[0.435,-9.07],[2.435,-7.07]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.964705942191,0.901960844152,0.658823529412,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.486,11.07],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.82,0],[0,0],[0,0],[0,0],[0,-0.821]],"o":[[0,0],[0,0],[0,0],[0.82,0],[0,0.819]],"v":[[3.933,1.484],[-5.417,1.484],[-5.417,-1.484],[3.933,-1.484],[5.417,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.768627510819,0.768627510819,0.768627510819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.119,14.778],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.82,0],[0,0],[0,0],[0,0],[0,-0.82]],"o":[[0,0],[0,0],[0,0],[0.82,0],[0,0.819]],"v":[[3.933,1.484],[-5.417,1.484],[-5.417,-1.484],[3.933,-1.484],[5.417,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.768627510819,0.768627510819,0.768627510819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.119,7.363],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,3.981],[-3.981,0],[0,0]],"o":[[0,0],[-3.981,0],[0,-3.981],[0,0],[0,0]],"v":[[6.771,7.208],[0.438,7.208],[-6.771,0.001],[0.438,-7.208],[6.771,-7.208]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.387,11.07],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.696,0.681],[-4.036,0.072],[0,0],[17.924,-16.81],[-0.72,-0.711]],"o":[[13.443,-13.126],[0,0],[0,0],[-0.738,0.693],[0.693,0.685]],"v":[[-12.515,9.362],[15.742,-4.76],[15.742,-7.963],[-15.001,6.767],[-15.022,9.345]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.768627510819,0.768627510819,0.768627510819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.742,17.343],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"body ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.017,-4.078,0],"ix":2,"l":2},"a":{"a":0,"k":[37.53,43.53,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.61,-3.511],[0.08,-0.38],[0.069,-0.28],[0.03,-0.1],[2.54,-3.51],[2.45,-1.981],[0.639,-0.45],[1.029,-0.591],[0.66,-0.32],[0.68,-0.28],[0.861,-0.28],[0.77,-0.189],[0.281,-0.069],[2.509,0],[0,0],[5.781,12],[-2.75,7.73],[-4.95,4.051],[-2.63,2.12],[-1.01,1.029],[-0.29,0.381],[0.06,1.44],[0.179,1.27],[-1,0.109],[-0.39,-0.201],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.13,-0.131],[-0.069,-0.11],[0,-0.411],[0,0],[-0.029,-0.409],[-0.02,-0.199],[-0.02,-0.159],[-0.09,-0.29],[-0.05,-0.14],[-0.04,-0.091],[-0.071,-0.109],[-0.09,-0.111],[-0.031,-0.04],[-0.55,-0.549],[-0.139,-0.141],[-2.41,-1.94],[-4.18,-5.951],[-0.83,-2.4],[-0.071,-0.241],[-0.05,-0.21],[-0.17,-0.9]],"o":[[-0.06,0.38],[-0.059,0.28],[-0.021,0.09],[-1.061,4.23],[-1.861,2.55],[-0.611,0.49],[-0.971,0.68],[-0.641,0.359],[-0.66,0.321],[-0.84,0.34],[-0.759,0.241],[-0.28,0.07],[-2.45,0.531],[0,0],[-13.32,0],[-3.54,-7.34],[2.18,-6.091],[2.62,-2.139],[2.72,-2.19],[0.551,-0.56],[1.03,-1.369],[-0.121,-2.79],[-0.161,-1.17],[0.361,-0.06],[0,0],[0,0],[0,0],[0,0],[0,0],[0.15,0.091],[0.091,0.09],[0.221,0.33],[0,0],[0,0.38],[0.011,0.201],[0.02,0.15],[0.04,0.301],[0.049,0.149],[0.04,0.09],[0.05,0.119],[0.059,0.12],[0.021,0.04],[0.279,0.37],[0.12,0.13],[1.02,0.98],[5.571,4.48],[1.461,2.089],[0.08,0.23],[0.069,0.21],[0.26,0.88],[0.679,3.5]],"v":[[34.92,12.91],[34.7,14.051],[34.511,14.889],[34.441,15.18],[28.941,26.88],[22.441,33.721],[20.561,35.139],[17.561,37.04],[15.62,38.059],[13.62,38.96],[11.07,39.889],[8.78,40.529],[7.95,40.729],[0.481,41.529],[0.45,41.529],[-31.09,21.699],[-32.78,-1.6],[-21.46,-16.561],[-13.44,-22.771],[-8.11,-27.41],[-6.9,-28.79],[-5.809,-33.45],[-6.269,-39.26],[-4.65,-41.469],[-3.51,-41.26],[0.45,-39.191],[0.481,-39.18],[0.481,-39.171],[5,-36.611],[5.71,-36.21],[6.13,-35.889],[6.38,-35.59],[6.721,-34.469],[6.721,-33.43],[6.75,-32.251],[6.8,-31.65],[6.86,-31.191],[7.061,-30.299],[7.21,-29.861],[7.33,-29.579],[7.521,-29.23],[7.74,-28.889],[7.811,-28.771],[9,-27.421],[9.4,-27.01],[14.36,-22.751],[30.3,-8.51],[33.74,-1.73],[33.971,-1.029],[34.16,-0.4],[34.811,2.27]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.53,43.53],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":18,"ty":3,"nm":"null-foot-leg-right ","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":216,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":225,"s":[-16]},{"t":234,"s":[0]}],"ix":10},"p":{"a":0,"k":[104.625,119.5,0],"ix":2,"l":2},"a":{"a":0,"k":[14.625,29.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"foot-right ","parent":18,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":106,"s":[-16.958]},{"t":112,"s":[0]}],"ix":10},"p":{"a":0,"k":[12.563,62.71,0],"ix":2,"l":2},"a":{"a":0,"k":[3.168,10.693,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.229],[0,4.229],[5.063,0]],"o":[[0,4.229],[0,-4.229],[-5.064,0]],"v":[[-9.168,1.714],[9.168,1.714],[0,-5.943]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.168,7.944],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"leg-right ","parent":18,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[14.726,61.506,0],"ix":2,"l":2},"a":{"a":0,"k":[4.042,31.23,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.628,14.816],[2.628,14.816],[2.628,-14.816],[-2.628,-14.816]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.042,16.23],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":21,"ty":3,"nm":"null-foot-leg-left","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":234,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":243,"s":[16]},{"t":252,"s":[0]}],"ix":10},"p":{"a":0,"k":[76.125,119.75,0],"ix":2,"l":2},"a":{"a":0,"k":[-13.706,29.818,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"foot-left ","parent":21,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":122,"s":[14]},{"t":128,"s":[0]}],"ix":10},"p":{"a":0,"k":[-11.138,62.21,0],"ix":2,"l":2},"a":{"a":0,"k":[19.667,10.193,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.229],[0,4.229],[-5.064,0]],"o":[[0,4.229],[0,-4.229],[5.063,0]],"v":[[9.167,1.714],[-9.167,1.714],[0,-5.943]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.167,7.944],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"leg-left ","parent":21,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-13.8,46.604,0],"ix":2,"l":2},"a":{"a":0,"k":[4.041,16.327,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.627,14.913],[-2.627,14.913],[-2.627,-14.913],[2.627,-14.913]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.041,16.327],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"feather-right ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2.257,-40.214,0],"ix":2,"l":2},"a":{"a":0,"k":[4.979,16.819,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.92,-1.305],[-0.994,2.399],[-2.288,2.372],[4.027,-4.656],[0.654,-1.84]],"o":[[0.396,-1.953],[2.156,-5.198],[-2.176,0.596],[-2.233,2.583],[1.92,1.304]],"v":[[-1.844,8.944],[0.169,2.347],[7.605,-8.944],[-3.521,-2.013],[-7.605,5.031]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.549019607843,0.901960844152,0.803921628466,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.604,10.944],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"feather-left ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.563,-41.523,0],"ix":2,"l":2},"a":{"a":0,"k":[9.913,18.048,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.773,0.237],[1.134,3.207],[1.239,1.692],[-2.752,-3.696],[0.074,-1.377]],"o":[[-0.114,-2.056],[-1.171,-3.316],[1.418,0.498],[3.356,4.509],[-1.773,-0.236]],"v":[[0.059,7.463],[-1.565,-0.649],[-5.538,-8.173],[2.182,-2.518],[5.378,8.173]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.549019607843,0.901960844152,0.803921628466,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.538,10.173],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"feather-center ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1.25,-36.84,0],"ix":2,"l":2},"a":{"a":0,"k":[4.789,33.995,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.865,0.364],[-0.623,5.891],[-1.236,4.546],[-0.391,-6.65],[0.616,-4.418]],"o":[[-0.218,-4.542],[0.653,-6.176],[1.225,4.483],[0.367,6.262],[-1.865,-0.364]],"v":[[-3.197,15.403],[-2.745,-0.342],[0.286,-16.495],[3.048,0.332],[2.4,16.495]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.549019607843,0.901960844152,0.803921628466,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[5.414,18.495],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"floor ","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[89.799,153.743,0],"ix":2,"l":2},"a":{"a":0,"k":[48.548,6.287,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.334],[26.675,0],[0,3.334],[-26.674,0]],"o":[[0,3.334],[-26.674,0],[0,-3.334],[26.675,0]],"v":[[48.298,0],[0,6.037],[-48.298,0],[0,-6.037]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.921568687289,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[48.548,6.287],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}],"markers":[{"tm":75,"cm":"connecting-start","dr":0},{"tm":165,"cm":"connecting-end","dr":0},{"tm":255,"cm":"connected-start","dr":0},{"tm":290,"cm":"connected-end","dr":0},{"tm":297,"cm":"disconnection-start","dr":0},{"tm":341,"cm":"disconnection-end","dr":0},{"tm":378,"cm":"failed-start","dr":0},{"tm":433,"cm":"failed-end","dr":0}]} \ No newline at end of file diff --git a/lib/utilities/assets.dart b/lib/utilities/assets.dart index dfb92a754..b826bbf09 100644 --- a/lib/utilities/assets.dart +++ b/lib/utilities/assets.dart @@ -262,7 +262,7 @@ class _PNG { class _ANIMATIONS { const _ANIMATIONS(); - String get test2 => "assets/lottie/test2_sw.json"; + String get test2 => "assets/lottie/loader.json"; String get iconSend => "assets/lottie/icon_send.json"; String get loaderAndCheckmark => "assets/lottie/loader_and_checkmark.json"; String get arrowRotate => "assets/lottie/arrow_rotate.json"; diff --git a/pubspec.yaml b/pubspec.yaml index 97117e6db..99f8bb3e3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -276,7 +276,7 @@ flutter: # lottie animations # basic - - assets/lottie/test2_sw.json + - assets/lottie/loader.json - assets/lottie/icon_send.json - assets/lottie/loader_and_checkmark.json - assets/lottie/arrow_rotate.json diff --git a/scripts/app_config/shared/link_assets.sh b/scripts/app_config/shared/link_assets.sh index 205841368..e9873ac88 100755 --- a/scripts/app_config/shared/link_assets.sh +++ b/scripts/app_config/shared/link_assets.sh @@ -22,5 +22,8 @@ ln -s "${ASSET_SOURCES_DIR}/bundled_themes/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/ rm -f "${ASSETS_DIR}/icon" ln -s "${ASSET_SOURCES_DIR}/icon/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/icon" +rm -f "${ASSETS_DIR}/lottie" +ln -s "${ASSET_SOURCES_DIR}/lottie/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/lottie" + # run icon and image generators "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/asset_generators.sh" \ No newline at end of file From 4cb3786760f853c011826ee315568d63405f0820 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 15:01:21 -0600 Subject: [PATCH 100/318] fix: missing pubspec placholder strings --- pubspec.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index 99f8bb3e3..3620b41a7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ -name: PLACEHOLDER -description: PLACEHOLDER +name: stackwallet +description: Stack Wallet # The following defines the version and build number for your application. # A version number is three numbers separated by dots, like 1.2.43 @@ -11,7 +11,7 @@ description: PLACEHOLDER # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: PLACEHOLDER_V+PLACEHOLDER_B +version: 2.2.2+42 environment: sdk: ">=3.3.4 <4.0.0" From 46a5548cb8dfd79af5a46821364562ec9c6ed015 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 22 May 2024 16:53:27 -0500 Subject: [PATCH 101/318] move duo bundled themes to correct dir --- .../bundled_themes/{duo => stack_duo}/dark.zip | Bin .../bundled_themes/{duo => stack_duo}/light.zip | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename asset_sources/bundled_themes/{duo => stack_duo}/dark.zip (100%) rename asset_sources/bundled_themes/{duo => stack_duo}/light.zip (100%) diff --git a/asset_sources/bundled_themes/duo/dark.zip b/asset_sources/bundled_themes/stack_duo/dark.zip similarity index 100% rename from asset_sources/bundled_themes/duo/dark.zip rename to asset_sources/bundled_themes/stack_duo/dark.zip diff --git a/asset_sources/bundled_themes/duo/light.zip b/asset_sources/bundled_themes/stack_duo/light.zip similarity index 100% rename from asset_sources/bundled_themes/duo/light.zip rename to asset_sources/bundled_themes/stack_duo/light.zip From 9d872754ef9724bca9f7097de6ead2e75a4c4e2f Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 15:28:16 -0600 Subject: [PATCH 102/318] add `-i` flag for dev convenience so build all isn't run when not required --- scripts/build_app.sh | 52 ++++++++++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/scripts/build_app.sh b/scripts/build_app.sh index 63245d015..d038cfa3c 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -13,27 +13,49 @@ usage() { exit 1 } -# check for required number of args -if [ $# -ne 8 ]; then - usage -fi - +# required args unset -v APP_VERSION_STRING unset -v APP_BUILD_NUMBER unset -v APP_BUILD_PLATFORM unset -v APP_NAMED_ID +# optional args (with defaults) +BUILD_CRYPTO_PLUGINS=0 + # Parse command-line arguments. -while getopts "v:b:p:a:" opt; do - case "$opt" in +while getopts "v:b:p:a:i" opt; do + case "${opt}" in v) APP_VERSION_STRING="$OPTARG" ;; b) APP_BUILD_NUMBER="$OPTARG" ;; p) APP_BUILD_PLATFORM="$OPTARG" ;; a) APP_NAMED_ID="$OPTARG" ;; + i) BUILD_CRYPTO_PLUGINS=1 ;; *) usage ;; esac done +if [ -z "$APP_VERSION_STRING" ]; then + echo "Missing -v option" + usage +fi + +if [ -z "$APP_BUILD_NUMBER" ]; then + echo "Missing -b option" + usage +fi + +if [ -z "$APP_BUILD_PLATFORM" ]; then + echo "Missing -p option" + usage +fi + +if [ -z "$APP_NAMED_ID" ]; then + echo "Missing -a option" + usage +fi + + + if printf '%s\0' "${APP_PLATFORMS[@]}" | grep -Fxqz -- "${APP_BUILD_PLATFORM}"; then pushd "${APP_PROJECT_ROOT_DIR}/scripts/${APP_BUILD_PLATFORM}" else @@ -51,13 +73,15 @@ else exit 1 fi -if [[ "$APP_NAMED_ID" = "stack_wallet" ]]; then - ./build_all.sh -elif [[ "$APP_NAMED_ID" = "stack_duo" ]]; then - ./build_all_duo.sh -else - echo "Invalid app id: ${APP_NAMED_ID}" - exit 1 +if [ "$BUILD_CRYPTO_PLUGINS" -eq 0 ]; then + if [[ "$APP_NAMED_ID" = "stack_wallet" ]]; then + ./build_all.sh + elif [[ "$APP_NAMED_ID" = "stack_duo" ]]; then + ./build_all_duo.sh + else + echo "Invalid app id: ${APP_NAMED_ID}" + exit 1 + fi fi popd From f904d409a5ba3da2c218d60fc1b1d685ae594dee Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 17:56:51 -0600 Subject: [PATCH 103/318] generalize project config --- android/app/build.gradle | 3 +-- android/app/src/debug/AndroidManifest.xml | 2 +- android/app/src/main/AndroidManifest.xml | 6 +++--- .../cypherstack/stackwallet/MainActivity.kt | 2 +- .../app/src/main/profile/AndroidManifest.xml | 2 +- android/app/src/profile/AndroidManifest.xml | 2 +- ios/Runner.xcodeproj/project.pbxproj | 6 +++--- ios/Runner/Info.plist | 2 +- .../startup_preferences_view.dart | 3 ++- .../wallet_backup_view.dart | 3 ++- .../delete_wallet_recovery_phrase_view.dart | 3 ++- .../forgot_password_desktop_view.dart | 5 +++-- linux/CMakeLists.txt | 4 ++-- linux/my_application.cc | 4 ++-- macos/Runner.xcodeproj/project.pbxproj | 18 +++++++++--------- .../xcshareddata/xcschemes/Runner.xcscheme | 8 ++++---- macos/Runner/Configs/AppInfo.xcconfig | 4 ++-- scripts/android/build_all_duo.sh | 7 ------- scripts/app_config/configure_stack_duo.sh | 17 ++++++++--------- scripts/app_config/configure_stack_wallet.sh | 19 ++++++++++--------- .../platforms/android/platform_config.sh | 11 +++++++++++ .../platforms/ios/platform_config.sh | 7 +++++++ .../platforms/linux/platform_config.sh | 7 +++++++ .../platforms/macos/platform_config.sh | 10 ++++++++++ .../platforms/windows/platform_config.sh | 8 ++++++++ scripts/app_config/shared/link_assets.sh | 3 --- scripts/build_app.sh | 12 ++++++++---- scripts/env.sh | 8 +++++++- scripts/ios/build_all_duo.sh | 4 ---- scripts/linux/build_all_duo.sh | 4 ---- scripts/macos/build_all_duo.sh | 3 --- scripts/windows/build_all_duo.sh | 3 --- windows/CMakeLists.txt | 4 ++-- windows/runner/Runner.rc | 8 ++++---- windows/runner/main.cpp | 2 +- 35 files changed, 123 insertions(+), 91 deletions(-) create mode 100755 scripts/app_config/platforms/android/platform_config.sh create mode 100755 scripts/app_config/platforms/ios/platform_config.sh create mode 100755 scripts/app_config/platforms/linux/platform_config.sh create mode 100755 scripts/app_config/platforms/macos/platform_config.sh create mode 100755 scripts/app_config/platforms/windows/platform_config.sh diff --git a/android/app/build.gradle b/android/app/build.gradle index ae9570217..4d134796a 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -47,8 +47,7 @@ android { } defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.cypherstack.stackwallet" + applicationId "com.place.holder" minSdkVersion 23 targetSdkVersion 33 // ndkVersion = "21.1.6352462" diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index e461d6136..9aa98e2e8 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.place.holder"> diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 3f1a56aa8..bfcdf171f 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.place.holder"> diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml index e461d6136..9aa98e2e8 100644 --- a/android/app/src/profile/AndroidManifest.xml +++ b/android/app/src/profile/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.place.holder"> diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 7a1d5f01e..c793dd2fe 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -525,7 +525,7 @@ ); MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.cypherstack.stackwallet; + PRODUCT_BUNDLE_IDENTIFIER = com.place.holder; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; STRIP_INSTALLED_PRODUCT = NO; @@ -716,7 +716,7 @@ ); MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.cypherstack.stackwallet; + PRODUCT_BUNDLE_IDENTIFIER = com.place.holder; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; STRIP_INSTALLED_PRODUCT = NO; @@ -799,7 +799,7 @@ ); MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.cypherstack.stackwallet; + PRODUCT_BUNDLE_IDENTIFIER = com.place.holder; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; STRIP_INSTALLED_PRODUCT = NO; diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 6b8be59a8..ea8af9f9f 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -15,7 +15,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - Stack Wallet + PlaceHolderName CFBundlePackageType APPL CFBundleShortVersionString diff --git a/lib/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart b/lib/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart index 835d156df..687fe7eb4 100644 --- a/lib/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart +++ b/lib/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart @@ -13,6 +13,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; @@ -158,7 +159,7 @@ class _StartupPreferencesViewState textAlign: TextAlign.left, ), Text( - "Stack Wallet home screen", + "${AppConfig.appName} home screen", style: STextStyles.itemSubtitle( context), diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart index ab6baf455..71e7d980e 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart @@ -15,6 +15,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; @@ -126,7 +127,7 @@ class WalletBackupView extends ConsumerWidget { "Your backup data is the only way you can access your " "funds if you forget your PIN, lose your phone, etc." "\n\n" - "Stack Wallet does not keep nor is able to restore " + "${AppConfig.appName} does not keep nor is able to restore " "your backup data. " "Only you have access to your wallet.", style: STextStyles.label(context), diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart index 8c7d94fe9..36510c490 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart @@ -14,6 +14,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; import 'package:stackwallet/pages/home_view/home_view.dart'; @@ -202,7 +203,7 @@ class _DeleteWalletRecoveryPhraseViewState "Your backup data is the only way you can access your " "funds if you forget your PIN, lose your phone, etc." "\n\n" - "Stack Wallet does not keep nor is able to restore " + "${AppConfig.appName} does not keep nor is able to restore " "your backup data. " "Only you have access to your wallet.", style: STextStyles.label(context), diff --git a/lib/pages_desktop_specific/password/forgot_password_desktop_view.dart b/lib/pages_desktop_specific/password/forgot_password_desktop_view.dart index 0de5069e8..0f1077983 100644 --- a/lib/pages_desktop_specific/password/forgot_password_desktop_view.dart +++ b/lib/pages_desktop_specific/password/forgot_password_desktop_view.dart @@ -13,6 +13,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:stackwallet/app_config.dart'; import 'package:stackwallet/pages_desktop_specific/password/delete_password_warning_view.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/theme_providers.dart'; @@ -73,7 +74,7 @@ class _ForgotPasswordDesktopViewState height: 42, ), Text( - "Stack Wallet", + AppConfig.appName, style: STextStyles.desktopH1(context), ), const SizedBox( @@ -82,7 +83,7 @@ class _ForgotPasswordDesktopViewState SizedBox( width: 400, child: Text( - "Stack Wallet does not store your password. Create new wallet or use a Stack backup file to restore your wallet.", + "${AppConfig.appName} does not store your password. Create new wallet or use a Stack backup file to restore your wallet.", textAlign: TextAlign.center, style: STextStyles.desktopTextSmall(context).copyWith( color: Theme.of(context) diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt index 53391e7ad..bd1d1690b 100644 --- a/linux/CMakeLists.txt +++ b/linux/CMakeLists.txt @@ -4,10 +4,10 @@ project(runner LANGUAGES CXX) # The name of the executable created for the application. Change this to change # the on-disk name of your application. -set(BINARY_NAME "stack_wallet") +set(BINARY_NAME "place_holder") # The unique GTK application identifier for this application. See: # https://wiki.gnome.org/HowDoI/ChooseApplicationID -set(APPLICATION_ID "com.cypherstack.stackwallet") +set(APPLICATION_ID "com.place.holder") # Explicitly opt in to modern CMake behaviors to avoid warnings with recent # versions of CMake. diff --git a/linux/my_application.cc b/linux/my_application.cc index d342c1506..a6eec3956 100644 --- a/linux/my_application.cc +++ b/linux/my_application.cc @@ -40,11 +40,11 @@ static void my_application_activate(GApplication* application) { if (use_header_bar) { GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); gtk_widget_show(GTK_WIDGET(header_bar)); - gtk_header_bar_set_title(header_bar, "Stack Wallet"); + gtk_header_bar_set_title(header_bar, "PlaceHolderName"); gtk_header_bar_set_show_close_button(header_bar, TRUE); gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); } else { - gtk_window_set_title(window, "Stack Wallet"); + gtk_window_set_title(window, "PlaceHolderName"); } gtk_window_set_default_size(window, 1220, 500); diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index eccafe6ba..3e8ffdabb 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -77,7 +77,7 @@ 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* Stack Wallet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Stack Wallet.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10ED2044A3C60003C045 /* PlaceHolderName.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "PlaceHolderName.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; @@ -160,7 +160,7 @@ 33CC10EE2044A3C60003C045 /* Products */ = { isa = PBXGroup; children = ( - 33CC10ED2044A3C60003C045 /* Stack Wallet.app */, + 33CC10ED2044A3C60003C045 /* PlaceHolderName.app */, 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, ); name = Products; @@ -267,7 +267,7 @@ ); name = Runner; productName = Runner; - productReference = 33CC10ED2044A3C60003C045 /* Stack Wallet.app */; + productReference = 33CC10ED2044A3C60003C045 /* PlaceHolderName.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -497,10 +497,10 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.cypherstack.stackWallet.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.place.holderCamel.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Stack Wallet.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/stack_wallet"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PlaceHolderName.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/stack_wallet"; }; name = Debug; }; @@ -512,10 +512,10 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.cypherstack.stackWallet.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.place.holderCamel.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Stack Wallet.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/stack_wallet"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PlaceHolderName.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/stack_wallet"; }; name = Release; }; @@ -527,10 +527,10 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.cypherstack.stackWallet.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.place.holderCamel.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Stack Wallet.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/stack_wallet"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PlaceHolderName.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/stack_wallet"; }; name = Profile; }; diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 73f65e0e3..4baf48207 100644 --- a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -15,7 +15,7 @@ @@ -31,7 +31,7 @@ @@ -65,7 +65,7 @@ @@ -82,7 +82,7 @@ diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig index 391513c54..1a3350d22 100644 --- a/macos/Runner/Configs/AppInfo.xcconfig +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -5,10 +5,10 @@ // 'flutter create' template. // The application's name. By default this is also the title of the Flutter window. -PRODUCT_NAME = Stack Wallet +PRODUCT_NAME = PlaceHolderName // The application's bundle identifier -PRODUCT_BUNDLE_IDENTIFIER = com.cypherstack.stack_wallet +PRODUCT_BUNDLE_IDENTIFIER = com.place.holder_snake // The copyright displayed in application information PRODUCT_COPYRIGHT = Copyright © 2023 com.cypherstack. All rights reserved. diff --git a/scripts/android/build_all_duo.sh b/scripts/android/build_all_duo.sh index e636ce29e..bca175541 100755 --- a/scripts/android/build_all_duo.sh +++ b/scripts/android/build_all_duo.sh @@ -2,13 +2,6 @@ set -x -e -sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/build.gradle -sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/debug/AndroidManifest.xml -sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/main/AndroidManifest.xml -sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt -sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/main/profile/AndroidManifest.xml -sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../android/app/src/profile/AndroidManifest.xml - # todo: revisit following at some point # libepiccash requires old rust diff --git a/scripts/app_config/configure_stack_duo.sh b/scripts/app_config/configure_stack_duo.sh index c910deef8..99e60e4cd 100755 --- a/scripts/app_config/configure_stack_duo.sh +++ b/scripts/app_config/configure_stack_duo.sh @@ -4,24 +4,23 @@ set -x -e # Configure files for Duo. -export ORIGINAL_NAME="Stack Wallet" -export ORIGINAL_APP_ID="com.cypherstack.stackwallet" - export NEW_NAME="Stack Duo" export NEW_APP_ID="com.cypherstack.stackduo" +export NEW_APP_ID_CAMEL="com.cypherstack.stackDuo" +export NEW_APP_ID_SNAKE="com.cypherstack.stack_duo" +export NEW_BASIC_NAME="stack_duo" +NEW_PUBSPEC_NAME="stackduo" PUBSPEC_FILE="${APP_PROJECT_ROOT_DIR}/pubspec.yaml" -PUBSPEC_NAME="stackduo" -PUBSPEC_DESC="Stack Duo" # String replacements. if [[ "$(uname)" == 'Darwin' ]]; then # macos specific sed - sed -i '' "s/name: PLACEHOLDER/name: ${PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" - sed -i '' "s/description: PLACEHOLDER/description: ${PUBSPEC_DESC}/g" "${PUBSPEC_FILE}" + sed -i '' "s/name: PLACEHOLDER/name: ${NEW_PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" + sed -i '' "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" "${PUBSPEC_FILE}" else - sed -i "s/name: PLACEHOLDER/name: ${PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" - sed -i "s/description: PLACEHOLDER/description: ${PUBSPEC_DESC}/g" "${PUBSPEC_FILE}" + sed -i "s/name: PLACEHOLDER/name: ${NEW_PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" + sed -i "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" "${PUBSPEC_FILE}" fi APP_CONFIG_DART_FILE="${APP_PROJECT_ROOT_DIR}/lib/app_config.g.dart" diff --git a/scripts/app_config/configure_stack_wallet.sh b/scripts/app_config/configure_stack_wallet.sh index 2f698ba6c..acd13fb22 100755 --- a/scripts/app_config/configure_stack_wallet.sh +++ b/scripts/app_config/configure_stack_wallet.sh @@ -4,22 +4,23 @@ set -x -e # Configure files for Stack Wallet. -# currently unused -#export APP_NAME="Stack Wallet" -#export APP_ID="com.cypherstack.stackwallet" +export NEW_NAME="Stack Wallet" +export NEW_APP_ID="com.cypherstack.stackwallet" +export NEW_APP_ID_CAMEL="com.cypherstack.stackWallet" +export NEW_APP_ID_SNAKE="com.cypherstack.stack_wallet" +export NEW_BASIC_NAME="stack_wallet" +NEW_PUBSPEC_NAME="stackwallet" PUBSPEC_FILE="${APP_PROJECT_ROOT_DIR}/pubspec.yaml" -PUBSPEC_NAME="stackwallet" -PUBSPEC_DESC="Stack Wallet" # String replacements. if [[ "$(uname)" == 'Darwin' ]]; then # macos specific sed - sed -i '' "s/name: PLACEHOLDER/name: ${PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" - sed -i '' "s/description: PLACEHOLDER/description: ${PUBSPEC_DESC}/g" "${PUBSPEC_FILE}" + sed -i '' "s/name: PLACEHOLDER/name: ${NEW_PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" + sed -i '' "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" "${PUBSPEC_FILE}" else - sed -i "s/name: PLACEHOLDER/name: ${PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" - sed -i "s/description: PLACEHOLDER/description: ${PUBSPEC_DESC}/g" "${PUBSPEC_FILE}" + sed -i "s/name: PLACEHOLDER/name: ${NEW_PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" + sed -i "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" "${PUBSPEC_FILE}" fi diff --git a/scripts/app_config/platforms/android/platform_config.sh b/scripts/app_config/platforms/android/platform_config.sh new file mode 100755 index 000000000..5002c11d5 --- /dev/null +++ b/scripts/app_config/platforms/android/platform_config.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -x -e + +sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/android/app/build.gradle" +sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/android/app/src/debug/AndroidManifest.xml" +sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/android/app/src/profile/AndroidManifest.xml" +sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/android/app/src/main/AndroidManifest.xml" +sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/android/app/src/main/AndroidManifest.xml" +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/android/app/src/main/profile/AndroidManifest.xml" +sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt" diff --git a/scripts/app_config/platforms/ios/platform_config.sh b/scripts/app_config/platforms/ios/platform_config.sh new file mode 100755 index 000000000..2dad97e5f --- /dev/null +++ b/scripts/app_config/platforms/ios/platform_config.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -x -e + +# Configure ios for Duo. +sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/ios/Runner/Info.plist" +sed -i '' "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/ios/Runner.xcodeproj/project.pbxproj" diff --git a/scripts/app_config/platforms/linux/platform_config.sh b/scripts/app_config/platforms/linux/platform_config.sh new file mode 100755 index 000000000..6219ae3da --- /dev/null +++ b/scripts/app_config/platforms/linux/platform_config.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -x -e + +# Configure Linux for Duo. +sed -i "s/${APP_BASIC_NAME_PLACEHOLDER}/${NEW_BASIC_NAME}/g" "${APP_PROJECT_ROOT_DIR}/linux/CMakeLists.txt" +sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/linux/my_application.cc" diff --git a/scripts/app_config/platforms/macos/platform_config.sh b/scripts/app_config/platforms/macos/platform_config.sh new file mode 100755 index 000000000..88becec76 --- /dev/null +++ b/scripts/app_config/platforms/macos/platform_config.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +set -x -e + +# Configure macOS for Duo. +sed -i '' "s/${APP_ID_PLACEHOLDER_CAMEL}/${NEW_APP_ID_CAMEL}/g" "${APP_PROJECT_ROOT_DIR}/macos/Runner.xcodeproj/project.pbxproj" +sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/macos/Runner.xcodeproj/project.pbxproj" +sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme" +sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/macos/Runner/Configs/AppInfo.xcconfig" +sed -i '' "s/${APP_ID_PLACEHOLDER_SNAKE}/${NEW_APP_ID_SNAKE}/g" "${APP_PROJECT_ROOT_DIR}/macos/Runner/Configs/AppInfo.xcconfig" diff --git a/scripts/app_config/platforms/windows/platform_config.sh b/scripts/app_config/platforms/windows/platform_config.sh new file mode 100755 index 000000000..ea9309a9c --- /dev/null +++ b/scripts/app_config/platforms/windows/platform_config.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -x -e + +# Configure Windows for Duo. +sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/windows/runner/Runner.rc" +sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/windows/runner/main.cpp" +sed -i "s/${APP_BASIC_NAME_PLACEHOLDER}/${NEW_BASIC_NAME}/g" "${APP_PROJECT_ROOT_DIR}/windows/CMakeLists.txt" diff --git a/scripts/app_config/shared/link_assets.sh b/scripts/app_config/shared/link_assets.sh index e9873ac88..e718f0783 100755 --- a/scripts/app_config/shared/link_assets.sh +++ b/scripts/app_config/shared/link_assets.sh @@ -24,6 +24,3 @@ ln -s "${ASSET_SOURCES_DIR}/icon/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/icon" rm -f "${ASSETS_DIR}/lottie" ln -s "${ASSET_SOURCES_DIR}/lottie/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/lottie" - -# run icon and image generators -"${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/asset_generators.sh" \ No newline at end of file diff --git a/scripts/build_app.sh b/scripts/build_app.sh index d038cfa3c..795adfdbf 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -54,8 +54,7 @@ if [ -z "$APP_NAMED_ID" ]; then usage fi - - +# checks for the correct platform dir and pushes it for later if printf '%s\0' "${APP_PLATFORMS[@]}" | grep -Fxqz -- "${APP_BUILD_PLATFORM}"; then pushd "${APP_PROJECT_ROOT_DIR}/scripts/${APP_BUILD_PLATFORM}" else @@ -63,16 +62,21 @@ else usage fi +# apply config project wide change changes if printf '%s\0' "${APP_NAMED_IDS[@]}" | grep -Fxqz -- "${APP_NAMED_ID}"; then - # shellcheck disable=SC1090 - source "${APP_PROJECT_ROOT_DIR}/scripts/app_config/configure_${APP_NAMED_ID}.sh" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/update_version.sh" -v "${APP_VERSION_STRING}" -b "${APP_BUILD_NUMBER}" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/link_assets.sh" "${APP_NAMED_ID}" + # shellcheck disable=SC1090 + source "${APP_PROJECT_ROOT_DIR}/scripts/app_config/configure_${APP_NAMED_ID}.sh" + "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/platforms/${APP_BUILD_PLATFORM}/platform_config.sh" else echo "Invalid app id: ${APP_NAMED_ID}" exit 1 fi +# run icon and image generators after project config has completed +"${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/asset_generators.sh" + if [ "$BUILD_CRYPTO_PLUGINS" -eq 0 ]; then if [[ "$APP_NAMED_ID" = "stack_wallet" ]]; then ./build_all.sh diff --git a/scripts/env.sh b/scripts/env.sh index 174a6d879..d47b6f2f4 100755 --- a/scripts/env.sh +++ b/scripts/env.sh @@ -6,4 +6,10 @@ set -x -e THIS_SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) pushd "${THIS_SCRIPT_DIR}/../" export APP_PROJECT_ROOT_DIR="$(pwd)" -popd \ No newline at end of file +popd + +export APP_NAME_PLACEHOLDER="PlaceHolderName" +export APP_ID_PLACEHOLDER="com.place.holder" +export APP_ID_PLACEHOLDER_CAMEL="com.place.holderCamel" +export APP_ID_PLACEHOLDER_SNAKE="com.place.holder_snake" +export APP_BASIC_NAME_PLACEHOLDER="place_holder" diff --git a/scripts/ios/build_all_duo.sh b/scripts/ios/build_all_duo.sh index 1dabc0834..c16884680 100755 --- a/scripts/ios/build_all_duo.sh +++ b/scripts/ios/build_all_duo.sh @@ -2,10 +2,6 @@ set -x -e -# Configure ios for Duo. -sed -i '' "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../ios/Runner/Info.plist -sed -i '' "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../ios/Runner.xcodeproj/project.pbxproj - # todo: revisit following at some point # libepiccash requires old rust diff --git a/scripts/linux/build_all_duo.sh b/scripts/linux/build_all_duo.sh index 7f0cd0286..77ccdf592 100755 --- a/scripts/linux/build_all_duo.sh +++ b/scripts/linux/build_all_duo.sh @@ -2,10 +2,6 @@ set -x -e -# Configure Linux for Duo. -sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" ../../linux/CMakeLists.txt -sed -i "s/${ORIGINAL_NAME}/${NEW_NAME}/g" ../../linux/my_application.cc - # todo: revisit following at some point # libepiccash requires old rust diff --git a/scripts/macos/build_all_duo.sh b/scripts/macos/build_all_duo.sh index f4910ecae..f5cfbeeb1 100755 --- a/scripts/macos/build_all_duo.sh +++ b/scripts/macos/build_all_duo.sh @@ -2,9 +2,6 @@ set -x -e -# Configure macOS for Duo. -sed -i '' 's/com.cypherstack.stackWallet/com.cypherstack.stackDuo/g' ../../macos/Runner.xcodeproj/project.pbxproj - # todo: revisit following at some point # libepiccash requires old rust diff --git a/scripts/windows/build_all_duo.sh b/scripts/windows/build_all_duo.sh index b66e59d4f..6262793dd 100755 --- a/scripts/windows/build_all_duo.sh +++ b/scripts/windows/build_all_duo.sh @@ -2,9 +2,6 @@ set -x -e -# Configure Windows for Duo. -sed -i 's/Stack Wallet/Stack Duo/g' ../../windows/runner/Runner.rc - # todo: revisit following at some point # libepiccash requires old rust diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt index eddd46e4d..b9add856d 100644 --- a/windows/CMakeLists.txt +++ b/windows/CMakeLists.txt @@ -1,10 +1,10 @@ # Project-level configuration. cmake_minimum_required(VERSION 3.14) -project(stack_wallet LANGUAGES CXX) +project(place_holder LANGUAGES CXX) # The name of the executable created for the application. Change this to change # the on-disk name of your application. -set(BINARY_NAME "stack_wallet") +set(BINARY_NAME "place_holder") # Explicitly opt in to modern CMake behaviors to avoid warnings with recent # versions of CMake. diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc index d23cd8ce6..ac822d092 100644 --- a/windows/runner/Runner.rc +++ b/windows/runner/Runner.rc @@ -90,12 +90,12 @@ BEGIN BLOCK "040904e4" BEGIN VALUE "CompanyName", "com.cypherstack" "\0" - VALUE "FileDescription", "Stack Wallet" "\0" + VALUE "FileDescription", "PlaceHolderName" "\0" VALUE "FileVersion", VERSION_AS_STRING "\0" - VALUE "InternalName", "Stack Wallet" "\0" + VALUE "InternalName", "PlaceHolderName" "\0" VALUE "LegalCopyright", "Copyright (C) 2022 com.cypherstack. All rights reserved." "\0" - VALUE "OriginalFilename", "Stack Wallet.exe" "\0" - VALUE "ProductName", "Stack Wallet" "\0" + VALUE "OriginalFilename", "PlaceHolderName.exe" "\0" + VALUE "ProductName", "PlaceHolderName" "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0" END END diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp index 7369685a2..a960708f3 100644 --- a/windows/runner/main.cpp +++ b/windows/runner/main.cpp @@ -27,7 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, FlutterWindow window(project); Win32Window::Point origin(10, 10); Win32Window::Size size(1280, 720); - if (!window.CreateAndShow(L"Stack Wallet", origin, size)) { + if (!window.CreateAndShow(L"PlaceHolderName", origin, size)) { return EXIT_FAILURE; } window.SetQuitOnClose(true); From 0965ab7dcc8f40a53dd38f69b61a8cdfb0412a91 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 18:17:28 -0600 Subject: [PATCH 104/318] Revert "fix: missing pubspec placholder strings" This reverts commit 4cb3786760f853c011826ee315568d63405f0820. --- pubspec.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index 3620b41a7..99f8bb3e3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ -name: stackwallet -description: Stack Wallet +name: PLACEHOLDER +description: PLACEHOLDER # The following defines the version and build number for your application. # A version number is three numbers separated by dots, like 1.2.43 @@ -11,7 +11,7 @@ description: Stack Wallet # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 2.2.2+42 +version: PLACEHOLDER_V+PLACEHOLDER_B environment: sdk: ">=3.3.4 <4.0.0" From e17b1f70c7431054f9048f54094cfc980ba58b30 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 18:18:23 -0600 Subject: [PATCH 105/318] change package to relative imports lint rule --- analysis_options.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analysis_options.yaml b/analysis_options.yaml index c363d17cd..ea46ed3ca 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -82,7 +82,7 @@ linter: # `// ignore_for_file: name_of_lint` syntax on the line or in the file # producing the lint. rules: - always_use_package_imports: true + prefer_relative_imports: true avoid_relative_lib_imports: true no_leading_underscores_for_local_identifiers: false no_leading_underscores_for_library_prefixes: false From 39e4df156a20ae36733b50b7fc109ae4f045ee4b Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 18:22:43 -0600 Subject: [PATCH 106/318] script path fix --- scripts/build_app.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_app.sh b/scripts/build_app.sh index 795adfdbf..c7198fda5 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -68,7 +68,7 @@ if printf '%s\0' "${APP_NAMED_IDS[@]}" | grep -Fxqz -- "${APP_NAMED_ID}"; then "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/link_assets.sh" "${APP_NAMED_ID}" # shellcheck disable=SC1090 source "${APP_PROJECT_ROOT_DIR}/scripts/app_config/configure_${APP_NAMED_ID}.sh" - "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/platforms/${APP_BUILD_PLATFORM}/platform_config.sh" + "${APP_PROJECT_ROOT_DIR}/scripts/app_config/platforms/${APP_BUILD_PLATFORM}/platform_config.sh" else echo "Invalid app id: ${APP_NAMED_ID}" exit 1 From e01b778778d6d2ebaaf8dacb4019693ae4d76aa9 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 18:37:06 -0600 Subject: [PATCH 107/318] dart fix --apply --code=prefer_relative_imports --- lib/app_config.dart | 4 +- lib/db/db_version_migration.dart | 46 +-- lib/db/hive/db.dart | 16 +- lib/db/isar/main_db.dart | 30 +- lib/db/migrate_wallets_to_isar.dart | 22 +- lib/dto/ethereum/eth_token_tx_extra_dto.dart | 6 +- lib/dto/ethereum/eth_tx_dto.dart | 6 +- .../address_inscription_response.dart | 4 +- .../cached_electrumx_client.dart | 8 +- lib/electrumx_rpc/client_manager.dart | 2 +- lib/electrumx_rpc/electrumx_client.dart | 22 +- lib/exceptions/address/address_exception.dart | 2 +- .../electrumx/no_such_transaction.dart | 2 +- .../exchange/exchange_exception.dart | 2 +- .../exchange/majestic_bank/mb_exception.dart | 2 +- .../exchange/pair_unavailable_exception.dart | 2 +- .../unsupported_currency_exception.dart | 2 +- .../json_rpc/json_rpc_exception.dart | 2 +- lib/exceptions/main_db/main_db_exception.dart | 2 +- .../insufficient_balance_exception.dart | 2 +- .../wallet/paynym_send_exception.dart | 2 +- lib/frost_route_generator.dart | 44 +-- lib/main.dart | 90 ++--- .../add_wallet_list_entity.dart | 2 +- .../sub_classes/coin_entity.dart | 4 +- .../sub_classes/eth_token_entity.dart | 8 +- lib/models/address_book_filter.dart | 2 +- lib/models/balance.dart | 4 +- lib/models/buy/buy_form_state.dart | 2 +- lib/models/buy/response_objects/order.dart | 2 +- lib/models/buy/response_objects/quote.dart | 4 +- lib/models/buy/simplex/simplex.dart | 8 +- lib/models/contact.dart | 2 +- lib/models/contact_address_entry.dart | 4 +- lib/models/contact_address_entry_data.dart | 4 +- lib/models/epicbox_config_model.dart | 2 +- lib/models/exchange/active_pair.dart | 2 +- lib/models/exchange/aggregate_currency.dart | 4 +- .../change_now/cn_exchange_estimate.dart | 2 +- .../change_now/estimated_exchange_amount.dart | 2 +- .../change_now/exchange_transaction.dart | 2 +- .../exchange_transaction_status.dart | 2 +- lib/models/exchange/incomplete_exchange.dart | 6 +- .../exchange/majestic_bank/mb_limit.dart | 2 +- .../exchange/majestic_bank/mb_order.dart | 2 +- .../majestic_bank/mb_order_calculation.dart | 2 +- .../majestic_bank/mb_order_status.dart | 2 +- .../exchange/majestic_bank/mb_rate.dart | 2 +- .../exchange/response_objects/estimate.dart | 2 +- .../response_objects/fixed_rate_market.dart | 2 +- .../exchange/response_objects/trade.dart | 4 +- .../exchange/simpleswap/sp_currency.dart | 2 +- lib/models/fusion_progress_ui_state.dart | 2 +- lib/models/isar/exchange_cache/currency.dart | 4 +- lib/models/isar/models/block_explorer.dart | 4 +- .../isar/models/blockchain_data/address.dart | 6 +- .../models/blockchain_data/transaction.dart | 8 +- .../blockchain_data/v2/transaction_v2.dart | 12 +- lib/models/isar/models/contact_entry.dart | 4 +- .../isar/models/ethereum/eth_contract.dart | 2 +- lib/models/isar/models/log.dart | 2 +- lib/models/isar/ordinal.dart | 6 +- lib/models/isar/stack_theme.dart | 12 +- lib/models/node_model.dart | 4 +- lib/models/paynym/paynym_account.dart | 4 +- lib/models/signing_data.dart | 4 +- lib/models/stack_restoring_ui_state.dart | 6 +- lib/models/transaction_filter.dart | 2 +- lib/models/tx_info.dart | 6 +- lib/models/wallet_restore_state.dart | 6 +- lib/networking/http.dart | 2 +- lib/notifications/notification_card.dart | 24 +- lib/notifications/show_flush_bar.dart | 6 +- .../add_token_view/add_custom_token_view.dart | 26 +- .../edit_wallet_tokens_view.dart | 64 +-- .../add_custom_token_selector.dart | 10 +- .../sub_widgets/add_token_list.dart | 6 +- .../sub_widgets/add_token_list_element.dart | 24 +- .../sub_widgets/add_token_text.dart | 2 +- .../add_wallet_view/add_wallet_view.dart | 60 +-- .../sub_widgets/add_wallet_entity_list.dart | 4 +- .../sub_widgets/add_wallet_text.dart | 2 +- .../sub_widgets/coin_select_item.dart | 24 +- .../sub_widgets/expanding_sub_list_item.dart | 16 +- .../sub_widgets/next_button.dart | 12 +- .../create_or_restore_wallet_view.dart | 24 +- .../sub_widgets/coin_image.dart | 6 +- .../create_or_restore_wallet_subtitle.dart | 2 +- .../create_or_restore_wallet_title.dart | 4 +- .../create_wallet_button_group.dart | 12 +- .../new/create_new_frost_ms_wallet_view.dart | 38 +- .../select_new_frost_import_type_view.dart | 32 +- .../new/steps/frost_create_step_1a.dart | 30 +- .../new/steps/frost_create_step_1b.dart | 22 +- .../new/steps/frost_create_step_2.dart | 30 +- .../new/steps/frost_create_step_3.dart | 31 +- .../new/steps/frost_create_step_4.dart | 17 +- .../new/steps/frost_create_step_5.dart | 53 +-- .../reshare/frost_reshare_step_1a.dart | 43 ++- .../reshare/frost_reshare_step_1b.dart | 29 +- .../reshare/frost_reshare_step_1c.dart | 25 +- .../reshare/frost_reshare_step_2abd.dart | 31 +- .../reshare/frost_reshare_step_2c.dart | 17 +- .../reshare/frost_reshare_step_3abd.dart | 27 +- .../reshare/frost_reshare_step_3c.dart | 19 +- .../reshare/frost_reshare_step_4.dart | 35 +- .../reshare/frost_reshare_step_5.dart | 43 ++- .../restore/restore_frost_ms_wallet_view.dart | 69 ++-- .../name_your_wallet_view.dart | 61 +-- .../new_wallet_options_view.dart | 41 +- .../new_wallet_recovery_phrase_view.dart | 41 +- .../sub_widgets/mnemonic_table.dart | 2 +- .../sub_widgets/mnemonic_table_item.dart | 6 +- ...w_wallet_recovery_phrase_warning_view.dart | 51 ++- .../recovery_phrase_explanation_dialog.dart | 6 +- .../confirm_recovery_dialog.dart | 18 +- .../restore_options_view.dart | 54 +-- .../mobile_mnemonic_length_selector.dart | 12 +- .../sub_widgets/restore_from_date_picker.dart | 8 +- .../restore_options_next_button.dart | 4 +- .../restore_options_platform_layout.dart | 2 +- .../restore_wallet_view.dart | 94 ++--- .../mnemonic_word_count_select_sheet.dart | 8 +- .../sub_widgets/restore_failed_dialog.dart | 14 +- .../sub_widgets/restore_succeeded_dialog.dart | 16 +- .../sub_widgets/restoring_dialog.dart | 16 +- .../select_wallet_for_token_view.dart | 40 +- .../sub_widgets/word_table.dart | 2 +- .../sub_widgets/word_table_item.dart | 8 +- .../verify_mnemonic_passphrase_dialog.dart | 28 +- .../verify_recovery_phrase_view.dart | 48 +-- .../address_book_views/address_book_view.dart | 50 +-- .../subviews/add_address_book_entry_view.dart | 50 +-- .../add_new_contact_address_view.dart | 32 +- .../subviews/address_book_filter_view.dart | 28 +- .../subviews/coin_select_sheet.dart | 14 +- .../subviews/contact_details_view.dart | 42 +- .../subviews/contact_popup.dart | 36 +- .../subviews/edit_contact_address_view.dart | 32 +- .../edit_contact_name_emoji_view.dart | 32 +- .../new_contact_address_entry_form.dart | 40 +- lib/pages/buy_view/buy_form.dart | 80 ++-- lib/pages/buy_view/buy_in_wallet_view.dart | 14 +- lib/pages/buy_view/buy_order_details.dart | 22 +- lib/pages/buy_view/buy_quote_preview.dart | 24 +- lib/pages/buy_view/buy_view.dart | 16 +- .../sub_widgets/buy_warning_popup.dart | 32 +- .../sub_widgets/crypto_selection_view.dart | 32 +- .../sub_widgets/fiat_selection_view.dart | 28 +- lib/pages/cashfusion/cashfusion_view.dart | 38 +- .../cashfusion/fusion_progress_view.dart | 34 +- .../fusion_rounds_selection_sheet.dart | 6 +- lib/pages/coin_control/coin_control_view.dart | 50 +-- lib/pages/coin_control/utxo_card.dart | 24 +- lib/pages/coin_control/utxo_details_view.dart | 40 +- .../exchange_view/choose_from_stack_view.dart | 22 +- .../confirm_change_now_send.dart | 60 +-- .../exchange_view/edit_trade_note_view.dart | 20 +- .../exchange_currency_selection_view.dart | 56 +-- lib/pages/exchange_view/exchange_form.dart | 78 ++-- .../exchange_loading_overlay.dart | 10 +- .../exchange_step_views/step_1_view.dart | 20 +- .../exchange_step_views/step_2_view.dart | 54 +-- .../exchange_step_views/step_3_view.dart | 38 +- .../exchange_step_views/step_4_view.dart | 58 +-- lib/pages/exchange_view/exchange_view.dart | 26 +- lib/pages/exchange_view/send_from_view.dart | 62 +-- .../sub_widgets/exchange_provider_option.dart | 38 +- .../exchange_provider_options.dart | 22 +- .../sub_widgets/rate_type_toggle.dart | 14 +- .../sub_widgets/step_indicator.dart | 6 +- .../exchange_view/sub_widgets/step_row.dart | 4 +- .../exchange_view/trade_details_view.dart | 74 ++-- .../wallet_initiated_exchange_view.dart | 26 +- lib/pages/generic/single_field_edit_view.dart | 26 +- lib/pages/home_view/home_view.dart | 44 +-- .../sub_widgets/home_view_button_bar.dart | 6 +- lib/pages/intro_view.dart | 20 +- lib/pages/loading_view.dart | 12 +- .../manage_favorites_view.dart | 20 +- lib/pages/monkey/monkey_view.dart | 42 +- .../sub_widgets/fetch_monkey_dialog.dart | 16 +- .../notifications_view.dart | 16 +- lib/pages/ordinals/ordinal_details_view.dart | 38 +- lib/pages/ordinals/ordinals_filter_view.dart | 34 +- lib/pages/ordinals/ordinals_view.dart | 18 +- lib/pages/ordinals/widgets/dialogs.dart | 10 +- lib/pages/ordinals/widgets/ordinal_card.dart | 14 +- lib/pages/ordinals/widgets/ordinals_list.dart | 14 +- .../paynym/add_new_paynym_follow_view.dart | 48 +-- .../dialogs/claiming_paynym_dialog.dart | 16 +- .../confirm_paynym_connect_dialog.dart | 24 +- .../paynym/dialogs/paynym_details_popup.dart | 48 +-- lib/pages/paynym/dialogs/paynym_qr_popup.dart | 20 +- lib/pages/paynym/paynym_claim_view.dart | 34 +- lib/pages/paynym/paynym_home_view.dart | 52 +-- .../subwidgets/desktop_paynym_details.dart | 44 +-- .../subwidgets/featured_paynyms_widget.dart | 12 +- lib/pages/paynym/subwidgets/paynym_bot.dart | 6 +- lib/pages/paynym/subwidgets/paynym_card.dart | 12 +- .../paynym/subwidgets/paynym_card_button.dart | 20 +- .../subwidgets/paynym_followers_list.dart | 24 +- .../subwidgets/paynym_following_list.dart | 24 +- lib/pages/pinpad_views/create_pin_view.dart | 24 +- lib/pages/pinpad_views/lock_screen_view.dart | 36 +- .../receive_view/addresses/address_card.dart | 36 +- .../addresses/address_details_view.dart | 48 +-- .../addresses/address_qr_popup.dart | 22 +- .../receive_view/addresses/address_tag.dart | 6 +- .../addresses/edit_address_label_view.dart | 28 +- .../addresses/wallet_addresses_view.dart | 24 +- .../generate_receiving_uri_qr_code_view.dart | 44 +-- lib/pages/receive_view/receive_view.dart | 58 +-- .../send_view/confirm_transaction_view.dart | 74 ++-- .../send_view/frost_ms/frost_send_view.dart | 64 +-- lib/pages/send_view/frost_ms/recipient.dart | 42 +- .../send_steps/frost_send_step_1a.dart | 28 +- .../send_steps/frost_send_step_1b.dart | 32 +- .../send_steps/frost_send_step_2.dart | 34 +- .../send_steps/frost_send_step_3.dart | 34 +- .../send_steps/frost_send_step_4.dart | 40 +- lib/pages/send_view/send_view.dart | 114 +++--- .../building_transaction_dialog.dart | 16 +- .../firo_balance_selection_sheet.dart | 14 +- .../sending_transaction_dialog.dart | 16 +- .../transaction_fee_selection_sheet.dart | 42 +- lib/pages/send_view/token_send_view.dart | 82 ++-- .../global_settings_view/about_view.dart | 20 +- .../advanced_settings_view.dart | 26 +- .../advanced_views/debug_view.dart | 42 +- .../manage_coin_units/choose_unit_sheet.dart | 12 +- .../edit_coin_units_view.dart | 40 +- .../manage_coin_units_view.dart | 30 +- .../advanced_views/manage_explorer_view.dart | 14 +- .../appearance_settings_view.dart | 22 +- .../appearance_settings/manage_themes.dart | 34 +- .../install_theme_from_file_dialog.dart | 20 +- .../sub_widgets/stack_theme_card.dart | 32 +- .../sub_widgets/theme_option.dart | 6 +- .../sub_widgets/theme_options_widget.dart | 24 +- ...ystem_brightness_theme_selection_view.dart | 18 +- .../global_settings_view/currency_view.dart | 34 +- .../delete_account_view.dart | 22 +- .../global_settings_view.dart | 46 +-- .../global_settings_view/hidden_settings.dart | 26 +- .../global_settings_view/language_view.dart | 26 +- .../add_edit_node_view.dart | 54 +-- .../manage_nodes_views/coin_nodes_view.dart | 26 +- .../manage_nodes_views/manage_nodes_view.dart | 22 +- .../manage_nodes_views/node_details_view.dart | 36 +- .../change_pin_view/change_pin_view.dart | 22 +- .../security_views/security_view.dart | 22 +- .../stack_backup_views/auto_backup_view.dart | 34 +- .../create_auto_backup_view.dart | 40 +- .../create_backup_information_view.dart | 12 +- .../create_backup_view.dart | 38 +- .../dialogs/cancel_stack_restore_dialog.dart | 16 +- .../edit_auto_backup_view.dart | 48 +-- .../helpers/restore_create_backup.dart | 72 ++-- .../helpers/swb_file_system.dart | 2 +- .../restore_from_encrypted_string_view.dart | 26 +- .../restore_from_file_view.dart | 42 +- .../stack_backup_views/stack_backup_view.dart | 20 +- .../backup_frequency_type_select_sheet.dart | 10 +- .../sub_views/recovery_phrase_view.dart | 14 +- .../stack_restore_progress_view.dart | 54 +-- .../sub_widgets/restoring_item_card.dart | 6 +- .../sub_widgets/restoring_wallet_card.dart | 28 +- .../startup_preferences_view.dart | 22 +- .../startup_wallet_selection_view.dart | 22 +- .../global_settings_view/support_view.dart | 20 +- .../syncing_options_view.dart | 26 +- .../syncing_preferences_view.dart | 20 +- .../wallet_syncing_options_view.dart | 28 +- .../tor_settings/tor_settings_view.dart | 34 +- .../sub_widgets/nodes_list.dart | 6 +- .../sub_widgets/settings_list_button.dart | 6 +- .../frost_ms/frost_ms_options_view.dart | 42 +- .../frost_ms/frost_participants_view.dart | 28 +- .../complete_reshare_config_view.dart | 44 +-- .../initiate_resharing_view.dart | 30 +- .../wallet_backup_view.dart | 36 +- .../sub_widgets/confirm_full_rescan.dart | 16 +- .../sub_widgets/rescanning_dialog.dart | 10 +- .../wallet_network_settings_view.dart | 76 ++-- .../wallet_settings_view.dart | 76 ++-- .../change_representative_view.dart | 42 +- .../delete_wallet_recovery_phrase_view.dart | 42 +- .../delete_wallet_warning_view.dart | 18 +- .../rename_wallet_view.dart | 24 +- .../wallet_settings_wallet_settings_view.dart | 24 +- .../xpub_view.dart | 34 +- .../firo_rescan_recovery_error_dialog.dart | 44 +-- lib/pages/stack_privacy_calls.dart | 36 +- lib/pages/token_view/my_tokens_view.dart | 28 +- .../sub_widgets/my_token_select_item.dart | 48 +-- .../sub_widgets/my_tokens_list.dart | 8 +- .../sub_widgets/no_tokens_found.dart | 4 +- .../token_view/sub_widgets/token_summary.dart | 48 +-- .../token_transaction_list_widget.dart | 20 +- .../token_contract_details_view.dart | 20 +- lib/pages/token_view/token_view.dart | 28 +- .../sub_widgets/no_transactions_found.dart | 4 +- .../sub_widgets/transactions_list.dart | 38 +- .../wallet_view/sub_widgets/tx_icon.dart | 14 +- .../wallet_balance_toggle_sheet.dart | 24 +- .../sub_widgets/wallet_refresh_button.dart | 16 +- .../sub_widgets/wallet_summary.dart | 6 +- .../sub_widgets/wallet_summary_info.dart | 36 +- .../all_transactions_view.dart | 70 ++-- ...ancelling_transaction_progress_dialog.dart | 4 +- .../transaction_views/edit_note_view.dart | 30 +- .../transaction_details_view.dart | 88 ++--- .../transaction_search_filter_view.dart | 50 +-- .../tx_v2/all_transactions_v2_view.dart | 68 ++-- .../tx_v2/fusion_group_details_view.dart | 22 +- .../tx_v2/fusion_tx_group_card.dart | 20 +- .../tx_v2/transaction_v2_card.dart | 42 +- .../tx_v2/transaction_v2_details_view.dart | 90 ++--- .../tx_v2/transaction_v2_list.dart | 26 +- .../tx_v2/transaction_v2_list_item.dart | 30 +- lib/pages/wallet_view/wallet_view.dart | 164 ++++---- .../wallets_view/sub_widgets/all_wallets.dart | 12 +- .../sub_widgets/empty_wallets.dart | 12 +- .../sub_widgets/favorite_card.dart | 32 +- .../sub_widgets/favorite_wallets.dart | 16 +- .../sub_widgets/wallet_list_item.dart | 30 +- lib/pages/wallets_view/wallets_overview.dart | 50 +-- lib/pages/wallets_view/wallets_view.dart | 12 +- .../desktop_address_book.dart | 60 +-- .../subwidgets/desktop_address_card.dart | 24 +- .../subwidgets/desktop_contact_details.dart | 38 +- .../desktop_contact_options_menu_popup.dart | 20 +- .../desktop_wallet_addresses_view.dart | 20 +- .../sub_widgets/desktop_address_list.dart | 28 +- .../cashfusion/desktop_cashfusion_view.dart | 42 +- .../cashfusion/sub_widgets/fusion_dialog.dart | 32 +- .../sub_widgets/fusion_progress.dart | 18 +- .../desktop_coin_control_use_dialog.dart | 48 +-- .../desktop_coin_control_view.dart | 44 +-- .../coin_control/freeze_button.dart | 10 +- .../coin_control/utxo_row.dart | 28 +- .../desktop_buy/desktop_buy_view.dart | 20 +- .../desktop_all_trades_view.dart | 50 +-- .../desktop_exchange_view.dart | 28 +- .../exchange_steps/step_scaffold.dart | 54 +-- .../subwidgets/desktop_step_1.dart | 14 +- .../subwidgets/desktop_step_2.dart | 42 +- .../subwidgets/desktop_step_3.dart | 14 +- .../subwidgets/desktop_step_4.dart | 16 +- .../subwidgets/desktop_step_item.dart | 6 +- .../subwidgets/desktop_choose_from_stack.dart | 34 +- .../desktop_exchange_steps_indicator.dart | 6 +- .../subwidgets/desktop_trade_history.dart | 26 +- .../desktop_home_view.dart | 42 +- lib/pages_desktop_specific/desktop_menu.dart | 18 +- .../desktop_menu_item.dart | 14 +- .../lelantus_coins/lelantus_coins_view.dart | 18 +- .../my_stack_view/coin_wallets_table.dart | 22 +- .../desktop_favorite_wallets.dart | 16 +- .../desktop_expanding_wallet_card.dart | 24 +- .../exit_to_my_stack_button.dart | 8 +- .../my_stack_view/my_stack_view.dart | 20 +- .../my_stack_view/my_wallets.dart | 14 +- .../paynym/desktop_paynym_send_dialog.dart | 34 +- .../my_stack_view/wallet_summary_table.dart | 26 +- .../wallet_view/desktop_token_view.dart | 40 +- .../wallet_view/desktop_wallet_view.dart | 64 +-- .../address_book_address_chooser.dart | 24 +- .../sub_widgets/contact_list_item.dart | 18 +- .../sub_widgets/delete_wallet_keys_popup.dart | 28 +- .../desktop_attention_delete_wallet.dart | 22 +- .../sub_widgets/desktop_auth_send.dart | 20 +- .../desktop_balance_toggle_button.dart | 14 +- .../desktop_delete_wallet_dialog.dart | 26 +- .../sub_widgets/desktop_fee_dropdown.dart | 42 +- .../sub_widgets/desktop_receive.dart | 48 +-- .../wallet_view/sub_widgets/desktop_send.dart | 120 +++--- .../sub_widgets/desktop_token_send.dart | 76 ++-- .../sub_widgets/desktop_wallet_features.dart | 66 ++-- .../sub_widgets/desktop_wallet_summary.dart | 32 +- .../more_features/more_features_dialog.dart | 28 +- .../wallet_view/sub_widgets/my_wallet.dart | 30 +- .../sub_widgets/network_info_button.dart | 24 +- .../qr_code_desktop_popup_content.dart | 6 +- .../unlock_wallet_keys_desktop.dart | 32 +- .../sub_widgets/wallet_keys_button.dart | 10 +- .../wallet_keys_desktop_popup.dart | 28 +- .../sub_widgets/wallet_options_button.dart | 32 +- .../desktop_notifications_view.dart | 16 +- .../desktop_ordinal_details_view.dart | 42 +- .../ordinals/desktop_ordinals_view.dart | 22 +- .../password/create_password_view.dart | 32 +- .../delete_password_warning_view.dart | 24 +- .../password/desktop_login_view.dart | 44 +-- .../forgot_password_desktop_view.dart | 20 +- ...forgotten_passphrase_restore_from_swb.dart | 46 +-- .../settings/desktop_settings_view.dart | 30 +- .../settings/settings_menu.dart | 6 +- .../advanced_settings/advanced_settings.dart | 22 +- .../advanced_settings/debug_info_dialog.dart | 34 +- ...desktop_manage_block_explorers_dialog.dart | 28 +- .../stack_privacy_dialog.dart | 30 +- .../appearance_settings.dart | 26 +- .../sub_widgets/desktop_install_theme.dart | 18 +- .../sub_widgets/desktop_manage_themes.dart | 16 +- .../sub_widgets/desktop_themes_gallery.dart | 18 +- .../backup_and_restore_settings.dart | 46 +-- .../create_auto_backup.dart | 42 +- .../enable_backup_dialog.dart | 14 +- .../currency_settings/currency_settings.dart | 14 +- .../settings_menu/desktop_about_view.dart | 16 +- .../settings_menu/desktop_support_view.dart | 10 +- .../language_settings/language_dialog.dart | 28 +- .../language_settings/language_settings.dart | 10 +- .../settings_menu/nodes_settings.dart | 30 +- .../settings_menu/security_settings.dart | 22 +- .../syncing_preferences_settings.dart | 18 +- .../tor_settings/tor_settings.dart | 30 +- .../settings/settings_menu_item.dart | 4 +- .../spark_coins/spark_coins_view.dart | 18 +- .../buy/buy_form_state_provider.dart | 2 +- lib/providers/buy/simplex_provider.dart | 2 +- .../fusion_progress_ui_state_provider.dart | 2 +- lib/providers/db/main_db_provider.dart | 2 +- .../desktop/current_desktop_menu_item.dart | 2 +- .../storage_crypto_handler_provider.dart | 2 +- .../exchange_form_state_provider.dart | 22 +- ...exchange_send_from_wallet_id_provider.dart | 2 +- .../exchange/trade_note_service_provider.dart | 2 +- ...trade_sent_from_stack_lookup_provider.dart | 2 +- .../frost_wallet/frost_wallet_providers.dart | 6 +- .../global/address_book_service_provider.dart | 2 +- .../global/auto_swb_service_provider.dart | 4 +- .../global/base_currencies_provider.dart | 2 +- .../global/debug_service_provider.dart | 2 +- lib/providers/global/http_provider.dart | 2 +- lib/providers/global/locale_provider.dart | 2 +- .../global/node_service_provider.dart | 4 +- .../global/notifications_provider.dart | 2 +- lib/providers/global/paynym_api_provider.dart | 2 +- lib/providers/global/prefs_provider.dart | 2 +- lib/providers/global/price_provider.dart | 4 +- .../global/secure_store_provider.dart | 6 +- .../global/trades_service_provider.dart | 2 +- lib/providers/global/wallets_provider.dart | 6 +- .../stack_restoring_ui_state_provider.dart | 2 +- .../ui/add_wallet_selected_coin_provider.dart | 2 +- .../address_book_filter_provider.dart | 2 +- .../address_entry_data_provider.dart | 2 +- .../valid_contact_state_provider.dart | 2 +- .../ui/fee_rate_type_state_provider.dart | 2 +- .../ui/preview_tx_button_state_provider.dart | 8 +- ...selected_paynym_details_item_Provider.dart | 2 +- .../ui/transaction_filter_provider.dart | 2 +- .../my_paynym_account_state_provider.dart | 2 +- .../wallet/transaction_note_provider.dart | 4 +- .../wallet_balance_toggle_state_provider.dart | 2 +- lib/route_generator.dart | 364 +++++++++--------- lib/services/address_book_service.dart | 4 +- lib/services/auto_swb_service.dart | 8 +- lib/services/buy/simplex/simplex_api.dart | 22 +- lib/services/coins/bitcoincash/bch_utils.dart | 2 +- lib/services/coins/tezos/api/tezos_api.dart | 12 +- .../coins/tezos/api/tezos_rpc_api.dart | 8 +- lib/services/debug_service.dart | 4 +- .../ethereum/cached_eth_token_balance.dart | 14 +- lib/services/ethereum/ethereum_api.dart | 30 +- .../global/balance_refreshed_event.dart | 2 +- .../events/global/blocks_remaining_event.dart | 2 +- .../node_connection_status_changed_event.dart | 4 +- .../global/refresh_percent_changed_event.dart | 2 +- .../tor_connection_status_changed_event.dart | 2 +- .../global/tor_status_changed_event.dart | 2 +- .../global/updated_in_background_event.dart | 2 +- .../wallet_sync_status_changed_event.dart | 4 +- .../exchange/change_now/change_now_api.dart | 38 +- .../change_now/change_now_exchange.dart | 18 +- lib/services/exchange/exchange.dart | 20 +- .../exchange_data_loading_service.dart | 24 +- lib/services/exchange/exchange_response.dart | 2 +- .../majestic_bank/majestic_bank_api.dart | 26 +- .../majestic_bank/majestic_bank_exchange.dart | 22 +- .../exchange/simpleswap/simpleswap_api.dart | 26 +- .../simpleswap/simpleswap_exchange.dart | 16 +- .../response_objects/trocador_rate.dart | 2 +- .../exchange/trocador/trocador_api.dart | 20 +- .../exchange/trocador/trocador_exchange.dart | 22 +- lib/services/frost.dart | 10 +- lib/services/fusion_tor_service.dart | 2 +- lib/services/litescribe_api.dart | 10 +- lib/services/mixins/wallet_db.dart | 2 +- lib/services/monkey_service.dart | 8 +- lib/services/nano_api.dart | 6 +- lib/services/node_service.dart | 14 +- lib/services/notifications_api.dart | 6 +- lib/services/notifications_service.dart | 30 +- lib/services/price.dart | 14 +- lib/services/price_service.dart | 12 +- lib/services/tor_service.dart | 6 +- lib/services/trade_notes_service.dart | 2 +- .../trade_sent_from_stack_service.dart | 4 +- lib/services/trade_service.dart | 4 +- .../transaction_notification_tracker.dart | 2 +- lib/services/wallets.dart | 30 +- lib/services/wallets_service.dart | 6 +- lib/themes/coin_card_provider.dart | 6 +- lib/themes/coin_icon_provider.dart | 28 +- lib/themes/coin_image_provider.dart | 6 +- lib/themes/stack_colors.dart | 2 +- lib/themes/theme_providers.dart | 8 +- lib/themes/theme_service.dart | 14 +- lib/utilities/address_utils.dart | 8 +- lib/utilities/amount/amount.dart | 2 +- lib/utilities/amount/amount_formatter.dart | 12 +- .../amount/amount_input_formatter.dart | 4 +- lib/utilities/amount/amount_unit.dart | 16 +- lib/utilities/assets.dart | 8 +- lib/utilities/biometrics.dart | 2 +- lib/utilities/bip47_utils.dart | 4 +- lib/utilities/block_explorers.dart | 6 +- .../electrum_connection_check.dart | 8 +- lib/utilities/constants.dart | 2 +- lib/utilities/default_epicboxes.dart | 2 +- lib/utilities/default_eth_tokens.dart | 2 +- lib/utilities/default_nodes.dart | 2 +- lib/utilities/desktop_password_service.dart | 2 +- .../enums/derive_path_type_enum.dart | 2 +- lib/utilities/eth_commons.dart | 4 +- .../extensions/impl/contract_abi.dart | 2 +- lib/utilities/extensions/impl/gradient.dart | 2 +- lib/utilities/extensions/impl/string.dart | 2 +- lib/utilities/featured_paynyms.dart | 2 +- .../flutter_secure_storage_interface.dart | 4 +- lib/utilities/format.dart | 4 +- lib/utilities/logger.dart | 6 +- lib/utilities/paynym_is_api.dart | 18 +- lib/utilities/prefs.dart | 22 +- lib/utilities/show_loading.dart | 6 +- lib/utilities/stack_file_system.dart | 4 +- lib/utilities/test_epic_box_connection.dart | 10 +- .../test_monero_node_connection.dart | 10 +- lib/utilities/test_node_connection.dart | 40 +- .../test_stellar_node_connection.dart | 6 +- lib/utilities/text_styles.dart | 2 +- lib/wallets/api/lelantus_ffi_wrapper.dart | 22 +- lib/wallets/api/tezos/tezos_api.dart | 12 +- lib/wallets/api/tezos/tezos_rpc_api.dart | 8 +- lib/wallets/crypto_currency/coins/banano.dart | 12 +- .../crypto_currency/coins/bitcoin.dart | 18 +- .../crypto_currency/coins/bitcoin_frost.dart | 16 +- .../crypto_currency/coins/bitcoincash.dart | 16 +- .../crypto_currency/coins/dogecoin.dart | 16 +- lib/wallets/crypto_currency/coins/ecash.dart | 16 +- .../crypto_currency/coins/epiccash.dart | 12 +- .../crypto_currency/coins/ethereum.dart | 12 +- lib/wallets/crypto_currency/coins/firo.dart | 18 +- .../crypto_currency/coins/litecoin.dart | 16 +- lib/wallets/crypto_currency/coins/monero.dart | 10 +- .../crypto_currency/coins/namecoin.dart | 16 +- lib/wallets/crypto_currency/coins/nano.dart | 12 +- .../crypto_currency/coins/particl.dart | 16 +- .../crypto_currency/coins/peercoin.dart | 16 +- lib/wallets/crypto_currency/coins/solana.dart | 12 +- .../crypto_currency/coins/stellar.dart | 12 +- lib/wallets/crypto_currency/coins/tezos.dart | 12 +- .../crypto_currency/coins/wownero.dart | 10 +- .../crypto_currency/crypto_currency.dart | 6 +- .../electrumx_currency_interface.dart | 2 +- .../interfaces/paynym_currency_interface.dart | 6 +- .../intermediate/bip39_currency.dart | 2 +- .../intermediate/bip39_hd_currency.dart | 8 +- .../intermediate/cryptonote_currency.dart | 4 +- .../intermediate/frost_currency.dart | 4 +- .../intermediate/nano_currency.dart | 2 +- .../isar/models/frost_wallet_info.dart | 2 +- .../isar/models/token_wallet_info.dart | 8 +- lib/wallets/isar/models/wallet_info.dart | 12 +- lib/wallets/isar/models/wallet_info_meta.dart | 2 +- .../providers/all_wallets_info_provider.dart | 8 +- .../eth/current_token_wallet_provider.dart | 2 +- .../providers/eth/token_balance_provider.dart | 10 +- .../providers/favourite_wallets_provider.dart | 8 +- lib/wallets/isar/providers/util/watcher.dart | 2 +- .../isar/providers/wallet_info_provider.dart | 10 +- .../models/incomplete_frost_wallet.dart | 16 +- lib/wallets/models/tx_data.dart | 12 +- lib/wallets/models/tx_recipient.dart | 2 +- lib/wallets/wallet/impl/banano_wallet.dart | 12 +- .../wallet/impl/bitcoin_frost_wallet.dart | 44 +-- lib/wallets/wallet/impl/bitcoin_wallet.dart | 18 +- .../wallet/impl/bitcoincash_wallet.dart | 38 +- lib/wallets/wallet/impl/dogecoin_wallet.dart | 28 +- lib/wallets/wallet/impl/ecash_wallet.dart | 38 +- lib/wallets/wallet/impl/epiccash_wallet.dart | 52 +-- lib/wallets/wallet/impl/ethereum_wallet.dart | 38 +- lib/wallets/wallet/impl/firo_wallet.dart | 36 +- lib/wallets/wallet/impl/litecoin_wallet.dart | 30 +- lib/wallets/wallet/impl/monero_wallet.dart | 24 +- lib/wallets/wallet/impl/namecoin_wallet.dart | 26 +- lib/wallets/wallet/impl/nano_wallet.dart | 10 +- lib/wallets/wallet/impl/particl_wallet.dart | 34 +- lib/wallets/wallet/impl/peercoin_wallet.dart | 26 +- lib/wallets/wallet/impl/solana_wallet.dart | 26 +- lib/wallets/wallet/impl/stellar_wallet.dart | 38 +- .../impl/sub_wallets/eth_token_wallet.dart | 38 +- lib/wallets/wallet/impl/tezos_wallet.dart | 36 +- lib/wallets/wallet/impl/wownero_wallet.dart | 24 +- .../wallet/intermediate/bip39_hd_wallet.dart | 14 +- .../wallet/intermediate/bip39_wallet.dart | 8 +- .../intermediate/cryptonote_wallet.dart | 8 +- .../epiccash_wallet_info_extension.dart | 4 +- lib/wallets/wallet/wallet.dart | 134 +++---- .../bcash_interface.dart | 22 +- .../cash_fusion_interface.dart | 28 +- .../coin_control_interface.dart | 4 +- .../cw_based_interface.dart | 28 +- .../electrumx_interface.dart | 44 +-- .../lelantus_interface.dart | 28 +- .../mnemonic_interface.dart | 6 +- .../multi_address_interface.dart | 4 +- .../nano_interface.dart | 30 +- .../ordinals_interface.dart | 14 +- .../paynym_interface.dart | 40 +- .../private_key_interface.dart | 6 +- .../spark_interface.dart | 32 +- lib/widgets/address_book_card.dart | 28 +- .../animated_widgets/rotating_arrows.dart | 4 +- lib/widgets/app_bar_field.dart | 2 +- lib/widgets/background.dart | 6 +- lib/widgets/choose_coin_view.dart | 20 +- lib/widgets/coin_card.dart | 10 +- lib/widgets/crypto_notifications.dart | 8 +- .../custom_buttons/app_bar_icon_button.dart | 6 +- .../custom_buttons/blue_text_button.dart | 10 +- .../custom_buttons/checkbox_text_button.dart | 2 +- .../draggable_switch_button.dart | 2 +- .../custom_buttons/dropdown_button.dart | 16 +- .../custom_buttons/favorite_toggle.dart | 6 +- .../frost_qr_dialog_button.dart | 12 +- .../paynym_follow_toggle_button.dart | 26 +- .../custom_buttons/simple_copy_button.dart | 8 +- .../custom_buttons/simple_edit_button.dart | 14 +- lib/widgets/custom_loading_overlay.dart | 10 +- .../custom_page_view/custom_page_view.dart | 2 +- .../custom_pin_put/custom_pin_put.dart | 4 +- .../custom_pin_put/custom_pin_put_state.dart | 4 +- lib/widgets/custom_pin_put/pin_keyboard.dart | 6 +- lib/widgets/custom_tab_view.dart | 4 +- lib/widgets/date_picker/date_picker.dart | 12 +- lib/widgets/desktop/custom_text_button.dart | 2 +- lib/widgets/desktop/delete_button.dart | 10 +- lib/widgets/desktop/desktop_app_bar.dart | 2 +- lib/widgets/desktop/desktop_dialog.dart | 2 +- .../desktop/desktop_dialog_close_button.dart | 6 +- lib/widgets/desktop/desktop_fee_dialog.dart | 42 +- lib/widgets/desktop/desktop_scaffold.dart | 4 +- .../desktop/desktop_tor_status_button.dart | 14 +- lib/widgets/desktop/living_stack_icon.dart | 2 +- lib/widgets/desktop/outline_blue_button.dart | 8 +- lib/widgets/desktop/paynym_search_button.dart | 6 +- lib/widgets/desktop/primary_button.dart | 8 +- lib/widgets/desktop/secondary_button.dart | 8 +- .../desktop/simple_desktop_dialog.dart | 8 +- lib/widgets/detail_item.dart | 10 +- lib/widgets/dialogs/basic_dialog.dart | 10 +- .../dialogs/frost/frost_error_dialog.dart | 8 +- .../frost/frost_step_explanation_dialog.dart | 6 +- .../dialogs/frost/frost_step_qr_dialog.dart | 20 +- lib/widgets/dialogs/simple_mobile_dialog.dart | 4 +- lib/widgets/dialogs/tor_warning_dialog.dart | 8 +- lib/widgets/emoji_select_sheet.dart | 20 +- lib/widgets/eth_wallet_radio.dart | 10 +- .../exchange/trocador/trocador_kyc_icon.dart | 6 +- .../trocador/trocador_kyc_info_button.dart | 6 +- lib/widgets/expandable2.dart | 4 +- lib/widgets/fee_slider.dart | 6 +- lib/widgets/frost_mascot.dart | 4 +- lib/widgets/frost_scaffold.dart | 22 +- lib/widgets/frost_step_user_steps.dart | 6 +- lib/widgets/hover_text_field.dart | 14 +- .../icon_widgets/addressbook_icon.dart | 4 +- lib/widgets/icon_widgets/clipboard_icon.dart | 4 +- lib/widgets/icon_widgets/copy_icon.dart | 4 +- lib/widgets/icon_widgets/dice_icon.dart | 4 +- lib/widgets/icon_widgets/eth_token_icon.dart | 10 +- lib/widgets/icon_widgets/pencil_icon.dart | 4 +- lib/widgets/icon_widgets/qrcode_icon.dart | 4 +- lib/widgets/icon_widgets/share_icon.dart | 4 +- .../icon_widgets/utxo_status_icon.dart | 8 +- lib/widgets/icon_widgets/x_icon.dart | 4 +- lib/widgets/loading_indicator.dart | 4 +- lib/widgets/managed_favorite.dart | 26 +- lib/widgets/master_wallet_card.dart | 20 +- lib/widgets/node_card.dart | 40 +- lib/widgets/node_options_sheet.dart | 40 +- .../tor_has_been_add_dialog.dart | 18 +- lib/widgets/rounded_container.dart | 4 +- lib/widgets/rounded_white_container.dart | 4 +- lib/widgets/small_tor_icon.dart | 14 +- lib/widgets/stack_dialog.dart | 6 +- lib/widgets/stack_text_field.dart | 6 +- lib/widgets/table_view/table_view_row.dart | 6 +- .../textfields/exchange_textfield.dart | 18 +- lib/widgets/textfields/frost_step_field.dart | 20 +- lib/widgets/toggle.dart | 6 +- lib/widgets/tor_subscription.dart | 4 +- lib/widgets/trade_card.dart | 18 +- lib/widgets/transaction_card.dart | 34 +- lib/widgets/trocador_kyc_rating_info.dart | 18 +- lib/widgets/wallet_card.dart | 42 +- .../sub_widgets/wallet_info_row_balance.dart | 18 +- .../wallet_info_row_coin_icon.dart | 14 +- .../wallet_info_row/wallet_info_row.dart | 20 +- .../components/icons/buy_nav_icon.dart | 2 +- .../icons/coin_control_nav_icon.dart | 4 +- .../components/icons/exchange_nav_icon.dart | 2 +- .../components/icons/frost_sign_nav_icon.dart | 4 +- .../components/icons/fusion_nav_icon.dart | 4 +- .../components/icons/ordinals_nav_icon.dart | 4 +- .../components/icons/paynym_nav_icon.dart | 4 +- .../components/icons/receive_nav_icon.dart | 4 +- .../components/icons/send_nav_icon.dart | 4 +- .../components/icons/whirlpool_nav_icon.dart | 4 +- .../wallet_navigation_bar_item.dart | 8 +- .../wallet_navigation_bar.dart | 10 +- 726 files changed, 7366 insertions(+), 7353 deletions(-) diff --git a/lib/app_config.dart b/lib/app_config.dart index 998fae02d..abdf2ac9b 100644 --- a/lib/app_config.dart +++ b/lib/app_config.dart @@ -1,5 +1,5 @@ -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; +import 'wallets/crypto_currency/crypto_currency.dart'; +import 'wallets/crypto_currency/intermediate/frost_currency.dart'; part 'app_config.g.dart'; diff --git a/lib/db/db_version_migration.dart b/lib/db/db_version_migration.dart index 333ddfabc..6d2cecd3a 100644 --- a/lib/db/db_version_migration.dart +++ b/lib/db/db_version_migration.dart @@ -10,31 +10,31 @@ import 'package:hive/hive.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/db/migrate_wallets_to_isar.dart'; -import 'package:stackwallet/electrumx_rpc/electrumx_client.dart'; -import 'package:stackwallet/models/contact.dart'; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart' - as isar_contact; -import 'package:stackwallet/models/isar/models/isar_models.dart' as isar_models; -import 'package:stackwallet/models/models.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/services/mixins/wallet_db.dart'; -import 'package:stackwallet/services/node_service.dart'; -import 'package:stackwallet/services/wallets_service.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; +import '../app_config.dart'; +import '../electrumx_rpc/electrumx_client.dart'; +import '../models/contact.dart'; +import '../models/exchange/change_now/exchange_transaction.dart'; +import '../models/exchange/response_objects/trade.dart'; +import '../models/isar/models/blockchain_data/address.dart'; +import '../models/isar/models/contact_entry.dart' as isar_contact; +import '../models/isar/models/isar_models.dart' as isar_models; +import '../models/models.dart'; +import '../models/node_model.dart'; +import '../services/mixins/wallet_db.dart'; +import '../services/node_service.dart'; +import '../services/wallets_service.dart'; +import '../utilities/amount/amount.dart'; +import '../utilities/constants.dart'; +import '../utilities/flutter_secure_storage_interface.dart'; +import '../utilities/logger.dart'; +import '../utilities/prefs.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import 'hive/db.dart'; +import 'isar/main_db.dart'; +import 'migrate_wallets_to_isar.dart'; + class DbVersionMigrator with WalletDB { Future migrate( int fromVersion, { diff --git a/lib/db/hive/db.dart b/lib/db/hive/db.dart index 22722d6af..3f1c86cb7 100644 --- a/lib/db/hive/db.dart +++ b/lib/db/hive/db.dart @@ -13,14 +13,14 @@ import 'dart:isolate'; import 'package:cw_core/wallet_info.dart' as xmr; import 'package:hive/hive.dart'; import 'package:mutex/mutex.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/models/notification_model.dart'; -import 'package:stackwallet/models/trade_wallet_lookup.dart'; -import 'package:stackwallet/services/wallets_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../app_config.dart'; +import '../../models/exchange/response_objects/trade.dart'; +import '../../models/node_model.dart'; +import '../../models/notification_model.dart'; +import '../../models/trade_wallet_lookup.dart'; +import '../../services/wallets_service.dart'; +import '../../utilities/logger.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; class DB { // legacy (required for migrations) diff --git a/lib/db/isar/main_db.dart b/lib/db/isar/main_db.dart index 62673b004..931f18263 100644 --- a/lib/db/isar/main_db.dart +++ b/lib/db/isar/main_db.dart @@ -11,21 +11,21 @@ import 'package:decimal/decimal.dart'; import 'package:flutter_native_splash/cli_commands.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/exceptions/main_db/main_db_exception.dart'; -import 'package:stackwallet/models/isar/models/block_explorer.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/isar/ordinal.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; -import 'package:stackwallet/wallets/isar/models/spark_coin.dart'; -import 'package:stackwallet/wallets/isar/models/token_wallet_info.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info_meta.dart'; +import '../../exceptions/main_db/main_db_exception.dart'; +import '../../models/isar/models/block_explorer.dart'; +import '../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../models/isar/models/contact_entry.dart'; +import '../../models/isar/models/isar_models.dart'; +import '../../models/isar/ordinal.dart'; +import '../../models/isar/stack_theme.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/stack_file_system.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/isar/models/frost_wallet_info.dart'; +import '../../wallets/isar/models/spark_coin.dart'; +import '../../wallets/isar/models/token_wallet_info.dart'; +import '../../wallets/isar/models/wallet_info.dart'; +import '../../wallets/isar/models/wallet_info_meta.dart'; import 'package:tuple/tuple.dart'; part '../queries/queries.dart'; diff --git a/lib/db/migrate_wallets_to_isar.dart b/lib/db/migrate_wallets_to_isar.dart index 810185463..ba49c9453 100644 --- a/lib/db/migrate_wallets_to_isar.dart +++ b/lib/db/migrate_wallets_to_isar.dart @@ -2,17 +2,17 @@ import 'dart:convert'; import 'package:hive_flutter/hive_flutter.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/models/token_wallet_info.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info_meta.dart'; -import 'package:stackwallet/wallets/wallet/supporting/epiccash_wallet_info_extension.dart'; +import '../app_config.dart'; +import 'hive/db.dart'; +import 'isar/main_db.dart'; +import '../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../models/isar/models/isar_models.dart'; +import '../utilities/flutter_secure_storage_interface.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import '../wallets/isar/models/token_wallet_info.dart'; +import '../wallets/isar/models/wallet_info.dart'; +import '../wallets/isar/models/wallet_info_meta.dart'; +import '../wallets/wallet/supporting/epiccash_wallet_info_extension.dart'; Future migrateWalletsToIsar({ required SecureStorageInterface secureStore, diff --git a/lib/dto/ethereum/eth_token_tx_extra_dto.dart b/lib/dto/ethereum/eth_token_tx_extra_dto.dart index 377b0ad60..c902d2bba 100644 --- a/lib/dto/ethereum/eth_token_tx_extra_dto.dart +++ b/lib/dto/ethereum/eth_token_tx_extra_dto.dart @@ -10,9 +10,9 @@ import 'dart:convert'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../utilities/amount/amount.dart'; +import '../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; class EthTokenTxExtraDTO { EthTokenTxExtraDTO({ diff --git a/lib/dto/ethereum/eth_tx_dto.dart b/lib/dto/ethereum/eth_tx_dto.dart index 669583170..2f60e9792 100644 --- a/lib/dto/ethereum/eth_tx_dto.dart +++ b/lib/dto/ethereum/eth_tx_dto.dart @@ -10,9 +10,9 @@ import 'dart:convert'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../utilities/amount/amount.dart'; +import '../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; class EthTxDTO { EthTxDTO({ diff --git a/lib/dto/ordinals/address_inscription_response.dart b/lib/dto/ordinals/address_inscription_response.dart index 240374284..fa3144b57 100644 --- a/lib/dto/ordinals/address_inscription_response.dart +++ b/lib/dto/ordinals/address_inscription_response.dart @@ -1,5 +1,5 @@ -import 'package:stackwallet/dto/ordinals/litescribe_response.dart'; -import 'package:stackwallet/dto/ordinals/inscription_data.dart'; +import 'litescribe_response.dart'; +import 'inscription_data.dart'; class AddressInscriptionResponse extends LitescribeResponse { final int status; diff --git a/lib/electrumx_rpc/cached_electrumx_client.dart b/lib/electrumx_rpc/cached_electrumx_client.dart index 10bd0aceb..569c092fa 100644 --- a/lib/electrumx_rpc/cached_electrumx_client.dart +++ b/lib/electrumx_rpc/cached_electrumx_client.dart @@ -11,10 +11,10 @@ import 'dart:convert'; import 'dart:math'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/electrumx_rpc/electrumx_client.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../db/hive/db.dart'; +import 'electrumx_client.dart'; +import '../utilities/logger.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; import 'package:string_validator/string_validator.dart'; class CachedElectrumXClient { diff --git a/lib/electrumx_rpc/client_manager.dart b/lib/electrumx_rpc/client_manager.dart index 26db04b4b..662c218ea 100644 --- a/lib/electrumx_rpc/client_manager.dart +++ b/lib/electrumx_rpc/client_manager.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'package:electrum_adapter/electrum_adapter.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; class ClientManager { ClientManager._(); diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index a5fcf5605..c37547f92 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -20,17 +20,17 @@ import 'package:event_bus/event_bus.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_libsparkmobile/flutter_libsparkmobile.dart'; import 'package:mutex/mutex.dart'; -import 'package:stackwallet/electrumx_rpc/client_manager.dart'; -import 'package:stackwallet/exceptions/electrumx/no_such_transaction.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'client_manager.dart'; +import '../exceptions/electrumx/no_such_transaction.dart'; +import '../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../services/event_bus/events/global/tor_status_changed_event.dart'; +import '../services/event_bus/global_event_bus.dart'; +import '../services/tor_service.dart'; +import '../utilities/logger.dart'; +import '../utilities/prefs.dart'; +import '../wallets/crypto_currency/coins/dogecoin.dart'; +import '../wallets/crypto_currency/coins/firo.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; import 'package:stream_channel/stream_channel.dart'; class WifiOnlyException implements Exception {} diff --git a/lib/exceptions/address/address_exception.dart b/lib/exceptions/address/address_exception.dart index 073dc72a3..3b01028e0 100644 --- a/lib/exceptions/address/address_exception.dart +++ b/lib/exceptions/address/address_exception.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/exceptions/sw_exception.dart'; +import '../sw_exception.dart'; class AddressException extends SWException { AddressException(super.message); diff --git a/lib/exceptions/electrumx/no_such_transaction.dart b/lib/exceptions/electrumx/no_such_transaction.dart index b74fae29a..e302345b5 100644 --- a/lib/exceptions/electrumx/no_such_transaction.dart +++ b/lib/exceptions/electrumx/no_such_transaction.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/exceptions/sw_exception.dart'; +import '../sw_exception.dart'; class NoSuchTransactionException extends SWException { final String txid; diff --git a/lib/exceptions/exchange/exchange_exception.dart b/lib/exceptions/exchange/exchange_exception.dart index c383c27da..952170d72 100644 --- a/lib/exceptions/exchange/exchange_exception.dart +++ b/lib/exceptions/exchange/exchange_exception.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/exceptions/sw_exception.dart'; +import '../sw_exception.dart'; enum ExchangeExceptionType { generic, serializeResponseError, orderNotFound } diff --git a/lib/exceptions/exchange/majestic_bank/mb_exception.dart b/lib/exceptions/exchange/majestic_bank/mb_exception.dart index 00b2ad6f8..9475d2dd3 100644 --- a/lib/exceptions/exchange/majestic_bank/mb_exception.dart +++ b/lib/exceptions/exchange/majestic_bank/mb_exception.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/exceptions/exchange/exchange_exception.dart'; +import '../exchange_exception.dart'; class MBException extends ExchangeException { MBException(super.message, super.type); diff --git a/lib/exceptions/exchange/pair_unavailable_exception.dart b/lib/exceptions/exchange/pair_unavailable_exception.dart index ecb1e66f4..3942e13cc 100644 --- a/lib/exceptions/exchange/pair_unavailable_exception.dart +++ b/lib/exceptions/exchange/pair_unavailable_exception.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/exceptions/exchange/exchange_exception.dart'; +import 'exchange_exception.dart'; class PairUnavailableException extends ExchangeException { PairUnavailableException(super.message, super.type); diff --git a/lib/exceptions/exchange/unsupported_currency_exception.dart b/lib/exceptions/exchange/unsupported_currency_exception.dart index 38e1c2cad..55deb4050 100644 --- a/lib/exceptions/exchange/unsupported_currency_exception.dart +++ b/lib/exceptions/exchange/unsupported_currency_exception.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/exceptions/exchange/exchange_exception.dart'; +import 'exchange_exception.dart'; class UnsupportedCurrencyException extends ExchangeException { UnsupportedCurrencyException(super.message, super.type, this.currency); diff --git a/lib/exceptions/json_rpc/json_rpc_exception.dart b/lib/exceptions/json_rpc/json_rpc_exception.dart index e0a51ce84..7668e346d 100644 --- a/lib/exceptions/json_rpc/json_rpc_exception.dart +++ b/lib/exceptions/json_rpc/json_rpc_exception.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/exceptions/sw_exception.dart'; +import '../sw_exception.dart'; class JsonRpcException implements SWException { JsonRpcException(this.message); diff --git a/lib/exceptions/main_db/main_db_exception.dart b/lib/exceptions/main_db/main_db_exception.dart index 65bfc5987..00f6438a5 100644 --- a/lib/exceptions/main_db/main_db_exception.dart +++ b/lib/exceptions/main_db/main_db_exception.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/exceptions/sw_exception.dart'; +import '../sw_exception.dart'; class MainDBException extends SWException { MainDBException(super.message, this.originalError); diff --git a/lib/exceptions/wallet/insufficient_balance_exception.dart b/lib/exceptions/wallet/insufficient_balance_exception.dart index d03572c4a..9c4b4d0af 100644 --- a/lib/exceptions/wallet/insufficient_balance_exception.dart +++ b/lib/exceptions/wallet/insufficient_balance_exception.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/exceptions/sw_exception.dart'; +import '../sw_exception.dart'; class InsufficientBalanceException extends SWException { InsufficientBalanceException(super.message); diff --git a/lib/exceptions/wallet/paynym_send_exception.dart b/lib/exceptions/wallet/paynym_send_exception.dart index bdbd47f6b..9aa3308c6 100644 --- a/lib/exceptions/wallet/paynym_send_exception.dart +++ b/lib/exceptions/wallet/paynym_send_exception.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/exceptions/sw_exception.dart'; +import '../sw_exception.dart'; class PaynymSendException extends SWException { PaynymSendException(super.message); diff --git a/lib/frost_route_generator.dart b/lib/frost_route_generator.dart index d401c7030..1266b94bc 100644 --- a/lib/frost_route_generator.dart +++ b/lib/frost_route_generator.dart @@ -1,28 +1,28 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1a.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1b.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_2.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_3.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_4.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_5.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1a.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1b.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_2abd.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_2c.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_3abd.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_3c.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_4.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_5.dart'; -import 'package:stackwallet/pages/send_view/frost_ms/send_steps/frost_send_step_1a.dart'; -import 'package:stackwallet/pages/send_view/frost_ms/send_steps/frost_send_step_1b.dart'; -import 'package:stackwallet/pages/send_view/frost_ms/send_steps/frost_send_step_2.dart'; -import 'package:stackwallet/pages/send_view/frost_ms/send_steps/frost_send_step_3.dart'; -import 'package:stackwallet/pages/send_view/frost_ms/send_steps/frost_send_step_4.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; +import 'pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1a.dart'; +import 'pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1b.dart'; +import 'pages/add_wallet_views/frost_ms/new/steps/frost_create_step_2.dart'; +import 'pages/add_wallet_views/frost_ms/new/steps/frost_create_step_3.dart'; +import 'pages/add_wallet_views/frost_ms/new/steps/frost_create_step_4.dart'; +import 'pages/add_wallet_views/frost_ms/new/steps/frost_create_step_5.dart'; +import 'pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1a.dart'; +import 'pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1b.dart'; +import 'pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart'; +import 'pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_2abd.dart'; +import 'pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_2c.dart'; +import 'pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_3abd.dart'; +import 'pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_3c.dart'; +import 'pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_4.dart'; +import 'pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_5.dart'; +import 'pages/send_view/frost_ms/send_steps/frost_send_step_1a.dart'; +import 'pages/send_view/frost_ms/send_steps/frost_send_step_1b.dart'; +import 'pages/send_view/frost_ms/send_steps/frost_send_step_2.dart'; +import 'pages/send_view/frost_ms/send_steps/frost_send_step_3.dart'; +import 'pages/send_view/frost_ms/send_steps/frost_send_step_4.dart'; +import 'route_generator.dart'; +import 'wallets/crypto_currency/intermediate/frost_currency.dart'; typedef FrostStepRoute = ({String routeName, String title}); diff --git a/lib/main.dart b/lib/main.dart index e9b2a9bd4..0e0127afe 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -28,53 +28,53 @@ import 'package:hive_flutter/hive_flutter.dart'; import 'package:isar/isar.dart'; import 'package:keyboard_dismisser/keyboard_dismisser.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/db/db_version_migration.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction.dart'; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction_status.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/models.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/models/notification_model.dart'; -import 'package:stackwallet/models/trade_wallet_lookup.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages/intro_view.dart'; -import 'package:stackwallet/pages/loading_view.dart'; -import 'package:stackwallet/pages/pinpad_views/create_pin_view.dart'; -import 'package:stackwallet/pages/pinpad_views/lock_screen_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart'; -import 'package:stackwallet/pages_desktop_specific/password/desktop_login_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/desktop/storage_crypto_handler_provider.dart'; -import 'package:stackwallet/providers/global/auto_swb_service_provider.dart'; -import 'package:stackwallet/providers/global/base_currencies_provider.dart'; +import 'app_config.dart'; +import 'db/db_version_migration.dart'; +import 'db/hive/db.dart'; +import 'db/isar/main_db.dart'; +import 'models/exchange/change_now/exchange_transaction.dart'; +import 'models/exchange/change_now/exchange_transaction_status.dart'; +import 'models/exchange/response_objects/trade.dart'; +import 'models/isar/models/isar_models.dart'; +import 'models/models.dart'; +import 'models/node_model.dart'; +import 'models/notification_model.dart'; +import 'models/trade_wallet_lookup.dart'; +import 'pages/home_view/home_view.dart'; +import 'pages/intro_view.dart'; +import 'pages/loading_view.dart'; +import 'pages/pinpad_views/create_pin_view.dart'; +import 'pages/pinpad_views/lock_screen_view.dart'; +import 'pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart'; +import 'pages_desktop_specific/password/desktop_login_view.dart'; +import 'providers/db/main_db_provider.dart'; +import 'providers/desktop/storage_crypto_handler_provider.dart'; +import 'providers/global/auto_swb_service_provider.dart'; +import 'providers/global/base_currencies_provider.dart'; // import 'package:stackwallet/providers/global/has_authenticated_start_state_provider.dart'; -import 'package:stackwallet/providers/global/trades_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/route_generator.dart'; +import 'providers/global/trades_service_provider.dart'; +import 'providers/providers.dart'; +import 'route_generator.dart'; // import 'package:stackwallet/services/buy/buy_data_loading_service.dart'; -import 'package:stackwallet/services/debug_service.dart'; -import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; -import 'package:stackwallet/services/locale_service.dart'; -import 'package:stackwallet/services/node_service.dart'; -import 'package:stackwallet/services/notifications_api.dart'; -import 'package:stackwallet/services/notifications_service.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/services/trade_service.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/themes/theme_service.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; -import 'package:stackwallet/widgets/crypto_notifications.dart'; +import 'services/debug_service.dart'; +import 'services/exchange/exchange_data_loading_service.dart'; +import 'services/locale_service.dart'; +import 'services/node_service.dart'; +import 'services/notifications_api.dart'; +import 'services/notifications_service.dart'; +import 'services/tor_service.dart'; +import 'services/trade_service.dart'; +import 'themes/theme_providers.dart'; +import 'themes/theme_service.dart'; +import 'utilities/constants.dart'; +import 'utilities/enums/backup_frequency_type.dart'; +import 'utilities/flutter_secure_storage_interface.dart'; +import 'utilities/logger.dart'; +import 'utilities/prefs.dart'; +import 'utilities/stack_file_system.dart'; +import 'utilities/util.dart'; +import 'wallets/isar/providers/all_wallets_info_provider.dart'; +import 'widgets/crypto_notifications.dart'; import 'package:window_size/window_size.dart'; final openedFromSWBFileStringStateProvider = diff --git a/lib/models/add_wallet_list_entity/add_wallet_list_entity.dart b/lib/models/add_wallet_list_entity/add_wallet_list_entity.dart index b9fcdf1a0..cf842d9a4 100644 --- a/lib/models/add_wallet_list_entity/add_wallet_list_entity.dart +++ b/lib/models/add_wallet_list_entity/add_wallet_list_entity.dart @@ -9,7 +9,7 @@ */ import 'package:equatable/equatable.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; abstract class AddWalletListEntity extends Equatable { CryptoCurrency get cryptoCurrency; diff --git a/lib/models/add_wallet_list_entity/sub_classes/coin_entity.dart b/lib/models/add_wallet_list_entity/sub_classes/coin_entity.dart index 99fd2754c..41c4eef63 100644 --- a/lib/models/add_wallet_list_entity/sub_classes/coin_entity.dart +++ b/lib/models/add_wallet_list_entity/sub_classes/coin_entity.dart @@ -8,8 +8,8 @@ * */ -import 'package:stackwallet/models/add_wallet_list_entity/add_wallet_list_entity.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../add_wallet_list_entity.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; class CoinEntity extends AddWalletListEntity { CoinEntity(this._coin); diff --git a/lib/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart b/lib/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart index 4bea313d0..5980b6503 100644 --- a/lib/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart +++ b/lib/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart @@ -8,10 +8,10 @@ * */ -import 'package:stackwallet/models/add_wallet_list_entity/add_wallet_list_entity.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../add_wallet_list_entity.dart'; +import '../../isar/models/ethereum/eth_contract.dart'; +import '../../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; class EthTokenEntity extends AddWalletListEntity { EthTokenEntity(this.token); diff --git a/lib/models/address_book_filter.dart b/lib/models/address_book_filter.dart index daddba49e..4958f3536 100644 --- a/lib/models/address_book_filter.dart +++ b/lib/models/address_book_filter.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; class AddressBookFilter extends ChangeNotifier { AddressBookFilter(Set coins) { diff --git a/lib/models/balance.dart b/lib/models/balance.dart index be2c80859..66eb6ab92 100644 --- a/lib/models/balance.dart +++ b/lib/models/balance.dart @@ -10,8 +10,8 @@ import 'dart:convert'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../utilities/amount/amount.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; class Balance { final Amount total; diff --git a/lib/models/buy/buy_form_state.dart b/lib/models/buy/buy_form_state.dart index edc1b482f..978a84152 100644 --- a/lib/models/buy/buy_form_state.dart +++ b/lib/models/buy/buy_form_state.dart @@ -10,7 +10,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:stackwallet/services/buy/buy.dart'; +import '../../services/buy/buy.dart'; class BuyFormState extends ChangeNotifier { Buy? _buy; diff --git a/lib/models/buy/response_objects/order.dart b/lib/models/buy/response_objects/order.dart index 44e385c9e..7e2a26ef4 100644 --- a/lib/models/buy/response_objects/order.dart +++ b/lib/models/buy/response_objects/order.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/models/buy/response_objects/quote.dart'; +import 'quote.dart'; class SimplexOrder { final SimplexQuote quote; diff --git a/lib/models/buy/response_objects/quote.dart b/lib/models/buy/response_objects/quote.dart index 6eb846d14..32c28ea04 100644 --- a/lib/models/buy/response_objects/quote.dart +++ b/lib/models/buy/response_objects/quote.dart @@ -9,8 +9,8 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/models/buy/response_objects/crypto.dart'; -import 'package:stackwallet/models/buy/response_objects/fiat.dart'; +import 'crypto.dart'; +import 'fiat.dart'; class SimplexQuote { final Crypto crypto; diff --git a/lib/models/buy/simplex/simplex.dart b/lib/models/buy/simplex/simplex.dart index 4b959377b..15d71eeb6 100644 --- a/lib/models/buy/simplex/simplex.dart +++ b/lib/models/buy/simplex/simplex.dart @@ -9,10 +9,10 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/models/buy/response_objects/crypto.dart'; -import 'package:stackwallet/models/buy/response_objects/fiat.dart'; -import 'package:stackwallet/models/buy/response_objects/order.dart'; -import 'package:stackwallet/models/buy/response_objects/quote.dart'; +import '../response_objects/crypto.dart'; +import '../response_objects/fiat.dart'; +import '../response_objects/order.dart'; +import '../response_objects/quote.dart'; class Simplex { List supportedCryptos = []; diff --git a/lib/models/contact.dart b/lib/models/contact.dart index 239680fd7..46cea2a76 100644 --- a/lib/models/contact.dart +++ b/lib/models/contact.dart @@ -10,7 +10,7 @@ import 'dart:convert'; -import 'package:stackwallet/models/contact_address_entry.dart'; +import 'contact_address_entry.dart'; import 'package:uuid/uuid.dart'; @Deprecated("Use lib/models/isar/models/contact_entry.dart instead") diff --git a/lib/models/contact_address_entry.dart b/lib/models/contact_address_entry.dart index 9e64e4f1e..3468d1706 100644 --- a/lib/models/contact_address_entry.dart +++ b/lib/models/contact_address_entry.dart @@ -10,8 +10,8 @@ import 'dart:convert'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../app_config.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; @Deprecated("Use lib/models/isar/models/contact_entry.dart instead") class ContactAddressEntry { diff --git a/lib/models/contact_address_entry_data.dart b/lib/models/contact_address_entry_data.dart index 545f40bac..106f07dd6 100644 --- a/lib/models/contact_address_entry_data.dart +++ b/lib/models/contact_address_entry_data.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/cupertino.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'isar/models/contact_entry.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; class AddressEntryData extends ChangeNotifier { late int id; diff --git a/lib/models/epicbox_config_model.dart b/lib/models/epicbox_config_model.dart index 5c3509c12..55650f11e 100644 --- a/lib/models/epicbox_config_model.dart +++ b/lib/models/epicbox_config_model.dart @@ -11,7 +11,7 @@ import 'dart:convert'; import 'package:hive/hive.dart'; -import 'package:stackwallet/models/epicbox_server_model.dart'; +import 'epicbox_server_model.dart'; part 'type_adaptors/epicbox_config_model.g.dart'; diff --git a/lib/models/exchange/active_pair.dart b/lib/models/exchange/active_pair.dart index 56e348d11..63393fb47 100644 --- a/lib/models/exchange/active_pair.dart +++ b/lib/models/exchange/active_pair.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/foundation.dart'; -import 'package:stackwallet/models/exchange/aggregate_currency.dart'; +import 'aggregate_currency.dart'; class ActivePair extends ChangeNotifier { AggregateCurrency? _send; diff --git a/lib/models/exchange/aggregate_currency.dart b/lib/models/exchange/aggregate_currency.dart index cad2708e9..841262c1d 100644 --- a/lib/models/exchange/aggregate_currency.dart +++ b/lib/models/exchange/aggregate_currency.dart @@ -8,8 +8,8 @@ * */ -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; +import '../isar/exchange_cache/currency.dart'; +import '../isar/exchange_cache/pair.dart'; import 'package:tuple/tuple.dart'; class AggregateCurrency { diff --git a/lib/models/exchange/change_now/cn_exchange_estimate.dart b/lib/models/exchange/change_now/cn_exchange_estimate.dart index 08d96d2dd..8d3c43566 100644 --- a/lib/models/exchange/change_now/cn_exchange_estimate.dart +++ b/lib/models/exchange/change_now/cn_exchange_estimate.dart @@ -9,7 +9,7 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/utilities/logger.dart'; +import '../../../utilities/logger.dart'; enum CNEstimateType { direct, reverse } diff --git a/lib/models/exchange/change_now/estimated_exchange_amount.dart b/lib/models/exchange/change_now/estimated_exchange_amount.dart index 03b8da4cf..8313e686b 100644 --- a/lib/models/exchange/change_now/estimated_exchange_amount.dart +++ b/lib/models/exchange/change_now/estimated_exchange_amount.dart @@ -9,7 +9,7 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/utilities/logger.dart'; +import '../../../utilities/logger.dart'; class EstimatedExchangeAmount { /// Estimated exchange amount diff --git a/lib/models/exchange/change_now/exchange_transaction.dart b/lib/models/exchange/change_now/exchange_transaction.dart index e1d6a41ed..e19d1c9c8 100644 --- a/lib/models/exchange/change_now/exchange_transaction.dart +++ b/lib/models/exchange/change_now/exchange_transaction.dart @@ -10,7 +10,7 @@ import 'package:decimal/decimal.dart'; import 'package:hive/hive.dart'; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction_status.dart'; +import 'exchange_transaction_status.dart'; import 'package:uuid/uuid.dart'; part '../../type_adaptors/exchange_transaction.g.dart'; diff --git a/lib/models/exchange/change_now/exchange_transaction_status.dart b/lib/models/exchange/change_now/exchange_transaction_status.dart index cd337fb81..679d1af13 100644 --- a/lib/models/exchange/change_now/exchange_transaction_status.dart +++ b/lib/models/exchange/change_now/exchange_transaction_status.dart @@ -9,7 +9,7 @@ */ import 'package:hive/hive.dart'; -import 'package:stackwallet/utilities/logger.dart'; +import '../../../utilities/logger.dart'; part '../../type_adaptors/exchange_transaction_status.g.dart'; diff --git a/lib/models/exchange/incomplete_exchange.dart b/lib/models/exchange/incomplete_exchange.dart index 7ca7bfe09..1397afb1a 100644 --- a/lib/models/exchange/incomplete_exchange.dart +++ b/lib/models/exchange/incomplete_exchange.dart @@ -10,9 +10,9 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/foundation.dart'; -import 'package:stackwallet/models/exchange/response_objects/estimate.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; +import 'response_objects/estimate.dart'; +import 'response_objects/trade.dart'; +import '../../utilities/enums/exchange_rate_type_enum.dart'; class IncompleteExchangeModel extends ChangeNotifier { final String sendTicker; diff --git a/lib/models/exchange/majestic_bank/mb_limit.dart b/lib/models/exchange/majestic_bank/mb_limit.dart index a549b3b39..e564e332d 100644 --- a/lib/models/exchange/majestic_bank/mb_limit.dart +++ b/lib/models/exchange/majestic_bank/mb_limit.dart @@ -9,7 +9,7 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/models/exchange/majestic_bank/mb_object.dart'; +import 'mb_object.dart'; class MBLimit extends MBObject { MBLimit({ diff --git a/lib/models/exchange/majestic_bank/mb_order.dart b/lib/models/exchange/majestic_bank/mb_order.dart index 8361c63db..7a8c828ba 100644 --- a/lib/models/exchange/majestic_bank/mb_order.dart +++ b/lib/models/exchange/majestic_bank/mb_order.dart @@ -9,7 +9,7 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/models/exchange/majestic_bank/mb_object.dart'; +import 'mb_object.dart'; enum MBOrderType { fixed, diff --git a/lib/models/exchange/majestic_bank/mb_order_calculation.dart b/lib/models/exchange/majestic_bank/mb_order_calculation.dart index 4ac6711f0..2b0e70a8c 100644 --- a/lib/models/exchange/majestic_bank/mb_order_calculation.dart +++ b/lib/models/exchange/majestic_bank/mb_order_calculation.dart @@ -9,7 +9,7 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/models/exchange/majestic_bank/mb_object.dart'; +import 'mb_object.dart'; class MBOrderCalculation extends MBObject { MBOrderCalculation({ diff --git a/lib/models/exchange/majestic_bank/mb_order_status.dart b/lib/models/exchange/majestic_bank/mb_order_status.dart index 7dbb274cc..6bec09b12 100644 --- a/lib/models/exchange/majestic_bank/mb_order_status.dart +++ b/lib/models/exchange/majestic_bank/mb_order_status.dart @@ -9,7 +9,7 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/models/exchange/majestic_bank/mb_object.dart'; +import 'mb_object.dart'; class MBOrderStatus extends MBObject { MBOrderStatus({ diff --git a/lib/models/exchange/majestic_bank/mb_rate.dart b/lib/models/exchange/majestic_bank/mb_rate.dart index 2702a359d..c4b5d2b8a 100644 --- a/lib/models/exchange/majestic_bank/mb_rate.dart +++ b/lib/models/exchange/majestic_bank/mb_rate.dart @@ -9,7 +9,7 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/models/exchange/majestic_bank/mb_object.dart'; +import 'mb_object.dart'; class MBRate extends MBObject { MBRate({required this.fromCurrency, required this.toCurrency, required this.rate,}); diff --git a/lib/models/exchange/response_objects/estimate.dart b/lib/models/exchange/response_objects/estimate.dart index ef48e5850..d51fda17c 100644 --- a/lib/models/exchange/response_objects/estimate.dart +++ b/lib/models/exchange/response_objects/estimate.dart @@ -9,7 +9,7 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/utilities/logger.dart'; +import '../../../utilities/logger.dart'; class Estimate { final Decimal estimatedAmount; diff --git a/lib/models/exchange/response_objects/fixed_rate_market.dart b/lib/models/exchange/response_objects/fixed_rate_market.dart index 6b2c8dc3e..103d9d99f 100644 --- a/lib/models/exchange/response_objects/fixed_rate_market.dart +++ b/lib/models/exchange/response_objects/fixed_rate_market.dart @@ -9,7 +9,7 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/utilities/logger.dart'; +import '../../../utilities/logger.dart'; class FixedRateMarket { /// Currency ticker diff --git a/lib/models/exchange/response_objects/trade.dart b/lib/models/exchange/response_objects/trade.dart index 5f52183a3..86adb0bee 100644 --- a/lib/models/exchange/response_objects/trade.dart +++ b/lib/models/exchange/response_objects/trade.dart @@ -9,8 +9,8 @@ */ import 'package:hive/hive.dart'; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction.dart'; -import 'package:stackwallet/services/exchange/change_now/change_now_exchange.dart'; +import '../change_now/exchange_transaction.dart'; +import '../../../services/exchange/change_now/change_now_exchange.dart'; part 'trade.g.dart'; diff --git a/lib/models/exchange/simpleswap/sp_currency.dart b/lib/models/exchange/simpleswap/sp_currency.dart index f45a80332..04a77de67 100644 --- a/lib/models/exchange/simpleswap/sp_currency.dart +++ b/lib/models/exchange/simpleswap/sp_currency.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/utilities/logger.dart'; +import '../../../utilities/logger.dart'; class SPCurrency { /// currency name diff --git a/lib/models/fusion_progress_ui_state.dart b/lib/models/fusion_progress_ui_state.dart index 62168e359..2da6e354f 100644 --- a/lib/models/fusion_progress_ui_state.dart +++ b/lib/models/fusion_progress_ui_state.dart @@ -1,5 +1,5 @@ import 'package:flutter/cupertino.dart'; -import 'package:stackwallet/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart'; +import '../pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart'; class FusionProgressUIState extends ChangeNotifier { /// Whether we are able to connect to the server. diff --git a/lib/models/isar/exchange_cache/currency.dart b/lib/models/isar/exchange_cache/currency.dart index d206d3326..f0e9ee132 100644 --- a/lib/models/isar/exchange_cache/currency.dart +++ b/lib/models/isar/exchange_cache/currency.dart @@ -9,8 +9,8 @@ */ import 'package:isar/isar.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; +import '../../../app_config.dart'; +import 'pair.dart'; part 'currency.g.dart'; diff --git a/lib/models/isar/models/block_explorer.dart b/lib/models/isar/models/block_explorer.dart index ed16c995b..6bde45001 100644 --- a/lib/models/isar/models/block_explorer.dart +++ b/lib/models/isar/models/block_explorer.dart @@ -9,8 +9,8 @@ */ import 'package:isar/isar.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../../app_config.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; part 'block_explorer.g.dart'; diff --git a/lib/models/isar/models/blockchain_data/address.dart b/lib/models/isar/models/blockchain_data/address.dart index e3314d754..bcc7d22c5 100644 --- a/lib/models/isar/models/blockchain_data/address.dart +++ b/lib/models/isar/models/blockchain_data/address.dart @@ -11,9 +11,9 @@ import 'dart:convert'; import 'package:isar/isar.dart'; -import 'package:stackwallet/exceptions/address/address_exception.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/crypto_currency_address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; +import '../../../../exceptions/address/address_exception.dart'; +import 'crypto_currency_address.dart'; +import 'transaction.dart'; part 'address.g.dart'; diff --git a/lib/models/isar/models/blockchain_data/transaction.dart b/lib/models/isar/models/blockchain_data/transaction.dart index 59848b1fd..73d935681 100644 --- a/lib/models/isar/models/blockchain_data/transaction.dart +++ b/lib/models/isar/models/blockchain_data/transaction.dart @@ -12,10 +12,10 @@ import 'dart:convert'; import 'dart:math'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/input.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/output.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; +import 'address.dart'; +import 'input.dart'; +import 'output.dart'; +import '../../../../utilities/amount/amount.dart'; import 'package:tuple/tuple.dart'; part 'transaction.g.dart'; diff --git a/lib/models/isar/models/blockchain_data/v2/transaction_v2.dart b/lib/models/isar/models/blockchain_data/v2/transaction_v2.dart index 470bd483b..b7ba87546 100644 --- a/lib/models/isar/models/blockchain_data/v2/transaction_v2.dart +++ b/lib/models/isar/models/blockchain_data/v2/transaction_v2.dart @@ -2,12 +2,12 @@ import 'dart:convert'; import 'dart:math'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../transaction.dart'; +import 'input_v2.dart'; +import 'output_v2.dart'; +import '../../../../../utilities/amount/amount.dart'; +import '../../../../../utilities/extensions/extensions.dart'; +import '../../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; part 'transaction_v2.g.dart'; diff --git a/lib/models/isar/models/contact_entry.dart b/lib/models/isar/models/contact_entry.dart index 5ccedd4eb..82de58484 100644 --- a/lib/models/isar/models/contact_entry.dart +++ b/lib/models/isar/models/contact_entry.dart @@ -9,8 +9,8 @@ */ import 'package:isar/isar.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../../app_config.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; part 'contact_entry.g.dart'; diff --git a/lib/models/isar/models/ethereum/eth_contract.dart b/lib/models/isar/models/ethereum/eth_contract.dart index 59b350e0d..df19d9d8d 100644 --- a/lib/models/isar/models/ethereum/eth_contract.dart +++ b/lib/models/isar/models/ethereum/eth_contract.dart @@ -9,7 +9,7 @@ */ import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/contract.dart'; +import '../contract.dart'; part 'eth_contract.g.dart'; diff --git a/lib/models/isar/models/log.dart b/lib/models/isar/models/log.dart index 31334327a..79f5808b2 100644 --- a/lib/models/isar/models/log.dart +++ b/lib/models/isar/models/log.dart @@ -10,7 +10,7 @@ import 'package:isar/isar.dart'; // import 'package:stackwallet/models/isar/type_converters/log_level_converter.dart'; -import 'package:stackwallet/utilities/enums/log_level_enum.dart'; +import '../../../utilities/enums/log_level_enum.dart'; part 'log.g.dart'; diff --git a/lib/models/isar/ordinal.dart b/lib/models/isar/ordinal.dart index 06ba52ef5..c5c3a23da 100644 --- a/lib/models/isar/ordinal.dart +++ b/lib/models/isar/ordinal.dart @@ -1,7 +1,7 @@ import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/dto/ordinals/inscription_data.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; +import '../../db/isar/main_db.dart'; +import '../../dto/ordinals/inscription_data.dart'; +import 'models/isar_models.dart'; part 'ordinal.g.dart'; diff --git a/lib/models/isar/stack_theme.dart b/lib/models/isar/stack_theme.dart index 32e25dd78..ce5002a1d 100644 --- a/lib/models/isar/stack_theme.dart +++ b/lib/models/isar/stack_theme.dart @@ -13,12 +13,12 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/utilities/extensions/impl/box_shadow.dart'; -import 'package:stackwallet/utilities/extensions/impl/gradient.dart'; -import 'package:stackwallet/utilities/extensions/impl/string.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; +import '../../app_config.dart'; +import '../../utilities/extensions/impl/box_shadow.dart'; +import '../../utilities/extensions/impl/gradient.dart'; +import '../../utilities/extensions/impl/string.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/stack_file_system.dart'; part 'stack_theme.g.dart'; diff --git a/lib/models/node_model.dart b/lib/models/node_model.dart index ce79722ef..636be9aac 100644 --- a/lib/models/node_model.dart +++ b/lib/models/node_model.dart @@ -9,8 +9,8 @@ */ import 'package:hive/hive.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; +import '../utilities/default_nodes.dart'; +import '../utilities/flutter_secure_storage_interface.dart'; part 'type_adaptors/node_model.g.dart'; diff --git a/lib/models/paynym/paynym_account.dart b/lib/models/paynym/paynym_account.dart index 4727820b4..184f8c8aa 100644 --- a/lib/models/paynym/paynym_account.dart +++ b/lib/models/paynym/paynym_account.dart @@ -8,8 +8,8 @@ * */ -import 'package:stackwallet/models/paynym/paynym_account_lite.dart'; -import 'package:stackwallet/models/paynym/paynym_code.dart'; +import 'paynym_account_lite.dart'; +import 'paynym_code.dart'; class PaynymAccount { final String nymID; diff --git a/lib/models/signing_data.dart b/lib/models/signing_data.dart index 24dac4546..265a021db 100644 --- a/lib/models/signing_data.dart +++ b/lib/models/signing_data.dart @@ -9,8 +9,8 @@ */ import 'package:coinlib_flutter/coinlib_flutter.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; +import 'isar/models/isar_models.dart'; +import '../utilities/enums/derive_path_type_enum.dart'; class SigningData { SigningData({ diff --git a/lib/models/stack_restoring_ui_state.dart b/lib/models/stack_restoring_ui_state.dart index e66e4e99f..6ee4e9e1b 100644 --- a/lib/models/stack_restoring_ui_state.dart +++ b/lib/models/stack_restoring_ui_state.dart @@ -10,9 +10,9 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/wallet_restore_state.dart'; -import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; +import 'wallet_restore_state.dart'; +import '../utilities/enums/stack_restoring_status.dart'; +import '../wallets/wallet/wallet.dart'; class StackRestoringUIState extends ChangeNotifier { bool _walletsWasSet = false; diff --git a/lib/models/transaction_filter.dart b/lib/models/transaction_filter.dart index 9c9c7b879..8141cf3bd 100644 --- a/lib/models/transaction_filter.dart +++ b/lib/models/transaction_filter.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/utilities/amount/amount.dart'; +import '../utilities/amount/amount.dart'; class TransactionFilter { final bool sent; diff --git a/lib/models/tx_info.dart b/lib/models/tx_info.dart index ddb361979..9ce2642ea 100644 --- a/lib/models/tx_info.dart +++ b/lib/models/tx_info.dart @@ -8,9 +8,9 @@ * */ -import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/wallets/models/tx_recipient.dart'; +import 'isar/models/blockchain_data/utxo.dart'; +import '../utilities/amount/amount.dart'; +import '../wallets/models/tx_recipient.dart'; // TODO use something like this instead of Map transactionObject diff --git a/lib/models/wallet_restore_state.dart b/lib/models/wallet_restore_state.dart index e325cad4d..fee03e46d 100644 --- a/lib/models/wallet_restore_state.dart +++ b/lib/models/wallet_restore_state.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; +import '../utilities/enums/stack_restoring_status.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import '../wallets/wallet/wallet.dart'; class WalletRestoreState extends ChangeNotifier { final String walletId; diff --git a/lib/networking/http.dart b/lib/networking/http.dart index ad15b659c..a4f25c225 100644 --- a/lib/networking/http.dart +++ b/lib/networking/http.dart @@ -4,7 +4,7 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:socks5_proxy/socks_client.dart'; -import 'package:stackwallet/utilities/logger.dart'; +import '../utilities/logger.dart'; // WIP wrapper layer diff --git a/lib/notifications/notification_card.dart b/lib/notifications/notification_card.dart index 434af20b2..feb81ce54 100644 --- a/lib/notifications/notification_card.dart +++ b/lib/notifications/notification_card.dart @@ -13,18 +13,18 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/models/notification_model.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../app_config.dart'; +import '../models/isar/stack_theme.dart'; +import '../models/notification_model.dart'; +import '../themes/coin_icon_provider.dart'; +import '../themes/stack_colors.dart'; +import '../themes/theme_providers.dart'; +import '../utilities/format.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; +import '../widgets/conditional_parent.dart'; +import '../widgets/rounded_container.dart'; +import '../widgets/rounded_white_container.dart'; class NotificationCard extends ConsumerWidget { const NotificationCard({ diff --git a/lib/notifications/show_flush_bar.dart b/lib/notifications/show_flush_bar.dart index 6364d76c4..08aa5c063 100644 --- a/lib/notifications/show_flush_bar.dart +++ b/lib/notifications/show_flush_bar.dart @@ -12,9 +12,9 @@ import 'package:another_flushbar/flushbar.dart'; import 'package:another_flushbar/flushbar_route.dart' as flushRoute; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/flush_bar_type.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/constants.dart'; +import '../utilities/enums/flush_bar_type.dart'; export 'package:stackwallet/utilities/enums/flush_bar_type.dart'; diff --git a/lib/pages/add_wallet_views/add_token_view/add_custom_token_view.dart b/lib/pages/add_wallet_views/add_token_view/add_custom_token_view.dart index dd807976b..155d741b7 100644 --- a/lib/pages/add_wallet_views/add_token_view/add_custom_token_view.dart +++ b/lib/pages/add_wallet_views/add_token_view/add_custom_token_view.dart @@ -13,19 +13,19 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/services/ethereum/ethereum_api.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../models/isar/models/ethereum/eth_contract.dart'; +import '../../../services/ethereum/ethereum_api.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/show_loading.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/stack_dialog.dart'; class AddCustomTokenView extends ConsumerStatefulWidget { const AddCustomTokenView({ diff --git a/lib/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart b/lib/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart index 82ca119a4..4a54b9b3d 100644 --- a/lib/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart +++ b/lib/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart @@ -14,38 +14,38 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/add_custom_token_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list_element.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/sub_widgets/add_token_text.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/providers/global/price_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/default_eth_tokens.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/ethereum_wallet.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../db/isar/main_db.dart'; +import '../../../models/isar/models/ethereum/eth_contract.dart'; +import '../../../notifications/show_flush_bar.dart'; +import 'add_custom_token_view.dart'; +import 'sub_widgets/add_token_list.dart'; +import 'sub_widgets/add_token_list_element.dart'; +import 'sub_widgets/add_token_text.dart'; +import '../../home_view/home_view.dart'; +import '../../../pages_desktop_specific/desktop_home_view.dart'; +import '../../../providers/global/price_provider.dart'; +import '../../../providers/global/wallets_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/default_eth_tokens.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/wallet/impl/ethereum_wallet.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class EditWalletTokensView extends ConsumerStatefulWidget { const EditWalletTokensView({ diff --git a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_custom_token_selector.dart b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_custom_token_selector.dart index 9be56029a..0274a99f3 100644 --- a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_custom_token_selector.dart +++ b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_custom_token_selector.dart @@ -10,11 +10,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; class AddCustomTokenSelector extends StatelessWidget { const AddCustomTokenSelector({ diff --git a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list.dart b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list.dart index 9580d799f..19e4e833a 100644 --- a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list.dart +++ b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/sub_widgets/add_custom_token_selector.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list_element.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; +import 'add_custom_token_selector.dart'; +import 'add_token_list_element.dart'; +import '../../../../widgets/conditional_parent.dart'; class AddTokenList extends StatelessWidget { const AddTokenList({ diff --git a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list_element.dart b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list_element.dart index e6d9149a7..af132b681 100644 --- a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list_element.dart +++ b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list_element.dart @@ -14,18 +14,18 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/services/exchange/change_now/change_now_exchange.dart'; -import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/draggable_switch_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../models/isar/exchange_cache/currency.dart'; +import '../../../../models/isar/models/ethereum/eth_contract.dart'; +import '../../../../services/exchange/change_now/change_now_exchange.dart'; +import '../../../../services/exchange/exchange_data_loading_service.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../themes/theme_providers.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class AddTokenListElementData { AddTokenListElementData(this.token); diff --git a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_text.dart b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_text.dart index 7b901aa74..d92e210f1 100644 --- a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_text.dart +++ b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_text.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../../../utilities/text_styles.dart'; class AddTokenText extends StatelessWidget { const AddTokenText({ diff --git a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart index 2d6c27adc..6bed9892f 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart @@ -16,36 +16,36 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/add_wallet_list_entity.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/sub_classes/coin_entity.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/add_custom_token_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/sub_widgets/add_custom_token_selector.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_text.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/sub_widgets/expanding_sub_list_item.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/sub_widgets/next_button.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/default_eth_tokens.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/expandable.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../db/isar/main_db.dart'; +import '../../../models/add_wallet_list_entity/add_wallet_list_entity.dart'; +import '../../../models/add_wallet_list_entity/sub_classes/coin_entity.dart'; +import '../../../models/add_wallet_list_entity/sub_classes/eth_token_entity.dart'; +import '../../../models/isar/models/ethereum/eth_contract.dart'; +import '../add_token_view/add_custom_token_view.dart'; +import '../add_token_view/sub_widgets/add_custom_token_selector.dart'; +import 'sub_widgets/add_wallet_text.dart'; +import 'sub_widgets/expanding_sub_list_item.dart'; +import 'sub_widgets/next_button.dart'; +import '../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../providers/providers.dart'; +import '../../../app_config.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/default_eth_tokens.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../widgets/expandable.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class AddWalletView extends ConsumerStatefulWidget { const AddWalletView({super.key}); diff --git a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_entity_list.dart b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_entity_list.dart index c1e903ae5..2be9e6e7f 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_entity_list.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_entity_list.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/add_wallet_list_entity.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/sub_widgets/coin_select_item.dart'; +import '../../../../models/add_wallet_list_entity/add_wallet_list_entity.dart'; +import 'coin_select_item.dart'; class AddWalletEntityList extends StatelessWidget { const AddWalletEntityList({ diff --git a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_text.dart b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_text.dart index f1586b165..85c17dbf2 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_text.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_text.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../../../utilities/text_styles.dart'; class AddWalletText extends StatelessWidget { const AddWalletText({super.key, required this.isDesktop}); diff --git a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/coin_select_item.dart b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/coin_select_item.dart index 18527b059..68527ccaf 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/coin_select_item.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/coin_select_item.dart @@ -14,18 +14,18 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/add_wallet_list_entity.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/exchange/change_now/change_now_exchange.dart'; -import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../../../../models/add_wallet_list_entity/add_wallet_list_entity.dart'; +import '../../../../models/add_wallet_list_entity/sub_classes/eth_token_entity.dart'; +import '../../../../models/isar/exchange_cache/currency.dart'; +import '../../../../providers/providers.dart'; +import '../../../../services/exchange/change_now/change_now_exchange.dart'; +import '../../../../services/exchange/exchange_data_loading_service.dart'; +import '../../../../themes/coin_icon_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; class CoinSelectItem extends ConsumerWidget { const CoinSelectItem({ diff --git a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/expanding_sub_list_item.dart b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/expanding_sub_list_item.dart index 8940dd3d9..1affe8787 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/expanding_sub_list_item.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/expanding_sub_list_item.dart @@ -10,14 +10,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/add_wallet_list_entity.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_entity_list.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; -import 'package:stackwallet/widgets/expandable.dart'; +import '../../../../models/add_wallet_list_entity/add_wallet_list_entity.dart'; +import 'add_wallet_entity_list.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/animated_widgets/rotate_icon.dart'; +import '../../../../widgets/expandable.dart'; class ExpandingSubListItem extends StatefulWidget { const ExpandingSubListItem({ diff --git a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/next_button.dart b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/next_button.dart index 6756d3ca2..56b5fa258 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/next_button.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/next_button.dart @@ -10,12 +10,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart'; -import 'package:stackwallet/pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/select_wallet_for_token_view.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../../../models/add_wallet_list_entity/sub_classes/eth_token_entity.dart'; +import '../../create_or_restore_wallet_view/create_or_restore_wallet_view.dart'; +import '../../select_wallet_for_token_view.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; class AddWalletNextButton extends ConsumerWidget { const AddWalletNextButton({ diff --git a/lib/pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart b/lib/pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart index 49531bf9c..7c9b434c6 100644 --- a/lib/pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart +++ b/lib/pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart @@ -9,18 +9,18 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/add_wallet_list_entity.dart'; -import 'package:stackwallet/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/coin_image.dart'; -import 'package:stackwallet/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_subtitle.dart'; -import 'package:stackwallet/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_title.dart'; -import 'package:stackwallet/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; +import '../../../models/add_wallet_list_entity/add_wallet_list_entity.dart'; +import 'sub_widgets/coin_image.dart'; +import 'sub_widgets/create_or_restore_wallet_subtitle.dart'; +import 'sub_widgets/create_or_restore_wallet_title.dart'; +import 'sub_widgets/create_wallet_button_group.dart'; +import '../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; class CreateOrRestoreWalletView extends StatelessWidget { const CreateOrRestoreWalletView({ diff --git a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/coin_image.dart b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/coin_image.dart index f13aee957..ea33e9518 100644 --- a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/coin_image.dart +++ b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/coin_image.dart @@ -13,9 +13,9 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/coin_image_provider.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../../../themes/coin_image_provider.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; class CoinImage extends ConsumerWidget { const CoinImage({ diff --git a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_subtitle.dart b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_subtitle.dart index d450a9f52..d66ded246 100644 --- a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_subtitle.dart +++ b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_subtitle.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../../../utilities/text_styles.dart'; class CreateRestoreWalletSubTitle extends StatelessWidget { const CreateRestoreWalletSubTitle({ diff --git a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_title.dart b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_title.dart index 319d8daf7..8e6a1ca61 100644 --- a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_title.dart +++ b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_title.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; class CreateRestoreWalletTitle extends StatelessWidget { const CreateRestoreWalletTitle({ diff --git a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart index 2120f6c4d..1dabb24d3 100644 --- a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart +++ b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart @@ -11,12 +11,12 @@ import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:stackwallet/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/add_wallet_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../name_your_wallet_view/name_your_wallet_view.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/enums/add_wallet_type_enum.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/crypto_currency/coins/wownero.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; class CreateWalletButtonGroup extends StatelessWidget { diff --git a/lib/pages/add_wallet_views/frost_ms/new/create_new_frost_ms_wallet_view.dart b/lib/pages/add_wallet_views/frost_ms/new/create_new_frost_ms_wallet_view.dart index 5ce23eaad..a97c7b785 100644 --- a/lib/pages/add_wallet_views/frost_ms/new/create_new_frost_ms_wallet_view.dart +++ b/lib/pages/add_wallet_views/frost_ms/new/create_new_frost_ms_wallet_view.dart @@ -1,25 +1,25 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/dialogs/simple_mobile_dialog.dart'; -import 'package:stackwallet/widgets/frost_mascot.dart'; -import 'package:stackwallet/widgets/frost_scaffold.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../frost_route_generator.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../services/frost.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/intermediate/frost_currency.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/dialogs/simple_mobile_dialog.dart'; +import '../../../../widgets/frost_mascot.dart'; +import '../../../../widgets/frost_scaffold.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_dialog.dart'; class CreateNewFrostMsWalletView extends ConsumerStatefulWidget { const CreateNewFrostMsWalletView({ diff --git a/lib/pages/add_wallet_views/frost_ms/new/select_new_frost_import_type_view.dart b/lib/pages/add_wallet_views/frost_ms/new/select_new_frost_import_type_view.dart index 1a7378bc6..3546dd964 100644 --- a/lib/pages/add_wallet_views/frost_ms/new/select_new_frost_import_type_view.dart +++ b/lib/pages/add_wallet_views/frost_ms/new/select_new_frost_import_type_view.dart @@ -1,22 +1,22 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/dialogs/simple_mobile_dialog.dart'; -import 'package:stackwallet/widgets/frost_scaffold.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../frost_route_generator.dart'; +import '../../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/intermediate/frost_currency.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/dialogs/simple_mobile_dialog.dart'; +import '../../../../widgets/frost_scaffold.dart'; +import '../../../../widgets/rounded_white_container.dart'; class SelectNewFrostImportTypeView extends ConsumerStatefulWidget { const SelectNewFrostImportTypeView({ diff --git a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1a.dart b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1a.dart index 0f1cd84aa..cd2f0ea1d 100644 --- a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1a.dart +++ b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1a.dart @@ -2,21 +2,21 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/dialogs/simple_mobile_dialog.dart'; -import 'package:stackwallet/widgets/frost_step_user_steps.dart'; +import '../../../../../frost_route_generator.dart'; +import '../../../../wallet_view/transaction_views/transaction_details_view.dart'; +import '../../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../../services/frost.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/desktop/secondary_button.dart'; +import '../../../../../widgets/detail_item.dart'; +import '../../../../../widgets/dialogs/simple_mobile_dialog.dart'; +import '../../../../../widgets/frost_step_user_steps.dart'; class FrostCreateStep1a extends ConsumerStatefulWidget { const FrostCreateStep1a({super.key}); diff --git a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1b.dart b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1b.dart index 21ed92a7d..f38d05234 100644 --- a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1b.dart +++ b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1b.dart @@ -1,16 +1,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/frost_step_user_steps.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/textfields/frost_step_field.dart'; +import '../../../../../frost_route_generator.dart'; +import '../../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../../services/frost.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/frost_step_user_steps.dart'; +import '../../../../../widgets/rounded_white_container.dart'; +import '../../../../../widgets/stack_dialog.dart'; +import '../../../../../widgets/textfields/frost_step_field.dart'; class FrostCreateStep1b extends ConsumerStatefulWidget { const FrostCreateStep1b({super.key}); diff --git a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_2.dart b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_2.dart index f993d6783..a57148fee 100644 --- a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_2.dart +++ b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_2.dart @@ -1,20 +1,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/frost_qr_dialog_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/dialogs/frost/frost_error_dialog.dart'; -import 'package:stackwallet/widgets/frost_step_user_steps.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/textfields/frost_step_field.dart'; +import '../../../../../frost_route_generator.dart'; +import '../../../../wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; +import '../../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../../services/frost.dart'; +import '../../../../../utilities/logger.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../../widgets/custom_buttons/frost_qr_dialog_button.dart'; +import '../../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/detail_item.dart'; +import '../../../../../widgets/dialogs/frost/frost_error_dialog.dart'; +import '../../../../../widgets/frost_step_user_steps.dart'; +import '../../../../../widgets/stack_dialog.dart'; +import '../../../../../widgets/textfields/frost_step_field.dart'; class FrostCreateStep2 extends ConsumerStatefulWidget { const FrostCreateStep2({ diff --git a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_3.dart b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_3.dart index 54cabcec0..20130a2da 100644 --- a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_3.dart +++ b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_3.dart @@ -1,20 +1,21 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/frost_qr_dialog_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/dialogs/frost/frost_error_dialog.dart'; -import 'package:stackwallet/widgets/frost_step_user_steps.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/textfields/frost_step_field.dart'; + +import '../../../../../frost_route_generator.dart'; +import '../../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../../services/frost.dart'; +import '../../../../../utilities/logger.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../../widgets/custom_buttons/frost_qr_dialog_button.dart'; +import '../../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/detail_item.dart'; +import '../../../../../widgets/dialogs/frost/frost_error_dialog.dart'; +import '../../../../../widgets/frost_step_user_steps.dart'; +import '../../../../../widgets/stack_dialog.dart'; +import '../../../../../widgets/textfields/frost_step_field.dart'; +import '../../../../wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; class FrostCreateStep3 extends ConsumerStatefulWidget { const FrostCreateStep3({super.key}); diff --git a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_4.dart b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_4.dart index 864e905bf..b8f7aee88 100644 --- a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_4.dart +++ b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_4.dart @@ -2,14 +2,15 @@ import 'dart:typed_data'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/frost_step_user_steps.dart'; + +import '../../../../../frost_route_generator.dart'; +import '../../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/detail_item.dart'; +import '../../../../../widgets/frost_step_user_steps.dart'; +import '../../../../wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; class FrostCreateStep4 extends ConsumerStatefulWidget { const FrostCreateStep4({super.key}); diff --git a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_5.dart b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_5.dart index d64c163e3..8f2e87fb0 100644 --- a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_5.dart +++ b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_5.dart @@ -3,32 +3,33 @@ import 'dart:typed_data'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/providers/global/node_service_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; + +import '../../../../../frost_route_generator.dart'; +import '../../../../../notifications/show_flush_bar.dart'; +import '../../../../../pages_desktop_specific/desktop_home_view.dart'; +import '../../../../../providers/db/main_db_provider.dart'; +import '../../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../../providers/global/node_service_provider.dart'; +import '../../../../../providers/global/prefs_provider.dart'; +import '../../../../../providers/global/secure_store_provider.dart'; +import '../../../../../providers/global/wallets_provider.dart'; +import '../../../../../services/frost.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/logger.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../wallets/isar/models/wallet_info.dart'; +import '../../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../../wallets/wallet/wallet.dart'; +import '../../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/detail_item.dart'; +import '../../../../../widgets/loading_indicator.dart'; +import '../../../../../widgets/rounded_container.dart'; +import '../../../../home_view/home_view.dart'; +import '../../../../wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; class FrostCreateStep5 extends ConsumerStatefulWidget { const FrostCreateStep5({super.key}); diff --git a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1a.dart b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1a.dart index 3b20a8820..ff8f03c71 100644 --- a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1a.dart +++ b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1a.dart @@ -2,27 +2,28 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/dialogs/frost/frost_error_dialog.dart'; -import 'package:stackwallet/widgets/dialogs/simple_mobile_dialog.dart'; -import 'package:stackwallet/widgets/frost_step_user_steps.dart'; + +import '../../../../frost_route_generator.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../services/frost.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/isar/models/frost_wallet_info.dart'; +import '../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/dialogs/frost/frost_error_dialog.dart'; +import '../../../../widgets/dialogs/simple_mobile_dialog.dart'; +import '../../../../widgets/frost_step_user_steps.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; class FrostReshareStep1a extends ConsumerStatefulWidget { const FrostReshareStep1a({super.key}); diff --git a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1b.dart b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1b.dart index 0df4c4b09..e29d1110b 100644 --- a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1b.dart +++ b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1b.dart @@ -1,20 +1,21 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:frostdart/frostdart.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/dialogs/frost/frost_error_dialog.dart'; -import 'package:stackwallet/widgets/frost_step_user_steps.dart'; -import 'package:stackwallet/widgets/textfields/frost_step_field.dart'; + +import '../../../../frost_route_generator.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../providers/global/secure_store_provider.dart'; +import '../../../../services/frost.dart'; +import '../../../../utilities/format.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/isar/models/frost_wallet_info.dart'; +import '../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/dialogs/frost/frost_error_dialog.dart'; +import '../../../../widgets/frost_step_user_steps.dart'; +import '../../../../widgets/textfields/frost_step_field.dart'; class FrostReshareStep1b extends ConsumerStatefulWidget { const FrostReshareStep1b({ diff --git a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart index 25267beed..3514cc20d 100644 --- a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart +++ b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart @@ -2,18 +2,19 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/models/incomplete_frost_wallet.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/frost_step_user_steps.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/textfields/frost_step_field.dart'; + +import '../../../../frost_route_generator.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/show_loading.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/isar/models/wallet_info.dart'; +import '../../../../wallets/models/incomplete_frost_wallet.dart'; +import '../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/frost_step_user_steps.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../../../widgets/textfields/frost_step_field.dart'; class FrostReshareStep1c extends ConsumerStatefulWidget { const FrostReshareStep1c({super.key}); diff --git a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_2abd.dart b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_2abd.dart index 1a688bb03..a95d8ec47 100644 --- a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_2abd.dart +++ b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_2abd.dart @@ -2,21 +2,22 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/frost_qr_dialog_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/dialogs/frost/frost_error_dialog.dart'; -import 'package:stackwallet/widgets/textfields/frost_step_field.dart'; + +import '../../../../frost_route_generator.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../services/frost.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/isar/models/frost_wallet_info.dart'; +import '../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../widgets/custom_buttons/frost_qr_dialog_button.dart'; +import '../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/dialogs/frost/frost_error_dialog.dart'; +import '../../../../widgets/textfields/frost_step_field.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; class FrostReshareStep2abd extends ConsumerStatefulWidget { const FrostReshareStep2abd({super.key}); diff --git a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_2c.dart b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_2c.dart index 798c503e5..b134ea5e4 100644 --- a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_2c.dart +++ b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_2c.dart @@ -2,14 +2,15 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/dialogs/frost/frost_error_dialog.dart'; -import 'package:stackwallet/widgets/textfields/frost_step_field.dart'; + +import '../../../../frost_route_generator.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../services/frost.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/dialogs/frost/frost_error_dialog.dart'; +import '../../../../widgets/textfields/frost_step_field.dart'; class FrostReshareStep2c extends ConsumerStatefulWidget { const FrostReshareStep2c({super.key}); diff --git a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_3abd.dart b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_3abd.dart index d49df3cc7..a899ddda1 100644 --- a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_3abd.dart +++ b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_3abd.dart @@ -2,19 +2,20 @@ import 'dart:ffi'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/frost_qr_dialog_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/dialogs/frost/frost_error_dialog.dart'; -import 'package:stackwallet/widgets/textfields/frost_step_field.dart'; + +import '../../../../frost_route_generator.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../services/frost.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../widgets/custom_buttons/frost_qr_dialog_button.dart'; +import '../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/dialogs/frost/frost_error_dialog.dart'; +import '../../../../widgets/textfields/frost_step_field.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; class FrostReshareStep3abd extends ConsumerStatefulWidget { const FrostReshareStep3abd({super.key}); diff --git a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_3c.dart b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_3c.dart index 3bde7bc76..190abfa56 100644 --- a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_3c.dart +++ b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_3c.dart @@ -1,14 +1,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/frost_qr_dialog_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; + +import '../../../../frost_route_generator.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../widgets/custom_buttons/frost_qr_dialog_button.dart'; +import '../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/detail_item.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; class FrostReshareStep3c extends ConsumerStatefulWidget { const FrostReshareStep3c({super.key}); diff --git a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_4.dart b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_4.dart index 12de74573..f476c9096 100644 --- a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_4.dart +++ b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_4.dart @@ -2,23 +2,24 @@ import 'dart:ffi'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/frost_qr_dialog_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/dialogs/frost/frost_error_dialog.dart'; -import 'package:stackwallet/widgets/textfields/frost_step_field.dart'; + +import '../../../../frost_route_generator.dart'; +import '../../../../pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../services/frost.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/isar/models/frost_wallet_info.dart'; +import '../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../widgets/custom_buttons/frost_qr_dialog_button.dart'; +import '../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/dialogs/frost/frost_error_dialog.dart'; +import '../../../../widgets/textfields/frost_step_field.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; +import '../../../wallet_view/wallet_view.dart'; // was FinishResharingView class FrostReshareStep4 extends ConsumerStatefulWidget { diff --git a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_5.dart b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_5.dart index fe0875747..834a0a638 100644 --- a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_5.dart +++ b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_5.dart @@ -1,26 +1,27 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/providers/global/node_service_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/dialogs/frost/frost_error_dialog.dart'; + +import '../../../../frost_route_generator.dart'; +import '../../../../pages_desktop_specific/desktop_home_view.dart'; +import '../../../../pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../providers/global/node_service_provider.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../providers/global/secure_store_provider.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/show_loading.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/dialogs/frost/frost_error_dialog.dart'; +import '../../../home_view/home_view.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; +import '../../../wallet_view/wallet_view.dart'; // was VerifyUpdatedWalletView class FrostReshareStep5 extends ConsumerStatefulWidget { diff --git a/lib/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart b/lib/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart index 138dd09da..59a798a41 100644 --- a/lib/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart +++ b/lib/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart @@ -5,40 +5,41 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:frostdart/frostdart.dart' as frost; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/node_service_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; -import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/frost_mascot.dart'; -import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; + +import '../../../../notifications/show_flush_bar.dart'; +import '../../../../pages_desktop_specific/desktop_home_view.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/global/node_service_provider.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../providers/global/secure_store_provider.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../services/frost.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/show_loading.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/intermediate/frost_currency.dart'; +import '../../../../wallets/isar/models/frost_wallet_info.dart'; +import '../../../../wallets/isar/models/wallet_info.dart'; +import '../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../wallets/wallet/wallet.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/frost_mascot.dart'; +import '../../../../widgets/icon_widgets/clipboard_icon.dart'; +import '../../../../widgets/icon_widgets/qrcode_icon.dart'; +import '../../../../widgets/icon_widgets/x_icon.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../../../widgets/stack_text_field.dart'; +import '../../../../widgets/textfield_icon_button.dart'; +import '../../../home_view/home_view.dart'; class RestoreFrostMsWalletView extends ConsumerStatefulWidget { const RestoreFrostMsWalletView({ diff --git a/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart b/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart index c0e94fdd1..eb2797da6 100644 --- a/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart +++ b/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart @@ -13,38 +13,39 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/coin_image.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/new/create_new_frost_ms_wallet_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/new/select_new_frost_import_type_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/ui/verify_recovery_phrase/mnemonic_word_count_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/add_wallet_type_enum.dart'; -import 'package:stackwallet/utilities/name_generator.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/dice_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; import 'package:tuple/tuple.dart'; +import '../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/ui/verify_recovery_phrase/mnemonic_word_count_state_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/enums/add_wallet_type_enum.dart'; +import '../../../utilities/name_generator.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/crypto_currency/intermediate/frost_currency.dart'; +import '../../../wallets/isar/models/wallet_info.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/icon_widgets/dice_icon.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; +import '../create_or_restore_wallet_view/sub_widgets/coin_image.dart'; +import '../frost_ms/new/create_new_frost_ms_wallet_view.dart'; +import '../frost_ms/new/select_new_frost_import_type_view.dart'; +import '../frost_ms/restore/restore_frost_ms_wallet_view.dart'; +import '../new_wallet_options/new_wallet_options_view.dart'; +import '../new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart'; +import '../restore_wallet_view/restore_options_view/restore_options_view.dart'; + class NameYourWalletView extends ConsumerStatefulWidget { const NameYourWalletView({ super.key, diff --git a/lib/pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart b/lib/pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart index a8e9c3a8a..1008fd5df 100644 --- a/lib/pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart +++ b/lib/pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart @@ -2,28 +2,29 @@ import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/coin_image.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/mobile_mnemonic_length_selector.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/sub_widgets/mnemonic_word_count_select_sheet.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/providers/ui/verify_recovery_phrase/mnemonic_word_count_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; import 'package:tuple/tuple.dart'; +import '../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../providers/ui/verify_recovery_phrase/mnemonic_word_count_state_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../create_or_restore_wallet_view/sub_widgets/coin_image.dart'; +import '../new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart'; +import '../restore_wallet_view/restore_options_view/sub_widgets/mobile_mnemonic_length_selector.dart'; +import '../restore_wallet_view/sub_widgets/mnemonic_word_count_select_sheet.dart'; + final pNewWalletOptions = StateProvider<({String mnemonicPassphrase, int mnemonicWordsCount})?>( (ref) => null, diff --git a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart index bb855d757..510abe67d 100644 --- a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart +++ b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart @@ -15,28 +15,29 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; import 'package:tuple/tuple.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../../../pages_desktop_specific/desktop_home_view.dart'; +import '../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../providers/global/secure_store_provider.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/wallet/wallet.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; +import '../new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart'; +import '../verify_recovery_phrase_view/verify_recovery_phrase_view.dart'; +import 'sub_widgets/mnemonic_table.dart'; + class NewWalletRecoveryPhraseView extends ConsumerStatefulWidget { const NewWalletRecoveryPhraseView({ Key? key, diff --git a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart index 837954235..4f26fcffa 100644 --- a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart +++ b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table_item.dart'; +import 'mnemonic_table_item.dart'; class MnemonicTable extends StatelessWidget { const MnemonicTable({ diff --git a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table_item.dart b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table_item.dart index 728948c5b..c39c496d7 100644 --- a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table_item.dart +++ b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table_item.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/rounded_white_container.dart'; class MnemonicTableItem extends StatelessWidget { const MnemonicTableItem({ diff --git a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart index e6f620a02..2c1a248e7 100644 --- a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart +++ b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart @@ -15,35 +15,32 @@ import 'package:bip39/bip39.dart' as bip39; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/recovery_phrase_explanation_dialog.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/transaction_notification_tracker.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:tuple/tuple.dart'; +import '../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/global/secure_store_provider.dart'; +import '../../../providers/providers.dart'; +import '../../../services/transaction_notification_tracker.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/isar/models/wallet_info.dart'; +import '../../../wallets/wallet/wallet.dart'; +import '../../../wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../widgets/loading_indicator.dart'; +import '../../../widgets/rounded_container.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../new_wallet_options/new_wallet_options_view.dart'; +import '../new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart'; +import 'recovery_phrase_explanation_dialog.dart'; + class NewWalletRecoveryPhraseWarningView extends ConsumerStatefulWidget { const NewWalletRecoveryPhraseWarningView({ super.key, diff --git a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/recovery_phrase_explanation_dialog.dart b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/recovery_phrase_explanation_dialog.dart index 2e6edcc3c..bb9626c67 100644 --- a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/recovery_phrase_explanation_dialog.dart +++ b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/recovery_phrase_explanation_dialog.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/stack_dialog.dart'; class RecoveryPhraseExplanationDialog extends StatelessWidget { const RecoveryPhraseExplanationDialog({Key? key}) : super(key: key); diff --git a/lib/pages/add_wallet_views/restore_wallet_view/confirm_recovery_dialog.dart b/lib/pages/add_wallet_views/restore_wallet_view/confirm_recovery_dialog.dart index dcdbc7dc8..70a519fad 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/confirm_recovery_dialog.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/confirm_recovery_dialog.dart @@ -10,15 +10,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/stack_dialog.dart'; class ConfirmRecoveryDialog extends StatelessWidget { const ConfirmRecoveryDialog({Key? key, required this.onConfirm}) diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart index 642833523..424596f1d 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart @@ -12,33 +12,33 @@ import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/coin_image.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/mobile_mnemonic_length_selector.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_from_date_picker.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_next_button.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_platform_layout.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/sub_widgets/mnemonic_word_count_select_sheet.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/providers/ui/verify_recovery_phrase/mnemonic_word_count_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/date_picker/date_picker.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/expandable.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../create_or_restore_wallet_view/sub_widgets/coin_image.dart'; +import 'sub_widgets/mobile_mnemonic_length_selector.dart'; +import 'sub_widgets/restore_from_date_picker.dart'; +import 'sub_widgets/restore_options_next_button.dart'; +import 'sub_widgets/restore_options_platform_layout.dart'; +import '../restore_wallet_view.dart'; +import '../sub_widgets/mnemonic_word_count_select_sheet.dart'; +import '../../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../../providers/ui/verify_recovery_phrase/mnemonic_word_count_state_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/format.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/coins/epiccash.dart'; +import '../../../../wallets/crypto_currency/coins/monero.dart'; +import '../../../../wallets/crypto_currency/coins/wownero.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/date_picker/date_picker.dart'; +import '../../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../../widgets/expandable.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_text_field.dart'; import 'package:tuple/tuple.dart'; class RestoreOptionsView extends ConsumerStatefulWidget { diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/mobile_mnemonic_length_selector.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/mobile_mnemonic_length_selector.dart index 25526283f..7299ca476 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/mobile_mnemonic_length_selector.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/mobile_mnemonic_length_selector.dart @@ -11,12 +11,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/providers/ui/verify_recovery_phrase/mnemonic_word_count_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../../../../../providers/ui/verify_recovery_phrase/mnemonic_word_count_state_provider.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/constants.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; class MobileMnemonicLengthSelector extends ConsumerWidget { const MobileMnemonicLengthSelector({ diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_from_date_picker.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_from_date_picker.dart index bf09b8b60..58869bdf4 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_from_date_picker.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_from_date_picker.dart @@ -10,10 +10,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; class RestoreFromDatePicker extends StatefulWidget { const RestoreFromDatePicker({ diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_next_button.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_next_button.dart index 0302e74ec..8ac5ed213 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_next_button.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_next_button.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/text_styles.dart'; class RestoreOptionsNextButton extends StatelessWidget { const RestoreOptionsNextButton({ diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_platform_layout.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_platform_layout.dart index fa95e4291..9f606eb66 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_platform_layout.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_platform_layout.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; +import '../../../../../themes/stack_colors.dart'; class RestoreOptionsPlatformLayout extends StatelessWidget { const RestoreOptionsPlatformLayout({ diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart index 1b07eb565..41eddad6d 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart @@ -22,53 +22,53 @@ import 'package:flutter_libmonero/monero/monero.dart' as libxmr; import 'package:flutter_libmonero/wownero/wownero.dart' as libwow; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/confirm_recovery_dialog.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_failed_dialog.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_succeeded_dialog.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/sub_widgets/restoring_dialog.dart'; -import 'package:stackwallet/pages/add_wallet_views/select_wallet_for_token_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/transaction_notification_tracker.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/custom_text_selection_controls.dart'; -import 'package:stackwallet/utilities/enums/form_input_status_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/monero_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/wownero_wallet.dart'; -import 'package:stackwallet/wallets/wallet/supporting/epiccash_wallet_info_extension.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; -import 'package:stackwallet/widgets/table_view/table_view.dart'; -import 'package:stackwallet/widgets/table_view/table_view_cell.dart'; -import 'package:stackwallet/widgets/table_view/table_view_row.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../add_token_view/edit_wallet_tokens_view.dart'; +import 'confirm_recovery_dialog.dart'; +import 'sub_widgets/restore_failed_dialog.dart'; +import 'sub_widgets/restore_succeeded_dialog.dart'; +import 'sub_widgets/restoring_dialog.dart'; +import '../select_wallet_for_token_view.dart'; +import '../verify_recovery_phrase_view/verify_recovery_phrase_view.dart'; +import '../../home_view/home_view.dart'; +import '../../../pages_desktop_specific/desktop_home_view.dart'; +import '../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/global/secure_store_provider.dart'; +import '../../../providers/providers.dart'; +import '../../../services/transaction_notification_tracker.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/address_utils.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/barcode_scanner_interface.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/custom_text_selection_controls.dart'; +import '../../../utilities/enums/form_input_status_enum.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/coins/epiccash.dart'; +import '../../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../wallets/crypto_currency/coins/monero.dart'; +import '../../../wallets/crypto_currency/coins/wownero.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/isar/models/wallet_info.dart'; +import '../../../wallets/wallet/impl/epiccash_wallet.dart'; +import '../../../wallets/wallet/impl/monero_wallet.dart'; +import '../../../wallets/wallet/impl/wownero_wallet.dart'; +import '../../../wallets/wallet/supporting/epiccash_wallet_info_extension.dart'; +import '../../../wallets/wallet/wallet.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/icon_widgets/clipboard_icon.dart'; +import '../../../widgets/icon_widgets/qrcode_icon.dart'; +import '../../../widgets/table_view/table_view.dart'; +import '../../../widgets/table_view/table_view_cell.dart'; +import '../../../widgets/table_view/table_view_row.dart'; import 'package:wakelock/wakelock.dart'; class RestoreWalletView extends ConsumerStatefulWidget { diff --git a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/mnemonic_word_count_select_sheet.dart b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/mnemonic_word_count_select_sheet.dart index 010f195bc..c1533bad4 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/mnemonic_word_count_select_sheet.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/mnemonic_word_count_select_sheet.dart @@ -10,10 +10,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/ui/verify_recovery_phrase/mnemonic_word_count_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../../../providers/ui/verify_recovery_phrase/mnemonic_word_count_state_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; class MnemonicWordCountSelectSheet extends ConsumerWidget { const MnemonicWordCountSelectSheet({ diff --git a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_failed_dialog.dart b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_failed_dialog.dart index 02f4e714b..fc45b372a 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_failed_dialog.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_failed_dialog.dart @@ -10,13 +10,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../providers/global/secure_store_provider.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../widgets/stack_dialog.dart'; class RestoreFailedDialog extends ConsumerStatefulWidget { const RestoreFailedDialog({ diff --git a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_succeeded_dialog.dart b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_succeeded_dialog.dart index 0b816cbe9..4c5364e44 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_succeeded_dialog.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_succeeded_dialog.dart @@ -10,14 +10,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/stack_dialog.dart'; class RestoreSucceededDialog extends StatelessWidget { const RestoreSucceededDialog({Key? key}) : super(key: key); diff --git a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restoring_dialog.dart b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restoring_dialog.dart index 2be19e08a..29a4dcf40 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restoring_dialog.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restoring_dialog.dart @@ -9,14 +9,14 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/animated_widgets/rotating_arrows.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/stack_dialog.dart'; class RestoringDialog extends StatefulWidget { const RestoringDialog({ diff --git a/lib/pages/add_wallet_views/select_wallet_for_token_view.dart b/lib/pages/add_wallet_views/select_wallet_for_token_view.dart index ecffeaaaf..648f6a0de 100644 --- a/lib/pages/add_wallet_views/select_wallet_for_token_view.dart +++ b/lib/pages/add_wallet_views/select_wallet_for_token_view.dart @@ -10,26 +10,26 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/sub_classes/coin_entity.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/eth_wallet_radio.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/wallet_info_row/wallet_info_row.dart'; +import '../../models/add_wallet_list_entity/sub_classes/coin_entity.dart'; +import '../../models/add_wallet_list_entity/sub_classes/eth_token_entity.dart'; +import 'add_token_view/edit_wallet_tokens_view.dart'; +import 'create_or_restore_wallet_view/create_or_restore_wallet_view.dart'; +import 'verify_recovery_phrase_view/verify_recovery_phrase_view.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/isar/providers/all_wallets_info_provider.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/eth_wallet_radio.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/wallet_info_row/wallet_info_row.dart'; import 'package:tuple/tuple.dart'; final newEthWalletTriggerTempUntilHiveCompletelyDeleted = diff --git a/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table.dart b/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table.dart index 260522cc0..8674f6b07 100644 --- a/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table.dart +++ b/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table.dart @@ -10,7 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table_item.dart'; +import 'word_table_item.dart'; class WordTable extends ConsumerWidget { const WordTable({ diff --git a/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table_item.dart b/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table_item.dart index 2990aaae4..64135fe95 100644 --- a/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table_item.dart +++ b/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table_item.dart @@ -10,10 +10,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; class WordTableItem extends ConsumerWidget { const WordTableItem({ diff --git a/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_mnemonic_passphrase_dialog.dart b/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_mnemonic_passphrase_dialog.dart index bae25a7e1..77b650c81 100644 --- a/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_mnemonic_passphrase_dialog.dart +++ b/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_mnemonic_passphrase_dialog.dart @@ -1,20 +1,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../new_wallet_options/new_wallet_options_view.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/stack_dialog.dart'; +import '../../../widgets/stack_text_field.dart'; class VerifyMnemonicPassphraseDialog extends ConsumerStatefulWidget { const VerifyMnemonicPassphraseDialog({super.key}); diff --git a/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart b/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart index 3443c2084..9155690cb 100644 --- a/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart +++ b/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart @@ -14,30 +14,30 @@ import 'dart:math'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/select_wallet_for_token_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table.dart'; -import 'package:stackwallet/pages/add_wallet_views/verify_recovery_phrase_view/verify_mnemonic_passphrase_dialog.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../add_token_view/edit_wallet_tokens_view.dart'; +import '../new_wallet_options/new_wallet_options_view.dart'; +import '../new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart'; +import '../select_wallet_for_token_view.dart'; +import 'sub_widgets/word_table.dart'; +import 'verify_mnemonic_passphrase_dialog.dart'; +import '../../home_view/home_view.dart'; +import '../../../pages_desktop_specific/desktop_home_view.dart'; +import '../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/global/secure_store_provider.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/wallet/wallet.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; import 'package:tuple/tuple.dart'; final createSpecialEthWalletRoutingFlag = StateProvider((ref) => false); diff --git a/lib/pages/address_book_views/address_book_view.dart b/lib/pages/address_book_views/address_book_view.dart index 3dcdcf907..b9ed9560f 100644 --- a/lib/pages/address_book_views/address_book_view.dart +++ b/lib/pages/address_book_views/address_book_view.dart @@ -11,31 +11,31 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/add_address_book_entry_view.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/address_book_filter_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/address_book_filter_provider.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/widgets/address_book_card.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../app_config.dart'; +import '../../models/isar/models/blockchain_data/address.dart'; +import '../../models/isar/models/contact_entry.dart'; +import 'subviews/add_address_book_entry_view.dart'; +import 'subviews/address_book_filter_view.dart'; +import '../../providers/db/main_db_provider.dart'; +import '../../providers/global/address_book_service_provider.dart'; +import '../../providers/providers.dart'; +import '../../providers/ui/address_book_providers/address_book_filter_provider.dart'; +import '../../app_config.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../widgets/address_book_card.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; class AddressBookView extends ConsumerStatefulWidget { const AddressBookView({ diff --git a/lib/pages/address_book_views/subviews/add_address_book_entry_view.dart b/lib/pages/address_book_views/subviews/add_address_book_entry_view.dart index 20237f174..bf1ee6b39 100644 --- a/lib/pages/address_book_views/subviews/add_address_book_entry_view.dart +++ b/lib/pages/address_book_views/subviews/add_address_book_entry_view.dart @@ -12,31 +12,31 @@ import 'package:emojis/emoji.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/new_contact_address_entry_form.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/contact_name_is_not_empty_state_provider.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/valid_contact_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/emoji_select_sheet.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../models/isar/models/contact_entry.dart'; +import 'new_contact_address_entry_form.dart'; +import '../../../providers/global/address_book_service_provider.dart'; +import '../../../providers/ui/address_book_providers/address_entry_data_provider.dart'; +import '../../../providers/ui/address_book_providers/contact_name_is_not_empty_state_provider.dart'; +import '../../../providers/ui/address_book_providers/valid_contact_state_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/barcode_scanner_interface.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/emoji_select_sheet.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; import 'package:uuid/uuid.dart'; class AddAddressBookEntryView extends ConsumerStatefulWidget { diff --git a/lib/pages/address_book_views/subviews/add_new_contact_address_view.dart b/lib/pages/address_book_views/subviews/add_new_contact_address_view.dart index 11d6566a2..4a2c3c497 100644 --- a/lib/pages/address_book_views/subviews/add_new_contact_address_view.dart +++ b/lib/pages/address_book_views/subviews/add_new_contact_address_view.dart @@ -11,22 +11,22 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/new_contact_address_entry_form.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/valid_contact_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; +import '../../../models/isar/models/contact_entry.dart'; +import 'new_contact_address_entry_form.dart'; +import '../../../providers/global/address_book_service_provider.dart'; +import '../../../providers/ui/address_book_providers/address_entry_data_provider.dart'; +import '../../../providers/ui/address_book_providers/valid_contact_state_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/barcode_scanner_interface.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; class AddNewContactAddressView extends ConsumerStatefulWidget { const AddNewContactAddressView({ diff --git a/lib/pages/address_book_views/subviews/address_book_filter_view.dart b/lib/pages/address_book_views/subviews/address_book_filter_view.dart index 8f63ffc15..035628c80 100644 --- a/lib/pages/address_book_views/subviews/address_book_filter_view.dart +++ b/lib/pages/address_book_views/subviews/address_book_filter_view.dart @@ -10,20 +10,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/address_book_filter_provider.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../providers/global/prefs_provider.dart'; +import '../../../providers/ui/address_book_providers/address_book_filter_provider.dart'; +import '../../../app_config.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/rounded_white_container.dart'; class AddressBookFilterView extends ConsumerStatefulWidget { const AddressBookFilterView({super.key}); diff --git a/lib/pages/address_book_views/subviews/coin_select_sheet.dart b/lib/pages/address_book_views/subviews/coin_select_sheet.dart index c74489fbb..d39f7b08c 100644 --- a/lib/pages/address_book_views/subviews/coin_select_sheet.dart +++ b/lib/pages/address_book_views/subviews/coin_select_sheet.dart @@ -13,13 +13,13 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/coin_image_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../../providers/global/prefs_provider.dart'; +import '../../../app_config.dart'; +import '../../../themes/coin_image_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; class CoinSelectSheet extends StatelessWidget { const CoinSelectSheet({super.key}); diff --git a/lib/pages/address_book_views/subviews/contact_details_view.dart b/lib/pages/address_book_views/subviews/contact_details_view.dart index d01cd2335..2d12334f0 100644 --- a/lib/pages/address_book_views/subviews/contact_details_view.dart +++ b/lib/pages/address_book_views/subviews/contact_details_view.dart @@ -15,27 +15,27 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/add_new_contact_address_view.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/edit_contact_address_view.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/edit_contact_name_emoji_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/transaction_card.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../notifications/show_flush_bar.dart'; +import 'add_new_contact_address_view.dart'; +import 'edit_contact_address_view.dart'; +import 'edit_contact_name_emoji_view.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/global/address_book_service_provider.dart'; +import '../../../providers/ui/address_book_providers/address_entry_data_provider.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/loading_indicator.dart'; +import '../../../widgets/rounded_container.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_dialog.dart'; +import '../../../widgets/transaction_card.dart'; import 'package:tuple/tuple.dart'; class ContactDetailsView extends ConsumerStatefulWidget { diff --git a/lib/pages/address_book_views/subviews/contact_popup.dart b/lib/pages/address_book_views/subviews/contact_popup.dart index a22b205aa..55c4436e8 100644 --- a/lib/pages/address_book_views/subviews/contact_popup.dart +++ b/lib/pages/address_book_views/subviews/contact_popup.dart @@ -14,24 +14,24 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/send_view_auto_fill_data.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/contact_details_view.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_step_views/step_2_view.dart'; -import 'package:stackwallet/pages/send_view/send_view.dart'; -import 'package:stackwallet/providers/global/active_wallet_provider.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../models/send_view_auto_fill_data.dart'; +import '../../../notifications/show_flush_bar.dart'; +import 'contact_details_view.dart'; +import '../../exchange_view/exchange_step_views/step_2_view.dart'; +import '../../send_view/send_view.dart'; +import '../../../providers/global/active_wallet_provider.dart'; +import '../../../providers/global/address_book_service_provider.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../themes/theme_providers.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../widgets/rounded_container.dart'; +import '../../../widgets/rounded_white_container.dart'; import 'package:tuple/tuple.dart'; final exchangeFromAddressBookAddressStateProvider = diff --git a/lib/pages/address_book_views/subviews/edit_contact_address_view.dart b/lib/pages/address_book_views/subviews/edit_contact_address_view.dart index a061f1ed5..d9c6e584f 100644 --- a/lib/pages/address_book_views/subviews/edit_contact_address_view.dart +++ b/lib/pages/address_book_views/subviews/edit_contact_address_view.dart @@ -13,22 +13,22 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/new_contact_address_entry_form.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/valid_contact_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; +import '../../../models/isar/models/contact_entry.dart'; +import 'new_contact_address_entry_form.dart'; +import '../../../providers/global/address_book_service_provider.dart'; +import '../../../providers/ui/address_book_providers/address_entry_data_provider.dart'; +import '../../../providers/ui/address_book_providers/valid_contact_state_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/barcode_scanner_interface.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; class EditContactAddressView extends ConsumerStatefulWidget { const EditContactAddressView({ diff --git a/lib/pages/address_book_views/subviews/edit_contact_name_emoji_view.dart b/lib/pages/address_book_views/subviews/edit_contact_name_emoji_view.dart index 8974d8a32..c1d8c139e 100644 --- a/lib/pages/address_book_views/subviews/edit_contact_name_emoji_view.dart +++ b/lib/pages/address_book_views/subviews/edit_contact_name_emoji_view.dart @@ -14,22 +14,22 @@ import 'package:emojis/emoji.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/emoji_select_sheet.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../providers/global/address_book_service_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/emoji_select_sheet.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class EditContactNameEmojiView extends ConsumerStatefulWidget { const EditContactNameEmojiView({ diff --git a/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart b/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart index 27995cb04..fc4c8f900 100644 --- a/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart +++ b/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart @@ -15,27 +15,27 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/coin_select_sheet.dart'; -import 'package:stackwallet/providers/providers.dart'; +import 'coin_select_sheet.dart'; +import '../../../providers/providers.dart'; // import 'package:stackwallet/providers/global/should_show_lockscreen_on_resume_state_provider.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../providers/ui/address_book_providers/address_entry_data_provider.dart'; +import '../../../app_config.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/address_utils.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/barcode_scanner_interface.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/icon_widgets/clipboard_icon.dart'; +import '../../../widgets/icon_widgets/qrcode_icon.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class NewContactAddressEntryForm extends ConsumerStatefulWidget { const NewContactAddressEntryForm({ diff --git a/lib/pages/buy_view/buy_form.dart b/lib/pages/buy_view/buy_form.dart index c28dd9c6e..b1068150e 100644 --- a/lib/pages/buy_view/buy_form.dart +++ b/lib/pages/buy_view/buy_form.dart @@ -16,46 +16,46 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:intl/intl.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/buy/response_objects/crypto.dart'; -import 'package:stackwallet/models/buy/response_objects/fiat.dart'; -import 'package:stackwallet/models/buy/response_objects/quote.dart'; -import 'package:stackwallet/models/contact_address_entry.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/pages/address_book_views/address_book_view.dart'; -import 'package:stackwallet/pages/buy_view/buy_quote_preview.dart'; -import 'package:stackwallet/pages/buy_view/sub_widgets/crypto_selection_view.dart'; -import 'package:stackwallet/pages/buy_view/sub_widgets/fiat_selection_view.dart'; -import 'package:stackwallet/pages/exchange_view/choose_from_stack_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/buy/buy_response.dart'; -import 'package:stackwallet/services/buy/simplex/simplex_api.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/addressbook_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../app_config.dart'; +import '../../models/buy/response_objects/crypto.dart'; +import '../../models/buy/response_objects/fiat.dart'; +import '../../models/buy/response_objects/quote.dart'; +import '../../models/contact_address_entry.dart'; +import '../../models/isar/models/ethereum/eth_contract.dart'; +import '../address_book_views/address_book_view.dart'; +import 'buy_quote_preview.dart'; +import 'sub_widgets/crypto_selection_view.dart'; +import 'sub_widgets/fiat_selection_view.dart'; +import '../exchange_view/choose_from_stack_view.dart'; +import '../../pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart'; +import '../../providers/providers.dart'; +import '../../services/buy/buy_response.dart'; +import '../../services/buy/simplex/simplex_api.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/address_utils.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/barcode_scanner_interface.dart'; +import '../../utilities/clipboard_interface.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/custom_loading_overlay.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/icon_widgets/addressbook_icon.dart'; +import '../../widgets/icon_widgets/clipboard_icon.dart'; +import '../../widgets/icon_widgets/qrcode_icon.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_dialog.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; class BuyForm extends ConsumerStatefulWidget { const BuyForm({ diff --git a/lib/pages/buy_view/buy_in_wallet_view.dart b/lib/pages/buy_view/buy_in_wallet_view.dart index 18f4d643a..512ae5315 100644 --- a/lib/pages/buy_view/buy_in_wallet_view.dart +++ b/lib/pages/buy_view/buy_in_wallet_view.dart @@ -9,13 +9,13 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/pages/buy_view/buy_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../models/isar/models/ethereum/eth_contract.dart'; +import 'buy_view.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; class BuyInWalletView extends StatefulWidget { const BuyInWalletView({ diff --git a/lib/pages/buy_view/buy_order_details.dart b/lib/pages/buy_view/buy_order_details.dart index 04a556850..9c44f01db 100644 --- a/lib/pages/buy_view/buy_order_details.dart +++ b/lib/pages/buy_view/buy_order_details.dart @@ -11,17 +11,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/buy/response_objects/order.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../models/buy/response_objects/order.dart'; +import '../../themes/stack_colors.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/rounded_white_container.dart'; class BuyOrderDetailsView extends ConsumerStatefulWidget { const BuyOrderDetailsView({ diff --git a/lib/pages/buy_view/buy_quote_preview.dart b/lib/pages/buy_view/buy_quote_preview.dart index 66b9af812..ec65de1f5 100644 --- a/lib/pages/buy_view/buy_quote_preview.dart +++ b/lib/pages/buy_view/buy_quote_preview.dart @@ -14,18 +14,18 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:intl/intl.dart'; -import 'package:stackwallet/models/buy/response_objects/quote.dart'; -import 'package:stackwallet/pages/buy_view/sub_widgets/buy_warning_popup.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../models/buy/response_objects/quote.dart'; +import 'sub_widgets/buy_warning_popup.dart'; +import '../../themes/stack_colors.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/rounded_white_container.dart'; class BuyQuotePreviewView extends ConsumerStatefulWidget { const BuyQuotePreviewView({ diff --git a/lib/pages/buy_view/buy_view.dart b/lib/pages/buy_view/buy_view.dart index 5bfed3475..9589621cc 100644 --- a/lib/pages/buy_view/buy_view.dart +++ b/lib/pages/buy_view/buy_view.dart @@ -10,14 +10,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/pages/buy_view/buy_form.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/tor_subscription.dart'; +import '../../models/isar/models/ethereum/eth_contract.dart'; +import 'buy_form.dart'; +import '../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../../services/tor_service.dart'; +import '../../themes/stack_colors.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../widgets/stack_dialog.dart'; +import '../../widgets/tor_subscription.dart'; class BuyView extends ConsumerStatefulWidget { const BuyView({ diff --git a/lib/pages/buy_view/sub_widgets/buy_warning_popup.dart b/lib/pages/buy_view/sub_widgets/buy_warning_popup.dart index fa651e7df..c3e1dc4e9 100644 --- a/lib/pages/buy_view/sub_widgets/buy_warning_popup.dart +++ b/lib/pages/buy_view/sub_widgets/buy_warning_popup.dart @@ -13,22 +13,22 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/buy/response_objects/order.dart'; -import 'package:stackwallet/models/buy/response_objects/quote.dart'; -import 'package:stackwallet/pages/buy_view/buy_order_details.dart'; -import 'package:stackwallet/services/buy/buy_response.dart'; -import 'package:stackwallet/services/buy/simplex/simplex_api.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../models/buy/response_objects/order.dart'; +import '../../../models/buy/response_objects/quote.dart'; +import '../buy_order_details.dart'; +import '../../../services/buy/buy_response.dart'; +import '../../../services/buy/simplex/simplex_api.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../themes/theme_providers.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_dialog.dart'; class BuyWarningPopup extends ConsumerStatefulWidget { const BuyWarningPopup({ diff --git a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart index 22dedbac8..55ab49d6c 100644 --- a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart +++ b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart @@ -13,22 +13,22 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/buy/response_objects/crypto.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../app_config.dart'; +import '../../../models/buy/response_objects/crypto.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class CryptoSelectionView extends ConsumerStatefulWidget { const CryptoSelectionView({ diff --git a/lib/pages/buy_view/sub_widgets/fiat_selection_view.dart b/lib/pages/buy_view/sub_widgets/fiat_selection_view.dart index 555a86b00..87671494e 100644 --- a/lib/pages/buy_view/sub_widgets/fiat_selection_view.dart +++ b/lib/pages/buy_view/sub_widgets/fiat_selection_view.dart @@ -11,20 +11,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:intl/intl.dart'; -import 'package:stackwallet/models/buy/response_objects/fiat.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/fiat_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../models/buy/response_objects/fiat.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/enums/fiat_enum.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class FiatSelectionView extends StatefulWidget { const FiatSelectionView({ diff --git a/lib/pages/cashfusion/cashfusion_view.dart b/lib/pages/cashfusion/cashfusion_view.dart index ff058859e..e8cfaff4d 100644 --- a/lib/pages/cashfusion/cashfusion_view.dart +++ b/lib/pages/cashfusion/cashfusion_view.dart @@ -15,25 +15,25 @@ import 'package:flutter/services.dart'; import 'package:flutter_native_splash/cli_commands.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/cashfusion/fusion_progress_view.dart'; -import 'package:stackwallet/pages/cashfusion/fusion_rounds_selection_sheet.dart'; -import 'package:stackwallet/providers/cash_fusion/fusion_progress_ui_state_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import 'fusion_progress_view.dart'; +import 'fusion_rounds_selection_sheet.dart'; +import '../../providers/cash_fusion/fusion_progress_ui_state_provider.dart'; +import '../../providers/global/prefs_provider.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_text_field.dart'; class CashFusionView extends ConsumerStatefulWidget { const CashFusionView({ diff --git a/lib/pages/cashfusion/fusion_progress_view.dart b/lib/pages/cashfusion/fusion_progress_view.dart index 40844cde7..6f41f07b7 100644 --- a/lib/pages/cashfusion/fusion_progress_view.dart +++ b/lib/pages/cashfusion/fusion_progress_view.dart @@ -12,23 +12,23 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages_desktop_specific/cashfusion/sub_widgets/fusion_progress.dart'; -import 'package:stackwallet/providers/cash_fusion/fusion_progress_ui_state_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../pages_desktop_specific/cashfusion/sub_widgets/fusion_progress.dart'; +import '../../providers/cash_fusion/fusion_progress_ui_state_provider.dart'; +import '../../providers/global/prefs_provider.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/show_loading.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/stack_dialog.dart'; class FusionProgressView extends ConsumerStatefulWidget { const FusionProgressView({ diff --git a/lib/pages/cashfusion/fusion_rounds_selection_sheet.dart b/lib/pages/cashfusion/fusion_rounds_selection_sheet.dart index 3b36864ab..1294c0096 100644 --- a/lib/pages/cashfusion/fusion_rounds_selection_sheet.dart +++ b/lib/pages/cashfusion/fusion_rounds_selection_sheet.dart @@ -11,9 +11,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_native_splash/cli_commands.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; enum FusionOption { continuous, diff --git a/lib/pages/coin_control/coin_control_view.dart b/lib/pages/coin_control/coin_control_view.dart index b82b13914..4540b6d3f 100644 --- a/lib/pages/coin_control/coin_control_view.dart +++ b/lib/pages/coin_control/coin_control_view.dart @@ -14,31 +14,31 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/pages/coin_control/utxo_card.dart'; -import 'package:stackwallet/pages/coin_control/utxo_details_view.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; -import 'package:stackwallet/widgets/app_bar_field.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/dropdown_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/expandable2.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/toggle.dart'; +import '../../db/isar/main_db.dart'; +import '../../models/isar/models/isar_models.dart'; +import 'utxo_card.dart'; +import 'utxo_details_view.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_formatter.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; +import '../../widgets/animated_widgets/rotate_icon.dart'; +import '../../widgets/app_bar_field.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/dropdown_button.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/expandable2.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/toggle.dart'; import 'package:tuple/tuple.dart'; enum CoinControlViewType { diff --git a/lib/pages/coin_control/utxo_card.dart b/lib/pages/coin_control/utxo_card.dart index 5688d2b2a..9dc2bd900 100644 --- a/lib/pages/coin_control/utxo_card.dart +++ b/lib/pages/coin_control/utxo_card.dart @@ -10,18 +10,18 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/icon_widgets/utxo_status_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../db/isar/main_db.dart'; +import '../../models/isar/models/isar_models.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_formatter.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/icon_widgets/utxo_status_icon.dart'; +import '../../widgets/rounded_container.dart'; class UtxoCard extends ConsumerStatefulWidget { const UtxoCard({ diff --git a/lib/pages/coin_control/utxo_details_view.dart b/lib/pages/coin_control/utxo_details_view.dart index ce6dce597..f27db669e 100644 --- a/lib/pages/coin_control/utxo_details_view.dart +++ b/lib/pages/coin_control/utxo_details_view.dart @@ -13,26 +13,26 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_edit_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/utxo_status_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../db/isar/main_db.dart'; +import '../../models/isar/models/isar_models.dart'; +import '../wallet_view/transaction_views/transaction_details_view.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_formatter.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../widgets/custom_buttons/simple_edit_button.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/icon_widgets/utxo_status_icon.dart'; +import '../../widgets/rounded_container.dart'; class UtxoDetailsView extends ConsumerStatefulWidget { const UtxoDetailsView({ diff --git a/lib/pages/exchange_view/choose_from_stack_view.dart b/lib/pages/exchange_view/choose_from_stack_view.dart index d6aa4f837..0e6cc8627 100644 --- a/lib/pages/exchange_view/choose_from_stack_view.dart +++ b/lib/pages/exchange_view/choose_from_stack_view.dart @@ -10,17 +10,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/wallet_info_row/sub_widgets/wallet_info_row_balance.dart'; -import 'package:stackwallet/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart'; +import '../../providers/providers.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/wallet_info_row/sub_widgets/wallet_info_row_balance.dart'; +import '../../widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart'; class ChooseFromStackView extends ConsumerStatefulWidget { const ChooseFromStackView({ diff --git a/lib/pages/exchange_view/confirm_change_now_send.dart b/lib/pages/exchange_view/confirm_change_now_send.dart index 5135d96ee..4e99f9bcf 100644 --- a/lib/pages/exchange_view/confirm_change_now_send.dart +++ b/lib/pages/exchange_view/confirm_change_now_send.dart @@ -12,36 +12,36 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/trade_wallet_lookup.dart'; -import 'package:stackwallet/pages/pinpad_views/lock_screen_view.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/sending_transaction_dialog.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../models/exchange/response_objects/trade.dart'; +import '../../models/isar/models/isar_models.dart'; +import '../../models/trade_wallet_lookup.dart'; +import '../pinpad_views/lock_screen_view.dart'; +import '../send_view/sub_widgets/sending_transaction_dialog.dart'; +import '../wallet_view/wallet_view.dart'; +import '../../pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart'; +import '../../providers/db/main_db_provider.dart'; +import '../../providers/providers.dart'; +import '../../route_generator.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_formatter.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/models/tx_data.dart'; +import '../../wallets/wallet/impl/firo_wallet.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_dialog.dart'; import 'package:uuid/uuid.dart'; class ConfirmChangeNowSendView extends ConsumerStatefulWidget { diff --git a/lib/pages/exchange_view/edit_trade_note_view.dart b/lib/pages/exchange_view/edit_trade_note_view.dart index 13d152a84..9f6c795ec 100644 --- a/lib/pages/exchange_view/edit_trade_note_view.dart +++ b/lib/pages/exchange_view/edit_trade_note_view.dart @@ -10,16 +10,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/exchange/trade_note_service_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../providers/exchange/trade_note_service_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; class EditTradeNoteView extends ConsumerStatefulWidget { const EditTradeNoteView({ diff --git a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart index 2fac1d83d..7bda1abbf 100644 --- a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart +++ b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart @@ -13,34 +13,34 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/exceptions/exchange/unsupported_currency_exception.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; -import 'package:stackwallet/pages/buy_view/sub_widgets/crypto_selection_view.dart'; -import 'package:stackwallet/services/exchange/change_now/change_now_exchange.dart'; -import 'package:stackwallet/services/exchange/exchange.dart'; -import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; -import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; -import 'package:stackwallet/services/exchange/trocador/trocador_exchange.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../exceptions/exchange/unsupported_currency_exception.dart'; +import '../../../models/isar/exchange_cache/currency.dart'; +import '../../../models/isar/exchange_cache/pair.dart'; +import '../../buy_view/sub_widgets/crypto_selection_view.dart'; +import '../../../services/exchange/change_now/change_now_exchange.dart'; +import '../../../services/exchange/exchange.dart'; +import '../../../services/exchange/exchange_data_loading_service.dart'; +import '../../../services/exchange/majestic_bank/majestic_bank_exchange.dart'; +import '../../../services/exchange/trocador/trocador_exchange.dart'; +import '../../../app_config.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/prefs.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/custom_loading_overlay.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/loading_indicator.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_dialog.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class ExchangeCurrencySelectionView extends StatefulWidget { const ExchangeCurrencySelectionView({ diff --git a/lib/pages/exchange_view/exchange_form.dart b/lib/pages/exchange_view/exchange_form.dart index 2dbd40094..2783e9371 100644 --- a/lib/pages/exchange_view/exchange_form.dart +++ b/lib/pages/exchange_view/exchange_form.dart @@ -16,45 +16,45 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/exchange/aggregate_currency.dart'; -import 'package:stackwallet/models/exchange/incomplete_exchange.dart'; -import 'package:stackwallet/models/exchange/response_objects/estimate.dart'; -import 'package:stackwallet/models/exchange/response_objects/range.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_step_views/step_1_view.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_step_views/step_2_view.dart'; -import 'package:stackwallet/pages/exchange_view/sub_widgets/exchange_provider_options.dart'; -import 'package:stackwallet/pages/exchange_view/sub_widgets/rate_type_toggle.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/exchange/change_now/change_now_exchange.dart'; -import 'package:stackwallet/services/exchange/exchange.dart'; -import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; -import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; -import 'package:stackwallet/services/exchange/trocador/trocador_exchange.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/textfields/exchange_textfield.dart'; +import '../../models/exchange/aggregate_currency.dart'; +import '../../models/exchange/incomplete_exchange.dart'; +import '../../models/exchange/response_objects/estimate.dart'; +import '../../models/exchange/response_objects/range.dart'; +import '../../models/isar/exchange_cache/currency.dart'; +import '../../models/isar/exchange_cache/pair.dart'; +import '../../models/isar/models/ethereum/eth_contract.dart'; +import 'exchange_coin_selection/exchange_currency_selection_view.dart'; +import 'exchange_step_views/step_1_view.dart'; +import 'exchange_step_views/step_2_view.dart'; +import 'sub_widgets/exchange_provider_options.dart'; +import 'sub_widgets/rate_type_toggle.dart'; +import '../../pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart'; +import '../../providers/providers.dart'; +import '../../services/exchange/change_now/change_now_exchange.dart'; +import '../../services/exchange/exchange.dart'; +import '../../services/exchange/exchange_data_loading_service.dart'; +import '../../services/exchange/exchange_response.dart'; +import '../../services/exchange/majestic_bank/majestic_bank_exchange.dart'; +import '../../services/exchange/trocador/trocador_exchange.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/amount/amount_unit.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/enums/exchange_rate_type_enum.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/crypto_currency/coins/bitcoin.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_loading_overlay.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_dialog.dart'; +import '../../widgets/textfields/exchange_textfield.dart'; import 'package:tuple/tuple.dart'; import 'package:uuid/uuid.dart'; diff --git a/lib/pages/exchange_view/exchange_loading_overlay.dart b/lib/pages/exchange_view/exchange_loading_overlay.dart index 022855a03..b73d22527 100644 --- a/lib/pages/exchange_view/exchange_loading_overlay.dart +++ b/lib/pages/exchange_view/exchange_loading_overlay.dart @@ -10,11 +10,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/exchange/changenow_initial_load_status.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../providers/exchange/changenow_initial_load_status.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/custom_loading_overlay.dart'; +import '../../widgets/stack_dialog.dart'; class ExchangeLoadingOverlayView extends ConsumerStatefulWidget { const ExchangeLoadingOverlayView({ diff --git a/lib/pages/exchange_view/exchange_step_views/step_1_view.dart b/lib/pages/exchange_view/exchange_step_views/step_1_view.dart index 1795519b9..c02647f6e 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_1_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_1_view.dart @@ -9,16 +9,16 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/models/exchange/incomplete_exchange.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_step_views/step_2_view.dart'; -import 'package:stackwallet/pages/exchange_view/sub_widgets/step_row.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../models/exchange/incomplete_exchange.dart'; +import 'step_2_view.dart'; +import '../sub_widgets/step_row.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/enums/exchange_rate_type_enum.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/rounded_white_container.dart'; class Step1View extends StatefulWidget { const Step1View({ diff --git a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart index 941707b63..e2ed07229 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart @@ -11,33 +11,33 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/exchange/incomplete_exchange.dart'; -import 'package:stackwallet/pages/address_book_views/address_book_view.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/contact_popup.dart'; -import 'package:stackwallet/pages/exchange_view/choose_from_stack_view.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_step_views/step_3_view.dart'; -import 'package:stackwallet/pages/exchange_view/sub_widgets/step_row.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/addressbook_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../app_config.dart'; +import '../../../models/exchange/incomplete_exchange.dart'; +import '../../address_book_views/address_book_view.dart'; +import '../../address_book_views/subviews/contact_popup.dart'; +import '../choose_from_stack_view.dart'; +import 'step_3_view.dart'; +import '../sub_widgets/step_row.dart'; +import '../../../providers/providers.dart'; +import '../../../services/exchange/majestic_bank/majestic_bank_exchange.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/address_utils.dart'; +import '../../../utilities/barcode_scanner_interface.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/icon_widgets/addressbook_icon.dart'; +import '../../../widgets/icon_widgets/clipboard_icon.dart'; +import '../../../widgets/icon_widgets/qrcode_icon.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class Step2View extends ConsumerStatefulWidget { const Step2View({ diff --git a/lib/pages/exchange_view/exchange_step_views/step_3_view.dart b/lib/pages/exchange_view/exchange_step_views/step_3_view.dart index 318a5c0e4..2e6b2b237 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_3_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_3_view.dart @@ -12,25 +12,25 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/exchange/incomplete_exchange.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_step_views/step_4_view.dart'; -import 'package:stackwallet/pages/exchange_view/sub_widgets/step_row.dart'; -import 'package:stackwallet/providers/global/trades_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; -import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; -import 'package:stackwallet/services/notifications_api.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../models/exchange/incomplete_exchange.dart'; +import '../../../models/exchange/response_objects/trade.dart'; +import 'step_4_view.dart'; +import '../sub_widgets/step_row.dart'; +import '../../../providers/global/trades_service_provider.dart'; +import '../../../providers/providers.dart'; +import '../../../services/exchange/exchange_response.dart'; +import '../../../services/exchange/majestic_bank/majestic_bank_exchange.dart'; +import '../../../services/notifications_api.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/enums/exchange_rate_type_enum.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/custom_loading_overlay.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_dialog.dart'; class Step3View extends ConsumerStatefulWidget { const Step3View({ diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index b98750816..3d0730ee4 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -15,35 +15,35 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/exchange/incomplete_exchange.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/exchange_view/confirm_change_now_send.dart'; -import 'package:stackwallet/pages/exchange_view/send_from_view.dart'; -import 'package:stackwallet/pages/exchange_view/sub_widgets/step_row.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/building_transaction_dialog.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../app_config.dart'; +import '../../../models/exchange/incomplete_exchange.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../confirm_change_now_send.dart'; +import '../send_from_view.dart'; +import '../sub_widgets/step_row.dart'; +import '../../home_view/home_view.dart'; +import '../../send_view/sub_widgets/building_transaction_dialog.dart'; +import '../../wallet_view/wallet_view.dart'; +import '../../../providers/providers.dart'; +import '../../../route_generator.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/enums/fee_rate_type_enum.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/models/tx_data.dart'; +import '../../../wallets/wallet/impl/firo_wallet.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/rounded_container.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_dialog.dart'; import 'package:tuple/tuple.dart'; class Step4View extends ConsumerStatefulWidget { diff --git a/lib/pages/exchange_view/exchange_view.dart b/lib/pages/exchange_view/exchange_view.dart index e13f97a8e..b5fe193bd 100644 --- a/lib/pages/exchange_view/exchange_view.dart +++ b/lib/pages/exchange_view/exchange_view.dart @@ -13,19 +13,19 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_form.dart'; -import 'package:stackwallet/pages/exchange_view/trade_details_view.dart'; -import 'package:stackwallet/providers/global/trades_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; -import 'package:stackwallet/widgets/trade_card.dart'; +import '../../db/isar/main_db.dart'; +import '../../models/isar/models/blockchain_data/transaction.dart'; +import 'exchange_form.dart'; +import 'trade_details_view.dart'; +import '../../providers/global/trades_service_provider.dart'; +import '../../providers/providers.dart'; +import '../../services/exchange/exchange_data_loading_service.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_loading_overlay.dart'; +import '../../widgets/trade_card.dart'; import 'package:tuple/tuple.dart'; class ExchangeView extends ConsumerStatefulWidget { diff --git a/lib/pages/exchange_view/send_from_view.dart b/lib/pages/exchange_view/send_from_view.dart index b0dbd0252..bf7e18df2 100644 --- a/lib/pages/exchange_view/send_from_view.dart +++ b/lib/pages/exchange_view/send_from_view.dart @@ -14,37 +14,37 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/pages/exchange_view/confirm_change_now_send.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/building_transaction_dialog.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/desktop_exchange_view.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/expandable.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../models/exchange/response_objects/trade.dart'; +import 'confirm_change_now_send.dart'; +import '../home_view/home_view.dart'; +import '../send_view/sub_widgets/building_transaction_dialog.dart'; +import '../../pages_desktop_specific/desktop_exchange/desktop_exchange_view.dart'; +import '../../providers/providers.dart'; +import '../../route_generator.dart'; +import '../../themes/coin_icon_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_formatter.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/enums/fee_rate_type_enum.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/crypto_currency/coins/firo.dart'; +import '../../wallets/crypto_currency/coins/stellar.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/models/tx_data.dart'; +import '../../wallets/wallet/impl/firo_wallet.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../widgets/expandable.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_dialog.dart'; class SendFromView extends ConsumerStatefulWidget { const SendFromView({ diff --git a/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart b/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart index c4d089b55..83937ac0e 100644 --- a/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart +++ b/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart @@ -12,25 +12,25 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/exchange/response_objects/estimate.dart'; -import 'package:stackwallet/providers/exchange/exchange_form_state_provider.dart'; -import 'package:stackwallet/providers/global/locale_provider.dart'; -import 'package:stackwallet/services/exchange/exchange.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/animated_text.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/exchange/trocador/trocador_kyc_info_button.dart'; -import 'package:stackwallet/widgets/exchange/trocador/trocador_rating_type_enum.dart'; +import '../../../app_config.dart'; +import '../../../models/exchange/response_objects/estimate.dart'; +import '../../../providers/exchange/exchange_form_state_provider.dart'; +import '../../../providers/global/locale_provider.dart'; +import '../../../services/exchange/exchange.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/amount/amount_unit.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/enums/exchange_rate_type_enum.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/animated_text.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/exchange/trocador/trocador_kyc_info_button.dart'; +import '../../../widgets/exchange/trocador/trocador_rating_type_enum.dart'; class ExchangeOption extends ConsumerStatefulWidget { const ExchangeOption({ diff --git a/lib/pages/exchange_view/sub_widgets/exchange_provider_options.dart b/lib/pages/exchange_view/sub_widgets/exchange_provider_options.dart index 6f0108f66..dd6afa8ed 100644 --- a/lib/pages/exchange_view/sub_widgets/exchange_provider_options.dart +++ b/lib/pages/exchange_view/sub_widgets/exchange_provider_options.dart @@ -10,17 +10,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/exchange/aggregate_currency.dart'; -import 'package:stackwallet/pages/exchange_view/sub_widgets/exchange_provider_option.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/exchange/change_now/change_now_exchange.dart'; -import 'package:stackwallet/services/exchange/exchange.dart'; -import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; -import 'package:stackwallet/services/exchange/trocador/trocador_exchange.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../models/exchange/aggregate_currency.dart'; +import 'exchange_provider_option.dart'; +import '../../../providers/providers.dart'; +import '../../../services/exchange/change_now/change_now_exchange.dart'; +import '../../../services/exchange/exchange.dart'; +import '../../../services/exchange/majestic_bank/majestic_bank_exchange.dart'; +import '../../../services/exchange/trocador/trocador_exchange.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/prefs.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/rounded_white_container.dart'; class ExchangeProviderOptions extends ConsumerStatefulWidget { const ExchangeProviderOptions({ diff --git a/lib/pages/exchange_view/sub_widgets/rate_type_toggle.dart b/lib/pages/exchange_view/sub_widgets/rate_type_toggle.dart index e98ed3b37..6840fa139 100644 --- a/lib/pages/exchange_view/sub_widgets/rate_type_toggle.dart +++ b/lib/pages/exchange_view/sub_widgets/rate_type_toggle.dart @@ -10,13 +10,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/toggle.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/enums/exchange_rate_type_enum.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/toggle.dart'; class RateTypeToggle extends ConsumerWidget { const RateTypeToggle({ diff --git a/lib/pages/exchange_view/sub_widgets/step_indicator.dart b/lib/pages/exchange_view/sub_widgets/step_indicator.dart index 3fedfc459..d1d440190 100644 --- a/lib/pages/exchange_view/sub_widgets/step_indicator.dart +++ b/lib/pages/exchange_view/sub_widgets/step_indicator.dart @@ -10,9 +10,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; enum StepIndicatorStatus { current, completed, incomplete } diff --git a/lib/pages/exchange_view/sub_widgets/step_row.dart b/lib/pages/exchange_view/sub_widgets/step_row.dart index 6dc6a4db4..95a8f4a17 100644 --- a/lib/pages/exchange_view/sub_widgets/step_row.dart +++ b/lib/pages/exchange_view/sub_widgets/step_row.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/pages/exchange_view/sub_widgets/step_indicator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; +import 'step_indicator.dart'; +import '../../../themes/stack_colors.dart'; class StepRow extends StatelessWidget { const StepRow({ diff --git a/lib/pages/exchange_view/trade_details_view.dart b/lib/pages/exchange_view/trade_details_view.dart index 93cf4cfd2..552ae0891 100644 --- a/lib/pages/exchange_view/trade_details_view.dart +++ b/lib/pages/exchange_view/trade_details_view.dart @@ -17,43 +17,43 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction_status.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/exchange_view/edit_trade_note_view.dart'; -import 'package:stackwallet/pages/exchange_view/send_from_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/edit_note_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/providers/global/trades_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/services/exchange/change_now/change_now_exchange.dart'; -import 'package:stackwallet/services/exchange/exchange.dart'; -import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; -import 'package:stackwallet/services/exchange/simpleswap/simpleswap_exchange.dart'; -import 'package:stackwallet/services/exchange/trocador/trocador_exchange.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../app_config.dart'; +import '../../models/exchange/change_now/exchange_transaction_status.dart'; +import '../../models/isar/models/blockchain_data/transaction.dart'; +import '../../models/isar/stack_theme.dart'; +import '../../notifications/show_flush_bar.dart'; +import 'edit_trade_note_view.dart'; +import 'send_from_view.dart'; +import '../wallet_view/transaction_views/edit_note_view.dart'; +import '../wallet_view/transaction_views/transaction_details_view.dart'; +import '../../providers/global/trades_service_provider.dart'; +import '../../providers/providers.dart'; +import '../../route_generator.dart'; +import '../../services/exchange/change_now/change_now_exchange.dart'; +import '../../services/exchange/exchange.dart'; +import '../../services/exchange/majestic_bank/majestic_bank_exchange.dart'; +import '../../services/exchange/simpleswap/simpleswap_exchange.dart'; +import '../../services/exchange/trocador/trocador_exchange.dart'; +import '../../themes/stack_colors.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_formatter.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/clipboard_interface.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/format.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_dialog.dart'; import 'package:tuple/tuple.dart'; import 'package:url_launcher/url_launcher.dart'; diff --git a/lib/pages/exchange_view/wallet_initiated_exchange_view.dart b/lib/pages/exchange_view/wallet_initiated_exchange_view.dart index 9804a46c2..ac81190bf 100644 --- a/lib/pages/exchange_view/wallet_initiated_exchange_view.dart +++ b/lib/pages/exchange_view/wallet_initiated_exchange_view.dart @@ -12,19 +12,19 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_form.dart'; -import 'package:stackwallet/pages/exchange_view/sub_widgets/step_row.dart'; -import 'package:stackwallet/providers/exchange/exchange_form_state_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; +import '../../models/isar/models/isar_models.dart'; +import 'exchange_form.dart'; +import 'sub_widgets/step_row.dart'; +import '../../providers/exchange/exchange_form_state_provider.dart'; +import '../../providers/global/prefs_provider.dart'; +import '../../services/exchange/exchange_data_loading_service.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_loading_overlay.dart'; class WalletInitiatedExchangeView extends ConsumerStatefulWidget { const WalletInitiatedExchangeView({ diff --git a/lib/pages/generic/single_field_edit_view.dart b/lib/pages/generic/single_field_edit_view.dart index 1cd8e33b3..d78f6f599 100644 --- a/lib/pages/generic/single_field_edit_view.dart +++ b/lib/pages/generic/single_field_edit_view.dart @@ -10,19 +10,19 @@ import 'package:flutter/material.dart'; import 'package:flutter_native_splash/cli_commands.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; class SingleFieldEditView extends StatefulWidget { const SingleFieldEditView({ diff --git a/lib/pages/home_view/home_view.dart b/lib/pages/home_view/home_view.dart index a54f89836..df2966d41 100644 --- a/lib/pages/home_view/home_view.dart +++ b/lib/pages/home_view/home_view.dart @@ -14,28 +14,28 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/pages/buy_view/buy_view.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_view.dart'; -import 'package:stackwallet/pages/home_view/sub_widgets/home_view_button_bar.dart'; -import 'package:stackwallet/pages/notification_views/notifications_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/global_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/hidden_settings.dart'; -import 'package:stackwallet/pages/wallets_view/wallets_view.dart'; -import 'package:stackwallet/providers/global/notifications_provider.dart'; -import 'package:stackwallet/providers/ui/home_view_index_provider.dart'; -import 'package:stackwallet/providers/ui/unread_notifications_provider.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/small_tor_icon.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../app_config.dart'; +import '../buy_view/buy_view.dart'; +import '../exchange_view/exchange_view.dart'; +import 'sub_widgets/home_view_button_bar.dart'; +import '../notification_views/notifications_view.dart'; +import '../settings_views/global_settings_view/global_settings_view.dart'; +import '../settings_views/global_settings_view/hidden_settings.dart'; +import '../wallets_view/wallets_view.dart'; +import '../../providers/global/notifications_provider.dart'; +import '../../providers/ui/home_view_index_provider.dart'; +import '../../providers/ui/unread_notifications_provider.dart'; +import '../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../../themes/stack_colors.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/animated_widgets/rotate_icon.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/small_tor_icon.dart'; +import '../../widgets/stack_dialog.dart'; class HomeView extends ConsumerStatefulWidget { const HomeView({Key? key}) : super(key: key); diff --git a/lib/pages/home_view/sub_widgets/home_view_button_bar.dart b/lib/pages/home_view/sub_widgets/home_view_button_bar.dart index 098ba4843..e51ecacb7 100644 --- a/lib/pages/home_view/sub_widgets/home_view_button_bar.dart +++ b/lib/pages/home_view/sub_widgets/home_view_button_bar.dart @@ -10,9 +10,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/text_styles.dart'; class HomeViewButtonBar extends ConsumerStatefulWidget { const HomeViewButtonBar({Key? key}) : super(key: key); diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index 6c9984610..5b6be3d4c 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -14,16 +14,16 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/pages/stack_privacy_calls.dart'; -import 'package:stackwallet/pages_desktop_specific/password/create_password_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; +import '../app_config.dart'; +import 'stack_privacy_calls.dart'; +import '../pages_desktop_specific/password/create_password_view.dart'; +import '../themes/stack_colors.dart'; +import '../themes/theme_providers.dart'; +import '../utilities/prefs.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; +import '../widgets/background.dart'; +import '../widgets/desktop/secondary_button.dart'; import 'package:url_launcher/url_launcher.dart'; class IntroView extends ConsumerStatefulWidget { diff --git a/lib/pages/loading_view.dart b/lib/pages/loading_view.dart index ef2bba93f..67598d894 100644 --- a/lib/pages/loading_view.dart +++ b/lib/pages/loading_view.dart @@ -14,12 +14,12 @@ import 'dart:math'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:lottie/lottie.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../themes/stack_colors.dart'; +import '../themes/theme_providers.dart'; +import '../utilities/assets.dart'; +import '../widgets/background.dart'; +import '../widgets/conditional_parent.dart'; +import '../widgets/rounded_container.dart'; class LoadingView extends ConsumerWidget { const LoadingView({Key? key}) : super(key: key); diff --git a/lib/pages/manage_favorites_view/manage_favorites_view.dart b/lib/pages/manage_favorites_view/manage_favorites_view.dart index d7f297689..a6fe24401 100644 --- a/lib/pages/manage_favorites_view/manage_favorites_view.dart +++ b/lib/pages/manage_favorites_view/manage_favorites_view.dart @@ -10,16 +10,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/favourite_wallets_provider.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/managed_favorite.dart'; +import '../../providers/db/main_db_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/isar/providers/favourite_wallets_provider.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/managed_favorite.dart'; class ManageFavoritesView extends StatelessWidget { const ManageFavoritesView({Key? key}) : super(key: key); diff --git a/lib/pages/monkey/monkey_view.dart b/lib/pages/monkey/monkey_view.dart index 9e8bdb090..d2da7026a 100644 --- a/lib/pages/monkey/monkey_view.dart +++ b/lib/pages/monkey/monkey_view.dart @@ -6,27 +6,27 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/services/monkey_service.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/banano_wallet.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../services/monkey_service.dart'; +import '../../themes/coin_icon_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/show_loading.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/wallet/impl/banano_wallet.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/stack_dialog.dart'; class MonkeyView extends ConsumerStatefulWidget { const MonkeyView({ diff --git a/lib/pages/monkey/sub_widgets/fetch_monkey_dialog.dart b/lib/pages/monkey/sub_widgets/fetch_monkey_dialog.dart index 94034fb78..ba691645c 100644 --- a/lib/pages/monkey/sub_widgets/fetch_monkey_dialog.dart +++ b/lib/pages/monkey/sub_widgets/fetch_monkey_dialog.dart @@ -9,14 +9,14 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/animated_widgets/rotating_arrows.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/stack_dialog.dart'; class FetchMonkeyDialog extends StatefulWidget { const FetchMonkeyDialog({ diff --git a/lib/pages/notification_views/notifications_view.dart b/lib/pages/notification_views/notifications_view.dart index 18af772ba..03fbeb784 100644 --- a/lib/pages/notification_views/notifications_view.dart +++ b/lib/pages/notification_views/notifications_view.dart @@ -10,14 +10,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/notifications/notification_card.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/ui/unread_notifications_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../notifications/notification_card.dart'; +import '../../providers/providers.dart'; +import '../../providers/ui/unread_notifications_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/rounded_white_container.dart'; class NotificationsView extends ConsumerStatefulWidget { const NotificationsView({ diff --git a/lib/pages/ordinals/ordinal_details_view.dart b/lib/pages/ordinals/ordinal_details_view.dart index 995c8fbb7..5fa7cfd25 100644 --- a/lib/pages/ordinals/ordinal_details_view.dart +++ b/lib/pages/ordinals/ordinal_details_view.dart @@ -7,25 +7,25 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart'; -import 'package:stackwallet/models/isar/ordinal.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../models/isar/models/blockchain_data/utxo.dart'; +import '../../models/isar/ordinal.dart'; +import '../../networking/http.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../../providers/db/main_db_provider.dart'; +import '../../providers/global/prefs_provider.dart'; +import '../../services/tor_service.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_formatter.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/show_loading.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/rounded_white_container.dart'; class OrdinalDetailsView extends ConsumerStatefulWidget { const OrdinalDetailsView({ diff --git a/lib/pages/ordinals/ordinals_filter_view.dart b/lib/pages/ordinals/ordinals_filter_view.dart index 1d2f61695..5f598708f 100644 --- a/lib/pages/ordinals/ordinals_filter_view.dart +++ b/lib/pages/ordinals/ordinals_filter_view.dart @@ -11,23 +11,23 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/date_picker/date_picker.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../themes/stack_colors.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/format.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/date_picker/date_picker.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; class OrdinalFilter { // final bool isMoonbird; diff --git a/lib/pages/ordinals/ordinals_view.dart b/lib/pages/ordinals/ordinals_view.dart index c02d450bf..844523110 100644 --- a/lib/pages/ordinals/ordinals_view.dart +++ b/lib/pages/ordinals/ordinals_view.dart @@ -11,15 +11,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/ordinals/widgets/ordinals_list.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; +import 'widgets/ordinals_list.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/show_loading.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; class OrdinalsView extends ConsumerStatefulWidget { const OrdinalsView({ diff --git a/lib/pages/ordinals/widgets/dialogs.dart b/lib/pages/ordinals/widgets/dialogs.dart index ee5b57d33..fca607961 100644 --- a/lib/pages/ordinals/widgets/dialogs.dart +++ b/lib/pages/ordinals/widgets/dialogs.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/stack_dialog.dart'; class SendOrdinalUnfreezeDialog extends StatelessWidget { const SendOrdinalUnfreezeDialog({super.key}); diff --git a/lib/pages/ordinals/widgets/ordinal_card.dart b/lib/pages/ordinals/widgets/ordinal_card.dart index c74366d74..b5a561f48 100644 --- a/lib/pages/ordinals/widgets/ordinal_card.dart +++ b/lib/pages/ordinals/widgets/ordinal_card.dart @@ -1,11 +1,11 @@ import 'package:flutter/material.dart'; -import 'package:stackwallet/models/isar/ordinal.dart'; -import 'package:stackwallet/pages/ordinals/ordinal_details_view.dart'; -import 'package:stackwallet/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../models/isar/ordinal.dart'; +import '../ordinal_details_view.dart'; +import '../../../pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/rounded_white_container.dart'; class OrdinalCard extends StatelessWidget { const OrdinalCard({ diff --git a/lib/pages/ordinals/widgets/ordinals_list.dart b/lib/pages/ordinals/widgets/ordinals_list.dart index 481b0ef0a..0e9516127 100644 --- a/lib/pages/ordinals/widgets/ordinals_list.dart +++ b/lib/pages/ordinals/widgets/ordinals_list.dart @@ -3,13 +3,13 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/ordinal.dart'; -import 'package:stackwallet/pages/ordinals/widgets/ordinal_card.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../models/isar/ordinal.dart'; +import 'ordinal_card.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/rounded_white_container.dart'; class OrdinalsList extends ConsumerStatefulWidget { const OrdinalsList({ diff --git a/lib/pages/paynym/add_new_paynym_follow_view.dart b/lib/pages/paynym/add_new_paynym_follow_view.dart index 8a32e21ea..f02089c05 100644 --- a/lib/pages/paynym/add_new_paynym_follow_view.dart +++ b/lib/pages/paynym/add_new_paynym_follow_view.dart @@ -13,30 +13,30 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/paynym/paynym_account.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/featured_paynyms_widget.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/paynym_card.dart'; -import 'package:stackwallet/providers/global/paynym_api_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/paynym_search_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../models/paynym/paynym_account.dart'; +import 'subwidgets/featured_paynyms_widget.dart'; +import 'subwidgets/paynym_card.dart'; +import '../../providers/global/paynym_api_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/barcode_scanner_interface.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/paynym_search_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/icon_widgets/clipboard_icon.dart'; +import '../../widgets/icon_widgets/qrcode_icon.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/loading_indicator.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; class AddNewPaynymFollowView extends ConsumerStatefulWidget { const AddNewPaynymFollowView({ diff --git a/lib/pages/paynym/dialogs/claiming_paynym_dialog.dart b/lib/pages/paynym/dialogs/claiming_paynym_dialog.dart index d4652948f..2adad5a69 100644 --- a/lib/pages/paynym/dialogs/claiming_paynym_dialog.dart +++ b/lib/pages/paynym/dialogs/claiming_paynym_dialog.dart @@ -9,14 +9,14 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/animated_widgets/rotating_arrows.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/stack_dialog.dart'; class ClaimingPaynymDialog extends StatefulWidget { const ClaimingPaynymDialog({ diff --git a/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart b/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart index 6c53e5370..ee2504d35 100644 --- a/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart +++ b/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart @@ -11,18 +11,18 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/stack_dialog.dart'; class ConfirmPaynymConnectDialog extends ConsumerWidget { const ConfirmPaynymConnectDialog({ diff --git a/lib/pages/paynym/dialogs/paynym_details_popup.dart b/lib/pages/paynym/dialogs/paynym_details_popup.dart index 922b775c3..aa4774646 100644 --- a/lib/pages/paynym/dialogs/paynym_details_popup.dart +++ b/lib/pages/paynym/dialogs/paynym_details_popup.dart @@ -15,30 +15,30 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/exceptions/wallet/insufficient_balance_exception.dart'; -import 'package:stackwallet/models/paynym/paynym_account_lite.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart'; -import 'package:stackwallet/pages/paynym/paynym_home_view.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/paynym_bot.dart'; -import 'package:stackwallet/pages/send_view/confirm_transaction_view.dart'; -import 'package:stackwallet/pages/send_view/send_view.dart'; -import 'package:stackwallet/providers/global/locale_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -import 'package:stackwallet/widgets/custom_buttons/paynym_follow_toggle_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../exceptions/wallet/insufficient_balance_exception.dart'; +import '../../../models/paynym/paynym_account_lite.dart'; +import '../../../notifications/show_flush_bar.dart'; +import 'confirm_paynym_connect_dialog.dart'; +import '../paynym_home_view.dart'; +import '../subwidgets/paynym_bot.dart'; +import '../../send_view/confirm_transaction_view.dart'; +import '../../send_view/send_view.dart'; +import '../../../providers/global/locale_provider.dart'; +import '../../../providers/global/wallets_provider.dart'; +import '../../../route_generator.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/models/tx_data.dart'; +import '../../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../../widgets/custom_buttons/paynym_follow_toggle_button.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/loading_indicator.dart'; +import '../../../widgets/rounded_container.dart'; +import '../../../widgets/stack_dialog.dart'; import 'package:tuple/tuple.dart'; class PaynymDetailsPopup extends ConsumerStatefulWidget { diff --git a/lib/pages/paynym/dialogs/paynym_qr_popup.dart b/lib/pages/paynym/dialogs/paynym_qr_popup.dart index 076204950..757761396 100644 --- a/lib/pages/paynym/dialogs/paynym_qr_popup.dart +++ b/lib/pages/paynym/dialogs/paynym_qr_popup.dart @@ -13,16 +13,16 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/models/paynym/paynym_account.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/paynym_bot.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../models/paynym/paynym_account.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../subwidgets/paynym_bot.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; class PaynymQrPopup extends StatelessWidget { const PaynymQrPopup({ diff --git a/lib/pages/paynym/paynym_claim_view.dart b/lib/pages/paynym/paynym_claim_view.dart index df29c7e1a..457179655 100644 --- a/lib/pages/paynym/paynym_claim_view.dart +++ b/lib/pages/paynym/paynym_claim_view.dart @@ -13,23 +13,23 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/models/paynym/paynym_account.dart'; -import 'package:stackwallet/pages/paynym/dialogs/claiming_paynym_dialog.dart'; -import 'package:stackwallet/pages/paynym/paynym_home_view.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/providers/global/paynym_api_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/providers/wallet/my_paynym_account_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; +import '../../models/paynym/paynym_account.dart'; +import 'dialogs/claiming_paynym_dialog.dart'; +import 'paynym_home_view.dart'; +import '../wallet_view/wallet_view.dart'; +import '../../providers/global/paynym_api_provider.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../providers/wallet/my_paynym_account_state_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/primary_button.dart'; class PaynymClaimView extends ConsumerStatefulWidget { const PaynymClaimView({ diff --git a/lib/pages/paynym/paynym_home_view.dart b/lib/pages/paynym/paynym_home_view.dart index 008ab3cbf..be8e9db4c 100644 --- a/lib/pages/paynym/paynym_home_view.dart +++ b/lib/pages/paynym/paynym_home_view.dart @@ -15,32 +15,32 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:share_plus/share_plus.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/paynym/add_new_paynym_follow_view.dart'; -import 'package:stackwallet/pages/paynym/dialogs/paynym_qr_popup.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/desktop_paynym_details.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/paynym_bot.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/paynym_followers_list.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/paynym_following_list.dart'; -import 'package:stackwallet/providers/ui/selected_paynym_details_item_Provider.dart'; -import 'package:stackwallet/providers/wallet/my_paynym_account_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/copy_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/share_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/toggle.dart'; +import '../../notifications/show_flush_bar.dart'; +import 'add_new_paynym_follow_view.dart'; +import 'dialogs/paynym_qr_popup.dart'; +import 'subwidgets/desktop_paynym_details.dart'; +import 'subwidgets/paynym_bot.dart'; +import 'subwidgets/paynym_followers_list.dart'; +import 'subwidgets/paynym_following_list.dart'; +import '../../providers/ui/selected_paynym_details_item_Provider.dart'; +import '../../providers/wallet/my_paynym_account_state_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/format.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/icon_widgets/copy_icon.dart'; +import '../../widgets/icon_widgets/qrcode_icon.dart'; +import '../../widgets/icon_widgets/share_icon.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/toggle.dart'; class PaynymHomeView extends ConsumerStatefulWidget { const PaynymHomeView({ diff --git a/lib/pages/paynym/subwidgets/desktop_paynym_details.dart b/lib/pages/paynym/subwidgets/desktop_paynym_details.dart index 48a8a3684..bc2fef85f 100644 --- a/lib/pages/paynym/subwidgets/desktop_paynym_details.dart +++ b/lib/pages/paynym/subwidgets/desktop_paynym_details.dart @@ -15,29 +15,29 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/exceptions/wallet/insufficient_balance_exception.dart'; -import 'package:stackwallet/models/paynym/paynym_account_lite.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/paynym_bot.dart'; -import 'package:stackwallet/pages/send_view/confirm_transaction_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart'; -import 'package:stackwallet/providers/global/locale_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../../exceptions/wallet/insufficient_balance_exception.dart'; +import '../../../models/paynym/paynym_account_lite.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../dialogs/confirm_paynym_connect_dialog.dart'; +import 'paynym_bot.dart'; +import '../../send_view/confirm_transaction_view.dart'; +import '../../../pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart'; +import '../../../providers/global/locale_provider.dart'; +import '../../../providers/global/wallets_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/paynym_follow_toggle_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/models/tx_data.dart'; +import '../../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/custom_buttons/paynym_follow_toggle_button.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/loading_indicator.dart'; +import '../../../widgets/rounded_container.dart'; +import '../../../widgets/rounded_white_container.dart'; class DesktopPaynymDetails extends ConsumerStatefulWidget { const DesktopPaynymDetails({ diff --git a/lib/pages/paynym/subwidgets/featured_paynyms_widget.dart b/lib/pages/paynym/subwidgets/featured_paynyms_widget.dart index af363945d..645d8cf60 100644 --- a/lib/pages/paynym/subwidgets/featured_paynyms_widget.dart +++ b/lib/pages/paynym/subwidgets/featured_paynyms_widget.dart @@ -9,12 +9,12 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/paynym_card.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/featured_paynyms.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'paynym_card.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/featured_paynyms.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/rounded_white_container.dart'; class FeaturedPaynymsWidget extends StatelessWidget { const FeaturedPaynymsWidget({ diff --git a/lib/pages/paynym/subwidgets/paynym_bot.dart b/lib/pages/paynym/subwidgets/paynym_bot.dart index 082f7034e..ab72dce24 100644 --- a/lib/pages/paynym/subwidgets/paynym_bot.dart +++ b/lib/pages/paynym/subwidgets/paynym_bot.dart @@ -11,9 +11,9 @@ import 'dart:typed_data'; import 'package:flutter/material.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../../../networking/http.dart'; +import '../../../services/tor_service.dart'; +import '../../../utilities/prefs.dart'; class PayNymBot extends StatelessWidget { const PayNymBot({ diff --git a/lib/pages/paynym/subwidgets/paynym_card.dart b/lib/pages/paynym/subwidgets/paynym_card.dart index 8dab52869..1a81202a6 100644 --- a/lib/pages/paynym/subwidgets/paynym_card.dart +++ b/lib/pages/paynym/subwidgets/paynym_card.dart @@ -9,12 +9,12 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/paynym_bot.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/paynym_follow_toggle_button.dart'; +import 'paynym_bot.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/format.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/custom_buttons/paynym_follow_toggle_button.dart'; class PaynymCard extends StatefulWidget { const PaynymCard({ diff --git a/lib/pages/paynym/subwidgets/paynym_card_button.dart b/lib/pages/paynym/subwidgets/paynym_card_button.dart index 07a5ece1e..869d6244d 100644 --- a/lib/pages/paynym/subwidgets/paynym_card_button.dart +++ b/lib/pages/paynym/subwidgets/paynym_card_button.dart @@ -10,16 +10,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/paynym/paynym_account_lite.dart'; -import 'package:stackwallet/pages/paynym/dialogs/paynym_details_popup.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/paynym_bot.dart'; -import 'package:stackwallet/providers/ui/selected_paynym_details_item_Provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../../models/paynym/paynym_account_lite.dart'; +import '../dialogs/paynym_details_popup.dart'; +import 'paynym_bot.dart'; +import '../../../providers/ui/selected_paynym_details_item_Provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/format.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/rounded_container.dart'; class PaynymCardButton extends ConsumerStatefulWidget { const PaynymCardButton({ diff --git a/lib/pages/paynym/subwidgets/paynym_followers_list.dart b/lib/pages/paynym/subwidgets/paynym_followers_list.dart index edd6155ff..55ac272f7 100644 --- a/lib/pages/paynym/subwidgets/paynym_followers_list.dart +++ b/lib/pages/paynym/subwidgets/paynym_followers_list.dart @@ -12,18 +12,18 @@ import 'dart:math'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/paynym_card_button.dart'; -import 'package:stackwallet/providers/global/paynym_api_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/providers/wallet/my_paynym_account_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'paynym_card_button.dart'; +import '../../../providers/global/paynym_api_provider.dart'; +import '../../../providers/global/wallets_provider.dart'; +import '../../../providers/wallet/my_paynym_account_state_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/rounded_white_container.dart'; class PaynymFollowersList extends ConsumerStatefulWidget { const PaynymFollowersList({ diff --git a/lib/pages/paynym/subwidgets/paynym_following_list.dart b/lib/pages/paynym/subwidgets/paynym_following_list.dart index 069d225bf..3536f5760 100644 --- a/lib/pages/paynym/subwidgets/paynym_following_list.dart +++ b/lib/pages/paynym/subwidgets/paynym_following_list.dart @@ -12,18 +12,18 @@ import 'dart:math'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/paynym/subwidgets/paynym_card_button.dart'; -import 'package:stackwallet/providers/global/paynym_api_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/providers/wallet/my_paynym_account_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'paynym_card_button.dart'; +import '../../../providers/global/paynym_api_provider.dart'; +import '../../../providers/global/wallets_provider.dart'; +import '../../../providers/wallet/my_paynym_account_state_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/rounded_white_container.dart'; class PaynymFollowingList extends ConsumerStatefulWidget { const PaynymFollowingList({ diff --git a/lib/pages/pinpad_views/create_pin_view.dart b/lib/pages/pinpad_views/create_pin_view.dart index 82c6c8a8e..05231181d 100644 --- a/lib/pages/pinpad_views/create_pin_view.dart +++ b/lib/pages/pinpad_views/create_pin_view.dart @@ -13,18 +13,18 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/biometrics.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_pin_put/custom_pin_put.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../home_view/home_view.dart'; +import '../../providers/global/prefs_provider.dart'; +import '../../providers/global/secure_store_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/biometrics.dart'; +import '../../utilities/flutter_secure_storage_interface.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_pin_put/custom_pin_put.dart'; class CreatePinView extends ConsumerStatefulWidget { const CreatePinView({ diff --git a/lib/pages/pinpad_views/lock_screen_view.dart b/lib/pages/pinpad_views/lock_screen_view.dart index 17d405206..ec4f7af76 100644 --- a/lib/pages/pinpad_views/lock_screen_view.dart +++ b/lib/pages/pinpad_views/lock_screen_view.dart @@ -12,27 +12,27 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../home_view/home_view.dart'; +import '../wallet_view/wallet_view.dart'; // import 'package:stackwallet/providers/global/has_authenticated_start_state_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; +import '../../providers/global/prefs_provider.dart'; +import '../../providers/global/secure_store_provider.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../themes/stack_colors.dart'; // import 'package:stackwallet/providers/global/should_show_lockscreen_on_resume_state_provider.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/biometrics.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/biometrics.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/custom_pin_put/custom_pin_put.dart'; -import 'package:stackwallet/widgets/shake/shake.dart'; +import '../../utilities/flutter_secure_storage_interface.dart'; +import '../../utilities/show_loading.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/custom_pin_put/custom_pin_put.dart'; +import '../../widgets/shake/shake.dart'; class LockscreenView extends ConsumerStatefulWidget { const LockscreenView({ diff --git a/lib/pages/receive_view/addresses/address_card.dart b/lib/pages/receive_view/addresses/address_card.dart index 9489712a4..9cd6fbb2f 100644 --- a/lib/pages/receive_view/addresses/address_card.dart +++ b/lib/pages/receive_view/addresses/address_card.dart @@ -22,24 +22,24 @@ import 'package:isar/isar.dart'; import 'package:path_provider/path_provider.dart'; import 'package:qr_flutter/qr_flutter.dart'; import 'package:share_plus/share_plus.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_edit_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../db/isar/main_db.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/address_utils.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/custom_buttons/simple_edit_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_dialog.dart'; class AddressCard extends ConsumerStatefulWidget { const AddressCard({ diff --git a/lib/pages/receive_view/addresses/address_details_view.dart b/lib/pages/receive_view/addresses/address_details_view.dart index 341bc4e8a..268a9bca7 100644 --- a/lib/pages/receive_view/addresses/address_details_view.dart +++ b/lib/pages/receive_view/addresses/address_details_view.dart @@ -12,30 +12,30 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/pages/receive_view/addresses/address_tag.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/no_transactions_found.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_edit_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/transaction_card.dart'; +import '../../../db/isar/main_db.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/isar/models/isar_models.dart'; +import 'address_tag.dart'; +import '../../wallet_view/sub_widgets/no_transactions_found.dart'; +import '../../wallet_view/transaction_views/transaction_details_view.dart'; +import '../../wallet_view/transaction_views/tx_v2/transaction_v2_card.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/global/wallets_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/address_utils.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../widgets/custom_buttons/simple_edit_button.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/transaction_card.dart'; class AddressDetailsView extends ConsumerStatefulWidget { const AddressDetailsView({ diff --git a/lib/pages/receive_view/addresses/address_qr_popup.dart b/lib/pages/receive_view/addresses/address_qr_popup.dart index c5ff43576..202876e26 100644 --- a/lib/pages/receive_view/addresses/address_qr_popup.dart +++ b/lib/pages/receive_view/addresses/address_qr_popup.dart @@ -20,17 +20,17 @@ import 'package:flutter_svg/svg.dart'; import 'package:path_provider/path_provider.dart'; import 'package:qr_flutter/qr_flutter.dart'; import 'package:share_plus/share_plus.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/address_utils.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/stack_dialog.dart'; class AddressQrPopup extends StatefulWidget { const AddressQrPopup({ diff --git a/lib/pages/receive_view/addresses/address_tag.dart b/lib/pages/receive_view/addresses/address_tag.dart index ceb9c35c8..c2258adda 100644 --- a/lib/pages/receive_view/addresses/address_tag.dart +++ b/lib/pages/receive_view/addresses/address_tag.dart @@ -10,9 +10,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_native_splash/cli_commands.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/rounded_container.dart'; class AddressTag extends StatelessWidget { const AddressTag({Key? key, required this.tag}) : super(key: key); diff --git a/lib/pages/receive_view/addresses/edit_address_label_view.dart b/lib/pages/receive_view/addresses/edit_address_label_view.dart index 75549c807..61c639877 100644 --- a/lib/pages/receive_view/addresses/edit_address_label_view.dart +++ b/lib/pages/receive_view/addresses/edit_address_label_view.dart @@ -11,20 +11,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/address_label.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../db/isar/main_db.dart'; +import '../../../models/isar/models/address_label.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class EditAddressLabelView extends ConsumerStatefulWidget { const EditAddressLabelView({ diff --git a/lib/pages/receive_view/addresses/wallet_addresses_view.dart b/lib/pages/receive_view/addresses/wallet_addresses_view.dart index c6cd03215..b0970395b 100644 --- a/lib/pages/receive_view/addresses/wallet_addresses_view.dart +++ b/lib/pages/receive_view/addresses/wallet_addresses_view.dart @@ -11,18 +11,18 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/pages/receive_view/addresses/address_card.dart'; -import 'package:stackwallet/pages/receive_view/addresses/address_details_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; +import '../../../db/isar/main_db.dart'; +import '../../../models/isar/models/isar_models.dart'; +import 'address_card.dart'; +import 'address_details_view.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/loading_indicator.dart'; import 'package:tuple/tuple.dart'; class WalletAddressesView extends ConsumerStatefulWidget { diff --git a/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart b/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart index 6b9b228b6..25c338b96 100644 --- a/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart +++ b/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart @@ -22,28 +22,28 @@ import 'package:flutter_svg/svg.dart'; import 'package:path_provider/path_provider.dart'; import 'package:qr_flutter/qr_flutter.dart'; import 'package:share_plus/share_plus.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/address_utils.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/clipboard_interface.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/crypto_currency/coins/bitcoincash.dart'; +import '../../wallets/crypto_currency/coins/ecash.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_dialog.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; class GenerateUriQrCodeView extends StatefulWidget { const GenerateUriQrCodeView({ diff --git a/lib/pages/receive_view/receive_view.dart b/lib/pages/receive_view/receive_view.dart index c2bc6f979..e9e85e8d1 100644 --- a/lib/pages/receive_view/receive_view.dart +++ b/lib/pages/receive_view/receive_view.dart @@ -17,35 +17,35 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/receive_view/addresses/wallet_addresses_view.dart'; -import 'package:stackwallet/pages/receive_view/generate_receiving_uri_qr_code_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_wallet.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/multi_address_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../models/isar/models/isar_models.dart'; +import '../../notifications/show_flush_bar.dart'; +import 'addresses/wallet_addresses_view.dart'; +import 'generate_receiving_uri_qr_code_view.dart'; +import '../../providers/db/main_db_provider.dart'; +import '../../providers/providers.dart'; +import '../../route_generator.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/address_utils.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/clipboard_interface.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/enums/derive_path_type_enum.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/wallet/impl/bitcoin_wallet.dart'; +import '../../wallets/wallet/intermediate/bip39_hd_wallet.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/multi_address_interface.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/custom_loading_overlay.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/rounded_white_container.dart'; class ReceiveView extends ConsumerStatefulWidget { const ReceiveView({ diff --git a/lib/pages/send_view/confirm_transaction_view.dart b/lib/pages/send_view/confirm_transaction_view.dart index daedd54e6..09237e080 100644 --- a/lib/pages/send_view/confirm_transaction_view.dart +++ b/lib/pages/send_view/confirm_transaction_view.dart @@ -16,43 +16,43 @@ import 'package:flutter/material.dart'; import 'package:flutter_libepiccash/lib.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/isar/models/transaction_note.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/pinpad_views/lock_screen_view.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/sending_transaction_dialog.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../models/isar/models/transaction_note.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../pinpad_views/lock_screen_view.dart'; +import 'sub_widgets/sending_transaction_dialog.dart'; +import '../wallet_view/wallet_view.dart'; +import '../../pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart'; +import '../../pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart'; +import '../../providers/db/main_db_provider.dart'; +import '../../providers/providers.dart'; +import '../../providers/wallet/public_private_balance_state_provider.dart'; +import '../../route_generator.dart'; +import '../../themes/stack_colors.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_formatter.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/crypto_currency/coins/epiccash.dart'; +import '../../wallets/crypto_currency/intermediate/nano_currency.dart'; +import '../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/models/tx_data.dart'; +import '../../wallets/wallet/impl/firo_wallet.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_dialog.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; class ConfirmTransactionView extends ConsumerStatefulWidget { const ConfirmTransactionView({ diff --git a/lib/pages/send_view/frost_ms/frost_send_view.dart b/lib/pages/send_view/frost_ms/frost_send_view.dart index 8397a2449..260cf866c 100644 --- a/lib/pages/send_view/frost_ms/frost_send_view.dart +++ b/lib/pages/send_view/frost_ms/frost_send_view.dart @@ -14,38 +14,38 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/pages/coin_control/coin_control_view.dart'; -import 'package:stackwallet/pages/send_view/frost_ms/recipient.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/fee_slider.dart'; -import 'package:stackwallet/widgets/frost_scaffold.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../frost_route_generator.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../coin_control/coin_control_view.dart'; +import 'recipient.dart'; +import '../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/show_loading.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/models/tx_data.dart'; +import '../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/fee_slider.dart'; +import '../../../widgets/frost_scaffold.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_dialog.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; import 'package:tuple/tuple.dart'; class FrostSendView extends ConsumerStatefulWidget { diff --git a/lib/pages/send_view/frost_ms/recipient.dart b/lib/pages/send_view/frost_ms/recipient.dart index 1f6c0514a..8bb6cbd12 100644 --- a/lib/pages/send_view/frost_ms/recipient.dart +++ b/lib/pages/send_view/frost_ms/recipient.dart @@ -2,27 +2,27 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/global/locale_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/amount/amount_input_formatter.dart'; -import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../providers/global/locale_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/address_utils.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/amount/amount_input_formatter.dart'; +import '../../../utilities/amount/amount_unit.dart'; +import '../../../utilities/barcode_scanner_interface.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/icon_widgets/clipboard_icon.dart'; +import '../../../widgets/icon_widgets/qrcode_icon.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; //TODO: move the following two providers elsewhere final pClipboard = diff --git a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1a.dart b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1a.dart index d49474f6d..c25090fca 100644 --- a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1a.dart +++ b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1a.dart @@ -1,20 +1,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../frost_route_generator.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/rounded_white_container.dart'; class FrostSendStep1a extends ConsumerStatefulWidget { const FrostSendStep1a({super.key}); diff --git a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1b.dart b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1b.dart index 5015110aa..9cac2cabc 100644 --- a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1b.dart +++ b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1b.dart @@ -1,22 +1,22 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/frost_step_user_steps.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/textfields/frost_step_field.dart'; +import '../../../../frost_route_generator.dart'; +import '../../../../models/isar/models/isar_models.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../services/frost.dart'; +import '../../../../utilities/format.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/models/tx_data.dart'; +import '../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/frost_step_user_steps.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../../../widgets/textfields/frost_step_field.dart'; class FrostSendStep1b extends ConsumerStatefulWidget { const FrostSendStep1b({super.key}); diff --git a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_2.dart b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_2.dart index 7fbea39da..db198831f 100644 --- a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_2.dart +++ b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_2.dart @@ -1,22 +1,22 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/widgets/custom_buttons/frost_qr_dialog_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/dialogs/frost/frost_error_dialog.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/textfields/frost_step_field.dart'; +import '../../../../frost_route_generator.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../services/frost.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../widgets/custom_buttons/frost_qr_dialog_button.dart'; +import '../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/dialogs/frost/frost_error_dialog.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/textfields/frost_step_field.dart'; class FrostSendStep2 extends ConsumerStatefulWidget { const FrostSendStep2({super.key}); diff --git a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_3.dart b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_3.dart index 46bb5cdb0..6b3c40362 100644 --- a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_3.dart +++ b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_3.dart @@ -1,23 +1,23 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as cl; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/widgets/custom_buttons/checkbox_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/frost_qr_dialog_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/dialogs/frost/frost_error_dialog.dart'; -import 'package:stackwallet/widgets/frost_step_user_steps.dart'; -import 'package:stackwallet/widgets/textfields/frost_step_field.dart'; +import '../../../../frost_route_generator.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../services/frost.dart'; +import '../../../../utilities/amount/amount.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../widgets/custom_buttons/checkbox_text_button.dart'; +import '../../../../widgets/custom_buttons/frost_qr_dialog_button.dart'; +import '../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/dialogs/frost/frost_error_dialog.dart'; +import '../../../../widgets/frost_step_user_steps.dart'; +import '../../../../widgets/textfields/frost_step_field.dart'; class FrostSendStep3 extends ConsumerStatefulWidget { const FrostSendStep3({super.key}); diff --git a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_4.dart b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_4.dart index 424229a2f..59596e846 100644 --- a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_4.dart +++ b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_4.dart @@ -2,26 +2,26 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/my_stack_view.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/expandable.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../frost_route_generator.dart'; +import '../../../wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; +import '../../../wallet_view/wallet_view.dart'; +import '../../../../pages_desktop_specific/my_stack_view/my_stack_view.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/amount/amount_formatter.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/show_loading.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/expandable.dart'; +import '../../../../widgets/stack_dialog.dart'; class FrostSendStep4 extends ConsumerStatefulWidget { const FrostSendStep4({super.key}); diff --git a/lib/pages/send_view/send_view.dart b/lib/pages/send_view/send_view.dart index 803595178..da10718c9 100644 --- a/lib/pages/send_view/send_view.dart +++ b/lib/pages/send_view/send_view.dart @@ -18,63 +18,63 @@ import 'package:flutter/services.dart'; import 'package:flutter_native_splash/cli_commands.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/paynym/paynym_account_lite.dart'; -import 'package:stackwallet/models/send_view_auto_fill_data.dart'; -import 'package:stackwallet/pages/address_book_views/address_book_view.dart'; -import 'package:stackwallet/pages/coin_control/coin_control_view.dart'; -import 'package:stackwallet/pages/send_view/confirm_transaction_view.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/building_transaction_dialog.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/firo_balance_selection_sheet.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/ui/fee_rate_type_state_provider.dart'; -import 'package:stackwallet/providers/ui/preview_tx_button_state_provider.dart'; -import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/amount/amount_input_formatter.dart'; -import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/widgets/animated_text.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/fee_slider.dart'; -import 'package:stackwallet/widgets/icon_widgets/addressbook_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../models/isar/models/isar_models.dart'; +import '../../models/paynym/paynym_account_lite.dart'; +import '../../models/send_view_auto_fill_data.dart'; +import '../address_book_views/address_book_view.dart'; +import '../coin_control/coin_control_view.dart'; +import 'confirm_transaction_view.dart'; +import 'sub_widgets/building_transaction_dialog.dart'; +import 'sub_widgets/firo_balance_selection_sheet.dart'; +import 'sub_widgets/transaction_fee_selection_sheet.dart'; +import '../../providers/providers.dart'; +import '../../providers/ui/fee_rate_type_state_provider.dart'; +import '../../providers/ui/preview_tx_button_state_provider.dart'; +import '../../providers/wallet/public_private_balance_state_provider.dart'; +import '../../route_generator.dart'; +import '../../themes/coin_icon_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/address_utils.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_formatter.dart'; +import '../../utilities/amount/amount_input_formatter.dart'; +import '../../utilities/amount/amount_unit.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/barcode_scanner_interface.dart'; +import '../../utilities/clipboard_interface.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/enums/fee_rate_type_enum.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/prefs.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/crypto_currency/coins/epiccash.dart'; +import '../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../wallets/crypto_currency/coins/firo.dart'; +import '../../wallets/crypto_currency/coins/monero.dart'; +import '../../wallets/crypto_currency/coins/stellar.dart'; +import '../../wallets/crypto_currency/coins/tezos.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/crypto_currency/intermediate/nano_currency.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/models/tx_data.dart'; +import '../../wallets/wallet/impl/firo_wallet.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../widgets/animated_text.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/fee_slider.dart'; +import '../../widgets/icon_widgets/addressbook_icon.dart'; +import '../../widgets/icon_widgets/clipboard_icon.dart'; +import '../../widgets/icon_widgets/qrcode_icon.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_dialog.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; import 'package:tuple/tuple.dart'; class SendView extends ConsumerStatefulWidget { diff --git a/lib/pages/send_view/sub_widgets/building_transaction_dialog.dart b/lib/pages/send_view/sub_widgets/building_transaction_dialog.dart index 112c33339..f7dc832f8 100644 --- a/lib/pages/send_view/sub_widgets/building_transaction_dialog.dart +++ b/lib/pages/send_view/sub_widgets/building_transaction_dialog.dart @@ -12,14 +12,14 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/themes/coin_image_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../themes/coin_image_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/animated_widgets/rotating_arrows.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/stack_dialog.dart'; class BuildingTransactionDialog extends ConsumerStatefulWidget { const BuildingTransactionDialog({ diff --git a/lib/pages/send_view/sub_widgets/firo_balance_selection_sheet.dart b/lib/pages/send_view/sub_widgets/firo_balance_selection_sheet.dart index 6206f13f7..3a890718b 100644 --- a/lib/pages/send_view/sub_widgets/firo_balance_selection_sheet.dart +++ b/lib/pages/send_view/sub_widgets/firo_balance_selection_sheet.dart @@ -10,13 +10,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; +import '../../../providers/providers.dart'; +import '../../../providers/wallet/public_private_balance_state_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/wallet/impl/firo_wallet.dart'; class FiroBalanceSelectionSheet extends ConsumerStatefulWidget { const FiroBalanceSelectionSheet({ diff --git a/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart b/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart index 42f8ea47e..bd55b42b1 100644 --- a/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart +++ b/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart @@ -13,14 +13,14 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:lottie/lottie.dart'; -import 'package:stackwallet/themes/coin_image_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../themes/coin_image_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/stack_dialog.dart'; class SendingTransactionDialog extends ConsumerStatefulWidget { const SendingTransactionDialog({ diff --git a/lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart b/lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart index e177c0f37..1202138dd 100644 --- a/lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart +++ b/lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart @@ -11,27 +11,27 @@ import 'package:cw_core/monero_transaction_priority.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/paymint/fee_object_model.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/ui/fee_rate_type_state_provider.dart'; -import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -import 'package:stackwallet/widgets/animated_text.dart'; +import '../../../models/paymint/fee_object_model.dart'; +import '../../../providers/providers.dart'; +import '../../../providers/ui/fee_rate_type_state_provider.dart'; +import '../../../providers/wallet/public_private_balance_state_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/enums/fee_rate_type_enum.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../wallets/crypto_currency/coins/monero.dart'; +import '../../../wallets/crypto_currency/coins/wownero.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/wallet/impl/firo_wallet.dart'; +import '../../../wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../widgets/animated_text.dart'; final feeSheetSessionCacheProvider = ChangeNotifierProvider((ref) { diff --git a/lib/pages/send_view/token_send_view.dart b/lib/pages/send_view/token_send_view.dart index d537bc61a..40d73c917 100644 --- a/lib/pages/send_view/token_send_view.dart +++ b/lib/pages/send_view/token_send_view.dart @@ -15,47 +15,47 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/send_view_auto_fill_data.dart'; -import 'package:stackwallet/pages/address_book_views/address_book_view.dart'; -import 'package:stackwallet/pages/send_view/confirm_transaction_view.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/building_transaction_dialog.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/ui/fee_rate_type_state_provider.dart'; -import 'package:stackwallet/providers/ui/preview_tx_button_state_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/amount/amount_input_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/token_balance_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/widgets/animated_text.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/addressbook_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/eth_token_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../models/isar/models/isar_models.dart'; +import '../../models/send_view_auto_fill_data.dart'; +import '../address_book_views/address_book_view.dart'; +import 'confirm_transaction_view.dart'; +import 'sub_widgets/building_transaction_dialog.dart'; +import 'sub_widgets/transaction_fee_selection_sheet.dart'; +import '../../providers/providers.dart'; +import '../../providers/ui/fee_rate_type_state_provider.dart'; +import '../../providers/ui/preview_tx_button_state_provider.dart'; +import '../../route_generator.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/address_utils.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_formatter.dart'; +import '../../utilities/amount/amount_input_formatter.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/barcode_scanner_interface.dart'; +import '../../utilities/clipboard_interface.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/enums/fee_rate_type_enum.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/prefs.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/crypto_currency/coins/epiccash.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../wallets/isar/providers/eth/token_balance_provider.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/models/tx_data.dart'; +import '../../widgets/animated_text.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/icon_widgets/addressbook_icon.dart'; +import '../../widgets/icon_widgets/clipboard_icon.dart'; +import '../../widgets/icon_widgets/eth_token_icon.dart'; +import '../../widgets/icon_widgets/qrcode_icon.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/stack_dialog.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; class TokenSendView extends ConsumerStatefulWidget { const TokenSendView({ diff --git a/lib/pages/settings_views/global_settings_view/about_view.dart b/lib/pages/settings_views/global_settings_view/about_view.dart index 4f4b3074e..d7a7ec4c1 100644 --- a/lib/pages/settings_views/global_settings_view/about_view.dart +++ b/lib/pages/settings_views/global_settings_view/about_view.dart @@ -17,16 +17,16 @@ import 'package:flutter_libmonero/git_versions.dart' as MONERO_VERSIONS; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:lelantus/git_versions.dart' as FIRO_VERSIONS; import 'package:package_info_plus/package_info_plus.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../networking/http.dart'; +import '../../../services/tor_service.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/prefs.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/rounded_white_container.dart'; import 'package:url_launcher/url_launcher.dart'; const kGithubAPI = "https://api.github.com"; diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/advanced_settings_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/advanced_settings_view.dart index dcc3ec5d5..7de750ae3 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/advanced_settings_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/advanced_settings_view.dart @@ -10,19 +10,19 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/debug_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart'; -import 'package:stackwallet/pages/stack_privacy_calls.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/choose_coin_view.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/draggable_switch_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'debug_view.dart'; +import 'manage_coin_units/manage_coin_units_view.dart'; +import 'manage_explorer_view.dart'; +import '../../../stack_privacy_calls.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/choose_coin_view.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; import 'package:tuple/tuple.dart'; class AdvancedSettingsView extends StatelessWidget { diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/debug_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/debug_view.dart index 622a4cafe..8bbaf9afd 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/debug_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/debug_view.dart @@ -23,27 +23,27 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:lelantus/git_versions.dart' as FIRO_VERSIONS; import 'package:package_info_plus/package_info_plus.dart'; -import 'package:stackwallet/models/isar/models/log.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart'; -import 'package:stackwallet/providers/global/debug_service_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../../models/isar/models/log.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../stack_backup_views/helpers/swb_file_system.dart'; +import '../../../../providers/global/debug_service_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/clipboard_interface.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/stack_file_system.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../../widgets/custom_loading_overlay.dart'; +import '../../../../widgets/icon_widgets/x_icon.dart'; +import '../../../../widgets/rounded_container.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../../../widgets/stack_text_field.dart'; +import '../../../../widgets/textfield_icon_button.dart'; class DebugView extends ConsumerStatefulWidget { const DebugView({Key? key}) : super(key: key); diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/choose_unit_sheet.dart b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/choose_unit_sheet.dart index ebacd1c77..e636edcce 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/choose_unit_sheet.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/choose_unit_sheet.dart @@ -1,11 +1,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/amount/amount_formatter.dart'; +import '../../../../../utilities/amount/amount_unit.dart'; +import '../../../../../utilities/constants.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../wallets/crypto_currency/crypto_currency.dart'; class ChooseUnitSheet extends ConsumerStatefulWidget { const ChooseUnitSheet({ diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart index e68a96c69..65cf6cbd6 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart @@ -2,26 +2,26 @@ import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/choose_unit_sheet.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import 'choose_unit_sheet.dart'; +import '../../../../../providers/global/prefs_provider.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/amount/amount_formatter.dart'; +import '../../../../../utilities/amount/amount_unit.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/constants.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../../widgets/background.dart'; +import '../../../../../widgets/conditional_parent.dart'; +import '../../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/desktop/secondary_button.dart'; +import '../../../../../widgets/icon_widgets/x_icon.dart'; +import '../../../../../widgets/stack_text_field.dart'; +import '../../../../../widgets/textfield_icon_button.dart'; class EditCoinUnitsView extends ConsumerStatefulWidget { const EditCoinUnitsView({ diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart index 4e01118af..cd2f7d231 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart @@ -3,21 +3,21 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'edit_coin_units_view.dart'; +import '../../../../../providers/global/prefs_provider.dart'; +import '../../../../../app_config.dart'; +import '../../../../../themes/coin_icon_provider.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../../widgets/background.dart'; +import '../../../../../widgets/conditional_parent.dart'; +import '../../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../../widgets/rounded_white_container.dart'; class ManageCoinUnitsView extends ConsumerWidget { const ManageCoinUnitsView({super.key}); diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart index 5ebf47bd2..b688a1f6d 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart @@ -10,13 +10,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/block_explorers.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/block_explorers.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class ManageExplorerView extends ConsumerStatefulWidget { const ManageExplorerView({ diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/appearance_settings_view.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/appearance_settings_view.dart index 126b87060..6981508e6 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/appearance_settings_view.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/appearance_settings_view.dart @@ -10,17 +10,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_options_widget.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/draggable_switch_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'manage_themes.dart'; +import 'sub_widgets/theme_options_widget.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class AppearanceSettingsView extends ConsumerWidget { const AppearanceSettingsView({Key? key}) : super(key: key); diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart index 5b14a022c..bea81abba 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart @@ -13,23 +13,23 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/install_theme_from_file_dialog.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/stack_theme_card.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_service.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../models/isar/stack_theme.dart'; +import 'sub_widgets/install_theme_from_file_dialog.dart'; +import 'sub_widgets/stack_theme_card.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../themes/theme_service.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/loading_indicator.dart'; +import '../../../../widgets/rounded_white_container.dart'; import 'package:tuple/tuple.dart'; class ManageThemesView extends ConsumerStatefulWidget { diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/install_theme_from_file_dialog.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/install_theme_from_file_dialog.dart index 812fcc94b..1574c3cfe 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/install_theme_from_file_dialog.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/install_theme_from_file_dialog.dart @@ -15,16 +15,16 @@ import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_service.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../themes/theme_service.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/logger.dart'; +import '../../../../../utilities/show_loading.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/desktop/secondary_button.dart'; +import '../../../../../widgets/stack_dialog.dart'; class InstallThemeFromFileDialog extends ConsumerStatefulWidget { const InstallThemeFromFileDialog({Key? key}) : super(key: key); diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/stack_theme_card.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/stack_theme_card.dart index 003063bde..5b9c2fe90 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/stack_theme_card.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/stack_theme_card.dart @@ -15,22 +15,22 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/animated_text.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../../models/isar/stack_theme.dart'; +import '../../../../../notifications/show_flush_bar.dart'; +import '../../../../../providers/db/main_db_provider.dart'; +import '../../../../../providers/global/prefs_provider.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../themes/theme_service.dart'; +import '../../../../../utilities/logger.dart'; +import '../../../../../utilities/show_loading.dart'; +import '../../../../../utilities/stack_file_system.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../widgets/animated_text.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/desktop/secondary_button.dart'; +import '../../../../../widgets/rounded_white_container.dart'; +import '../../../../../widgets/stack_dialog.dart'; class StackThemeCard extends ConsumerStatefulWidget { const StackThemeCard({ diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_option.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_option.dart index a129147e0..57cf428d5 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_option.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_option.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/constants.dart'; +import '../../../../../utilities/text_styles.dart'; class ThemeOption extends StatelessWidget { const ThemeOption({ diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_options_widget.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_options_widget.dart index bf8791542..8f3a78678 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_options_widget.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_options_widget.dart @@ -12,18 +12,18 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_option.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/appearance_settings/system_brightness_theme_selection_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/themes/theme_service.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; +import '../../../../../models/isar/stack_theme.dart'; +import 'theme_option.dart'; +import '../system_brightness_theme_selection_view.dart'; +import '../../../../../providers/db/main_db_provider.dart'; +import '../../../../../providers/global/prefs_provider.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../themes/theme_providers.dart'; +import '../../../../../themes/theme_service.dart'; +import '../../../../../utilities/constants.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../widgets/conditional_parent.dart'; +import '../../../../../widgets/custom_buttons/blue_text_button.dart'; import 'package:tuple/tuple.dart'; class ThemeOptionsWidget extends ConsumerStatefulWidget { diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/system_brightness_theme_selection_view.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/system_brightness_theme_selection_view.dart index 5bb416284..85154430e 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/system_brightness_theme_selection_view.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/system_brightness_theme_selection_view.dart @@ -10,15 +10,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_option.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/themes/theme_service.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'sub_widgets/theme_option.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../themes/theme_providers.dart'; +import '../../../../themes/theme_service.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; import 'package:tuple/tuple.dart'; class SystemBrightnessThemeSelectionView extends ConsumerStatefulWidget { diff --git a/lib/pages/settings_views/global_settings_view/currency_view.dart b/lib/pages/settings_views/global_settings_view/currency_view.dart index cb3a3478b..c9b618b1e 100644 --- a/lib/pages/settings_views/global_settings_view/currency_view.dart +++ b/lib/pages/settings_views/global_settings_view/currency_view.dart @@ -11,23 +11,23 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/providers/global/base_currencies_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../providers/global/base_currencies_provider.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_container.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class BaseCurrencySettingsView extends ConsumerStatefulWidget { const BaseCurrencySettingsView({Key? key}) : super(key: key); diff --git a/lib/pages/settings_views/global_settings_view/delete_account_view.dart b/lib/pages/settings_views/global_settings_view/delete_account_view.dart index f6acc0ac8..4294592a3 100644 --- a/lib/pages/settings_views/global_settings_view/delete_account_view.dart +++ b/lib/pages/settings_views/global_settings_view/delete_account_view.dart @@ -9,17 +9,17 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/pages/intro_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../db/hive/db.dart'; +import '../../intro_view.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_dialog.dart'; class DeleteAccountView extends StatefulWidget { const DeleteAccountView({Key? key}) : super(key: key); diff --git a/lib/pages/settings_views/global_settings_view/global_settings_view.dart b/lib/pages/settings_views/global_settings_view/global_settings_view.dart index 29984b928..c15d0f8d9 100644 --- a/lib/pages/settings_views/global_settings_view/global_settings_view.dart +++ b/lib/pages/settings_views/global_settings_view/global_settings_view.dart @@ -11,29 +11,29 @@ import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:stackwallet/pages/address_book_views/address_book_view.dart'; -import 'package:stackwallet/pages/pinpad_views/lock_screen_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/about_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/advanced_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/appearance_settings/appearance_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/currency_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/delete_account_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/language_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/security_views/security_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/stack_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/support_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_preferences_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/sub_widgets/settings_list_button.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../address_book_views/address_book_view.dart'; +import '../../pinpad_views/lock_screen_view.dart'; +import 'about_view.dart'; +import 'advanced_views/advanced_settings_view.dart'; +import 'appearance_settings/appearance_settings_view.dart'; +import 'currency_view.dart'; +import 'delete_account_view.dart'; +import 'language_view.dart'; +import 'manage_nodes_views/manage_nodes_view.dart'; +import 'security_views/security_view.dart'; +import 'stack_backup_views/stack_backup_view.dart'; +import 'startup_preferences/startup_preferences_view.dart'; +import 'support_view.dart'; +import 'syncing_preferences_views/syncing_preferences_view.dart'; +import 'tor_settings/tor_settings_view.dart'; +import '../sub_widgets/settings_list_button.dart'; +import '../../../route_generator.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/rounded_white_container.dart'; class GlobalSettingsView extends StatelessWidget { const GlobalSettingsView({ diff --git a/lib/pages/settings_views/global_settings_view/hidden_settings.dart b/lib/pages/settings_views/global_settings_view/hidden_settings.dart index fa0db26b0..c1370624e 100644 --- a/lib/pages/settings_views/global_settings_view/hidden_settings.dart +++ b/lib/pages/settings_views/global_settings_view/hidden_settings.dart @@ -13,19 +13,19 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/providers/global/debug_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/dialogs/tor_warning_dialog.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../../../providers/global/debug_service_provider.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/crypto_currency/coins/stellar.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/dialogs/tor_warning_dialog.dart'; +import '../../../widgets/rounded_white_container.dart'; class HiddenSettings extends StatelessWidget { const HiddenSettings({super.key}); diff --git a/lib/pages/settings_views/global_settings_view/language_view.dart b/lib/pages/settings_views/global_settings_view/language_view.dart index ae2cb8c6e..685736409 100644 --- a/lib/pages/settings_views/global_settings_view/language_view.dart +++ b/lib/pages/settings_views/global_settings_view/language_view.dart @@ -11,19 +11,19 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/languages_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/enums/languages_enum.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class LanguageSettingsView extends ConsumerStatefulWidget { const LanguageSettingsView({Key? key}) : super(key: key); diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart index 87a354191..e5a1ad049 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart @@ -14,33 +14,33 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/test_node_connection.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/cryptonote_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../../models/node_model.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../../providers/global/secure_store_provider.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/flutter_secure_storage_interface.dart'; +import '../../../../utilities/test_node_connection.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/coins/epiccash.dart'; +import '../../../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../../../wallets/crypto_currency/coins/monero.dart'; +import '../../../../wallets/crypto_currency/coins/wownero.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../wallets/crypto_currency/intermediate/cryptonote_currency.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/icon_widgets/x_icon.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../../../widgets/stack_text_field.dart'; +import '../../../../widgets/textfield_icon_button.dart'; import 'package:uuid/uuid.dart'; // import 'package:web3dart/web3dart.dart'; diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart index 56b5538e5..26f54fc27 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart @@ -13,19 +13,19 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; -import 'package:stackwallet/pages/settings_views/sub_widgets/nodes_list.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; +import 'add_edit_node_view.dart'; +import '../../sub_widgets/nodes_list.dart'; +import '../../../../themes/coin_icon_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; import 'package:tuple/tuple.dart'; class CoinNodesView extends ConsumerStatefulWidget { diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart index 5849b7987..dd6eed5ee 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart @@ -13,17 +13,17 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'coin_nodes_view.dart'; +import '../../../../providers/providers.dart'; +import '../../../../app_config.dart'; +import '../../../../themes/coin_icon_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class ManageNodesView extends ConsumerStatefulWidget { const ManageNodesView({ diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart index 8cb734e94..da7f0cfcc 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart @@ -13,24 +13,24 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/test_node_connection.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/delete_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import 'add_edit_node_view.dart'; +import '../../../../providers/global/secure_store_provider.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/flutter_secure_storage_interface.dart'; +import '../../../../utilities/test_node_connection.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/delete_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; import 'package:tuple/tuple.dart'; class NodeDetailsView extends ConsumerStatefulWidget { diff --git a/lib/pages/settings_views/global_settings_view/security_views/change_pin_view/change_pin_view.dart b/lib/pages/settings_views/global_settings_view/security_views/change_pin_view/change_pin_view.dart index 76ea1991d..8d442f17f 100644 --- a/lib/pages/settings_views/global_settings_view/security_views/change_pin_view/change_pin_view.dart +++ b/lib/pages/settings_views/global_settings_view/security_views/change_pin_view/change_pin_view.dart @@ -10,17 +10,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/security_views/security_view.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_pin_put/custom_pin_put.dart'; +import '../../../../../notifications/show_flush_bar.dart'; +import '../security_view.dart'; +import '../../../../../providers/global/prefs_provider.dart'; +import '../../../../../providers/global/secure_store_provider.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/flutter_secure_storage_interface.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../widgets/background.dart'; +import '../../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../../widgets/custom_pin_put/custom_pin_put.dart'; class ChangePinView extends ConsumerStatefulWidget { const ChangePinView({ diff --git a/lib/pages/settings_views/global_settings_view/security_views/security_view.dart b/lib/pages/settings_views/global_settings_view/security_views/security_view.dart index 63cbb836e..ef911d4a0 100644 --- a/lib/pages/settings_views/global_settings_view/security_views/security_view.dart +++ b/lib/pages/settings_views/global_settings_view/security_views/security_view.dart @@ -10,17 +10,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/pinpad_views/lock_screen_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/security_views/change_pin_view/change_pin_view.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/draggable_switch_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../pinpad_views/lock_screen_view.dart'; +import 'change_pin_view/change_pin_view.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../route_generator.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class SecurityView extends StatelessWidget { const SecurityView({ diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/auto_backup_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/auto_backup_view.dart index cc76cbf2a..4a6218d2f 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/auto_backup_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/auto_backup_view.dart @@ -12,23 +12,23 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:intl/intl.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/create_auto_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart'; -import 'package:stackwallet/providers/global/auto_swb_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/draggable_switch_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import 'create_auto_backup_view.dart'; +import 'edit_auto_backup_view.dart'; +import '../../../../providers/global/auto_swb_service_provider.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/enums/backup_frequency_type.dart'; +import '../../../../utilities/format.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../../../widgets/stack_text_field.dart'; import 'package:url_launcher/url_launcher.dart'; class AutoBackupView extends ConsumerStatefulWidget { diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/create_auto_backup_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/create_auto_backup_view.dart index 546c780e9..f7a36bcba 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/create_auto_backup_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/create_auto_backup_view.dart @@ -16,26 +16,26 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stack_wallet_backup/stack_wallet_backup.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/auto_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/sub_views/backup_frequency_type_select_sheet.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/progress_bar.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import 'auto_backup_view.dart'; +import 'helpers/restore_create_backup.dart'; +import 'helpers/swb_file_system.dart'; +import 'sub_views/backup_frequency_type_select_sheet.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../providers/global/secure_store_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/flutter_secure_storage_interface.dart'; +import '../../../../utilities/format.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/progress_bar.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../../../widgets/stack_text_field.dart'; import 'package:zxcvbn/zxcvbn.dart'; class CreateAutoBackupView extends ConsumerStatefulWidget { diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_information_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_information_view.dart index dd1f34120..ebdf2cac3 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_information_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_information_view.dart @@ -9,12 +9,12 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'create_backup_view.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class CreateBackupInfoView extends StatelessWidget { const CreateBackupInfoView({Key? key}) : super(key: key); diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart index 4dfa049d1..118e128e8 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart @@ -15,25 +15,25 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/progress_bar.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import 'helpers/restore_create_backup.dart'; +import 'helpers/swb_file_system.dart'; +import '../../../../providers/global/secure_store_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/progress_bar.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../../../widgets/stack_text_field.dart'; import 'package:zxcvbn/zxcvbn.dart'; class CreateBackupView extends StatefulWidget { diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/dialogs/cancel_stack_restore_dialog.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/dialogs/cancel_stack_restore_dialog.dart index 752acdd4a..17c24aed0 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/dialogs/cancel_stack_restore_dialog.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/dialogs/cancel_stack_restore_dialog.dart @@ -9,14 +9,14 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/desktop/secondary_button.dart'; +import '../../../../../widgets/rounded_container.dart'; +import '../../../../../widgets/stack_dialog.dart'; class CancelStackRestoreDialog extends StatelessWidget { const CancelStackRestoreDialog({ diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart index f399c8266..107cefb70 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart @@ -18,30 +18,30 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stack_wallet_backup/stack_wallet_backup.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/auto_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/sub_views/backup_frequency_type_select_sheet.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/progress_bar.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import 'auto_backup_view.dart'; +import 'helpers/restore_create_backup.dart'; +import 'helpers/swb_file_system.dart'; +import 'sub_views/backup_frequency_type_select_sheet.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../providers/global/secure_store_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/enums/backup_frequency_type.dart'; +import '../../../../utilities/flutter_secure_storage_interface.dart'; +import '../../../../utilities/format.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/progress_bar.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../../../widgets/stack_text_field.dart'; import 'package:zxcvbn/zxcvbn.dart'; class EditAutoBackupView extends ConsumerStatefulWidget { diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart index 446d1527c..7afd515b3 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart @@ -16,42 +16,42 @@ import 'dart:typed_data'; import 'package:frostdart/frostdart.dart' as frost; import 'package:isar/isar.dart'; import 'package:stack_wallet_backup/stack_wallet_backup.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/models/isar/models/transaction_note.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/models/stack_restoring_ui_state.dart'; -import 'package:stackwallet/models/trade_wallet_lookup.dart'; -import 'package:stackwallet/models/wallet_restore_state.dart'; -import 'package:stackwallet/services/address_book_service.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/services/node_service.dart'; -import 'package:stackwallet/services/trade_notes_service.dart'; -import 'package:stackwallet/services/trade_sent_from_stack_service.dart'; -import 'package:stackwallet/services/trade_service.dart'; -import 'package:stackwallet/services/wallets.dart'; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; -import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/private_key_interface.dart'; +import '../../../../../app_config.dart'; +import '../../../../../db/hive/db.dart'; +import '../../../../../db/isar/main_db.dart'; +import '../../../../../models/exchange/change_now/exchange_transaction.dart'; +import '../../../../../models/exchange/response_objects/trade.dart'; +import '../../../../../models/isar/models/contact_entry.dart'; +import '../../../../../models/isar/models/transaction_note.dart'; +import '../../../../../models/node_model.dart'; +import '../../../../../models/stack_restoring_ui_state.dart'; +import '../../../../../models/trade_wallet_lookup.dart'; +import '../../../../../models/wallet_restore_state.dart'; +import '../../../../../services/address_book_service.dart'; +import '../../../../../services/frost.dart'; +import '../../../../../services/node_service.dart'; +import '../../../../../services/trade_notes_service.dart'; +import '../../../../../services/trade_sent_from_stack_service.dart'; +import '../../../../../services/trade_service.dart'; +import '../../../../../services/wallets.dart'; +import '../../../../../utilities/enums/backup_frequency_type.dart'; +import '../../../../../utilities/enums/stack_restoring_status.dart'; +import '../../../../../utilities/enums/sync_type_enum.dart'; +import '../../../../../utilities/flutter_secure_storage_interface.dart'; +import '../../../../../utilities/format.dart'; +import '../../../../../utilities/logger.dart'; +import '../../../../../utilities/prefs.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../../../wallets/crypto_currency/intermediate/frost_currency.dart'; +import '../../../../../wallets/isar/models/frost_wallet_info.dart'; +import '../../../../../wallets/isar/models/wallet_info.dart'; +import '../../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../../wallets/wallet/impl/epiccash_wallet.dart'; +import '../../../../../wallets/wallet/wallet.dart'; +import '../../../../../wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; +import '../../../../../wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; +import '../../../../../wallets/wallet/wallet_mixin_interfaces/private_key_interface.dart'; import 'package:tuple/tuple.dart'; import 'package:uuid/uuid.dart'; import 'package:wakelock/wakelock.dart'; diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart index 046e8642f..2b480d59b 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart @@ -14,7 +14,7 @@ import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../../../../../utilities/util.dart'; class SWBFileSystem { Directory? rootPath; diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart index d67e2e663..3bbb3cd5e 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart @@ -12,19 +12,19 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../home_view/home_view.dart'; +import 'helpers/restore_create_backup.dart'; +import 'sub_views/stack_restore_progress_view.dart'; +import '../../../../route_generator.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/loading_indicator.dart'; +import '../../../../widgets/stack_text_field.dart'; import 'package:tuple/tuple.dart'; class RestoreFromEncryptedStringView extends ConsumerStatefulWidget { diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart index f559889cb..5a609acb4 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart @@ -15,27 +15,27 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../../../app_config.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import 'helpers/restore_create_backup.dart'; +import 'helpers/swb_file_system.dart'; +import 'sub_views/stack_restore_progress_view.dart'; +import '../../../../route_generator.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/loading_indicator.dart'; +import '../../../../widgets/stack_text_field.dart'; import 'package:tuple/tuple.dart'; class RestoreFromFileView extends ConsumerStatefulWidget { diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/stack_backup_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/stack_backup_view.dart index 7e20dac36..2db8cbc9d 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/stack_backup_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/stack_backup_view.dart @@ -10,16 +10,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/auto_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'auto_backup_view.dart'; +import 'create_backup_view.dart'; +import 'restore_from_file_view.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class StackBackupView extends StatelessWidget { const StackBackupView({ diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/backup_frequency_type_select_sheet.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/backup_frequency_type_select_sheet.dart index 03a59db95..01203c0ae 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/backup_frequency_type_select_sheet.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/backup_frequency_type_select_sheet.dart @@ -10,11 +10,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../../../../providers/global/prefs_provider.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/constants.dart'; +import '../../../../../utilities/enums/backup_frequency_type.dart'; +import '../../../../../utilities/text_styles.dart'; class BackupFrequencyTypeSelectSheet extends ConsumerWidget { const BackupFrequencyTypeSelectSheet({ diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/recovery_phrase_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/recovery_phrase_view.dart index 7d60a2e55..af533c9c4 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/recovery_phrase_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/recovery_phrase_view.dart @@ -11,13 +11,13 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../../notifications/show_flush_bar.dart'; +import '../../../../add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/clipboard_interface.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../widgets/custom_buttons/app_bar_icon_button.dart'; class RecoverPhraseView extends StatelessWidget { const RecoverPhraseView({ diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart index 9f5b90828..0cd60b29c 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart @@ -13,33 +13,33 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/dialogs/cancel_stack_restore_dialog.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/stack_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_wallet_card.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_menu.dart'; -import 'package:stackwallet/providers/desktop/current_desktop_menu_item.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/stack_restore/stack_restoring_ui_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/addressbook_icon.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../../../../app_config.dart'; +import '../../../../home_view/home_view.dart'; +import '../dialogs/cancel_stack_restore_dialog.dart'; +import '../helpers/restore_create_backup.dart'; +import '../restore_from_encrypted_string_view.dart'; +import '../stack_backup_view.dart'; +import '../sub_widgets/restoring_item_card.dart'; +import '../sub_widgets/restoring_wallet_card.dart'; +import '../../../../../pages_desktop_specific/desktop_home_view.dart'; +import '../../../../../pages_desktop_specific/desktop_menu.dart'; +import '../../../../../providers/desktop/current_desktop_menu_item.dart'; +import '../../../../../providers/global/secure_store_provider.dart'; +import '../../../../../providers/providers.dart'; +import '../../../../../providers/stack_restore/stack_restoring_ui_state_provider.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/enums/stack_restoring_status.dart'; +import '../../../../../utilities/logger.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../widgets/conditional_parent.dart'; +import '../../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/desktop/secondary_button.dart'; +import '../../../../../widgets/icon_widgets/addressbook_icon.dart'; +import '../../../../../widgets/loading_indicator.dart'; +import '../../../../../widgets/rounded_container.dart'; class StackRestoreProgressView extends ConsumerStatefulWidget { const StackRestoreProgressView({ diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart index 274c3d846..6e00445ff 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../../widgets/rounded_white_container.dart'; class RestoringItemCard extends StatelessWidget { const RestoringItemCard({ diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_wallet_card.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_wallet_card.dart index 53ad106b5..29bebd5f1 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_wallet_card.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_wallet_card.dart @@ -13,20 +13,20 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/wallet_restore_state.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/sub_views/recovery_phrase_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart'; -import 'package:stackwallet/providers/stack_restore/stack_restoring_ui_state_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../../../../models/wallet_restore_state.dart'; +import '../sub_views/recovery_phrase_view.dart'; +import 'restoring_item_card.dart'; +import '../../../../../providers/stack_restore/stack_restoring_ui_state_provider.dart'; +import '../../../../../route_generator.dart'; +import '../../../../../themes/coin_icon_provider.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../themes/theme_providers.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/enums/stack_restoring_status.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../widgets/loading_indicator.dart'; +import '../../../../../widgets/rounded_container.dart'; class RestoringWalletCard extends ConsumerStatefulWidget { const RestoringWalletCard({ diff --git a/lib/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart b/lib/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart index 687fe7eb4..dad06ecb1 100644 --- a/lib/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart +++ b/lib/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart @@ -13,17 +13,17 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../app_config.dart'; +import 'startup_wallet_selection_view.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/coin_icon_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class StartupPreferencesView extends ConsumerStatefulWidget { const StartupPreferencesView({Key? key}) : super(key: key); diff --git a/lib/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart b/lib/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart index d636a8d5a..0be056535 100644 --- a/lib/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart +++ b/lib/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart @@ -13,17 +13,17 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/draggable_switch_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/coin_icon_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../themes/theme_providers.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class StartupWalletSelectionView extends ConsumerStatefulWidget { const StartupWalletSelectionView({Key? key}) : super(key: key); diff --git a/lib/pages/settings_views/global_settings_view/support_view.dart b/lib/pages/settings_views/global_settings_view/support_view.dart index 8e93cba74..8c3d14f32 100644 --- a/lib/pages/settings_views/global_settings_view/support_view.dart +++ b/lib/pages/settings_views/global_settings_view/support_view.dart @@ -10,16 +10,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../app_config.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/rounded_white_container.dart'; import 'package:url_launcher/url_launcher.dart'; class SupportView extends StatelessWidget { diff --git a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart index 58144b681..d20e9dcbc 100644 --- a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart +++ b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart @@ -10,19 +10,19 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'wallet_syncing_options_view.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/enums/sync_type_enum.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class SyncingOptionsView extends ConsumerWidget { const SyncingOptionsView({Key? key}) : super(key: key); diff --git a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_preferences_view.dart b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_preferences_view.dart index 74fda4510..58a768a70 100644 --- a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_preferences_view.dart +++ b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_preferences_view.dart @@ -10,16 +10,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/draggable_switch_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'syncing_options_view.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/enums/sync_type_enum.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class SyncingPreferencesView extends ConsumerWidget { const SyncingPreferencesView({Key? key}) : super(key: key); diff --git a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart index 375534e4a..9b22c13ae 100644 --- a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart +++ b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart @@ -13,20 +13,20 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/draggable_switch_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/coin_icon_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../themes/theme_providers.dart'; +import '../../../../utilities/amount/amount_formatter.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class WalletSyncingOptionsView extends ConsumerWidget { const WalletSyncingOptionsView({Key? key}) : super(key: key); diff --git a/lib/pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart b/lib/pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart index c05a519ef..0d6acf41d 100644 --- a/lib/pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart +++ b/lib/pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart @@ -14,23 +14,23 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:lottie/lottie.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/draggable_switch_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/tor_subscription.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../../../../services/tor_service.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/stack_file_system.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../../../widgets/tor_subscription.dart'; class TorSettingsView extends ConsumerStatefulWidget { const TorSettingsView({ diff --git a/lib/pages/settings_views/sub_widgets/nodes_list.dart b/lib/pages/settings_views/sub_widgets/nodes_list.dart index de01c392c..8d7db8292 100644 --- a/lib/pages/settings_views/sub_widgets/nodes_list.dart +++ b/lib/pages/settings_views/sub_widgets/nodes_list.dart @@ -10,9 +10,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/global/node_service_provider.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/node_card.dart'; +import '../../../providers/global/node_service_provider.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/node_card.dart'; class NodesList extends ConsumerWidget { const NodesList({ diff --git a/lib/pages/settings_views/sub_widgets/settings_list_button.dart b/lib/pages/settings_views/sub_widgets/settings_list_button.dart index 62b4a2aec..399d0b110 100644 --- a/lib/pages/settings_views/sub_widgets/settings_list_button.dart +++ b/lib/pages/settings_views/sub_widgets/settings_list_button.dart @@ -10,9 +10,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; class SettingsListButton extends StatelessWidget { const SettingsListButton({ diff --git a/lib/pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart b/lib/pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart index 491f96c93..a9bea43be 100644 --- a/lib/pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart @@ -10,27 +10,27 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/settings_views/sub_widgets/settings_list_button.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/frost_ms/frost_participants_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/initiate_resharing_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/frost_scaffold.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../frost_route_generator.dart'; +import '../../sub_widgets/settings_list_button.dart'; +import 'frost_participants_view.dart'; +import 'initiate_resharing/initiate_resharing_view.dart'; +import '../../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/isar/models/frost_wallet_info.dart'; +import '../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../../widgets/frost_scaffold.dart'; +import '../../../../widgets/rounded_white_container.dart'; class FrostMSWalletOptionsView extends ConsumerWidget { const FrostMSWalletOptionsView({ diff --git a/lib/pages/settings_views/wallet_settings_view/frost_ms/frost_participants_view.dart b/lib/pages/settings_views/wallet_settings_view/frost_ms/frost_participants_view.dart index 364859ef0..a0b502da2 100644 --- a/lib/pages/settings_views/wallet_settings_view/frost_ms/frost_participants_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/frost_ms/frost_participants_view.dart @@ -1,20 +1,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; +import '../../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/isar/models/frost_wallet_info.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../../widgets/rounded_white_container.dart'; class FrostParticipantsView extends ConsumerWidget { const FrostParticipantsView({ diff --git a/lib/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/complete_reshare_config_view.dart b/lib/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/complete_reshare_config_view.dart index 5ac986a6c..b771ef7bd 100644 --- a/lib/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/complete_reshare_config_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/complete_reshare_config_view.dart @@ -4,28 +4,28 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:frostdart/frostdart.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/frost_scaffold.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../../frost_route_generator.dart'; +import '../../../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../../../providers/db/main_db_provider.dart'; +import '../../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../../providers/global/wallets_provider.dart'; +import '../../../../../services/frost.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/format.dart'; +import '../../../../../utilities/logger.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../wallets/isar/models/frost_wallet_info.dart'; +import '../../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../../widgets/background.dart'; +import '../../../../../widgets/conditional_parent.dart'; +import '../../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/frost_scaffold.dart'; +import '../../../../../widgets/rounded_white_container.dart'; +import '../../../../../widgets/stack_dialog.dart'; final class CompleteReshareConfigView extends ConsumerStatefulWidget { const CompleteReshareConfigView({ diff --git a/lib/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/initiate_resharing_view.dart b/lib/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/initiate_resharing_view.dart index ca5ab67e7..9fd3a5fc5 100644 --- a/lib/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/initiate_resharing_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/initiate_resharing_view.dart @@ -1,20 +1,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/complete_reshare_config_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'complete_reshare_config_view.dart'; +import '../../../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; +import '../../../../../providers/db/main_db_provider.dart'; +import '../../../../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../wallets/isar/models/frost_wallet_info.dart'; +import '../../../../../widgets/background.dart'; +import '../../../../../widgets/conditional_parent.dart'; +import '../../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/rounded_white_container.dart'; final class InitiateResharingView extends ConsumerStatefulWidget { const InitiateResharingView({ diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart index 71e7d980e..102de03f1 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart @@ -15,24 +15,24 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../app_config.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/address_utils.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/clipboard_interface.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_dialog.dart'; class WalletBackupView extends ConsumerWidget { const WalletBackupView({ diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/confirm_full_rescan.dart b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/confirm_full_rescan.dart index bb47771d6..f5281435b 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/confirm_full_rescan.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/confirm_full_rescan.dart @@ -9,14 +9,14 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/desktop/secondary_button.dart'; +import '../../../../../widgets/stack_dialog.dart'; class ConfirmFullRescanDialog extends StatelessWidget { const ConfirmFullRescanDialog({Key? key, required this.onConfirm}) diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/rescanning_dialog.dart b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/rescanning_dialog.dart index 2c1e3ea53..f243b977f 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/rescanning_dialog.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/rescanning_dialog.dart @@ -9,11 +9,11 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../widgets/animated_widgets/rotating_arrows.dart'; +import '../../../../../widgets/conditional_parent.dart'; +import '../../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../../widgets/stack_dialog.dart'; class RescanningDialog extends StatefulWidget { const RescanningDialog({ diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart index 9eae180f9..ff80ff3c4 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart @@ -15,44 +15,44 @@ import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/sub_widgets/nodes_list.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/confirm_full_rescan.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/rescanning_dialog.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/services/event_bus/events/global/blocks_remaining_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/node_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/refresh_percent_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/monero_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/wownero_wallet.dart'; -import 'package:stackwallet/widgets/animated_text.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/expandable.dart'; -import 'package:stackwallet/widgets/progress_bar.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/tor_subscription.dart'; +import '../../global_settings_view/manage_nodes_views/add_edit_node_view.dart'; +import '../../global_settings_view/tor_settings/tor_settings_view.dart'; +import '../../sub_widgets/nodes_list.dart'; +import 'sub_widgets/confirm_full_rescan.dart'; +import 'sub_widgets/rescanning_dialog.dart'; +import '../../../../providers/providers.dart'; +import '../../../../route_generator.dart'; +import '../../../../services/event_bus/events/global/blocks_remaining_event.dart'; +import '../../../../services/event_bus/events/global/node_connection_status_changed_event.dart'; +import '../../../../services/event_bus/events/global/refresh_percent_changed_event.dart'; +import '../../../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../../services/event_bus/global_event_bus.dart'; +import '../../../../services/tor_service.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/coins/epiccash.dart'; +import '../../../../wallets/crypto_currency/coins/monero.dart'; +import '../../../../wallets/crypto_currency/coins/wownero.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../wallets/wallet/impl/epiccash_wallet.dart'; +import '../../../../wallets/wallet/impl/monero_wallet.dart'; +import '../../../../wallets/wallet/impl/wownero_wallet.dart'; +import '../../../../widgets/animated_text.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/expandable.dart'; +import '../../../../widgets/progress_bar.dart'; +import '../../../../widgets/rounded_container.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../../../widgets/tor_subscription.dart'; import 'package:tuple/tuple.dart'; import 'package:wakelock/wakelock.dart'; diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart index 63130bbdd..a0cb79f9d 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart @@ -13,44 +13,44 @@ import 'dart:async'; import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/models/epicbox_config_model.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/address_book_views/address_book_view.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages/pinpad_views/lock_screen_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/debug_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_preferences_view.dart'; -import 'package:stackwallet/pages/settings_views/sub_widgets/settings_list_button.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/providers/ui/transaction_filter_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/services/event_bus/events/global/node_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../db/hive/db.dart'; +import '../../../models/epicbox_config_model.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../../address_book_views/address_book_view.dart'; +import '../../home_view/home_view.dart'; +import '../../pinpad_views/lock_screen_view.dart'; +import '../global_settings_view/advanced_views/debug_view.dart'; +import '../global_settings_view/syncing_preferences_views/syncing_preferences_view.dart'; +import '../sub_widgets/settings_list_button.dart'; +import 'frost_ms/frost_ms_options_view.dart'; +import 'wallet_backup_views/wallet_backup_view.dart'; +import 'wallet_network_settings_view/wallet_network_settings_view.dart'; +import 'wallet_settings_wallet_settings/change_representative_view.dart'; +import 'wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart'; +import 'wallet_settings_wallet_settings/xpub_view.dart'; +import '../../../providers/global/wallets_provider.dart'; +import '../../../providers/ui/transaction_filter_provider.dart'; +import '../../../route_generator.dart'; +import '../../../services/event_bus/events/global/node_connection_status_changed_event.dart'; +import '../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../services/event_bus/global_event_bus.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/show_loading.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/crypto_currency/intermediate/frost_currency.dart'; +import '../../../wallets/crypto_currency/intermediate/nano_currency.dart'; +import '../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../wallets/wallet/impl/epiccash_wallet.dart'; +import '../../../wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_dialog.dart'; import 'package:tuple/tuple.dart'; /// [eventBus] should only be set during testing diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart index 03b131993..23a8c6cd8 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart @@ -14,27 +14,27 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/clipboard_interface.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/show_loading.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/nano_interface.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/icon_widgets/x_icon.dart'; +import '../../../../widgets/loading_indicator.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_text_field.dart'; +import '../../../../widgets/textfield_icon_button.dart'; class ChangeRepresentativeView extends ConsumerStatefulWidget { const ChangeRepresentativeView({ diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart index 36510c490..f418ed230 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart @@ -14,27 +14,27 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/detail_item.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../app_config.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; +import '../../../home_view/home_view.dart'; +import '../../../wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; +import '../../../../providers/global/secure_store_provider.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/clipboard_interface.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_dialog.dart'; class DeleteWalletRecoveryPhraseView extends ConsumerStatefulWidget { const DeleteWalletRecoveryPhraseView({ diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart index 84c4f817b..d03cfe534 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart @@ -10,15 +10,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import 'delete_wallet_recovery_phrase_view.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/rounded_container.dart'; class DeleteWalletWarningView extends ConsumerWidget { const DeleteWalletWarningView({ diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart index b4b457c39..a0fb54eed 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart @@ -12,18 +12,18 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/icon_widgets/x_icon.dart'; +import '../../../../widgets/stack_text_field.dart'; +import '../../../../widgets/textfield_icon_button.dart'; class RenameWalletView extends ConsumerStatefulWidget { const RenameWalletView({ diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart index e426c576b..90e79b216 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart @@ -10,18 +10,18 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/pinpad_views/lock_screen_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../pinpad_views/lock_screen_view.dart'; +import 'delete_wallet_warning_view.dart'; +import 'rename_wallet_view.dart'; +import '../../../../route_generator.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_dialog.dart'; class WalletSettingsWalletSettingsView extends ConsumerWidget { const WalletSettingsWalletSettingsView({ diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart index 230e0798e..c07e6b162 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart @@ -15,23 +15,23 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/clipboard_interface.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/wallet/wallet.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/loading_indicator.dart'; +import '../../../../widgets/rounded_white_container.dart'; class XPubView extends ConsumerStatefulWidget { const XPubView({ diff --git a/lib/pages/special/firo_rescan_recovery_error_dialog.dart b/lib/pages/special/firo_rescan_recovery_error_dialog.dart index 6f23c7a87..fa6b3ff1d 100644 --- a/lib/pages/special/firo_rescan_recovery_error_dialog.dart +++ b/lib/pages/special/firo_rescan_recovery_error_dialog.dart @@ -1,28 +1,28 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/pages/pinpad_views/lock_screen_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../pinpad_views/lock_screen_view.dart'; +import '../settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart'; +import '../settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart'; +import '../../pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart'; +import '../../pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../route_generator.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/stack_dialog.dart'; enum FiroRescanRecoveryErrorViewOption { retry, diff --git a/lib/pages/stack_privacy_calls.dart b/lib/pages/stack_privacy_calls.dart index e2c604494..ad95b3903 100644 --- a/lib/pages/stack_privacy_calls.dart +++ b/lib/pages/stack_privacy_calls.dart @@ -14,24 +14,24 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/pages/pinpad_views/create_pin_view.dart'; -import 'package:stackwallet/pages_desktop_specific/password/create_password_view.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/price_provider.dart'; -import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../db/hive/db.dart'; +import 'pinpad_views/create_pin_view.dart'; +import '../pages_desktop_specific/password/create_password_view.dart'; +import '../providers/global/prefs_provider.dart'; +import '../providers/global/price_provider.dart'; +import '../services/exchange/exchange_data_loading_service.dart'; +import '../themes/stack_colors.dart'; +import '../themes/theme_providers.dart'; +import '../utilities/assets.dart'; +import '../utilities/constants.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; +import '../widgets/conditional_parent.dart'; +import '../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../widgets/desktop/desktop_app_bar.dart'; +import '../widgets/desktop/desktop_scaffold.dart'; +import '../widgets/desktop/primary_button.dart'; +import '../widgets/rounded_white_container.dart'; class StackPrivacyCalls extends ConsumerStatefulWidget { const StackPrivacyCalls({ diff --git a/lib/pages/token_view/my_tokens_view.dart b/lib/pages/token_view/my_tokens_view.dart index 35168b9f7..a8b39c9d2 100644 --- a/lib/pages/token_view/my_tokens_view.dart +++ b/lib/pages/token_view/my_tokens_view.dart @@ -13,20 +13,20 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart'; -import 'package:stackwallet/pages/token_view/sub_widgets/my_tokens_list.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../add_wallet_views/add_token_view/edit_wallet_tokens_view.dart'; +import 'sub_widgets/my_tokens_list.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; class MyTokensView extends ConsumerStatefulWidget { const MyTokensView({ diff --git a/lib/pages/token_view/sub_widgets/my_token_select_item.dart b/lib/pages/token_view/sub_widgets/my_token_select_item.dart index af76effde..8d8ef8711 100644 --- a/lib/pages/token_view/sub_widgets/my_token_select_item.dart +++ b/lib/pages/token_view/sub_widgets/my_token_select_item.dart @@ -12,30 +12,30 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/pages/token_view/token_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/ethereum/cached_eth_token_balance.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/token_balance_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/ethereum_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/dialogs/basic_dialog.dart'; -import 'package:stackwallet/widgets/icon_widgets/eth_token_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../models/isar/models/ethereum/eth_contract.dart'; +import '../token_view.dart'; +import '../../../pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/providers.dart'; +import '../../../services/ethereum/cached_eth_token_balance.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/show_loading.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../../wallets/isar/providers/eth/token_balance_provider.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/wallet/impl/ethereum_wallet.dart'; +import '../../../wallets/wallet/impl/sub_wallets/eth_token_wallet.dart'; +import '../../../wallets/wallet/wallet.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/dialogs/basic_dialog.dart'; +import '../../../widgets/icon_widgets/eth_token_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; class MyTokenSelectItem extends ConsumerStatefulWidget { const MyTokenSelectItem({ diff --git a/lib/pages/token_view/sub_widgets/my_tokens_list.dart b/lib/pages/token_view/sub_widgets/my_tokens_list.dart index 89655b717..d6c26529d 100644 --- a/lib/pages/token_view/sub_widgets/my_tokens_list.dart +++ b/lib/pages/token_view/sub_widgets/my_tokens_list.dart @@ -11,10 +11,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/pages/token_view/sub_widgets/my_token_select_item.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../../../db/isar/main_db.dart'; +import '../../../models/isar/models/ethereum/eth_contract.dart'; +import 'my_token_select_item.dart'; +import '../../../utilities/util.dart'; class MyTokensList extends StatelessWidget { const MyTokensList({ diff --git a/lib/pages/token_view/sub_widgets/no_tokens_found.dart b/lib/pages/token_view/sub_widgets/no_tokens_found.dart index 378235b59..5b7853c39 100644 --- a/lib/pages/token_view/sub_widgets/no_tokens_found.dart +++ b/lib/pages/token_view/sub_widgets/no_tokens_found.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/cupertino.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/rounded_white_container.dart'; class NoTokensFound extends StatelessWidget { const NoTokensFound({Key? key}) : super(key: key); diff --git a/lib/pages/token_view/sub_widgets/token_summary.dart b/lib/pages/token_view/sub_widgets/token_summary.dart index f4c97b960..30f72920d 100644 --- a/lib/pages/token_view/sub_widgets/token_summary.dart +++ b/lib/pages/token_view/sub_widgets/token_summary.dart @@ -14,30 +14,30 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/pages/buy_view/buy_in_wallet_view.dart'; -import 'package:stackwallet/pages/exchange_view/wallet_initiated_exchange_view.dart'; -import 'package:stackwallet/pages/receive_view/receive_view.dart'; -import 'package:stackwallet/pages/send_view/token_send_view.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/wallet_refresh_button.dart'; -import 'package:stackwallet/providers/global/locale_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/price_provider.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/token_balance_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../../models/isar/models/ethereum/eth_contract.dart'; +import '../../buy_view/buy_in_wallet_view.dart'; +import '../../exchange_view/wallet_initiated_exchange_view.dart'; +import '../../receive_view/receive_view.dart'; +import '../../send_view/token_send_view.dart'; +import '../../wallet_view/sub_widgets/wallet_refresh_button.dart'; +import '../../../providers/global/locale_provider.dart'; +import '../../../providers/global/prefs_provider.dart'; +import '../../../providers/global/price_provider.dart'; +import '../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../themes/theme_providers.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../../wallets/isar/providers/eth/token_balance_provider.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/rounded_container.dart'; import 'package:tuple/tuple.dart'; class TokenSummary extends ConsumerWidget { diff --git a/lib/pages/token_view/sub_widgets/token_transaction_list_widget.dart b/lib/pages/token_view/sub_widgets/token_transaction_list_widget.dart index c77eae03c..45f0921f8 100644 --- a/lib/pages/token_view/sub_widgets/token_transaction_list_widget.dart +++ b/lib/pages/token_view/sub_widgets/token_transaction_list_widget.dart @@ -13,16 +13,16 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/no_transactions_found.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../wallet_view/sub_widgets/no_transactions_found.dart'; +import '../../wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/global/wallets_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../../widgets/loading_indicator.dart'; class TokenTransactionsList extends ConsumerStatefulWidget { const TokenTransactionsList({ diff --git a/lib/pages/token_view/token_contract_details_view.dart b/lib/pages/token_view/token_contract_details_view.dart index e3c860a43..4553ca537 100644 --- a/lib/pages/token_view/token_contract_details_view.dart +++ b/lib/pages/token_view/token_contract_details_view.dart @@ -11,16 +11,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/simple_copy_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../db/isar/main_db.dart'; +import '../../models/isar/models/isar_models.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/simple_copy_button.dart'; +import '../../widgets/rounded_white_container.dart'; class TokenContractDetailsView extends ConsumerStatefulWidget { const TokenContractDetailsView({ diff --git a/lib/pages/token_view/token_view.dart b/lib/pages/token_view/token_view.dart index 71e8d57b1..c8cbd0e87 100644 --- a/lib/pages/token_view/token_view.dart +++ b/lib/pages/token_view/token_view.dart @@ -12,20 +12,20 @@ import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/token_view/sub_widgets/token_summary.dart'; -import 'package:stackwallet/pages/token_view/sub_widgets/token_transaction_list_widget.dart'; -import 'package:stackwallet/pages/token_view/token_contract_details_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/eth_token_icon.dart'; +import 'sub_widgets/token_summary.dart'; +import 'sub_widgets/token_transaction_list_widget.dart'; +import 'token_contract_details_view.dart'; +import '../wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; +import '../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../widgets/background.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/icon_widgets/eth_token_icon.dart'; import 'package:tuple/tuple.dart'; /// [eventBus] should only be set during testing diff --git a/lib/pages/wallet_view/sub_widgets/no_transactions_found.dart b/lib/pages/wallet_view/sub_widgets/no_transactions_found.dart index fdf923921..fff5ebf16 100644 --- a/lib/pages/wallet_view/sub_widgets/no_transactions_found.dart +++ b/lib/pages/wallet_view/sub_widgets/no_transactions_found.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/cupertino.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/rounded_white_container.dart'; class NoTransActionsFound extends StatelessWidget { const NoTransActionsFound({Key? key}) : super(key: key); diff --git a/lib/pages/wallet_view/sub_widgets/transactions_list.dart b/lib/pages/wallet_view/sub_widgets/transactions_list.dart index dd89c74b1..db97ebcea 100644 --- a/lib/pages/wallet_view/sub_widgets/transactions_list.dart +++ b/lib/pages/wallet_view/sub_widgets/transactions_list.dart @@ -13,25 +13,25 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/pages/exchange_view/trade_details_view.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/no_transactions_found.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/trades_service_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/trade_card.dart'; -import 'package:stackwallet/widgets/transaction_card.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../exchange_view/trade_details_view.dart'; +import 'no_transactions_found.dart'; +import '../wallet_view.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/global/trades_service_provider.dart'; +import '../../../providers/global/wallets_provider.dart'; +import '../../../route_generator.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/loading_indicator.dart'; +import '../../../widgets/trade_card.dart'; +import '../../../widgets/transaction_card.dart'; import 'package:tuple/tuple.dart'; class TransactionsList extends ConsumerStatefulWidget { diff --git a/lib/pages/wallet_view/sub_widgets/tx_icon.dart b/lib/pages/wallet_view/sub_widgets/tx_icon.dart index b8bfa2c1a..94f9b033a 100644 --- a/lib/pages/wallet_view/sub_widgets/tx_icon.dart +++ b/lib/pages/wallet_view/sub_widgets/tx_icon.dart @@ -13,13 +13,13 @@ import 'dart:io'; import 'package:flutter/cupertino.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../models/isar/stack_theme.dart'; +import '../../../providers/global/wallets_provider.dart'; +import '../../../themes/theme_providers.dart'; +import '../../../utilities/assets.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; class TxIcon extends ConsumerWidget { const TxIcon({ diff --git a/lib/pages/wallet_view/sub_widgets/wallet_balance_toggle_sheet.dart b/lib/pages/wallet_view/sub_widgets/wallet_balance_toggle_sheet.dart index 27d2ba4a1..d94e183ec 100644 --- a/lib/pages/wallet_view/sub_widgets/wallet_balance_toggle_sheet.dart +++ b/lib/pages/wallet_view/sub_widgets/wallet_balance_toggle_sheet.dart @@ -10,18 +10,18 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; -import 'package:stackwallet/providers/wallet/wallet_balance_toggle_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/wallet_balance_toggle_state.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; +import '../../../models/balance.dart'; +import '../../../providers/wallet/public_private_balance_state_provider.dart'; +import '../../../providers/wallet/wallet_balance_toggle_state_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/enums/wallet_balance_toggle_state.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; enum _BalanceType { available, diff --git a/lib/pages/wallet_view/sub_widgets/wallet_refresh_button.dart b/lib/pages/wallet_view/sub_widgets/wallet_refresh_button.dart index a98985f2a..b9f8c4ca1 100644 --- a/lib/pages/wallet_view/sub_widgets/wallet_refresh_button.dart +++ b/lib/pages/wallet_view/sub_widgets/wallet_refresh_button.dart @@ -13,14 +13,14 @@ import 'dart:async'; import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart'; +import '../../../providers/global/wallets_provider.dart'; +import '../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../services/event_bus/global_event_bus.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../../widgets/animated_widgets/rotating_arrows.dart'; /// [eventBus] should only be set during testing class WalletRefreshButton extends ConsumerStatefulWidget { diff --git a/lib/pages/wallet_view/sub_widgets/wallet_summary.dart b/lib/pages/wallet_view/sub_widgets/wallet_summary.dart index a33bf7622..2a4dc4b61 100644 --- a/lib/pages/wallet_view/sub_widgets/wallet_summary.dart +++ b/lib/pages/wallet_view/sub_widgets/wallet_summary.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/wallet_summary_info.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/widgets/coin_card.dart'; +import 'wallet_summary_info.dart'; +import '../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../widgets/coin_card.dart'; class WalletSummary extends StatelessWidget { const WalletSummary({ diff --git a/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart b/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart index 9a6999ae4..7b44e17eb 100644 --- a/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart +++ b/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart @@ -15,24 +15,24 @@ import 'package:flutter/material.dart'; import 'package:flutter_native_splash/cli_commands.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/wallet_balance_toggle_sheet.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/wallet_refresh_button.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; -import 'package:stackwallet/providers/wallet/wallet_balance_toggle_state_provider.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/wallet_balance_toggle_state.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/banano_wallet.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; +import 'wallet_balance_toggle_sheet.dart'; +import 'wallet_refresh_button.dart'; +import '../../../providers/providers.dart'; +import '../../../providers/wallet/public_private_balance_state_provider.dart'; +import '../../../providers/wallet/wallet_balance_toggle_state_provider.dart'; +import '../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/enums/wallet_balance_toggle_state.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/crypto_currency/coins/banano.dart'; +import '../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/wallet/impl/banano_wallet.dart'; +import '../../../widgets/conditional_parent.dart'; class WalletSummaryInfo extends ConsumerWidget { const WalletSummaryInfo({ diff --git a/lib/pages/wallet_view/transaction_views/all_transactions_view.dart b/lib/pages/wallet_view/transaction_views/all_transactions_view.dart index 1851acb4a..e946cf6d5 100644 --- a/lib/pages/wallet_view/transaction_views/all_transactions_view.dart +++ b/lib/pages/wallet_view/transaction_views/all_transactions_view.dart @@ -14,41 +14,41 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/models/isar/models/transaction_note.dart'; -import 'package:stackwallet/models/transaction_filter.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/tx_icon.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_search_filter_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/ui/transaction_filter_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; -import 'package:stackwallet/widgets/transaction_card.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/contact_entry.dart'; +import '../../../models/isar/models/transaction_note.dart'; +import '../../../models/transaction_filter.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../sub_widgets/tx_icon.dart'; +import 'transaction_details_view.dart'; +import 'transaction_search_filter_view.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/global/address_book_service_provider.dart'; +import '../../../providers/providers.dart'; +import '../../../providers/ui/transaction_filter_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/format.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/coins/epiccash.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/loading_indicator.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; +import '../../../widgets/transaction_card.dart'; import 'package:tuple/tuple.dart'; typedef _GroupedTransactions = ({ diff --git a/lib/pages/wallet_view/transaction_views/dialogs/cancelling_transaction_progress_dialog.dart b/lib/pages/wallet_view/transaction_views/dialogs/cancelling_transaction_progress_dialog.dart index 7a94dc28f..0039dc5bb 100644 --- a/lib/pages/wallet_view/transaction_views/dialogs/cancelling_transaction_progress_dialog.dart +++ b/lib/pages/wallet_view/transaction_views/dialogs/cancelling_transaction_progress_dialog.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotating_arrows.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../widgets/animated_widgets/rotating_arrows.dart'; +import '../../../../widgets/stack_dialog.dart'; class CancellingTransactionProgressDialog extends StatefulWidget { const CancellingTransactionProgressDialog({Key? key}) : super(key: key); diff --git a/lib/pages/wallet_view/transaction_views/edit_note_view.dart b/lib/pages/wallet_view/transaction_views/edit_note_view.dart index 4a77955d1..ccae6c3fc 100644 --- a/lib/pages/wallet_view/transaction_views/edit_note_view.dart +++ b/lib/pages/wallet_view/transaction_views/edit_note_view.dart @@ -10,21 +10,21 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/transaction_note.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../models/isar/models/transaction_note.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class EditNoteView extends ConsumerStatefulWidget { const EditNoteView({ diff --git a/lib/pages/wallet_view/transaction_views/transaction_details_view.dart b/lib/pages/wallet_view/transaction_views/transaction_details_view.dart index a0d6afff2..38fffe56e 100644 --- a/lib/pages/wallet_view/transaction_views/transaction_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/transaction_details_view.dart @@ -15,50 +15,50 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/receive_view/addresses/address_details_view.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/tx_icon.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/dialogs/cancelling_transaction_progress_dialog.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/edit_note_view.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/block_explorers.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/copy_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/pencil_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/ethereum/eth_contract.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../../receive_view/addresses/address_details_view.dart'; +import '../sub_widgets/tx_icon.dart'; +import 'dialogs/cancelling_transaction_progress_dialog.dart'; +import 'edit_note_view.dart'; +import '../wallet_view.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/global/address_book_service_provider.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/block_explorers.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/format.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/coins/bitcoincash.dart'; +import '../../../wallets/crypto_currency/coins/ecash.dart'; +import '../../../wallets/crypto_currency/coins/epiccash.dart'; +import '../../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../wallets/crypto_currency/coins/monero.dart'; +import '../../../wallets/crypto_currency/coins/wownero.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/crypto_currency/intermediate/nano_currency.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/wallet/impl/epiccash_wallet.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/icon_widgets/copy_icon.dart'; +import '../../../widgets/icon_widgets/pencil_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_dialog.dart'; import 'package:tuple/tuple.dart'; import 'package:url_launcher/url_launcher.dart'; diff --git a/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart b/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart index 84bb7c2af..5e4244177 100644 --- a/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart +++ b/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart @@ -12,31 +12,31 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/transaction_filter.dart'; -import 'package:stackwallet/providers/global/locale_provider.dart'; -import 'package:stackwallet/providers/ui/transaction_filter_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/amount/amount_input_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/date_picker/date_picker.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../models/transaction_filter.dart'; +import '../../../providers/global/locale_provider.dart'; +import '../../../providers/ui/transaction_filter_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../themes/theme_providers.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/amount/amount_input_formatter.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/format.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/date_picker/date_picker.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class TransactionSearchFilterView extends ConsumerStatefulWidget { const TransactionSearchFilterView({ diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart index 954285f0d..e8dfcbc42 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart @@ -15,40 +15,40 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/transaction_filter.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/tx_icon.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_search_filter_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/ui/transaction_filter_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../../models/isar/models/contact_entry.dart'; +import '../../../../models/isar/models/isar_models.dart'; +import '../../../../models/transaction_filter.dart'; +import '../../sub_widgets/tx_icon.dart'; +import '../transaction_search_filter_view.dart'; +import 'transaction_v2_card.dart'; +import 'transaction_v2_details_view.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/global/address_book_service_provider.dart'; +import '../../../../providers/providers.dart'; +import '../../../../providers/ui/transaction_filter_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/amount/amount.dart'; +import '../../../../utilities/amount/amount_formatter.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/format.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/icon_widgets/x_icon.dart'; +import '../../../../widgets/loading_indicator.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_text_field.dart'; +import '../../../../widgets/textfield_icon_button.dart'; typedef _GroupedTransactions = ({ String label, diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/fusion_group_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/fusion_group_details_view.dart index b0094539f..ef473b3bf 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/fusion_group_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/fusion_group_details_view.dart @@ -10,17 +10,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import 'transaction_v2_list_item.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class FusionGroupDetailsView extends ConsumerStatefulWidget { const FusionGroupDetailsView({ diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/fusion_tx_group_card.dart b/lib/pages/wallet_view/transaction_views/tx_v2/fusion_tx_group_card.dart index e26017b6c..4f3512017 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/fusion_tx_group_card.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/fusion_tx_group_card.dart @@ -2,16 +2,16 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/tx_icon.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/fusion_group_details_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; +import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../sub_widgets/tx_icon.dart'; +import 'fusion_group_details_view.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/format.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; class FusionTxGroup { final List transactions; diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart index 0ae867544..db18d772c 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart @@ -2,27 +2,27 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/tx_icon.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/locale_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/price_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; +import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../../models/isar/models/isar_models.dart'; +import '../../sub_widgets/tx_icon.dart'; +import 'transaction_v2_details_view.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/global/locale_provider.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../providers/global/price_provider.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/amount/amount.dart'; +import '../../../../utilities/amount/amount_formatter.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/format.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; class TransactionCardV2 extends ConsumerStatefulWidget { const TransactionCardV2({ diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart index fe58b38a0..3ed6397d6 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart @@ -16,51 +16,51 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/tx_icon.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/dialogs/cancelling_transaction_progress_dialog.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/edit_note_view.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/block_explorers.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; -import 'package:stackwallet/wallets/isar/models/spark_coin.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/copy_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/pencil_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../../models/isar/models/ethereum/eth_contract.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../sub_widgets/tx_icon.dart'; +import '../dialogs/cancelling_transaction_progress_dialog.dart'; +import '../edit_note_view.dart'; +import '../../wallet_view.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/global/address_book_service_provider.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/amount/amount.dart'; +import '../../../../utilities/amount/amount_formatter.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/block_explorers.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/format.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/coins/bitcoincash.dart'; +import '../../../../wallets/crypto_currency/coins/ecash.dart'; +import '../../../../wallets/crypto_currency/coins/epiccash.dart'; +import '../../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../../wallets/crypto_currency/coins/monero.dart'; +import '../../../../wallets/crypto_currency/coins/wownero.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../wallets/crypto_currency/intermediate/nano_currency.dart'; +import '../../../../wallets/isar/models/spark_coin.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../wallets/wallet/impl/epiccash_wallet.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/icon_widgets/copy_icon.dart'; +import '../../../../widgets/icon_widgets/pencil_icon.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_dialog.dart'; import 'package:tuple/tuple.dart'; import 'package:url_launcher/url_launcher.dart'; diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart index 21c0cbb9e..859285eac 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart @@ -13,19 +13,19 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/no_transactions_found.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/fusion_tx_group_card.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; +import '../../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../sub_widgets/no_transactions_found.dart'; +import 'fusion_tx_group_card.dart'; +import 'transaction_v2_list_item.dart'; +import '../../wallet_view.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../widgets/loading_indicator.dart'; class TransactionsV2List extends ConsumerStatefulWidget { const TransactionsV2List({ diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart index 2c18faee1..ccaae32cc 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart @@ -2,21 +2,21 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/pages/exchange_view/trade_details_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/fusion_tx_group_card.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart'; -import 'package:stackwallet/providers/global/trades_service_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/trade_card.dart'; +import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../../models/isar/models/isar_models.dart'; +import '../../../exchange_view/trade_details_view.dart'; +import 'fusion_tx_group_card.dart'; +import 'transaction_v2_card.dart'; +import '../../../../providers/global/trades_service_provider.dart'; +import '../../../../route_generator.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/trade_card.dart'; import 'package:tuple/tuple.dart'; class TxListItem extends ConsumerWidget { diff --git a/lib/pages/wallet_view/wallet_view.dart b/lib/pages/wallet_view/wallet_view.dart index 76c2b5d74..2f2eb334f 100644 --- a/lib/pages/wallet_view/wallet_view.dart +++ b/lib/pages/wallet_view/wallet_view.dart @@ -16,88 +16,88 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/buy_view/buy_in_wallet_view.dart'; -import 'package:stackwallet/pages/cashfusion/cashfusion_view.dart'; -import 'package:stackwallet/pages/coin_control/coin_control_view.dart'; -import 'package:stackwallet/pages/exchange_view/wallet_initiated_exchange_view.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages/monkey/monkey_view.dart'; -import 'package:stackwallet/pages/notification_views/notifications_view.dart'; -import 'package:stackwallet/pages/ordinals/ordinals_view.dart'; -import 'package:stackwallet/pages/paynym/paynym_claim_view.dart'; -import 'package:stackwallet/pages/paynym/paynym_home_view.dart'; -import 'package:stackwallet/pages/receive_view/receive_view.dart'; -import 'package:stackwallet/pages/send_view/frost_ms/frost_send_view.dart'; -import 'package:stackwallet/pages/send_view/send_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_view.dart'; -import 'package:stackwallet/pages/special/firo_rescan_recovery_error_dialog.dart'; -import 'package:stackwallet/pages/token_view/my_tokens_view.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/transactions_list.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/wallet_summary.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/all_transactions_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart'; -import 'package:stackwallet/providers/global/active_wallet_provider.dart'; -import 'package:stackwallet/providers/global/auto_swb_service_provider.dart'; -import 'package:stackwallet/providers/global/paynym_api_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/ui/transaction_filter_provider.dart'; -import 'package:stackwallet/providers/ui/unread_notifications_provider.dart'; -import 'package:stackwallet/providers/wallet/my_paynym_account_state_provider.dart'; -import 'package:stackwallet/services/event_bus/events/global/node_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/frost_scaffold.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/small_tor_icon.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart'; -import 'package:stackwallet/widgets/wallet_navigation_bar/components/icons/coin_control_nav_icon.dart'; -import 'package:stackwallet/widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart'; -import 'package:stackwallet/widgets/wallet_navigation_bar/components/icons/frost_sign_nav_icon.dart'; -import 'package:stackwallet/widgets/wallet_navigation_bar/components/icons/fusion_nav_icon.dart'; -import 'package:stackwallet/widgets/wallet_navigation_bar/components/icons/ordinals_nav_icon.dart'; -import 'package:stackwallet/widgets/wallet_navigation_bar/components/icons/paynym_nav_icon.dart'; -import 'package:stackwallet/widgets/wallet_navigation_bar/components/icons/receive_nav_icon.dart'; -import 'package:stackwallet/widgets/wallet_navigation_bar/components/icons/send_nav_icon.dart'; -import 'package:stackwallet/widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart'; -import 'package:stackwallet/widgets/wallet_navigation_bar/wallet_navigation_bar.dart'; +import '../../frost_route_generator.dart'; +import '../../models/isar/exchange_cache/currency.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../buy_view/buy_in_wallet_view.dart'; +import '../cashfusion/cashfusion_view.dart'; +import '../coin_control/coin_control_view.dart'; +import '../exchange_view/wallet_initiated_exchange_view.dart'; +import '../home_view/home_view.dart'; +import '../monkey/monkey_view.dart'; +import '../notification_views/notifications_view.dart'; +import '../ordinals/ordinals_view.dart'; +import '../paynym/paynym_claim_view.dart'; +import '../paynym/paynym_home_view.dart'; +import '../receive_view/receive_view.dart'; +import '../send_view/frost_ms/frost_send_view.dart'; +import '../send_view/send_view.dart'; +import '../settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart'; +import '../settings_views/wallet_settings_view/wallet_settings_view.dart'; +import '../special/firo_rescan_recovery_error_dialog.dart'; +import '../token_view/my_tokens_view.dart'; +import 'sub_widgets/transactions_list.dart'; +import 'sub_widgets/wallet_summary.dart'; +import 'transaction_views/all_transactions_view.dart'; +import 'transaction_views/tx_v2/all_transactions_v2_view.dart'; +import 'transaction_views/tx_v2/transaction_v2_list.dart'; +import '../../providers/global/active_wallet_provider.dart'; +import '../../providers/global/auto_swb_service_provider.dart'; +import '../../providers/global/paynym_api_provider.dart'; +import '../../providers/providers.dart'; +import '../../providers/ui/transaction_filter_provider.dart'; +import '../../providers/ui/unread_notifications_provider.dart'; +import '../../providers/wallet/my_paynym_account_state_provider.dart'; +import '../../services/event_bus/events/global/node_connection_status_changed_event.dart'; +import '../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../services/event_bus/global_event_bus.dart'; +import '../../services/exchange/exchange_data_loading_service.dart'; +import '../../themes/coin_icon_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/clipboard_interface.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/enums/backup_frequency_type.dart'; +import '../../utilities/enums/sync_type_enum.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/show_loading.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/crypto_currency/coins/banano.dart'; +import '../../wallets/crypto_currency/coins/bitcoin.dart'; +import '../../wallets/crypto_currency/coins/firo.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/crypto_currency/intermediate/frost_currency.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../wallets/wallet/impl/firo_wallet.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/custom_loading_overlay.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/frost_scaffold.dart'; +import '../../widgets/loading_indicator.dart'; +import '../../widgets/small_tor_icon.dart'; +import '../../widgets/stack_dialog.dart'; +import '../../widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart'; +import '../../widgets/wallet_navigation_bar/components/icons/coin_control_nav_icon.dart'; +import '../../widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart'; +import '../../widgets/wallet_navigation_bar/components/icons/frost_sign_nav_icon.dart'; +import '../../widgets/wallet_navigation_bar/components/icons/fusion_nav_icon.dart'; +import '../../widgets/wallet_navigation_bar/components/icons/ordinals_nav_icon.dart'; +import '../../widgets/wallet_navigation_bar/components/icons/paynym_nav_icon.dart'; +import '../../widgets/wallet_navigation_bar/components/icons/receive_nav_icon.dart'; +import '../../widgets/wallet_navigation_bar/components/icons/send_nav_icon.dart'; +import '../../widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart'; +import '../../widgets/wallet_navigation_bar/wallet_navigation_bar.dart'; import 'package:tuple/tuple.dart'; /// [eventBus] should only be set during testing diff --git a/lib/pages/wallets_view/sub_widgets/all_wallets.dart b/lib/pages/wallets_view/sub_widgets/all_wallets.dart index 9f12d367d..a69d2bd13 100644 --- a/lib/pages/wallets_view/sub_widgets/all_wallets.dart +++ b/lib/pages/wallets_view/sub_widgets/all_wallets.dart @@ -10,12 +10,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart'; -import 'package:stackwallet/pages/wallets_view/sub_widgets/wallet_list_item.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; +import '../../add_wallet_views/add_wallet_view/add_wallet_view.dart'; +import 'wallet_list_item.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/isar/providers/all_wallets_info_provider.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; class AllWallets extends StatelessWidget { const AllWallets({Key? key}) : super(key: key); diff --git a/lib/pages/wallets_view/sub_widgets/empty_wallets.dart b/lib/pages/wallets_view/sub_widgets/empty_wallets.dart index c4e89c720..530c27e54 100644 --- a/lib/pages/wallets_view/sub_widgets/empty_wallets.dart +++ b/lib/pages/wallets_view/sub_widgets/empty_wallets.dart @@ -13,12 +13,12 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../../add_wallet_views/add_wallet_view/add_wallet_view.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../themes/theme_providers.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; class EmptyWallets extends ConsumerWidget { const EmptyWallets({Key? key}) : super(key: key); diff --git a/lib/pages/wallets_view/sub_widgets/favorite_card.dart b/lib/pages/wallets_view/sub_widgets/favorite_card.dart index 008f9c39a..6f3dd84bb 100644 --- a/lib/pages/wallets_view/sub_widgets/favorite_card.dart +++ b/lib/pages/wallets_view/sub_widgets/favorite_card.dart @@ -13,22 +13,22 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; -import 'package:stackwallet/widgets/coin_card.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; +import '../../wallet_view/wallet_view.dart'; +import '../../../pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/show_loading.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; +import '../../../widgets/coin_card.dart'; +import '../../../widgets/conditional_parent.dart'; class FavoriteCard extends ConsumerStatefulWidget { const FavoriteCard({ diff --git a/lib/pages/wallets_view/sub_widgets/favorite_wallets.dart b/lib/pages/wallets_view/sub_widgets/favorite_wallets.dart index d43eda2a2..b46e84b87 100644 --- a/lib/pages/wallets_view/sub_widgets/favorite_wallets.dart +++ b/lib/pages/wallets_view/sub_widgets/favorite_wallets.dart @@ -13,14 +13,14 @@ import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/manage_favorites_view/manage_favorites_view.dart'; -import 'package:stackwallet/pages/wallets_view/sub_widgets/favorite_card.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/favourite_wallets_provider.dart'; -import 'package:stackwallet/widgets/custom_page_view/custom_page_view.dart' +import '../../manage_favorites_view/manage_favorites_view.dart'; +import 'favorite_card.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/isar/providers/favourite_wallets_provider.dart'; +import '../../../widgets/custom_page_view/custom_page_view.dart' as cpv; class FavoriteWallets extends ConsumerStatefulWidget { diff --git a/lib/pages/wallets_view/sub_widgets/wallet_list_item.dart b/lib/pages/wallets_view/sub_widgets/wallet_list_item.dart index 15d069c5d..d7ec6037b 100644 --- a/lib/pages/wallets_view/sub_widgets/wallet_list_item.dart +++ b/lib/pages/wallets_view/sub_widgets/wallet_list_item.dart @@ -14,21 +14,21 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/pages/wallets_view/wallets_overview.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; -import 'package:stackwallet/widgets/dialogs/tor_warning_dialog.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../wallet_view/wallet_view.dart'; +import '../wallets_overview.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/show_loading.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; +import '../../../widgets/dialogs/tor_warning_dialog.dart'; +import '../../../widgets/rounded_white_container.dart'; class WalletListItem extends ConsumerWidget { const WalletListItem({ diff --git a/lib/pages/wallets_view/wallets_overview.dart b/lib/pages/wallets_view/wallets_overview.dart index c70357434..ebd4931f7 100644 --- a/lib/pages/wallets_view/wallets_overview.dart +++ b/lib/pages/wallets_view/wallets_overview.dart @@ -12,31 +12,31 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/sub_classes/coin_entity.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/dialogs/desktop_expanding_wallet_card.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/master_wallet_card.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; -import 'package:stackwallet/widgets/wallet_card.dart'; +import '../../models/add_wallet_list_entity/sub_classes/coin_entity.dart'; +import '../../models/isar/models/ethereum/eth_contract.dart'; +import '../add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart'; +import '../../pages_desktop_specific/my_stack_view/dialogs/desktop_expanding_wallet_card.dart'; +import '../../providers/db/main_db_provider.dart'; +import '../../providers/providers.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/isar/models/wallet_info.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/wallet/wallet.dart'; +import '../../widgets/background.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/master_wallet_card.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; +import '../../widgets/wallet_card.dart'; import 'package:tuple/tuple.dart'; class WalletsOverview extends ConsumerStatefulWidget { diff --git a/lib/pages/wallets_view/wallets_view.dart b/lib/pages/wallets_view/wallets_view.dart index be33af927..76298c595 100644 --- a/lib/pages/wallets_view/wallets_view.dart +++ b/lib/pages/wallets_view/wallets_view.dart @@ -11,12 +11,12 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/wallets_view/sub_widgets/all_wallets.dart'; -import 'package:stackwallet/pages/wallets_view/sub_widgets/empty_wallets.dart'; -import 'package:stackwallet/pages/wallets_view/sub_widgets/favorite_wallets.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; +import 'sub_widgets/all_wallets.dart'; +import 'sub_widgets/empty_wallets.dart'; +import 'sub_widgets/favorite_wallets.dart'; +import '../../providers/providers.dart'; +import '../../themes/theme_providers.dart'; +import '../../wallets/isar/providers/all_wallets_info_provider.dart'; class WalletsView extends ConsumerWidget { const WalletsView({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart index 3b24a782b..af09985df 100644 --- a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart +++ b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart @@ -11,36 +11,36 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/add_address_book_entry_view.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/address_book_filter_view.dart'; -import 'package:stackwallet/pages_desktop_specific/address_book_view/subwidgets/desktop_address_book_scaffold.dart'; -import 'package:stackwallet/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_details.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/address_book_filter_provider.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/widgets/address_book_card.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../app_config.dart'; +import '../../models/isar/models/blockchain_data/address.dart'; +import '../../models/isar/models/contact_entry.dart'; +import '../../pages/address_book_views/subviews/add_address_book_entry_view.dart'; +import '../../pages/address_book_views/subviews/address_book_filter_view.dart'; +import 'subwidgets/desktop_address_book_scaffold.dart'; +import 'subwidgets/desktop_contact_details.dart'; +import '../../providers/db/main_db_provider.dart'; +import '../../providers/global/address_book_service_provider.dart'; +import '../../providers/providers.dart'; +import '../../providers/ui/address_book_providers/address_book_filter_provider.dart'; +import '../../app_config.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../widgets/address_book_card.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; class DesktopAddressBook extends ConsumerStatefulWidget { const DesktopAddressBook({super.key}); diff --git a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_card.dart b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_card.dart index 684c16025..509653aba 100644 --- a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_card.dart +++ b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_card.dart @@ -14,19 +14,19 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/edit_contact_address_view.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; +import '../../../models/isar/models/contact_entry.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../../../pages/address_book_views/subviews/edit_contact_address_view.dart'; +import '../../../providers/ui/address_book_providers/address_entry_data_provider.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; class DesktopAddressCard extends ConsumerWidget { const DesktopAddressCard({ diff --git a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_details.dart b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_details.dart index 4ce624db2..696f71324 100644 --- a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_details.dart +++ b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_details.dart @@ -14,25 +14,25 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/add_new_contact_address_view.dart'; -import 'package:stackwallet/pages_desktop_specific/address_book_view/subwidgets/desktop_address_card.dart'; -import 'package:stackwallet/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_options_menu_popup.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/transaction_card.dart'; +import '../../../models/isar/models/contact_entry.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../pages/address_book_views/subviews/add_new_contact_address_view.dart'; +import 'desktop_address_card.dart'; +import 'desktop_contact_options_menu_popup.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/global/address_book_service_provider.dart'; +import '../../../providers/ui/address_book_providers/address_entry_data_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../themes/theme_providers.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/loading_indicator.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/transaction_card.dart'; import 'package:tuple/tuple.dart'; class DesktopContactDetails extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_options_menu_popup.dart b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_options_menu_popup.dart index fff2c337c..61b0de815 100644 --- a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_options_menu_popup.dart +++ b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_options_menu_popup.dart @@ -11,16 +11,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/edit_contact_name_emoji_view.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../../../pages/address_book_views/subviews/edit_contact_name_emoji_view.dart'; +import '../../../providers/global/address_book_service_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; class DesktopContactOptionsMenuPopup extends ConsumerStatefulWidget { const DesktopContactOptionsMenuPopup({Key? key, required this.contactId}) diff --git a/lib/pages_desktop_specific/addresses/desktop_wallet_addresses_view.dart b/lib/pages_desktop_specific/addresses/desktop_wallet_addresses_view.dart index d9e9c2763..cf6c7c424 100644 --- a/lib/pages_desktop_specific/addresses/desktop_wallet_addresses_view.dart +++ b/lib/pages_desktop_specific/addresses/desktop_wallet_addresses_view.dart @@ -12,16 +12,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/pages/receive_view/addresses/address_details_view.dart'; -import 'package:stackwallet/pages_desktop_specific/addresses/sub_widgets/desktop_address_list.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; +import '../../models/isar/models/isar_models.dart'; +import '../../pages/receive_view/addresses/address_details_view.dart'; +import 'sub_widgets/desktop_address_list.dart'; +import '../../providers/db/main_db_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; final desktopSelectedAddressId = StateProvider.autoDispose((ref) => null); diff --git a/lib/pages_desktop_specific/addresses/sub_widgets/desktop_address_list.dart b/lib/pages_desktop_specific/addresses/sub_widgets/desktop_address_list.dart index 7b94575b4..3da33f220 100644 --- a/lib/pages_desktop_specific/addresses/sub_widgets/desktop_address_list.dart +++ b/lib/pages_desktop_specific/addresses/sub_widgets/desktop_address_list.dart @@ -12,20 +12,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/pages/receive_view/addresses/address_card.dart'; -import 'package:stackwallet/pages_desktop_specific/addresses/desktop_wallet_addresses_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../pages/receive_view/addresses/address_card.dart'; +import '../desktop_wallet_addresses_view.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class DesktopAddressList extends ConsumerStatefulWidget { const DesktopAddressList({ diff --git a/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart b/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart index 7c8a394a3..9d674c585 100644 --- a/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart +++ b/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart @@ -17,27 +17,27 @@ import 'package:flutter/services.dart'; import 'package:flutter_native_splash/cli_commands.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/cashfusion/fusion_rounds_selection_sheet.dart'; -import 'package:stackwallet/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart'; -import 'package:stackwallet/providers/cash_fusion/fusion_progress_ui_state_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../pages/cashfusion/fusion_rounds_selection_sheet.dart'; +import 'sub_widgets/fusion_dialog.dart'; +import '../../providers/cash_fusion/fusion_progress_ui_state_provider.dart'; +import '../../providers/global/prefs_provider.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_text_field.dart'; class DesktopCashFusionView extends ConsumerStatefulWidget { const DesktopCashFusionView({ diff --git a/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart b/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart index 3eb98c0ba..437c61a55 100644 --- a/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart +++ b/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart @@ -2,22 +2,22 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages_desktop_specific/cashfusion/sub_widgets/fusion_progress.dart'; -import 'package:stackwallet/providers/cash_fusion/fusion_progress_ui_state_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'fusion_progress.dart'; +import '../../../providers/cash_fusion/fusion_progress_ui_state_provider.dart'; +import '../../../providers/global/prefs_provider.dart'; +import '../../../providers/global/wallets_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/show_loading.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/rounded_container.dart'; +import '../../../widgets/rounded_white_container.dart'; enum CashFusionStatus { waiting, running, success, failed } diff --git a/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_progress.dart b/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_progress.dart index a976c225d..8487ce863 100644 --- a/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_progress.dart +++ b/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_progress.dart @@ -1,15 +1,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart'; -import 'package:stackwallet/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart'; -import 'package:stackwallet/providers/cash_fusion/fusion_progress_ui_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../../pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart'; +import 'fusion_dialog.dart'; +import '../../../providers/cash_fusion/fusion_progress_ui_state_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../widgets/conditional_parent.dart'; +import '../../../widgets/rounded_container.dart'; class FusionProgress extends ConsumerWidget { const FusionProgress({super.key, required this.walletId}); diff --git a/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart b/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart index 5c46236ae..a76851278 100644 --- a/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart +++ b/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart @@ -14,30 +14,30 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart'; -import 'package:stackwallet/pages_desktop_specific/coin_control/utxo_row.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/dropdown_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/expandable2.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; -import 'package:stackwallet/widgets/toggle.dart'; +import '../../db/isar/main_db.dart'; +import '../../models/isar/models/blockchain_data/utxo.dart'; +import 'utxo_row.dart'; +import '../../themes/coin_icon_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../widgets/animated_widgets/rotate_icon.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/dropdown_button.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/expandable2.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; +import '../../widgets/toggle.dart'; final desktopUseUTXOs = StateProvider((ref) => {}); diff --git a/lib/pages_desktop_specific/coin_control/desktop_coin_control_view.dart b/lib/pages_desktop_specific/coin_control/desktop_coin_control_view.dart index e19f6f7d8..957cfacdb 100644 --- a/lib/pages_desktop_specific/coin_control/desktop_coin_control_view.dart +++ b/lib/pages_desktop_specific/coin_control/desktop_coin_control_view.dart @@ -14,28 +14,28 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart'; -import 'package:stackwallet/pages_desktop_specific/coin_control/freeze_button.dart'; -import 'package:stackwallet/pages_desktop_specific/coin_control/utxo_row.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/dropdown_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/expandable2.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../db/isar/main_db.dart'; +import '../../models/isar/models/blockchain_data/utxo.dart'; +import 'freeze_button.dart'; +import 'utxo_row.dart'; +import '../../themes/coin_icon_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../widgets/animated_widgets/rotate_icon.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/custom_buttons/dropdown_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/expandable2.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; class DesktopCoinControlView extends ConsumerStatefulWidget { const DesktopCoinControlView({ diff --git a/lib/pages_desktop_specific/coin_control/freeze_button.dart b/lib/pages_desktop_specific/coin_control/freeze_button.dart index 935fe3f94..0f4d6d4e8 100644 --- a/lib/pages_desktop_specific/coin_control/freeze_button.dart +++ b/lib/pages_desktop_specific/coin_control/freeze_button.dart @@ -11,11 +11,11 @@ import 'package:async/async.dart'; import 'package:flutter/material.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart'; -import 'package:stackwallet/pages_desktop_specific/coin_control/utxo_row.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; +import '../../db/isar/main_db.dart'; +import '../../models/isar/models/blockchain_data/utxo.dart'; +import 'utxo_row.dart'; +import '../../utilities/logger.dart'; +import '../../widgets/desktop/primary_button.dart'; class FreezeButton extends StatefulWidget { const FreezeButton({ diff --git a/lib/pages_desktop_specific/coin_control/utxo_row.dart b/lib/pages_desktop_specific/coin_control/utxo_row.dart index fcc8aebf7..c414f1b4f 100644 --- a/lib/pages_desktop_specific/coin_control/utxo_row.dart +++ b/lib/pages_desktop_specific/coin_control/utxo_row.dart @@ -11,20 +11,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/pages/coin_control/utxo_details_view.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/utxo_status_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../db/isar/main_db.dart'; +import '../../models/isar/models/isar_models.dart'; +import '../../pages/coin_control/utxo_details_view.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_formatter.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/icon_widgets/utxo_status_icon.dart'; +import '../../widgets/rounded_container.dart'; class UtxoRowData { UtxoRowData(this.utxoId, this.selected); diff --git a/lib/pages_desktop_specific/desktop_buy/desktop_buy_view.dart b/lib/pages_desktop_specific/desktop_buy/desktop_buy_view.dart index b9c00c762..f2d0e9bef 100644 --- a/lib/pages_desktop_specific/desktop_buy/desktop_buy_view.dart +++ b/lib/pages_desktop_specific/desktop_buy/desktop_buy_view.dart @@ -10,16 +10,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/buy_view/buy_form.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/tor_subscription.dart'; +import '../../pages/buy_view/buy_form.dart'; +import '../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../../services/tor_service.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/tor_subscription.dart'; class DesktopBuyView extends ConsumerStatefulWidget { const DesktopBuyView({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/desktop_exchange/desktop_all_trades_view.dart b/lib/pages_desktop_specific/desktop_exchange/desktop_all_trades_view.dart index 112cd97eb..e4a6129bf 100644 --- a/lib/pages_desktop_specific/desktop_exchange/desktop_all_trades_view.dart +++ b/lib/pages_desktop_specific/desktop_exchange/desktop_all_trades_view.dart @@ -16,31 +16,31 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction_status.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/pages/exchange_view/trade_details_view.dart'; -import 'package:stackwallet/providers/exchange/trade_sent_from_stack_lookup_provider.dart'; -import 'package:stackwallet/providers/global/trades_service_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../db/isar/main_db.dart'; +import '../../models/exchange/change_now/exchange_transaction_status.dart'; +import '../../models/exchange/response_objects/trade.dart'; +import '../../models/isar/models/isar_models.dart'; +import '../../models/isar/stack_theme.dart'; +import '../../pages/exchange_view/trade_details_view.dart'; +import '../../providers/exchange/trade_sent_from_stack_lookup_provider.dart'; +import '../../providers/global/trades_service_provider.dart'; +import '../../route_generator.dart'; +import '../../themes/stack_colors.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/format.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/rounded_white_container.dart'; +import '../../widgets/stack_text_field.dart'; +import '../../widgets/textfield_icon_button.dart'; import 'package:tuple/tuple.dart'; class DesktopAllTradesView extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/desktop_exchange/desktop_exchange_view.dart b/lib/pages_desktop_specific/desktop_exchange/desktop_exchange_view.dart index 22cb046cf..1476d5d72 100644 --- a/lib/pages_desktop_specific/desktop_exchange/desktop_exchange_view.dart +++ b/lib/pages_desktop_specific/desktop_exchange/desktop_exchange_view.dart @@ -10,20 +10,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_form.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/desktop_all_trades_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/subwidgets/desktop_trade_history.dart'; -import 'package:stackwallet/providers/exchange/exchange_form_state_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../pages/exchange_view/exchange_form.dart'; +import 'desktop_all_trades_view.dart'; +import 'subwidgets/desktop_trade_history.dart'; +import '../../providers/exchange/exchange_form_state_provider.dart'; +import '../../providers/global/prefs_provider.dart'; +import '../../services/exchange/exchange_data_loading_service.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/custom_loading_overlay.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/rounded_white_container.dart'; class DesktopExchangeView extends ConsumerStatefulWidget { const DesktopExchangeView({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index 4c3f378ac..fb866f61b 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -14,33 +14,33 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/exchange/incomplete_exchange.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/pages/exchange_view/send_from_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_1.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_3.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/subwidgets/desktop_exchange_steps_indicator.dart'; -import 'package:stackwallet/providers/exchange/exchange_form_state_provider.dart'; -import 'package:stackwallet/providers/global/trades_service_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; -import 'package:stackwallet/services/notifications_api.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/desktop/simple_desktop_dialog.dart'; -import 'package:stackwallet/widgets/fade_stack.dart'; +import '../../../app_config.dart'; +import '../../../models/exchange/incomplete_exchange.dart'; +import '../../../models/exchange/response_objects/trade.dart'; +import '../../../pages/exchange_view/send_from_view.dart'; +import 'subwidgets/desktop_step_1.dart'; +import 'subwidgets/desktop_step_2.dart'; +import 'subwidgets/desktop_step_3.dart'; +import 'subwidgets/desktop_step_4.dart'; +import '../subwidgets/desktop_exchange_steps_indicator.dart'; +import '../../../providers/exchange/exchange_form_state_provider.dart'; +import '../../../providers/global/trades_service_provider.dart'; +import '../../../route_generator.dart'; +import '../../../services/exchange/exchange_response.dart'; +import '../../../services/notifications_api.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/enums/exchange_rate_type_enum.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/custom_loading_overlay.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/desktop/simple_desktop_dialog.dart'; +import '../../../widgets/fade_stack.dart'; final ssss = StateProvider((_) => null); diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_1.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_1.dart index 049ec20b3..afa894500 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_1.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_1.dart @@ -10,13 +10,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_item.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../step_scaffold.dart'; +import 'desktop_step_item.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/enums/exchange_rate_type_enum.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/rounded_white_container.dart'; class DesktopStep1 extends ConsumerWidget { const DesktopStep1({ diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart index cf4799255..f3f890745 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart @@ -11,27 +11,27 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/contact_address_entry.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart'; -import 'package:stackwallet/providers/exchange/exchange_send_from_wallet_id_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/addressbook_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../../app_config.dart'; +import '../../../../models/contact_address_entry.dart'; +import '../step_scaffold.dart'; +import '../../subwidgets/desktop_choose_from_stack.dart'; +import '../../../my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart'; +import '../../../../providers/exchange/exchange_send_from_wallet_id_provider.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/clipboard_interface.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/icon_widgets/addressbook_icon.dart'; +import '../../../../widgets/icon_widgets/clipboard_icon.dart'; +import '../../../../widgets/icon_widgets/x_icon.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_text_field.dart'; +import '../../../../widgets/textfield_icon_button.dart'; import 'package:tuple/tuple.dart'; class DesktopStep2 extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_3.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_3.dart index 5bd59ce49..d60a552ce 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_3.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_3.dart @@ -10,13 +10,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_item.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../step_scaffold.dart'; +import 'desktop_step_item.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/enums/exchange_rate_type_enum.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/rounded_white_container.dart'; class DesktopStep3 extends ConsumerStatefulWidget { const DesktopStep3({ diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart index 4cd1e98d7..b831653a9 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart @@ -12,14 +12,14 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_item.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../app_config.dart'; +import '../step_scaffold.dart'; +import 'desktop_step_item.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/rounded_container.dart'; +import '../../../../widgets/rounded_white_container.dart'; class DesktopStep4 extends ConsumerStatefulWidget { const DesktopStep4({ diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_item.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_item.dart index d49d9053c..6b169f573 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_item.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_item.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/conditional_parent.dart'; class DesktopStepItem extends StatelessWidget { const DesktopStepItem( diff --git a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart index a30387f24..bf9f9ffc6 100644 --- a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart +++ b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart @@ -11,23 +11,23 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; -import 'package:stackwallet/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart'; +import '../../../providers/providers.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; +import '../../../widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart'; import 'package:tuple/tuple.dart'; class DesktopChooseFromStack extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_exchange_steps_indicator.dart b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_exchange_steps_indicator.dart index 426a69811..6d2c677cb 100644 --- a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_exchange_steps_indicator.dart +++ b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_exchange_steps_indicator.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/rounded_container.dart'; class DesktopExchangeStepsIndicator extends StatelessWidget { const DesktopExchangeStepsIndicator({Key? key, required this.currentStep}) diff --git a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_trade_history.dart b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_trade_history.dart index 9584533ac..86240e37c 100644 --- a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_trade_history.dart +++ b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_trade_history.dart @@ -13,19 +13,19 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/pages/exchange_view/trade_details_view.dart'; -import 'package:stackwallet/providers/exchange/trade_sent_from_stack_lookup_provider.dart'; -import 'package:stackwallet/providers/global/trades_service_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/trade_card.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../pages/exchange_view/trade_details_view.dart'; +import '../../../providers/exchange/trade_sent_from_stack_lookup_provider.dart'; +import '../../../providers/global/trades_service_provider.dart'; +import '../../../route_generator.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/trade_card.dart'; import '../../../db/isar/main_db.dart'; diff --git a/lib/pages_desktop_specific/desktop_home_view.dart b/lib/pages_desktop_specific/desktop_home_view.dart index 11270d587..80ca02051 100644 --- a/lib/pages_desktop_specific/desktop_home_view.dart +++ b/lib/pages_desktop_specific/desktop_home_view.dart @@ -10,27 +10,27 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages_desktop_specific/address_book_view/desktop_address_book.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_buy/desktop_buy_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/desktop_exchange_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_menu.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/my_stack_view.dart'; -import 'package:stackwallet/pages_desktop_specific/notifications/desktop_notifications_view.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/desktop_settings_view.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/desktop_support_view.dart'; -import 'package:stackwallet/providers/desktop/current_desktop_menu_item.dart'; -import 'package:stackwallet/providers/global/active_wallet_provider.dart'; -import 'package:stackwallet/providers/global/auto_swb_service_provider.dart'; -import 'package:stackwallet/providers/global/notifications_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/providers/ui/transaction_filter_provider.dart'; -import 'package:stackwallet/providers/ui/unread_notifications_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/widgets/background.dart'; +import 'address_book_view/desktop_address_book.dart'; +import 'desktop_buy/desktop_buy_view.dart'; +import 'desktop_exchange/desktop_exchange_view.dart'; +import 'desktop_menu.dart'; +import 'my_stack_view/my_stack_view.dart'; +import 'notifications/desktop_notifications_view.dart'; +import 'settings/desktop_settings_view.dart'; +import 'settings/settings_menu/desktop_about_view.dart'; +import 'settings/settings_menu/desktop_support_view.dart'; +import '../providers/desktop/current_desktop_menu_item.dart'; +import '../providers/global/active_wallet_provider.dart'; +import '../providers/global/auto_swb_service_provider.dart'; +import '../providers/global/notifications_provider.dart'; +import '../providers/global/prefs_provider.dart'; +import '../providers/global/wallets_provider.dart'; +import '../providers/ui/transaction_filter_provider.dart'; +import '../providers/ui/unread_notifications_provider.dart'; +import '../route_generator.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/enums/backup_frequency_type.dart'; +import '../widgets/background.dart'; class DesktopHomeView extends ConsumerStatefulWidget { const DesktopHomeView({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index 3ca7fc8e8..7ff4714a4 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -14,15 +14,15 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_menu_item.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu.dart'; -import 'package:stackwallet/providers/desktop/current_desktop_menu_item.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/desktop_tor_status_button.dart'; -import 'package:stackwallet/widgets/desktop/living_stack_icon.dart'; +import '../app_config.dart'; +import 'desktop_menu_item.dart'; +import 'settings/settings_menu.dart'; +import '../providers/desktop/current_desktop_menu_item.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/assets.dart'; +import '../utilities/text_styles.dart'; +import '../widgets/desktop/desktop_tor_status_button.dart'; +import '../widgets/desktop/living_stack_icon.dart'; enum DesktopMenuItemId { myStack, diff --git a/lib/pages_desktop_specific/desktop_menu_item.dart b/lib/pages_desktop_specific/desktop_menu_item.dart index 1a7a533a9..c7eee9020 100644 --- a/lib/pages_desktop_specific/desktop_menu_item.dart +++ b/lib/pages_desktop_specific/desktop_menu_item.dart @@ -13,13 +13,13 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_menu.dart'; -import 'package:stackwallet/providers/desktop/current_desktop_menu_item.dart'; -import 'package:stackwallet/providers/global/notifications_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import 'desktop_menu.dart'; +import '../providers/desktop/current_desktop_menu_item.dart'; +import '../providers/global/notifications_provider.dart'; +import '../themes/stack_colors.dart'; +import '../themes/theme_providers.dart'; +import '../utilities/assets.dart'; +import '../utilities/text_styles.dart'; class DMIController { VoidCallback? toggle; diff --git a/lib/pages_desktop_specific/lelantus_coins/lelantus_coins_view.dart b/lib/pages_desktop_specific/lelantus_coins/lelantus_coins_view.dart index 2602cfee7..12b118cba 100644 --- a/lib/pages_desktop_specific/lelantus_coins/lelantus_coins_view.dart +++ b/lib/pages_desktop_specific/lelantus_coins/lelantus_coins_view.dart @@ -12,15 +12,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../models/isar/models/isar_models.dart'; +import '../../providers/db/main_db_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/rounded_white_container.dart'; class LelantusCoinsView extends ConsumerStatefulWidget { const LelantusCoinsView({ diff --git a/lib/pages_desktop_specific/my_stack_view/coin_wallets_table.dart b/lib/pages_desktop_specific/my_stack_view/coin_wallets_table.dart index 8624eca28..70c11546c 100644 --- a/lib/pages_desktop_specific/my_stack_view/coin_wallets_table.dart +++ b/lib/pages_desktop_specific/my_stack_view/coin_wallets_table.dart @@ -10,17 +10,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart'; -import 'package:stackwallet/providers/global/active_wallet_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/wallet_info_row/wallet_info_row.dart'; +import 'wallet_view/desktop_wallet_view.dart'; +import '../../providers/global/active_wallet_provider.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/show_loading.dart'; +import '../../utilities/util.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/wallet_info_row/wallet_info_row.dart'; class CoinWalletsTable extends ConsumerWidget { const CoinWalletsTable({ diff --git a/lib/pages_desktop_specific/my_stack_view/desktop_favorite_wallets.dart b/lib/pages_desktop_specific/my_stack_view/desktop_favorite_wallets.dart index fa3970f98..994a5f949 100644 --- a/lib/pages_desktop_specific/my_stack_view/desktop_favorite_wallets.dart +++ b/lib/pages_desktop_specific/my_stack_view/desktop_favorite_wallets.dart @@ -11,14 +11,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/manage_favorites_view/manage_favorites_view.dart'; -import 'package:stackwallet/pages/wallets_view/sub_widgets/favorite_card.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/favourite_wallets_provider.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; +import '../../pages/manage_favorites_view/manage_favorites_view.dart'; +import '../../pages/wallets_view/sub_widgets/favorite_card.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/isar/providers/favourite_wallets_provider.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; class DesktopFavoriteWallets extends ConsumerWidget { const DesktopFavoriteWallets({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/my_stack_view/dialogs/desktop_expanding_wallet_card.dart b/lib/pages_desktop_specific/my_stack_view/dialogs/desktop_expanding_wallet_card.dart index 9cee94e50..22fe2250f 100644 --- a/lib/pages_desktop_specific/my_stack_view/dialogs/desktop_expanding_wallet_card.dart +++ b/lib/pages_desktop_specific/my_stack_view/dialogs/desktop_expanding_wallet_card.dart @@ -11,18 +11,18 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; -import 'package:stackwallet/widgets/expandable.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/wallet_card.dart'; -import 'package:stackwallet/widgets/wallet_info_row/sub_widgets/wallet_info_row_balance.dart'; -import 'package:stackwallet/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart'; +import '../../../models/isar/models/ethereum/eth_contract.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/wallet/wallet.dart'; +import '../../../widgets/animated_widgets/rotate_icon.dart'; +import '../../../widgets/expandable.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/wallet_card.dart'; +import '../../../widgets/wallet_info_row/sub_widgets/wallet_info_row_balance.dart'; +import '../../../widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart'; import 'package:tuple/tuple.dart'; class DesktopExpandingWalletCard extends StatefulWidget { diff --git a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart index 3bc0f20f0..57848404b 100644 --- a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart @@ -9,10 +9,10 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../app_config.dart'; +import '../desktop_home_view.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; class ExitToMyStackButton extends StatelessWidget { const ExitToMyStackButton({ diff --git a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart index 50767d784..9f9bc5226 100644 --- a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart @@ -13,16 +13,16 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/hidden_settings.dart'; -import 'package:stackwallet/pages/wallets_view/sub_widgets/empty_wallets.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/my_wallets.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; +import '../../app_config.dart'; +import '../../pages/settings_views/global_settings_view/hidden_settings.dart'; +import '../../pages/wallets_view/sub_widgets/empty_wallets.dart'; +import 'my_wallets.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/isar/providers/all_wallets_info_provider.dart'; +import '../../widgets/animated_widgets/rotate_icon.dart'; +import '../../widgets/background.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; class MyStackView extends ConsumerStatefulWidget { const MyStackView({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/my_stack_view/my_wallets.dart b/lib/pages_desktop_specific/my_stack_view/my_wallets.dart index d83a188be..1e8789239 100644 --- a/lib/pages_desktop_specific/my_stack_view/my_wallets.dart +++ b/lib/pages_desktop_specific/my_stack_view/my_wallets.dart @@ -10,13 +10,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/desktop_favorite_wallets.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_summary_table.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; +import '../../pages/add_wallet_views/add_wallet_view/add_wallet_view.dart'; +import 'desktop_favorite_wallets.dart'; +import 'wallet_summary_table.dart'; +import '../../providers/providers.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; class MyWallets extends ConsumerStatefulWidget { const MyWallets({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart b/lib/pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart index 9d9b8b802..4aef6a2ba 100644 --- a/lib/pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart @@ -13,23 +13,23 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/paynym/paynym_account_lite.dart'; -import 'package:stackwallet/models/send_view_auto_fill_data.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart'; -import 'package:stackwallet/providers/global/locale_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/price_provider.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../models/paynym/paynym_account_lite.dart'; +import '../../../models/send_view_auto_fill_data.dart'; +import '../wallet_view/sub_widgets/desktop_send.dart'; +import '../../../providers/global/locale_provider.dart'; +import '../../../providers/global/prefs_provider.dart'; +import '../../../providers/global/price_provider.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/barcode_scanner_interface.dart'; +import '../../../utilities/clipboard_interface.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../widgets/desktop/desktop_dialog.dart'; +import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/rounded_white_container.dart'; class DesktopPaynymSendDialog extends ConsumerStatefulWidget { const DesktopPaynymSendDialog({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart b/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart index b7be2c2d4..762e0f58f 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart @@ -13,19 +13,19 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/wallets_view/wallets_overview.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/all_wallets_info_provider.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/dialogs/tor_warning_dialog.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../pages/wallets_view/wallets_overview.dart'; +import '../../providers/providers.dart'; +import '../../themes/coin_icon_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/isar/providers/all_wallets_info_provider.dart'; +import '../../widgets/conditional_parent.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../widgets/dialogs/tor_warning_dialog.dart'; +import '../../widgets/rounded_white_container.dart'; class WalletSummaryTable extends ConsumerStatefulWidget { const WalletSummaryTable({super.key}); diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart index bb8bc4262..9f4c17780 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart @@ -12,26 +12,26 @@ import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart'; -import 'package:stackwallet/pages/token_view/sub_widgets/token_summary.dart'; -import 'package:stackwallet/pages/token_view/sub_widgets/token_transaction_list_widget.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/eth_token_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart'; +import '../../../pages/token_view/sub_widgets/token_summary.dart'; +import '../../../pages/token_view/sub_widgets/token_transaction_list_widget.dart'; +import '../../../pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; +import 'sub_widgets/desktop_wallet_features.dart'; +import 'sub_widgets/desktop_wallet_summary.dart'; +import 'sub_widgets/my_wallet.dart'; +import '../../../providers/providers.dart'; +import '../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/icon_widgets/eth_token_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; /// [eventBus] should only be set during testing class DesktopTokenView extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart index 146f596d7..58ae825ff 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart @@ -16,38 +16,38 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart'; -import 'package:stackwallet/pages/token_view/my_tokens_view.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/transactions_list.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/all_transactions_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/network_info_button.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_button.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_options_button.dart'; -import 'package:stackwallet/providers/global/active_wallet_provider.dart'; -import 'package:stackwallet/providers/global/auto_swb_service_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/ui/transaction_filter_provider.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/banano_wallet.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/hover_text_field.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart'; +import '../../../pages/token_view/my_tokens_view.dart'; +import '../../../pages/wallet_view/sub_widgets/transactions_list.dart'; +import '../../../pages/wallet_view/transaction_views/all_transactions_view.dart'; +import '../../../pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; +import '../../../pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart'; +import 'sub_widgets/desktop_wallet_features.dart'; +import 'sub_widgets/desktop_wallet_summary.dart'; +import 'sub_widgets/my_wallet.dart'; +import 'sub_widgets/network_info_button.dart'; +import 'sub_widgets/wallet_keys_button.dart'; +import 'sub_widgets/wallet_options_button.dart'; +import '../../../providers/global/active_wallet_provider.dart'; +import '../../../providers/global/auto_swb_service_provider.dart'; +import '../../../providers/providers.dart'; +import '../../../providers/ui/transaction_filter_provider.dart'; +import '../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../services/event_bus/global_event_bus.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/enums/backup_frequency_type.dart'; +import '../../../utilities/enums/sync_type_enum.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../wallets/wallet/impl/banano_wallet.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../widgets/hover_text_field.dart'; +import '../../../widgets/rounded_white_container.dart'; /// [eventBus] should only be set during testing class DesktopWalletView extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart index 9f220ddca..a3132262b 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart @@ -11,18 +11,18 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/sub_widgets/contact_list_item.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../../../models/isar/models/contact_entry.dart'; +import 'sub_widgets/contact_list_item.dart'; +import '../../../../../providers/global/address_book_service_provider.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/constants.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../utilities/util.dart'; +import '../../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../../widgets/icon_widgets/x_icon.dart'; +import '../../../../../widgets/stack_text_field.dart'; +import '../../../../../widgets/textfield_icon_button.dart'; class AddressBookAddressChooser extends StatefulWidget { const AddressBookAddressChooser({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/sub_widgets/contact_list_item.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/sub_widgets/contact_list_item.dart index 5c6856a1f..be7d7d138 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/sub_widgets/contact_list_item.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/sub_widgets/contact_list_item.dart @@ -10,15 +10,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/address_book_card.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/expandable.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart'; +import '../../../../../../providers/global/address_book_service_provider.dart'; +import '../../../../../../themes/stack_colors.dart'; +import '../../../../../../utilities/text_styles.dart'; +import '../../../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../../../widgets/address_book_card.dart'; +import '../../../../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../../../../widgets/expandable.dart'; +import '../../../../../../widgets/rounded_white_container.dart'; +import '../../../../../../widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart'; class ContactListItem extends ConsumerStatefulWidget { const ContactListItem({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart index 6085e90e2..fd5349380 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart @@ -13,20 +13,20 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../../pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; +import '../../../../providers/global/secure_store_provider.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../route_generator.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/clipboard_interface.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; class DeleteWalletKeysPopup extends ConsumerStatefulWidget { const DeleteWalletKeysPopup({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_attention_delete_wallet.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_attention_delete_wallet.dart index 6262e6eca..21d4bfbf5 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_attention_delete_wallet.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_attention_delete_wallet.dart @@ -10,17 +10,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../../../app_config.dart'; +import 'delete_wallet_keys_popup.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/rounded_container.dart'; import 'package:tuple/tuple.dart'; class DesktopAttentionDeleteWallet extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart index 561781cf6..f4dffdb00 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart @@ -13,16 +13,16 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/providers/desktop/storage_crypto_handler_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../../../providers/desktop/storage_crypto_handler_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/loading_indicator.dart'; +import '../../../../widgets/stack_text_field.dart'; class DesktopAuthSend extends ConsumerStatefulWidget { const DesktopAuthSend({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_balance_toggle_button.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_balance_toggle_button.dart index 1b2b01dd0..e873843b1 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_balance_toggle_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_balance_toggle_button.dart @@ -11,13 +11,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; -import 'package:stackwallet/providers/wallet/wallet_balance_toggle_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/wallet_balance_toggle_state.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../../../providers/wallet/public_private_balance_state_provider.dart'; +import '../../../../providers/wallet/wallet_balance_toggle_state_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/enums/wallet_balance_toggle_state.dart'; +import '../../../../utilities/text_styles.dart'; class DesktopBalanceToggleButton extends ConsumerWidget { const DesktopBalanceToggleButton({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart index 6e1c8e3c4..ddad5fd55 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart @@ -13,19 +13,19 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_attention_delete_wallet.dart'; -import 'package:stackwallet/providers/desktop/storage_crypto_handler_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import 'desktop_attention_delete_wallet.dart'; +import '../../../../providers/desktop/storage_crypto_handler_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/loading_indicator.dart'; +import '../../../../widgets/stack_text_field.dart'; class DesktopDeleteWalletDialog extends ConsumerStatefulWidget { const DesktopDeleteWalletDialog({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart index f32f36a23..a592d60bb 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart @@ -13,27 +13,27 @@ import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/models.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/providers/ui/fee_rate_type_state_provider.dart'; -import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/widgets/animated_text.dart'; +import '../../../../models/models.dart'; +import '../../../../pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../providers/ui/fee_rate_type_state_provider.dart'; +import '../../../../providers/wallet/public_private_balance_state_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/amount/amount.dart'; +import '../../../../utilities/amount/amount_formatter.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/enums/fee_rate_type_enum.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../../wallets/crypto_currency/coins/monero.dart'; +import '../../../../wallets/crypto_currency/coins/wownero.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../wallets/wallet/impl/firo_wallet.dart'; +import '../../../../widgets/animated_text.dart'; final tokenFeeSessionCacheProvider = ChangeNotifierProvider((ref) { diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart index 3f69ccaaf..974e1f7f2 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart @@ -17,30 +17,30 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/receive_view/generate_receiving_uri_qr_code_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/multi_address_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../models/isar/models/isar_models.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../../pages/receive_view/generate_receiving_uri_qr_code_view.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/providers.dart'; +import '../../../../route_generator.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/address_utils.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/clipboard_interface.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/multi_address_interface.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_loading_overlay.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; import 'package:tuple/tuple.dart'; class DesktopReceive extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart index d7ed9ceca..afa38b49a 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart @@ -17,66 +17,66 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/models/paynym/paynym_account_lite.dart'; -import 'package:stackwallet/models/send_view_auto_fill_data.dart'; -import 'package:stackwallet/pages/send_view/confirm_transaction_view.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/building_transaction_dialog.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart'; -import 'package:stackwallet/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/ui/fee_rate_type_state_provider.dart'; -import 'package:stackwallet/providers/ui/preview_tx_button_state_provider.dart'; -import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/amount/amount_input_formatter.dart'; -import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; -import 'package:stackwallet/widgets/animated_text.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_fee_dialog.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/fee_slider.dart'; -import 'package:stackwallet/widgets/icon_widgets/addressbook_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../../models/isar/models/contact_entry.dart'; +import '../../../../models/paynym/paynym_account_lite.dart'; +import '../../../../models/send_view_auto_fill_data.dart'; +import '../../../../pages/send_view/confirm_transaction_view.dart'; +import '../../../../pages/send_view/sub_widgets/building_transaction_dialog.dart'; +import '../../../../pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart'; +import '../../../coin_control/desktop_coin_control_use_dialog.dart'; +import '../../../desktop_home_view.dart'; +import 'address_book_address_chooser/address_book_address_chooser.dart'; +import 'desktop_fee_dropdown.dart'; +import '../../../../providers/providers.dart'; +import '../../../../providers/ui/fee_rate_type_state_provider.dart'; +import '../../../../providers/ui/preview_tx_button_state_provider.dart'; +import '../../../../providers/wallet/public_private_balance_state_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/address_utils.dart'; +import '../../../../utilities/amount/amount.dart'; +import '../../../../utilities/amount/amount_formatter.dart'; +import '../../../../utilities/amount/amount_input_formatter.dart'; +import '../../../../utilities/amount/amount_unit.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/barcode_scanner_interface.dart'; +import '../../../../utilities/clipboard_interface.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/enums/fee_rate_type_enum.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/prefs.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/coins/epiccash.dart'; +import '../../../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../../wallets/crypto_currency/coins/monero.dart'; +import '../../../../wallets/crypto_currency/coins/stellar.dart'; +import '../../../../wallets/crypto_currency/coins/tezos.dart'; +import '../../../../wallets/crypto_currency/coins/wownero.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../wallets/crypto_currency/intermediate/nano_currency.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../wallets/models/tx_data.dart'; +import '../../../../wallets/wallet/impl/firo_wallet.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../../../widgets/animated_text.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/desktop_fee_dialog.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/fee_slider.dart'; +import '../../../../widgets/icon_widgets/addressbook_icon.dart'; +import '../../../../widgets/icon_widgets/clipboard_icon.dart'; +import '../../../../widgets/icon_widgets/x_icon.dart'; +import '../../../../widgets/rounded_container.dart'; +import '../../../../widgets/stack_text_field.dart'; +import '../../../../widgets/textfield_icon_button.dart'; class DesktopSend extends ConsumerStatefulWidget { const DesktopSend({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart index b93850b0b..8272999c8 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart @@ -14,44 +14,44 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/models/paynym/paynym_account_lite.dart'; -import 'package:stackwallet/models/send_view_auto_fill_data.dart'; -import 'package:stackwallet/pages/send_view/confirm_transaction_view.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/building_transaction_dialog.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/ui/fee_rate_type_state_provider.dart'; -import 'package:stackwallet/providers/ui/preview_tx_button_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/amount/amount_input_formatter.dart'; -import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/token_balance_provider.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/addressbook_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../../models/isar/models/contact_entry.dart'; +import '../../../../models/paynym/paynym_account_lite.dart'; +import '../../../../models/send_view_auto_fill_data.dart'; +import '../../../../pages/send_view/confirm_transaction_view.dart'; +import '../../../../pages/send_view/sub_widgets/building_transaction_dialog.dart'; +import '../../../desktop_home_view.dart'; +import 'address_book_address_chooser/address_book_address_chooser.dart'; +import 'desktop_fee_dropdown.dart'; +import '../../../../providers/providers.dart'; +import '../../../../providers/ui/fee_rate_type_state_provider.dart'; +import '../../../../providers/ui/preview_tx_button_state_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/address_utils.dart'; +import '../../../../utilities/amount/amount.dart'; +import '../../../../utilities/amount/amount_formatter.dart'; +import '../../../../utilities/amount/amount_input_formatter.dart'; +import '../../../../utilities/barcode_scanner_interface.dart'; +import '../../../../utilities/clipboard_interface.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/prefs.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../../../wallets/isar/providers/eth/token_balance_provider.dart'; +import '../../../../wallets/models/tx_data.dart'; +import '../../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/icon_widgets/addressbook_icon.dart'; +import '../../../../widgets/icon_widgets/clipboard_icon.dart'; +import '../../../../widgets/icon_widgets/x_icon.dart'; +import '../../../../widgets/stack_text_field.dart'; +import '../../../../widgets/textfield_icon_button.dart'; // const _kCryptoAmountRegex = r'^([0-9]*[,.]?[0-9]{0,8}|[,.][0-9]{0,8})$'; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart index 3cef858d3..0f55a7c70 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart @@ -15,39 +15,39 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/monkey/monkey_view.dart'; -import 'package:stackwallet/pages/paynym/paynym_claim_view.dart'; -import 'package:stackwallet/pages/paynym/paynym_home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart'; -import 'package:stackwallet/pages_desktop_specific/coin_control/desktop_coin_control_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_menu.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart'; -import 'package:stackwallet/pages_desktop_specific/ordinals/desktop_ordinals_view.dart'; -import 'package:stackwallet/providers/desktop/current_desktop_menu_item.dart'; -import 'package:stackwallet/providers/global/paynym_api_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/wallet/my_paynym_account_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../../pages/monkey/monkey_view.dart'; +import '../../../../pages/paynym/paynym_claim_view.dart'; +import '../../../../pages/paynym/paynym_home_view.dart'; +import '../../../cashfusion/desktop_cashfusion_view.dart'; +import '../../../coin_control/desktop_coin_control_view.dart'; +import '../../../desktop_menu.dart'; +import '../desktop_wallet_view.dart'; +import 'more_features/more_features_dialog.dart'; +import '../../../ordinals/desktop_ordinals_view.dart'; +import '../../../../providers/desktop/current_desktop_menu_item.dart'; +import '../../../../providers/global/paynym_api_provider.dart'; +import '../../../../providers/providers.dart'; +import '../../../../providers/wallet/my_paynym_account_state_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../themes/theme_providers.dart'; +import '../../../../utilities/amount/amount.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/crypto_currency/coins/banano.dart'; +import '../../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../../wallets/wallet/impl/firo_wallet.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../../../widgets/custom_loading_overlay.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/loading_indicator.dart'; class DesktopWalletFeatures extends ConsumerStatefulWidget { const DesktopWalletFeatures({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart index a52ee3d71..ee2c69156 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart @@ -10,22 +10,22 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/wallet_refresh_button.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_balance_toggle_button.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; -import 'package:stackwallet/providers/wallet/wallet_balance_toggle_state_provider.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/enums/wallet_balance_toggle_state.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/token_balance_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../models/balance.dart'; +import '../../../../pages/wallet_view/sub_widgets/wallet_refresh_button.dart'; +import 'desktop_balance_toggle_button.dart'; +import '../../../../providers/providers.dart'; +import '../../../../providers/wallet/public_private_balance_state_provider.dart'; +import '../../../../providers/wallet/wallet_balance_toggle_state_provider.dart'; +import '../../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/amount/amount.dart'; +import '../../../../utilities/amount/amount_formatter.dart'; +import '../../../../utilities/enums/wallet_balance_toggle_state.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../../../wallets/isar/providers/eth/token_balance_provider.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; class DesktopWalletSummary extends ConsumerStatefulWidget { const DesktopWalletSummary({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart index 70ce9e32b..29507d545 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart @@ -11,20 +11,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../../../../providers/global/prefs_provider.dart'; +import '../../../../../providers/global/wallets_provider.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../wallets/crypto_currency/coins/banano.dart'; +import '../../../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../../../wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; +import '../../../../../wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; +import '../../../../../wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; +import '../../../../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../../widgets/rounded_container.dart'; class MoreFeaturesDialog extends ConsumerStatefulWidget { const MoreFeaturesDialog({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart index e7596dd2d..df81592c9 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart @@ -10,21 +10,21 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/pages/send_view/frost_ms/frost_send_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/my_stack_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/widgets/custom_tab_view.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/frost_scaffold.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../frost_route_generator.dart'; +import '../../../../pages/send_view/frost_ms/frost_send_view.dart'; +import '../../../../pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart'; +import '../../my_stack_view.dart'; +import 'desktop_receive.dart'; +import 'desktop_send.dart'; +import 'desktop_token_send.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../widgets/custom_tab_view.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/frost_scaffold.dart'; +import '../../../../widgets/rounded_white_container.dart'; class MyWallet extends ConsumerStatefulWidget { const MyWallet({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/network_info_button.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/network_info_button.dart index 1ba70a0e9..488f3ac4d 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/network_info_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/network_info_button.dart @@ -14,18 +14,18 @@ import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/services/event_bus/events/global/node_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart'; +import '../../../../providers/providers.dart'; +import '../../../../route_generator.dart'; +import '../../../../services/event_bus/events/global/node_connection_status_changed_event.dart'; +import '../../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../../services/event_bus/global_event_bus.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; import 'package:tuple/tuple.dart'; class NetworkInfoButton extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart index 4ba42d4b2..af3d18683 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart @@ -10,9 +10,9 @@ import 'package:flutter/material.dart'; import 'package:qr_flutter/qr_flutter.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; class QRCodeDesktopPopupContent extends StatelessWidget { const QRCodeDesktopPopupContent({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart index 52fe50a4f..dddf74318 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart @@ -13,22 +13,22 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_desktop_popup.dart'; -import 'package:stackwallet/providers/desktop/storage_crypto_handler_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import 'wallet_keys_desktop_popup.dart'; +import '../../../../providers/desktop/storage_crypto_handler_provider.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/loading_indicator.dart'; +import '../../../../widgets/stack_text_field.dart'; class UnlockWalletKeysDesktop extends ConsumerStatefulWidget { const UnlockWalletKeysDesktop({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_button.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_button.dart index 464f3371a..838e2c363 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_button.dart @@ -10,11 +10,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import 'unlock_wallet_keys_desktop.dart'; +import '../../../../route_generator.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/text_styles.dart'; class WalletKeysButton extends StatelessWidget { const WalletKeysButton({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_desktop_popup.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_desktop_popup.dart index 606ae21f4..61bfcfebf 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_desktop_popup.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_desktop_popup.dart @@ -12,20 +12,20 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/clipboard_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../../pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; +import '../../../../pages/wallet_view/transaction_views/transaction_details_view.dart'; +import 'qr_code_desktop_popup_content.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/address_utils.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/clipboard_interface.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class WalletKeysDesktopPopup extends StatelessWidget { const WalletKeysDesktopPopup({ diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_options_button.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_options_button.dart index 916201c8f..23922cd2e 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_options_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_options_button.dart @@ -14,22 +14,22 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart'; -import 'package:stackwallet/pages_desktop_specific/addresses/desktop_wallet_addresses_view.dart'; -import 'package:stackwallet/pages_desktop_specific/lelantus_coins/lelantus_coins_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart'; -import 'package:stackwallet/pages_desktop_specific/spark_coins/spark_coins_view.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart'; +import '../../../../pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart'; +import '../../../../pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart'; +import '../../../addresses/desktop_wallet_addresses_view.dart'; +import '../../../lelantus_coins/lelantus_coins_view.dart'; +import 'desktop_delete_wallet_dialog.dart'; +import '../../../spark_coins/spark_coins_view.dart'; +import '../../../../route_generator.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../../wallets/crypto_currency/intermediate/frost_currency.dart'; +import '../../../../wallets/crypto_currency/intermediate/nano_currency.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; enum _WalletOptions { addressList, diff --git a/lib/pages_desktop_specific/notifications/desktop_notifications_view.dart b/lib/pages_desktop_specific/notifications/desktop_notifications_view.dart index eeb90e92c..bc05bafa6 100644 --- a/lib/pages_desktop_specific/notifications/desktop_notifications_view.dart +++ b/lib/pages_desktop_specific/notifications/desktop_notifications_view.dart @@ -10,14 +10,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/notifications/notification_card.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/providers/ui/unread_notifications_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../notifications/notification_card.dart'; +import '../../providers/providers.dart'; +import '../../providers/ui/unread_notifications_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/rounded_white_container.dart'; class DesktopNotificationsView extends ConsumerStatefulWidget { const DesktopNotificationsView({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart b/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart index b4a4af07f..83a865e1e 100644 --- a/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart +++ b/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart @@ -5,27 +5,27 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart'; -import 'package:stackwallet/models/isar/ordinal.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../models/isar/models/blockchain_data/utxo.dart'; +import '../../models/isar/ordinal.dart'; +import '../../networking/http.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../../pages/wallet_view/transaction_views/transaction_details_view.dart'; +import '../../providers/db/main_db_provider.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../services/tor_service.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_formatter.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/prefs.dart'; +import '../../utilities/show_loading.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/rounded_white_container.dart'; class DesktopOrdinalDetailsView extends ConsumerStatefulWidget { const DesktopOrdinalDetailsView({ diff --git a/lib/pages_desktop_specific/ordinals/desktop_ordinals_view.dart b/lib/pages_desktop_specific/ordinals/desktop_ordinals_view.dart index c710a4d10..3ab866f27 100644 --- a/lib/pages_desktop_specific/ordinals/desktop_ordinals_view.dart +++ b/lib/pages_desktop_specific/ordinals/desktop_ordinals_view.dart @@ -11,17 +11,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/ordinals/widgets/ordinals_list.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; +import '../../pages/ordinals/widgets/ordinals_list.dart'; +import '../../providers/providers.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/show_loading.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/secondary_button.dart'; class DesktopOrdinalsView extends ConsumerStatefulWidget { const DesktopOrdinalsView({ diff --git a/lib/pages_desktop_specific/password/create_password_view.dart b/lib/pages_desktop_specific/password/create_password_view.dart index a8c129f90..31f070982 100644 --- a/lib/pages_desktop_specific/password/create_password_view.dart +++ b/lib/pages_desktop_specific/password/create_password_view.dart @@ -13,22 +13,22 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart'; -import 'package:stackwallet/providers/desktop/storage_crypto_handler_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/progress_bar.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../desktop_home_view.dart'; +import 'forgotten_passphrase_restore_from_swb.dart'; +import '../../providers/desktop/storage_crypto_handler_provider.dart'; +import '../../providers/global/secure_store_provider.dart'; +import '../../providers/providers.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/flutter_secure_storage_interface.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/progress_bar.dart'; +import '../../widgets/stack_text_field.dart'; import 'package:zxcvbn/zxcvbn.dart'; class CreatePasswordView extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/password/delete_password_warning_view.dart b/lib/pages_desktop_specific/password/delete_password_warning_view.dart index 22fb801c7..cae9ecbba 100644 --- a/lib/pages_desktop_specific/password/delete_password_warning_view.dart +++ b/lib/pages_desktop_specific/password/delete_password_warning_view.dart @@ -16,18 +16,18 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:hive/hive.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/intro_view.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; +import '../../db/hive/db.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../../pages/intro_view.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/stack_file_system.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; class DeletePasswordWarningView extends ConsumerStatefulWidget { const DeletePasswordWarningView({ diff --git a/lib/pages_desktop_specific/password/desktop_login_view.dart b/lib/pages_desktop_specific/password/desktop_login_view.dart index 078038172..30f13b44b 100644 --- a/lib/pages_desktop_specific/password/desktop_login_view.dart +++ b/lib/pages_desktop_specific/password/desktop_login_view.dart @@ -14,28 +14,28 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/db/db_version_migration.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/password/forgot_password_desktop_view.dart'; -import 'package:stackwallet/providers/desktop/storage_crypto_handler_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../app_config.dart'; +import '../../db/db_version_migration.dart'; +import '../../db/hive/db.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../desktop_home_view.dart'; +import 'forgot_password_desktop_view.dart'; +import '../../providers/desktop/storage_crypto_handler_provider.dart'; +import '../../providers/global/secure_store_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/flutter_secure_storage_interface.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/loading_indicator.dart'; +import '../../widgets/rounded_container.dart'; +import '../../widgets/stack_text_field.dart'; class DesktopLoginView extends ConsumerStatefulWidget { const DesktopLoginView({ diff --git a/lib/pages_desktop_specific/password/forgot_password_desktop_view.dart b/lib/pages_desktop_specific/password/forgot_password_desktop_view.dart index 0f1077983..56502547a 100644 --- a/lib/pages_desktop_specific/password/forgot_password_desktop_view.dart +++ b/lib/pages_desktop_specific/password/forgot_password_desktop_view.dart @@ -13,16 +13,16 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/pages_desktop_specific/password/delete_password_warning_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; +import '../../app_config.dart'; +import 'delete_password_warning_view.dart'; +import '../../themes/stack_colors.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/desktop/secondary_button.dart'; class ForgotPasswordDesktopView extends ConsumerStatefulWidget { const ForgotPasswordDesktopView({ diff --git a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart index cfbbac0ec..b1efe30f1 100644 --- a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart +++ b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart @@ -15,29 +15,29 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart'; -import 'package:stackwallet/pages_desktop_specific/password/create_password_view.dart'; -import 'package:stackwallet/providers/desktop/storage_crypto_handler_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../app_config.dart'; +import '../../db/hive/db.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../../pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; +import '../../pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart'; +import '../../pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart'; +import 'create_password_view.dart'; +import '../../providers/desktop/storage_crypto_handler_provider.dart'; +import '../../providers/global/secure_store_provider.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/flutter_secure_storage_interface.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_dialog.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/desktop/primary_button.dart'; +import '../../widgets/loading_indicator.dart'; +import '../../widgets/stack_text_field.dart'; import 'package:tuple/tuple.dart'; class ForgottenPassphraseRestoreFromSWB extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/settings/desktop_settings_view.dart b/lib/pages_desktop_specific/settings/desktop_settings_view.dart index 5d95cd960..3ecf30375 100644 --- a/lib/pages_desktop_specific/settings/desktop_settings_view.dart +++ b/lib/pages_desktop_specific/settings/desktop_settings_view.dart @@ -10,21 +10,21 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/advanced_settings/advanced_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/appearance_settings/appearance_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/backup_and_restore/backup_and_restore_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/currency_settings/currency_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/language_settings/language_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/nodes_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/security_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/syncing_preferences_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/tor_settings/tor_settings.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; +import 'settings_menu.dart'; +import 'settings_menu/advanced_settings/advanced_settings.dart'; +import 'settings_menu/appearance_settings/appearance_settings.dart'; +import 'settings_menu/backup_and_restore/backup_and_restore_settings.dart'; +import 'settings_menu/currency_settings/currency_settings.dart'; +import 'settings_menu/language_settings/language_settings.dart'; +import 'settings_menu/nodes_settings.dart'; +import 'settings_menu/security_settings.dart'; +import 'settings_menu/syncing_preferences_settings.dart'; +import 'settings_menu/tor_settings/tor_settings.dart'; +import '../../route_generator.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; class DesktopSettingsView extends ConsumerStatefulWidget { const DesktopSettingsView({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/settings/settings_menu.dart b/lib/pages_desktop_specific/settings/settings_menu.dart index ba2c21781..d12cdea34 100644 --- a/lib/pages_desktop_specific/settings/settings_menu.dart +++ b/lib/pages_desktop_specific/settings/settings_menu.dart @@ -11,9 +11,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu_item.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import 'settings_menu_item.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; final selectedSettingsMenuItemStateProvider = StateProvider((_) => 0); diff --git a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/advanced_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/advanced_settings.dart index 102a547d6..69661e04c 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/advanced_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/advanced_settings.dart @@ -11,17 +11,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/advanced_settings/debug_info_dialog.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/advanced_settings/stack_privacy_dialog.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/draggable_switch_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart'; +import 'debug_info_dialog.dart'; +import 'desktop_manage_block_explorers_dialog.dart'; +import 'stack_privacy_dialog.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class AdvancedSettings extends ConsumerStatefulWidget { const AdvancedSettings({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/debug_info_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/debug_info_dialog.dart index c9a476d04..9ce77873e 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/debug_info_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/debug_info_dialog.dart @@ -13,23 +13,23 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/isar/models/log.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/providers/global/debug_service_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/log_level_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../../models/isar/models/log.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../../providers/global/debug_service_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/enums/log_level_enum.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/icon_widgets/x_icon.dart'; +import '../../../../widgets/rounded_container.dart'; +import '../../../../widgets/stack_text_field.dart'; +import '../../../../widgets/textfield_icon_button.dart'; class DebugInfoDialog extends ConsumerStatefulWidget { const DebugInfoDialog({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart index 9c00ead29..45eed9054 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart @@ -13,20 +13,20 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/block_explorers.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../app_config.dart'; +import '../../../../themes/coin_icon_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/block_explorers.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class DesktopManageBlockExplorersDialog extends ConsumerWidget { const DesktopManageBlockExplorersDialog({ diff --git a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/stack_privacy_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/stack_privacy_dialog.dart index 2b3009dc0..8ebf89c70 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/stack_privacy_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/stack_privacy_dialog.dart @@ -14,21 +14,21 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/price_provider.dart'; -import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../db/hive/db.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../providers/global/price_provider.dart'; +import '../../../../services/exchange/exchange_data_loading_service.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../themes/theme_providers.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class StackPrivacyDialog extends ConsumerStatefulWidget { const StackPrivacyDialog({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/appearance_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/appearance_settings.dart index d378e557b..8fa05124b 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/appearance_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/appearance_settings.dart @@ -14,19 +14,19 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_manage_themes.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/themes/theme_service.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/draggable_switch_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../app_config.dart'; +import '../../../../models/isar/stack_theme.dart'; +import 'sub_widgets/desktop_manage_themes.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../themes/theme_providers.dart'; +import '../../../../themes/theme_service.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; import 'package:tuple/tuple.dart'; class AppearanceOptionSettings extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_install_theme.dart b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_install_theme.dart index 243f2e570..1126cbbfe 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_install_theme.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_install_theme.dart @@ -14,15 +14,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:share_plus/share_plus.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_service.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/outline_blue_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../themes/theme_service.dart'; +import '../../../../../utilities/assets.dart'; +import '../../../../../utilities/logger.dart'; +import '../../../../../utilities/show_loading.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../widgets/desktop/outline_blue_button.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/rounded_container.dart'; class DesktopInstallTheme extends ConsumerStatefulWidget { const DesktopInstallTheme({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_manage_themes.dart b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_manage_themes.dart index d4e6ec20b..bf04e48f1 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_manage_themes.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_manage_themes.dart @@ -10,14 +10,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_install_theme.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_themes_gallery.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/toggle.dart'; +import 'desktop_install_theme.dart'; +import 'desktop_themes_gallery.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../utilities/constants.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../../widgets/toggle.dart'; class DesktopManageThemesDialog extends ConsumerStatefulWidget { const DesktopManageThemesDialog({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_themes_gallery.dart b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_themes_gallery.dart index 41e33fb3a..160fd67f5 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_themes_gallery.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_themes_gallery.dart @@ -12,15 +12,15 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/stack_theme_card.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_service.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../../pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart'; +import '../../../../../pages/settings_views/global_settings_view/appearance_settings/sub_widgets/stack_theme_card.dart'; +import '../../../../../providers/global/prefs_provider.dart'; +import '../../../../../themes/stack_colors.dart'; +import '../../../../../themes/theme_service.dart'; +import '../../../../../utilities/text_styles.dart'; +import '../../../../../widgets/desktop/primary_button.dart'; +import '../../../../../widgets/loading_indicator.dart'; +import '../../../../../widgets/rounded_white_container.dart'; class DesktopThemeGallery extends ConsumerStatefulWidget { const DesktopThemeGallery({ diff --git a/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/backup_and_restore_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/backup_and_restore_settings.dart index 9c9b30bf9..7453e5063 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/backup_and_restore_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/backup_and_restore_settings.dart @@ -13,29 +13,29 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:intl/intl.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/backup_and_restore/create_auto_backup.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/backup_and_restore/enable_backup_dialog.dart'; -import 'package:stackwallet/providers/global/auto_swb_service_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/custom_buttons/draggable_switch_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../../app_config.dart'; +import '../../../../pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart'; +import '../../../../pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart'; +import '../../../../pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart'; +import 'create_auto_backup.dart'; +import 'enable_backup_dialog.dart'; +import '../../../../providers/global/auto_swb_service_provider.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/enums/backup_frequency_type.dart'; +import '../../../../utilities/format.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/rounded_container.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_dialog.dart'; import 'package:url_launcher/url_launcher.dart'; class BackupRestoreSettings extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/create_auto_backup.dart b/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/create_auto_backup.dart index 2e27798bb..80b6faea3 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/create_auto_backup.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/create_auto_backup.dart @@ -18,27 +18,27 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stack_wallet_backup/stack_wallet_backup.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/progress_bar.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../../pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; +import '../../../../pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../providers/global/secure_store_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/enums/backup_frequency_type.dart'; +import '../../../../utilities/flutter_secure_storage_interface.dart'; +import '../../../../utilities/format.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/progress_bar.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../../../widgets/stack_text_field.dart'; import 'package:zxcvbn/zxcvbn.dart'; class CreateAutoBackup extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/enable_backup_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/enable_backup_dialog.dart index d52b035dc..fcd05c57b 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/enable_backup_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/enable_backup_dialog.dart @@ -9,13 +9,13 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/backup_and_restore/create_auto_backup.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; +import 'create_auto_backup.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; class EnableBackupDialog extends StatelessWidget { const EnableBackupDialog({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/settings/settings_menu/currency_settings/currency_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/currency_settings/currency_settings.dart index e163d7b6b..c9faa8182 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/currency_settings/currency_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/currency_settings/currency_settings.dart @@ -11,13 +11,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/currency_view.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../pages/settings_views/global_settings_view/currency_view.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class CurrencySettings extends ConsumerStatefulWidget { const CurrencySettings({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index 31ff8deb3..243611f7a 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -18,14 +18,14 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:http/http.dart'; import 'package:lelantus/git_versions.dart' as FIRO_VERSIONS; import 'package:package_info_plus/package_info_plus.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../app_config.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; +import '../../../widgets/rounded_white_container.dart'; import 'package:url_launcher/url_launcher.dart'; const kGithubAPI = "https://api.github.com"; diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_support_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_support_view.dart index d2dc00f3b..2d9060e3a 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_support_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_support_view.dart @@ -10,11 +10,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/support_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; +import '../../../pages/settings_views/global_settings_view/support_view.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/desktop/desktop_app_bar.dart'; +import '../../../widgets/desktop/desktop_scaffold.dart'; class DesktopSupportView extends ConsumerStatefulWidget { const DesktopSupportView({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_dialog.dart index e3bb58526..c24762da6 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_dialog.dart @@ -11,20 +11,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/languages_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/enums/languages_enum.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/icon_widgets/x_icon.dart'; +import '../../../../widgets/rounded_container.dart'; +import '../../../../widgets/stack_text_field.dart'; +import '../../../../widgets/textfield_icon_button.dart'; class LanguageDialog extends ConsumerStatefulWidget { const LanguageDialog({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_settings.dart index 4dab186b0..795fbbf8b 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_settings.dart @@ -11,11 +11,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/language_settings/language_dialog.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import 'language_dialog.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class LanguageOptionSettings extends ConsumerStatefulWidget { const LanguageOptionSettings({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart index f70032049..0471caf73 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart @@ -13,21 +13,21 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/route_generator.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../../pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart'; +import '../../../providers/providers.dart'; +import '../../../route_generator.dart'; +import '../../../app_config.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../widgets/icon_widgets/x_icon.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; +import '../../../widgets/textfield_icon_button.dart'; class NodesSettings extends ConsumerStatefulWidget { const NodesSettings({super.key}); diff --git a/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart index f4088095b..524686732 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart @@ -13,17 +13,17 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/providers/desktop/storage_crypto_handler_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/progress_bar.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; +import '../../../app_config.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../../../providers/desktop/storage_crypto_handler_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/constants.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/progress_bar.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_text_field.dart'; import 'package:zxcvbn/zxcvbn.dart'; class SecuritySettings extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/settings/settings_menu/syncing_preferences_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/syncing_preferences_settings.dart index 0522d1ed7..d1b03d83e 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/syncing_preferences_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/syncing_preferences_settings.dart @@ -11,15 +11,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart'; +import '../../../providers/global/prefs_provider.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/enums/sync_type_enum.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/desktop/primary_button.dart'; +import '../../../widgets/rounded_container.dart'; +import '../../../widgets/rounded_white_container.dart'; class SyncingPreferencesSettings extends ConsumerStatefulWidget { const SyncingPreferencesSettings({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/settings/settings_menu/tor_settings/tor_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/tor_settings/tor_settings.dart index 6d74abed0..4cbce2c5e 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/tor_settings/tor_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/tor_settings/tor_settings.dart @@ -15,21 +15,21 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/draggable_switch_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../../providers/global/prefs_provider.dart'; +import '../../../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../../../../services/event_bus/global_event_bus.dart'; +import '../../../../services/tor_service.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/stack_file_system.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/rounded_white_container.dart'; class TorSettings extends ConsumerStatefulWidget { const TorSettings({Key? key}) : super(key: key); diff --git a/lib/pages_desktop_specific/settings/settings_menu_item.dart b/lib/pages_desktop_specific/settings/settings_menu_item.dart index 673d3e318..a1cc79d98 100644 --- a/lib/pages_desktop_specific/settings/settings_menu_item.dart +++ b/lib/pages_desktop_specific/settings/settings_menu_item.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; class SettingsMenuItem extends StatelessWidget { const SettingsMenuItem({ diff --git a/lib/pages_desktop_specific/spark_coins/spark_coins_view.dart b/lib/pages_desktop_specific/spark_coins/spark_coins_view.dart index 6c2736628..42053b155 100644 --- a/lib/pages_desktop_specific/spark_coins/spark_coins_view.dart +++ b/lib/pages_desktop_specific/spark_coins/spark_coins_view.dart @@ -12,15 +12,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/isar/models/spark_coin.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; -import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../providers/db/main_db_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/isar/models/spark_coin.dart'; +import '../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; +import '../../widgets/rounded_white_container.dart'; class SparkCoinsView extends ConsumerStatefulWidget { const SparkCoinsView({ diff --git a/lib/providers/buy/buy_form_state_provider.dart b/lib/providers/buy/buy_form_state_provider.dart index 3e8d7cdf1..5a2a79ed1 100644 --- a/lib/providers/buy/buy_form_state_provider.dart +++ b/lib/providers/buy/buy_form_state_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/buy/buy_form_state.dart'; +import '../../models/buy/buy_form_state.dart'; final buyFormStateProvider = ChangeNotifierProvider( (ref) => BuyFormState(), diff --git a/lib/providers/buy/simplex_provider.dart b/lib/providers/buy/simplex_provider.dart index e8e075455..cb598d29d 100644 --- a/lib/providers/buy/simplex_provider.dart +++ b/lib/providers/buy/simplex_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/buy/simplex/simplex.dart'; +import '../../models/buy/simplex/simplex.dart'; final simplexProvider = Provider( (ref) => Simplex(), diff --git a/lib/providers/cash_fusion/fusion_progress_ui_state_provider.dart b/lib/providers/cash_fusion/fusion_progress_ui_state_provider.dart index 872b6586a..588cff031 100644 --- a/lib/providers/cash_fusion/fusion_progress_ui_state_provider.dart +++ b/lib/providers/cash_fusion/fusion_progress_ui_state_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/fusion_progress_ui_state.dart'; +import '../../models/fusion_progress_ui_state.dart'; final fusionProgressUIStateProvider = ChangeNotifierProvider.family( diff --git a/lib/providers/db/main_db_provider.dart b/lib/providers/db/main_db_provider.dart index c86ebf93c..2544c74fc 100644 --- a/lib/providers/db/main_db_provider.dart +++ b/lib/providers/db/main_db_provider.dart @@ -9,6 +9,6 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; +import '../../db/isar/main_db.dart'; final mainDBProvider = Provider((ref) => MainDB.instance); diff --git a/lib/providers/desktop/current_desktop_menu_item.dart b/lib/providers/desktop/current_desktop_menu_item.dart index 409a48a40..683ac73a8 100644 --- a/lib/providers/desktop/current_desktop_menu_item.dart +++ b/lib/providers/desktop/current_desktop_menu_item.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_menu.dart'; +import '../../pages_desktop_specific/desktop_menu.dart'; final currentDesktopMenuItemProvider = StateProvider((ref) => DesktopMenuItemId.myStack); diff --git a/lib/providers/desktop/storage_crypto_handler_provider.dart b/lib/providers/desktop/storage_crypto_handler_provider.dart index 6f25571a6..65b55178a 100644 --- a/lib/providers/desktop/storage_crypto_handler_provider.dart +++ b/lib/providers/desktop/storage_crypto_handler_provider.dart @@ -9,6 +9,6 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/utilities/desktop_password_service.dart'; +import '../../utilities/desktop_password_service.dart'; final storageCryptoHandlerProvider = Provider((ref) => DPS()); diff --git a/lib/providers/exchange/exchange_form_state_provider.dart b/lib/providers/exchange/exchange_form_state_provider.dart index b8ad1c2f9..ab1515653 100644 --- a/lib/providers/exchange/exchange_form_state_provider.dart +++ b/lib/providers/exchange/exchange_form_state_provider.dart @@ -10,18 +10,18 @@ import 'package:decimal/decimal.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/exchange/active_pair.dart'; -import 'package:stackwallet/models/exchange/response_objects/estimate.dart'; -import 'package:stackwallet/models/exchange/response_objects/range.dart'; -import 'package:stackwallet/providers/global/locale_provider.dart'; -import 'package:stackwallet/services/exchange/exchange.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_unit.dart'; +import '../../models/exchange/active_pair.dart'; +import '../../models/exchange/response_objects/estimate.dart'; +import '../../models/exchange/response_objects/range.dart'; +import '../global/locale_provider.dart'; +import '../../services/exchange/exchange.dart'; +import '../../services/exchange/exchange_response.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_unit.dart'; -import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/nano.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../utilities/enums/exchange_rate_type_enum.dart'; +import '../../wallets/crypto_currency/coins/nano.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; final efEstimatesListProvider = StateProvider.family< diff --git a/lib/providers/exchange/exchange_send_from_wallet_id_provider.dart b/lib/providers/exchange/exchange_send_from_wallet_id_provider.dart index 3a1c4c452..bc43ceca7 100644 --- a/lib/providers/exchange/exchange_send_from_wallet_id_provider.dart +++ b/lib/providers/exchange/exchange_send_from_wallet_id_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; final exchangeSendFromWalletIdStateProvider = diff --git a/lib/providers/exchange/trade_note_service_provider.dart b/lib/providers/exchange/trade_note_service_provider.dart index 6d54eba8b..433a07ddf 100644 --- a/lib/providers/exchange/trade_note_service_provider.dart +++ b/lib/providers/exchange/trade_note_service_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/services/trade_notes_service.dart'; +import '../../services/trade_notes_service.dart'; final tradeNoteServiceProvider = ChangeNotifierProvider((ref) => TradeNotesService()); diff --git a/lib/providers/exchange/trade_sent_from_stack_lookup_provider.dart b/lib/providers/exchange/trade_sent_from_stack_lookup_provider.dart index d443ac390..5eb808e3c 100644 --- a/lib/providers/exchange/trade_sent_from_stack_lookup_provider.dart +++ b/lib/providers/exchange/trade_sent_from_stack_lookup_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/services/trade_sent_from_stack_service.dart'; +import '../../services/trade_sent_from_stack_service.dart'; final tradeSentFromStackLookupProvider = ChangeNotifierProvider( diff --git a/lib/providers/frost_wallet/frost_wallet_providers.dart b/lib/providers/frost_wallet/frost_wallet_providers.dart index 7b3ee3eda..c5b934e8e 100644 --- a/lib/providers/frost_wallet/frost_wallet_providers.dart +++ b/lib/providers/frost_wallet/frost_wallet_providers.dart @@ -3,9 +3,9 @@ import 'dart:typed_data'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:frostdart/frostdart_bindings_generated.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/wallets/models/incomplete_frost_wallet.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; +import '../../services/frost.dart'; +import '../../wallets/models/incomplete_frost_wallet.dart'; +import '../../wallets/models/tx_data.dart'; // =================== wallet creation ========================================= final pFrostMultisigConfig = StateProvider((ref) => null); diff --git a/lib/providers/global/address_book_service_provider.dart b/lib/providers/global/address_book_service_provider.dart index efb0b7a1d..e61f6960a 100644 --- a/lib/providers/global/address_book_service_provider.dart +++ b/lib/providers/global/address_book_service_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/services/address_book_service.dart'; +import '../../services/address_book_service.dart'; final addressBookServiceProvider = ChangeNotifierProvider((ref) => AddressBookService()); diff --git a/lib/providers/global/auto_swb_service_provider.dart b/lib/providers/global/auto_swb_service_provider.dart index a37f52061..ba67fef94 100644 --- a/lib/providers/global/auto_swb_service_provider.dart +++ b/lib/providers/global/auto_swb_service_provider.dart @@ -9,8 +9,8 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/services/auto_swb_service.dart'; +import 'secure_store_provider.dart'; +import '../../services/auto_swb_service.dart'; final autoSWBServiceProvider = ChangeNotifierProvider( (ref) => AutoSWBService( diff --git a/lib/providers/global/base_currencies_provider.dart b/lib/providers/global/base_currencies_provider.dart index 88086fde4..341ebf2c1 100644 --- a/lib/providers/global/base_currencies_provider.dart +++ b/lib/providers/global/base_currencies_provider.dart @@ -10,7 +10,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/services/price.dart'; +import '../../services/price.dart'; final baseCurrenciesProvider = ChangeNotifierProvider<_BaseCurrencies>((_) => _BaseCurrencies()); diff --git a/lib/providers/global/debug_service_provider.dart b/lib/providers/global/debug_service_provider.dart index 15868959b..4d666cdcf 100644 --- a/lib/providers/global/debug_service_provider.dart +++ b/lib/providers/global/debug_service_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/services/debug_service.dart'; +import '../../services/debug_service.dart'; final debugServiceProvider = ChangeNotifierProvider((ref) => DebugService.instance); diff --git a/lib/providers/global/http_provider.dart b/lib/providers/global/http_provider.dart index 84f8793c0..7aabea1b2 100644 --- a/lib/providers/global/http_provider.dart +++ b/lib/providers/global/http_provider.dart @@ -1,4 +1,4 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/networking/http.dart'; +import '../../networking/http.dart'; final pHTTP = Provider((ref) => HTTP()); diff --git a/lib/providers/global/locale_provider.dart b/lib/providers/global/locale_provider.dart index 903bab614..429e513eb 100644 --- a/lib/providers/global/locale_provider.dart +++ b/lib/providers/global/locale_provider.dart @@ -10,7 +10,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/services/locale_service.dart'; +import '../../services/locale_service.dart'; int _count = 0; final localeServiceChangeNotifierProvider = diff --git a/lib/providers/global/node_service_provider.dart b/lib/providers/global/node_service_provider.dart index c8ef578ab..008cd33aa 100644 --- a/lib/providers/global/node_service_provider.dart +++ b/lib/providers/global/node_service_provider.dart @@ -10,8 +10,8 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/services/node_service.dart'; +import 'secure_store_provider.dart'; +import '../../services/node_service.dart'; int _count = 0; final nodeServiceChangeNotifierProvider = diff --git a/lib/providers/global/notifications_provider.dart b/lib/providers/global/notifications_provider.dart index 56eb18dd8..3cadbce3c 100644 --- a/lib/providers/global/notifications_provider.dart +++ b/lib/providers/global/notifications_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/services/notifications_service.dart'; +import '../../services/notifications_service.dart'; final notificationsProvider = ChangeNotifierProvider((_) => NotificationsService.instance); diff --git a/lib/providers/global/paynym_api_provider.dart b/lib/providers/global/paynym_api_provider.dart index 310d7da43..bae3800f1 100644 --- a/lib/providers/global/paynym_api_provider.dart +++ b/lib/providers/global/paynym_api_provider.dart @@ -9,6 +9,6 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/utilities/paynym_is_api.dart'; +import '../../utilities/paynym_is_api.dart'; final paynymAPIProvider = Provider((_) => PaynymIsApi()); diff --git a/lib/providers/global/prefs_provider.dart b/lib/providers/global/prefs_provider.dart index bc61d44ed..abe6653d2 100644 --- a/lib/providers/global/prefs_provider.dart +++ b/lib/providers/global/prefs_provider.dart @@ -10,7 +10,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../../utilities/prefs.dart'; int _count = 0; final prefsChangeNotifierProvider = ChangeNotifierProvider((_) { diff --git a/lib/providers/global/price_provider.dart b/lib/providers/global/price_provider.dart index a2a91f49e..5c2bbf670 100644 --- a/lib/providers/global/price_provider.dart +++ b/lib/providers/global/price_provider.dart @@ -10,8 +10,8 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/services/price_service.dart'; +import 'prefs_provider.dart'; +import '../../services/price_service.dart'; int _count = 0; diff --git a/lib/providers/global/secure_store_provider.dart b/lib/providers/global/secure_store_provider.dart index 6f4a9e602..284ee2745 100644 --- a/lib/providers/global/secure_store_provider.dart +++ b/lib/providers/global/secure_store_provider.dart @@ -10,9 +10,9 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -import 'package:stackwallet/providers/desktop/storage_crypto_handler_provider.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../desktop/storage_crypto_handler_provider.dart'; +import '../../utilities/flutter_secure_storage_interface.dart'; +import '../../utilities/util.dart'; final secureStoreProvider = Provider((ref) { if (Util.isDesktop) { diff --git a/lib/providers/global/trades_service_provider.dart b/lib/providers/global/trades_service_provider.dart index 252333c54..5f872d048 100644 --- a/lib/providers/global/trades_service_provider.dart +++ b/lib/providers/global/trades_service_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/services/trade_service.dart'; +import '../../services/trade_service.dart'; final tradesServiceProvider = ChangeNotifierProvider((ref) => TradesService()); diff --git a/lib/providers/global/wallets_provider.dart b/lib/providers/global/wallets_provider.dart index 5a63fd230..34ad65fb5 100644 --- a/lib/providers/global/wallets_provider.dart +++ b/lib/providers/global/wallets_provider.dart @@ -9,9 +9,9 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/node_service_provider.dart'; -import 'package:stackwallet/services/wallets.dart'; +import '../db/main_db_provider.dart'; +import 'node_service_provider.dart'; +import '../../services/wallets.dart'; final pWallets = Provider((ref) { final mainDB = ref.read(mainDBProvider); diff --git a/lib/providers/stack_restore/stack_restoring_ui_state_provider.dart b/lib/providers/stack_restore/stack_restoring_ui_state_provider.dart index 60db49575..a618d34e5 100644 --- a/lib/providers/stack_restore/stack_restoring_ui_state_provider.dart +++ b/lib/providers/stack_restore/stack_restoring_ui_state_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/stack_restoring_ui_state.dart'; +import '../../models/stack_restoring_ui_state.dart'; final stackRestoringUIStateProvider = ChangeNotifierProvider( diff --git a/lib/providers/ui/add_wallet_selected_coin_provider.dart b/lib/providers/ui/add_wallet_selected_coin_provider.dart index e7f006f37..be0a1581d 100644 --- a/lib/providers/ui/add_wallet_selected_coin_provider.dart +++ b/lib/providers/ui/add_wallet_selected_coin_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/add_wallet_list_entity.dart'; +import '../../models/add_wallet_list_entity/add_wallet_list_entity.dart'; final addWalletSelectedEntityStateProvider = StateProvider.autoDispose((_) => null); diff --git a/lib/providers/ui/address_book_providers/address_book_filter_provider.dart b/lib/providers/ui/address_book_providers/address_book_filter_provider.dart index 51fe8c07d..39d3d0ba8 100644 --- a/lib/providers/ui/address_book_providers/address_book_filter_provider.dart +++ b/lib/providers/ui/address_book_providers/address_book_filter_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/address_book_filter.dart'; +import '../../../models/address_book_filter.dart'; final addressBookFilterProvider = ChangeNotifierProvider((ref) => AddressBookFilter({})); diff --git a/lib/providers/ui/address_book_providers/address_entry_data_provider.dart b/lib/providers/ui/address_book_providers/address_entry_data_provider.dart index 3df3af34f..b4aeb157a 100644 --- a/lib/providers/ui/address_book_providers/address_entry_data_provider.dart +++ b/lib/providers/ui/address_book_providers/address_entry_data_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/contact_address_entry_data.dart'; +import '../../../models/contact_address_entry_data.dart'; // workaround to refresh entire family final addressEntryDataProviderFamilyRefresher = Provider((_) => DateTime.now()); diff --git a/lib/providers/ui/address_book_providers/valid_contact_state_provider.dart b/lib/providers/ui/address_book_providers/valid_contact_state_provider.dart index 16845149f..1bdba9729 100644 --- a/lib/providers/ui/address_book_providers/valid_contact_state_provider.dart +++ b/lib/providers/ui/address_book_providers/valid_contact_state_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart'; +import 'address_entry_data_provider.dart'; final validContactStateProvider = StateProvider.autoDispose.family>((ref, ids) { diff --git a/lib/providers/ui/fee_rate_type_state_provider.dart b/lib/providers/ui/fee_rate_type_state_provider.dart index f78b21f9e..3e1421c14 100644 --- a/lib/providers/ui/fee_rate_type_state_provider.dart +++ b/lib/providers/ui/fee_rate_type_state_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; +import '../../utilities/enums/fee_rate_type_enum.dart'; final feeRateTypeStateProvider = StateProvider.autoDispose((_) => FeeRateType.average); diff --git a/lib/providers/ui/preview_tx_button_state_provider.dart b/lib/providers/ui/preview_tx_button_state_provider.dart index 0c3b1061f..283c7c2c8 100644 --- a/lib/providers/ui/preview_tx_button_state_provider.dart +++ b/lib/providers/ui/preview_tx_button_state_provider.dart @@ -9,10 +9,10 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../wallet/public_private_balance_state_provider.dart'; +import '../../utilities/amount/amount.dart'; +import '../../wallets/crypto_currency/coins/firo.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; final pSendAmount = StateProvider.autoDispose((_) => null); final pValidSendToAddress = StateProvider.autoDispose((_) => false); diff --git a/lib/providers/ui/selected_paynym_details_item_Provider.dart b/lib/providers/ui/selected_paynym_details_item_Provider.dart index 4d160fde1..fe934990c 100644 --- a/lib/providers/ui/selected_paynym_details_item_Provider.dart +++ b/lib/providers/ui/selected_paynym_details_item_Provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/paynym/paynym_account_lite.dart'; +import '../../models/paynym/paynym_account_lite.dart'; final selectedPaynymDetailsItemProvider = StateProvider.autoDispose((_) => null); diff --git a/lib/providers/ui/transaction_filter_provider.dart b/lib/providers/ui/transaction_filter_provider.dart index 69b4ea650..965e81706 100644 --- a/lib/providers/ui/transaction_filter_provider.dart +++ b/lib/providers/ui/transaction_filter_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/transaction_filter.dart'; +import '../../models/transaction_filter.dart'; final transactionFilterProvider = StateProvider((_) => null); diff --git a/lib/providers/wallet/my_paynym_account_state_provider.dart b/lib/providers/wallet/my_paynym_account_state_provider.dart index 9ee4cc89e..796bd8f03 100644 --- a/lib/providers/wallet/my_paynym_account_state_provider.dart +++ b/lib/providers/wallet/my_paynym_account_state_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/paynym/paynym_account.dart'; +import '../../models/paynym/paynym_account.dart'; final myPaynymAccountStateProvider = StateProvider((ref) => null); diff --git a/lib/providers/wallet/transaction_note_provider.dart b/lib/providers/wallet/transaction_note_provider.dart index b1c8b67e8..050dfe841 100644 --- a/lib/providers/wallet/transaction_note_provider.dart +++ b/lib/providers/wallet/transaction_note_provider.dart @@ -13,8 +13,8 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/transaction_note.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; +import '../../models/isar/models/transaction_note.dart'; +import '../db/main_db_provider.dart'; class _TransactionNoteWatcher extends ChangeNotifier { final ({String walletId, String txid}) key; diff --git a/lib/providers/wallet/wallet_balance_toggle_state_provider.dart b/lib/providers/wallet/wallet_balance_toggle_state_provider.dart index 2a6dc41fd..31860c052 100644 --- a/lib/providers/wallet/wallet_balance_toggle_state_provider.dart +++ b/lib/providers/wallet/wallet_balance_toggle_state_provider.dart @@ -9,7 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/utilities/enums/wallet_balance_toggle_state.dart'; +import '../../utilities/enums/wallet_balance_toggle_state.dart'; final walletBalanceToggleStateProvider = StateProvider.autoDispose( diff --git a/lib/route_generator.dart b/lib/route_generator.dart index 1e32c9969..dd22e8ccd 100644 --- a/lib/route_generator.dart +++ b/lib/route_generator.dart @@ -11,189 +11,189 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/add_wallet_list_entity.dart'; -import 'package:stackwallet/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart'; -import 'package:stackwallet/models/buy/response_objects/quote.dart'; -import 'package:stackwallet/models/exchange/incomplete_exchange.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/isar/ordinal.dart'; -import 'package:stackwallet/models/paynym/paynym_account_lite.dart'; -import 'package:stackwallet/models/send_view_auto_fill_data.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/add_custom_token_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/new/create_new_frost_ms_wallet_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/new/select_new_frost_import_type_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/select_wallet_for_token_view.dart'; -import 'package:stackwallet/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart'; -import 'package:stackwallet/pages/address_book_views/address_book_view.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/add_address_book_entry_view.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/add_new_contact_address_view.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/address_book_filter_view.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/contact_details_view.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/edit_contact_address_view.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/edit_contact_name_emoji_view.dart'; -import 'package:stackwallet/pages/buy_view/buy_in_wallet_view.dart'; -import 'package:stackwallet/pages/buy_view/buy_quote_preview.dart'; -import 'package:stackwallet/pages/buy_view/buy_view.dart'; -import 'package:stackwallet/pages/cashfusion/cashfusion_view.dart'; -import 'package:stackwallet/pages/cashfusion/fusion_progress_view.dart'; -import 'package:stackwallet/pages/coin_control/coin_control_view.dart'; -import 'package:stackwallet/pages/coin_control/utxo_details_view.dart'; -import 'package:stackwallet/pages/exchange_view/choose_from_stack_view.dart'; -import 'package:stackwallet/pages/exchange_view/edit_trade_note_view.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_step_views/step_1_view.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_step_views/step_2_view.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_step_views/step_3_view.dart'; -import 'package:stackwallet/pages/exchange_view/exchange_step_views/step_4_view.dart'; -import 'package:stackwallet/pages/exchange_view/send_from_view.dart'; -import 'package:stackwallet/pages/exchange_view/trade_details_view.dart'; -import 'package:stackwallet/pages/exchange_view/wallet_initiated_exchange_view.dart'; -import 'package:stackwallet/pages/generic/single_field_edit_view.dart'; -import 'package:stackwallet/pages/home_view/home_view.dart'; -import 'package:stackwallet/pages/intro_view.dart'; -import 'package:stackwallet/pages/manage_favorites_view/manage_favorites_view.dart'; -import 'package:stackwallet/pages/monkey/monkey_view.dart'; -import 'package:stackwallet/pages/notification_views/notifications_view.dart'; -import 'package:stackwallet/pages/ordinals/ordinal_details_view.dart'; -import 'package:stackwallet/pages/ordinals/ordinals_filter_view.dart'; -import 'package:stackwallet/pages/ordinals/ordinals_view.dart'; -import 'package:stackwallet/pages/paynym/add_new_paynym_follow_view.dart'; -import 'package:stackwallet/pages/paynym/paynym_claim_view.dart'; -import 'package:stackwallet/pages/paynym/paynym_home_view.dart'; -import 'package:stackwallet/pages/pinpad_views/create_pin_view.dart'; -import 'package:stackwallet/pages/receive_view/addresses/address_details_view.dart'; -import 'package:stackwallet/pages/receive_view/addresses/edit_address_label_view.dart'; -import 'package:stackwallet/pages/receive_view/addresses/wallet_addresses_view.dart'; -import 'package:stackwallet/pages/receive_view/generate_receiving_uri_qr_code_view.dart'; -import 'package:stackwallet/pages/receive_view/receive_view.dart'; -import 'package:stackwallet/pages/send_view/confirm_transaction_view.dart'; -import 'package:stackwallet/pages/send_view/frost_ms/frost_send_view.dart'; -import 'package:stackwallet/pages/send_view/send_view.dart'; -import 'package:stackwallet/pages/send_view/token_send_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/about_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/advanced_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/debug_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/appearance_settings/appearance_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/appearance_settings/system_brightness_theme_selection_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/currency_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/delete_account_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/global_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/hidden_settings.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/language_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/security_views/change_pin_view/change_pin_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/security_views/security_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/auto_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/create_auto_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/create_backup_information_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/stack_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/support_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_preferences_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/frost_ms/frost_participants_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/complete_reshare_config_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/initiate_resharing_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart'; -import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart'; -import 'package:stackwallet/pages/special/firo_rescan_recovery_error_dialog.dart'; -import 'package:stackwallet/pages/stack_privacy_calls.dart'; -import 'package:stackwallet/pages/token_view/my_tokens_view.dart'; -import 'package:stackwallet/pages/token_view/token_contract_details_view.dart'; -import 'package:stackwallet/pages/token_view/token_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/all_transactions_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/edit_note_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_search_filter_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/fusion_group_details_view.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/pages/wallets_view/wallets_overview.dart'; -import 'package:stackwallet/pages/wallets_view/wallets_view.dart'; -import 'package:stackwallet/pages_desktop_specific/address_book_view/desktop_address_book.dart'; -import 'package:stackwallet/pages_desktop_specific/addresses/desktop_wallet_addresses_view.dart'; -import 'package:stackwallet/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart'; -import 'package:stackwallet/pages_desktop_specific/coin_control/desktop_coin_control_view.dart'; +import 'models/add_wallet_list_entity/add_wallet_list_entity.dart'; +import 'models/add_wallet_list_entity/sub_classes/eth_token_entity.dart'; +import 'models/buy/response_objects/quote.dart'; +import 'models/exchange/incomplete_exchange.dart'; +import 'models/exchange/response_objects/trade.dart'; +import 'models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import 'models/isar/models/contact_entry.dart'; +import 'models/isar/models/isar_models.dart'; +import 'models/isar/ordinal.dart'; +import 'models/paynym/paynym_account_lite.dart'; +import 'models/send_view_auto_fill_data.dart'; +import 'pages/add_wallet_views/add_token_view/add_custom_token_view.dart'; +import 'pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart'; +import 'pages/add_wallet_views/add_wallet_view/add_wallet_view.dart'; +import 'pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart'; +import 'pages/add_wallet_views/frost_ms/new/create_new_frost_ms_wallet_view.dart'; +import 'pages/add_wallet_views/frost_ms/new/select_new_frost_import_type_view.dart'; +import 'pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart'; +import 'pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart'; +import 'pages/add_wallet_views/new_wallet_options/new_wallet_options_view.dart'; +import 'pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart'; +import 'pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/new_wallet_recovery_phrase_warning_view.dart'; +import 'pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart'; +import 'pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart'; +import 'pages/add_wallet_views/select_wallet_for_token_view.dart'; +import 'pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart'; +import 'pages/address_book_views/address_book_view.dart'; +import 'pages/address_book_views/subviews/add_address_book_entry_view.dart'; +import 'pages/address_book_views/subviews/add_new_contact_address_view.dart'; +import 'pages/address_book_views/subviews/address_book_filter_view.dart'; +import 'pages/address_book_views/subviews/contact_details_view.dart'; +import 'pages/address_book_views/subviews/edit_contact_address_view.dart'; +import 'pages/address_book_views/subviews/edit_contact_name_emoji_view.dart'; +import 'pages/buy_view/buy_in_wallet_view.dart'; +import 'pages/buy_view/buy_quote_preview.dart'; +import 'pages/buy_view/buy_view.dart'; +import 'pages/cashfusion/cashfusion_view.dart'; +import 'pages/cashfusion/fusion_progress_view.dart'; +import 'pages/coin_control/coin_control_view.dart'; +import 'pages/coin_control/utxo_details_view.dart'; +import 'pages/exchange_view/choose_from_stack_view.dart'; +import 'pages/exchange_view/edit_trade_note_view.dart'; +import 'pages/exchange_view/exchange_step_views/step_1_view.dart'; +import 'pages/exchange_view/exchange_step_views/step_2_view.dart'; +import 'pages/exchange_view/exchange_step_views/step_3_view.dart'; +import 'pages/exchange_view/exchange_step_views/step_4_view.dart'; +import 'pages/exchange_view/send_from_view.dart'; +import 'pages/exchange_view/trade_details_view.dart'; +import 'pages/exchange_view/wallet_initiated_exchange_view.dart'; +import 'pages/generic/single_field_edit_view.dart'; +import 'pages/home_view/home_view.dart'; +import 'pages/intro_view.dart'; +import 'pages/manage_favorites_view/manage_favorites_view.dart'; +import 'pages/monkey/monkey_view.dart'; +import 'pages/notification_views/notifications_view.dart'; +import 'pages/ordinals/ordinal_details_view.dart'; +import 'pages/ordinals/ordinals_filter_view.dart'; +import 'pages/ordinals/ordinals_view.dart'; +import 'pages/paynym/add_new_paynym_follow_view.dart'; +import 'pages/paynym/paynym_claim_view.dart'; +import 'pages/paynym/paynym_home_view.dart'; +import 'pages/pinpad_views/create_pin_view.dart'; +import 'pages/receive_view/addresses/address_details_view.dart'; +import 'pages/receive_view/addresses/edit_address_label_view.dart'; +import 'pages/receive_view/addresses/wallet_addresses_view.dart'; +import 'pages/receive_view/generate_receiving_uri_qr_code_view.dart'; +import 'pages/receive_view/receive_view.dart'; +import 'pages/send_view/confirm_transaction_view.dart'; +import 'pages/send_view/frost_ms/frost_send_view.dart'; +import 'pages/send_view/send_view.dart'; +import 'pages/send_view/token_send_view.dart'; +import 'pages/settings_views/global_settings_view/about_view.dart'; +import 'pages/settings_views/global_settings_view/advanced_views/advanced_settings_view.dart'; +import 'pages/settings_views/global_settings_view/advanced_views/debug_view.dart'; +import 'pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart'; +import 'pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart'; +import 'pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart'; +import 'pages/settings_views/global_settings_view/appearance_settings/appearance_settings_view.dart'; +import 'pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart'; +import 'pages/settings_views/global_settings_view/appearance_settings/system_brightness_theme_selection_view.dart'; +import 'pages/settings_views/global_settings_view/currency_view.dart'; +import 'pages/settings_views/global_settings_view/delete_account_view.dart'; +import 'pages/settings_views/global_settings_view/global_settings_view.dart'; +import 'pages/settings_views/global_settings_view/hidden_settings.dart'; +import 'pages/settings_views/global_settings_view/language_view.dart'; +import 'pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; +import 'pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart'; +import 'pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart'; +import 'pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart'; +import 'pages/settings_views/global_settings_view/security_views/change_pin_view/change_pin_view.dart'; +import 'pages/settings_views/global_settings_view/security_views/security_view.dart'; +import 'pages/settings_views/global_settings_view/stack_backup_views/auto_backup_view.dart'; +import 'pages/settings_views/global_settings_view/stack_backup_views/create_auto_backup_view.dart'; +import 'pages/settings_views/global_settings_view/stack_backup_views/create_backup_information_view.dart'; +import 'pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart'; +import 'pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart'; +import 'pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart'; +import 'pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart'; +import 'pages/settings_views/global_settings_view/stack_backup_views/stack_backup_view.dart'; +import 'pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart'; +import 'pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart'; +import 'pages/settings_views/global_settings_view/support_view.dart'; +import 'pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart'; +import 'pages/settings_views/global_settings_view/syncing_preferences_views/syncing_preferences_view.dart'; +import 'pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart'; +import 'pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart'; +import 'pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart'; +import 'pages/settings_views/wallet_settings_view/frost_ms/frost_participants_view.dart'; +import 'pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/complete_reshare_config_view.dart'; +import 'pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/initiate_resharing_view.dart'; +import 'pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart'; +import 'pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart'; +import 'pages/settings_views/wallet_settings_view/wallet_settings_view.dart'; +import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart'; +import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart'; +import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart'; +import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart'; +import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart'; +import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart'; +import 'pages/special/firo_rescan_recovery_error_dialog.dart'; +import 'pages/stack_privacy_calls.dart'; +import 'pages/token_view/my_tokens_view.dart'; +import 'pages/token_view/token_contract_details_view.dart'; +import 'pages/token_view/token_view.dart'; +import 'pages/wallet_view/transaction_views/all_transactions_view.dart'; +import 'pages/wallet_view/transaction_views/edit_note_view.dart'; +import 'pages/wallet_view/transaction_views/transaction_details_view.dart'; +import 'pages/wallet_view/transaction_views/transaction_search_filter_view.dart'; +import 'pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; +import 'pages/wallet_view/transaction_views/tx_v2/fusion_group_details_view.dart'; +import 'pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; +import 'pages/wallet_view/wallet_view.dart'; +import 'pages/wallets_view/wallets_overview.dart'; +import 'pages/wallets_view/wallets_view.dart'; +import 'pages_desktop_specific/address_book_view/desktop_address_book.dart'; +import 'pages_desktop_specific/addresses/desktop_wallet_addresses_view.dart'; +import 'pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart'; +import 'pages_desktop_specific/coin_control/desktop_coin_control_view.dart'; // import 'package:stackwallet/pages_desktop_specific/desktop_exchange/desktop_all_buys_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_buy/desktop_buy_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/desktop_all_trades_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_exchange/desktop_exchange_view.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_home_view.dart'; -import 'package:stackwallet/pages_desktop_specific/lelantus_coins/lelantus_coins_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/my_stack_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_attention_delete_wallet.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_desktop_popup.dart'; -import 'package:stackwallet/pages_desktop_specific/notifications/desktop_notifications_view.dart'; -import 'package:stackwallet/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart'; -import 'package:stackwallet/pages_desktop_specific/ordinals/desktop_ordinals_view.dart'; -import 'package:stackwallet/pages_desktop_specific/password/create_password_view.dart'; -import 'package:stackwallet/pages_desktop_specific/password/delete_password_warning_view.dart'; -import 'package:stackwallet/pages_desktop_specific/password/forgot_password_desktop_view.dart'; -import 'package:stackwallet/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/desktop_settings_view.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/advanced_settings/advanced_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/appearance_settings/appearance_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/backup_and_restore/backup_and_restore_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/currency_settings/currency_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/desktop_support_view.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/language_settings/language_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/nodes_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/security_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/syncing_preferences_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/settings/settings_menu/tor_settings/tor_settings.dart'; -import 'package:stackwallet/pages_desktop_specific/spark_coins/spark_coins_view.dart'; -import 'package:stackwallet/services/event_bus/events/global/node_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/add_wallet_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/widgets/choose_coin_view.dart'; -import 'package:stackwallet/widgets/frost_scaffold.dart'; +import 'pages_desktop_specific/desktop_buy/desktop_buy_view.dart'; +import 'pages_desktop_specific/desktop_exchange/desktop_all_trades_view.dart'; +import 'pages_desktop_specific/desktop_exchange/desktop_exchange_view.dart'; +import 'pages_desktop_specific/desktop_home_view.dart'; +import 'pages_desktop_specific/lelantus_coins/lelantus_coins_view.dart'; +import 'pages_desktop_specific/my_stack_view/my_stack_view.dart'; +import 'pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart'; +import 'pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart'; +import 'pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart'; +import 'pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_attention_delete_wallet.dart'; +import 'pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart'; +import 'pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart'; +import 'pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart'; +import 'pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_desktop_popup.dart'; +import 'pages_desktop_specific/notifications/desktop_notifications_view.dart'; +import 'pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart'; +import 'pages_desktop_specific/ordinals/desktop_ordinals_view.dart'; +import 'pages_desktop_specific/password/create_password_view.dart'; +import 'pages_desktop_specific/password/delete_password_warning_view.dart'; +import 'pages_desktop_specific/password/forgot_password_desktop_view.dart'; +import 'pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart'; +import 'pages_desktop_specific/settings/desktop_settings_view.dart'; +import 'pages_desktop_specific/settings/settings_menu/advanced_settings/advanced_settings.dart'; +import 'pages_desktop_specific/settings/settings_menu/appearance_settings/appearance_settings.dart'; +import 'pages_desktop_specific/settings/settings_menu/backup_and_restore/backup_and_restore_settings.dart'; +import 'pages_desktop_specific/settings/settings_menu/currency_settings/currency_settings.dart'; +import 'pages_desktop_specific/settings/settings_menu/desktop_about_view.dart'; +import 'pages_desktop_specific/settings/settings_menu/desktop_support_view.dart'; +import 'pages_desktop_specific/settings/settings_menu/language_settings/language_settings.dart'; +import 'pages_desktop_specific/settings/settings_menu/nodes_settings.dart'; +import 'pages_desktop_specific/settings/settings_menu/security_settings.dart'; +import 'pages_desktop_specific/settings/settings_menu/syncing_preferences_settings.dart'; +import 'pages_desktop_specific/settings/settings_menu/tor_settings/tor_settings.dart'; +import 'pages_desktop_specific/spark_coins/spark_coins_view.dart'; +import 'services/event_bus/events/global/node_connection_status_changed_event.dart'; +import 'services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import 'utilities/amount/amount.dart'; +import 'utilities/enums/add_wallet_type_enum.dart'; +import 'wallets/crypto_currency/crypto_currency.dart'; +import 'wallets/crypto_currency/intermediate/frost_currency.dart'; +import 'wallets/models/tx_data.dart'; +import 'wallets/wallet/wallet.dart'; +import 'widgets/choose_coin_view.dart'; +import 'widgets/frost_scaffold.dart'; import 'package:tuple/tuple.dart'; /* diff --git a/lib/services/address_book_service.dart b/lib/services/address_book_service.dart index 43bbc2ff7..f49d9e664 100644 --- a/lib/services/address_book_service.dart +++ b/lib/services/address_book_service.dart @@ -10,8 +10,8 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; +import '../db/isar/main_db.dart'; +import '../models/isar/models/contact_entry.dart'; class AddressBookService extends ChangeNotifier { ContactEntry getContactById(String id) { diff --git a/lib/services/auto_swb_service.dart b/lib/services/auto_swb_service.dart index 7dcb5e421..d1f5d5499 100644 --- a/lib/services/auto_swb_service.dart +++ b/lib/services/auto_swb_service.dart @@ -13,10 +13,10 @@ import 'dart:convert'; import 'dart:io'; import 'package:flutter/foundation.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; +import '../utilities/flutter_secure_storage_interface.dart'; +import '../utilities/logger.dart'; +import '../utilities/prefs.dart'; import 'package:tuple/tuple.dart'; enum AutoSWBStatus { diff --git a/lib/services/buy/simplex/simplex_api.dart b/lib/services/buy/simplex/simplex_api.dart index d6d371756..6c3f52576 100644 --- a/lib/services/buy/simplex/simplex_api.dart +++ b/lib/services/buy/simplex/simplex_api.dart @@ -12,17 +12,17 @@ import 'dart:async'; import 'dart:convert'; import 'package:decimal/decimal.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/buy/response_objects/crypto.dart'; -import 'package:stackwallet/models/buy/response_objects/fiat.dart'; -import 'package:stackwallet/models/buy/response_objects/order.dart'; -import 'package:stackwallet/models/buy/response_objects/quote.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/buy/buy_response.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/enums/fiat_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../../../app_config.dart'; +import '../../../models/buy/response_objects/crypto.dart'; +import '../../../models/buy/response_objects/fiat.dart'; +import '../../../models/buy/response_objects/order.dart'; +import '../../../models/buy/response_objects/quote.dart'; +import '../../../networking/http.dart'; +import '../buy_response.dart'; +import '../../tor_service.dart'; +import '../../../utilities/enums/fiat_enum.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/prefs.dart'; import 'package:url_launcher/url_launcher.dart'; class SimplexAPI { diff --git a/lib/services/coins/bitcoincash/bch_utils.dart b/lib/services/coins/bitcoincash/bch_utils.dart index dfe78a2e8..43b0ac35c 100644 --- a/lib/services/coins/bitcoincash/bch_utils.dart +++ b/lib/services/coins/bitcoincash/bch_utils.dart @@ -2,7 +2,7 @@ import 'dart:typed_data'; import 'package:bitcoindart/src/utils/constants/op.dart' as op; import 'package:bitcoindart/src/utils/script.dart' as bscript; -import 'package:stackwallet/utilities/extensions/impl/string.dart'; +import '../../../utilities/extensions/impl/string.dart'; abstract final class BchUtils { static const FUSE_ID = 'FUZ\x00'; diff --git a/lib/services/coins/tezos/api/tezos_api.dart b/lib/services/coins/tezos/api/tezos_api.dart index ac8399327..bf102ef34 100644 --- a/lib/services/coins/tezos/api/tezos_api.dart +++ b/lib/services/coins/tezos/api/tezos_api.dart @@ -1,11 +1,11 @@ import 'dart:convert'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/coins/tezos/api/tezos_account.dart'; -import 'package:stackwallet/services/coins/tezos/api/tezos_transaction.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../../../../networking/http.dart'; +import 'tezos_account.dart'; +import 'tezos_transaction.dart'; +import '../../../tor_service.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/prefs.dart'; abstract final class TezosAPI { static final HTTP _client = HTTP(); diff --git a/lib/services/coins/tezos/api/tezos_rpc_api.dart b/lib/services/coins/tezos/api/tezos_rpc_api.dart index d5faa060f..fe6f1ddea 100644 --- a/lib/services/coins/tezos/api/tezos_rpc_api.dart +++ b/lib/services/coins/tezos/api/tezos_rpc_api.dart @@ -1,9 +1,9 @@ import 'dart:convert'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../../../../networking/http.dart'; +import '../../../tor_service.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/prefs.dart'; abstract final class TezosRpcAPI { static final HTTP _client = HTTP(); diff --git a/lib/services/debug_service.dart b/lib/services/debug_service.dart index a0d2efac1..a8d7dd963 100644 --- a/lib/services/debug_service.dart +++ b/lib/services/debug_service.dart @@ -14,8 +14,8 @@ import 'dart:io'; import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/log.dart'; -import 'package:stackwallet/utilities/logger.dart'; +import '../models/isar/models/log.dart'; +import '../utilities/logger.dart'; class DebugService extends ChangeNotifier { DebugService._(); diff --git a/lib/services/ethereum/cached_eth_token_balance.dart b/lib/services/ethereum/cached_eth_token_balance.dart index dbcda1131..c241f7231 100644 --- a/lib/services/ethereum/cached_eth_token_balance.dart +++ b/lib/services/ethereum/cached_eth_token_balance.dart @@ -9,13 +9,13 @@ */ import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/services/ethereum/ethereum_api.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/isar/models/token_wallet_info.dart'; +import '../../db/isar/main_db.dart'; +import '../../models/balance.dart'; +import '../../models/isar/models/ethereum/eth_contract.dart'; +import 'ethereum_api.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/logger.dart'; +import '../../wallets/isar/models/token_wallet_info.dart'; class CachedEthTokenBalance { final String walletId; diff --git a/lib/services/ethereum/ethereum_api.dart b/lib/services/ethereum/ethereum_api.dart index adcf5044d..d2ead5aeb 100644 --- a/lib/services/ethereum/ethereum_api.dart +++ b/lib/services/ethereum/ethereum_api.dart @@ -11,21 +11,21 @@ import 'dart:convert'; import 'package:http/http.dart'; -import 'package:stackwallet/dto/ethereum/eth_token_tx_dto.dart'; -import 'package:stackwallet/dto/ethereum/eth_token_tx_extra_dto.dart'; -import 'package:stackwallet/dto/ethereum/eth_tx_dto.dart'; -import 'package:stackwallet/dto/ethereum/pending_eth_tx_dto.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/models/paymint/fee_object_model.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/eth_commons.dart'; -import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../dto/ethereum/eth_token_tx_dto.dart'; +import '../../dto/ethereum/eth_token_tx_extra_dto.dart'; +import '../../dto/ethereum/eth_tx_dto.dart'; +import '../../dto/ethereum/pending_eth_tx_dto.dart'; +import '../../models/isar/models/ethereum/eth_contract.dart'; +import '../../models/paymint/fee_object_model.dart'; +import '../../networking/http.dart'; +import '../tor_service.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/eth_commons.dart'; +import '../../utilities/extensions/extensions.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/prefs.dart'; +import '../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; class EthApiException implements Exception { diff --git a/lib/services/event_bus/events/global/balance_refreshed_event.dart b/lib/services/event_bus/events/global/balance_refreshed_event.dart index 5dce5f7d5..5b7a5028a 100644 --- a/lib/services/event_bus/events/global/balance_refreshed_event.dart +++ b/lib/services/event_bus/events/global/balance_refreshed_event.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/utilities/logger.dart'; +import '../../../../utilities/logger.dart'; class BalanceRefreshedEvent { final String walletId; diff --git a/lib/services/event_bus/events/global/blocks_remaining_event.dart b/lib/services/event_bus/events/global/blocks_remaining_event.dart index 14f25a058..9a9c71c81 100644 --- a/lib/services/event_bus/events/global/blocks_remaining_event.dart +++ b/lib/services/event_bus/events/global/blocks_remaining_event.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/utilities/logger.dart'; +import '../../../../utilities/logger.dart'; class BlocksRemainingEvent { int blocksRemaining; diff --git a/lib/services/event_bus/events/global/node_connection_status_changed_event.dart b/lib/services/event_bus/events/global/node_connection_status_changed_event.dart index a0698409b..7d3ca2fca 100644 --- a/lib/services/event_bus/events/global/node_connection_status_changed_event.dart +++ b/lib/services/event_bus/events/global/node_connection_status_changed_event.dart @@ -8,8 +8,8 @@ * */ -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; enum NodeConnectionStatus { disconnected, connected } diff --git a/lib/services/event_bus/events/global/refresh_percent_changed_event.dart b/lib/services/event_bus/events/global/refresh_percent_changed_event.dart index abb5b75e4..bbe9027b1 100644 --- a/lib/services/event_bus/events/global/refresh_percent_changed_event.dart +++ b/lib/services/event_bus/events/global/refresh_percent_changed_event.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/utilities/logger.dart'; +import '../../../../utilities/logger.dart'; class RefreshPercentChangedEvent { double percent; diff --git a/lib/services/event_bus/events/global/tor_connection_status_changed_event.dart b/lib/services/event_bus/events/global/tor_connection_status_changed_event.dart index 0a395b6a5..640bdc1fb 100644 --- a/lib/services/event_bus/events/global/tor_connection_status_changed_event.dart +++ b/lib/services/event_bus/events/global/tor_connection_status_changed_event.dart @@ -7,7 +7,7 @@ * Generated by Cypher Stack on 2023-05-26 * */ -import 'package:stackwallet/utilities/logger.dart'; +import '../../../../utilities/logger.dart'; enum TorConnectionStatus { disconnected, connecting, connected } diff --git a/lib/services/event_bus/events/global/tor_status_changed_event.dart b/lib/services/event_bus/events/global/tor_status_changed_event.dart index 6f974bf75..140e01607 100644 --- a/lib/services/event_bus/events/global/tor_status_changed_event.dart +++ b/lib/services/event_bus/events/global/tor_status_changed_event.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/utilities/logger.dart'; +import '../../../../utilities/logger.dart'; enum TorStatus { enabled, disabled } diff --git a/lib/services/event_bus/events/global/updated_in_background_event.dart b/lib/services/event_bus/events/global/updated_in_background_event.dart index a7345a731..c492a837f 100644 --- a/lib/services/event_bus/events/global/updated_in_background_event.dart +++ b/lib/services/event_bus/events/global/updated_in_background_event.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/utilities/logger.dart'; +import '../../../../utilities/logger.dart'; class UpdatedInBackgroundEvent { String message; diff --git a/lib/services/event_bus/events/global/wallet_sync_status_changed_event.dart b/lib/services/event_bus/events/global/wallet_sync_status_changed_event.dart index 4cb616909..0f92fb272 100644 --- a/lib/services/event_bus/events/global/wallet_sync_status_changed_event.dart +++ b/lib/services/event_bus/events/global/wallet_sync_status_changed_event.dart @@ -8,8 +8,8 @@ * */ -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; enum WalletSyncStatus { unableToSync, synced, syncing } diff --git a/lib/services/exchange/change_now/change_now_api.dart b/lib/services/exchange/change_now/change_now_api.dart index b847482a4..4ee3e5502 100644 --- a/lib/services/exchange/change_now/change_now_api.dart +++ b/lib/services/exchange/change_now/change_now_api.dart @@ -12,25 +12,25 @@ import 'dart:convert'; import 'package:decimal/decimal.dart'; import 'package:flutter/foundation.dart'; -import 'package:stackwallet/exceptions/exchange/exchange_exception.dart'; -import 'package:stackwallet/exceptions/exchange/pair_unavailable_exception.dart'; -import 'package:stackwallet/exceptions/exchange/unsupported_currency_exception.dart'; -import 'package:stackwallet/external_api_keys.dart'; -import 'package:stackwallet/models/exchange/change_now/cn_exchange_estimate.dart'; -import 'package:stackwallet/models/exchange/change_now/estimated_exchange_amount.dart'; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction.dart'; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction_status.dart'; -import 'package:stackwallet/models/exchange/response_objects/estimate.dart'; -import 'package:stackwallet/models/exchange/response_objects/fixed_rate_market.dart'; -import 'package:stackwallet/models/exchange/response_objects/range.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/exchange/change_now/change_now_exchange.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../../../exceptions/exchange/exchange_exception.dart'; +import '../../../exceptions/exchange/pair_unavailable_exception.dart'; +import '../../../exceptions/exchange/unsupported_currency_exception.dart'; +import '../../../external_api_keys.dart'; +import '../../../models/exchange/change_now/cn_exchange_estimate.dart'; +import '../../../models/exchange/change_now/estimated_exchange_amount.dart'; +import '../../../models/exchange/change_now/exchange_transaction.dart'; +import '../../../models/exchange/change_now/exchange_transaction_status.dart'; +import '../../../models/exchange/response_objects/estimate.dart'; +import '../../../models/exchange/response_objects/fixed_rate_market.dart'; +import '../../../models/exchange/response_objects/range.dart'; +import '../../../models/isar/exchange_cache/currency.dart'; +import '../../../models/isar/exchange_cache/pair.dart'; +import '../../../networking/http.dart'; +import 'change_now_exchange.dart'; +import '../exchange_response.dart'; +import '../../tor_service.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/prefs.dart'; import 'package:tuple/tuple.dart'; class ChangeNowAPI { diff --git a/lib/services/exchange/change_now/change_now_exchange.dart b/lib/services/exchange/change_now/change_now_exchange.dart index 63c99cc40..35e8e30b2 100644 --- a/lib/services/exchange/change_now/change_now_exchange.dart +++ b/lib/services/exchange/change_now/change_now_exchange.dart @@ -9,15 +9,15 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction.dart'; -import 'package:stackwallet/models/exchange/response_objects/estimate.dart'; -import 'package:stackwallet/models/exchange/response_objects/range.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; -import 'package:stackwallet/services/exchange/change_now/change_now_api.dart'; -import 'package:stackwallet/services/exchange/exchange.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; +import '../../../models/exchange/change_now/exchange_transaction.dart'; +import '../../../models/exchange/response_objects/estimate.dart'; +import '../../../models/exchange/response_objects/range.dart'; +import '../../../models/exchange/response_objects/trade.dart'; +import '../../../models/isar/exchange_cache/currency.dart'; +import '../../../models/isar/exchange_cache/pair.dart'; +import 'change_now_api.dart'; +import '../exchange.dart'; +import '../exchange_response.dart'; import 'package:uuid/uuid.dart'; class ChangeNowExchange extends Exchange { diff --git a/lib/services/exchange/exchange.dart b/lib/services/exchange/exchange.dart index a8553854c..b5a2c4180 100644 --- a/lib/services/exchange/exchange.dart +++ b/lib/services/exchange/exchange.dart @@ -9,16 +9,16 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/models/exchange/response_objects/estimate.dart'; -import 'package:stackwallet/models/exchange/response_objects/range.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; -import 'package:stackwallet/services/exchange/change_now/change_now_exchange.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; -import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; -import 'package:stackwallet/services/exchange/simpleswap/simpleswap_exchange.dart'; -import 'package:stackwallet/services/exchange/trocador/trocador_exchange.dart'; +import '../../models/exchange/response_objects/estimate.dart'; +import '../../models/exchange/response_objects/range.dart'; +import '../../models/exchange/response_objects/trade.dart'; +import '../../models/isar/exchange_cache/currency.dart'; +import '../../models/isar/exchange_cache/pair.dart'; +import 'change_now/change_now_exchange.dart'; +import 'exchange_response.dart'; +import 'majestic_bank/majestic_bank_exchange.dart'; +import 'simpleswap/simpleswap_exchange.dart'; +import 'trocador/trocador_exchange.dart'; abstract class Exchange { static Exchange get defaultExchange => ChangeNowExchange.instance; diff --git a/lib/services/exchange/exchange_data_loading_service.dart b/lib/services/exchange/exchange_data_loading_service.dart index 47bbefe79..40d1e16bf 100644 --- a/lib/services/exchange/exchange_data_loading_service.dart +++ b/lib/services/exchange/exchange_data_loading_service.dart @@ -10,18 +10,18 @@ import 'package:flutter/foundation.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/models/exchange/active_pair.dart'; -import 'package:stackwallet/models/exchange/aggregate_currency.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; -import 'package:stackwallet/services/exchange/change_now/change_now_exchange.dart'; -import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; -import 'package:stackwallet/services/exchange/trocador/trocador_exchange.dart'; -import 'package:stackwallet/utilities/enums/exchange_rate_type_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; +import '../../db/hive/db.dart'; +import '../../models/exchange/active_pair.dart'; +import '../../models/exchange/aggregate_currency.dart'; +import '../../models/isar/exchange_cache/currency.dart'; +import '../../models/isar/exchange_cache/pair.dart'; +import 'change_now/change_now_exchange.dart'; +import 'majestic_bank/majestic_bank_exchange.dart'; +import 'trocador/trocador_exchange.dart'; +import '../../utilities/enums/exchange_rate_type_enum.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/prefs.dart'; +import '../../utilities/stack_file_system.dart'; import 'package:tuple/tuple.dart'; class ExchangeDataLoadingService { diff --git a/lib/services/exchange/exchange_response.dart b/lib/services/exchange/exchange_response.dart index eafb63453..8ffb44d4c 100644 --- a/lib/services/exchange/exchange_response.dart +++ b/lib/services/exchange/exchange_response.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/exceptions/exchange/exchange_exception.dart'; +import '../../exceptions/exchange/exchange_exception.dart'; class ExchangeResponse { late final T? value; diff --git a/lib/services/exchange/majestic_bank/majestic_bank_api.dart b/lib/services/exchange/majestic_bank/majestic_bank_api.dart index 695bfeb08..c69d6ebe7 100644 --- a/lib/services/exchange/majestic_bank/majestic_bank_api.dart +++ b/lib/services/exchange/majestic_bank/majestic_bank_api.dart @@ -11,19 +11,19 @@ import 'dart:convert'; import 'package:decimal/decimal.dart'; -import 'package:stackwallet/exceptions/exchange/exchange_exception.dart'; -import 'package:stackwallet/exceptions/exchange/majestic_bank/mb_exception.dart'; -import 'package:stackwallet/exceptions/exchange/pair_unavailable_exception.dart'; -import 'package:stackwallet/models/exchange/majestic_bank/mb_limit.dart'; -import 'package:stackwallet/models/exchange/majestic_bank/mb_order.dart'; -import 'package:stackwallet/models/exchange/majestic_bank/mb_order_calculation.dart'; -import 'package:stackwallet/models/exchange/majestic_bank/mb_order_status.dart'; -import 'package:stackwallet/models/exchange/majestic_bank/mb_rate.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../../../exceptions/exchange/exchange_exception.dart'; +import '../../../exceptions/exchange/majestic_bank/mb_exception.dart'; +import '../../../exceptions/exchange/pair_unavailable_exception.dart'; +import '../../../models/exchange/majestic_bank/mb_limit.dart'; +import '../../../models/exchange/majestic_bank/mb_order.dart'; +import '../../../models/exchange/majestic_bank/mb_order_calculation.dart'; +import '../../../models/exchange/majestic_bank/mb_order_status.dart'; +import '../../../models/exchange/majestic_bank/mb_rate.dart'; +import '../../../networking/http.dart'; +import '../exchange_response.dart'; +import '../../tor_service.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/prefs.dart'; class MajesticBankAPI { static const String scheme = "https"; diff --git a/lib/services/exchange/majestic_bank/majestic_bank_exchange.dart b/lib/services/exchange/majestic_bank/majestic_bank_exchange.dart index 3ba914fb9..725942193 100644 --- a/lib/services/exchange/majestic_bank/majestic_bank_exchange.dart +++ b/lib/services/exchange/majestic_bank/majestic_bank_exchange.dart @@ -9,17 +9,17 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/exceptions/exchange/exchange_exception.dart'; -import 'package:stackwallet/exceptions/exchange/majestic_bank/mb_exception.dart'; -import 'package:stackwallet/models/exchange/majestic_bank/mb_order.dart'; -import 'package:stackwallet/models/exchange/response_objects/estimate.dart'; -import 'package:stackwallet/models/exchange/response_objects/range.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; -import 'package:stackwallet/services/exchange/exchange.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; -import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_api.dart'; +import '../../../exceptions/exchange/exchange_exception.dart'; +import '../../../exceptions/exchange/majestic_bank/mb_exception.dart'; +import '../../../models/exchange/majestic_bank/mb_order.dart'; +import '../../../models/exchange/response_objects/estimate.dart'; +import '../../../models/exchange/response_objects/range.dart'; +import '../../../models/exchange/response_objects/trade.dart'; +import '../../../models/isar/exchange_cache/currency.dart'; +import '../../../models/isar/exchange_cache/pair.dart'; +import '../exchange.dart'; +import '../exchange_response.dart'; +import 'majestic_bank_api.dart'; import 'package:uuid/uuid.dart'; class MajesticBankExchange extends Exchange { diff --git a/lib/services/exchange/simpleswap/simpleswap_api.dart b/lib/services/exchange/simpleswap/simpleswap_api.dart index 816c57a01..509977bb1 100644 --- a/lib/services/exchange/simpleswap/simpleswap_api.dart +++ b/lib/services/exchange/simpleswap/simpleswap_api.dart @@ -12,19 +12,19 @@ import 'dart:convert'; import 'package:decimal/decimal.dart'; import 'package:flutter/foundation.dart'; -import 'package:stackwallet/exceptions/exchange/exchange_exception.dart'; -import 'package:stackwallet/external_api_keys.dart'; -import 'package:stackwallet/models/exchange/response_objects/fixed_rate_market.dart'; -import 'package:stackwallet/models/exchange/response_objects/range.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/exchange/simpleswap/sp_currency.dart'; -import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; -import 'package:stackwallet/services/exchange/simpleswap/simpleswap_exchange.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../../../exceptions/exchange/exchange_exception.dart'; +import '../../../external_api_keys.dart'; +import '../../../models/exchange/response_objects/fixed_rate_market.dart'; +import '../../../models/exchange/response_objects/range.dart'; +import '../../../models/exchange/response_objects/trade.dart'; +import '../../../models/exchange/simpleswap/sp_currency.dart'; +import '../../../models/isar/exchange_cache/pair.dart'; +import '../../../networking/http.dart'; +import '../exchange_response.dart'; +import 'simpleswap_exchange.dart'; +import '../../tor_service.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/prefs.dart'; import 'package:tuple/tuple.dart'; import 'package:uuid/uuid.dart'; diff --git a/lib/services/exchange/simpleswap/simpleswap_exchange.dart b/lib/services/exchange/simpleswap/simpleswap_exchange.dart index 80ffb7601..f897bc3f6 100644 --- a/lib/services/exchange/simpleswap/simpleswap_exchange.dart +++ b/lib/services/exchange/simpleswap/simpleswap_exchange.dart @@ -9,14 +9,14 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/models/exchange/response_objects/estimate.dart'; -import 'package:stackwallet/models/exchange/response_objects/range.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; -import 'package:stackwallet/services/exchange/exchange.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; -import 'package:stackwallet/services/exchange/simpleswap/simpleswap_api.dart'; +import '../../../models/exchange/response_objects/estimate.dart'; +import '../../../models/exchange/response_objects/range.dart'; +import '../../../models/exchange/response_objects/trade.dart'; +import '../../../models/isar/exchange_cache/currency.dart'; +import '../../../models/isar/exchange_cache/pair.dart'; +import '../exchange.dart'; +import '../exchange_response.dart'; +import 'simpleswap_api.dart'; class SimpleSwapExchange extends Exchange { SimpleSwapExchange._(); diff --git a/lib/services/exchange/trocador/response_objects/trocador_rate.dart b/lib/services/exchange/trocador/response_objects/trocador_rate.dart index 229487bbd..25f9413fa 100644 --- a/lib/services/exchange/trocador/response_objects/trocador_rate.dart +++ b/lib/services/exchange/trocador/response_objects/trocador_rate.dart @@ -9,7 +9,7 @@ */ import 'package:decimal/decimal.dart'; -import 'package:stackwallet/services/exchange/trocador/response_objects/trocador_quote.dart'; +import 'trocador_quote.dart'; class TrocadorRate { final String tradeId; diff --git a/lib/services/exchange/trocador/trocador_api.dart b/lib/services/exchange/trocador/trocador_api.dart index 2d780ccd0..7ef259186 100644 --- a/lib/services/exchange/trocador/trocador_api.dart +++ b/lib/services/exchange/trocador/trocador_api.dart @@ -12,16 +12,16 @@ import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:flutter_native_splash/cli_commands.dart'; -import 'package:stackwallet/exceptions/exchange/exchange_exception.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; -import 'package:stackwallet/services/exchange/trocador/response_objects/trocador_coin.dart'; -import 'package:stackwallet/services/exchange/trocador/response_objects/trocador_rate.dart'; -import 'package:stackwallet/services/exchange/trocador/response_objects/trocador_trade.dart'; -import 'package:stackwallet/services/exchange/trocador/response_objects/trocador_trade_new.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../../../exceptions/exchange/exchange_exception.dart'; +import '../../../networking/http.dart'; +import '../exchange_response.dart'; +import 'response_objects/trocador_coin.dart'; +import 'response_objects/trocador_rate.dart'; +import 'response_objects/trocador_trade.dart'; +import 'response_objects/trocador_trade_new.dart'; +import '../../tor_service.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/prefs.dart'; const kTrocadorApiKey = "8rFqf7QLxX1mUBiNPEMaLUpV2biz6n"; const kTrocadorRefCode = "9eHm9BkQfS"; diff --git a/lib/services/exchange/trocador/trocador_exchange.dart b/lib/services/exchange/trocador/trocador_exchange.dart index d5a819b46..a74f0a0cc 100644 --- a/lib/services/exchange/trocador/trocador_exchange.dart +++ b/lib/services/exchange/trocador/trocador_exchange.dart @@ -11,17 +11,17 @@ import 'dart:math'; import 'package:decimal/decimal.dart'; -import 'package:stackwallet/exceptions/exchange/exchange_exception.dart'; -import 'package:stackwallet/models/exchange/response_objects/estimate.dart'; -import 'package:stackwallet/models/exchange/response_objects/range.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/models/isar/exchange_cache/pair.dart'; -import 'package:stackwallet/services/exchange/exchange.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; -import 'package:stackwallet/services/exchange/trocador/response_objects/trocador_coin.dart'; -import 'package:stackwallet/services/exchange/trocador/response_objects/trocador_quote.dart'; -import 'package:stackwallet/services/exchange/trocador/trocador_api.dart'; +import '../../../exceptions/exchange/exchange_exception.dart'; +import '../../../models/exchange/response_objects/estimate.dart'; +import '../../../models/exchange/response_objects/range.dart'; +import '../../../models/exchange/response_objects/trade.dart'; +import '../../../models/isar/exchange_cache/currency.dart'; +import '../../../models/isar/exchange_cache/pair.dart'; +import '../exchange.dart'; +import '../exchange_response.dart'; +import 'response_objects/trocador_coin.dart'; +import 'response_objects/trocador_quote.dart'; +import 'trocador_api.dart'; import 'package:uuid/uuid.dart'; class TrocadorExchange extends Exchange { diff --git a/lib/services/frost.dart b/lib/services/frost.dart index adf88695a..932ee61ed 100644 --- a/lib/services/frost.dart +++ b/lib/services/frost.dart @@ -6,11 +6,11 @@ import 'package:frostdart/frostdart.dart'; import 'package:frostdart/frostdart_bindings_generated.dart'; import 'package:frostdart/output.dart'; import 'package:frostdart/util.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../models/isar/models/blockchain_data/utxo.dart'; +import '../utilities/amount/amount.dart'; +import '../utilities/extensions/extensions.dart'; +import '../utilities/logger.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; abstract class Frost { //==================== utility =============================================== diff --git a/lib/services/fusion_tor_service.dart b/lib/services/fusion_tor_service.dart index eb8914e30..0d5b29f59 100644 --- a/lib/services/fusion_tor_service.dart +++ b/lib/services/fusion_tor_service.dart @@ -1,6 +1,6 @@ import 'dart:io'; -import 'package:stackwallet/utilities/logger.dart'; +import '../utilities/logger.dart'; import 'package:tor_ffi_plugin/tor_ffi_plugin.dart'; class FusionTorService { diff --git a/lib/services/litescribe_api.dart b/lib/services/litescribe_api.dart index 65f1783d1..a4d9a8a42 100644 --- a/lib/services/litescribe_api.dart +++ b/lib/services/litescribe_api.dart @@ -1,10 +1,10 @@ import 'dart:convert'; -import 'package:stackwallet/dto/ordinals/inscription_data.dart'; -import 'package:stackwallet/dto/ordinals/litescribe_response.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../dto/ordinals/inscription_data.dart'; +import '../dto/ordinals/litescribe_response.dart'; +import '../networking/http.dart'; +import 'tor_service.dart'; +import '../utilities/prefs.dart'; class LitescribeAPI { static final LitescribeAPI _instance = LitescribeAPI._internal(); diff --git a/lib/services/mixins/wallet_db.dart b/lib/services/mixins/wallet_db.dart index 3c17bf3e9..34aa99ceb 100644 --- a/lib/services/mixins/wallet_db.dart +++ b/lib/services/mixins/wallet_db.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/db/isar/main_db.dart'; +import '../../db/isar/main_db.dart'; @Deprecated("Legacy support") mixin WalletDB { diff --git a/lib/services/monkey_service.dart b/lib/services/monkey_service.dart index f6f804cb3..f921135c1 100644 --- a/lib/services/monkey_service.dart +++ b/lib/services/monkey_service.dart @@ -1,10 +1,10 @@ import 'dart:typed_data'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../networking/http.dart'; +import 'tor_service.dart'; +import '../utilities/logger.dart'; +import '../utilities/prefs.dart'; final pMonKeyService = Provider((ref) => MonKeyService()); diff --git a/lib/services/nano_api.dart b/lib/services/nano_api.dart index e9035c8e9..c364f1f4a 100644 --- a/lib/services/nano_api.dart +++ b/lib/services/nano_api.dart @@ -1,9 +1,9 @@ import 'dart:convert'; import 'package:nanodart/nanodart.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../networking/http.dart'; +import 'tor_service.dart'; +import '../utilities/prefs.dart'; class NanoAPI { static Future< diff --git a/lib/services/node_service.dart b/lib/services/node_service.dart index 7381ca66b..f2e640a67 100644 --- a/lib/services/node_service.dart +++ b/lib/services/node_service.dart @@ -12,13 +12,13 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:http/http.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../app_config.dart'; +import '../db/hive/db.dart'; +import '../models/node_model.dart'; +import '../utilities/default_nodes.dart'; +import '../utilities/flutter_secure_storage_interface.dart'; +import '../utilities/logger.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; const kStackCommunityNodesEndpoint = "https://extras.stackwallet.com"; diff --git a/lib/services/notifications_api.dart b/lib/services/notifications_api.dart index 010e3c220..f614952fc 100644 --- a/lib/services/notifications_api.dart +++ b/lib/services/notifications_api.dart @@ -9,9 +9,9 @@ */ import 'package:flutter_local_notifications/flutter_local_notifications.dart'; -import 'package:stackwallet/models/notification_model.dart'; -import 'package:stackwallet/services/notifications_service.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../models/notification_model.dart'; +import 'notifications_service.dart'; +import '../utilities/prefs.dart'; class NotificationApi { static final _notifications = FlutterLocalNotificationsPlugin(); diff --git a/lib/services/notifications_service.dart b/lib/services/notifications_service.dart index b4097131e..5df8cad4d 100644 --- a/lib/services/notifications_service.dart +++ b/lib/services/notifications_service.dart @@ -11,21 +11,21 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/electrumx_rpc/electrumx_client.dart'; -import 'package:stackwallet/exceptions/electrumx/no_such_transaction.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/notification_model.dart'; -import 'package:stackwallet/services/exchange/exchange_response.dart'; -import 'package:stackwallet/services/node_service.dart'; -import 'package:stackwallet/services/notifications_api.dart'; -import 'package:stackwallet/services/trade_service.dart'; -import 'package:stackwallet/services/wallets.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../app_config.dart'; +import '../db/hive/db.dart'; +import '../electrumx_rpc/electrumx_client.dart'; +import '../exceptions/electrumx/no_such_transaction.dart'; +import '../models/exchange/response_objects/trade.dart'; +import '../models/notification_model.dart'; +import 'exchange/exchange_response.dart'; +import 'node_service.dart'; +import 'notifications_api.dart'; +import 'trade_service.dart'; +import 'wallets.dart'; +import '../utilities/logger.dart'; +import '../utilities/prefs.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import '../wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; import 'exchange/exchange.dart'; diff --git a/lib/services/price.dart b/lib/services/price.dart index c602fd5f6..99be38ef0 100644 --- a/lib/services/price.dart +++ b/lib/services/price.dart @@ -13,13 +13,13 @@ import 'dart:convert'; import 'package:decimal/decimal.dart'; import 'package:flutter/foundation.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../app_config.dart'; +import '../db/hive/db.dart'; +import '../networking/http.dart'; +import 'tor_service.dart'; +import '../utilities/logger.dart'; +import '../utilities/prefs.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; class PriceAPI { diff --git a/lib/services/price_service.dart b/lib/services/price_service.dart index 0aaede505..fb30c8477 100644 --- a/lib/services/price_service.dart +++ b/lib/services/price_service.dart @@ -13,12 +13,12 @@ import 'dart:async'; import 'package:decimal/decimal.dart'; import 'package:flutter/foundation.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/price.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../db/isar/main_db.dart'; +import '../models/isar/models/isar_models.dart'; +import '../networking/http.dart'; +import 'price.dart'; +import '../app_config.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; class PriceService extends ChangeNotifier { diff --git a/lib/services/tor_service.dart b/lib/services/tor_service.dart index 3458f1612..8c4ce5e6d 100644 --- a/lib/services/tor_service.dart +++ b/lib/services/tor_service.dart @@ -1,9 +1,9 @@ import 'dart:io'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/utilities/logger.dart'; +import 'event_bus/events/global/tor_connection_status_changed_event.dart'; +import 'event_bus/global_event_bus.dart'; +import '../utilities/logger.dart'; import 'package:tor_ffi_plugin/tor_ffi_plugin.dart'; final pTorService = Provider((_) => TorService.sharedInstance); diff --git a/lib/services/trade_notes_service.dart b/lib/services/trade_notes_service.dart index 7d92d4a2b..c29009a3c 100644 --- a/lib/services/trade_notes_service.dart +++ b/lib/services/trade_notes_service.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/db/hive/db.dart'; +import '../db/hive/db.dart'; class TradeNotesService extends ChangeNotifier { Map get all { diff --git a/lib/services/trade_sent_from_stack_service.dart b/lib/services/trade_sent_from_stack_service.dart index 7f5140abe..84832a345 100644 --- a/lib/services/trade_sent_from_stack_service.dart +++ b/lib/services/trade_sent_from_stack_service.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/models/trade_wallet_lookup.dart'; +import '../db/hive/db.dart'; +import '../models/trade_wallet_lookup.dart'; class TradeSentFromStackService extends ChangeNotifier { List get all => diff --git a/lib/services/trade_service.dart b/lib/services/trade_service.dart index c960c9f2a..7fd3dcf05 100644 --- a/lib/services/trade_service.dart +++ b/lib/services/trade_service.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/cupertino.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; +import '../db/hive/db.dart'; +import '../models/exchange/response_objects/trade.dart'; class TradesService extends ChangeNotifier { List get trades { diff --git a/lib/services/transaction_notification_tracker.dart b/lib/services/transaction_notification_tracker.dart index 440246d0a..328ca8753 100644 --- a/lib/services/transaction_notification_tracker.dart +++ b/lib/services/transaction_notification_tracker.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/db/hive/db.dart'; +import '../db/hive/db.dart'; class TransactionNotificationTracker { final String walletId; diff --git a/lib/services/wallets.dart b/lib/services/wallets.dart index 67806b99e..43f0af396 100644 --- a/lib/services/wallets.dart +++ b/lib/services/wallets.dart @@ -13,21 +13,21 @@ import 'dart:async'; import 'package:flutter_libmonero/monero/monero.dart' as monero; import 'package:flutter_libmonero/wownero/wownero.dart' as wownero; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/services/node_service.dart'; -import 'package:stackwallet/services/notifications_service.dart'; -import 'package:stackwallet/services/trade_sent_from_stack_service.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; +import '../db/hive/db.dart'; +import '../db/isar/main_db.dart'; +import 'node_service.dart'; +import 'notifications_service.dart'; +import 'trade_sent_from_stack_service.dart'; +import '../app_config.dart'; +import '../utilities/enums/sync_type_enum.dart'; +import '../utilities/flutter_secure_storage_interface.dart'; +import '../utilities/logger.dart'; +import '../utilities/prefs.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import '../wallets/isar/models/wallet_info.dart'; +import '../wallets/wallet/impl/epiccash_wallet.dart'; +import '../wallets/wallet/wallet.dart'; +import '../wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; class Wallets { Wallets._private(); diff --git a/lib/services/wallets_service.dart b/lib/services/wallets_service.dart index 1f7b3b17c..744b327d1 100644 --- a/lib/services/wallets_service.dart +++ b/lib/services/wallets_service.dart @@ -11,9 +11,9 @@ import 'dart:convert'; import 'package:flutter/material.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/utilities/logger.dart'; +import '../app_config.dart'; +import '../db/hive/db.dart'; +import '../utilities/logger.dart'; @Deprecated("Legacy support only. Do not use.") class WalletInfo { diff --git a/lib/themes/coin_card_provider.dart b/lib/themes/coin_card_provider.dart index 1e1b98ee8..bb7d11052 100644 --- a/lib/themes/coin_card_provider.dart +++ b/lib/themes/coin_card_provider.dart @@ -9,9 +9,9 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../models/isar/stack_theme.dart'; +import 'theme_providers.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; final coinCardProvider = Provider.family((ref, coin) { final assets = ref.watch(themeAssetsProvider); diff --git a/lib/themes/coin_icon_provider.dart b/lib/themes/coin_icon_provider.dart index 6415bc9c1..afb47672f 100644 --- a/lib/themes/coin_icon_provider.dart +++ b/lib/themes/coin_icon_provider.dart @@ -9,20 +9,20 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/litecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/namecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/particl.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../models/isar/stack_theme.dart'; +import 'theme_providers.dart'; +import '../wallets/crypto_currency/coins/bitcoin.dart'; +import '../wallets/crypto_currency/coins/bitcoincash.dart'; +import '../wallets/crypto_currency/coins/dogecoin.dart'; +import '../wallets/crypto_currency/coins/epiccash.dart'; +import '../wallets/crypto_currency/coins/ethereum.dart'; +import '../wallets/crypto_currency/coins/firo.dart'; +import '../wallets/crypto_currency/coins/litecoin.dart'; +import '../wallets/crypto_currency/coins/monero.dart'; +import '../wallets/crypto_currency/coins/namecoin.dart'; +import '../wallets/crypto_currency/coins/particl.dart'; +import '../wallets/crypto_currency/coins/wownero.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; final coinIconProvider = Provider.family((ref, coin) { final assets = ref.watch(themeAssetsProvider); diff --git a/lib/themes/coin_image_provider.dart b/lib/themes/coin_image_provider.dart index c73fc6af3..ed162a473 100644 --- a/lib/themes/coin_image_provider.dart +++ b/lib/themes/coin_image_provider.dart @@ -9,9 +9,9 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../models/isar/stack_theme.dart'; +import 'theme_providers.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; final coinImageProvider = Provider.family((ref, coin) { final assets = ref.watch(themeAssetsProvider); diff --git a/lib/themes/stack_colors.dart b/lib/themes/stack_colors.dart index 5f6823f86..20b60e3b1 100644 --- a/lib/themes/stack_colors.dart +++ b/lib/themes/stack_colors.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; +import '../models/isar/stack_theme.dart'; class StackColors extends ThemeExtension { final String themeId; diff --git a/lib/themes/theme_providers.dart b/lib/themes/theme_providers.dart index e1ab4a5e9..b09fc2c4e 100644 --- a/lib/themes/theme_providers.dart +++ b/lib/themes/theme_providers.dart @@ -10,10 +10,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_service.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../models/isar/stack_theme.dart'; +import 'stack_colors.dart'; +import 'theme_service.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; final applicationThemesDirectoryPathProvider = StateProvider((ref) => ""); diff --git a/lib/themes/theme_service.dart b/lib/themes/theme_service.dart index c71a336a4..68344ea43 100644 --- a/lib/themes/theme_service.dart +++ b/lib/themes/theme_service.dart @@ -16,13 +16,13 @@ import 'package:crypto/crypto.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; +import '../db/isar/main_db.dart'; +import '../models/isar/stack_theme.dart'; +import '../networking/http.dart'; +import '../services/tor_service.dart'; +import '../utilities/logger.dart'; +import '../utilities/prefs.dart'; +import '../utilities/stack_file_system.dart'; final pThemeService = Provider((ref) { return ThemeService.instance; diff --git a/lib/utilities/address_utils.dart b/lib/utilities/address_utils.dart index 3420a8217..2bb721fe0 100644 --- a/lib/utilities/address_utils.dart +++ b/lib/utilities/address_utils.dart @@ -10,10 +10,10 @@ import 'dart:convert'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import 'logger.dart'; +import '../wallets/crypto_currency/coins/bitcoincash.dart'; +import '../wallets/crypto_currency/coins/ecash.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; class AddressUtils { static String condenseAddress(String address) { diff --git a/lib/utilities/amount/amount.dart b/lib/utilities/amount/amount.dart index 2ce3fbd56..e388020e1 100644 --- a/lib/utilities/amount/amount.dart +++ b/lib/utilities/amount/amount.dart @@ -11,7 +11,7 @@ import 'dart:convert'; import 'package:decimal/decimal.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../util.dart'; class Amount { Amount({ diff --git a/lib/utilities/amount/amount_formatter.dart b/lib/utilities/amount/amount_formatter.dart index 937636069..44746b8cd 100644 --- a/lib/utilities/amount/amount_formatter.dart +++ b/lib/utilities/amount/amount_formatter.dart @@ -1,10 +1,10 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/providers/global/locale_provider.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../models/isar/models/ethereum/eth_contract.dart'; +import '../../providers/global/locale_provider.dart'; +import '../../providers/global/prefs_provider.dart'; +import 'amount.dart'; +import 'amount_unit.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; final pAmountUnit = Provider.family( (ref, coin) => ref.watch( diff --git a/lib/utilities/amount/amount_input_formatter.dart b/lib/utilities/amount/amount_input_formatter.dart index 2ac5d7871..f09100ad7 100644 --- a/lib/utilities/amount/amount_input_formatter.dart +++ b/lib/utilities/amount/amount_input_formatter.dart @@ -1,8 +1,8 @@ import 'dart:math'; import 'package:flutter/services.dart'; -import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/utilities/util.dart'; +import 'amount_unit.dart'; +import '../util.dart'; class AmountInputFormatter extends TextInputFormatter { final int decimals; diff --git a/lib/utilities/amount/amount_unit.dart b/lib/utilities/amount/amount_unit.dart index a81559556..9911e5961 100644 --- a/lib/utilities/amount/amount_unit.dart +++ b/lib/utilities/amount/amount_unit.dart @@ -11,14 +11,14 @@ import 'dart:math' as math; import 'package:decimal/decimal.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; +import '../../models/isar/models/ethereum/eth_contract.dart'; +import 'amount.dart'; +import '../util.dart'; +import '../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../wallets/crypto_currency/coins/monero.dart'; +import '../../wallets/crypto_currency/coins/wownero.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/crypto_currency/intermediate/nano_currency.dart'; // preserve index order as index is used to store value in preferences enum AmountUnit { diff --git a/lib/utilities/assets.dart b/lib/utilities/assets.dart index b826bbf09..84dad9ae6 100644 --- a/lib/utilities/assets.dart +++ b/lib/utilities/assets.dart @@ -9,10 +9,10 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/services/exchange/change_now/change_now_exchange.dart'; -import 'package:stackwallet/services/exchange/majestic_bank/majestic_bank_exchange.dart'; -import 'package:stackwallet/services/exchange/simpleswap/simpleswap_exchange.dart'; -import 'package:stackwallet/services/exchange/trocador/trocador_exchange.dart'; +import '../services/exchange/change_now/change_now_exchange.dart'; +import '../services/exchange/majestic_bank/majestic_bank_exchange.dart'; +import '../services/exchange/simpleswap/simpleswap_exchange.dart'; +import '../services/exchange/trocador/trocador_exchange.dart'; abstract class Assets { static const svg = _SVG(); diff --git a/lib/utilities/biometrics.dart b/lib/utilities/biometrics.dart index 13262fadb..8be9edb24 100644 --- a/lib/utilities/biometrics.dart +++ b/lib/utilities/biometrics.dart @@ -13,7 +13,7 @@ import 'dart:io'; import 'package:flutter/cupertino.dart'; import 'package:local_auth/auth_strings.dart'; import 'package:local_auth/local_auth.dart'; -import 'package:stackwallet/utilities/logger.dart'; +import 'logger.dart'; class Biometrics { static const integrationTestFlag = diff --git a/lib/utilities/bip47_utils.dart b/lib/utilities/bip47_utils.dart index 87730f0df..80b393dff 100644 --- a/lib/utilities/bip47_utils.dart +++ b/lib/utilities/bip47_utils.dart @@ -11,8 +11,8 @@ import 'dart:typed_data'; import 'package:bip47/src/util.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../models/isar/models/blockchain_data/v2/transaction_v2.dart'; abstract class Bip47Utils { /// looks at tx outputs and returns a blinded payment code if found diff --git a/lib/utilities/block_explorers.dart b/lib/utilities/block_explorers.dart index b72b4a851..b7f55b4b4 100644 --- a/lib/utilities/block_explorers.dart +++ b/lib/utilities/block_explorers.dart @@ -8,9 +8,9 @@ * */ -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/block_explorer.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../db/isar/main_db.dart'; +import '../models/isar/models/block_explorer.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; // Returns internal Isar ID for the inserted object/record Future setBlockExplorerForCoin({ diff --git a/lib/utilities/connection_check/electrum_connection_check.dart b/lib/utilities/connection_check/electrum_connection_check.dart index 1dbc003c8..a78075246 100644 --- a/lib/utilities/connection_check/electrum_connection_check.dart +++ b/lib/utilities/connection_check/electrum_connection_check.dart @@ -1,10 +1,10 @@ import 'dart:io'; import 'package:electrum_adapter/electrum_adapter.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../../services/tor_service.dart'; +import '../logger.dart'; +import '../prefs.dart'; Future checkElectrumServer({ required String host, diff --git a/lib/utilities/constants.dart b/lib/utilities/constants.dart index 5971d02f3..d68760139 100644 --- a/lib/utilities/constants.dart +++ b/lib/utilities/constants.dart @@ -10,7 +10,7 @@ import 'dart:io'; -import 'package:stackwallet/utilities/util.dart'; +import 'util.dart'; class _LayoutSizing { const _LayoutSizing(); diff --git a/lib/utilities/default_epicboxes.dart b/lib/utilities/default_epicboxes.dart index f83f84cf5..a2c9b01f0 100644 --- a/lib/utilities/default_epicboxes.dart +++ b/lib/utilities/default_epicboxes.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/models/epicbox_server_model.dart'; +import '../models/epicbox_server_model.dart'; abstract class DefaultEpicBoxes { static const String defaultName = "Default"; diff --git a/lib/utilities/default_eth_tokens.dart b/lib/utilities/default_eth_tokens.dart index 2383a24a2..63cd7f62b 100644 --- a/lib/utilities/default_eth_tokens.dart +++ b/lib/utilities/default_eth_tokens.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; +import '../models/isar/models/ethereum/eth_contract.dart'; abstract class DefaultTokens { static List list = [ diff --git a/lib/utilities/default_nodes.dart b/lib/utilities/default_nodes.dart index f7f09583a..93872aeef 100644 --- a/lib/utilities/default_nodes.dart +++ b/lib/utilities/default_nodes.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; abstract class DefaultNodes { static const String defaultNodeIdPrefix = "default_"; diff --git a/lib/utilities/desktop_password_service.dart b/lib/utilities/desktop_password_service.dart index edf1059a6..e563d453e 100644 --- a/lib/utilities/desktop_password_service.dart +++ b/lib/utilities/desktop_password_service.dart @@ -10,7 +10,7 @@ import 'package:hive/hive.dart'; import 'package:stack_wallet_backup/secure_storage.dart'; -import 'package:stackwallet/utilities/logger.dart'; +import 'logger.dart'; const String kBoxNameDesktopData = "desktopData"; const String _kKeyBlobKey = "swbKeyBlobKeyStringID"; diff --git a/lib/utilities/enums/derive_path_type_enum.dart b/lib/utilities/enums/derive_path_type_enum.dart index d17a6584a..8981cf1c3 100644 --- a/lib/utilities/enums/derive_path_type_enum.dart +++ b/lib/utilities/enums/derive_path_type_enum.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; +import '../../models/isar/models/blockchain_data/address.dart'; enum DerivePathType { bip44, diff --git a/lib/utilities/eth_commons.dart b/lib/utilities/eth_commons.dart index f2c802111..b7f936c58 100644 --- a/lib/utilities/eth_commons.dart +++ b/lib/utilities/eth_commons.dart @@ -12,8 +12,8 @@ import 'package:bip32/bip32.dart' as bip32; import 'package:bip39/bip39.dart' as bip39; import 'package:decimal/decimal.dart'; import "package:hex/hex.dart"; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../wallets/crypto_currency/coins/ethereum.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; class GasTracker { final Decimal average; diff --git a/lib/utilities/extensions/impl/contract_abi.dart b/lib/utilities/extensions/impl/contract_abi.dart index ad091bb18..f34e33970 100644 --- a/lib/utilities/extensions/impl/contract_abi.dart +++ b/lib/utilities/extensions/impl/contract_abi.dart @@ -10,7 +10,7 @@ import 'dart:convert'; -import 'package:stackwallet/utilities/logger.dart'; +import '../../logger.dart'; import 'package:web3dart/web3dart.dart'; extension ContractAbiExtensions on ContractAbi { diff --git a/lib/utilities/extensions/impl/gradient.dart b/lib/utilities/extensions/impl/gradient.dart index 1e1058de5..6efb36e88 100644 --- a/lib/utilities/extensions/impl/gradient.dart +++ b/lib/utilities/extensions/impl/gradient.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/extensions/impl/string.dart'; +import 'string.dart'; extension GradientExt on Gradient { static Gradient fromJson(Map json) { diff --git a/lib/utilities/extensions/impl/string.dart b/lib/utilities/extensions/impl/string.dart index 3b214205d..d3e50fa78 100644 --- a/lib/utilities/extensions/impl/string.dart +++ b/lib/utilities/extensions/impl/string.dart @@ -14,7 +14,7 @@ import 'dart:typed_data'; import 'package:dart_bs58/dart_bs58.dart'; import 'package:dart_bs58check/dart_bs58check.dart'; import 'package:hex/hex.dart'; -import 'package:stackwallet/utilities/extensions/extensions.dart'; +import '../extensions.dart'; extension StringExtensions on String { Uint8List get toUint8ListFromUtf8 => Uint8List.fromList(utf8.encode(this)); diff --git a/lib/utilities/featured_paynyms.dart b/lib/utilities/featured_paynyms.dart index aecd8de8c..83b6c7281 100644 --- a/lib/utilities/featured_paynyms.dart +++ b/lib/utilities/featured_paynyms.dart @@ -8,7 +8,7 @@ * */ -import 'package:stackwallet/app_config.dart'; +import '../app_config.dart'; abstract class FeaturedPaynyms { // TODO: replace with actual value diff --git a/lib/utilities/flutter_secure_storage_interface.dart b/lib/utilities/flutter_secure_storage_interface.dart index a1d159c6b..26adefaaa 100644 --- a/lib/utilities/flutter_secure_storage_interface.dart +++ b/lib/utilities/flutter_secure_storage_interface.dart @@ -11,8 +11,8 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:isar/isar.dart'; import 'package:stack_wallet_backup/secure_storage.dart'; -import 'package:stackwallet/models/isar/models/encrypted_string_value.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; +import '../models/isar/models/encrypted_string_value.dart'; +import 'stack_file_system.dart'; abstract class SecureStorageInterface { dynamic get store; diff --git a/lib/utilities/format.dart b/lib/utilities/format.dart index 216be7099..b11e98e1e 100644 --- a/lib/utilities/format.dart +++ b/lib/utilities/format.dart @@ -10,8 +10,8 @@ import 'dart:typed_data'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; +import 'constants.dart'; +import 'enums/backup_frequency_type.dart'; abstract class Format { static String shorten(String value, int beginCount, int endCount) { diff --git a/lib/utilities/logger.dart b/lib/utilities/logger.dart index 7eb6095de..9574db009 100644 --- a/lib/utilities/logger.dart +++ b/lib/utilities/logger.dart @@ -14,9 +14,9 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/log.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/log_level_enum.dart'; +import '../models/isar/models/log.dart'; +import 'constants.dart'; +import 'enums/log_level_enum.dart'; export 'enums/log_level_enum.dart'; diff --git a/lib/utilities/paynym_is_api.dart b/lib/utilities/paynym_is_api.dart index 3d02e67d1..1ed94d751 100644 --- a/lib/utilities/paynym_is_api.dart +++ b/lib/utilities/paynym_is_api.dart @@ -10,15 +10,15 @@ import 'dart:convert'; -import 'package:stackwallet/models/paynym/created_paynym.dart'; -import 'package:stackwallet/models/paynym/paynym_account.dart'; -import 'package:stackwallet/models/paynym/paynym_claim.dart'; -import 'package:stackwallet/models/paynym/paynym_follow.dart'; -import 'package:stackwallet/models/paynym/paynym_response.dart'; -import 'package:stackwallet/models/paynym/paynym_unfollow.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../models/paynym/created_paynym.dart'; +import '../models/paynym/paynym_account.dart'; +import '../models/paynym/paynym_claim.dart'; +import '../models/paynym/paynym_follow.dart'; +import '../models/paynym/paynym_response.dart'; +import '../models/paynym/paynym_unfollow.dart'; +import '../networking/http.dart'; +import '../services/tor_service.dart'; +import 'prefs.dart'; import 'package:tuple/tuple.dart'; // todo: better error message parsing (from response itself?) diff --git a/lib/utilities/prefs.dart b/lib/utilities/prefs.dart index 060118437..abd236416 100644 --- a/lib/utilities/prefs.dart +++ b/lib/utilities/prefs.dart @@ -11,17 +11,17 @@ import 'dart:async'; import 'package:flutter/cupertino.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart'; -import 'package:stackwallet/utilities/enums/languages_enum.dart'; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; +import '../db/hive/db.dart'; +import '../services/event_bus/events/global/tor_status_changed_event.dart'; +import '../services/event_bus/global_event_bus.dart'; +import '../app_config.dart'; +import 'amount/amount_unit.dart'; +import 'constants.dart'; +import 'enums/backup_frequency_type.dart'; +import 'enums/languages_enum.dart'; +import 'enums/sync_type_enum.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import '../wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; import 'package:uuid/uuid.dart'; class Prefs extends ChangeNotifier { diff --git a/lib/utilities/show_loading.dart b/lib/utilities/show_loading.dart index e01a86441..1730df83d 100644 --- a/lib/utilities/show_loading.dart +++ b/lib/utilities/show_loading.dart @@ -11,9 +11,9 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/widgets/custom_loading_overlay.dart'; +import '../themes/stack_colors.dart'; +import 'logger.dart'; +import '../widgets/custom_loading_overlay.dart'; Future showLoading({ required Future whileFuture, diff --git a/lib/utilities/stack_file_system.dart b/lib/utilities/stack_file_system.dart index 56e55fe40..a5b58794d 100644 --- a/lib/utilities/stack_file_system.dart +++ b/lib/utilities/stack_file_system.dart @@ -11,8 +11,8 @@ import 'dart:io'; import 'package:path_provider/path_provider.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/util.dart'; +import 'logger.dart'; +import 'util.dart'; abstract class StackFileSystem { static String? overrideDir; diff --git a/lib/utilities/test_epic_box_connection.dart b/lib/utilities/test_epic_box_connection.dart index 600438451..471d6fcce 100644 --- a/lib/utilities/test_epic_box_connection.dart +++ b/lib/utilities/test_epic_box_connection.dart @@ -10,11 +10,11 @@ import 'dart:convert'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../networking/http.dart'; +import '../pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; +import '../services/tor_service.dart'; +import 'logger.dart'; +import 'prefs.dart'; Future _testEpicBoxNodeConnection(Uri uri) async { HTTP client = HTTP(); diff --git a/lib/utilities/test_monero_node_connection.dart b/lib/utilities/test_monero_node_connection.dart index f63ff57fb..d6fe05cd5 100644 --- a/lib/utilities/test_monero_node_connection.dart +++ b/lib/utilities/test_monero_node_connection.dart @@ -12,11 +12,11 @@ import 'dart:convert'; import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import 'format.dart'; +import 'logger.dart'; +import '../widgets/desktop/primary_button.dart'; +import '../widgets/desktop/secondary_button.dart'; +import '../widgets/stack_dialog.dart'; class MoneroNodeConnectionResponse { final X509Certificate? cert; diff --git a/lib/utilities/test_node_connection.dart b/lib/utilities/test_node_connection.dart index 2113766b1..c47fb49ac 100644 --- a/lib/utilities/test_node_connection.dart +++ b/lib/utilities/test_node_connection.dart @@ -3,26 +3,26 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:solana/solana.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; -import 'package:stackwallet/providers/global/prefs_provider.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/connection_check/electrum_connection_check.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/test_epic_box_connection.dart'; -import 'package:stackwallet/utilities/test_eth_node_connection.dart'; -import 'package:stackwallet/utilities/test_monero_node_connection.dart'; -import 'package:stackwallet/utilities/test_stellar_node_connection.dart'; -import 'package:stackwallet/wallets/api/tezos/tezos_rpc_api.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/solana.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/cryptonote_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; +import '../pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; +import '../providers/global/prefs_provider.dart'; +import '../services/tor_service.dart'; +import 'connection_check/electrum_connection_check.dart'; +import 'logger.dart'; +import 'test_epic_box_connection.dart'; +import 'test_eth_node_connection.dart'; +import 'test_monero_node_connection.dart'; +import 'test_stellar_node_connection.dart'; +import '../wallets/api/tezos/tezos_rpc_api.dart'; +import '../wallets/crypto_currency/coins/bitcoin_frost.dart'; +import '../wallets/crypto_currency/coins/epiccash.dart'; +import '../wallets/crypto_currency/coins/ethereum.dart'; +import '../wallets/crypto_currency/coins/solana.dart'; +import '../wallets/crypto_currency/coins/stellar.dart'; +import '../wallets/crypto_currency/coins/tezos.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import '../wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../wallets/crypto_currency/intermediate/cryptonote_currency.dart'; +import '../wallets/crypto_currency/intermediate/nano_currency.dart'; Future _xmrHelper( NodeFormData nodeFormData, diff --git a/lib/utilities/test_stellar_node_connection.dart b/lib/utilities/test_stellar_node_connection.dart index 73d20a8aa..7b580e85c 100644 --- a/lib/utilities/test_stellar_node_connection.dart +++ b/lib/utilities/test_stellar_node_connection.dart @@ -1,8 +1,8 @@ import 'dart:convert'; -import 'package:stackwallet/networking/http.dart' as http; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../networking/http.dart' as http; +import '../services/tor_service.dart'; +import 'prefs.dart'; import 'package:stellar_flutter_sdk/stellar_flutter_sdk.dart'; Future testStellarNodeConnection(String host, int port) async { diff --git a/lib/utilities/text_styles.dart b/lib/utilities/text_styles.dart index 0a7383e9f..2337a6622 100644 --- a/lib/utilities/text_styles.dart +++ b/lib/utilities/text_styles.dart @@ -10,7 +10,7 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; +import '../themes/stack_colors.dart'; class STextStyles { static StackColors _theme(BuildContext context) => diff --git a/lib/wallets/api/lelantus_ffi_wrapper.dart b/lib/wallets/api/lelantus_ffi_wrapper.dart index ef70b801f..e6037bedb 100644 --- a/lib/wallets/api/lelantus_ffi_wrapper.dart +++ b/lib/wallets/api/lelantus_ffi_wrapper.dart @@ -2,17 +2,17 @@ import 'package:bip32/bip32.dart'; import 'package:bitcoindart/bitcoindart.dart' as bitcoindart; import 'package:flutter/foundation.dart'; import 'package:lelantus/lelantus.dart' as lelantus; -import 'package:stackwallet/models/isar/models/isar_models.dart' as isar_models; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/lelantus_fee_data.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/extensions/impl/string.dart'; -import 'package:stackwallet/utilities/extensions/impl/uint8_list.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; +import '../../models/isar/models/isar_models.dart' as isar_models; +import '../../models/isar/models/isar_models.dart'; +import '../../models/lelantus_fee_data.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/extensions/impl/string.dart'; +import '../../utilities/extensions/impl/uint8_list.dart'; +import '../../utilities/format.dart'; +import '../../utilities/logger.dart'; +import '../crypto_currency/crypto_currency.dart'; +import '../crypto_currency/intermediate/bip39_hd_currency.dart'; +import '../models/tx_data.dart'; abstract final class LelantusFfiWrapper { static const MINT_LIMIT = 5001 * 100000000; diff --git a/lib/wallets/api/tezos/tezos_api.dart b/lib/wallets/api/tezos/tezos_api.dart index a798fb01b..754fc17aa 100644 --- a/lib/wallets/api/tezos/tezos_api.dart +++ b/lib/wallets/api/tezos/tezos_api.dart @@ -1,11 +1,11 @@ import 'dart:convert'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/wallets/api/tezos/tezos_account.dart'; -import 'package:stackwallet/wallets/api/tezos/tezos_transaction.dart'; +import '../../../networking/http.dart'; +import '../../../services/tor_service.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/prefs.dart'; +import 'tezos_account.dart'; +import 'tezos_transaction.dart'; abstract final class TezosAPI { static final HTTP _client = HTTP(); diff --git a/lib/wallets/api/tezos/tezos_rpc_api.dart b/lib/wallets/api/tezos/tezos_rpc_api.dart index d5faa060f..201cd3b9b 100644 --- a/lib/wallets/api/tezos/tezos_rpc_api.dart +++ b/lib/wallets/api/tezos/tezos_rpc_api.dart @@ -1,9 +1,9 @@ import 'dart:convert'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/prefs.dart'; +import '../../../networking/http.dart'; +import '../../../services/tor_service.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/prefs.dart'; abstract final class TezosRpcAPI { static final HTTP _client = HTTP(); diff --git a/lib/wallets/crypto_currency/coins/banano.dart b/lib/wallets/crypto_currency/coins/banano.dart index c2cb52345..2dec17825 100644 --- a/lib/wallets/crypto_currency/coins/banano.dart +++ b/lib/wallets/crypto_currency/coins/banano.dart @@ -1,10 +1,10 @@ import 'package:nanodart/nanodart.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../intermediate/nano_currency.dart'; class Banano extends NanoCurrency { Banano(super.network) { diff --git a/lib/wallets/crypto_currency/coins/bitcoin.dart b/lib/wallets/crypto_currency/coins/bitcoin.dart index e989e51e5..118d61f24 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin.dart @@ -1,13 +1,13 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/paynym_currency_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../interfaces/electrumx_currency_interface.dart'; +import '../interfaces/paynym_currency_interface.dart'; +import '../intermediate/bip39_hd_currency.dart'; class Bitcoin extends Bip39HDCurrency with ElectrumXCurrencyInterface, PaynymCurrencyInterface { diff --git a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart index 3c7973599..ed55766c8 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart @@ -1,14 +1,14 @@ import 'dart:typed_data'; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../intermediate/bip39_hd_currency.dart'; +import '../intermediate/frost_currency.dart'; class BitcoinFrost extends FrostCurrency { BitcoinFrost(super.network) { diff --git a/lib/wallets/crypto_currency/coins/bitcoincash.dart b/lib/wallets/crypto_currency/coins/bitcoincash.dart index 9059e0358..e713dd417 100644 --- a/lib/wallets/crypto_currency/coins/bitcoincash.dart +++ b/lib/wallets/crypto_currency/coins/bitcoincash.dart @@ -4,14 +4,14 @@ import 'package:bech32/bech32.dart'; import 'package:bitbox/bitbox.dart' as bitbox; import 'package:bs58check/bs58check.dart' as bs58check; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_currency.dart'; class Bitcoincash extends Bip39HDCurrency with ElectrumXCurrencyInterface { Bitcoincash(super.network) { diff --git a/lib/wallets/crypto_currency/coins/dogecoin.dart b/lib/wallets/crypto_currency/coins/dogecoin.dart index 7019df2f6..3e1824e48 100644 --- a/lib/wallets/crypto_currency/coins/dogecoin.dart +++ b/lib/wallets/crypto_currency/coins/dogecoin.dart @@ -1,12 +1,12 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_currency.dart'; class Dogecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { Dogecoin(super.network) { diff --git a/lib/wallets/crypto_currency/coins/ecash.dart b/lib/wallets/crypto_currency/coins/ecash.dart index 9cec2f9cb..bf173fe67 100644 --- a/lib/wallets/crypto_currency/coins/ecash.dart +++ b/lib/wallets/crypto_currency/coins/ecash.dart @@ -4,14 +4,14 @@ import 'package:bech32/bech32.dart'; import 'package:bitbox/bitbox.dart' as bitbox; import 'package:bs58check/bs58check.dart' as bs58check; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_currency.dart'; class Ecash extends Bip39HDCurrency with ElectrumXCurrencyInterface { Ecash(super.network) { diff --git a/lib/wallets/crypto_currency/coins/epiccash.dart b/lib/wallets/crypto_currency/coins/epiccash.dart index 4c49bee5e..f90832473 100644 --- a/lib/wallets/crypto_currency/coins/epiccash.dart +++ b/lib/wallets/crypto_currency/coins/epiccash.dart @@ -1,10 +1,10 @@ import 'package:flutter_libepiccash/lib.dart' as epic; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../intermediate/bip39_currency.dart'; class Epiccash extends Bip39Currency { Epiccash(super.network) { diff --git a/lib/wallets/crypto_currency/coins/ethereum.dart b/lib/wallets/crypto_currency/coins/ethereum.dart index 5c6c4f0a1..eb20d05e3 100644 --- a/lib/wallets/crypto_currency/coins/ethereum.dart +++ b/lib/wallets/crypto_currency/coins/ethereum.dart @@ -1,10 +1,10 @@ import 'package:ethereum_addresses/ethereum_addresses.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../intermediate/bip39_currency.dart'; class Ethereum extends Bip39Currency { Ethereum(super.network) { diff --git a/lib/wallets/crypto_currency/coins/firo.dart b/lib/wallets/crypto_currency/coins/firo.dart index fbad32ec2..d9dbe3e65 100644 --- a/lib/wallets/crypto_currency/coins/firo.dart +++ b/lib/wallets/crypto_currency/coins/firo.dart @@ -1,13 +1,13 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_currency.dart'; +import '../../wallet/wallet_mixin_interfaces/spark_interface.dart'; class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { Firo(super.network) { diff --git a/lib/wallets/crypto_currency/coins/litecoin.dart b/lib/wallets/crypto_currency/coins/litecoin.dart index e4b491cef..89346e509 100644 --- a/lib/wallets/crypto_currency/coins/litecoin.dart +++ b/lib/wallets/crypto_currency/coins/litecoin.dart @@ -1,12 +1,12 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_currency.dart'; class Litecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { Litecoin(super.network) { diff --git a/lib/wallets/crypto_currency/coins/monero.dart b/lib/wallets/crypto_currency/coins/monero.dart index 42afdf8df..47deb80ab 100644 --- a/lib/wallets/crypto_currency/coins/monero.dart +++ b/lib/wallets/crypto_currency/coins/monero.dart @@ -1,9 +1,9 @@ import 'package:cw_monero/api/wallet.dart' as monero_wallet; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/cryptonote_currency.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../intermediate/cryptonote_currency.dart'; class Monero extends CryptonoteCurrency { Monero(super.network) { diff --git a/lib/wallets/crypto_currency/coins/namecoin.dart b/lib/wallets/crypto_currency/coins/namecoin.dart index 53c0be5f9..557644b84 100644 --- a/lib/wallets/crypto_currency/coins/namecoin.dart +++ b/lib/wallets/crypto_currency/coins/namecoin.dart @@ -1,12 +1,12 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_currency.dart'; class Namecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { Namecoin(super.network) { diff --git a/lib/wallets/crypto_currency/coins/nano.dart b/lib/wallets/crypto_currency/coins/nano.dart index 03632e352..b14992812 100644 --- a/lib/wallets/crypto_currency/coins/nano.dart +++ b/lib/wallets/crypto_currency/coins/nano.dart @@ -1,10 +1,10 @@ import 'package:nanodart/nanodart.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../intermediate/nano_currency.dart'; class Nano extends NanoCurrency { Nano(super.network) { diff --git a/lib/wallets/crypto_currency/coins/particl.dart b/lib/wallets/crypto_currency/coins/particl.dart index 7db0053f7..9fb53ab1f 100644 --- a/lib/wallets/crypto_currency/coins/particl.dart +++ b/lib/wallets/crypto_currency/coins/particl.dart @@ -1,12 +1,12 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_currency.dart'; class Particl extends Bip39HDCurrency with ElectrumXCurrencyInterface { Particl(super.network) { diff --git a/lib/wallets/crypto_currency/coins/peercoin.dart b/lib/wallets/crypto_currency/coins/peercoin.dart index c14aa5303..3287b38ed 100644 --- a/lib/wallets/crypto_currency/coins/peercoin.dart +++ b/lib/wallets/crypto_currency/coins/peercoin.dart @@ -1,13 +1,13 @@ import 'package:coinlib/src/network.dart'; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_currency.dart'; class Peercoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { Peercoin(super.network) { diff --git a/lib/wallets/crypto_currency/coins/solana.dart b/lib/wallets/crypto_currency/coins/solana.dart index 3916c5320..96ff3f2ae 100644 --- a/lib/wallets/crypto_currency/coins/solana.dart +++ b/lib/wallets/crypto_currency/coins/solana.dart @@ -1,10 +1,10 @@ import 'package:solana/solana.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../intermediate/bip39_currency.dart'; class Solana extends Bip39Currency { Solana(super.network) { diff --git a/lib/wallets/crypto_currency/coins/stellar.dart b/lib/wallets/crypto_currency/coins/stellar.dart index 28165179a..dfcb37fce 100644 --- a/lib/wallets/crypto_currency/coins/stellar.dart +++ b/lib/wallets/crypto_currency/coins/stellar.dart @@ -1,9 +1,9 @@ -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../intermediate/bip39_currency.dart'; class Stellar extends Bip39Currency { Stellar(super.network) { diff --git a/lib/wallets/crypto_currency/coins/tezos.dart b/lib/wallets/crypto_currency/coins/tezos.dart index e8eb63a97..0cf344993 100644 --- a/lib/wallets/crypto_currency/coins/tezos.dart +++ b/lib/wallets/crypto_currency/coins/tezos.dart @@ -3,12 +3,12 @@ import 'dart:typed_data'; import 'package:bip39/bip39.dart' as bip39; import 'package:coinlib_flutter/coinlib_flutter.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../intermediate/bip39_currency.dart'; import 'package:tezart/src/crypto/crypto.dart'; import 'package:tezart/tezart.dart'; diff --git a/lib/wallets/crypto_currency/coins/wownero.dart b/lib/wallets/crypto_currency/coins/wownero.dart index 788c810e0..9b83b9481 100644 --- a/lib/wallets/crypto_currency/coins/wownero.dart +++ b/lib/wallets/crypto_currency/coins/wownero.dart @@ -1,9 +1,9 @@ import 'package:cw_wownero/api/wallet.dart' as wownero_wallet; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/cryptonote_currency.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/default_nodes.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../intermediate/cryptonote_currency.dart'; class Wownero extends CryptonoteCurrency { Wownero(super.network) { diff --git a/lib/wallets/crypto_currency/crypto_currency.dart b/lib/wallets/crypto_currency/crypto_currency.dart index d4e484fa6..f5f78fda9 100644 --- a/lib/wallets/crypto_currency/crypto_currency.dart +++ b/lib/wallets/crypto_currency/crypto_currency.dart @@ -1,6 +1,6 @@ -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; +import '../../models/isar/models/blockchain_data/address.dart'; +import '../../models/node_model.dart'; +import '../../utilities/enums/derive_path_type_enum.dart'; export 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; export 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; diff --git a/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart b/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart index 69c9f33fd..4dd224aed 100644 --- a/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart +++ b/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart @@ -1,4 +1,4 @@ -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; +import '../intermediate/bip39_hd_currency.dart'; mixin ElectrumXCurrencyInterface on Bip39HDCurrency { // diff --git a/lib/wallets/crypto_currency/interfaces/paynym_currency_interface.dart b/lib/wallets/crypto_currency/interfaces/paynym_currency_interface.dart index 580a1b3ed..3a5350be6 100644 --- a/lib/wallets/crypto_currency/interfaces/paynym_currency_interface.dart +++ b/lib/wallets/crypto_currency/interfaces/paynym_currency_interface.dart @@ -1,6 +1,6 @@ -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; +import '../../../utilities/amount/amount.dart'; +import 'electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_currency.dart'; mixin PaynymCurrencyInterface on ElectrumXCurrencyInterface, Bip39HDCurrency { Amount get dustLimitP2PKH => Amount( diff --git a/lib/wallets/crypto_currency/intermediate/bip39_currency.dart b/lib/wallets/crypto_currency/intermediate/bip39_currency.dart index 566c033ea..d9c61c77e 100644 --- a/lib/wallets/crypto_currency/intermediate/bip39_currency.dart +++ b/lib/wallets/crypto_currency/intermediate/bip39_currency.dart @@ -1,4 +1,4 @@ -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../crypto_currency.dart'; abstract class Bip39Currency extends CryptoCurrency { Bip39Currency(super.network); diff --git a/lib/wallets/crypto_currency/intermediate/bip39_hd_currency.dart b/lib/wallets/crypto_currency/intermediate/bip39_hd_currency.dart index 62be12f20..bbe5bd2ab 100644 --- a/lib/wallets/crypto_currency/intermediate/bip39_hd_currency.dart +++ b/lib/wallets/crypto_currency/intermediate/bip39_hd_currency.dart @@ -1,10 +1,10 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; import 'package:crypto/crypto.dart'; import 'package:flutter/foundation.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import 'bip39_currency.dart'; abstract class Bip39HDCurrency extends Bip39Currency { Bip39HDCurrency(super.network); diff --git a/lib/wallets/crypto_currency/intermediate/cryptonote_currency.dart b/lib/wallets/crypto_currency/intermediate/cryptonote_currency.dart index a513f84ae..b7bf7c645 100644 --- a/lib/wallets/crypto_currency/intermediate/cryptonote_currency.dart +++ b/lib/wallets/crypto_currency/intermediate/cryptonote_currency.dart @@ -1,5 +1,5 @@ -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../crypto_currency.dart'; abstract class CryptonoteCurrency extends CryptoCurrency { CryptonoteCurrency(super.network); diff --git a/lib/wallets/crypto_currency/intermediate/frost_currency.dart b/lib/wallets/crypto_currency/intermediate/frost_currency.dart index 0c10937fa..fd452bb62 100644 --- a/lib/wallets/crypto_currency/intermediate/frost_currency.dart +++ b/lib/wallets/crypto_currency/intermediate/frost_currency.dart @@ -1,7 +1,7 @@ import 'dart:typed_data'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../../utilities/amount/amount.dart'; +import '../crypto_currency.dart'; abstract class FrostCurrency extends CryptoCurrency { FrostCurrency(super.network); diff --git a/lib/wallets/crypto_currency/intermediate/nano_currency.dart b/lib/wallets/crypto_currency/intermediate/nano_currency.dart index 72aba78bd..a04cd57a0 100644 --- a/lib/wallets/crypto_currency/intermediate/nano_currency.dart +++ b/lib/wallets/crypto_currency/intermediate/nano_currency.dart @@ -1,5 +1,5 @@ import 'package:nanodart/nanodart.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_currency.dart'; +import 'bip39_currency.dart'; abstract class NanoCurrency extends Bip39Currency { NanoCurrency(super.network); diff --git a/lib/wallets/isar/models/frost_wallet_info.dart b/lib/wallets/isar/models/frost_wallet_info.dart index b5c7476d2..fd3d1a11a 100644 --- a/lib/wallets/isar/models/frost_wallet_info.dart +++ b/lib/wallets/isar/models/frost_wallet_info.dart @@ -1,5 +1,5 @@ import 'package:isar/isar.dart'; -import 'package:stackwallet/wallets/isar/isar_id_interface.dart'; +import '../isar_id_interface.dart'; part 'frost_wallet_info.g.dart'; diff --git a/lib/wallets/isar/models/token_wallet_info.dart b/lib/wallets/isar/models/token_wallet_info.dart index 4725a29a6..f14491b32 100644 --- a/lib/wallets/isar/models/token_wallet_info.dart +++ b/lib/wallets/isar/models/token_wallet_info.dart @@ -1,8 +1,8 @@ import 'package:isar/isar.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/wallets/isar/isar_id_interface.dart'; +import '../../../models/balance.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../utilities/amount/amount.dart'; +import '../isar_id_interface.dart'; part 'token_wallet_info.g.dart'; diff --git a/lib/wallets/isar/models/wallet_info.dart b/lib/wallets/isar/models/wallet_info.dart index f7a3692e0..8a1d1c5ff 100644 --- a/lib/wallets/isar/models/wallet_info.dart +++ b/lib/wallets/isar/models/wallet_info.dart @@ -1,12 +1,12 @@ import 'dart:convert'; import 'package:isar/isar.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/isar_id_interface.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info_meta.dart'; +import '../../../app_config.dart'; +import '../../../models/balance.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../isar_id_interface.dart'; +import 'wallet_info_meta.dart'; import 'package:uuid/uuid.dart'; part 'wallet_info.g.dart'; diff --git a/lib/wallets/isar/models/wallet_info_meta.dart b/lib/wallets/isar/models/wallet_info_meta.dart index 3d7fbf851..62d37b7d4 100644 --- a/lib/wallets/isar/models/wallet_info_meta.dart +++ b/lib/wallets/isar/models/wallet_info_meta.dart @@ -1,5 +1,5 @@ import 'package:isar/isar.dart'; -import 'package:stackwallet/wallets/isar/isar_id_interface.dart'; +import '../isar_id_interface.dart'; part 'wallet_info_meta.g.dart'; diff --git a/lib/wallets/isar/providers/all_wallets_info_provider.dart b/lib/wallets/isar/providers/all_wallets_info_provider.dart index f2efcc090..0acbae46c 100644 --- a/lib/wallets/isar/providers/all_wallets_info_provider.dart +++ b/lib/wallets/isar/providers/all_wallets_info_provider.dart @@ -3,10 +3,10 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../app_config.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../models/wallet_info.dart'; final pAllWalletsInfo = Provider((ref) { return ref.watch(_pAllWalletsInfo.select((value) => value.value)); diff --git a/lib/wallets/isar/providers/eth/current_token_wallet_provider.dart b/lib/wallets/isar/providers/eth/current_token_wallet_provider.dart index 78015afea..08bcf6a62 100644 --- a/lib/wallets/isar/providers/eth/current_token_wallet_provider.dart +++ b/lib/wallets/isar/providers/eth/current_token_wallet_provider.dart @@ -1,5 +1,5 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart'; +import '../../../wallet/impl/sub_wallets/eth_token_wallet.dart'; final tokenServiceStateProvider = StateProvider((ref) => null); diff --git a/lib/wallets/isar/providers/eth/token_balance_provider.dart b/lib/wallets/isar/providers/eth/token_balance_provider.dart index 617a11b44..741092387 100644 --- a/lib/wallets/isar/providers/eth/token_balance_provider.dart +++ b/lib/wallets/isar/providers/eth/token_balance_provider.dart @@ -1,10 +1,10 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/wallets/isar/models/token_wallet_info.dart'; -import 'package:stackwallet/wallets/isar/providers/util/watcher.dart'; +import '../../../../models/balance.dart'; +import '../../../../models/isar/models/isar_models.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../models/token_wallet_info.dart'; +import '../util/watcher.dart'; final _twiProvider = ChangeNotifierProvider.family( diff --git a/lib/wallets/isar/providers/favourite_wallets_provider.dart b/lib/wallets/isar/providers/favourite_wallets_provider.dart index 889ac396b..1f7eb798e 100644 --- a/lib/wallets/isar/providers/favourite_wallets_provider.dart +++ b/lib/wallets/isar/providers/favourite_wallets_provider.dart @@ -3,10 +3,10 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../app_config.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../models/wallet_info.dart'; class _Watcher extends ChangeNotifier { final bool isFavourite; diff --git a/lib/wallets/isar/providers/util/watcher.dart b/lib/wallets/isar/providers/util/watcher.dart index 2a6ab50e3..0208baca0 100644 --- a/lib/wallets/isar/providers/util/watcher.dart +++ b/lib/wallets/isar/providers/util/watcher.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/wallets/isar/isar_id_interface.dart'; +import '../../isar_id_interface.dart'; class Watcher extends ChangeNotifier { late final StreamSubscription _streamSubscription; diff --git a/lib/wallets/isar/providers/wallet_info_provider.dart b/lib/wallets/isar/providers/wallet_info_provider.dart index a8d4ba3f3..a3ec30e49 100644 --- a/lib/wallets/isar/providers/wallet_info_provider.dart +++ b/lib/wallets/isar/providers/wallet_info_provider.dart @@ -1,10 +1,10 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/isar/providers/util/watcher.dart'; +import '../../../models/balance.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../models/wallet_info.dart'; +import 'util/watcher.dart'; final _wiProvider = ChangeNotifierProvider.family( (ref, walletId) { diff --git a/lib/wallets/models/incomplete_frost_wallet.dart b/lib/wallets/models/incomplete_frost_wallet.dart index 015ca9fb9..0a8e67325 100644 --- a/lib/wallets/models/incomplete_frost_wallet.dart +++ b/lib/wallets/models/incomplete_frost_wallet.dart @@ -1,11 +1,11 @@ -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/services/node_service.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; +import '../../db/isar/main_db.dart'; +import '../../services/node_service.dart'; +import '../../utilities/flutter_secure_storage_interface.dart'; +import '../../utilities/prefs.dart'; +import '../isar/models/frost_wallet_info.dart'; +import '../isar/models/wallet_info.dart'; +import '../wallet/impl/bitcoin_frost_wallet.dart'; +import '../wallet/wallet.dart'; class IncompleteFrostWallet { WalletInfo? info; diff --git a/lib/wallets/models/tx_data.dart b/lib/wallets/models/tx_data.dart index d98dd088e..6a6008742 100644 --- a/lib/wallets/models/tx_data.dart +++ b/lib/wallets/models/tx_data.dart @@ -1,11 +1,11 @@ import 'package:cw_monero/pending_monero_transaction.dart'; import 'package:cw_wownero/pending_wownero_transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/paynym/paynym_account_lite.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/wallets/isar/models/spark_coin.dart'; +import '../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../models/isar/models/isar_models.dart'; +import '../../models/paynym/paynym_account_lite.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/enums/fee_rate_type_enum.dart'; +import '../isar/models/spark_coin.dart'; import 'package:tezart/tezart.dart' as tezart; import 'package:web3dart/web3dart.dart' as web3dart; diff --git a/lib/wallets/models/tx_recipient.dart b/lib/wallets/models/tx_recipient.dart index 92703caa8..8c5e9a9d4 100644 --- a/lib/wallets/models/tx_recipient.dart +++ b/lib/wallets/models/tx_recipient.dart @@ -1,4 +1,4 @@ -import 'package:stackwallet/utilities/amount/amount.dart'; +import '../../utilities/amount/amount.dart'; class TxRecipient { final String address; diff --git a/lib/wallets/wallet/impl/banano_wallet.dart b/lib/wallets/wallet/impl/banano_wallet.dart index 88e076660..044e31efd 100644 --- a/lib/wallets/wallet/impl/banano_wallet.dart +++ b/lib/wallets/wallet/impl/banano_wallet.dart @@ -1,9 +1,9 @@ -import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart'; +import '../../crypto_currency/coins/banano.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/intermediate/nano_currency.dart'; +import '../../isar/models/wallet_info.dart'; +import '../intermediate/bip39_wallet.dart'; +import '../wallet_mixin_interfaces/nano_interface.dart'; class BananoWallet extends Bip39Wallet with NanoInterface { BananoWallet(CryptoCurrencyNetwork network) : super(Banano(network)); diff --git a/lib/wallets/wallet/impl/bitcoin_frost_wallet.dart b/lib/wallets/wallet/impl/bitcoin_frost_wallet.dart index ea10a3292..953a1f0cf 100644 --- a/lib/wallets/wallet/impl/bitcoin_frost_wallet.dart +++ b/lib/wallets/wallet/impl/bitcoin_frost_wallet.dart @@ -5,28 +5,28 @@ import 'package:flutter/foundation.dart'; import 'package:frostdart/frostdart.dart' as frost; import 'package:frostdart/frostdart_bindings_generated.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart'; -import 'package:stackwallet/electrumx_rpc/electrumx_client.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/paymint/fee_object_model.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/services/frost.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/frost_currency.dart'; -import 'package:stackwallet/wallets/isar/models/frost_wallet_info.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; +import '../../../electrumx_rpc/cached_electrumx_client.dart'; +import '../../../electrumx_rpc/electrumx_client.dart'; +import '../../../models/balance.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/blockchain_data/utxo.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/paymint/fee_object_model.dart'; +import '../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../services/event_bus/global_event_bus.dart'; +import '../../../services/frost.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/extensions/extensions.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/coins/bitcoin_frost.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/intermediate/frost_currency.dart'; +import '../../isar/models/frost_wallet_info.dart'; +import '../../models/tx_data.dart'; +import '../wallet.dart'; class BitcoinFrostWallet extends Wallet { BitcoinFrostWallet(CryptoCurrencyNetwork network) diff --git a/lib/wallets/wallet/impl/bitcoin_wallet.dart b/lib/wallets/wallet/impl/bitcoin_wallet.dart index 15fd58fcc..207ca30fc 100644 --- a/lib/wallets/wallet/impl/bitcoin_wallet.dart +++ b/lib/wallets/wallet/impl/bitcoin_wallet.dart @@ -1,13 +1,13 @@ import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/paynym_currency_interface.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../crypto_currency/coins/bitcoin.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/paynym_currency_interface.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import '../wallet_mixin_interfaces/coin_control_interface.dart'; +import '../wallet_mixin_interfaces/electrumx_interface.dart'; +import '../wallet_mixin_interfaces/paynym_interface.dart'; class BitcoinWallet extends Bip39HDWallet with ElectrumXInterface, CoinControlInterface, PaynymInterface { diff --git a/lib/wallets/wallet/impl/bitcoincash_wallet.dart b/lib/wallets/wallet/impl/bitcoincash_wallet.dart index af0d1e3d6..45a81afd2 100644 --- a/lib/wallets/wallet/impl/bitcoincash_wallet.dart +++ b/lib/wallets/wallet/impl/bitcoincash_wallet.dart @@ -1,25 +1,25 @@ import 'package:bitbox/bitbox.dart' as bitbox; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/services/coins/bitcoincash/bch_utils.dart'; -import 'package:stackwallet/services/coins/bitcoincash/cashtokens.dart' +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../services/coins/bitcoincash/bch_utils.dart'; +import '../../../services/coins/bitcoincash/cashtokens.dart' as cash_tokens; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../../../utilities/extensions/extensions.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/coins/bitcoincash.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import '../wallet_mixin_interfaces/bcash_interface.dart'; +import '../wallet_mixin_interfaces/cash_fusion_interface.dart'; +import '../wallet_mixin_interfaces/coin_control_interface.dart'; +import '../wallet_mixin_interfaces/electrumx_interface.dart'; class BitcoincashWallet extends Bip39HDWallet diff --git a/lib/wallets/wallet/impl/dogecoin_wallet.dart b/lib/wallets/wallet/impl/dogecoin_wallet.dart index a5f99fdbe..f91cda4e5 100644 --- a/lib/wallets/wallet/impl/dogecoin_wallet.dart +++ b/lib/wallets/wallet/impl/dogecoin_wallet.dart @@ -1,18 +1,18 @@ import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/extensions/extensions.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/coins/dogecoin.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import '../wallet_mixin_interfaces/coin_control_interface.dart'; +import '../wallet_mixin_interfaces/electrumx_interface.dart'; class DogecoinWallet extends Bip39HDWallet with ElectrumXInterface, CoinControlInterface { diff --git a/lib/wallets/wallet/impl/ecash_wallet.dart b/lib/wallets/wallet/impl/ecash_wallet.dart index e17525756..2a0eeb1e8 100644 --- a/lib/wallets/wallet/impl/ecash_wallet.dart +++ b/lib/wallets/wallet/impl/ecash_wallet.dart @@ -1,25 +1,25 @@ import 'package:bitbox/bitbox.dart' as bitbox; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/services/coins/bitcoincash/bch_utils.dart'; -import 'package:stackwallet/services/coins/bitcoincash/cashtokens.dart' +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../services/coins/bitcoincash/bch_utils.dart'; +import '../../../services/coins/bitcoincash/cashtokens.dart' as cash_tokens; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../../../utilities/extensions/extensions.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/coins/ecash.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import '../wallet_mixin_interfaces/bcash_interface.dart'; +import '../wallet_mixin_interfaces/cash_fusion_interface.dart'; +import '../wallet_mixin_interfaces/coin_control_interface.dart'; +import '../wallet_mixin_interfaces/electrumx_interface.dart'; class EcashWallet extends Bip39HDWallet with diff --git a/lib/wallets/wallet/impl/epiccash_wallet.dart b/lib/wallets/wallet/impl/epiccash_wallet.dart index 8d9defe77..62b43ff1d 100644 --- a/lib/wallets/wallet/impl/epiccash_wallet.dart +++ b/lib/wallets/wallet/impl/epiccash_wallet.dart @@ -9,32 +9,32 @@ import 'package:flutter_libepiccash/models/transaction.dart' as epic_models; import 'package:isar/isar.dart'; import 'package:mutex/mutex.dart'; import 'package:stack_wallet_backup/generate_password.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/epicbox_config_model.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/models/paymint/fee_object_model.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; -import 'package:stackwallet/services/event_bus/events/global/blocks_remaining_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/node_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/refresh_percent_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/default_epicboxes.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; -import 'package:stackwallet/utilities/test_epic_box_connection.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_wallet.dart'; -import 'package:stackwallet/wallets/wallet/supporting/epiccash_wallet_info_extension.dart'; +import '../../../models/balance.dart'; +import '../../../models/epicbox_config_model.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/node_model.dart'; +import '../../../models/paymint/fee_object_model.dart'; +import '../../../pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; +import '../../../services/event_bus/events/global/blocks_remaining_event.dart'; +import '../../../services/event_bus/events/global/node_connection_status_changed_event.dart'; +import '../../../services/event_bus/events/global/refresh_percent_changed_event.dart'; +import '../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../services/event_bus/global_event_bus.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/default_epicboxes.dart'; +import '../../../utilities/flutter_secure_storage_interface.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/stack_file_system.dart'; +import '../../../utilities/test_epic_box_connection.dart'; +import '../../crypto_currency/coins/epiccash.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/bip39_wallet.dart'; +import '../supporting/epiccash_wallet_info_extension.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; // diff --git a/lib/wallets/wallet/impl/ethereum_wallet.dart b/lib/wallets/wallet/impl/ethereum_wallet.dart index 38b9710e7..05b075868 100644 --- a/lib/wallets/wallet/impl/ethereum_wallet.dart +++ b/lib/wallets/wallet/impl/ethereum_wallet.dart @@ -5,25 +5,25 @@ import 'package:decimal/decimal.dart'; import 'package:ethereum_addresses/ethereum_addresses.dart'; import 'package:http/http.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/paymint/fee_object_model.dart'; -import 'package:stackwallet/services/ethereum/ethereum_api.dart'; -import 'package:stackwallet/services/event_bus/events/global/updated_in_background_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/eth_commons.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/private_key_interface.dart'; +import '../../../models/balance.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/paymint/fee_object_model.dart'; +import '../../../services/ethereum/ethereum_api.dart'; +import '../../../services/event_bus/events/global/updated_in_background_event.dart'; +import '../../../services/event_bus/global_event_bus.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/fee_rate_type_enum.dart'; +import '../../../utilities/eth_commons.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/coins/ethereum.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/bip39_wallet.dart'; +import '../wallet_mixin_interfaces/private_key_interface.dart'; import 'package:web3dart/web3dart.dart' as web3; // Eth can not use tor with web3dart diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index d38e99287..0be178086 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -5,24 +5,24 @@ import 'dart:math'; import 'package:decimal/decimal.dart'; import 'package:flutter_libsparkmobile/flutter_libsparkmobile.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/isar/models/spark_coin.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/extensions/extensions.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/util.dart'; +import '../../crypto_currency/coins/firo.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../../isar/models/spark_coin.dart'; +import '../../isar/models/wallet_info.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import '../wallet_mixin_interfaces/electrumx_interface.dart'; +import '../wallet_mixin_interfaces/lelantus_interface.dart'; +import '../wallet_mixin_interfaces/spark_interface.dart'; const sparkStartBlock = 819300; // (approx 18 Jan 2024) diff --git a/lib/wallets/wallet/impl/litecoin_wallet.dart b/lib/wallets/wallet/impl/litecoin_wallet.dart index a8825d003..0cce6fd8d 100644 --- a/lib/wallets/wallet/impl/litecoin_wallet.dart +++ b/lib/wallets/wallet/impl/litecoin_wallet.dart @@ -1,19 +1,19 @@ import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/ordinal.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/litecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/isar/ordinal.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/coins/litecoin.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import '../wallet_mixin_interfaces/coin_control_interface.dart'; +import '../wallet_mixin_interfaces/electrumx_interface.dart'; +import '../wallet_mixin_interfaces/ordinals_interface.dart'; class LitecoinWallet extends Bip39HDWallet diff --git a/lib/wallets/wallet/impl/monero_wallet.dart b/lib/wallets/wallet/impl/monero_wallet.dart index e0d70db36..7c1007064 100644 --- a/lib/wallets/wallet/impl/monero_wallet.dart +++ b/lib/wallets/wallet/impl/monero_wallet.dart @@ -18,18 +18,18 @@ import 'package:flutter_libmonero/core/wallet_creation_service.dart'; import 'package:flutter_libmonero/monero/monero.dart' as xmr_dart; import 'package:flutter_libmonero/view_model/send/output.dart' as monero_output; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/cryptonote_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; +import '../../../db/hive/db.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/fee_rate_type_enum.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/coins/monero.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/cryptonote_wallet.dart'; +import '../wallet.dart'; +import '../wallet_mixin_interfaces/cw_based_interface.dart'; import 'package:tuple/tuple.dart'; class MoneroWallet extends CryptonoteWallet with CwBasedInterface { diff --git a/lib/wallets/wallet/impl/namecoin_wallet.dart b/lib/wallets/wallet/impl/namecoin_wallet.dart index dee5c1d13..48321a888 100644 --- a/lib/wallets/wallet/impl/namecoin_wallet.dart +++ b/lib/wallets/wallet/impl/namecoin_wallet.dart @@ -1,17 +1,17 @@ import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/namecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/coins/namecoin.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import '../wallet_mixin_interfaces/coin_control_interface.dart'; +import '../wallet_mixin_interfaces/electrumx_interface.dart'; class NamecoinWallet extends Bip39HDWallet with ElectrumXInterface, CoinControlInterface { diff --git a/lib/wallets/wallet/impl/nano_wallet.dart b/lib/wallets/wallet/impl/nano_wallet.dart index c53d6cede..e541ad1f7 100644 --- a/lib/wallets/wallet/impl/nano_wallet.dart +++ b/lib/wallets/wallet/impl/nano_wallet.dart @@ -1,8 +1,8 @@ -import 'package:stackwallet/wallets/crypto_currency/coins/nano.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart'; +import '../../crypto_currency/coins/nano.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/intermediate/nano_currency.dart'; +import '../intermediate/bip39_wallet.dart'; +import '../wallet_mixin_interfaces/nano_interface.dart'; class NanoWallet extends Bip39Wallet with NanoInterface { NanoWallet(CryptoCurrencyNetwork network) : super(Nano(network)); diff --git a/lib/wallets/wallet/impl/particl_wallet.dart b/lib/wallets/wallet/impl/particl_wallet.dart index 5b9e8f714..760c88e97 100644 --- a/lib/wallets/wallet/impl/particl_wallet.dart +++ b/lib/wallets/wallet/impl/particl_wallet.dart @@ -2,23 +2,23 @@ import 'dart:typed_data'; import 'package:bitcoindart/bitcoindart.dart' as bitcoindart; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/signing_data.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/utilities/extensions/impl/uint8_list.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/particl.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/signing_data.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../../../utilities/extensions/impl/uint8_list.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/coins/particl.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import '../wallet_mixin_interfaces/coin_control_interface.dart'; +import '../wallet_mixin_interfaces/electrumx_interface.dart'; class ParticlWallet extends Bip39HDWallet diff --git a/lib/wallets/wallet/impl/peercoin_wallet.dart b/lib/wallets/wallet/impl/peercoin_wallet.dart index 206b78ed3..b7297dd47 100644 --- a/lib/wallets/wallet/impl/peercoin_wallet.dart +++ b/lib/wallets/wallet/impl/peercoin_wallet.dart @@ -1,17 +1,17 @@ import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/peercoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/coins/peercoin.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import '../wallet_mixin_interfaces/coin_control_interface.dart'; +import '../wallet_mixin_interfaces/electrumx_interface.dart'; class PeercoinWallet extends Bip39HDWallet diff --git a/lib/wallets/wallet/impl/solana_wallet.dart b/lib/wallets/wallet/impl/solana_wallet.dart index 801e7e613..f194dcfee 100644 --- a/lib/wallets/wallet/impl/solana_wallet.dart +++ b/lib/wallets/wallet/impl/solana_wallet.dart @@ -7,20 +7,20 @@ import 'package:isar/isar.dart'; import 'package:socks5_proxy/socks_client.dart'; import 'package:solana/dto.dart'; import 'package:solana/solana.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart' +import '../../../models/balance.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart' as isar; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/models/paymint/fee_object_model.dart'; -import 'package:stackwallet/services/node_service.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/solana.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_wallet.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../models/node_model.dart'; +import '../../../models/paymint/fee_object_model.dart'; +import '../../../services/node_service.dart'; +import '../../../services/tor_service.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/coins/solana.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/bip39_wallet.dart'; import 'package:tuple/tuple.dart'; class SolanaWallet extends Bip39Wallet { diff --git a/lib/wallets/wallet/impl/stellar_wallet.dart b/lib/wallets/wallet/impl/stellar_wallet.dart index 657fd7676..3742bc992 100644 --- a/lib/wallets/wallet/impl/stellar_wallet.dart +++ b/lib/wallets/wallet/impl/stellar_wallet.dart @@ -5,25 +5,25 @@ import 'dart:io'; import 'package:isar/isar.dart'; import 'package:mutex/mutex.dart'; import 'package:socks5_proxy/socks.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/paymint/fee_object_model.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/test_stellar_node_connection.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_wallet.dart'; +import '../../../models/balance.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/paymint/fee_object_model.dart'; +import '../../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../../../services/event_bus/events/global/tor_status_changed_event.dart'; +import '../../../services/event_bus/global_event_bus.dart'; +import '../../../services/tor_service.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/fee_rate_type_enum.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/test_stellar_node_connection.dart'; +import '../../crypto_currency/coins/stellar.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/bip39_wallet.dart'; import 'package:stellar_flutter_sdk/stellar_flutter_sdk.dart' as stellar; class StellarWallet extends Bip39Wallet { diff --git a/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart b/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart index bede12bab..0ed7c55b7 100644 --- a/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart +++ b/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart @@ -2,25 +2,25 @@ import 'dart:convert'; import 'package:ethereum_addresses/ethereum_addresses.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/dto/ethereum/eth_token_tx_dto.dart'; -import 'package:stackwallet/dto/ethereum/eth_token_tx_extra_dto.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/models/paymint/fee_object_model.dart'; -import 'package:stackwallet/services/ethereum/ethereum_api.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/eth_commons.dart'; -import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/isar/models/token_wallet_info.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/impl/ethereum_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; +import '../../../../dto/ethereum/eth_token_tx_dto.dart'; +import '../../../../dto/ethereum/eth_token_tx_extra_dto.dart'; +import '../../../../models/balance.dart'; +import '../../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../../models/isar/models/ethereum/eth_contract.dart'; +import '../../../../models/paymint/fee_object_model.dart'; +import '../../../../services/ethereum/ethereum_api.dart'; +import '../../../../utilities/amount/amount.dart'; +import '../../../../utilities/enums/fee_rate_type_enum.dart'; +import '../../../../utilities/eth_commons.dart'; +import '../../../../utilities/extensions/extensions.dart'; +import '../../../../utilities/logger.dart'; +import '../../../isar/models/token_wallet_info.dart'; +import '../../../models/tx_data.dart'; +import '../ethereum_wallet.dart'; +import '../../wallet.dart'; import 'package:web3dart/web3dart.dart' as web3dart; class EthTokenWallet extends Wallet { diff --git a/lib/wallets/wallet/impl/tezos_wallet.dart b/lib/wallets/wallet/impl/tezos_wallet.dart index 8506f7ba5..ead0247aa 100644 --- a/lib/wallets/wallet/impl/tezos_wallet.dart +++ b/lib/wallets/wallet/impl/tezos_wallet.dart @@ -1,24 +1,24 @@ import 'dart:io'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/models/paymint/fee_object_model.dart'; -import 'package:stackwallet/services/node_service.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/extensions/impl/string.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/api/tezos/tezos_account.dart'; -import 'package:stackwallet/wallets/api/tezos/tezos_api.dart'; -import 'package:stackwallet/wallets/api/tezos/tezos_rpc_api.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_wallet.dart'; +import '../../../models/balance.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/node_model.dart'; +import '../../../models/paymint/fee_object_model.dart'; +import '../../../services/node_service.dart'; +import '../../../services/tor_service.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/extensions/impl/string.dart'; +import '../../../utilities/logger.dart'; +import '../../api/tezos/tezos_account.dart'; +import '../../api/tezos/tezos_api.dart'; +import '../../api/tezos/tezos_rpc_api.dart'; +import '../../crypto_currency/coins/tezos.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../isar/models/wallet_info.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/bip39_wallet.dart'; import 'package:tezart/tezart.dart' as tezart; import 'package:tuple/tuple.dart'; diff --git a/lib/wallets/wallet/impl/wownero_wallet.dart b/lib/wallets/wallet/impl/wownero_wallet.dart index 6d39f5cfa..48e2c8508 100644 --- a/lib/wallets/wallet/impl/wownero_wallet.dart +++ b/lib/wallets/wallet/impl/wownero_wallet.dart @@ -20,18 +20,18 @@ import 'package:flutter_libmonero/view_model/send/output.dart' as wownero_output; import 'package:flutter_libmonero/wownero/wownero.dart' as wow_dart; import 'package:isar/isar.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/cryptonote_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; +import '../../../db/hive/db.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/fee_rate_type_enum.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/coins/wownero.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/cryptonote_wallet.dart'; +import '../wallet.dart'; +import '../wallet_mixin_interfaces/cw_based_interface.dart'; import 'package:tuple/tuple.dart'; class WowneroWallet extends CryptonoteWallet with CwBasedInterface { diff --git a/lib/wallets/wallet/intermediate/bip39_hd_wallet.dart b/lib/wallets/wallet/intermediate/bip39_hd_wallet.dart index 230d8e8a4..c276d758a 100644 --- a/lib/wallets/wallet/intermediate/bip39_hd_wallet.dart +++ b/lib/wallets/wallet/intermediate/bip39_hd_wallet.dart @@ -1,13 +1,13 @@ import 'package:bip39/bip39.dart' as bip39; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/multi_address_interface.dart'; +import '../../../models/balance.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../../crypto_currency/intermediate/bip39_hd_currency.dart'; +import 'bip39_wallet.dart'; +import '../wallet_mixin_interfaces/multi_address_interface.dart'; abstract class Bip39HDWallet extends Bip39Wallet with MultiAddressInterface { diff --git a/lib/wallets/wallet/intermediate/bip39_wallet.dart b/lib/wallets/wallet/intermediate/bip39_wallet.dart index 13842e0dc..0d302d0a9 100644 --- a/lib/wallets/wallet/intermediate/bip39_wallet.dart +++ b/lib/wallets/wallet/intermediate/bip39_wallet.dart @@ -1,8 +1,8 @@ import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_currency.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../crypto_currency/intermediate/bip39_currency.dart'; +import '../wallet.dart'; +import '../wallet_mixin_interfaces/mnemonic_interface.dart'; abstract class Bip39Wallet extends Wallet with MnemonicInterface { diff --git a/lib/wallets/wallet/intermediate/cryptonote_wallet.dart b/lib/wallets/wallet/intermediate/cryptonote_wallet.dart index 61a86aece..95790a169 100644 --- a/lib/wallets/wallet/intermediate/cryptonote_wallet.dart +++ b/lib/wallets/wallet/intermediate/cryptonote_wallet.dart @@ -1,9 +1,9 @@ import 'dart:async'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/cryptonote_currency.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; +import '../../crypto_currency/intermediate/cryptonote_currency.dart'; +import '../../models/tx_data.dart'; +import '../wallet.dart'; +import '../wallet_mixin_interfaces/mnemonic_interface.dart'; abstract class CryptonoteWallet extends Wallet with MnemonicInterface { diff --git a/lib/wallets/wallet/supporting/epiccash_wallet_info_extension.dart b/lib/wallets/wallet/supporting/epiccash_wallet_info_extension.dart index 8d71c655f..d913df779 100644 --- a/lib/wallets/wallet/supporting/epiccash_wallet_info_extension.dart +++ b/lib/wallets/wallet/supporting/epiccash_wallet_info_extension.dart @@ -1,8 +1,8 @@ import 'dart:convert'; import 'package:isar/isar.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; +import '../../../utilities/logger.dart'; +import '../../isar/models/wallet_info.dart'; extension EpiccashWalletInfoExtension on WalletInfo { ExtraEpiccashWalletInfo? get epicData { diff --git a/lib/wallets/wallet/wallet.dart b/lib/wallets/wallet/wallet.dart index 5654b8ccc..36d9130b3 100644 --- a/lib/wallets/wallet/wallet.dart +++ b/lib/wallets/wallet/wallet.dart @@ -3,73 +3,73 @@ import 'dart:async'; import 'package:isar/isar.dart'; import 'package:meta/meta.dart'; import 'package:mutex/mutex.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/models/paymint/fee_object_model.dart'; -import 'package:stackwallet/services/event_bus/events/global/node_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/refresh_percent_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/services/node_service.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; -import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/paynym_is_api.dart'; -import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/litecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/namecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/nano.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/particl.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/peercoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/solana.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/models/wallet_info.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/impl/banano_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoincash_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/dogecoin_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/ecash_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/epiccash_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/ethereum_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/litecoin_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/monero_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/namecoin_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/nano_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/particl_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/peercoin_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/solana_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/stellar_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/tezos_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/wownero_wallet.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/cryptonote_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/multi_address_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/private_key_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../db/isar/main_db.dart'; +import '../../models/isar/models/blockchain_data/address.dart'; +import '../../models/isar/models/ethereum/eth_contract.dart'; +import '../../models/node_model.dart'; +import '../../models/paymint/fee_object_model.dart'; +import '../../services/event_bus/events/global/node_connection_status_changed_event.dart'; +import '../../services/event_bus/events/global/refresh_percent_changed_event.dart'; +import '../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../services/event_bus/global_event_bus.dart'; +import '../../services/node_service.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/enums/sync_type_enum.dart'; +import '../../utilities/flutter_secure_storage_interface.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/paynym_is_api.dart'; +import '../../utilities/prefs.dart'; +import '../crypto_currency/coins/banano.dart'; +import '../crypto_currency/coins/bitcoin.dart'; +import '../crypto_currency/coins/bitcoin_frost.dart'; +import '../crypto_currency/coins/bitcoincash.dart'; +import '../crypto_currency/coins/dogecoin.dart'; +import '../crypto_currency/coins/ecash.dart'; +import '../crypto_currency/coins/epiccash.dart'; +import '../crypto_currency/coins/ethereum.dart'; +import '../crypto_currency/coins/firo.dart'; +import '../crypto_currency/coins/litecoin.dart'; +import '../crypto_currency/coins/monero.dart'; +import '../crypto_currency/coins/namecoin.dart'; +import '../crypto_currency/coins/nano.dart'; +import '../crypto_currency/coins/particl.dart'; +import '../crypto_currency/coins/peercoin.dart'; +import '../crypto_currency/coins/solana.dart'; +import '../crypto_currency/coins/stellar.dart'; +import '../crypto_currency/coins/tezos.dart'; +import '../crypto_currency/coins/wownero.dart'; +import '../crypto_currency/crypto_currency.dart'; +import '../isar/models/wallet_info.dart'; +import '../models/tx_data.dart'; +import 'impl/banano_wallet.dart'; +import 'impl/bitcoin_frost_wallet.dart'; +import 'impl/bitcoin_wallet.dart'; +import 'impl/bitcoincash_wallet.dart'; +import 'impl/dogecoin_wallet.dart'; +import 'impl/ecash_wallet.dart'; +import 'impl/epiccash_wallet.dart'; +import 'impl/ethereum_wallet.dart'; +import 'impl/firo_wallet.dart'; +import 'impl/litecoin_wallet.dart'; +import 'impl/monero_wallet.dart'; +import 'impl/namecoin_wallet.dart'; +import 'impl/nano_wallet.dart'; +import 'impl/particl_wallet.dart'; +import 'impl/peercoin_wallet.dart'; +import 'impl/solana_wallet.dart'; +import 'impl/stellar_wallet.dart'; +import 'impl/sub_wallets/eth_token_wallet.dart'; +import 'impl/tezos_wallet.dart'; +import 'impl/wownero_wallet.dart'; +import 'intermediate/cryptonote_wallet.dart'; +import 'wallet_mixin_interfaces/electrumx_interface.dart'; +import 'wallet_mixin_interfaces/lelantus_interface.dart'; +import 'wallet_mixin_interfaces/mnemonic_interface.dart'; +import 'wallet_mixin_interfaces/multi_address_interface.dart'; +import 'wallet_mixin_interfaces/paynym_interface.dart'; +import 'wallet_mixin_interfaces/private_key_interface.dart'; +import 'wallet_mixin_interfaces/spark_interface.dart'; abstract class Wallet { // default to Transaction class. For TransactionV2 set to 2 diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart index 6db46e043..a7a75e397 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart @@ -1,17 +1,17 @@ import 'package:bitbox/bitbox.dart' as bitbox; import 'package:bitbox/src/utils/network.dart' as bitbox_utils; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/signing_data.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../models/signing_data.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import 'electrumx_interface.dart'; mixin BCashInterface on Bip39HDWallet, ElectrumXInterface { diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart index a4395ea7f..4858c8bdc 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart @@ -5,20 +5,20 @@ import 'package:bitbox/bitbox.dart' as bitbox; import 'package:flutter/foundation.dart'; import 'package:fusiondart/fusiondart.dart' as fusion; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/fusion_progress_ui_state.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart'; -import 'package:stackwallet/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart'; -import 'package:stackwallet/services/fusion_tor_service.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../models/fusion_progress_ui_state.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/blockchain_data/utxo.dart'; +import '../../../pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart'; +import '../../../services/fusion_tor_service.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/stack_file_system.dart'; +import '../../crypto_currency/coins/bitcoincash.dart'; +import '../../crypto_currency/coins/ecash.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import 'coin_control_interface.dart'; +import 'electrumx_interface.dart'; const String kReservedFusionAddress = "reserved_fusion_address"; diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart index 6cd810ba7..36cd710fd 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart @@ -1,5 +1,5 @@ -import 'package:stackwallet/wallets/crypto_currency/intermediate/bip39_hd_currency.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; +import '../../crypto_currency/intermediate/bip39_hd_currency.dart'; +import '../intermediate/bip39_hd_wallet.dart'; mixin CoinControlInterface on Bip39HDWallet { // any required here? diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart index 585d79bf1..80a7f6d31 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart @@ -11,20 +11,20 @@ import 'package:cw_core/wallet_type.dart'; import 'package:flutter_libmonero/core/key_service.dart'; import 'package:isar/isar.dart'; import 'package:mutex/mutex.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/paymint/fee_object_model.dart'; -import 'package:stackwallet/services/event_bus/events/global/blocks_remaining_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/refresh_percent_changed_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/updated_in_background_event.dart'; -import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/stack_file_system.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/cryptonote_currency.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/cryptonote_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/multi_address_interface.dart'; +import '../../../models/balance.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/paymint/fee_object_model.dart'; +import '../../../services/event_bus/events/global/blocks_remaining_event.dart'; +import '../../../services/event_bus/events/global/refresh_percent_changed_event.dart'; +import '../../../services/event_bus/events/global/updated_in_background_event.dart'; +import '../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../services/event_bus/global_event_bus.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/stack_file_system.dart'; +import '../../crypto_currency/intermediate/cryptonote_currency.dart'; +import '../intermediate/cryptonote_wallet.dart'; +import 'multi_address_interface.dart'; mixin CwBasedInterface on CryptonoteWallet implements MultiAddressInterface { diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart index 1ce6c7717..eda467a6a 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart @@ -4,28 +4,28 @@ import 'dart:typed_data'; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; import 'package:isar/isar.dart'; -import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart'; -import 'package:stackwallet/electrumx_rpc/client_manager.dart'; -import 'package:stackwallet/electrumx_rpc/electrumx_client.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/paymint/fee_object_model.dart'; -import 'package:stackwallet/models/signing_data.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/paynym_is_api.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/impl/bitcoin_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/peercoin_wallet.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../../electrumx_rpc/cached_electrumx_client.dart'; +import '../../../electrumx_rpc/client_manager.dart'; +import '../../../electrumx_rpc/electrumx_client.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../models/paymint/fee_object_model.dart'; +import '../../../models/signing_data.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../../../utilities/enums/fee_rate_type_enum.dart'; +import '../../../utilities/extensions/extensions.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/paynym_is_api.dart'; +import '../../crypto_currency/coins/firo.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../../models/tx_data.dart'; +import '../impl/bitcoin_wallet.dart'; +import '../impl/peercoin_wallet.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import 'paynym_interface.dart'; mixin ElectrumXInterface on Bip39HDWallet { diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart index f182c8ca1..26410c526 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart @@ -6,20 +6,20 @@ import 'package:bitcoindart/bitcoindart.dart' as bitcoindart; import 'package:decimal/decimal.dart'; import 'package:isar/isar.dart'; import 'package:lelantus/lelantus.dart' as lelantus; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/lelantus_fee_data.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/utilities/extensions/impl/uint8_list.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/api/lelantus_ffi_wrapper.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../models/balance.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../models/lelantus_fee_data.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../../../utilities/extensions/impl/uint8_list.dart'; +import '../../../utilities/format.dart'; +import '../../../utilities/logger.dart'; +import '../../api/lelantus_ffi_wrapper.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import 'electrumx_interface.dart'; import 'package:tuple/tuple.dart'; mixin LelantusInterface diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart index 2f7db193c..dc756bd33 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart @@ -1,6 +1,6 @@ -import 'package:stackwallet/exceptions/sw_exception.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; +import '../../../exceptions/sw_exception.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../wallet.dart'; mixin MnemonicInterface on Wallet { Future getMnemonic() async { diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/multi_address_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/multi_address_interface.dart index 7de2293be..42a663167 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/multi_address_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/multi_address_interface.dart @@ -1,5 +1,5 @@ -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../wallet.dart'; mixin MultiAddressInterface on Wallet { Future generateNewReceivingAddress(); diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart index f787b91f7..9287fe261 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart @@ -3,21 +3,21 @@ import 'dart:convert'; import 'package:isar/isar.dart'; import 'package:nanodart/nanodart.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/address.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/models/paymint/fee_object_model.dart'; -import 'package:stackwallet/networking/http.dart'; -import 'package:stackwallet/services/nano_api.dart'; -import 'package:stackwallet/services/node_service.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/extensions/impl/string.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/intermediate/nano_currency.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_wallet.dart'; +import '../../../models/balance.dart'; +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/node_model.dart'; +import '../../../models/paymint/fee_object_model.dart'; +import '../../../networking/http.dart'; +import '../../../services/nano_api.dart'; +import '../../../services/node_service.dart'; +import '../../../services/tor_service.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/extensions/impl/string.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/intermediate/nano_currency.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/bip39_wallet.dart'; import 'package:tuple/tuple.dart'; const _kWorkServer = "https://rpc.nano.to"; diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart index 09fe10f52..da0a36c70 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart @@ -1,11 +1,11 @@ import 'package:isar/isar.dart'; -import 'package:stackwallet/dto/ordinals/inscription_data.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart'; -import 'package:stackwallet/models/isar/ordinal.dart'; -import 'package:stackwallet/services/litescribe_api.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../dto/ordinals/inscription_data.dart'; +import '../../../models/isar/models/blockchain_data/utxo.dart'; +import '../../../models/isar/ordinal.dart'; +import '../../../services/litescribe_api.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import 'electrumx_interface.dart'; mixin OrdinalsInterface on ElectrumXInterface { diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart index 213c9fd09..b2114b09b 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart @@ -10,26 +10,26 @@ import 'package:bitcoindart/src/utils/script.dart' as bscript; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; import 'package:isar/isar.dart'; import 'package:pointycastle/digests/sha256.dart'; -import 'package:stackwallet/exceptions/wallet/insufficient_balance_exception.dart'; -import 'package:stackwallet/exceptions/wallet/paynym_send_exception.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/signing_data.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/bip32_utils.dart'; -import 'package:stackwallet/utilities/bip47_utils.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/paynym_currency_interface.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../exceptions/wallet/insufficient_balance_exception.dart'; +import '../../../exceptions/wallet/paynym_send_exception.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../models/signing_data.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/bip32_utils.dart'; +import '../../../utilities/bip47_utils.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../../../utilities/extensions/extensions.dart'; +import '../../../utilities/format.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/coins/dogecoin.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/paynym_currency_interface.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import 'electrumx_interface.dart'; import 'package:tuple/tuple.dart'; const String kPCodeKeyPrefix = "pCode_key_"; diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/private_key_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/private_key_interface.dart index b5095cda1..eee42842a 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/private_key_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/private_key_interface.dart @@ -1,6 +1,6 @@ -import 'package:stackwallet/exceptions/sw_exception.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; +import '../../../exceptions/sw_exception.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../wallet.dart'; mixin PrivateKeyInterface on Wallet { Future getPrivateKey() async { diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index ece37026e..08131fabf 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -6,22 +6,22 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_libsparkmobile/flutter_libsparkmobile.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/balance.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/input_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/output_v2.dart'; -import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/models/signing_data.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/enums/derive_path_type_enum.dart'; -import 'package:stackwallet/utilities/extensions/extensions.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import 'package:stackwallet/wallets/isar/models/spark_coin.dart'; -import 'package:stackwallet/wallets/models/tx_data.dart'; -import 'package:stackwallet/wallets/wallet/intermediate/bip39_hd_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart'; +import '../../../models/balance.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../models/signing_data.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../../../utilities/extensions/extensions.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../../isar/models/spark_coin.dart'; +import '../../models/tx_data.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import 'electrumx_interface.dart'; const kDefaultSparkIndex = 1; diff --git a/lib/widgets/address_book_card.dart b/lib/widgets/address_book_card.dart index f7715410d..0fc979b31 100644 --- a/lib/widgets/address_book_card.dart +++ b/lib/widgets/address_book_card.dart @@ -13,20 +13,20 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/isar/models/contact_entry.dart'; -import 'package:stackwallet/pages/address_book_views/subviews/contact_popup.dart'; -import 'package:stackwallet/providers/global/address_book_service_provider.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/expandable.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../models/isar/models/contact_entry.dart'; +import '../pages/address_book_views/subviews/contact_popup.dart'; +import '../providers/global/address_book_service_provider.dart'; +import '../app_config.dart'; +import '../themes/stack_colors.dart'; +import '../themes/theme_providers.dart'; +import '../utilities/assets.dart'; +import '../utilities/constants.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import 'conditional_parent.dart'; +import 'expandable.dart'; +import 'rounded_white_container.dart'; class AddressBookCard extends ConsumerStatefulWidget { const AddressBookCard({ diff --git a/lib/widgets/animated_widgets/rotating_arrows.dart b/lib/widgets/animated_widgets/rotating_arrows.dart index df7c72897..c0025a45a 100644 --- a/lib/widgets/animated_widgets/rotating_arrows.dart +++ b/lib/widgets/animated_widgets/rotating_arrows.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:lottie/lottie.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; class RotatingArrowsController { VoidCallback? forward; diff --git a/lib/widgets/app_bar_field.dart b/lib/widgets/app_bar_field.dart index 53a226865..d48b20ee9 100644 --- a/lib/widgets/app_bar_field.dart +++ b/lib/widgets/app_bar_field.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../utilities/text_styles.dart'; class AppBarSearchField extends StatefulWidget { const AppBarSearchField({ diff --git a/lib/widgets/background.dart b/lib/widgets/background.dart index 3f13f96a2..3d27b24b1 100644 --- a/lib/widgets/background.dart +++ b/lib/widgets/background.dart @@ -13,9 +13,9 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; +import '../themes/stack_colors.dart'; +import '../themes/theme_providers.dart'; +import 'conditional_parent.dart'; class Background extends ConsumerWidget { const Background({ diff --git a/lib/widgets/choose_coin_view.dart b/lib/widgets/choose_coin_view.dart index a234d89ef..b1238fb6a 100644 --- a/lib/widgets/choose_coin_view.dart +++ b/lib/widgets/choose_coin_view.dart @@ -13,16 +13,16 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/app_config.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../providers/providers.dart'; +import '../app_config.dart'; +import '../themes/coin_icon_provider.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/constants.dart'; +import '../utilities/text_styles.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import 'background.dart'; +import 'custom_buttons/app_bar_icon_button.dart'; +import 'rounded_white_container.dart'; /* * This widget is used to choose a coin from a list of coins. diff --git a/lib/widgets/coin_card.dart b/lib/widgets/coin_card.dart index b4a88e80d..375a27357 100644 --- a/lib/widgets/coin_card.dart +++ b/lib/widgets/coin_card.dart @@ -13,11 +13,11 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/coin_card_provider.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; +import '../themes/coin_card_provider.dart'; +import '../themes/theme_providers.dart'; +import '../utilities/assets.dart'; +import '../utilities/constants.dart'; +import '../wallets/isar/providers/wallet_info_provider.dart'; class CoinCard extends ConsumerWidget { const CoinCard({ diff --git a/lib/widgets/crypto_notifications.dart b/lib/widgets/crypto_notifications.dart index 52c5b3fc5..ba6eb6792 100644 --- a/lib/widgets/crypto_notifications.dart +++ b/lib/widgets/crypto_notifications.dart @@ -13,10 +13,10 @@ import 'dart:async'; import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/notifications_api.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../providers/providers.dart'; +import '../services/notifications_api.dart'; +import '../themes/coin_icon_provider.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; abstract class CryptoNotificationsEventBus { static final instance = EventBus(); diff --git a/lib/widgets/custom_buttons/app_bar_icon_button.dart b/lib/widgets/custom_buttons/app_bar_icon_button.dart index 96bd533ea..5327d298f 100644 --- a/lib/widgets/custom_buttons/app_bar_icon_button.dart +++ b/lib/widgets/custom_buttons/app_bar_icon_button.dart @@ -10,9 +10,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/util.dart'; class AppBarIconButton extends StatelessWidget { const AppBarIconButton({ diff --git a/lib/widgets/custom_buttons/blue_text_button.dart b/lib/widgets/custom_buttons/blue_text_button.dart index e0432caeb..8639fc1b1 100644 --- a/lib/widgets/custom_buttons/blue_text_button.dart +++ b/lib/widgets/custom_buttons/blue_text_button.dart @@ -10,11 +10,11 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../conditional_parent.dart'; +import '../rounded_container.dart'; class _CustomTextButton extends StatefulWidget { const _CustomTextButton({ diff --git a/lib/widgets/custom_buttons/checkbox_text_button.dart b/lib/widgets/custom_buttons/checkbox_text_button.dart index 8ad254ae9..29e6c5ada 100644 --- a/lib/widgets/custom_buttons/checkbox_text_button.dart +++ b/lib/widgets/custom_buttons/checkbox_text_button.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../utilities/text_styles.dart'; class CheckboxTextButton extends StatefulWidget { const CheckboxTextButton({super.key, required this.label, this.onChanged}); diff --git a/lib/widgets/custom_buttons/draggable_switch_button.dart b/lib/widgets/custom_buttons/draggable_switch_button.dart index a3e8a9926..6d77e720c 100644 --- a/lib/widgets/custom_buttons/draggable_switch_button.dart +++ b/lib/widgets/custom_buttons/draggable_switch_button.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; +import '../../themes/stack_colors.dart'; class DraggableSwitchButton extends StatefulWidget { const DraggableSwitchButton({ diff --git a/lib/widgets/custom_buttons/dropdown_button.dart b/lib/widgets/custom_buttons/dropdown_button.dart index df6ef56f8..6ee148a22 100644 --- a/lib/widgets/custom_buttons/dropdown_button.dart +++ b/lib/widgets/custom_buttons/dropdown_button.dart @@ -10,14 +10,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/text_styles.dart'; +import '../animated_widgets/rotate_icon.dart'; +import 'app_bar_icon_button.dart'; +import '../desktop/secondary_button.dart'; +import '../rounded_white_container.dart'; class JDropdownButton extends StatefulWidget { const JDropdownButton({ diff --git a/lib/widgets/custom_buttons/favorite_toggle.dart b/lib/widgets/custom_buttons/favorite_toggle.dart index 7dcb204ea..6014767c6 100644 --- a/lib/widgets/custom_buttons/favorite_toggle.dart +++ b/lib/widgets/custom_buttons/favorite_toggle.dart @@ -11,9 +11,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../themes/stack_colors.dart'; +import '../../themes/theme_providers.dart'; +import '../../utilities/assets.dart'; class FavoriteToggle extends ConsumerStatefulWidget { const FavoriteToggle({ diff --git a/lib/widgets/custom_buttons/frost_qr_dialog_button.dart b/lib/widgets/custom_buttons/frost_qr_dialog_button.dart index 0b63f097e..8c673d9d4 100644 --- a/lib/widgets/custom_buttons/frost_qr_dialog_button.dart +++ b/lib/widgets/custom_buttons/frost_qr_dialog_button.dart @@ -1,12 +1,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/providers/frost_wallet/frost_wallet_providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/dialogs/frost/frost_step_qr_dialog.dart'; +import '../../frost_route_generator.dart'; +import '../../providers/frost_wallet/frost_wallet_providers.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../desktop/secondary_button.dart'; +import '../dialogs/frost/frost_step_qr_dialog.dart'; class FrostQrDialogPopupButton extends ConsumerWidget { const FrostQrDialogPopupButton({super.key, required this.data}); diff --git a/lib/widgets/custom_buttons/paynym_follow_toggle_button.dart b/lib/widgets/custom_buttons/paynym_follow_toggle_button.dart index 58121e3a5..ad5e80e30 100644 --- a/lib/widgets/custom_buttons/paynym_follow_toggle_button.dart +++ b/lib/widgets/custom_buttons/paynym_follow_toggle_button.dart @@ -13,19 +13,19 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/paynym/paynym_account_lite.dart'; -import 'package:stackwallet/models/paynym/paynym_response.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/providers/global/paynym_api_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/providers/wallet/my_paynym_account_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; +import '../../models/paynym/paynym_account_lite.dart'; +import '../../models/paynym/paynym_response.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../../providers/global/paynym_api_provider.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../providers/wallet/my_paynym_account_state_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/util.dart'; +import '../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../desktop/primary_button.dart'; +import '../desktop/secondary_button.dart'; +import '../loading_indicator.dart'; enum PaynymFollowToggleButtonStyle { primary, diff --git a/lib/widgets/custom_buttons/simple_copy_button.dart b/lib/widgets/custom_buttons/simple_copy_button.dart index 5bd7c5501..e8bcc560c 100644 --- a/lib/widgets/custom_buttons/simple_copy_button.dart +++ b/lib/widgets/custom_buttons/simple_copy_button.dart @@ -13,10 +13,10 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../notifications/show_flush_bar.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; class SimpleCopyButton extends StatelessWidget { const SimpleCopyButton({ diff --git a/lib/widgets/custom_buttons/simple_edit_button.dart b/lib/widgets/custom_buttons/simple_edit_button.dart index 99d470fe3..2913ce5ae 100644 --- a/lib/widgets/custom_buttons/simple_edit_button.dart +++ b/lib/widgets/custom_buttons/simple_edit_button.dart @@ -10,13 +10,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/pages/generic/single_field_edit_view.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/icon_widgets/pencil_icon.dart'; +import '../../pages/generic/single_field_edit_view.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../desktop/desktop_dialog.dart'; +import '../icon_widgets/pencil_icon.dart'; import 'package:tuple/tuple.dart'; class SimpleEditButton extends StatelessWidget { diff --git a/lib/widgets/custom_loading_overlay.dart b/lib/widgets/custom_loading_overlay.dart index cd9dac032..f5c326d01 100644 --- a/lib/widgets/custom_loading_overlay.dart +++ b/lib/widgets/custom_loading_overlay.dart @@ -13,11 +13,11 @@ import 'dart:async'; import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; +import 'conditional_parent.dart'; +import 'loading_indicator.dart'; class CustomLoadingOverlay extends ConsumerStatefulWidget { const CustomLoadingOverlay({ diff --git a/lib/widgets/custom_page_view/custom_page_view.dart b/lib/widgets/custom_page_view/custom_page_view.dart index 825abac26..5540820fe 100644 --- a/lib/widgets/custom_page_view/custom_page_view.dart +++ b/lib/widgets/custom_page_view/custom_page_view.dart @@ -18,7 +18,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart' show precisionErrorTolerance; import 'package:flutter/gestures.dart' show DragStartBehavior; import 'package:flutter/rendering.dart'; -import 'package:stackwallet/widgets/custom_page_view/custom_sliver_fill_viewport.dart'; +import 'custom_sliver_fill_viewport.dart'; /// A controller for [CustomPageView]. /// diff --git a/lib/widgets/custom_pin_put/custom_pin_put.dart b/lib/widgets/custom_pin_put/custom_pin_put.dart index d49391ac1..7d978076b 100644 --- a/lib/widgets/custom_pin_put/custom_pin_put.dart +++ b/lib/widgets/custom_pin_put/custom_pin_put.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:stackwallet/widgets/custom_pin_put/custom_pin_put_state.dart'; -import 'package:stackwallet/widgets/custom_pin_put/pin_keyboard.dart'; +import 'custom_pin_put_state.dart'; +import 'pin_keyboard.dart'; class CustomPinPut extends StatefulWidget { const CustomPinPut({ diff --git a/lib/widgets/custom_pin_put/custom_pin_put_state.dart b/lib/widgets/custom_pin_put/custom_pin_put_state.dart index 4f37d2147..39087695f 100644 --- a/lib/widgets/custom_pin_put/custom_pin_put_state.dart +++ b/lib/widgets/custom_pin_put/custom_pin_put_state.dart @@ -11,8 +11,8 @@ import 'dart:math'; import 'package:flutter/material.dart'; -import 'package:stackwallet/widgets/custom_pin_put/custom_pin_put.dart'; -import 'package:stackwallet/widgets/custom_pin_put/pin_keyboard.dart'; +import 'custom_pin_put.dart'; +import 'pin_keyboard.dart'; class CustomPinPutState extends State with WidgetsBindingObserver, SingleTickerProviderStateMixin { diff --git a/lib/widgets/custom_pin_put/pin_keyboard.dart b/lib/widgets/custom_pin_put/pin_keyboard.dart index 71bbbcc0e..274287a17 100644 --- a/lib/widgets/custom_pin_put/pin_keyboard.dart +++ b/lib/widgets/custom_pin_put/pin_keyboard.dart @@ -12,9 +12,9 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; class NumberKey extends StatefulWidget { const NumberKey({ diff --git a/lib/widgets/custom_tab_view.dart b/lib/widgets/custom_tab_view.dart index 0931aecce..db69a47a5 100644 --- a/lib/widgets/custom_tab_view.dart +++ b/lib/widgets/custom_tab_view.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/text_styles.dart'; class CustomTabView extends StatefulWidget { const CustomTabView({ diff --git a/lib/widgets/date_picker/date_picker.dart b/lib/widgets/date_picker/date_picker.dart index 054f89ee5..cd843e542 100644 --- a/lib/widgets/date_picker/date_picker.dart +++ b/lib/widgets/date_picker/date_picker.dart @@ -2,12 +2,12 @@ import 'dart:math'; import 'package:calendar_date_picker2/calendar_date_picker2.dart'; import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/util.dart'; +import '../conditional_parent.dart'; +import '../desktop/primary_button.dart'; +import '../desktop/secondary_button.dart'; part 'sw_date_picker.dart'; diff --git a/lib/widgets/desktop/custom_text_button.dart b/lib/widgets/desktop/custom_text_button.dart index c2908842e..a868ff9ff 100644 --- a/lib/widgets/desktop/custom_text_button.dart +++ b/lib/widgets/desktop/custom_text_button.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../../utilities/util.dart'; enum ButtonHeight { xxs, diff --git a/lib/widgets/desktop/delete_button.dart b/lib/widgets/desktop/delete_button.dart index fe0a29ba1..897a4f8fe 100644 --- a/lib/widgets/desktop/delete_button.dart +++ b/lib/widgets/desktop/delete_button.dart @@ -10,11 +10,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/custom_text_button.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import 'custom_text_button.dart'; class DeleteButton extends StatelessWidget { const DeleteButton({ diff --git a/lib/widgets/desktop/desktop_app_bar.dart b/lib/widgets/desktop/desktop_app_bar.dart index e39af59d1..2c6b39763 100644 --- a/lib/widgets/desktop/desktop_app_bar.dart +++ b/lib/widgets/desktop/desktop_app_bar.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; +import '../conditional_parent.dart'; const double kDesktopAppBarHeight = 96.0; const double kDesktopAppBarHeightCompact = 82.0; diff --git a/lib/widgets/desktop/desktop_dialog.dart b/lib/widgets/desktop/desktop_dialog.dart index 5e8a4a548..d01fb3d77 100644 --- a/lib/widgets/desktop/desktop_dialog.dart +++ b/lib/widgets/desktop/desktop_dialog.dart @@ -9,7 +9,7 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; +import '../../themes/stack_colors.dart'; class DesktopDialog extends StatelessWidget { const DesktopDialog({ diff --git a/lib/widgets/desktop/desktop_dialog_close_button.dart b/lib/widgets/desktop/desktop_dialog_close_button.dart index b7a945233..a9b258737 100644 --- a/lib/widgets/desktop/desktop_dialog_close_button.dart +++ b/lib/widgets/desktop/desktop_dialog_close_button.dart @@ -10,9 +10,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../custom_buttons/app_bar_icon_button.dart'; class DesktopDialogCloseButton extends StatelessWidget { const DesktopDialogCloseButton({ diff --git a/lib/widgets/desktop/desktop_fee_dialog.dart b/lib/widgets/desktop/desktop_fee_dialog.dart index 237c2bf8d..08597b9eb 100644 --- a/lib/widgets/desktop/desktop_fee_dialog.dart +++ b/lib/widgets/desktop/desktop_fee_dialog.dart @@ -1,27 +1,27 @@ import 'package:cw_core/monero_transaction_priority.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/models.dart'; -import 'package:stackwallet/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/firo_wallet.dart'; -import 'package:stackwallet/widgets/animated_text.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; +import '../../models/models.dart'; +import '../../pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart'; +import '../../pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart'; +import '../../providers/global/wallets_provider.dart'; +import '../../providers/wallet/public_private_balance_state_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/amount/amount.dart'; +import '../../utilities/amount/amount_formatter.dart'; +import '../../utilities/enums/fee_rate_type_enum.dart'; +import '../../utilities/text_styles.dart'; +import '../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../wallets/crypto_currency/coins/firo.dart'; +import '../../wallets/crypto_currency/coins/monero.dart'; +import '../../wallets/crypto_currency/coins/wownero.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../../wallets/wallet/impl/firo_wallet.dart'; +import '../animated_text.dart'; +import '../conditional_parent.dart'; +import 'desktop_dialog.dart'; +import 'desktop_dialog_close_button.dart'; class DesktopFeeDialog extends ConsumerStatefulWidget { const DesktopFeeDialog({ diff --git a/lib/widgets/desktop/desktop_scaffold.dart b/lib/widgets/desktop/desktop_scaffold.dart index 1f6bc2a70..f3913b094 100644 --- a/lib/widgets/desktop/desktop_scaffold.dart +++ b/lib/widgets/desktop/desktop_scaffold.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/widgets/background.dart'; +import '../../themes/stack_colors.dart'; +import '../background.dart'; class DesktopScaffold extends StatelessWidget { const DesktopScaffold({ diff --git a/lib/widgets/desktop/desktop_tor_status_button.dart b/lib/widgets/desktop/desktop_tor_status_button.dart index da429e9ec..45d82d9ab 100644 --- a/lib/widgets/desktop/desktop_tor_status_button.dart +++ b/lib/widgets/desktop/desktop_tor_status_button.dart @@ -5,13 +5,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_native_splash/cli_commands.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/pages_desktop_specific/desktop_menu_item.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; +import '../../pages_desktop_specific/desktop_menu_item.dart'; +import '../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../../services/event_bus/global_event_bus.dart'; +import '../../services/tor_service.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; class DesktopTorStatusButton extends ConsumerStatefulWidget { const DesktopTorStatusButton({ diff --git a/lib/widgets/desktop/living_stack_icon.dart b/lib/widgets/desktop/living_stack_icon.dart index 58568c0e0..bab0a8196 100644 --- a/lib/widgets/desktop/living_stack_icon.dart +++ b/lib/widgets/desktop/living_stack_icon.dart @@ -13,7 +13,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; +import '../../themes/theme_providers.dart'; class LivingStackIcon extends ConsumerStatefulWidget { const LivingStackIcon({ diff --git a/lib/widgets/desktop/outline_blue_button.dart b/lib/widgets/desktop/outline_blue_button.dart index 356336ae0..b865b64e7 100644 --- a/lib/widgets/desktop/outline_blue_button.dart +++ b/lib/widgets/desktop/outline_blue_button.dart @@ -9,10 +9,10 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/custom_text_button.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import 'custom_text_button.dart'; export 'package:stackwallet/widgets/desktop/custom_text_button.dart'; diff --git a/lib/widgets/desktop/paynym_search_button.dart b/lib/widgets/desktop/paynym_search_button.dart index d49d1e7dd..48d8134a3 100644 --- a/lib/widgets/desktop/paynym_search_button.dart +++ b/lib/widgets/desktop/paynym_search_button.dart @@ -10,9 +10,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../rounded_container.dart'; class PaynymSearchButton extends StatefulWidget { const PaynymSearchButton({ diff --git a/lib/widgets/desktop/primary_button.dart b/lib/widgets/desktop/primary_button.dart index edf70b493..04f40e01c 100644 --- a/lib/widgets/desktop/primary_button.dart +++ b/lib/widgets/desktop/primary_button.dart @@ -9,10 +9,10 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/custom_text_button.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import 'custom_text_button.dart'; export 'package:stackwallet/widgets/desktop/custom_text_button.dart'; diff --git a/lib/widgets/desktop/secondary_button.dart b/lib/widgets/desktop/secondary_button.dart index 5f4e9d63a..80824c8f8 100644 --- a/lib/widgets/desktop/secondary_button.dart +++ b/lib/widgets/desktop/secondary_button.dart @@ -9,10 +9,10 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/custom_text_button.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import 'custom_text_button.dart'; export 'package:stackwallet/widgets/desktop/custom_text_button.dart'; diff --git a/lib/widgets/desktop/simple_desktop_dialog.dart b/lib/widgets/desktop/simple_desktop_dialog.dart index 6fa12c8c7..4b342c060 100644 --- a/lib/widgets/desktop/simple_desktop_dialog.dart +++ b/lib/widgets/desktop/simple_desktop_dialog.dart @@ -9,10 +9,10 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; +import '../../utilities/text_styles.dart'; +import 'desktop_dialog.dart'; +import 'desktop_dialog_close_button.dart'; +import 'primary_button.dart'; class SimpleDesktopDialog extends StatelessWidget { const SimpleDesktopDialog({ diff --git a/lib/widgets/detail_item.dart b/lib/widgets/detail_item.dart index ee3694d0a..b3b1552a2 100644 --- a/lib/widgets/detail_item.dart +++ b/lib/widgets/detail_item.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; +import 'conditional_parent.dart'; +import 'rounded_white_container.dart'; class DetailItem extends StatelessWidget { const DetailItem({ diff --git a/lib/widgets/dialogs/basic_dialog.dart b/lib/widgets/dialogs/basic_dialog.dart index d2c5e39eb..fcb54d2eb 100644 --- a/lib/widgets/dialogs/basic_dialog.dart +++ b/lib/widgets/dialogs/basic_dialog.dart @@ -9,11 +9,11 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../desktop/desktop_dialog.dart'; +import '../desktop/desktop_dialog_close_button.dart'; +import '../stack_dialog.dart'; class BasicDialog extends StatelessWidget { const BasicDialog({ diff --git a/lib/widgets/dialogs/frost/frost_error_dialog.dart b/lib/widgets/dialogs/frost/frost_error_dialog.dart index 8b1e56e15..a972d529e 100644 --- a/lib/widgets/dialogs/frost/frost_error_dialog.dart +++ b/lib/widgets/dialogs/frost/frost_error_dialog.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../frost_route_generator.dart'; +import '../../../utilities/text_styles.dart'; +import '../../desktop/primary_button.dart'; +import '../../stack_dialog.dart'; class FrostErrorDialog extends ConsumerWidget { const FrostErrorDialog({ diff --git a/lib/widgets/dialogs/frost/frost_step_explanation_dialog.dart b/lib/widgets/dialogs/frost/frost_step_explanation_dialog.dart index 102bab1e5..fc8be900c 100644 --- a/lib/widgets/dialogs/frost/frost_step_explanation_dialog.dart +++ b/lib/widgets/dialogs/frost/frost_step_explanation_dialog.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../../utilities/text_styles.dart'; +import '../../desktop/secondary_button.dart'; +import '../../stack_dialog.dart'; class FrostStepExplanationDialog extends StatelessWidget { final String title; diff --git a/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart b/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart index af33383ef..2de302720 100644 --- a/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart +++ b/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart @@ -9,16 +9,16 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:path_provider/path_provider.dart'; import 'package:qr_flutter/qr_flutter.dart'; import 'package:share_plus/share_plus.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/dialogs/simple_mobile_dialog.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../../../notifications/show_flush_bar.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../conditional_parent.dart'; +import '../../desktop/secondary_button.dart'; +import '../simple_mobile_dialog.dart'; +import '../../rounded_container.dart'; +import '../../rounded_white_container.dart'; class FrostStepQrDialog extends StatefulWidget { const FrostStepQrDialog({ diff --git a/lib/widgets/dialogs/simple_mobile_dialog.dart b/lib/widgets/dialogs/simple_mobile_dialog.dart index 1e07e22ae..34a94ef26 100644 --- a/lib/widgets/dialogs/simple_mobile_dialog.dart +++ b/lib/widgets/dialogs/simple_mobile_dialog.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; +import '../../themes/stack_colors.dart'; +import '../desktop/secondary_button.dart'; class SimpleMobileDialog extends StatelessWidget { const SimpleMobileDialog({ diff --git a/lib/widgets/dialogs/tor_warning_dialog.dart b/lib/widgets/dialogs/tor_warning_dialog.dart index 7f4bd7cae..d02d2ec1d 100644 --- a/lib/widgets/dialogs/tor_warning_dialog.dart +++ b/lib/widgets/dialogs/tor_warning_dialog.dart @@ -1,8 +1,8 @@ import 'package:flutter/cupertino.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/dialogs/basic_dialog.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../desktop/primary_button.dart'; +import '../desktop/secondary_button.dart'; +import 'basic_dialog.dart'; class TorWarningDialog extends StatelessWidget { final CryptoCurrency coin; diff --git a/lib/widgets/emoji_select_sheet.dart b/lib/widgets/emoji_select_sheet.dart index 01a9f8478..b4330a232 100644 --- a/lib/widgets/emoji_select_sheet.dart +++ b/lib/widgets/emoji_select_sheet.dart @@ -12,16 +12,16 @@ import 'package:emojis/emoji.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/stack_text_field.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/assets.dart'; +import '../utilities/constants.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; +import 'conditional_parent.dart'; +import 'desktop/secondary_button.dart'; +import 'icon_widgets/x_icon.dart'; +import 'stack_text_field.dart'; +import 'textfield_icon_button.dart'; class EmojiSelectSheet extends ConsumerStatefulWidget { const EmojiSelectSheet({ diff --git a/lib/widgets/eth_wallet_radio.dart b/lib/widgets/eth_wallet_radio.dart index 389d7ff61..a164d85ba 100644 --- a/lib/widgets/eth_wallet_radio.dart +++ b/lib/widgets/eth_wallet_radio.dart @@ -10,11 +10,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/wallet_info_row/sub_widgets/wallet_info_row_balance.dart'; -import 'package:stackwallet/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart'; +import '../providers/providers.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/text_styles.dart'; +import 'wallet_info_row/sub_widgets/wallet_info_row_balance.dart'; +import 'wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart'; class EthWalletRadio extends ConsumerStatefulWidget { const EthWalletRadio({ diff --git a/lib/widgets/exchange/trocador/trocador_kyc_icon.dart b/lib/widgets/exchange/trocador/trocador_kyc_icon.dart index 9a63523de..dc7b75a26 100644 --- a/lib/widgets/exchange/trocador/trocador_kyc_icon.dart +++ b/lib/widgets/exchange/trocador/trocador_kyc_icon.dart @@ -10,9 +10,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/widgets/exchange/trocador/trocador_rating_type_enum.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import 'trocador_rating_type_enum.dart'; class TrocadorKYCIcon extends StatelessWidget { const TrocadorKYCIcon({ diff --git a/lib/widgets/exchange/trocador/trocador_kyc_info_button.dart b/lib/widgets/exchange/trocador/trocador_kyc_info_button.dart index e9c0caad6..91fc2f732 100644 --- a/lib/widgets/exchange/trocador/trocador_kyc_info_button.dart +++ b/lib/widgets/exchange/trocador/trocador_kyc_info_button.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/widgets/exchange/trocador/trocador_kyc_icon.dart'; -import 'package:stackwallet/widgets/exchange/trocador/trocador_rating_type_enum.dart'; -import 'package:stackwallet/widgets/trocador_kyc_rating_info.dart'; +import 'trocador_kyc_icon.dart'; +import 'trocador_rating_type_enum.dart'; +import '../../trocador_kyc_rating_info.dart'; class TrocadorKYCInfoButton extends StatelessWidget { const TrocadorKYCInfoButton({ diff --git a/lib/widgets/expandable2.dart b/lib/widgets/expandable2.dart index 6baf055e3..c806217df 100644 --- a/lib/widgets/expandable2.dart +++ b/lib/widgets/expandable2.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/constants.dart'; enum Expandable2State { collapsed, diff --git a/lib/widgets/fee_slider.dart b/lib/widgets/fee_slider.dart index b2cdc87e6..806e9306f 100644 --- a/lib/widgets/fee_slider.dart +++ b/lib/widgets/fee_slider.dart @@ -1,9 +1,9 @@ import 'dart:math'; import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../utilities/text_styles.dart'; +import '../wallets/crypto_currency/coins/dogecoin.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; class FeeSlider extends StatefulWidget { const FeeSlider({ diff --git a/lib/widgets/frost_mascot.dart b/lib/widgets/frost_mascot.dart index 17743efcc..182743ddd 100644 --- a/lib/widgets/frost_mascot.dart +++ b/lib/widgets/frost_mascot.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/widgets/dialogs/frost/frost_step_explanation_dialog.dart'; +import '../utilities/assets.dart'; +import 'dialogs/frost/frost_step_explanation_dialog.dart'; class FrostMascot extends StatelessWidget { final String title; diff --git a/lib/widgets/frost_scaffold.dart b/lib/widgets/frost_scaffold.dart index e5d83e088..6ce59ce1d 100644 --- a/lib/widgets/frost_scaffold.dart +++ b/lib/widgets/frost_scaffold.dart @@ -1,16 +1,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/frost_route_generator.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/background.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/progress_bar.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../frost_route_generator.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; +import 'background.dart'; +import 'conditional_parent.dart'; +import 'custom_buttons/blue_text_button.dart'; +import 'desktop/primary_button.dart'; +import 'desktop/secondary_button.dart'; +import 'progress_bar.dart'; +import 'stack_dialog.dart'; class FrostStepScaffold extends ConsumerStatefulWidget { const FrostStepScaffold({super.key}); diff --git a/lib/widgets/frost_step_user_steps.dart b/lib/widgets/frost_step_user_steps.dart index 729264344..e10fa28af 100644 --- a/lib/widgets/frost_step_user_steps.dart +++ b/lib/widgets/frost_step_user_steps.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../utilities/text_styles.dart'; +import 'conditional_parent.dart'; +import 'rounded_white_container.dart'; class FrostStepUserSteps extends StatelessWidget { const FrostStepUserSteps({super.key, required this.userSteps}); diff --git a/lib/widgets/hover_text_field.dart b/lib/widgets/hover_text_field.dart index 679104537..9ade4d63d 100644 --- a/lib/widgets/hover_text_field.dart +++ b/lib/widgets/hover_text_field.dart @@ -12,13 +12,13 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/global/wallets_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../notifications/show_flush_bar.dart'; +import '../providers/db/main_db_provider.dart'; +import '../providers/global/wallets_provider.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/constants.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; class DesktopWalletNameField extends ConsumerStatefulWidget { const DesktopWalletNameField({ diff --git a/lib/widgets/icon_widgets/addressbook_icon.dart b/lib/widgets/icon_widgets/addressbook_icon.dart index 7c564d59a..f373c9dbf 100644 --- a/lib/widgets/icon_widgets/addressbook_icon.dart +++ b/lib/widgets/icon_widgets/addressbook_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; class AddressBookIcon extends StatelessWidget { const AddressBookIcon({ diff --git a/lib/widgets/icon_widgets/clipboard_icon.dart b/lib/widgets/icon_widgets/clipboard_icon.dart index 38228b751..062b3c70d 100644 --- a/lib/widgets/icon_widgets/clipboard_icon.dart +++ b/lib/widgets/icon_widgets/clipboard_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; class ClipboardIcon extends StatelessWidget { const ClipboardIcon({ diff --git a/lib/widgets/icon_widgets/copy_icon.dart b/lib/widgets/icon_widgets/copy_icon.dart index 91d3647bc..7d5bd4af9 100644 --- a/lib/widgets/icon_widgets/copy_icon.dart +++ b/lib/widgets/icon_widgets/copy_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; class CopyIcon extends StatelessWidget { const CopyIcon({ diff --git a/lib/widgets/icon_widgets/dice_icon.dart b/lib/widgets/icon_widgets/dice_icon.dart index e71f398a7..27b88a684 100644 --- a/lib/widgets/icon_widgets/dice_icon.dart +++ b/lib/widgets/icon_widgets/dice_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; class DiceIcon extends StatelessWidget { const DiceIcon({ diff --git a/lib/widgets/icon_widgets/eth_token_icon.dart b/lib/widgets/icon_widgets/eth_token_icon.dart index 0cd730690..2e0e83a2a 100644 --- a/lib/widgets/icon_widgets/eth_token_icon.dart +++ b/lib/widgets/icon_widgets/eth_token_icon.dart @@ -12,11 +12,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../models/isar/exchange_cache/currency.dart'; +import '../../services/exchange/exchange_data_loading_service.dart'; +import '../../themes/coin_icon_provider.dart'; +import '../../wallets/crypto_currency/coins/ethereum.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; class EthTokenIcon extends ConsumerStatefulWidget { const EthTokenIcon({ diff --git a/lib/widgets/icon_widgets/pencil_icon.dart b/lib/widgets/icon_widgets/pencil_icon.dart index a12c0d0a6..1389207a2 100644 --- a/lib/widgets/icon_widgets/pencil_icon.dart +++ b/lib/widgets/icon_widgets/pencil_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; class PencilIcon extends StatelessWidget { const PencilIcon({ diff --git a/lib/widgets/icon_widgets/qrcode_icon.dart b/lib/widgets/icon_widgets/qrcode_icon.dart index f7e417ad8..cc84ff39a 100644 --- a/lib/widgets/icon_widgets/qrcode_icon.dart +++ b/lib/widgets/icon_widgets/qrcode_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; class QrCodeIcon extends StatelessWidget { const QrCodeIcon({ diff --git a/lib/widgets/icon_widgets/share_icon.dart b/lib/widgets/icon_widgets/share_icon.dart index b61f0860a..449f04ae1 100644 --- a/lib/widgets/icon_widgets/share_icon.dart +++ b/lib/widgets/icon_widgets/share_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; class ShareIcon extends StatelessWidget { const ShareIcon({ diff --git a/lib/widgets/icon_widgets/utxo_status_icon.dart b/lib/widgets/icon_widgets/utxo_status_icon.dart index b409fcebf..3c78308df 100644 --- a/lib/widgets/icon_widgets/utxo_status_icon.dart +++ b/lib/widgets/icon_widgets/utxo_status_icon.dart @@ -10,10 +10,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../conditional_parent.dart'; +import '../rounded_container.dart'; enum UTXOStatusIconStatus { confirmed, diff --git a/lib/widgets/icon_widgets/x_icon.dart b/lib/widgets/icon_widgets/x_icon.dart index b0730d472..03a536e51 100644 --- a/lib/widgets/icon_widgets/x_icon.dart +++ b/lib/widgets/icon_widgets/x_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; class XIcon extends StatelessWidget { const XIcon({ diff --git a/lib/widgets/loading_indicator.dart b/lib/widgets/loading_indicator.dart index a535fb251..e42216fae 100644 --- a/lib/widgets/loading_indicator.dart +++ b/lib/widgets/loading_indicator.dart @@ -13,8 +13,8 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:lottie/lottie.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../themes/theme_providers.dart'; +import '../utilities/assets.dart'; class LoadingIndicator extends ConsumerWidget { const LoadingIndicator({ diff --git a/lib/widgets/managed_favorite.dart b/lib/widgets/managed_favorite.dart index 5ab0800d5..c89bc483b 100644 --- a/lib/widgets/managed_favorite.dart +++ b/lib/widgets/managed_favorite.dart @@ -13,19 +13,19 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/custom_buttons/favorite_toggle.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../providers/db/main_db_provider.dart'; +import '../themes/coin_icon_provider.dart'; +import '../themes/stack_colors.dart'; +import '../themes/theme_providers.dart'; +import '../utilities/amount/amount.dart'; +import '../utilities/amount/amount_formatter.dart'; +import '../utilities/constants.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; +import '../wallets/crypto_currency/coins/firo.dart'; +import '../wallets/isar/providers/wallet_info_provider.dart'; +import 'custom_buttons/favorite_toggle.dart'; +import 'rounded_white_container.dart'; class ManagedFavorite extends ConsumerStatefulWidget { const ManagedFavorite({ diff --git a/lib/widgets/master_wallet_card.dart b/lib/widgets/master_wallet_card.dart index f6d37d27a..3eb07a6db 100644 --- a/lib/widgets/master_wallet_card.dart +++ b/lib/widgets/master_wallet_card.dart @@ -11,16 +11,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; -import 'package:stackwallet/widgets/animated_widgets/rotate_icon.dart'; -import 'package:stackwallet/widgets/expandable.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/wallet_card.dart'; -import 'package:stackwallet/widgets/wallet_info_row/wallet_info_row.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/assets.dart'; +import '../utilities/constants.dart'; +import '../utilities/util.dart'; +import '../wallets/isar/providers/wallet_info_provider.dart'; +import 'animated_widgets/rotate_icon.dart'; +import 'expandable.dart'; +import 'rounded_white_container.dart'; +import 'wallet_card.dart'; +import 'wallet_info_row/wallet_info_row.dart'; class MasterWalletCard extends ConsumerStatefulWidget { const MasterWalletCard({ diff --git a/lib/widgets/node_card.dart b/lib/widgets/node_card.dart index 65bf02fb4..b8a6f9cad 100644 --- a/lib/widgets/node_card.dart +++ b/lib/widgets/node_card.dart @@ -13,26 +13,26 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart'; -import 'package:stackwallet/providers/global/active_wallet_provider.dart'; -import 'package:stackwallet/providers/global/secure_store_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; -import 'package:stackwallet/utilities/test_node_connection.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/expandable.dart'; -import 'package:stackwallet/widgets/node_options_sheet.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../notifications/show_flush_bar.dart'; +import '../pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; +import '../pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart'; +import '../providers/global/active_wallet_provider.dart'; +import '../providers/global/secure_store_provider.dart'; +import '../providers/providers.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/assets.dart'; +import '../utilities/constants.dart'; +import '../utilities/default_nodes.dart'; +import '../utilities/enums/sync_type_enum.dart'; +import '../utilities/test_node_connection.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import 'conditional_parent.dart'; +import 'custom_buttons/blue_text_button.dart'; +import 'expandable.dart'; +import 'node_options_sheet.dart'; +import 'rounded_white_container.dart'; import 'package:tuple/tuple.dart'; class NodeCard extends ConsumerStatefulWidget { diff --git a/lib/widgets/node_options_sheet.dart b/lib/widgets/node_options_sheet.dart index 85ba3ddac..37316dd05 100644 --- a/lib/widgets/node_options_sheet.dart +++ b/lib/widgets/node_options_sheet.dart @@ -14,26 +14,26 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:solana/solana.dart'; -import 'package:stackwallet/models/node_model.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart'; -import 'package:stackwallet/providers/global/active_wallet_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/connection_check/electrum_connection_check.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/default_nodes.dart'; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/test_epic_box_connection.dart'; -import 'package:stackwallet/utilities/test_eth_node_connection.dart'; -import 'package:stackwallet/utilities/test_monero_node_connection.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../models/node_model.dart'; +import '../notifications/show_flush_bar.dart'; +import '../pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; +import '../pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart'; +import '../providers/global/active_wallet_provider.dart'; +import '../providers/providers.dart'; +import '../services/tor_service.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/assets.dart'; +import '../utilities/connection_check/electrum_connection_check.dart'; +import '../utilities/constants.dart'; +import '../utilities/default_nodes.dart'; +import '../utilities/enums/sync_type_enum.dart'; +import '../utilities/logger.dart'; +import '../utilities/test_epic_box_connection.dart'; +import '../utilities/test_eth_node_connection.dart'; +import '../utilities/test_monero_node_connection.dart'; +import '../utilities/text_styles.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import 'rounded_white_container.dart'; import 'package:tuple/tuple.dart'; class NodeOptionsSheet extends ConsumerWidget { diff --git a/lib/widgets/onetime_popups/tor_has_been_add_dialog.dart b/lib/widgets/onetime_popups/tor_has_been_add_dialog.dart index 2e265024f..0c189cf63 100644 --- a/lib/widgets/onetime_popups/tor_has_been_add_dialog.dart +++ b/lib/widgets/onetime_popups/tor_has_been_add_dialog.dart @@ -1,14 +1,14 @@ import 'package:flutter/material.dart'; import 'package:hive_flutter/hive_flutter.dart'; -import 'package:stackwallet/db/hive/db.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../../db/hive/db.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../conditional_parent.dart'; +import '../desktop/desktop_dialog.dart'; +import '../desktop/desktop_dialog_close_button.dart'; +import '../desktop/primary_button.dart'; +import '../stack_dialog.dart'; const _kOneTimeTorHasBeenAddedDialogWasShown = "oneTimeTorHasBeenAddedDialogWasShown"; diff --git a/lib/widgets/rounded_container.dart b/lib/widgets/rounded_container.dart index 8a29ca7ad..d75dc6966 100644 --- a/lib/widgets/rounded_container.dart +++ b/lib/widgets/rounded_container.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; +import '../utilities/constants.dart'; +import 'conditional_parent.dart'; class RoundedContainer extends StatelessWidget { const RoundedContainer({ diff --git a/lib/widgets/rounded_white_container.dart b/lib/widgets/rounded_white_container.dart index 93efb63ec..0097397e8 100644 --- a/lib/widgets/rounded_white_container.dart +++ b/lib/widgets/rounded_white_container.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; +import '../themes/stack_colors.dart'; +import 'rounded_container.dart'; class RoundedWhiteContainer extends StatelessWidget { const RoundedWhiteContainer({ diff --git a/lib/widgets/small_tor_icon.dart b/lib/widgets/small_tor_icon.dart index 711a77ba5..ed5486069 100644 --- a/lib/widgets/small_tor_icon.dart +++ b/lib/widgets/small_tor_icon.dart @@ -1,13 +1,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/services/tor_service.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; -import 'package:stackwallet/widgets/tor_subscription.dart'; +import '../pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart'; +import '../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../services/tor_service.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/assets.dart'; +import 'custom_buttons/app_bar_icon_button.dart'; +import 'tor_subscription.dart'; class SmallTorIcon extends ConsumerStatefulWidget { const SmallTorIcon({super.key}); diff --git a/lib/widgets/stack_dialog.dart b/lib/widgets/stack_dialog.dart index bc247c2f2..58fb69ea2 100644 --- a/lib/widgets/stack_dialog.dart +++ b/lib/widgets/stack_dialog.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; class StackDialogBase extends StatelessWidget { const StackDialogBase({ diff --git a/lib/widgets/stack_text_field.dart b/lib/widgets/stack_text_field.dart index 5cd0691d5..359f5c0d3 100644 --- a/lib/widgets/stack_text_field.dart +++ b/lib/widgets/stack_text_field.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; InputDecoration standardInputDecoration( String? labelText, diff --git a/lib/widgets/table_view/table_view_row.dart b/lib/widgets/table_view/table_view_row.dart index 548d829ad..3f8bd826d 100644 --- a/lib/widgets/table_view/table_view_row.dart +++ b/lib/widgets/table_view/table_view_row.dart @@ -9,9 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/widgets/expandable.dart'; -import 'package:stackwallet/widgets/table_view/table_view_cell.dart'; +import '../../themes/stack_colors.dart'; +import '../expandable.dart'; +import 'table_view_cell.dart'; class TableViewRow extends StatefulWidget { const TableViewRow({ diff --git a/lib/widgets/textfields/exchange_textfield.dart b/lib/widgets/textfields/exchange_textfield.dart index 4abcb6671..7d1eb7915 100644 --- a/lib/widgets/textfields/exchange_textfield.dart +++ b/lib/widgets/textfields/exchange_textfield.dart @@ -11,15 +11,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/exchange/aggregate_currency.dart'; -import 'package:stackwallet/pages/buy_view/sub_widgets/crypto_selection_view.dart'; -import 'package:stackwallet/providers/global/locale_provider.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount_input_formatter.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/loading_indicator.dart'; +import '../../models/exchange/aggregate_currency.dart'; +import '../../pages/buy_view/sub_widgets/crypto_selection_view.dart'; +import '../../providers/global/locale_provider.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/amount/amount_input_formatter.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../loading_indicator.dart'; class ExchangeTextField extends ConsumerStatefulWidget { const ExchangeTextField({ diff --git a/lib/widgets/textfields/frost_step_field.dart b/lib/widgets/textfields/frost_step_field.dart index 7fd19ba3b..8ce64b089 100644 --- a/lib/widgets/textfields/frost_step_field.dart +++ b/lib/widgets/textfields/frost_step_field.dart @@ -1,16 +1,16 @@ import 'package:barcode_scan2/barcode_scan2.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/icon_widgets/clipboard_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/qrcode_icon.dart'; -import 'package:stackwallet/widgets/icon_widgets/x_icon.dart'; -import 'package:stackwallet/widgets/textfield_icon_button.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/constants.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../conditional_parent.dart'; +import '../icon_widgets/clipboard_icon.dart'; +import '../icon_widgets/qrcode_icon.dart'; +import '../icon_widgets/x_icon.dart'; +import '../textfield_icon_button.dart'; class FrostStepField extends StatefulWidget { const FrostStepField({ diff --git a/lib/widgets/toggle.dart b/lib/widgets/toggle.dart index 1a5591eab..dec082d5f 100644 --- a/lib/widgets/toggle.dart +++ b/lib/widgets/toggle.dart @@ -10,9 +10,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; class Toggle extends StatefulWidget { const Toggle({ diff --git a/lib/widgets/tor_subscription.dart b/lib/widgets/tor_subscription.dart index 30904e9f4..d849ff51b 100644 --- a/lib/widgets/tor_subscription.dart +++ b/lib/widgets/tor_subscription.dart @@ -3,8 +3,8 @@ import 'dart:async'; import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart'; -import 'package:stackwallet/services/event_bus/global_event_bus.dart'; +import '../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../services/event_bus/global_event_bus.dart'; class TorSubscription extends ConsumerStatefulWidget { const TorSubscription({ diff --git a/lib/widgets/trade_card.dart b/lib/widgets/trade_card.dart index ae6197070..5305ad584 100644 --- a/lib/widgets/trade_card.dart +++ b/lib/widgets/trade_card.dart @@ -14,15 +14,15 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction_status.dart'; -import 'package:stackwallet/models/exchange/response_objects/trade.dart'; -import 'package:stackwallet/models/isar/stack_theme.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; +import '../models/exchange/change_now/exchange_transaction_status.dart'; +import '../models/exchange/response_objects/trade.dart'; +import '../models/isar/stack_theme.dart'; +import '../themes/theme_providers.dart'; +import '../utilities/format.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; +import 'conditional_parent.dart'; +import 'rounded_white_container.dart'; class TradeCard extends ConsumerWidget { const TradeCard({ diff --git a/lib/widgets/transaction_card.dart b/lib/widgets/transaction_card.dart index 30ab94579..323fb7ebe 100644 --- a/lib/widgets/transaction_card.dart +++ b/lib/widgets/transaction_card.dart @@ -12,23 +12,23 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/isar_models.dart'; -import 'package:stackwallet/notifications/show_flush_bar.dart'; -import 'package:stackwallet/pages/wallet_view/sub_widgets/tx_icon.dart'; -import 'package:stackwallet/pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/format.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; +import '../models/isar/models/isar_models.dart'; +import '../notifications/show_flush_bar.dart'; +import '../pages/wallet_view/sub_widgets/tx_icon.dart'; +import '../pages/wallet_view/transaction_views/transaction_details_view.dart'; +import '../providers/db/main_db_provider.dart'; +import '../providers/providers.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/amount/amount.dart'; +import '../utilities/amount/amount_formatter.dart'; +import '../utilities/constants.dart'; +import '../utilities/format.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; +import '../wallets/crypto_currency/coins/epiccash.dart'; +import '../wallets/crypto_currency/coins/ethereum.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import 'desktop/desktop_dialog.dart'; import 'package:tuple/tuple.dart'; class TransactionCard extends ConsumerStatefulWidget { diff --git a/lib/widgets/trocador_kyc_rating_info.dart b/lib/widgets/trocador_kyc_rating_info.dart index a35c03fcc..9c5b04c9f 100644 --- a/lib/widgets/trocador_kyc_rating_info.dart +++ b/lib/widgets/trocador_kyc_rating_info.dart @@ -9,15 +9,15 @@ */ import 'package:flutter/material.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; -import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/desktop/secondary_button.dart'; -import 'package:stackwallet/widgets/exchange/trocador/trocador_kyc_icon.dart'; -import 'package:stackwallet/widgets/exchange/trocador/trocador_rating_type_enum.dart'; -import 'package:stackwallet/widgets/stack_dialog.dart'; +import '../utilities/text_styles.dart'; +import 'conditional_parent.dart'; +import 'desktop/desktop_dialog.dart'; +import 'desktop/desktop_dialog_close_button.dart'; +import 'desktop/primary_button.dart'; +import 'desktop/secondary_button.dart'; +import 'exchange/trocador/trocador_kyc_icon.dart'; +import 'exchange/trocador/trocador_rating_type_enum.dart'; +import 'stack_dialog.dart'; class TrocadorKYCRatingInfo extends StatelessWidget { const TrocadorKYCRatingInfo({Key? key}) : super(key: key); diff --git a/lib/widgets/wallet_card.dart b/lib/widgets/wallet_card.dart index 9345cf271..98c5fbeac 100644 --- a/lib/widgets/wallet_card.dart +++ b/lib/widgets/wallet_card.dart @@ -12,27 +12,27 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/pages/token_view/token_view.dart'; -import 'package:stackwallet/pages/wallet_view/wallet_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart'; -import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/utilities/logger.dart'; -import 'package:stackwallet/utilities/show_loading.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/current_token_wallet_provider.dart'; -import 'package:stackwallet/wallets/wallet/impl/ethereum_wallet.dart'; -import 'package:stackwallet/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet.dart'; -import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/desktop/primary_button.dart'; -import 'package:stackwallet/widgets/dialogs/basic_dialog.dart'; -import 'package:stackwallet/widgets/rounded_white_container.dart'; -import 'package:stackwallet/widgets/wallet_info_row/wallet_info_row.dart'; +import '../models/isar/models/ethereum/eth_contract.dart'; +import '../pages/token_view/token_view.dart'; +import '../pages/wallet_view/wallet_view.dart'; +import '../pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart'; +import '../pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart'; +import '../providers/db/main_db_provider.dart'; +import '../providers/providers.dart'; +import '../utilities/constants.dart'; +import '../utilities/logger.dart'; +import '../utilities/show_loading.dart'; +import '../utilities/util.dart'; +import '../wallets/isar/providers/eth/current_token_wallet_provider.dart'; +import '../wallets/wallet/impl/ethereum_wallet.dart'; +import '../wallets/wallet/impl/sub_wallets/eth_token_wallet.dart'; +import '../wallets/wallet/wallet.dart'; +import '../wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; +import 'conditional_parent.dart'; +import 'desktop/primary_button.dart'; +import 'dialogs/basic_dialog.dart'; +import 'rounded_white_container.dart'; +import 'wallet_info_row/wallet_info_row.dart'; class SimpleWalletCard extends ConsumerWidget { const SimpleWalletCard({ diff --git a/lib/widgets/wallet_info_row/sub_widgets/wallet_info_row_balance.dart b/lib/widgets/wallet_info_row/sub_widgets/wallet_info_row_balance.dart index 55a897255..e88737d4e 100644 --- a/lib/widgets/wallet_info_row/sub_widgets/wallet_info_row_balance.dart +++ b/lib/widgets/wallet_info_row/sub_widgets/wallet_info_row_balance.dart @@ -10,15 +10,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/db/isar/main_db.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/amount/amount.dart'; -import 'package:stackwallet/utilities/amount/amount_formatter.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/isar/providers/eth/token_balance_provider.dart'; -import 'package:stackwallet/wallets/isar/providers/wallet_info_provider.dart'; +import '../../../db/isar/main_db.dart'; +import '../../../models/isar/models/ethereum/eth_contract.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/amount/amount_formatter.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/isar/providers/eth/token_balance_provider.dart'; +import '../../../wallets/isar/providers/wallet_info_provider.dart'; class WalletInfoRowBalance extends ConsumerWidget { const WalletInfoRowBalance({ diff --git a/lib/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart b/lib/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart index 2424f57a8..0212d89d6 100644 --- a/lib/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart +++ b/lib/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart @@ -14,13 +14,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart'; -import 'package:stackwallet/services/exchange/change_now/change_now_exchange.dart'; -import 'package:stackwallet/services/exchange/exchange_data_loading_service.dart'; -import 'package:stackwallet/themes/coin_icon_provider.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; -import 'package:stackwallet/utilities/constants.dart'; -import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +import '../../../models/isar/exchange_cache/currency.dart'; +import '../../../services/exchange/change_now/change_now_exchange.dart'; +import '../../../services/exchange/exchange_data_loading_service.dart'; +import '../../../themes/coin_icon_provider.dart'; +import '../../../themes/theme_providers.dart'; +import '../../../utilities/constants.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; class WalletInfoCoinIcon extends ConsumerWidget { const WalletInfoCoinIcon({ diff --git a/lib/widgets/wallet_info_row/wallet_info_row.dart b/lib/widgets/wallet_info_row/wallet_info_row.dart index bed25d102..3510e389f 100644 --- a/lib/widgets/wallet_info_row/wallet_info_row.dart +++ b/lib/widgets/wallet_info_row/wallet_info_row.dart @@ -10,16 +10,16 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; -import 'package:stackwallet/pages/token_view/sub_widgets/token_summary.dart'; -import 'package:stackwallet/providers/db/main_db_provider.dart'; -import 'package:stackwallet/providers/providers.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/widgets/custom_buttons/blue_text_button.dart'; -import 'package:stackwallet/widgets/wallet_info_row/sub_widgets/wallet_info_row_balance.dart'; -import 'package:stackwallet/widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart'; +import '../../models/isar/models/ethereum/eth_contract.dart'; +import '../../pages/token_view/sub_widgets/token_summary.dart'; +import '../../providers/db/main_db_provider.dart'; +import '../../providers/providers.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../utilities/util.dart'; +import '../custom_buttons/blue_text_button.dart'; +import 'sub_widgets/wallet_info_row_balance.dart'; +import 'sub_widgets/wallet_info_row_coin_icon.dart'; class WalletInfoRow extends ConsumerWidget { const WalletInfoRow({ diff --git a/lib/widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart index 84800acba..586fae900 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart @@ -13,7 +13,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; +import '../../../../themes/theme_providers.dart'; class BuyNavIcon extends ConsumerWidget { const BuyNavIcon({Key? key}) : super(key: key); diff --git a/lib/widgets/wallet_navigation_bar/components/icons/coin_control_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/coin_control_nav_icon.dart index a95b36015..94c5bae23 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/coin_control_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/coin_control_nav_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; class CoinControlNavIcon extends StatelessWidget { const CoinControlNavIcon({Key? key}) : super(key: key); diff --git a/lib/widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart index 25a71c7b7..25e4c0122 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart @@ -13,7 +13,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/theme_providers.dart'; +import '../../../../themes/theme_providers.dart'; class ExchangeNavIcon extends ConsumerWidget { const ExchangeNavIcon({Key? key}) : super(key: key); diff --git a/lib/widgets/wallet_navigation_bar/components/icons/frost_sign_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/frost_sign_nav_icon.dart index b91542a8e..e9fb99e95 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/frost_sign_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/frost_sign_nav_icon.dart @@ -11,8 +11,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; class FrostSignNavIcon extends ConsumerWidget { const FrostSignNavIcon({super.key}); diff --git a/lib/widgets/wallet_navigation_bar/components/icons/fusion_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/fusion_nav_icon.dart index ce1d4bef0..07b0b16bc 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/fusion_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/fusion_nav_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; class FusionNavIcon extends StatelessWidget { const FusionNavIcon({Key? key}) : super(key: key); diff --git a/lib/widgets/wallet_navigation_bar/components/icons/ordinals_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/ordinals_nav_icon.dart index 4c23bf20a..98bfecb4f 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/ordinals_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/ordinals_nav_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; class OrdinalsNavIcon extends StatelessWidget { const OrdinalsNavIcon({Key? key}) : super(key: key); diff --git a/lib/widgets/wallet_navigation_bar/components/icons/paynym_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/paynym_nav_icon.dart index cdf881432..9f11d4136 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/paynym_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/paynym_nav_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; class PaynymNavIcon extends StatelessWidget { const PaynymNavIcon({Key? key}) : super(key: key); diff --git a/lib/widgets/wallet_navigation_bar/components/icons/receive_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/receive_nav_icon.dart index 832899aa4..96be35a96 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/receive_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/receive_nav_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; class ReceiveNavIcon extends StatelessWidget { const ReceiveNavIcon({Key? key}) : super(key: key); diff --git a/lib/widgets/wallet_navigation_bar/components/icons/send_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/send_nav_icon.dart index 122cc4d17..3d388f3a2 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/send_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/send_nav_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; class SendNavIcon extends StatelessWidget { const SendNavIcon({Key? key}) : super(key: key); diff --git a/lib/widgets/wallet_navigation_bar/components/icons/whirlpool_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/whirlpool_nav_icon.dart index 6be7a1953..02c9aaf80 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/whirlpool_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/whirlpool_nav_icon.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/assets.dart'; class WhirlpoolNavIcon extends StatelessWidget { const WhirlpoolNavIcon({Key? key}) : super(key: key); diff --git a/lib/widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart b/lib/widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart index 4394cef92..6cf3c2601 100644 --- a/lib/widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart +++ b/lib/widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart @@ -10,10 +10,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/rounded_container.dart'; -import 'package:stackwallet/widgets/wallet_navigation_bar/wallet_navigation_bar.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/text_styles.dart'; +import '../../rounded_container.dart'; +import '../wallet_navigation_bar.dart'; class WalletNavigationBarItemData { WalletNavigationBarItemData({ diff --git a/lib/widgets/wallet_navigation_bar/wallet_navigation_bar.dart b/lib/widgets/wallet_navigation_bar/wallet_navigation_bar.dart index a462f9927..b272048c3 100644 --- a/lib/widgets/wallet_navigation_bar/wallet_navigation_bar.dart +++ b/lib/widgets/wallet_navigation_bar/wallet_navigation_bar.dart @@ -11,11 +11,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/themes/stack_colors.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/text_styles.dart'; -import 'package:stackwallet/widgets/conditional_parent.dart'; -import 'package:stackwallet/widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/assets.dart'; +import '../../utilities/text_styles.dart'; +import '../conditional_parent.dart'; +import 'components/wallet_navigation_bar_item.dart'; final walletNavBarMore = StateProvider.autoDispose((ref) => false); From 2b040963e596a57055d23db820c2c3253b6cdbf2 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 22 May 2024 18:42:31 -0600 Subject: [PATCH 108/318] script var fix --- scripts/app_config/platforms/android/platform_config.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/app_config/platforms/android/platform_config.sh b/scripts/app_config/platforms/android/platform_config.sh index 5002c11d5..c9254b597 100755 --- a/scripts/app_config/platforms/android/platform_config.sh +++ b/scripts/app_config/platforms/android/platform_config.sh @@ -7,5 +7,5 @@ sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/androi sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/android/app/src/profile/AndroidManifest.xml" sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/android/app/src/main/AndroidManifest.xml" sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/android/app/src/main/AndroidManifest.xml" -sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/android/app/src/main/profile/AndroidManifest.xml" -sed -i "s/${ORIGINAL_APP_ID}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt" +sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/android/app/src/main/profile/AndroidManifest.xml" +sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt" From ec5fc6d2a50ac78f9e62849d4be563b3006b4dbd Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 08:55:14 -0600 Subject: [PATCH 109/318] fix remaining package imports/exports --- lib/db/queries/queries.dart | 2 +- lib/notifications/show_flush_bar.dart | 3 +- .../crypto_currency/crypto_currency.dart | 39 +++++++++---------- lib/widgets/desktop/outline_blue_button.dart | 3 +- lib/widgets/desktop/primary_button.dart | 3 +- lib/widgets/desktop/secondary_button.dart | 3 +- 6 files changed, 28 insertions(+), 25 deletions(-) diff --git a/lib/db/queries/queries.dart b/lib/db/queries/queries.dart index d2b49cea8..c8bbe7385 100644 --- a/lib/db/queries/queries.dart +++ b/lib/db/queries/queries.dart @@ -8,7 +8,7 @@ * */ -part of 'package:stackwallet/db/isar/main_db.dart'; +part of '../isar/main_db.dart'; enum CCFilter { all, diff --git a/lib/notifications/show_flush_bar.dart b/lib/notifications/show_flush_bar.dart index 08aa5c063..b955a41ec 100644 --- a/lib/notifications/show_flush_bar.dart +++ b/lib/notifications/show_flush_bar.dart @@ -12,11 +12,12 @@ import 'package:another_flushbar/flushbar.dart'; import 'package:another_flushbar/flushbar_route.dart' as flushRoute; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; + import '../themes/stack_colors.dart'; import '../utilities/constants.dart'; import '../utilities/enums/flush_bar_type.dart'; -export 'package:stackwallet/utilities/enums/flush_bar_type.dart'; +export '../utilities/enums/flush_bar_type.dart'; Future showFloatingFlushBar({ required FlushBarType type, diff --git a/lib/wallets/crypto_currency/crypto_currency.dart b/lib/wallets/crypto_currency/crypto_currency.dart index f5f78fda9..7b30c85fe 100644 --- a/lib/wallets/crypto_currency/crypto_currency.dart +++ b/lib/wallets/crypto_currency/crypto_currency.dart @@ -2,26 +2,25 @@ import '../../models/isar/models/blockchain_data/address.dart'; import '../../models/node_model.dart'; import '../../utilities/enums/derive_path_type_enum.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/banano.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/bitcoin_frost.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/ecash.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/litecoin.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/monero.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/namecoin.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/nano.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/particl.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/peercoin.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/solana.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/stellar.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/tezos.dart'; -export 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart'; -export 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; +export 'coins/banano.dart'; +export 'coins/bitcoin.dart'; +export 'coins/bitcoin_frost.dart'; +export 'coins/bitcoincash.dart'; +export 'coins/dogecoin.dart'; +export 'coins/ecash.dart'; +export 'coins/epiccash.dart'; +export 'coins/ethereum.dart'; +export 'coins/firo.dart'; +export 'coins/litecoin.dart'; +export 'coins/monero.dart'; +export 'coins/namecoin.dart'; +export 'coins/nano.dart'; +export 'coins/particl.dart'; +export 'coins/peercoin.dart'; +export 'coins/solana.dart'; +export 'coins/stellar.dart'; +export 'coins/tezos.dart'; +export 'coins/wownero.dart'; enum CryptoCurrencyNetwork { main, diff --git a/lib/widgets/desktop/outline_blue_button.dart b/lib/widgets/desktop/outline_blue_button.dart index b865b64e7..6073db347 100644 --- a/lib/widgets/desktop/outline_blue_button.dart +++ b/lib/widgets/desktop/outline_blue_button.dart @@ -9,12 +9,13 @@ */ import 'package:flutter/material.dart'; + import '../../themes/stack_colors.dart'; import '../../utilities/text_styles.dart'; import '../../utilities/util.dart'; import 'custom_text_button.dart'; -export 'package:stackwallet/widgets/desktop/custom_text_button.dart'; +export 'custom_text_button.dart'; class OutlineBlueButton extends StatelessWidget { const OutlineBlueButton({ diff --git a/lib/widgets/desktop/primary_button.dart b/lib/widgets/desktop/primary_button.dart index 04f40e01c..e9d555700 100644 --- a/lib/widgets/desktop/primary_button.dart +++ b/lib/widgets/desktop/primary_button.dart @@ -9,12 +9,13 @@ */ import 'package:flutter/material.dart'; + import '../../themes/stack_colors.dart'; import '../../utilities/text_styles.dart'; import '../../utilities/util.dart'; import 'custom_text_button.dart'; -export 'package:stackwallet/widgets/desktop/custom_text_button.dart'; +export 'custom_text_button.dart'; class PrimaryButton extends StatelessWidget { const PrimaryButton({ diff --git a/lib/widgets/desktop/secondary_button.dart b/lib/widgets/desktop/secondary_button.dart index 80824c8f8..eba9a59f3 100644 --- a/lib/widgets/desktop/secondary_button.dart +++ b/lib/widgets/desktop/secondary_button.dart @@ -9,12 +9,13 @@ */ import 'package:flutter/material.dart'; + import '../../themes/stack_colors.dart'; import '../../utilities/text_styles.dart'; import '../../utilities/util.dart'; import 'custom_text_button.dart'; -export 'package:stackwallet/widgets/desktop/custom_text_button.dart'; +export 'custom_text_button.dart'; class SecondaryButton extends StatelessWidget { const SecondaryButton({ From 459e882ab6d9b71d5a7887d32b3a3818a48d6411 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 09:20:11 -0600 Subject: [PATCH 110/318] app data dir fix --- lib/app_config.dart | 2 ++ lib/main.dart | 7 ++-- lib/utilities/stack_file_system.dart | 38 +++++++++++++------- scripts/app_config/configure_stack_duo.sh | 1 + scripts/app_config/configure_stack_wallet.sh | 1 + 5 files changed, 34 insertions(+), 15 deletions(-) diff --git a/lib/app_config.dart b/lib/app_config.dart index abdf2ac9b..131c7ff5b 100644 --- a/lib/app_config.dart +++ b/lib/app_config.dart @@ -9,6 +9,8 @@ abstract class AppConfig { static const prefix = _prefix; static const suffix = _suffix; + static String get appDefaultDataDirName => _appDataDirName; + static List get coins => _supportedCoins; static CryptoCurrency getCryptoCurrencyFor(String coinIdentifier) => diff --git a/lib/main.dart b/lib/main.dart index 0e0127afe..39adfd952 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -28,6 +28,8 @@ import 'package:hive_flutter/hive_flutter.dart'; import 'package:isar/isar.dart'; import 'package:keyboard_dismisser/keyboard_dismisser.dart'; import 'package:path_provider/path_provider.dart'; +import 'package:window_size/window_size.dart'; + import 'app_config.dart'; import 'db/db_version_migration.dart'; import 'db/hive/db.dart'; @@ -75,7 +77,6 @@ import 'utilities/stack_file_system.dart'; import 'utilities/util.dart'; import 'wallets/isar/providers/all_wallets_info_provider.dart'; import 'widgets/crypto_notifications.dart'; -import 'package:window_size/window_size.dart'; final openedFromSWBFileStringStateProvider = StateProvider((ref) => null); @@ -87,9 +88,11 @@ void main(List args) async { WidgetsFlutterBinding.ensureInitialized(); if (Util.isDesktop && args.length == 2 && args.first == "-d") { - StackFileSystem.overrideDir = args.last; + StackFileSystem.setDesktopOverrideDir(args.last); } + // TODO set external libs file paths (bad external lib design workaround) + final loadCoinlibFuture = loadCoinlib(); GoogleFonts.config.allowRuntimeFetching = false; diff --git a/lib/utilities/stack_file_system.dart b/lib/utilities/stack_file_system.dart index a5b58794d..b5f28e48a 100644 --- a/lib/utilities/stack_file_system.dart +++ b/lib/utilities/stack_file_system.dart @@ -11,40 +11,52 @@ import 'dart:io'; import 'package:path_provider/path_provider.dart'; + +import '../app_config.dart'; import 'logger.dart'; import 'util.dart'; abstract class StackFileSystem { - static String? overrideDir; + static String? _overrideDesktopDirPath; + static bool _overrideDirSet = false; + static void setDesktopOverrideDir(String dirPath) { + if (_overrideDirSet) { + throw Exception( + "Attempted to change StackFileSystem._overrideDir unexpectedly", + ); + } + _overrideDesktopDirPath = dirPath; + _overrideDirSet = true; + } static Future applicationRootDirectory() async { Directory appDirectory; - // if this is changed, the directories in libmonero must also be changed!!!!! - const dirName = "stackwallet"; - // todo: can merge and do same as regular linux home dir? if (Logging.isArmLinux) { appDirectory = await getApplicationDocumentsDirectory(); - appDirectory = Directory("${appDirectory.path}/.$dirName"); + appDirectory = + Directory("${appDirectory.path}/.${AppConfig.appDefaultDataDirName}"); } else if (Platform.isLinux) { - if (overrideDir != null) { - appDirectory = Directory(overrideDir!); + if (_overrideDesktopDirPath != null) { + appDirectory = Directory(_overrideDesktopDirPath!); } else { - appDirectory = Directory("${Platform.environment['HOME']}/.$dirName"); + appDirectory = Directory( + "${Platform.environment['HOME']}/.${AppConfig.appDefaultDataDirName}"); } } else if (Platform.isWindows) { - if (overrideDir != null) { - appDirectory = Directory(overrideDir!); + if (_overrideDesktopDirPath != null) { + appDirectory = Directory(_overrideDesktopDirPath!); } else { appDirectory = await getApplicationSupportDirectory(); } } else if (Platform.isMacOS) { - if (overrideDir != null) { - appDirectory = Directory(overrideDir!); + if (_overrideDesktopDirPath != null) { + appDirectory = Directory(_overrideDesktopDirPath!); } else { appDirectory = await getLibraryDirectory(); - appDirectory = Directory("${appDirectory.path}/$dirName"); + appDirectory = Directory( + "${appDirectory.path}/${AppConfig.appDefaultDataDirName}"); } } else if (Platform.isIOS) { // todo: check if we need different behaviour here diff --git a/scripts/app_config/configure_stack_duo.sh b/scripts/app_config/configure_stack_duo.sh index 99e60e4cd..3b597d287 100755 --- a/scripts/app_config/configure_stack_duo.sh +++ b/scripts/app_config/configure_stack_duo.sh @@ -33,6 +33,7 @@ part of 'app_config.dart'; const _prefix = "Stack"; const _separator = " "; const _suffix = "Duo"; +const _appDataDirName = "stackduo"; final List _supportedCoins = List.unmodifiable([ Bitcoin(CryptoCurrencyNetwork.main), diff --git a/scripts/app_config/configure_stack_wallet.sh b/scripts/app_config/configure_stack_wallet.sh index acd13fb22..b6f7d066b 100755 --- a/scripts/app_config/configure_stack_wallet.sh +++ b/scripts/app_config/configure_stack_wallet.sh @@ -35,6 +35,7 @@ part of 'app_config.dart'; const _prefix = "Stack"; const _separator = " "; const _suffix = "Wallet"; +const _appDataDirName = "stackwallet"; final List _supportedCoins = List.unmodifiable([ Bitcoin(CryptoCurrencyNetwork.main), From 0af6574e816490214a52749190a9235f4ca846d0 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 10:41:42 -0600 Subject: [PATCH 111/318] Tell flutter_libmonero how to get access to the application dir --- crypto_plugins/flutter_libmonero | 2 +- lib/main.dart | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index 2c684cedb..a3ccff7f2 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit 2c684cedba6c3d9353c7ea748cadb5a246008027 +Subproject commit a3ccff7f244b58bc63e0cf882ca4e1bb5aed1a73 diff --git a/lib/main.dart b/lib/main.dart index 39adfd952..a714447ab 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -14,6 +14,7 @@ import 'dart:math'; import 'package:coinlib_flutter/coinlib_flutter.dart'; import 'package:cw_core/node.dart'; +import 'package:cw_core/pathForWallet.dart'; import 'package:cw_core/unspent_coins_info.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_type.dart'; @@ -91,7 +92,11 @@ void main(List args) async { StackFileSystem.setDesktopOverrideDir(args.last); } - // TODO set external libs file paths (bad external lib design workaround) + // Tell flutter_libmonero how to get access to the application dir + FS.setApplicationRootDirectoryFunction( + StackFileSystem.applicationRootDirectory, + ); + // TODO set any other external libs file paths (bad external lib design workaround) final loadCoinlibFuture = loadCoinlib(); From 92802fc5597f6ce5e81f151aa7f3c9955db9d1cc Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 10:48:18 -0600 Subject: [PATCH 112/318] update libmonero version to include logic error fix --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index a3ccff7f2..6e71b956c 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit a3ccff7f244b58bc63e0cf882ca4e1bb5aed1a73 +Subproject commit 6e71b956c3801f65a662c7f140e871c246166db3 From 3ee22cbbacb76abb80e5f82f4732e22c11f59f74 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 11:05:30 -0600 Subject: [PATCH 113/318] handle getting currency via ticker or name a bit more nicely --- lib/app_config.dart | 27 ++-- lib/db/db_version_migration.dart | 2 +- lib/db/migrate_wallets_to_isar.dart | 9 +- lib/models/contact_address_entry.dart | 2 +- lib/models/isar/models/contact_entry.dart | 3 +- .../sub_widgets/crypto_selection_view.dart | 3 +- .../sub_widgets/exchange_provider_option.dart | 4 +- .../exchange_view/trade_details_view.dart | 32 ++--- .../helpers/restore_create_backup.dart | 9 +- .../exchange_steps/step_scaffold.dart | 29 +++-- .../subwidgets/desktop_step_2.dart | 115 ++++++++++++------ lib/wallets/isar/models/wallet_info.dart | 7 +- 12 files changed, 148 insertions(+), 94 deletions(-) diff --git a/lib/app_config.dart b/lib/app_config.dart index 131c7ff5b..efe6b067e 100644 --- a/lib/app_config.dart +++ b/lib/app_config.dart @@ -13,21 +13,28 @@ abstract class AppConfig { static List get coins => _supportedCoins; - static CryptoCurrency getCryptoCurrencyFor(String coinIdentifier) => - coins.firstWhere( - (e) => e.identifier == coinIdentifier, - ); + static CryptoCurrency? getCryptoCurrencyFor(String coinIdentifier) { + try { + return coins.firstWhere((e) => e.identifier == coinIdentifier); + } catch (_) { + return null; + } + } - static CryptoCurrency getCryptoCurrencyForTicker( + static CryptoCurrency? getCryptoCurrencyForTicker( final String ticker, { bool caseInsensitive = true, }) { final _ticker = caseInsensitive ? ticker.toLowerCase() : ticker; - return coins.firstWhere( - caseInsensitive - ? (e) => e.ticker.toLowerCase() == _ticker && e is! FrostCurrency - : (e) => e.ticker == _ticker && e is! FrostCurrency, - ); + try { + return coins.firstWhere( + caseInsensitive + ? (e) => e.ticker.toLowerCase() == _ticker && e is! FrostCurrency + : (e) => e.ticker == _ticker && e is! FrostCurrency, + ); + } catch (_) { + return null; + } } /// Fuzzy logic. Use with caution!! diff --git a/lib/db/db_version_migration.dart b/lib/db/db_version_migration.dart index 6d2cecd3a..fe563f5ea 100644 --- a/lib/db/db_version_migration.dart +++ b/lib/db/db_version_migration.dart @@ -557,7 +557,7 @@ class DbVersionMigrator with WalletDB { final count = await MainDB.instance.getTransactions(walletId).count(); - final crypto = AppConfig.getCryptoCurrencyFor(info.coinIdentifier); + final crypto = AppConfig.getCryptoCurrencyFor(info.coinIdentifier)!; for (var i = 0; i < count; i += 50) { final txns = await MainDB.instance diff --git a/lib/db/migrate_wallets_to_isar.dart b/lib/db/migrate_wallets_to_isar.dart index ba49c9453..f957ff6e9 100644 --- a/lib/db/migrate_wallets_to_isar.dart +++ b/lib/db/migrate_wallets_to_isar.dart @@ -2,9 +2,8 @@ import 'dart:convert'; import 'package:hive_flutter/hive_flutter.dart'; import 'package:isar/isar.dart'; + import '../app_config.dart'; -import 'hive/db.dart'; -import 'isar/main_db.dart'; import '../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../models/isar/models/isar_models.dart'; import '../utilities/flutter_secure_storage_interface.dart'; @@ -13,6 +12,8 @@ import '../wallets/isar/models/token_wallet_info.dart'; import '../wallets/isar/models/wallet_info.dart'; import '../wallets/isar/models/wallet_info_meta.dart'; import '../wallets/wallet/supporting/epiccash_wallet_info_extension.dart'; +import 'hive/db.dart'; +import 'isar/main_db.dart'; Future migrateWalletsToIsar({ required SecureStorageInterface secureStore, @@ -167,8 +168,8 @@ Future migrateWalletsToIsar({ coinName: old.coinIdentifier, walletId: old.walletId, name: old.name, - mainAddressType: - AppConfig.getCryptoCurrencyFor(old.coinIdentifier).primaryAddressType, + mainAddressType: AppConfig.getCryptoCurrencyFor(old.coinIdentifier)! + .primaryAddressType, favouriteOrderIndex: favourites.indexOf(old.walletId), cachedChainHeight: walletBox.get( DBKeys.storedChainHeight, diff --git a/lib/models/contact_address_entry.dart b/lib/models/contact_address_entry.dart index 3468d1706..b11f4f737 100644 --- a/lib/models/contact_address_entry.dart +++ b/lib/models/contact_address_entry.dart @@ -43,7 +43,7 @@ class ContactAddressEntry { factory ContactAddressEntry.fromJson(Map jsonObject) { return ContactAddressEntry( - coin: AppConfig.getCryptoCurrencyFor(jsonObject["coin"] as String), + coin: AppConfig.getCryptoCurrencyFor(jsonObject["coin"] as String)!, address: jsonObject["address"] as String, label: jsonObject["label"] as String, other: jsonObject["other"] as String?, diff --git a/lib/models/isar/models/contact_entry.dart b/lib/models/isar/models/contact_entry.dart index 82de58484..66cd68dc1 100644 --- a/lib/models/isar/models/contact_entry.dart +++ b/lib/models/isar/models/contact_entry.dart @@ -9,6 +9,7 @@ */ import 'package:isar/isar.dart'; + import '../../../app_config.dart'; import '../../../wallets/crypto_currency/crypto_currency.dart'; @@ -102,7 +103,7 @@ class ContactAddressEntry { late final String? other; @ignore - CryptoCurrency get coin => AppConfig.getCryptoCurrencyFor(coinName); + CryptoCurrency get coin => AppConfig.getCryptoCurrencyFor(coinName)!; ContactAddressEntry(); diff --git a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart index 55ab49d6c..47cd3b3c7 100644 --- a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart +++ b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart @@ -13,6 +13,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../app_config.dart'; import '../../../models/buy/response_objects/crypto.dart'; import '../../../themes/coin_icon_provider.dart'; @@ -305,7 +306,7 @@ class CoinIconForTicker extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { try { - final coin = AppConfig.getCryptoCurrencyForTicker(ticker); + final coin = AppConfig.getCryptoCurrencyForTicker(ticker)!; return SvgPicture.file( File( ref.watch(coinIconProvider(coin)), diff --git a/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart b/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart index 83937ac0e..29cbd7f7f 100644 --- a/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart +++ b/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart @@ -12,6 +12,7 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../app_config.dart'; import '../../../models/exchange/response_objects/estimate.dart'; import '../../../providers/exchange/exchange_form_state_provider.dart'; @@ -95,7 +96,8 @@ class _ExchangeOptionState extends ConsumerState { try { decimals = AppConfig.getCryptoCurrencyForTicker( receivingCurrency.ticker, - ).fractionDigits; + )! + .fractionDigits; } catch (_) { decimals = 8; // some reasonable alternative } diff --git a/lib/pages/exchange_view/trade_details_view.dart b/lib/pages/exchange_view/trade_details_view.dart index 552ae0891..ae9fad302 100644 --- a/lib/pages/exchange_view/trade_details_view.dart +++ b/lib/pages/exchange_view/trade_details_view.dart @@ -17,15 +17,14 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; +import 'package:tuple/tuple.dart'; +import 'package:url_launcher/url_launcher.dart'; + import '../../app_config.dart'; import '../../models/exchange/change_now/exchange_transaction_status.dart'; import '../../models/isar/models/blockchain_data/transaction.dart'; import '../../models/isar/stack_theme.dart'; import '../../notifications/show_flush_bar.dart'; -import 'edit_trade_note_view.dart'; -import 'send_from_view.dart'; -import '../wallet_view/transaction_views/edit_note_view.dart'; -import '../wallet_view/transaction_views/transaction_details_view.dart'; import '../../providers/global/trades_service_provider.dart'; import '../../providers/providers.dart'; import '../../route_generator.dart'; @@ -54,8 +53,10 @@ import '../../widgets/desktop/secondary_button.dart'; import '../../widgets/rounded_container.dart'; import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_dialog.dart'; -import 'package:tuple/tuple.dart'; -import 'package:url_launcher/url_launcher.dart'; +import '../wallet_view/transaction_views/edit_note_view.dart'; +import '../wallet_view/transaction_views/transaction_details_view.dart'; +import 'edit_trade_note_view.dart'; +import 'send_from_view.dart'; class TradeDetailsView extends ConsumerStatefulWidget { const TradeDetailsView({ @@ -281,7 +282,7 @@ class _TradeDetailsViewState extends ConsumerState { try { coin = AppConfig.getCryptoCurrencyForTicker( trade.payInCurrency, - ); + )!; } catch (_) { coin = AppConfig.getCryptoCurrencyByPrettyName( trade.payInCurrency, @@ -382,7 +383,7 @@ class _TradeDetailsViewState extends ConsumerState { final coin = AppConfig.getCryptoCurrencyForTicker( trade.payInCurrency, - ); + )!; final amount = sendAmount.toAmount( fractionDigits: coin.fractionDigits, ); @@ -628,10 +629,9 @@ class _TradeDetailsViewState extends ConsumerState { CustomTextButton( text: "View transaction", onTap: () { - final CryptoCurrency coin = - AppConfig.getCryptoCurrencyForTicker( + final coin = AppConfig.getCryptoCurrencyForTicker( trade.payInCurrency, - ); + )!; if (isDesktop) { Navigator.of(context).push( @@ -737,7 +737,7 @@ class _TradeDetailsViewState extends ConsumerState { text: address, ), ); - if (mounted) { + if (context.mounted) { unawaited( showFloatingFlushBar( type: FlushBarType.info, @@ -908,7 +908,7 @@ class _TradeDetailsViewState extends ConsumerState { text: address, ), ); - if (mounted) { + if (context.mounted) { unawaited( showFloatingFlushBar( type: FlushBarType.info, @@ -1276,7 +1276,7 @@ class _TradeDetailsViewState extends ConsumerState { onTap: () async { final data = ClipboardData(text: trade.tradeId); await clipboard.setData(data); - if (mounted) { + if (context.mounted) { unawaited( showFloatingFlushBar( type: FlushBarType.info, @@ -1384,7 +1384,7 @@ class _TradeDetailsViewState extends ConsumerState { try { coin = AppConfig.getCryptoCurrencyForTicker( trade.payInCurrency, - ); + )!; } catch (_) { coin = AppConfig.getCryptoCurrencyByPrettyName( trade.payInCurrency, @@ -1415,7 +1415,7 @@ class _TradeDetailsViewState extends ConsumerState { } class _Divider extends StatelessWidget { - const _Divider({Key? key}) : super(key: key); + const _Divider({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart index 7afd515b3..fbe63d398 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart @@ -16,6 +16,10 @@ import 'dart:typed_data'; import 'package:frostdart/frostdart.dart' as frost; import 'package:isar/isar.dart'; import 'package:stack_wallet_backup/stack_wallet_backup.dart'; +import 'package:tuple/tuple.dart'; +import 'package:uuid/uuid.dart'; +import 'package:wakelock/wakelock.dart'; + import '../../../../../app_config.dart'; import '../../../../../db/hive/db.dart'; import '../../../../../db/isar/main_db.dart'; @@ -52,9 +56,6 @@ import '../../../../../wallets/wallet/wallet.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/private_key_interface.dart'; -import 'package:tuple/tuple.dart'; -import 'package:uuid/uuid.dart'; -import 'package:wakelock/wakelock.dart'; class PreRestoreState { final Set walletIds; @@ -776,7 +777,7 @@ abstract class SWB { final coin = AppConfig.getCryptoCurrencyFor( walletbackup['coinName'] as String, - ); + )!; final walletName = walletbackup['name'] as String; final walletId = oldToNewWalletIdMap[walletbackup["id"] as String]!; diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index fb866f61b..103280f88 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -14,15 +14,11 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:qr_flutter/qr_flutter.dart'; + import '../../../app_config.dart'; import '../../../models/exchange/incomplete_exchange.dart'; import '../../../models/exchange/response_objects/trade.dart'; import '../../../pages/exchange_view/send_from_view.dart'; -import 'subwidgets/desktop_step_1.dart'; -import 'subwidgets/desktop_step_2.dart'; -import 'subwidgets/desktop_step_3.dart'; -import 'subwidgets/desktop_step_4.dart'; -import '../subwidgets/desktop_exchange_steps_indicator.dart'; import '../../../providers/exchange/exchange_form_state_provider.dart'; import '../../../providers/global/trades_service_provider.dart'; import '../../../route_generator.dart'; @@ -41,12 +37,18 @@ import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/desktop/secondary_button.dart'; import '../../../widgets/desktop/simple_desktop_dialog.dart'; import '../../../widgets/fade_stack.dart'; +import '../subwidgets/desktop_exchange_steps_indicator.dart'; +import 'subwidgets/desktop_step_1.dart'; +import 'subwidgets/desktop_step_2.dart'; +import 'subwidgets/desktop_step_3.dart'; +import 'subwidgets/desktop_step_4.dart'; final ssss = StateProvider((_) => null); final desktopExchangeModelProvider = ChangeNotifierProvider( - (ref) => ref.watch(ssss.state).state); + (ref) => ref.watch(ssss.state).state, +); class StepScaffold extends ConsumerStatefulWidget { const StepScaffold({ @@ -120,8 +122,9 @@ class _StepScaffoldState extends ConsumerState { context: context, barrierDismissible: true, builder: (_) => SimpleDesktopDialog( - title: "Failed to create trade", - message: response.exception?.toString() ?? ""), + title: "Failed to create trade", + message: response.exception?.toString() ?? "", + ), ), ); } @@ -193,7 +196,7 @@ class _StepScaffoldState extends ConsumerState { void sendFromStack() { final trade = ref.read(desktopExchangeModelProvider)!.trade!; final address = trade.payInAddress; - final coin = AppConfig.getCryptoCurrencyForTicker(trade.payInCurrency); + final coin = AppConfig.getCryptoCurrencyForTicker(trade.payInCurrency)!; final amount = Decimal.parse(trade.payInAmount).toAmount( fractionDigits: coin.fractionDigits, ); @@ -387,9 +390,11 @@ class _StepScaffoldState extends ConsumerState { child: QrImageView( // TODO: grab coin uri scheme from somewhere // data: "${coin.uriScheme}:$receivingAddress", - data: ref.watch(desktopExchangeModelProvider - .select((value) => - value!.trade!.payInAddress)), + data: ref.watch( + desktopExchangeModelProvider.select( + (value) => value!.trade!.payInAddress, + ), + ), size: 290, foregroundColor: Theme.of(context) .extension()! diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart index f3f890745..c6de52ba3 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart @@ -11,11 +11,10 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:tuple/tuple.dart'; + import '../../../../app_config.dart'; import '../../../../models/contact_address_entry.dart'; -import '../step_scaffold.dart'; -import '../../subwidgets/desktop_choose_from_stack.dart'; -import '../../../my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart'; import '../../../../providers/exchange/exchange_send_from_wallet_id_provider.dart'; import '../../../../providers/global/wallets_provider.dart'; import '../../../../themes/stack_colors.dart'; @@ -32,7 +31,9 @@ import '../../../../widgets/icon_widgets/x_icon.dart'; import '../../../../widgets/rounded_white_container.dart'; import '../../../../widgets/stack_text_field.dart'; import '../../../../widgets/textfield_icon_button.dart'; -import 'package:tuple/tuple.dart'; +import '../../../my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart'; +import '../../subwidgets/desktop_choose_from_stack.dart'; +import '../step_scaffold.dart'; class DesktopStep2 extends ConsumerStatefulWidget { const DesktopStep2({ @@ -70,7 +71,7 @@ class _DesktopStep2State extends ConsumerState { try { final coin = AppConfig.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.receiveTicker, - ); + )!; final info = await showDialog?>( context: context, @@ -96,14 +97,15 @@ class _DesktopStep2State extends ConsumerState { } widget.enableNextChanged.call( - _toController.text.isNotEmpty && _refundController.text.isNotEmpty); + _toController.text.isNotEmpty && _refundController.text.isNotEmpty, + ); } void selectRefundAddressFromStack() async { try { final coin = AppConfig.getCryptoCurrencyForTicker( ref.read(desktopExchangeModelProvider)!.sendTicker, - ); + )!; final info = await showDialog?>( context: context, @@ -127,7 +129,8 @@ class _DesktopStep2State extends ConsumerState { Logging.instance.log("$e\n$s", level: LogLevel.Info); } widget.enableNextChanged.call( - _toController.text.isNotEmpty && _refundController.text.isNotEmpty); + _toController.text.isNotEmpty && _refundController.text.isNotEmpty, + ); } void selectRecipientFromAddressBook() async { @@ -173,7 +176,8 @@ class _DesktopStep2State extends ConsumerState { _toController.text = entry.address; ref.read(desktopExchangeModelProvider)!.recipientAddress = entry.address; widget.enableNextChanged.call( - _toController.text.isNotEmpty && _refundController.text.isNotEmpty); + _toController.text.isNotEmpty && _refundController.text.isNotEmpty, + ); } } @@ -220,7 +224,8 @@ class _DesktopStep2State extends ConsumerState { _refundController.text = entry.address; ref.read(desktopExchangeModelProvider)!.refundAddress = entry.address; widget.enableNextChanged.call( - _toController.text.isNotEmpty && _refundController.text.isNotEmpty); + _toController.text.isNotEmpty && _refundController.text.isNotEmpty, + ); } } @@ -301,12 +306,17 @@ class _DesktopStep2State extends ConsumerState { Text( "Recipient Wallet", style: STextStyles.desktopTextExtraExtraSmall(context).copyWith( - color: Theme.of(context) - .extension()! - .textFieldActiveSearchIconRight), + color: Theme.of(context) + .extension()! + .textFieldActiveSearchIconRight, + ), ), - if (isStackCoin(ref.watch(desktopExchangeModelProvider - .select((value) => value!.receiveTicker)))) + if (isStackCoin( + ref.watch( + desktopExchangeModelProvider + .select((value) => value!.receiveTicker), + ), + )) CustomTextButton( text: "Choose from Stack", onTap: selectRecipientAddressFromStack, @@ -339,8 +349,10 @@ class _DesktopStep2State extends ConsumerState { focusNode: _toFocusNode, style: STextStyles.field(context), onChanged: (value) { - widget.enableNextChanged.call(_toController.text.isNotEmpty && - _refundController.text.isNotEmpty); + widget.enableNextChanged.call( + _toController.text.isNotEmpty && + _refundController.text.isNotEmpty, + ); }, decoration: standardInputDecoration( "Enter the ${ref.watch(desktopExchangeModelProvider.select((value) => value!.receiveTicker.toUpperCase()))} payout address", @@ -365,21 +377,24 @@ class _DesktopStep2State extends ConsumerState { _toController.text.isNotEmpty ? TextFieldIconButton( key: const Key( - "sendViewClearAddressFieldButtonKey"), + "sendViewClearAddressFieldButtonKey", + ), onTap: () { _toController.text = ""; ref .read(desktopExchangeModelProvider)! .recipientAddress = _toController.text; widget.enableNextChanged.call( - _toController.text.isNotEmpty && - _refundController.text.isNotEmpty); + _toController.text.isNotEmpty && + _refundController.text.isNotEmpty, + ); }, child: const XIcon(), ) : TextFieldIconButton( key: const Key( - "sendViewPasteAddressFieldButtonKey"), + "sendViewPasteAddressFieldButtonKey", + ), onTap: () async { final ClipboardData? data = await clipboard .getData(Clipboard.kTextPlain); @@ -391,8 +406,9 @@ class _DesktopStep2State extends ConsumerState { .read(desktopExchangeModelProvider)! .recipientAddress = _toController.text; widget.enableNextChanged.call( - _toController.text.isNotEmpty && - _refundController.text.isNotEmpty); + _toController.text.isNotEmpty && + _refundController.text.isNotEmpty, + ); } }, child: _toController.text.isEmpty @@ -400,8 +416,12 @@ class _DesktopStep2State extends ConsumerState { : const XIcon(), ), if (_toController.text.isEmpty && - isStackCoin(ref.watch(desktopExchangeModelProvider - .select((value) => value!.receiveTicker)))) + isStackCoin( + ref.watch( + desktopExchangeModelProvider + .select((value) => value!.receiveTicker), + ), + )) TextFieldIconButton( key: const Key("sendViewAddressBookButtonKey"), onTap: selectRecipientFromAddressBook, @@ -433,12 +453,17 @@ class _DesktopStep2State extends ConsumerState { Text( "Refund Wallet (required)", style: STextStyles.desktopTextExtraExtraSmall(context).copyWith( - color: Theme.of(context) - .extension()! - .textFieldActiveSearchIconRight), + color: Theme.of(context) + .extension()! + .textFieldActiveSearchIconRight, + ), ), - if (isStackCoin(ref.watch(desktopExchangeModelProvider - .select((value) => value!.sendTicker)))) + if (isStackCoin( + ref.watch( + desktopExchangeModelProvider + .select((value) => value!.sendTicker), + ), + )) CustomTextButton( text: "Choose from Stack", onTap: selectRefundAddressFromStack, @@ -470,8 +495,10 @@ class _DesktopStep2State extends ConsumerState { focusNode: _refundFocusNode, style: STextStyles.field(context), onChanged: (value) { - widget.enableNextChanged.call(_toController.text.isNotEmpty && - _refundController.text.isNotEmpty); + widget.enableNextChanged.call( + _toController.text.isNotEmpty && + _refundController.text.isNotEmpty, + ); }, decoration: standardInputDecoration( "Enter ${ref.watch(desktopExchangeModelProvider.select((value) => value!.sendTicker.toUpperCase()))} refund address", @@ -496,7 +523,8 @@ class _DesktopStep2State extends ConsumerState { _refundController.text.isNotEmpty ? TextFieldIconButton( key: const Key( - "sendViewClearAddressFieldButtonKey"), + "sendViewClearAddressFieldButtonKey", + ), onTap: () { _refundController.text = ""; ref @@ -504,14 +532,16 @@ class _DesktopStep2State extends ConsumerState { .refundAddress = _refundController.text; widget.enableNextChanged.call( - _toController.text.isNotEmpty && - _refundController.text.isNotEmpty); + _toController.text.isNotEmpty && + _refundController.text.isNotEmpty, + ); }, child: const XIcon(), ) : TextFieldIconButton( key: const Key( - "sendViewPasteAddressFieldButtonKey"), + "sendViewPasteAddressFieldButtonKey", + ), onTap: () async { final ClipboardData? data = await clipboard .getData(Clipboard.kTextPlain); @@ -525,8 +555,9 @@ class _DesktopStep2State extends ConsumerState { .refundAddress = _refundController.text; widget.enableNextChanged.call( - _toController.text.isNotEmpty && - _refundController.text.isNotEmpty); + _toController.text.isNotEmpty && + _refundController.text.isNotEmpty, + ); } }, child: _refundController.text.isEmpty @@ -534,8 +565,12 @@ class _DesktopStep2State extends ConsumerState { : const XIcon(), ), if (_refundController.text.isEmpty && - isStackCoin(ref.watch(desktopExchangeModelProvider - .select((value) => value!.sendTicker)))) + isStackCoin( + ref.watch( + desktopExchangeModelProvider + .select((value) => value!.sendTicker), + ), + )) TextFieldIconButton( key: const Key("sendViewAddressBookButtonKey"), onTap: selectRefundFromAddressBook, diff --git a/lib/wallets/isar/models/wallet_info.dart b/lib/wallets/isar/models/wallet_info.dart index 8a1d1c5ff..60a7a1b30 100644 --- a/lib/wallets/isar/models/wallet_info.dart +++ b/lib/wallets/isar/models/wallet_info.dart @@ -1,13 +1,14 @@ import 'dart:convert'; import 'package:isar/isar.dart'; +import 'package:uuid/uuid.dart'; + import '../../../app_config.dart'; import '../../../models/balance.dart'; import '../../../models/isar/models/blockchain_data/address.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../isar_id_interface.dart'; import 'wallet_info_meta.dart'; -import 'package:uuid/uuid.dart'; part 'wallet_info.g.dart'; @@ -96,7 +97,7 @@ class WalletInfo implements IsarId { } @ignore - CryptoCurrency get coin => AppConfig.getCryptoCurrencyFor(coinName); + CryptoCurrency get coin => AppConfig.getCryptoCurrencyFor(coinName)!; @ignore Balance get cachedBalance { @@ -466,7 +467,7 @@ class WalletInfo implements IsarId { ) { final coin = AppConfig.getCryptoCurrencyFor( jsonObject["coin"] as String, - ); + )!; return WalletInfo( coinName: coin.identifier, walletId: jsonObject["id"] as String, From cf7433655c50cb7d550be04a14bd7b31d477e7eb Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 11:26:58 -0600 Subject: [PATCH 114/318] centralize isStackCoin check functionality --- lib/app_config.dart | 17 +++++++ lib/models/isar/exchange_cache/currency.dart | 12 +---- lib/pages/buy_view/buy_form.dart | 28 ++++------- .../sub_widgets/crypto_selection_view.dart | 11 ----- .../exchange_currency_selection_view.dart | 46 ++++++++++--------- .../exchange_step_views/step_2_view.dart | 24 ++++------ .../exchange_view/trade_details_view.dart | 18 ++------ .../subwidgets/desktop_step_2.dart | 17 ++----- lib/services/buy/simplex/simplex_api.dart | 20 ++------ .../majestic_bank/majestic_bank_exchange.dart | 6 ++- .../simpleswap/simpleswap_exchange.dart | 4 +- .../exchange/trocador/trocador_exchange.dart | 13 ++++-- .../textfields/exchange_textfield.dart | 5 +- 13 files changed, 92 insertions(+), 129 deletions(-) diff --git a/lib/app_config.dart b/lib/app_config.dart index efe6b067e..9374d94bd 100644 --- a/lib/app_config.dart +++ b/lib/app_config.dart @@ -37,6 +37,23 @@ abstract class AppConfig { } } + static bool isStackCoin(String? ticker) { + if (ticker == null) { + return false; + } + + if (getCryptoCurrencyForTicker(ticker, caseInsensitive: false) != null) { + return true; + } + + try { + getCryptoCurrencyByPrettyName(ticker); + return true; + } catch (_) { + return false; + } + } + /// Fuzzy logic. Use with caution!! @Deprecated("dangerous") static CryptoCurrency getCryptoCurrencyByPrettyName(final String prettyName) { diff --git a/lib/models/isar/exchange_cache/currency.dart b/lib/models/isar/exchange_cache/currency.dart index f0e9ee132..71c7890ce 100644 --- a/lib/models/isar/exchange_cache/currency.dart +++ b/lib/models/isar/exchange_cache/currency.dart @@ -9,6 +9,7 @@ */ import 'package:isar/isar.dart'; + import '../../../app_config.dart'; import 'pair.dart'; @@ -98,7 +99,7 @@ class Currency { rateType: rateType, isAvailable: json["isAvailable"] as bool?, isStackCoin: - json["isStackCoin"] as bool? ?? Currency.checkIsStackCoin(ticker), + json["isStackCoin"] as bool? ?? AppConfig.isStackCoin(ticker), tokenContract: json["tokenContract"] as String?, )..id = json["id"] as int?; } catch (e) { @@ -158,13 +159,4 @@ class Currency { String toString() { return "Currency: ${toJson()}"; } - - static bool checkIsStackCoin(String ticker) { - try { - AppConfig.getCryptoCurrencyForTicker(ticker); - return true; - } catch (_) { - return false; - } - } } diff --git a/lib/pages/buy_view/buy_form.dart b/lib/pages/buy_view/buy_form.dart index b1068150e..1baf97db3 100644 --- a/lib/pages/buy_view/buy_form.dart +++ b/lib/pages/buy_view/buy_form.dart @@ -16,17 +16,13 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:intl/intl.dart'; + import '../../app_config.dart'; import '../../models/buy/response_objects/crypto.dart'; import '../../models/buy/response_objects/fiat.dart'; import '../../models/buy/response_objects/quote.dart'; import '../../models/contact_address_entry.dart'; import '../../models/isar/models/ethereum/eth_contract.dart'; -import '../address_book_views/address_book_view.dart'; -import 'buy_quote_preview.dart'; -import 'sub_widgets/crypto_selection_view.dart'; -import 'sub_widgets/fiat_selection_view.dart'; -import '../exchange_view/choose_from_stack_view.dart'; import '../../pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart'; import '../../providers/providers.dart'; import '../../services/buy/buy_response.dart'; @@ -56,6 +52,11 @@ import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_dialog.dart'; import '../../widgets/stack_text_field.dart'; import '../../widgets/textfield_icon_button.dart'; +import '../address_book_views/address_book_view.dart'; +import '../exchange_view/choose_from_stack_view.dart'; +import 'buy_quote_preview.dart'; +import 'sub_widgets/crypto_selection_view.dart'; +import 'sub_widgets/fiat_selection_view.dart'; class BuyForm extends ConsumerStatefulWidget { const BuyForm({ @@ -409,17 +410,6 @@ class _BuyFormState extends ConsumerState { // return null; // } - bool isStackCoin(String? ticker) { - if (ticker == null) return false; - - try { - AppConfig.getCryptoCurrencyForTicker(ticker); - return true; - } on ArgumentError catch (_) { - return false; - } - } - Future previewQuote(SimplexQuote quote) async { bool shouldPop = false; unawaited( @@ -1163,7 +1153,7 @@ class _BuyFormState extends ConsumerState { Theme.of(context).extension()!.textDark3, ), ), - if (isStackCoin(selectedCrypto?.ticker)) + if (AppConfig.isStackCoin(selectedCrypto?.ticker)) CustomTextButton( text: "Choose from Stack", onTap: () { @@ -1297,7 +1287,7 @@ class _BuyFormState extends ConsumerState { : const XIcon(), ), if (_receiveAddressController.text.isEmpty && - isStackCoin(selectedCrypto?.ticker) && + AppConfig.isStackCoin(selectedCrypto?.ticker) && isDesktop) TextFieldIconButton( key: const Key("buyViewAddressBookButtonKey"), @@ -1358,7 +1348,7 @@ class _BuyFormState extends ConsumerState { child: const AddressBookIcon(), ), if (_receiveAddressController.text.isEmpty && - isStackCoin(selectedCrypto?.ticker) && + AppConfig.isStackCoin(selectedCrypto?.ticker) && !isDesktop) TextFieldIconButton( key: const Key("buyViewAddressBookButtonKey"), diff --git a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart index 47cd3b3c7..3bc0b220b 100644 --- a/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart +++ b/lib/pages/buy_view/sub_widgets/crypto_selection_view.dart @@ -267,17 +267,6 @@ class _CryptoSelectionViewState extends ConsumerState { } } -bool isStackCoin(String? ticker) { - if (ticker == null) return false; - - try { - AppConfig.getCryptoCurrencyForTicker(ticker); - return true; - } on ArgumentError catch (_) { - return false; - } -} - // make a stateless widget that takes in string and double (won't ever be null) // class getIconForTicker extends ConsumerWidget{ // const getIconForTicker({ diff --git a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart index 7bda1abbf..ad13cebf4 100644 --- a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart +++ b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart @@ -13,16 +13,16 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; + +import '../../../app_config.dart'; import '../../../exceptions/exchange/unsupported_currency_exception.dart'; import '../../../models/isar/exchange_cache/currency.dart'; import '../../../models/isar/exchange_cache/pair.dart'; -import '../../buy_view/sub_widgets/crypto_selection_view.dart'; import '../../../services/exchange/change_now/change_now_exchange.dart'; import '../../../services/exchange/exchange.dart'; import '../../../services/exchange/exchange_data_loading_service.dart'; import '../../../services/exchange/majestic_bank/majestic_bank_exchange.dart'; import '../../../services/exchange/trocador/trocador_exchange.dart'; -import '../../../app_config.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/constants.dart'; @@ -41,6 +41,7 @@ import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_dialog.dart'; import '../../../widgets/stack_text_field.dart'; import '../../../widgets/textfield_icon_button.dart'; +import '../../buy_view/sub_widgets/crypto_selection_view.dart'; class ExchangeCurrencySelectionView extends StatefulWidget { const ExchangeCurrencySelectionView({ @@ -418,27 +419,28 @@ class _ExchangeCurrencySelectionViewState SizedBox( width: 24, height: 24, - child: isStackCoin(items[index].ticker) - ? CoinIconForTicker( - ticker: items[index].ticker, - size: 24, - ) - // ? getIconForTicker( - // items[index].ticker, - // size: 24, - // ) - : hasImageUrl - ? SvgPicture.network( - items[index].image, - width: 24, - height: 24, - placeholderBuilder: (_) => - const LoadingIndicator(), + child: + AppConfig.isStackCoin(items[index].ticker) + ? CoinIconForTicker( + ticker: items[index].ticker, + size: 24, ) - : const SizedBox( - width: 24, - height: 24, - ), + // ? getIconForTicker( + // items[index].ticker, + // size: 24, + // ) + : hasImageUrl + ? SvgPicture.network( + items[index].image, + width: 24, + height: 24, + placeholderBuilder: (_) => + const LoadingIndicator(), + ) + : const SizedBox( + width: 24, + height: 24, + ), ), const SizedBox( width: 10, diff --git a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart index e2ed07229..6071c4556 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart @@ -11,13 +11,9 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../app_config.dart'; import '../../../models/exchange/incomplete_exchange.dart'; -import '../../address_book_views/address_book_view.dart'; -import '../../address_book_views/subviews/contact_popup.dart'; -import '../choose_from_stack_view.dart'; -import 'step_3_view.dart'; -import '../sub_widgets/step_row.dart'; import '../../../providers/providers.dart'; import '../../../services/exchange/majestic_bank/majestic_bank_exchange.dart'; import '../../../themes/stack_colors.dart'; @@ -38,6 +34,11 @@ import '../../../widgets/icon_widgets/x_icon.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_text_field.dart'; import '../../../widgets/textfield_icon_button.dart'; +import '../../address_book_views/address_book_view.dart'; +import '../../address_book_views/subviews/contact_popup.dart'; +import '../choose_from_stack_view.dart'; +import '../sub_widgets/step_row.dart'; +import 'step_3_view.dart'; class Step2View extends ConsumerStatefulWidget { const Step2View({ @@ -70,15 +71,6 @@ class _Step2ViewState extends ConsumerState { bool enableNext = false; - bool isStackCoin(String ticker) { - try { - AppConfig.getCryptoCurrencyForTicker(ticker); - return true; - } on ArgumentError catch (_) { - return false; - } - } - @override void initState() { model = widget.model; @@ -202,7 +194,7 @@ class _Step2ViewState extends ConsumerState { "Recipient Wallet", style: STextStyles.smallMed12(context), ), - if (isStackCoin(model.receiveTicker)) + if (AppConfig.isStackCoin(model.receiveTicker)) CustomTextButton( text: "Choose from Stack", onTap: () { @@ -488,7 +480,7 @@ class _Step2ViewState extends ConsumerState { "Refund Wallet (required)", style: STextStyles.smallMed12(context), ), - if (isStackCoin(model.sendTicker)) + if (AppConfig.isStackCoin(model.sendTicker)) CustomTextButton( text: "Choose from Stack", onTap: () { diff --git a/lib/pages/exchange_view/trade_details_view.dart b/lib/pages/exchange_view/trade_details_view.dart index ae9fad302..68a75704a 100644 --- a/lib/pages/exchange_view/trade_details_view.dart +++ b/lib/pages/exchange_view/trade_details_view.dart @@ -86,18 +86,6 @@ class _TradeDetailsViewState extends ConsumerState { late final Transaction? transactionIfSentFromStack; late final String? walletId; - bool isStackCoin(String ticker) { - try { - try { - AppConfig.getCryptoCurrencyForTicker(ticker); - } catch (_) {} - AppConfig.getCryptoCurrencyByPrettyName(ticker); - return true; - } on ArgumentError catch (_) { - return false; - } - } - @override initState() { tradeId = widget.tradeId; @@ -260,7 +248,7 @@ class _TradeDetailsViewState extends ConsumerState { ), ), if (!hasTx && - isStackCoin(trade.payInCurrency) && + AppConfig.isStackCoin(trade.payInCurrency) && (trade.status == "New" || trade.status == "new" || trade.status == "waiting" || @@ -269,7 +257,7 @@ class _TradeDetailsViewState extends ConsumerState { height: 32, ), if (!hasTx && - isStackCoin(trade.payInCurrency) && + AppConfig.isStackCoin(trade.payInCurrency) && (trade.status == "New" || trade.status == "new" || trade.status == "waiting" || @@ -1372,7 +1360,7 @@ class _TradeDetailsViewState extends ConsumerState { ), if (!isDesktop && !hasTx && - isStackCoin(trade.payInCurrency) && + AppConfig.isStackCoin(trade.payInCurrency) && (trade.status == "New" || trade.status == "new" || trade.status == "waiting" || diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart index c6de52ba3..a1ff7fb8d 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart @@ -58,15 +58,6 @@ class _DesktopStep2State extends ConsumerState { late final FocusNode _toFocusNode; late final FocusNode _refundFocusNode; - bool isStackCoin(String ticker) { - try { - AppConfig.getCryptoCurrencyForTicker(ticker); - return true; - } on ArgumentError catch (_) { - return false; - } - } - void selectRecipientAddressFromStack() async { try { final coin = AppConfig.getCryptoCurrencyForTicker( @@ -311,7 +302,7 @@ class _DesktopStep2State extends ConsumerState { .textFieldActiveSearchIconRight, ), ), - if (isStackCoin( + if (AppConfig.isStackCoin( ref.watch( desktopExchangeModelProvider .select((value) => value!.receiveTicker), @@ -416,7 +407,7 @@ class _DesktopStep2State extends ConsumerState { : const XIcon(), ), if (_toController.text.isEmpty && - isStackCoin( + AppConfig.isStackCoin( ref.watch( desktopExchangeModelProvider .select((value) => value!.receiveTicker), @@ -458,7 +449,7 @@ class _DesktopStep2State extends ConsumerState { .textFieldActiveSearchIconRight, ), ), - if (isStackCoin( + if (AppConfig.isStackCoin( ref.watch( desktopExchangeModelProvider .select((value) => value!.sendTicker), @@ -565,7 +556,7 @@ class _DesktopStep2State extends ConsumerState { : const XIcon(), ), if (_refundController.text.isEmpty && - isStackCoin( + AppConfig.isStackCoin( ref.watch( desktopExchangeModelProvider .select((value) => value!.sendTicker), diff --git a/lib/services/buy/simplex/simplex_api.dart b/lib/services/buy/simplex/simplex_api.dart index 6c3f52576..5bbb82c1c 100644 --- a/lib/services/buy/simplex/simplex_api.dart +++ b/lib/services/buy/simplex/simplex_api.dart @@ -12,18 +12,19 @@ import 'dart:async'; import 'dart:convert'; import 'package:decimal/decimal.dart'; +import 'package:url_launcher/url_launcher.dart'; + import '../../../app_config.dart'; import '../../../models/buy/response_objects/crypto.dart'; import '../../../models/buy/response_objects/fiat.dart'; import '../../../models/buy/response_objects/order.dart'; import '../../../models/buy/response_objects/quote.dart'; import '../../../networking/http.dart'; -import '../buy_response.dart'; -import '../../tor_service.dart'; import '../../../utilities/enums/fiat_enum.dart'; import '../../../utilities/logger.dart'; import '../../../utilities/prefs.dart'; -import 'package:url_launcher/url_launcher.dart'; +import '../../tor_service.dart'; +import '../buy_response.dart'; class SimplexAPI { static const String authority = "buycrypto.stackwallet.com"; @@ -90,7 +91,7 @@ class SimplexAPI { for (final crypto in jsonArray as List) { // TODO validate jsonArray - if (isStackCoin("${crypto['ticker_symbol']}")) { + if (AppConfig.isStackCoin("${crypto['ticker_symbol']}")) { cryptos.add( Crypto.fromJson({ 'ticker': "${crypto['ticker_symbol']}", @@ -400,14 +401,3 @@ class SimplexAPI { String timeZoneFormatter(Duration offset) => "${offset.isNegative ? "-" : "+"}${offset.inHours.abs().toString().padLeft(2, "0")}:${(offset.inMinutes - offset.inHours * 60).abs().toString().padLeft(2, "0")}"; } - -bool isStackCoin(String? ticker) { - if (ticker == null) return false; - - try { - AppConfig.getCryptoCurrencyForTicker(ticker); - return true; - } on ArgumentError catch (_) { - return false; - } -} diff --git a/lib/services/exchange/majestic_bank/majestic_bank_exchange.dart b/lib/services/exchange/majestic_bank/majestic_bank_exchange.dart index 725942193..351608759 100644 --- a/lib/services/exchange/majestic_bank/majestic_bank_exchange.dart +++ b/lib/services/exchange/majestic_bank/majestic_bank_exchange.dart @@ -9,6 +9,9 @@ */ import 'package:decimal/decimal.dart'; +import 'package:uuid/uuid.dart'; + +import '../../../app_config.dart'; import '../../../exceptions/exchange/exchange_exception.dart'; import '../../../exceptions/exchange/majestic_bank/mb_exception.dart'; import '../../../models/exchange/majestic_bank/mb_order.dart'; @@ -20,7 +23,6 @@ import '../../../models/isar/exchange_cache/pair.dart'; import '../exchange.dart'; import '../exchange_response.dart'; import 'majestic_bank_api.dart'; -import 'package:uuid/uuid.dart'; class MajesticBankExchange extends Exchange { MajesticBankExchange._(); @@ -140,7 +142,7 @@ class MajesticBankExchange extends Exchange { isFiat: false, rateType: SupportedRateType.both, isAvailable: true, - isStackCoin: Currency.checkIsStackCoin(limit.currency), + isStackCoin: AppConfig.isStackCoin(limit.currency), tokenContract: null, ); currencies.add(currency); diff --git a/lib/services/exchange/simpleswap/simpleswap_exchange.dart b/lib/services/exchange/simpleswap/simpleswap_exchange.dart index f897bc3f6..13d8029d5 100644 --- a/lib/services/exchange/simpleswap/simpleswap_exchange.dart +++ b/lib/services/exchange/simpleswap/simpleswap_exchange.dart @@ -9,6 +9,8 @@ */ import 'package:decimal/decimal.dart'; + +import '../../../app_config.dart'; import '../../../models/exchange/response_objects/estimate.dart'; import '../../../models/exchange/response_objects/range.dart'; import '../../../models/exchange/response_objects/trade.dart'; @@ -76,7 +78,7 @@ class SimpleSwapExchange extends Exchange { ? SupportedRateType.both : SupportedRateType.estimated, isAvailable: true, - isStackCoin: Currency.checkIsStackCoin(e.symbol), + isStackCoin: AppConfig.isStackCoin(e.symbol), tokenContract: null, ), ) diff --git a/lib/services/exchange/trocador/trocador_exchange.dart b/lib/services/exchange/trocador/trocador_exchange.dart index a74f0a0cc..701bca7cb 100644 --- a/lib/services/exchange/trocador/trocador_exchange.dart +++ b/lib/services/exchange/trocador/trocador_exchange.dart @@ -11,6 +11,9 @@ import 'dart:math'; import 'package:decimal/decimal.dart'; +import 'package:uuid/uuid.dart'; + +import '../../../app_config.dart'; import '../../../exceptions/exchange/exchange_exception.dart'; import '../../../models/exchange/response_objects/estimate.dart'; import '../../../models/exchange/response_objects/range.dart'; @@ -22,7 +25,6 @@ import '../exchange_response.dart'; import 'response_objects/trocador_coin.dart'; import 'response_objects/trocador_quote.dart'; import 'trocador_api.dart'; -import 'package:uuid/uuid.dart'; class TrocadorExchange extends Exchange { TrocadorExchange._(); @@ -117,7 +119,8 @@ class TrocadorExchange extends Exchange { @override Future>> getAllCurrencies( - bool fixedRate) async { + bool fixedRate, + ) async { _cachedCurrencies ??= (await TrocadorAPI.getCoins(isOnion: false)).value; _cachedCurrencies?.removeWhere((e) => e.network != onlySupportedNetwork); @@ -132,7 +135,7 @@ class TrocadorExchange extends Exchange { image: e.image, isFiat: false, rateType: SupportedRateType.both, - isStackCoin: Currency.checkIsStackCoin(e.ticker), + isStackCoin: AppConfig.isStackCoin(e.ticker), tokenContract: null, isAvailable: true, ), @@ -267,7 +270,9 @@ class TrocadorExchange extends Exchange { @override Future>> getPairedCurrencies( - String forCurrency, bool fixedRate) async { + String forCurrency, + bool fixedRate, + ) async { // TODO: implement getPairedCurrencies throw UnimplementedError(); } diff --git a/lib/widgets/textfields/exchange_textfield.dart b/lib/widgets/textfields/exchange_textfield.dart index 7d1eb7915..0266d6637 100644 --- a/lib/widgets/textfields/exchange_textfield.dart +++ b/lib/widgets/textfields/exchange_textfield.dart @@ -11,6 +11,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + +import '../../app_config.dart'; import '../../models/exchange/aggregate_currency.dart'; import '../../pages/buy_view/sub_widgets/crypto_selection_view.dart'; import '../../providers/global/locale_provider.dart'; @@ -173,7 +175,8 @@ class _ExchangeTextFieldState extends ConsumerState { ), child: Builder( builder: (context) { - if (isStackCoin(widget.currency?.ticker)) { + if (AppConfig.isStackCoin( + widget.currency?.ticker)) { return Center( child: CoinIconForTicker( size: 18, From 5fb02d2eb25bf3554e98ab441760cca24a635a3d Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 11:53:11 -0600 Subject: [PATCH 115/318] add interactive confirmation regarding version and build numbers --- scripts/build_app.sh | 17 ++++++++++++++++- scripts/env.sh | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/build_app.sh b/scripts/build_app.sh index c7198fda5..9901b3cb7 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -x -e +set -e source ./env.sh @@ -13,6 +13,18 @@ usage() { exit 1 } +confirmDisclaimer() { + while true; do + # shellcheck disable=SC2162 + read -p "Please confirm you understand that when using certain values for and there is a chance that the resulting app WILL DELETE CRITICAL WALLET DATA. Are you sure you want to continue? (yes/no): " response + case $response in + [Yy][Ee][Ss] ) echo "Continuing..."; break;; + [Nn][Oo] ) exit 0;; + * ) echo "Invalid response";; + esac + done +} + # required args unset -v APP_VERSION_STRING unset -v APP_BUILD_NUMBER @@ -54,6 +66,9 @@ if [ -z "$APP_NAMED_ID" ]; then usage fi +confirmDisclaimer +set -x + # checks for the correct platform dir and pushes it for later if printf '%s\0' "${APP_PLATFORMS[@]}" | grep -Fxqz -- "${APP_BUILD_PLATFORM}"; then pushd "${APP_PROJECT_ROOT_DIR}/scripts/${APP_BUILD_PLATFORM}" diff --git a/scripts/env.sh b/scripts/env.sh index d47b6f2f4..d938356c4 100755 --- a/scripts/env.sh +++ b/scripts/env.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -x -e +set -e # set project root THIS_SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) From 571977e0e1b916d9f04fbce6b95eb4eb40f13867 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 13:34:40 -0600 Subject: [PATCH 116/318] add frost as a duo option --- scripts/app_config/configure_stack_duo.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/app_config/configure_stack_duo.sh b/scripts/app_config/configure_stack_duo.sh index 3b597d287..d6e0f6919 100755 --- a/scripts/app_config/configure_stack_duo.sh +++ b/scripts/app_config/configure_stack_duo.sh @@ -38,7 +38,9 @@ const _appDataDirName = "stackduo"; final List _supportedCoins = List.unmodifiable([ Bitcoin(CryptoCurrencyNetwork.main), Monero(CryptoCurrencyNetwork.main), + BitcoinFrost(CryptoCurrencyNetwork.main), Bitcoin(CryptoCurrencyNetwork.test), + BitcoinFrost(CryptoCurrencyNetwork.test), ]); EOF \ No newline at end of file From f0977e8728f2d8fb87b20ad9b040a620e25adbfd Mon Sep 17 00:00:00 2001 From: sneurlax Date: Thu, 23 May 2024 21:04:14 -0500 Subject: [PATCH 117/318] update duo theme bundles --- .../bundled_themes/stack_duo/dark.zip | Bin 604359 -> 904648 bytes .../bundled_themes/stack_duo/light.zip | Bin 563892 -> 848898 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/asset_sources/bundled_themes/stack_duo/dark.zip b/asset_sources/bundled_themes/stack_duo/dark.zip index 9823262a9dd969947e9e4cf662341f62d3e38160..b58c357085f1fc976f3198906e66ffc3899615ee 100644 GIT binary patch literal 904648 zcmZ6RLzFHI44%g}@7T6&+uzu>?K`$@-LY-kwryMe+tbsYHj5;SC!6fvX z0b%{WpoyWAHJyuvsjVsfe{-rh?z~Hezg%hEiKNof)!ZwA^ zKlVdy3a8t8*5E9rtP0qX8IrPj3MeVvr0Ydncw`y)dSbF zx-w}BssO|9CdpE?PHlO-`LpF-mOjPFvAPXWAs& zSU=!`RPVJ28Em;0J909)kt)|i47-mV(BHe8`kBs!^|5eC{;YA2rLt0d5<^VXhUvGQ z>qz2e!`c)*_B%;{Ak8^685VQSCn7}MQc!g4@lD`rJy|12ULpe4Kj=hINp z5)w{emkN3~$NOm=Igtpby#mu5Q2arM@;~6Ljz%1G07WuE9NYE_ zfO@x35yG-ufe~bnH2~tEQ%!6!=eMMdxKfQf4>a{+Me4l+fZNk7f#;3d@zN^e*$*B1 znod(Z*^`ICIpr<}Vu$qh`%&ewuutec+4x3_vesf+YsIIcH8;fY%%rD-MEokKRs*fTTjYYsW< z-zZRBvS>58=PtcaH-tuxhbYtMEy9{(^-&-4}8IhZ&FP&)uw}-cwM1%&E>?<)pgAmPAJqyUG3!Ll!TNPj_aV(ZwT1xA(9^uGJoXzV$eh~A)vRtV(P zP6>W7T1v#=3+|8cIN&%oe(S%_zfdr%RnuU3h+Z6n{NqA&(?oGRko5lL+TqB#i7wVn zr}W^V?H8ocMvqrvB~1P#E)8h1KLsf{1u|TT*h0XK5b(|g9ln9!;)yzO6W!6?o9HLW zVj6URoZuJ*SEMnU<;d&0V(e`b89BfvRvn6n)BM>e4`*gIEQNQ|`Yyu%%mSuuqN{yv zg|Yt{@&?@@yT*9qmlXN(*Z{n`W&xW{p=e%% z-9v@}+v=?UrEi3ynzp{74pelUiYAhR3vyPbw9TO|iE%33Ai zKp9?`J_%57q3Q1Jj!geJiMrc3t?Oo?M#9vO>0ly128m8x)VT%E!r_c(&(j`^bZG~1 zf+&*Bgoj!}!0PS~Utl&_`d50RD}HeL$pwY+F3U?fKFk;u5)X%whCyLc@*pFLnZO-) zxsFl)aGCj*!u6f6Aem+!?9(ZH3LZd8!XIT(*C;hh>bwHe&Pn3CQH%5FBHy8nk zl-fran5dhtCR&P4P_+#L>*`VCpG8jrbG>l?DBu;@rApKK!Y7 zeB^fHWL*OgE3sigAZc$Qpjr+&VP?NM20<^_mhG`3d}9hndm>VCG@@Kh^%`PhNE#Cy zV1t>cZEX*w~I*5#+qXw_3_r(;fKZLu75G`WxGH_#H zlO^{0Os+o&dIl>6BE?1Atm{d`z{)3!X?TEqWiH@gokM%DC+}2kB42~LE7!Gz8h@Ki zwB%zU$=^@JX3N?K)*&!;v&^KGDl-$?z-HP>e`mq7QwtZxxbjUaMyhh@ILUq(ua*#a zCU27HF_sN!2niR#X=&&(UB;A+xEpp~fJ-67`PJuq+AEd~?I^!^2p z_*lsY*ENz@L6N{T$1j1n&w6X`%27Bm{xp+|zc4|}l}`Frm9Ksy#riEKK2bldX2MOwP?mZU(Z4${^^LQFO0+Hu9fTNHcL7BG)R9F#`p3 zB&#u~{yaw24N;R-_*SC#j@rvPyM}`ZP|!&3w_n}3YD&FWL|Fv$zfHWl6@vNZp*V_x zlv->a3f#>M`$&chca`pYVJF%kvA6T?M18MEc@wEl!lj39g77O@w*;K)dIW5MWQtk-R8Q)$|s_YjG=&9Q|?cm^2VW352YrGy_>&HzN z*=0>}Ap5XrR0QeV*M0a(n>jB3^vcVo!CIRfvMtVfIz~%rZcU*BCYDw%8=Io!1IIz! zu{)QY&1!mIzAhlJ|F}=sx=SSsNK->n)m!SL`B?e5-yASrt+9V=XnFn_l%PKSo6~5R zI<3>%nY4&Re1{5uNo^W6$Nfg}pIXZuRnsW@P9r4@=T}lj(SaDp!BT*PcBgj$~ zNjQ{}$6rS8A3?$fFy;qC;9ptE&~w@tV!{yJgG4LW2keQ~i$J!-Qvs%arUIk8668H2 z|2>?vG5-Z36UR@wxeLl*FHr-E&kySo{-2U2gf-+`cimgthM6SZjx1L2BW~R-!q-R; z3#``UD6VMdB&wNl#Hnbuy=mcu2GbbgrCQ)o`c@xXcS9S0u9=qgA!N5Rxq2SVG??Dp z?Di0b&E1>6wVq8N^+CQ@sPE^9lvok%E5(mZQ8uD z5%Bk{lRjoHzIYjIt4DpI=rk`w0wTeJ%jfm<6<3)$QuP60< z&Up-?pj z10j|tq6DD<%aKt5uWu5*Z!^F+5O!+%Y%1PH;VHr9d(H>r{wD(XgK*(@X5mh&N?VD^ zKXw5kulTS8jKAlJta_`hvVy7+r;K-)*a=W(49Bx$#6>+0b5b>Kgw#RDtrC0A*s});V&?U ztn#FdcutBe^h2`9;}PcKVy)56b;EV2a*6p1un(mfT#>%Y6(sE`C?R)y)^MLp&AUIN zBJ8xx0#t00@mDFsOxdz#)}(*mY}D9_QVb==g>=SH=4u1A#Px0~KhZP}gh2tgfD4UT z5h>wZARDXzO$j4zYcwVm9Ho{^iezTj&*XsICpB~y7H~nr2{vB}loGFH#~Up_m>6!W z5gPrkA_PrP%1~rEwP{Cl@mB_eGG;5UZdUY!7M~j)0bcz828fyMT75RXd-IVXjFv0c z+xvEi`$x7n%Zf~m{-H6GOIV{tXr98p+2(!8j*m+%eDIp(r|U2` z*_3w}Z3$XGq+}jo9(I8uBDP<`H!zWYCcoi3M>w{B6jo@Es<|EYuU<)FUKyX24m#G% z?^VamZU~CrcSt2?t;GnwG?YAt)WOx%GGoVU;G-qNk^9l4+ADtCh2!r5f{kDYOpZ1U z$bd-o0^A;(hmnYAf8Vec@s*=_$UNdwxE)K+2{PLXVCyWVU$9_;KIYwjNv+yehEPgo z(PiGV8GCXje)+y%gx0HHkW+gjF@L{$fv#ViOx^q7HfPxJin}zZ`h$aaB0YCCUNiR% z@wCcPOLi${fljyiiRNp z3GSw48;UokyDS`pX!0j;FR=(S3grF@RIUT?^Lau0ieUC_)|bksoN4dc_QqsGo>vh> zF9on*pKLs#CQol@1M*j_aOT47Pip^sFAbobZ8b5JrQKw4YAYVj{z}b);55nWzLG40 zmJwO|lsyRCK_K|C(SY#MZFk~Ak2aKG<*%bQEjbH``{Y?$w~m@$Y!XqfDb)%nC99L| zGt2WrAec^Z5zxa{`Vo>>Ua2O^-j(hy<;@Sj_dcyxInAnEhTFAQg<38iD3Par*e_ycI(#?Iy@n?QFdGB`wnH<6j{%TF-KEQ|YV#~CA!^Nfs;n=Au& zuvc!MO6un*^_v-RT)g$Mm~v9i2mbvt8@HLLz-MwXpeQqoQvNPnC5fx0n#;$!AmE6e zU14>;_K-Z!$ZP~D(aw&Z^BL;MRz66N{Kr8069o^s(u$S?@P^2rZS_(@ zka=GnldQal^o-n~hQ$fRLwb6s2&2)^$in(Y9h_t_)grJ5m=v>7G6jLlWNqhq2XdlR zz5lcrgPnKxK8VG44CV=*Wd12P!^umr6Ry?_cs$=_}c z1bE~n?bgs8sbu3=v^rpB!vHrm<5-+$c;&KyXf?w(Q2ulzTOqYdE}zt z)VIJL5A3~O%U?Wsf|9u6hZJzr`WuF_F@F1H<}~bh5(B#hjt=)O;i2^!K=!T1cd)DL zwes%!NJkR(Ld(@|x40Kjg)bAmFj9SLR0?+xXC_FpY~|FfyZ(SJKKV^}g1CryZ$)J{+%wfpM2ymYn)NG!Q zy5eD>OuP-YETqfU2a=IHg5Pl<`coy>03@5qq71y1>Qa}QGUJUa{ywdiH%(`AvLu=IjOA{%(^pk+=Ib zzu?OW7m+ZPlB)F&|I(Kq=F}8%4vhQZEGIr}mV(~tQK{^_%rwH?tUgJaIc*w|Eph?* zJ!IK=s?Dyocff>Ym5&hZ>~S0&hkSGrTtun79Q$-GLif(aFCwHvwMI^54QY>R^;+Kg z3P#%$I(;CfJ=FuAABU=HjEnmNg(P%8&GU?7APXUE319*G-mcMJOu^1hCa=vS#QF#SHwzmEkWxu5iATO zI@cs4>f~Vq#zhn-0Un~q02|sK52@nrebm}bj|u<7n}lTdV3+gQ=%k_fxo1J}ogMROE>Pw8UMg?8^oC!l`hw*viTqnny1)oaRR9KZTk;YXHH@m z_@drI*UjXx@tl2L`B(LDpcLU>P!Ptr=$pfaH|#$;)TtQmFuenuZ+obgN_35_!?6c^>dVWcjZVC4Uc{m5E&7R*zY)81-Acx9mmFqaZBjg${)p4O)&; zofPm=RAqDy?-&5eH$LUujEqGp`gfV{Xp%y`dI2s!{P73jGH&WZ1W+qd_g=_Rx_04D-@H(?wUT6iq*r+4w(- zL2*JT*1S62%a)AkWDHt;jA3+NTV%K=%-Y0@2t481HgVW+*6lF-5;QjU7AIxj8^ODW z4u{aB@3m8FRz-E|yUp9I;FrY?M#8bYvy1(Fn6pAU5Ul!NaU1hGb~OnnRHn`flLsXN{W-HXXGZj+q19MY=UT>mHh$Z`09-dbbr^U%8MnpGsSbL_tm)wbS*GN zag=F6Sv0m3Uad`IH<*m_*Z=2US#9WYpLlxlf{@&n=Dws!Uhi*|PK>mIVG-5IJNzHi z7^SCC1)DNGH7Wzky_0`#-B@k%u2vU5VO1>Xd)Kk-9_?)|A*fJct@d6XV>W5!2DQAV zwu?4@?7{|K&VN3Vds`v**=O%>VykgB=_s4IB#Ke4bRWKpRZ36RrY%hrQ zX)`)_8eW!d$5ge!o`ic3^U{3Q`=erE$;N05k!-}F%K6rlp24TK)gLX8pL010Y(=sU zC^@0gPi908XBplh2+$i#lebR$)-yNe#?Aonz8d(C)LTul7zb4KoAstI zJmz(=H3El3JoV4V;oAq(Bx?@|+?#WI4^MI`Si8IL_Gzj4?-8aWrwZh0!*ov!#*d*H z#ICqzkmS*$6eNGrYp$Hz3IHjZ-VT*raQMcGkPFuwRf(j9?0aY4TLA1h(^Um+z|bS3 z`)TQ%I6GpxC7*w~X>; z?)&dIDeXTo4T9%;&Sz@4u=><|x_KL7yZ&FyXPq{=Ci@q`TC)zW7nX=JZEw=9sV4$B*AcoJuw{NL-_uv0qfNN)m` z#inGJBbUC_QKog!RTm49wfSTSEv?l$W{6EEURHa6(iINj45nu|#Qs_u6;8~LHRg=Y z&R##aN1p41fU=LPwHB+Tl->2M@BPoHMtdqNVE?lIWz>_VC3VE%Sqo3)Rn7uGl9iT4 z9IswXx$gxuEX78i+&XtR44p(KBf{n(chf@WYJWQlTq~mJcGL-?1{xrcT}($%sW{0u zh!EgrjLbG+=1C#f^(zYv1p_^Yyx1NSQ@=Q^FiP3DFlWY9;rk|iTWU|b`kjfALMB)= z`*VDH%xV$oNt}PH)UExIhW+z}Y2W}8!%m3Ynf>@T{KQ{KpGCkf^B{2MJnQ!*%l}@} z4<;STu$}aubD{J#dNTI5f5{ZWjB^6VwKUXcq1==>uw}&V{mqxxjwF~K1}wecMzm~H zI5kZTE1bCySWn(;8i9hFZmnKA+*9l;&g`XbjhfS>9a-v~xHL96RLzUI-5>+>NM-Vm zWzgTZ*tluTlN)EqWoN*qD%TMoSD!Zh)x;map05?kTNV4AqqF6zL~FY&RIJjpms+n) zPn42DtOT`PsTPj0^+tk^DHWzk#=3{i9ONbwOo1kc?is%&-rs8d!>5bbBL}^){?xj^eo&^jq~f6ogKGlDk&;h;e>xWwyEM_uYm(y@u)_;k=z0^V^(}xu1{(IBY?< zKJlCQP{3`T&Q596X0X!t=FgCjB}Zp110{?$)y~rCCM?7smq-vmW3P;741OEm=7O8u zJjTB&`Pg#4UrtpQa~3WXazs1*snhG-xq{*;xunAcTh~Yyy6M-w`OG4G7=UX+C9X@9 zA)|Fch3foYuyfE?@6TXA;N+JvR5QwcmVr*ZVtgSgtFDG^?4%^WszP+v4F%IYbTYUr zLVNG|HX0JyN;sj4nVMHI++v?S7sAgDEVCn1Y1Dk-0XU2;&TAuuVxc=U9m*F_Ys)Ghe9WPE#CyJZi&x}?;u;mD$J>wwK=&H zc7=z`DI7d(w%#+0ortA^A^^mcFBX|FGtMzJ((z)|@9R1e+XN>c{23Xw8?&0$P4 zV-!v`47Vwtu_x}-#129MD6D(XC9!@Rg*8k^Y)0#jE*q;6C@{z>f0YNuq8c25hums& z*2Rs8BrBF=;T~8Xc%9{R>?OW0n2^Mq?XX+m!*(bj;*Eys@ zq;dfjHDx-ic#8r!v}`$}s~*!_Fbf`O35Ky*z+S?j>HAKRwv74ZV};reDGp@L`Z2(B zI7ri|$H4;&0>y+I2FAC8{tKZ2{u=-b?bkbH-_g2Wzc>dg+ea#@uUx~y4 zw64{p-=;0a6Yy4zB?+nh=Q;Fk{>3Y~*6^UQ27SrPu_a&L%oBI(rwTg`#?H=;y$#&W z&J-2TOhr~wLx%6f<4Nhb2_Kh13i(>g?#I7RlG^WZoTj0NWyx_82P1-3PDD>lrJ%yA zen&5qU+L5@ZFX!2pBY|m-;a8|mjFOsUbuDg0Lja^|0|NjDsGHRay9<-P~kB$UoD?8 zJ}xRzv`WN>jc!KCW%9&aH!}eyh|zX+*X_>^ks7qyHZvr!15}~WnGWS=VS|SqX6>A7 zLldEoY*EV-BYZ9v*-^QCRM6ngW!I|h$jjbhQPjuEl(fG@NQC5JaUNf@e!@NgswKm>9pq@oZrSbDb^Ccrfvcl-^WfdFmdCK+8 zd8iX}tf1kI-a6#`t&6|dT^=peT|(5Y+7IuK^0UXjVBDiooQvp$XMdCc+;&>1j(KnK z4-~7LKhFoq#2LZb+KLTu&tkz=DSTiKxti#{n140T$`1kRitnvo^f-*KO9ssl$(MJg zWxQ8wJf=bb-o$Lh!b~o#dq;GjUDRJ^hOb>@g z=7Or^FuQj~w<86tu^MQTGbdNIAM0lvXBM z;Sw9VzjwX5l>Nen$HlJn87lMAc?sznCOP#CPhO$OO_D}%3c=r60t_YzrA<r`Pl%0O zQzg5V{uOHYfl{p*%MEA>rXlE>KNoEYlAV}9SHOY6j50yp!oICwyDxA13CpM<3a!F0 zrQFUC1pm(IW`jL$X?5E)JLGy!yFZb%M{1W##`-17p{s%V$}1=Qc`(-4oMCr+>|Rh| zeeaRW@SJN?JeUqu_Bk{TgxV`sbL*T!KP2Ltty#?)Xlf@u6%-_&MGrDNJV$FjpUV3F ze!b6~?c=G4r-t0&i3YB!=5!4WcuRlsbgD#vCi7F|6z&5HD2#|_ELr<+p_}`$8wZ{N zRumcZYC7xs#enr}{T_Z)-e(UbY6L!EkKIoYym60c@j1M*q^nzfF*YaCxsdE|RY zC@-z-S|u`SA?-)$-k6Dvo=u_#O7(sS1Rj`S<9-+RR5hnjPPH+@`kIj?Fb*c}EyBcX z9joaw*2ryP%1k<)`Rvf>UevejF4f{O$Kau1jLxy?z#!o~W$AkLIv!Reg@A}T)I+o) zy-Yem$!zqu&%1;C2z~@ps5+6#;$gc|=$D@v{by*iVRETXbr|ZxAiPL4jKGI;uFIx! zPNXy4dV%dF56ItkBtCcJWdm6Y>0q`U7_kO;haDTVk#=wU_dI=g=0;w4o6MMr9^3}C``Q-n|G z*lR_&f`m`mGlJLlFe)u9wV{{xOTnAsAu6aZDKb}w}wUk`T9JkxA+wB zc6srXeVt0KcJy{~Q(B#!WO46~97VC*+fZ$si3}i}P}Ut2AX=r<55*!u7e+F#g-QDh zyQ$p)g9&~*+%IS!IJ8{LaYE#fvEr2(C>VrNT0pCMYYXU+Q|kDB-1O!3#&oT)htF(5 z9J=Qy5xY)y9ov}g4iE2B3`n}P`xFj>5B=dRu61{$y?E}#r@K)iCOKD`QH;RAwP@P| zVfclV;g~)A=B$k7rG#AG==O4ZirDxU`j?lP@6yrY4>|)Fvmr+^D5?UlZ|qHVQ6u zL68tf|MP?DCORG>e8D}uh$QMqs<>1XX3fK^pVC@OH`bd9wD@3=fi4wKT zgB$HjUVo@xta?d}vEW(>f4Q-#+nKZJWuDS<2@xp2-~snfFGz`CB-{5ZqTV0QL<6$I z%4t}*Rd=V@q#eN!Ka$enoDFJ^$O|z`NmxpwU zz&5W~%k7q8%;?7+i&@$Y8$PLkB*qlpv%ic+B`OIv<$exjf=yQ3cGLz3 z(19<{j%}QaWS0BST&sShfeE**xCuR_px{?EwIyYt5*7ZEnuRQC*waAS)%o{u1Z*9; zj$-tqURB%4^0w2aWLoj(i?@E^uwDa8Ykzb$hv$k7yWQ_ES0KGv*K*%yy6O4TLLR~L zk_df^Z!eld*@;gu&v$J3hVKe;m-SK=Np{v==W*Bg&ewIj?fagZo>5aZ7RjYVcP}O77AU zI5lqGI#N^iYy-V>11o z+wLBN*bIW++v!+kd;7EGs6$RHmW7i;Dzz=lD8^d`&$W^z^& zd^XC~f(J1_f-_dQYT!#Q{`0#F7`2&3zjeaP^usn!*;W_jdFJZ%g^s#3S3P#GM__rS zZBsI~FkSajU#6qAX}{fxESqa9nd`y8^H>iT?)c=!xw<(|sB3C0^`Cjf>40po;SS(2 zyapZGM*D&qY!&pCQ<*f9-d$HVE&<4vt<@NG943jw@Op$}csw$EzyK==s?uHij z+t)iji`PPOGnWWvyDT&}QUWNg7N_#G`IzP+$QH{YzxD0Z7b&aMs!ln6c6_~Rs*L=% zkr>~cbvLYCg$ac?`C@^&|KWMgd9FLYt(G5Lj9KYXCr8?hN|~FxzYNwV!4>nRxTaly z^Qt?i_GaHA#;WWvh8V_Krcf`lN=Q^E7&)Im`}vFYm;NhJScBc_F8?DcGYL-+SQ`Y|u`Njyx*R3S_2H;@p`n=p?|02ckX*#T1oh|esbLJ{; zTM|w2;ewn(GIcN)JyUOP_4nWzr~YjDe!RQ&59B%(Yrm7*e?cmLt>b43KiEpSH}}|#lv#j`}F<9jnX%4 z8~LIKL)1-W&>&8Li4*I+)2ZUrBA6Q?)J%`e;QInq4~%s}oM2@mFkGUx$6JsN8CJc4 zNK|KYtci-Bn&wciv0%b{mcd^5Mq6+bs#2a#XMuP-VLlN|3bT$reW{!be=2mGyHs(Y zpyltxX-z75ny>;w+~UYwn&?^2jR5U0#n%yLtrBC0A?Zc(BnqimNy^QUrKi7Nw%7>T z1?kaSV@rV6US@f3$R%eOyK&n`2^$gu!rGCS_RO9j$+5hIO+(B$3T}ejmmA8X8_W{Q zC)!XOZ^4e{+s)CWDvI1Qf-BM+7S2k4M)%rk&Flhyy-(9;?B};Hb^U`EcryK4mft@o zD#kNJXj)kWCXR}?9~em_u{`c4>Dm~sENc($H#;$?(J^nxA;di}e2&<+ESvb=@7ZW2 zQ4M9z7v7US-7~5TpYD;9QN396L1FJ%r;zlL738Hb`63@(lYAq3D_aKXlx+FN!gjyF zu%`8T6|F;0WPd;!r5=A+#LXLuNVr8_p5_>DHKeQLvY9~-K9(PEbix-tCP(2$-;)(H zK5Eue3bV|Ttn)_FBeWEc6Lb5fKQ!?A3#VrrlAXW-BPA*#NQRX+DGryrr$(nMl(~NR zpGXTE56QPHs~%zdHh;+NF@9YeN-Xb+B3QJu&!r~AslG=hbh0lz`Hb{rtNOQsi?)Su zFLp`gTpGF3>l}~cZJp44xh};{YTk&b`a8d!b;f=jSWLUq8|>1S)xQ{OYIt%lzGM7j zb=_d7iV6ZnQ8cBbGuBP;f~zQLJ}Fa_U6Mq_*S(X`_k-Is_ciwONwaK_{btkrdcE~~ zKix;&eR5B`b5FBBPvn|#gfYnB0k;pFQO)&O*WID-UujR7?AO;bp9@sRGjFf|xpO@L zB7AZGhM6C%j2|Q#CbSJQQr**ONa4 z7w$G}_igVPF!$eOD^fco7zsX$ia`AL;khI~?~OTW?YBO9_=~lY0)IN;>)o5S+Nuik z-m4l}WpTr3XE^?hI+f$z_);{%5{32>#CWB8ObsD!$-!sS+I7xezP3^`pV`SI|T8FL6>Wgw%#Vj0=<_+U-kCG zpPxU?GdrhO&<6&?f;Euzq@HRsZk`401>`E9hWe`~sVN~BFVoY@XrvZdfAlnV7JF%3 z!%*ydB?|j?rpf+X%-#_aSG4}5X6=w)lMW%Q((a3odHk%-yX#F7ycM}T&$@pQ!NJ$*m`r|@C26x~q^strO1ymSUO5OKNBl}0vVhYt#T^JY{4fIK;M@L7xBxa%O zf6jB=Y+x-`hKjT=@v)nRtk3e}DPVqB^Ji?h@CXa>=)AIZw5s8HQLzZ9V^|xl)^WHaDVg5PZY8-E?vWO5sJ6ncO5!XCG zO~`nn)^gwI=lhv;hhVjAB?y_MrenEdSVV6qm|^r~sDIKd$6X$alc zBqiPN{UUuX--pf&+@bc)gn8>|jc;_cQ_Q1QT<2U%n2f9WH(q>?y?6R&oLtEZV?yRs zZl{HH=mDNfVX%~L7CZeM@!i|VXhYZk6#|n+e5$em><@D@h335Z_~^^}wEM$)J1 zPu40^-C}{T$&@|!?{*159s^tEd2Ia6>P)b$CaDh4G`Xw$sqN^ZG1-V1%M@~-^jvgP z6#q9~!uW`-I%_S!%{PhFK?74S1j9V$Kp)96ooFnB}vAB2pWMZ=V$GMB>Tc&+lm=h-NV_ z^?3FIn8l_hV7q-pA>!R*Iug$Zh6vkbh~p5TQg=FSs0~T5b_aSSzy$q@=9(*^N8|Yi zNET@zKEo9eqf|=3q31xRI;9!cTqO=nsn_hVKYa8FNz!1epGj}pu(i93EQ822IGqatEzG-8^HsK>J zJ;o2x1qvwQ!dv0?6aj)W@vOHdm+G#FRb)27=))=XHmgtlb-Ht`sRzK{VDKi;d}~8t8)}J%kQ#*)qEkHrp~5*y|cg0p%8LdeqBvl zU7j##>Y_BgGJaGoaAX9O&gnI=XfAC%P{1d&bKpUhOe2a z`{V!n#Zm8;jVOH6gMapd^B+M>8hF&B`gIAuqoc^czl zr9!wCpJcyi+9B!0^fQTOo{}Doq4`IN4c)TCN7w)BWn<~NFpaRf!CH&tv8rWTRtNuehV+ZP0$+0Ve#KIOd8)%o+69pT|aC!=fJ zd&q%9T|Hr&5(*f_AYJ#R^Etj|$GJW$Je~9@ar3OnIg%Tmcy2xeLaHPkqA|~khzV=8 zrdCOgC{7{wVgo`C`rk~htgB*P^t(PWP0e))?}Rxp z!aruU6gwBBJfhUMBRf#1dMM*hk&e_&TSQvJGN&`!898+P(ITimv?R912csR%k48R@ z52&6MnsEcIN1(tI4zhnL#M+~z>RC36n_vs*#VEi0FH>a2O^|J#M_@=S!Y%}^Gjiua zEb=8P-^3zTIhc5~+dvCcv_doQZrII)zmNXY)fpGHE0-k#sA^iP7z3hic2853h;=T` zuu1*Ljpm?NSJ&`ZN~_1!7o)1T_D!&Ivg9v_mFTL{r_=~TndfUCN>fk8fI31_RnV;` zcHNZZg@Fl+{L90~+|w1HSby>u_+$JapNQM|xvz^)zI$s-=H`|P?ipbXCWt4ESjG2A zotv$L2PdwZMGnwm$KcT(vhN<99~rc=rx>Fc5zbAs_8%XhVwcUXCi8^@LZNHq)+Rm1 zQAcakA*a11*Up)h0yx3kIsr7I1 zqMq<;C+vM#D%|;52F3<|G)Oc8^fGQgF_|<`M?RP8ZAJoj=n)zdzqN+$**{fcs5S)Q z$fnZk8{k0Ye{P>T+cj$3O&Z!P73?)+Lg7zYlWUCe7t$q`w8SDlG+ptrzV* z;#sCG=xfMQh!nVxH(RhecRfr|zM(@rzOT)UD4$usixYUBm~5<9-}=pG@;s z3>izbDbp*@!E$Sg0%Ibco__3K2^l(&iKh22%p1x~5dG(sjeQpYu;Yhv;SMqS&dV4d zdDUD0@5?p<9@({=(x@hxEN|DjLeWN`FlycBRN)j~cQ9bc;n%`Ap26b8`z_NG3yATp zha(Dujm^~ykg7&ayf!QEdTn$zXeO=@YlMH&rTe76KC7qhK+?635u@8_M`cYf=dqx2 zkpS8>MimTEm|sYExrk9D`l+FUe>oQq4YV`$$1iKsmwl)ZF zWiSGX65wBG*6Ooj*ASHJwIm;tfFr^_@bNP@{~rKDK)k>EwUvCC8frd^sHmuC;o%>N zAXuzd$PrlvN&1Bjme-KTNsL((4_b44Vw+;EU}Z;yjL1#TX{^x2#P@A|@XSWoYf41J zFDR&eW_45}AB=wU$@TT^=p1XFgVfVaE+nLiLEaI&2vp(KjZ^&iV6YbJ%X`d-^W>I* z!KPv#f(=eJZiB$;zzfVsgS`)rbw@2f7QEU?q$(ab#+$GE*MRj!Ro!&Dq)6wq{}^=#HN+{FapBZYe`&9NLCDPhoOw+tQ=`Zkvin zUJ;1$j_l-SY2z;eEMDeg!Jh_?A-XnYANR{Mw_jFTFwC5S*na+CLWs^lQwukeuYM7` zcwcVRmKF&PQs{yvhifz*cWhm%SmFk17^vI-R8uKk>qlVXvt0iJh>#E&yXfh{HFAv> zFE}(b^uY{llkz|5OT$jI-gBwq^GmKN&p=u1nNFTL-Nn`6M1h=7{`2M-<` zsW)3ck-~~Y`;>t7jFa1@=gN0AM}k$%qm+3l;8D6sdg z-x5aq*o1vurOUf_8?;)X%Zx%BZ3KKBp77%52U^~1pJQdg0V#55W6jzVx_Jxfa$3PAKI2lILLMuktFcVp2a7qTA)N zFMS)B1sqHL_2REIWHpSH9%6b z7E%UzZeGP|tZfgp%Ycq~R`@oL0d;?Aguf`fn13eM0Eu*7&8&V0vDd#>e?)SZGLX%dJbAto!|P6LRUY+{;JlFVAzpQv$b8BjVQ04#Ua*R zVB!~|*x?){&tis}HDqab)0Tl}csOe7|36kDwy5ttlN}>H+D45O_5M%BsPf7S(Hps| zfyxUi0U<(un|rj2H054uK!+}VAj-1PiEM{L($#xLy-N1~oxs~X&BUj7_gE>DO;Ur= z(}z{FA8|B^5RA6>Qt%5C7&@`#KLbvCfhkWlKyx~aTK(xbWP6bl4PHX z0fom3`2S9e+l#H=6vDCSixPF-sDkNpc4?(o4jV$9R{ylQ0mNShUcFVin>uFTp|$E~ zQduxZT1on&T$nZu++mh`^%;z{8(@mfnYBx~AZFq&Q?u-;d}@v<$NiOn%+udW#f$P{ zW8DEaSD>==%vZ>r8+InS{a`TPav=8$@G5fS@+`?$etz@>S4bksIG-t@%)ma$KmzOKjl`nf8~jNX#k~a?uF^;3?P;yoP1DXa?)tM*~*SV zDrB%7V%CYe>A9M_D@pfdwi;-67gy`??I<^V>!e97OvwE5<;$ zQ2I^O_0gf?^Pbi?_InANZRDK#uS^8y-E?7P-b-V|0Ln)k2!9%^&4062;0<@yS)rEz z#3BxZB-s)h^RTGvarJjo5eu%T(2)e?$SDqfW~##DM(!qh(^&JJ$ut2Z6xpSq&f*+15 zep7QZw%gMgVpJJv&(sz8Js5|CKD5;~q-VUAqCpO~n}G0!&)ZY9ake&u+Y;=R(K{=5S?mhOu6{WM;nu)@ZC-6N{REKY zMj(0^;14HPRA|7?lG8Ral$2tHG~vj0!$R&l<;bFgyY6Fmv43h#`{o^UX_#XW);@mx zXg~99BUt-3$RMEXq;~r&BXBoIH(TvUx&B28kmkzT0{$`zPCST30X&p=PF^hABx14r zb13|pj5H`W@A1p-f-S-O*OMPho*E2GtAXiShYpUOL3}q=eH$9mZ_3USEuh+h&XUPw zubGb=81H$(ZMqF}t6kanHV0rC6!_$7@9XWoqfWGFkLZHvlCWta&}s(_5`EMRJxbpz ztPgc2QDLeC&*r@SQVn;ya-`$av8rWj;0$?R1|-S00F-QCu?YZaYpcw;`sj5&d3ugX z+Lc*%;ChLpmcnlu_{SDwmJkx3hR$KSFakIx4uwBDt2;I}W>JI`zG8>SJ=M9}ebYFV zIQCslLU^@gxnu~lLCrDZ2vw{ll*mHupS+=znq_+u2#Tz)J~5YFi(SkGkinC*(05y1 zqtXR@5l@1ruos>$t$?&aysvWC9dysJ%TNMNv-(w}?huxaxfW0&;d9t6orn3t$`=j) z_=1YxcazoXEo;#|yDmeIBLY?ptg9A!bf_gFEG7-eR}vnhIJ>%7J1qi-st*Fh zGqhZ<_$-~-EW0yc^{0~wHDU-(3l)`}#2DoX_*Jpjt1%vZ`$B80nh_GMoiCM;C>r@P z+-)FCz|F0`zfl$0k-Jp^AqC-XIQjV(D=(lYAAb+r4@&skw{Nf`N{^MAs35rF1PvMf z9FM~)G$Jf-p_&U{tJ@WGPXP+ZKZDQR=QWPs%&!pf$->goXlI3=CRW!$Ff+LdU@A8^ zhp+He&#+}NT*m$1*~&GfzoSe=`<=)xw7&{E^CgM+ zz#SCR)vKy>rpdrwnd2jpsY!x*U>XL*?z!9;dqU|UtV&Jzx##qWqn!CJ@mLr;Iy!1+ zXQ#DeDG(Af{6EPe*eb^1Z*5=UTRS3NAie>nW#U%%cFi` z1rkt<71pp{thy5Um1^^~al&i!=IGBdbQ9_kk9WxC$nz1oAT#^Q$X-wUTld(U{W-@GhzJeN)bKDtkS-PmgFqS2*D`{%&e&;i$MJy-I~7 zL%^PAnUWMLq*;2_LGt>!bkUweR1wwG(DW$hc?OHFV0bEAidq z1?+Kam&fxguavrHg>XyPwBk@mSa^6^+}ix%m5u{uHoxR2I9=IeB?F7(5_=4B#BJCk z$X}`OD?6lCr|am*NS=Z}F%T%t5=Ikq7i5Wi&@*<9)RK~DHu&2Yy@q2Bd@!TFdpA8R z&HNzLl-uj7HE86v_V$nQ0bSVd4Hwvu+GwRMSW6chK7c!oCtpjD3>|bE+vKAIrFU5 zH=Q~}6bDNYscRJ_cPvyC2NA^Z=QwR|@6to6FJ66lYg0ezE@llWESO=h`3EWRyH_Hq zsy?|9$xOd17|=X+|>k13`bpD z*VPU&@O4CD*BrW8YBIrv2uFf~gY|vagocJ@wuvG6s|DHKXQAidTFz-&6`xl-p1jG#0Pn?e2akmce#1Ut||J09kj_l8?WyF>g8gT{c-Pwevv2J7!Nr+ z;lCq`$7vzh%SZO!(`6n7?vvdB)Q)P5Jrs!H<*2O_sB{QK8Q6&O43c|>1ErDD%I{~r z18Iww=ks}`-BnZ6V>)Vi<4PvZ>=Coh*V3x7o9N1uxrPt}sZZ8Be|oa0y{jv=*LdBN z0&zxRLc;Zz04Ott8p6ix=@&%b9fAn&u_ZnH-(|>Q9*>>|CIqF4N)&sV~J1QxWGoyBjx~`fUBValq z17=@`uJuD{@56D1d;yJ6!Xd{nA1EEyNrg9pIc9pc@P?{J>9#Ir?v(^7X=%5@;R&n5 z9SN+3v=upt<>jWnuCsx^e?;{2%CI^K*uHu5=A`FMVVn#?ajh*atiRivn_s<`5tgS# zK6=m+3*fukY7yPtwg4YS3J>7t!_wMwKTaA?*iKLQnB8aMZha7Tc)hgqd{xH%2UKk9 z9&WygAxv}j72gKgT+dy&H*2HXInt8gNx-2eSc#R*)NG{G)EM19lL#=`^E|7kz~PrN zH>0bR?@pwUqS$(G+_xZrW{O{khG6m{)*a^C&pw6Cf6cS(e&?8??&qpC(;`*KWATIP z_i9YQKu+;8l@&`lM1HO-^G6GcitH-`w?)Z%pMsY)AkWQBTj2Up8A>3qig02!z`eMF zKkWrrgcDmR@}^axte_`lNm}}h?Rk%T%Ylk&k7nAs3*NuK4UtUI`qhnS!YAP=SA#8!mT0BpIGsArvvV zg{6fz2`UFexwsknNU}UCWx@asjYBu>*MEC{;8h06c<0X`2Fn-{H#@wbykDMTiRO}# z;T|Li0xfd)=-B9K$6qQMS$M_Pi@P{Dj=EG*VbD3?eEKw-xQ+S&aWRCq1peXi{dN?K zovOg&l}=vim+(UnQ@7)CcNEz_(;|P8QtFb!4|_G)-S5nZ@GCNmnXYgO(`Q8TBV|i{ zr5GW(Pjr27#SyJ<%TB@&x7TPIevyRbSZ8A$8|}}^n})ndkTX2`phmX=KR@I5B4OiC zcL&HijXHXIN5uK>p2nfQwlMAJF7qzBUOIWo%F1en1w5G}a7j|VKFrMcy0c$~17qdB zudb#d4_wl`d4hM1X_rghL> z84)dDvEa=v!2WQ2%z;W2ajR#F_q(&5)*9OrA7X*B`w}+Qy*uPm5;j>o6X&lL4jIz zU82e=H*TcM))eEecYwo@C7n21KEx4=mg~JDYf}uu{%CLQ zR!|eFVdDg#fsv1qQ%p`~rVtMWEN;}OOhL?$E(Ds+}keGz5~R10KMub0`j zzD9eC4ppaTSP##1-m2o4VL}Q4x#ZpIF=HLm{u|z9iz|E7d8rZcgB&caz+`H)z0*`1 z!YF_dB>)-!xyg;R9J$|&;7anQ(!ZQO+=~l@AJ~0cUHfsgs>0{h<2@3#V{NvWuGnio z9VeORMG6-+^4<1a-%hP=KPG5$T8a;1&|HBrrcA!EH+>?@UOl`Zc z+K`hkqG=4AjCQD9IC!vnbl?LMw~XsWv5X8bO-NG9$tmZQQ{UbR53?=JL5m|;0UF5O zN{<1Ry37#v8nBTrZrh-C_%qjnem#Q9{L)yvzFByW>~riMEZtyjBP&ZS?68I=h(vJp z2FiTRX%PB9gwGeh5wsqGHdCk+yPo+p>=*5Rnpz*OZ-b$w^Rqu9?r?n4)p;g*7CMz% z?sv*S&b@myLqnRSG<+qh8s080D!JfkoOSgZng?@c`(eH%g1_E*B&qmx%%j&T7lZU| zhBeoI6zy>xY37YQ2v`JOI@y1H*k6y2Wndp-*_AbJ+T8oggQXCf&P4QFMR!tK&%yQ< z8FcW!y8vQ3s59)@$=iMIfyQPPCo{6uZEe#SIM9H>R!Iv3Qtqz=&C28b`x3lb{6OKV zZ{IzYjUIja-u|aL4bC{@;CBbb50esrJ$?i}86O|-91#_6jBq1A>SIUkvuE~t#( zulpz+F@a3UI;qW4QrPsSmIs?E~2g_!&h40<5(Kc3-JEVNlJas6kSp5Tn@U$lIx z`Wg7nc*|piLw`mZ;<(={M#<(*YJfZhfAm{i)f>?mPkAnC!@t1EOTip6~ z{q4PK(+zqwj01M6cU9G`rOGCQ9`?zl`LScXVN(xSf7*pBEfObk1g2ln*Op+3OA^sN z#&n}tjPU~ob|M~#bf1G#+rerT|K%#)lQlznCSeGl|t*=&DP(%)Wr=@kiNu5s}diKoH+CIv~Rl6#!AjcvP56khf@Hl1@@i7 zvU3e$+o>pIs8DvQXCtX(Rb^>MA*K8+pXjpuJ7G|VM#m(R7wNmEacT?6-D)u&Sn*~|OEB~O<#YmPZPiqp%)PNc46saG6 zL7nL4EA0J#2OAsbPKS(~9J95Dq(+H$0a&@*57EHY^+|mLoy6`aE*?bu0V`LsE7jWY z76{bFVpthEJjo9~k1HmSCWH8gKQGy}aTZxiv~A*MW^wVY#u#a(ckkZGP!Srz+;()F zf~=%+3=yTQp|>14OdG?6)u;)OkqKjFBqY54G@_Q37I8$9CUrjXu|HN-ZZiw@ePvd*yoXz6{;)d( z(AU(IaF$tx>G6u+-V5{dKUomFl~*^1?=Mr?m1S)#-d2nI)OH+Jp$3=+_Nx~i=y=R^ zTES^`sczceNTOfo9CoIEG4ZZz|I`Q7As`?CgcmF#JDDtHT~*_*M}a!r8(}zcTawI_ z5)>){YZK%B8*BaIUXP3zH=Dr@r0MLh#gPu9VL{j18Lea0(xl|A7+!P^lVy;*4NVuv9lNWA_oQ4N+OASOc}!h6b}X8Z9tc?AM9XzPQa%_ zH(9JQgWnm}1`-ol>pmr3p=@#=Yd9Sq{(Pk7xay6SBcO2fE*qpioW03EGkTma^IvP3 z*I-@*%2DZ{nnfDn?c=3HDnToh0{EsM_f1y`d-AVbTwKp0B8KNh!Jv;>K0ju5NkbZS z^+*E_ScI-71$dvSr;a`*CubU0&$DqUM;s-j48J#?%G-SO#-S4)F>L^fffu(z5(4K} zfHE3epbNRGXa@(zg79<1ANJRc0Yr=O5qs!!MlLv8L-f2R6oC^WU zE8PdARLQL)-&v)a^UP?Oc(ioSzkBmmZ1)~S)P!U?-{UjSr1z>L*}ccHtpRlc|G(U_ zaj?NG)q9-27bn>ZC=Ba`BKRM)I$9N`z6-jK)zq{n8wB2wg=y%J^RvD_Q}C9wt7HzL zYfqsgaY)W;FxmZ>Njb)y&QF##%G!6ZGfTeoZa9(>3gh~@v?sA*yyN}rODbM#kGZ9K zNL4J*k0dfVsj%==+3(ru_NutM^0_I#EfLf03881sL#W^6ENYaZMI(P1wy2&yU2diq z(MeEx+!oi*e66ZxBO$($0^9Qzg1_Uk{4?%$#h)ma8SSl|&p-ZWnQ|6KG!(WTPqat3 zYaa1@;v<;DqD;Aee@}PC1|eNw6w?xrwi9uDosgztgYq-GbuRO)82~?Fztu`INy_|Lkz6`r^mP{2`(lL9fJ@i z-Pus_(@gsHUR#!#dO-CZo7n9X7hIs}Qkqy)w6tMT(s{1PYUUz@nn<0UIq}~x(iMDg zhMx5RL>H%9rWU4PMnb^4;w&U^u&6^SR@9c&6@wfLH zNPv)=E-s#Qc%y&fKYj`%JU7ZVb@*VC$bO=yR!zuXhaZP7Q~c$;?vt}K;v&`?Eylt{ zKR(AD4y_%W*Cbj;b;@Mf#Mx`Zu6PC|^67>ak+>B z>ga%~%zY*QN;_0;W+w=H!uX2n=B!U(RML_%`Y?3lJ2of$oczwn;P2`&Q=np5Hy>R2 z;>BjiB69MkH&BcLGkN{`wvJi^{eo?xRNp0%dta4=f5J7137ozZxqGln29J}K9o`iu zqTnXcc|jF10N232tQiE971UKn8s7Ccr;<#OPf3{i=Wv%DAX} z!e3~~ey%>}i0|)P?Vn2?MD0d|LDwxw>FMbS`#Mlbtbgh!mATFNm*^kmvA$?{uQ)+PC2@WWdaET@uFeE)nc;2s0wEL_$o zm*18^6>Uoukwo!)CoeAtL!UI|blT)yj)jz}>D(irM$2Ya#_b$^)dS=Sv}oV130t$d z{2zT@wC2*VkbQgiDs1SbJ=*DfNWco&tEj3z5fnWu?J?0jMfN_Kl6MxyZ&^UKL-V8B zATabV)KHOc);p|_MIEs3cfbq}s1hk0eUS&hkS=N9<0CUp>+r3@PqHJ&-*!X7%4Yc5 zkB03lWN65_;WHIE!*Twmch8@P==>{=_zIjKOhLaxE#E?fTt0Xg4p(Z*bbl`4O!L`qsFjAX5BY~IMiUzlH7vfT#L!^nFj1P)IB>YaO@bihc+O2pLyfxazi*U7N%TL7i}rNBPIr(CvVq2pIwUEMdF^ONkUseuRX z0Qjh7XJ>zZ4lH%DJ=N->8V~}hl^Tw-X!|u+rez$TE>OP-XL`!Y>DMdPPGQ`7o3pcI ziaP81_1D;i)egh_dF(E+EKV0Sof}}PE(fl8_Vko+*R*;g10tqD8lz)mq*CF{fK9Dy zdHkOOo)h?&efuOSJcu9Qe+)1@BIkA?%;m7XwRlV+=sLS=*XZs|=T`jFv`7Uj^bjJq z^Yij@zZfZU!q}Ly8Volkfjn*7Qd{gC-orTPCAe+a{)bh#kJwM&7+e~Bztd_JHC}i ze?IqlkLP(_ujlnV@Ao;x-?;S>Je`3yCIH?}ii=x%uF3koIQqfsIO0zM1d=|DmdnlW zI<7SbhuHjE2SYNyF!*^sPDuN**MSR0*{7iJP?wok?Yg=;obaULXZ*Uz-}s632QxGi z(zV{+LhYpR8|IKDGD4FH`fHeZe0Q!@hmNj(l^hWDBP=W#qCShR*5+qwK*pMVdw~5% ztOB$kc|#D>fHy`S!LgW}SvxJL8aPAw?^WYO_oLnF(CI3N+;DlHOsx}9t4+O7I~}ZH#}w3L=Rm4-`VF!(8@CG?AqGU$zwy{t-ODK1yY%2H9O+{h)9-> z9UeOSPW-0f zgkPN=BZ?4K2{*kiKC)wtZ+U?LWGf_Gs;(wegY!HOjp;)hLv5 z_{QnLt5Jwz4Fnajx>h-WiM!3yZ!N;{yITl{GS$*f6`(cTPhsXSHUIg-RxQiM4_z?Wo{w4Ai(r;%EPm_S+5={XNW7%unTSc+G~Cn$%1dRO!ajwnp~ zZVvnMkwRnNc-kV!lYg9b*v?O|Qe$!8V$Kg!NeVb#iHEw;SmLFCEmpt-X)%LmPYxhR z!0+jgVat=z_H@H8y2m0OY$PO8?8_+_Dwb3IGCU?Y`o^s+buIY^^f7$GU5U9z;6&HK zbA!n(mexZ$5fR74bO03IX%nID9Buj-qkTNbrdqHp+bnvwG5r3af>>CSv#=&V@jyH} zELu{Clll-q&zZt&ka7#(!v9t9gAiC?|1U-qwDaN(h#k`JiX`jjRU9YR%dZ#C{*(=>WJjst(l4;QifJOphV#cJ>CEsPDCym*F z!{e)=3FeTDpW*f$5dLGw9aYbmZ5M|Mpe5Q~?w6DYKn3Jxw?>ZAKz)?-mP)%EADkMw zuFb1{X9f8%xsxI6`1E;g@$l#e&CU-0DbPTx>Yb6H)=Xq-!*JE@G%xSME+p`?Htf)s z+{;ovclQM$e+53#cOUeIR90p2+2@j!t1~kL zqBO8Q_2J2%%6)Vf9(7q-8Ld6il`6nPAgw%jkouySf;z~^E>L{ERR{aS7X9k;)2A}j za%N~Jz|XH=PQcVIFB3ffb5xHDBIeUTSaoS_7KgL~4 zE^Vx;YkEF-5UrbG_46w&a^f)V=9>gg)$&gnbN!L?(@@js;gRg0tt#p>)S2YTGVv*RG;m>xuIs+UXRNraxJSwSj4 zkpuTKyRSy2tR7ua@BU=YS3yxl4xs^x0M=i}s7ay_&vO(a&#PBA73a)%hIij*kCBcc z=oe9~r4*{}1H>LAknyh|3tps-v6Sx$2#s_!mEF{I+uZ!kucc%Gs3w^~{f-Z`ILvU_ zb#9+^J!tx;B0KT{Tgi!S*D_L3{i(x`?G>|&QM!3Ef=%q+E`!~O^tU4CDIjdn9LqgB zrfuf5;Zy;ZZMcjIcRn)mh%+($?W-0gQ8hEcK0x z0q_R?)A(Oz=E0_{K#ZDLBSGIvf}nEec#^`TqKUV<5qIoPc z<*#wWWGHkTyh{b-p)ya!BHO=YplOaPN56?L zjh+*Ifv5N0=(*@caSPOEg#-)<4Bm>YVgoJ26BLZQtJ`tzuGuMq6LA!oMP12(rln zs~0c!C%Nx9R!pE^dERN*6maNe`W z5Y~jkbui6H0cYBZ09tGZ@Kh;GS<2ARQs}!UGZ;mmYy&>Ujb7Reh%M7pV|e!^*il78 zeRzVidBS9VeYPFRb^gkVk{&8XH+}u-dDXfBzco&2?x|?`me++j5tsSq?p)*D%kX~ft?a2Qdk*e8&vpP8 zjb^4z>Snn3lAp_A`uh)POS_r!$;N-$I2Gl(O}@Ro;tu7@zF&c#x}-iD-tHnXqFVt5 zhQ*}ap=e zW>~~4a8f8q&PdeVJ0os}>-GL_UJa4&kSmU*aqxN1;#_=Q}iSabVxf1aWUI z1T0cWiVvRAI1wkCiwd14ROaWWPulZ>F&ueW$?1kmZjs}9{1|m?56(Z7DK1dYgkq)k zI!2JTE;_KS=?jlP5y}m|B|8z=nTqs;)S9+R$`bDZ2h^-x1M#T$I0vJ>5Yl@Z0YT1Vp2+R zY5$DMt^dYiQe|LY#@RTLeVT-0eq3wnW%Jj@2Khr;Lf^+a4vM|8Qey6Zl~1DbZAyV|GW(f9i9-ksv0R$+tj3H zV>_7j<-%)?{?O3vPV0b9Nv8ZtZ0x)28DBjoV|9>Uy;QHq`o`_sq?HNeMDi|TB~Mz~@UcSFc-88v z-eTLb%l-plRjpf-8K(EENETQn87m;8YbMJFM2G<|F^Np^SE;^qi)AalMCf{lMwvL?E;nK zcTBWK;zA!V!jjgdx$GSwlgd~=el%SKk2GxFkJr}HB-3+yu?h(tWgq^iRYC3?cXQqD z)GA^tkYXz<{|j*e6z(m^>$mljMYDYB>K>YP0>`i#B%IK<%Ud^v#A%Ex5Xg8`7LUv1WzSZ;_%%pPR`;quZoyvZ}6_wqR_o z75e8Huf;2+E0YFU#rkdV*EJ{4v|M;3MT z24jYNWWk@uy7YWM4|7hdfH{pR8b41IWwAX$pWQ=JP>|u6X!s1@)`uleRwR?oh-Gq{ zc;|6`wZ z($R<2nvZGN*vp=zL2FY?cnADYsp(y#ojUd3Xk4;fibkfEmKH~goEMinH2YLe6u>?t z!dNoO`?HlLny2fYv2tEG8Zqmkqc@jTR%Yu+W4RAv-<`Y-b2WA1{n~Rh)5fwtOsXdu zBePT5;t6!ggWWx zoj4}rG)Jz@UeTZsXM(z*f3QyDmw(Je=1inE>PuziS)6 zRF897D;56LR7$;;sYJ*ct1bWV~23Kb~ArC;d?bko?PZO5fN!Cj+e0d;O#S} ze5L1Ky#PK6616WZW^y!UG2GmoEsrpOCUVc=u-i4Q+Pfa8edxtRsbIy8pJAiqVc%{$ zRDkQ!q@iJv(`i@NP8Ym)dxGb_p^lM5$iQ4QGjV1!u4=z@=JHeLYzgxQP8@y0$xcm$ z-`bnMTYW@=4Ha z%`PdWm?s(D4$}AjUPF5jBfg6N$;i<+^xD&7Y%iL0Es~>rYopq2Vyfl^1C!FO7)WRjI-9h z;mC%r!m_r^K&1MW*}R|`Hc6G4eMbHMtne5oK5D>o{;_w!@69!BVsetoF%~RY#eERS%P3T;JKW%&&C#ZC zO@02l_XZPA=evB8v#dOE_2A`4!c~srPIq_PTX6c%sQ-n?)%^{?!J(nmsTo^36|&=( zXRWrux=qaz@2TRdS2qS5Bf93Dk03@ujlE=7SJ!O5g>OX+va5$JlfcR6KmCQwD|wiB ztj@2EQnAJu{|~s4F0`m9Iv`wTH=Gj5*;fly-&y9&kjI~Co=eHiJn9_ zIv2k(_vMnuw6(h#^*W4 z6(yj4KSAnQc%s(b4lS75;tJ>>tT`iW*VC<~%W6e!MWFR|t2seX$mZj7EG^W;w#4Vq$VXQo5zNxfyQCOZIJDyp+ zy``C@m8P%Jo7~y4CA$4919lg#+bkYf?{$!SIJx*XhBatw%jd`57ffJ$tK@9Mhkk;H z`pb<$s*}3SXQiyyYl=)`0_d;F6ZF!Xsx~*L+9E@rBmOU}&4G6q@BE+l=5+y7ZU}=8 zjb;ACgp*;Zn^>ItWS=yKsMO6;{kyug@$m2*dmHy^*3@SkU@d>v2Q_^&W!T&0 zKL6(jd7r*~@#F-G1jbKj7pn!fp)&U9AQENo?94OdHWuPGx*WdvOI5L(q@j6@nXt69 z^!@_fx_O0Xlxs$pl!uQx(myh1Q)X{rF*V1%MzwxjZp#3dXrE%VWZCguSY2g%JKu!? z=f%yXRs++0Gt~UX>-VogJ=sc(t&PN}u9+}fh^#I>?h4>s1!LhZs3|0T3{BQl??n)O zJIL5#win$g#3MB-d2FEQ-|g;T%;bj9s6Q3$M=s+eN}U=#{(vd>l1%@tRQsCgy1jD; z(5kk!gY_GON=mh(EEVfTQOApQXRS2b`XCoZks zv1a)y3Ap1KImEWDr-y}sVQF!D(@w!>`8#(tkcTh+d_Bj?*H0;It%qghP$EKTqfQ-= zOKiQ9GE8Z7lFZNF^r5kQv*o!JBb9arZ)f%SL$PiF5y`zNczbg^Tye*EAz#g3AJ?Fg z#f{|cmt7~}?jT*blsC9yV<_dV$Nc@}wPE%{G?|*i4V?fQMc0juLw+(p7L%UtIgAh@ zL}IM+arU{qbz}EUDFlUPDxjKm}lNb6FM@KA(~;J zhSP4pQ9~eb&M~2t5>)v?x4CCn?9xYv7xVqynCC_ry>eF;?+WH*?IaiN#?8f+OM{Tt z@QfHgS-e^=)>gC zA65Kaznemo=z?p2IKZ&`>i1#gRJ-D>`n_!_`QEgJwewBO1w+k%CWdSra$FXgif>l- z(4vjy*8bS@52ny@szdX|d%cQHK&E*^YIKj44i8!ON?}Wg2L?!b0?s_A;h!!wT3+5h+YW z;7lxqDEAkkLP-j1i&=NcG-$hd8{ebc>YBCqg=?Gh_FFPnuU@rbWQzF1oNwJuxy6q= z2$1GQ*eFw_B1E+ZjeC|(dd;)1V|{<^M#k%F2p*-75-wKF@crSu|AKERsIl*~Jn}-y+uJ*9dE#EF&*HsJAR+Ti zCME99B4AG2CU<48yP;6E*@Ac%`kns#tFJqK%nj%$W+FLENH-);aH-COtteTv>njyLyZwfSftO;-0m*5%Y2C%jKnXFz| zG1G;Ns~2CE>}o{Nap39C)`mSrw4~_Wu<3qzK>Kblu>F^u#Y&~HP~?g znV%(*I^e@!%41{g*G^S95Wii%T&TcZm)6PjHi;L($u3tjK}+cR)>?d?$?lwmYL>;t zTHoMU+q}I9Q_dgCIX`|5{Z*}{Ma_3^w3D=pn8jXP5_=GG*)w8Bb>h;~FBp-*vGtK> zZYy2!HJ4NF_Y@m~lQSu-pOvjgDz_4q*8mhtk{NJ&sJQ^qn~g~&HT`l`kSk~1$1+tN ze8?FbTTl}Nm4_-=m{g1m|Ilza-~FZwO40zoR4L>1k?Ms=L4kSyj8|{ z#2|a#Nmw7~a!rF&jw@`pU3-S-#M$do5SU-E=ZJT#$us}P?OhwcdRfkt z!OzaLofCViuh1w=YRHXe2j134FHnf;=fszi3mw0IHOAV(eJ*wH*_k}9F)<8eFbw$F zorX_dgIdkKyLS~PStiGRZ!ddoj?lOE4PVk<9}QYxA5*Mp$@iee+JX8I_XsTYW`!)? ziYaEm?bb+~9fL=6H_f05)YK zHu^SI$((-C$h46KBhi~bh9^7$F|-ZL#*K<%E-q($7K7qb-?<0=2gQoKgAtB_Kf=Sq z0`nyJ3CjX{^Qo{X2l{D`ix}kj=N)XXV6|wC3(+%n?^75ao9#+njD&z(UT~Y{`W{fz z_(Q_XJBXg~6r{iMi7fsH^}9ELic*Lb?`d|iQO8TTEznpS=YlVAQkCz+eM72R-FtSXMu&pOiYOKvM4;tMgq7D>r+-2wGfz`M~N&-hm9Ist5Tf z{-`6xt-`N!l-Is~RiX&)!V)E^P7X36OKYr_EBeTjN8E!Cq9U-Pe)e>9G_M%0Y|1K>#?TB0E)P*7Vs3PbXqDA&LXpJO7mlAxlE$ zZSj;VC~xJ*?FC|$xWg``eFHZe5dSw9*Qyg6h*ghGpCU&F05iHtKC{m{sC1QB?6am5 z<_w))cn(zM-NaUJ*nry=o@Ujje^kEbNYOH{jzX2)NihrwX}(Goj@ux?d<((hZ)l&| z>KiJ(z@nFK_$)RSkOWc62lKWzZ-~f)n#37Fhl5PbP1KZ+Yr~=pK;irLZY=F_F1Fx~ zWZoR9I|!a(gB(_^Dq3;GBF^g^rqwl3KSa@MJ;3H1H==K5`teYK;DbIR6C~`MtT+Xa zw^a1=RGAO)qLt?{`n)urq8yn*i`V`yPj6pLjs6) z7a-i?)1J_&ycBhm&f`k49G_7VgroExPHbG3V+q&4q#}sJ&YW`?O_ma4P(~P-u=#*( z^WS+$a)X*9K1L&q%TW?-FFXd>G5OgeoQTIiOiWD9oN21v{N}Ye9iaFejyd(^%g_0P zEFY%0WePN8B99JT3(5i4&y9~;{uDYQBA-&MAM}GgMA~yhtc-{(2QNzv@x^ZnY;8^{ z*80aA2G%Ag>92Oqt$1v1m96FM^+f7|bR<1CIxlxq^^2(3Cv?4m_c@CVLZaNiXM8tiR@OWC zd>eRY{0WH5V$aVvFSHeWImvt%c>rhWI~l=d@nwI&UA9J+)|%X|Ne&N6N` z*+(>rQ37Uq`-{gOqR>4mE9YifGISL8Ex&<1Qql;TmvYc7$S9v)L1hZvY=TmXOOQOW z{9)`d-zez0Y|M%6Jn`Ot7;TQSJHo#YBq8VYrWUn$-_GzM%|x{U;m5!Q2O_D zteVF}2^L*Hij8wl&N@yirMRl8shNKzKi(Kr{3Go%HH#rf)QiXFGRiS36|&2rO2%)a zmPyVRL_B{YUV0E%;=Rj{}*ZBm9o zkJmt7`biMt874g`spK4?X+QFPRO|FrrKf73k>=P96mrE6mLA{!!Q^vrdut}SZ#-;@ez$% z?$t4kCQ%U!NpY)D?>i%JZ=&F(6Ol<5H4C$b`P^SrQi@^ZcUG;vp%)j8hDqY{ij`WWGyW(C2djpY>atD31J5D)=pIB6Tu>s``>x{!*{(A- z0dZL*o6Qr2zUoaw*R71f(E9eB@;_GOl}CT-gFGADzUd3(mKr8~0aWFo z#OLpRus4b+oafLE=j&=h5MUNL5+}hm?wwP5FK%9n`a}=A-VsE`ou4qVg8fMteptSYwkRJSpAj8 z(MX|GkA6R;3)gvv3UZt?8y>N=7~Ogn_{tWs%mCK1_PZEXYRv#d<31YL15|IXWmV*7Q!GVxAvTGg;J^g! z5-z&Mm3%8Dva5R#BvVn~4!{i{BOH=A!5HJu?fQ)q%cxSz)#0x&qt#W*R}0{UAOlLX zR>NswDYv;s&h{TJERjBXf)Dng?@0~lM`~|smUkYCpnKiE_bv?Z5Qj8_;zD9dmZ#(F z*X=OGG6nXLKbE77I*a98AP=e8Zw~O&a8$!C`k~%@S1aVxJ2iTxWcLehD{CHg`vkkS zl=^Tn8K-YlBbDcQm=h`V;6|!_uM6&YI>%(Iw9Sam?GeTonltK?;D=8G=yFE99TqYx zW?|aDL|1a5u-JzjMl*BHigavU+VX;Vj}H(+u7Wi;i0G-?qv5&dys-=F@t#izXa){J zlw!jZS;Xi>8BJQ3RF2P@OO_z)cY&%r0Z8$A%U$?W0S%Q*53Q`BZ3HKDU_VC?Uy_QL zgoGuE2EnF>3rc9?<1YB9M zei(sZOWvK^|6W8bgvX_jug6vhjZvu;Q6zf_lzcU*kOgbENI50$?V~JD_~wdJXEaLj zd0lA~CX0?tP4CW@N)I)qMG*H6OPlI%qfTc;Zf18BBetC{D=F%-`|*_aCv{K)bY_^C zA3X_XprMlNfKmK7;3Oc37YJY+VDkPmjTaEV?pZq-Qoo0H?aC{jWyOs#dfv6>SZwcf za1=x@f{fU=t)>xt#mY-!gUm$1>_?Ew@`R3j$du2`+W-hv!nXh+sR_6eLt9~r4k5!sw_11yJE}^k!DJ+}UAf=MOkGpWIz{NvjoB8-UAR7KZuobU$cM*K zTHb2=`a2FXq9Z>;GOfw6@_tQfrYPEpe&oSS@AM`Z!5IX(WNBm z{y_7-fiOc}CiG&0X~Ikh#sd|{YYYo83QP_&Ov?CDa^xugBY2J$)IX6j8mUEE0EHJC zSxFsVf>e+4>HD3sQmGjXR@J_gxE~37#cK><9CKPS~3b>}(5^sz$_d&2XV2goUMUV7G04Z2%cJpYCf&ey5?SSo# z)DaDr;a25S`XHgeMxl5g1N(3?|HBsBEC;eA(Jv*_z9!!0B)+fZ#6DK(5VKM-xBK~q zY9DnkJDbZ3a}V#tF&vA8@DIC5Do$fBDces%9mj*{5i?IzgeW-w%;}#IcQ?it@Dgp7nQvE94egMyAkN{iRDd8?^e%6NnGf#vkvf_ zUoDhcW7>tahaejAH^NFkaq-ACyxmM^fCK{Lv$L+m&qKbO7U-6?+gAj+{4np$!&1#1 z->rHCZmS@{W^fyyE<-nBFl4>zBvJBRei_alS+TN56m*xHjoM{;H; zctSviyOz%wK>KBnwFL1#i=41Xn)G1?1X%+MpgL_f^9N)=uOnwZ2~!xrg+XNQ7nqyt zP{WD5a4an)+fec~?ZTdBqJ7x0hdU9z`WU4TaWIL9SOJGH1=*BZ-aibFpZ+^kRF+GW zRmkhJ7FGyAKP59YvwV?dT*3*tDb*F2z`OMSY#z-KWR>6~^yc%?KNg{(sx1%RSbsww zLH3 z%Ay}ok|KOPgk%Rkb}?}wQNo-(6tHK0y>2R)R`k>38!7Ow@Or-?{2sz zgiNbI|CX5K1+FpE@8=I9*f-bsggeZ(pg+6c)YZH=BSP_07c;Tmz;^vOf_JgX=J#HI zXTV?klnD*tzRgaPtbe{s#D?B7`i(^wVb6ep%m*eUt=n<{N){}Uy4idG0>gd|xeNoW zp5)vfys>cWXYi#=&Ag4P=LvBl**m?D|47shpP}4$cfSb}vB=$QX?ueythEaxt6YAq zzx5cQJ1P6-U%dc0b!sfVZ>2`H%dpoP%1Ik%}u)tW!{kGu!pyij{U8W7g=eVvvzeHaA$NcA7&fs40$ z|H;&m$3qo$?+h9w5@|t-vL{iL$lC_uO;OcF#HYJkHQd4z)?$+o);bgoI?s;RDO`9GKFO-6)=L z!Dn_N&JC`06}08qdnK5uRsj=~q=K266bl|<5VGG~fwG61B|c-Mm5CCha`whJn&Pqs zG8MLT&odEr+We2i4kBbG8hb(WXwmpqN`|wQoAuJ|q8(0TDJ$%Y4<$0ciyHUIRDNsL zm~RAP48)G3Ay9MJB{t8x8I;Q?<$}+Z{ORmMa7>|{l?n>mI~jR1GpTWI6#CaT&BF9> zxeumN*&u`SR&-I-2QV1H>XD<WR|plkNTDHE4&au0m%eA)R#amTz62Qss^ z7%ySecbB!dP@%TWx3w+KBwwv~`r{VG8{zC6M6YN%ylw@N!tzjze%ZEv@r;(ZD+BSkwiEZO;)5JpZo6zf5(Wr!A zZ5-Kiwkt;PZzs~-YO5#Z6Dl1mP=DPTa>(svP*cnG-}UcQKI;Y3bWGjU z(fOPESQ*Zt&%aKq9Ny2D_>0?gJ(_#Lo0+_{wRJy&`);6CFS%VOD49s`T(?3A1t9X* z)DgrvDRB@btA!xK*Ld(Vj<_DU1=)dWgoE4NvwXq*wOKudKsg3^S=pFTo&5!!NR}UY zY*bU>m|iy&D{Wzx-9;rQ&sP6?{$sN14Y|EyBPs(^{ zAbP3SJ;eHkmjprundbu(%cuhRhJ%Dm)q<+$x6a`>+_?qLLszcPT;<>#9yE7F30o3d z+*?}k#KI#m+2%jr#t8iIKT^{hfsk zy(vg7EV0D}vY28sTA;2HH(Ss2L9%?TQjcFuWF-@t)CjX4D~Gaj*5e%L+I^Q`8K0Cg zNOJQcIvJFe#Oxh876%8YXJqu_eDsl8FT=D6j24b}QW?I&v9Dl6wXh$O`alYZ^i)Pp z{>eHda6)NMq;_pRc|S>Qc1Tj6-rZT8&cjK z>n3%+EocE!>nNxNL@+NnKL)To#JNo(-nD10UUFhug zwfWr1WNqIG`b}rBO?6KIdY65m+9aGw)QX1WjyG5(YQBYT$Hu0oLz=6fyt}>*jru|_ zt=!~&9fSlXXA_t(4xdn0!1mi-tx}))MZK@%F>ZXQ&_F3SLi>IFJ{brqjlSuzuJq)@ zxBesO6;M8H({U@?(C7}^SIRz~aUc*9J~_t-j^yDYOKmXx-v=Nc1%Bi#8LKUI-pI#< zQ_cKGp0=p7%HR%+vpZ7La_#jpAhzFvLgm5lklfrnb^zSVho4T=9h&wpy08t2Q@>7| zuTha%CThBwl3a4pq;|!z4fdRKNJ+lIb#0B{2$kc76z~1APIbdfYB7oWHe;`5=K>C) zAG#S6S6{6c?FqXyG_W81I$-o&<#8RmoOi&IgmTQ4tRhxcw2~V@um3QnXMb~K#h1yY z(c(IGceQKDp_>cseOlNF#>i#gn#FndLwNoyI9H@|XW7_(k1#KI6=$19Wv!;cad$sx!fA-G7tpY72<%rh& z^mnFbP~n;LS1Uj!(KXAoZ-1m-sFN#7-|0zB+@DicJ@@u}h*JWjmZK!FsSt8Tfs%9p@Tqt+OQZ=b*l2(`VjfTBW90|J{NJKw+Ab}nHxc{Wl_M5V( zSthoajUD?n_fL7mTlWaiZBsNR;o5!A8+IJcOKJT{w8etKF@KpLlGnlTcJwst;8Z*3 zYR1>|$e;1v`R7*fI_jCFTlt?D_aspqBMUqAbr^rYWdS;aGbXYIGSYCtT+99IGQNve zSeoy5pdxVNOrTN8u^b~17xGIl4^8tbE&euzGQmg<>w^bR+WL)T5~4hIU?( zl$zL|?{pRfN5NBVShn$)fss-y3sN4=cb6Z?Xh~nAoof-i*WXk_!9=s@-ON~uh^-E& zjstvX?rlcBZ_!NiS7m%Jhs1}ze?jQv{{QV|9I;7ZEXR<&yLUfPEhG(d8MsVra+$?V z0d&D~`f?$!7j|rIF&uklsN}H6o-9I% z4lq%a&0-hbT=B!eeB$K*#;b$Y}J!rYGsb4jw(@n(o+%I`Y5P!^~SE zC9zUy9}86`rj|6KI?}@zwNCsU5jet&5&}8?=ZfnlP~W>qUe8xavi3&lFI_71 zc@!**n~D_e(>%emojKovZBJtI|9*}3NltS_A&K%WD zFWr_HCIZ@$eRu3-4gIP7SZgBXwPb}=iZ?r)R*UrM;9#oxc$@$#?Z8kR1aiKDfRk{| zPEP3c5kyVAxR*nCuhkQ!o(0})5fuDp$)wX#PrLD7TNfHi#SKzqJut5oX*<*V7K*M2^@m35B z{PMW%d<3#`93TE&c%zO50N z`O+&LYM=yYiEC>zLn@|;dEiU)Sb~d&cq|`QB29g>O4?>HgD`%QK$IWDD$zz zM=Yo#OjJdGr=eMzDNn-2<}-0F!D6w)Ux3647GjDz?R7>I*%oxAn9yA6fkhMC&Tx6T zQ%$jJ%Jx#NZ)ER$5$NxeI#yZAw`|AbAPD0jFKk|0`I>-6AO4TnM%Rr!dpy1sjVj%! zZ_r%Lip)!I|F6B_Vi3(y?-hcXto|3fsSJi>Y%@1(Q~Owfbl!+)&lUHY<^Slvrknrg zOJS;d1j26Zz(GX4V>khnZxKwQ@XqtC{5aE4ZmJN_80*jV(Qc9p2FBb>*m! z^VbJfVhjk+F}#KH0}(#Ibn)>&6T|JZcoTXdvwOPD49pI1H0sz|w9US8teWNn`hAbE zZ!88$DB1Sa0sQRSwI?>i#Q0)^b~jXbpd9=2yO$$xWN!SPH}%M7H1JVxAY4>)gwN56 zCmE%OYPY-z1slI0y_p>azp=?~k1Ial+6Y$n8;OOodJJz>?*VVmAtnG;w;A!VbZlG- z?nqbs!ioMl%LSC?*Ph1cs^y`-G=gise$79|{o{}uz z9v9~n(kro`DDo{A6aAD7NTn76ao1TvruiP+j`==P9}_5-z3sp^5m{1PSpt@4$;zYk z;4hl`UE~MGu0jg?PuVd8O(nswB!BQ%mlTW$0l+-<=kHg46Fhi-S#4~L( zGuQcwZ;W2QANNE%|Bb%P*y_S>s7k1_)Y|(ncZ98H^{xmP7B&<$ZMiq`tvOiYyf_tn zQANq7Ms|7IkyoVUaM8u+r45*AV7}EaCWgd}bT_Vr9v(rdJyUj;C)yu+)|{UaM70}? zKoI(66TeS(Tq$4fUQyBET89$EoB#O_TcUziIk9(d?1eMQ=bI(?u#!po%LFBuId8 zmzUqB9t}Z~O~ai9%;~+|SteE+Zd3GDLmaWzg`uoT?Z@OEWquSt%|K17P<{Mb%-91t zMDc#^SjHttUl=hmLllLMzP^TWiGQ2O)w{&>eCqTHqJQUr#-NZwU-kvEEs!vXAx}?J zMo0ju9ZmGbgneVp-nF z1?~#XTY-wQK1iV4ecM;B>52Rq$HA<6??C`B!SQIC7Qr&Q3X+Bcvp+1Xs@Fmw8Lm73 zY3;3hM%qYKjmB^&aE7NqLiVC*nS-fCeDhc+h=s|VpfF)X+ZE;5PlBujYzL+A{6yQI z74}GUkz~nOVeMI%o-P{lCxUdYsqunHZ8PNEYxGV^T!j!dg!T3jQ9{(!*NiuM!wAxv z2iv)S<(th?2*|4g&JhrW#Dx}R8se9Lk&HIZQ<@OEl#8s33-uK zqCW0+2RWj2HQ_>@TdGJb9TGjzUSS?(#6u@t1=Bl$@$cB8!Y|H~P1o$9U|_V*2WHfC zEUBBT>K^0c;wch>+s)Pe2M8}@jI?+@Hl;V)K61G(f*UFnh0uTA2vc;@B)HiUSeP2_5l-#T>dwI4Oc-x;d9f0~7Qh-!p4J8#`gdCC%V zOlxN6?;MDncSat?$b$2U&yJ_Gh$bWq6hW~qUUhH)tTqog(L$?QWWC%HfV7I15euOPQy zcS$1_SKYSt5TA}_IJOhpzidkREFPPR<&4Qf*12ur^7LfIV3d=pQvV-_;~20XZwUy0 za8_!m*EZF_)F6d!)+J>RF0$ioo+pS4BF%t0-P;lywLV^BKmEJtmO)A~7Hc&yYD?dP zLd6QZW7G!v1WFe{ITIvyYJK!(*BnfMD_$U8+gj)q;59xj*8nx66#X$C=zAiQqv>y3 zI3UOJ_NVxm!3nSWH(sy0&E=7rN|fV`P5$1qf7Y?WdEx*#7g1}D99MRG3*7)lxs_Ef z%1u?Q?!7@-G2Imh5pYIcccod|bVEM)PKruar6xL4Sb@tJHem1-z@$2k{+1SiPt@-i_CN_YanR~gvXR8er05sh7r3uu3crAnww+Rw~I*2 z)ZU#=H#X?Q>FcWA#u%9f&5!nlr^D!xsdxFn4YFnqQ)I3dmYig!?{!*;dAWLlDz*;M zUQXT534hmbcDg%OPgz$fJ(Dq14aw^yAo-QFvH7;q?#?d~osyu5oRo#*B!;t@K$1ZA z5oUIRv#9OE`Zrz)E)qBc}i>aqefsreoMcJQrV-i=io14Z(y!axE{^u1TL-*m+r2!)Au6A=3k>@e@i z-=!qlW2zHL200&I-s?iJDGbst^R}4+-(89u=r&!otQtP~!M=3>?@#L!#YTU`*pZt4 zTKa=QnRiUA5>9^`VN};K zj&QR|mGk_%7>vw!6x(!9$V6^fXl;4`mO;3W=Y0OGuRDKR+OOpWzmUcTzw&{z0JW@@ zT+Qap!BSzvUV#%8pM-rsAS7LhNu{ovoE`9=Z8_ARyj>%;_#Ou9Djd zJ?AU?cS6}Chkn1+_z|e}v2xj(;pMNVQxq=@(NW=;i`@Q<;5jpfobddEKmR16Oecx0 z+JQ&(bzdlC7eq~$GFFaU)5%p<{rmH-1QG4&XzbiAm7r%GkXl&4&poENaB6=UINJH> zpP=TSO5Y#X+jA3_w$e8z#&e!l-SbnZ-$ymr?-HW0M4ha#?$5PZSGXNu5?}r7d!cS0 z_;C`ctRXEg8(n^eflUY8Uvm z`foFO(F%lJ+s5BackR{5^pdn{vw8pZ(jkOu!;XzKuKpeJgy8karZ-Bl`)vHk@3CMQ zdJ(3a@sAA)2UEv~#f5k9k`WB=_+7C~>3tM{b@vP>8Hh2nFy`UFSP6|7pAQ|C2>tB@CpHW)Mwm$7orh$aJ*>V z>cr$0Y<#0{fkM7P`&O1(J%?)CMY!JT`_#pkJ^yFC%4!-|)&p9M!?&(#8PvQpF;sLH z5nfi$JU6!!A>*h^%QKh0|&e zi;WLT?egpGx2j0{Af~Vt(eeJXLXhh+G5foJ<$JNb5A4FjMdI;{6leb3;V85*T#l*P-C_J@|2`i`PI-5}OGd|ZIHh?H%g@?p#QDb6+kAdY zf8WE2j55*P7$wZK%SkA%a!ky2ZK6oxPe?8A9Pv|DwJ1Cdxs0`){csg(TD4NK-*+UJ zfHH1GWS>}fVn9XKr#)^Fj_8zKX9CZ*+AZO+S;kGOxZrzfhhdmFQ8+^m#_Xn zM~8&zkt!sF?hiG@l7W-QGRIvZ8Kvy@qU-I|Wj`-NMCm>}R^(R85mC*g>woVy{8vU?-XNT{ z(E9JX<21G&(!1%dNbX-bbB7Upwag zql85EI0=<~9rA_nG2ZiscCUkgsz0M@=sO$ELhzh&Y<&6k7Y|iOtv|O>_?zdy-+$s2 zC$Dl!dq73dw${h!-|t_w-Y%VVd_aZUr@i#+FJ`Rm_3R-VZ%rEMy?M#ZV;;R$t-{N< z%V1;Rp|QT0GbM-Hc5 zDQBizomSs!oydhFr|s&n?)7cVbe1aBq;IO%@O~j?hH_RLsauZaf*}V?93UBWhqb5n z)rED~zeeienwIdwxxM&gQi&Q#vc!e*w-Gq-;ktYDclvur8Pwv-o_YIJ;u)<(E!7G~ zZ;C-Ruf~A6c&i-tZzgZ*Rd!LQeKFU!;qwX@%E7nvwrH+REB#C|s+_H7ee&A0e8<8$ zi0%z3YtzK&@A-7tpS-12jx36=Low^M#{G@dTQ4y(?@+{dlNz!7BHf=B+kWJ6kiH21 zp48#`sO>L!sIy^zuk0&KLhuY+cQdS()fs58n+Yj9vL7c|k7TjbtJKN6=ii%eW54kh zmmo1XRK266lOm$>xv8_+uxV~TafteU9`F zC2-td0&7+)9xZa~-s-^*?>9bPTlk^IDz}IJ?(n)cNVTyyL=4i7dXsI%;k4KV&{HNS zCS!OJJON#e+qM;l(PGmyNCrBZ>#>gIFMil_^woYb0M|}TdeEPEQNS0R-&fT8b1Qee zNXr~-2p>{4RynvI!NdM5B{Oyc+HwtDZ}D<-X=3nG*u1~EPvwz@mF%gvc*xxQ<#D1F zy&fSiOXc$?x3^)OI~gs2GiYwiTB{;3YBu0n8SiVYYIDiSL8+%8Jk_!JOAsT872AJi zoI!RKNbu8p+A>t!@vdq&$oZm9BSuRZTKshHwT@L&K&#Cn&iq7o$Mos0yFrHzoWYrQ zT-N5IlN8aNZ;wMk{Bu#PP2|?AkNzjQso5JbbloE1jH?%s8wq>;BE% z4b7}QCfj}JI8#0BbBoXzXvq5agsgLU*)Bx)2#t6$&YubSvEdu3*)B`qhXh)dFPVA= zQ-@de8Z(kMV6z8LO*q&Xs(Ab!54X&g10`Q}rufD;oWW>k`g2X!)u(ni*|g^U#-Yh1 zX1_T3u?FT(x&8cd1&4&SfQg)2{Hw5mGw+My#CIYjZ}HbMfTs?r5gBdAE=*s@>PDi_Bkvv_V%L-H@0A{E>puC ztfx*6G>GGpS>?AEf+uX&w!zoJML^5yYii-)prAl=ZVcc}U^TSb)2^}gY%9U-HvdQr z4O?@;=2d!H^ETy~C3`b>E6+YQ42lb4hrj!u%N}glZQz={je9Kg^ZhL>Sod&~6ZRNy zW$$-W=!v@bmy{)Rn27xl5BJvef&S%iJ`5=q#~{3Rq$Y|}6IOm^tZ06xaGVE5A(W5a zPqPJ{a|qHk^$ZoqxF!P4w_p&4Vs_2%1DcO$vDItlx`!p!{ix>`_jJ?Snol*hCE1G! zYZuF6LtDJ~QMXRC`aU_#sI|T~==Avv#o`0l4;Sj!jO9j}L8p^V^Ni3y_ac`IuAM}z z}ACR zytOXuMYS5YfL7umAXn8NLSCL2go#R%MQ-gu691sZ3LCC*%@Ts=>@NG{(~?%=hD%JV z6%$MtA6=}uIR7ww6O5||hcNCBdtFEvFTQ=2YdLEqg@f$uO`=y7!i)_8ti+(uHjcq8@G#63FRAZj0YmYME!X63}qYcg2N z4OemdKt;BmK^u^}QaGf4Oac#+2{PQ&Po}K+e0@9Z1Ks}&K;fQYrfIMr3$uLsAL5!M z7G5%3+BjflPyNJjNY)V_X2#fIa<|QH8kx0cP#Lrv+%bhV7BW}&ty9EeD4Cq0Hp+?h z(&*r9PxvI5@iH~0i2IkEutFWi2+yfNe(c?Y<1pmGI)}o>wbsn2dN-7IMlh`% zOnY!`+Oxau0}sNq(QDK0*_iifJ52j%ZCWB*w`Dy{YrQrt;og)iBD!xy__R*z%iXrJ z`ja_MtW^AY&%J+E6nka!8;-$C0aLO9Ld9OcYi`jfASgC-t8;%CG{bg3|Fk8;4R&K4 z^C!zsg6l;6UiIXSVPF;qWD2g+7~o{ujf2^Dtb>zD)G5$^6Aor1tbc%+E^C1UvXdw8 z6Pz|I2WG^Y>w^ycGQz~>n`dl50+xTE7ZEh}kd`|R<+GvPH}c{=-M0cAJiLb^C|JZk z@CmFr2w!u;)_t%n6&&2`kE~#@Y~M;Q4W5em2ms$dEchSe4SX47FH-$#e`Xpw6Gg6vD^jm2Q)!;!`6DE z69R1bOE0Y#4~>8LaLm(%di>>#*b26L-nexj>=RNVVISzs*7MQ=wlA^FH6&<@uMkF3 z>BUtsQ#PMjhx8FDZ5Wpbm8thN^vg39A5G-=X$}%!r7%zwwp0y11E|i@ z2jue8d~toSjuty~KIS87Ps%92Pj<30?43MO;eRC+6J)}I>b+A%^HC&H27Iae;#tsm z&#x~X`yN+K0D7@Z=Kk>gkff6!lp5^9JbA!DH~Z%>p_UMKTi|!ycVau#7`#{^wmfhV2-!YQ< z{NvSovkuOlXqupL(Cu910D7YqFJ{?##C@8-!nIEN4phG!OfB>j;4V`%ffv?If+ZQE zyfO1M(cMBKwXpLaK};od%zD)vx9i6i6-eOI8sL=HGE_8Od_JzMzYddG+OszeHp|iU zMx96zqJD(1V+&i7uv=`=iPKv7uxE0eP9&pa?=hybd-Gn$YNR?ZKYqDew&obVbmPbli*ID?z2vjTY&b|fPWsF|q%I6qlY z=1IV4Y_z4+E`GasCMUq14%E?2Z=A!#i__VZ_ddzfT_Sgx+fEK}zB9uea6U&}`t2}^ zV%p*}WpkhOE{rC)^&y-)LjEo{Jiva~zySK&wpErH#?u8nJPJydw8jp0AqKm$yWOYc z?-K9B=5lBQ9=LBNT*eqL|4_9h;{$hA}*)FLFW&I2RKZnSs{wE_oHp2IT4rCHq6+3 z8%j6@B>V6&{%^JZE~bZ1VFO(Z>M&^)4KL>aWxP(pUbc`ks6wyBoJgnMr^eI=d8{?& z=mpei_vh|Y-X&`dE0Y6E#n8)UUtw;FtbX^YI5DOqC!6Oi0D&v5Xn|^tQ2> zM|Ly3;f%>3DeD~`W|*1g^+f7w!x1joJ@88wjHUYY&kggfFpsVZ&`OFJA?Y*>b^&ly zaQX95LwM!4QuSuJ%09yLRI)kW^Q^xCJ#I?n-(SMw+eCeI^7h)3k{a%lbva0e&}7tL zX^VE z_>*;uVLy`?(`Vx`LAO^K%+U|Kh zT-LB|lAje`2~V7UnFsM>)vQ5Ir!#$Se!~fp&}^Fc=`Hz=8>Jm+n!4NXBXt{hV?E$@ zV8fVqq840-ih(^SJ`M;h=USyP-KIjW4vw1XWmu5dRUXvES!m+4{{{LG(;{jB*s-HpPJLBj-#2YV)~mD6dx zLJz^Q8k`vqrnt=JKacNg*3oucVIN*gyN}{1H$wuDd^+`;z#Tn$yk7&j@Cab z)9noo^0~zVoG28u-m$r3JK3@A zWXHB`+qP}AeLV19!lo@<$! z^s;ULhM<8SRv-MaCh|)k0qM0ge!r;;-o^UC6;At~4>2>sJ8027LCFBw`|DkTBQS)k zq$dqe~D_&J|7>@Pc0ZPJnV=u*)@S{mT=1>ae36?%Hi)a->2n_C5M_ z&Rd(7I={O!={Gwk%A5i~aP>#|42R`Fm;s5MfPz;f*v?%@tVpeYh#4>~2SV@3nNQ)b-RI=Z|Nhy;?HBw4(M#nvOeHVnwPxT3S>n={0&ykK zhz8>HvdapfFAd+`cPd57zkygmjax77L@px+0%+1bqS!!{>x-y{cwstJ**wY_8hp5` z%ZtH2pav@lQ4vJi{sKv(A~-NW}GYt_zODmZvvA*fZKQMrEWjr#D;%~55&V~ctCrt zaon5Q0(M-02xtS9hY%{KHkwm9{U#ck!BKo(-fCJW32!!lTx@S6CIQ*4TpWWQ7|)sD z*Kogj9C-A->bztl6p<3{Rv5<O}Y2?9ZU%BvpH zhB$BmPCJ2OAjF1Hy)|d572tEBqKZGaepr`(Rw*FoqG6N zyWFtdf(!Aggg&L08>B$T_l!WMXdKK#ow49~X7=GGP7dhTLTW*~!MMk{_SD=wvczM* zVkuy-s0l*)EqaQgwGwU7YC}c5@VTMea&JWt3wJ`#TKAXkip*=NY)0Yq^WoG#vK`^YGB+wiR# z8l2n6vz=nY+r(S@pmA+{``Z>JZ~{5bkYmsbWMSK(oWa99L`bL~&5W}7%sv|-Np=Az z2wj(($8;Z;LRs8kz9WyRPDxtWoQoB}3G#6Y`mf#qeSW$ne##o%avIS*(%EQgwb!`S z-GYDCVRJbvk6G+Wi($FY-H-*v={?c@^1FpK)gythPfvRaLW5Tz!}>WIZM3YOMW2m+ z6xyEU|e1ET3I%;&~Q!WNl-7gB|1b)&(OHBPbnEV=D{|z_Cmp#9<2J=9h zUsovu<zlx`^`9@J8}x$smT)qmyc`mbU?(wH(xNgr z!tw#=EHe)5){$YEQN>1$PR|J{MJ|O4dp557Vlvd+I>nH_a+R=gk&T@WhW&L}@~qqv zJoGR9%o|hk8*N5A*^CU?BJDIxj$(e-5f*DxB*=24-xic7QP!0z?|w>xhGlbE2Ly01 zI0N@SBv;gCRT)4ntM^y!fya3n(m!xtz z*W^}g^)p(WKK)b@%h3S6GX4-oB6{NXlE%?5(TqL)=Cr1hu9G@oSNx04;LVo|e(=+5 zTw)W|`i69W_*^^Wk7-^b52|6?;KuA$&_0;#44sWTYaV$So30Q%i_1|9Y!EgX*J~Ok zDP|Oo9c~D8rEnH~T`@5$q?yrGH7CKdCT5nlpm1<}x8>0&2?*l#3DVMV(8VcT6iYn& zF9D0@yxvl$#jYx9?AtV^#{vHZeE)V8hG1C_?OR0UbPz0ovJz?;=9PTgY{!R1w1K|dFd@LPswAY0uwT2yOCJfS22)0bVJCaJn82ZRaTrheB#hC3MPlV<=z)A2LDtx15WQ$`M7-=|8WSVE$hp0|LH&CILvK%5^vPzCIG}^bgy>U35Xd! zo$nj#9*Hc#)@W(m}XW4S68||&)oMLtGQ_KN_YS|49xH$Mx%ZZ^lixltZ30tSHYwsZD+F5w4=XgK@5gD#q$`2PvW=BV3+H2^u|;! zxAv}8C>$h<642plduatplF&$sY?)xNu?SS4Gcg9;O$%vgn$W07AArw<>7Y%t_BtKYpQwV&0WScHM4?{ zAu+D&9JO}p^J#!5btFdjnMmfaV7FoHaR_s83}Yao@AVusnQoiZD&=~L%&#dz2oIsv z;1LuKWa@|v=6GhA*45Sobh|rD92)m0a%>M`{T8%i8$0kTWqsuRLw`-aSfQb@$*2el zTH97O1*VUe+pgxyejjpcTu-0(4^`b(vZz*Te4kgb9Ks1gQNXXtW)n@y z4+W(njEyj#lA*JPNzA|R=DBM*E%sq{@1rplOLaDJlk3}Z1(v}8(&9H z-1qDE&C}IV0yP}|SBd?B#^?9`U5oqM`QgnUrJ~)N+w;YvC%2Cew@%({*(#|A*xyv zCOWUUMIn21pWAaS%C<+oqah`#a+LclbtT5%vzcB{lMGR$TVlzgRYanDq*ORHC?3w( z!t++OvWv#Iw8T6oPJ&G{1}n4fulxVowui39{~&595ulqJGpMYvXf zBHXOdOv|eBe$&yv_F*{a%T2}snwADYiwp9(MPm@+b%w&?`ioT9eFfI&_PUW+5=qf0 z#vrm}dCvCdj)XSp9R>%2u&bp@{z7FTN|dCa`NIaPtb*4}i`*LJba~P8!zi=(!w!2JlU988?ed>&ZE4%(AU8TEB_TIb28#X|KjZ$kf}B6`Iw0C%5-{aK z1vfVPxJ0%RT$BBvJ~mYWXo7a8D`)Yx2VB89V#Uy}1O4t{*i?oS>k?lIaURh2KJBH| zIydcNLX}E!V2ny9m&MIixCOEiB!(nPAS1o57D@~3*vd|23k;%o{jW~5wx z%|KHv^jEX0B#I(VS)BS0Tx`ojlp47)o+!!_RK`yjeEqKivJZ z)a5H|YVfAaP1rS!6WBExw{T>c!7Fp=l&$DgwmqxgaFCt9ZR3d<>tjXY7NW4w8A0vl zqQBsxTHxCmDC09|(;_Io5DTvM7GU6g(Axh|NR!Yv_l40KF=rd>?gVLy!)qJ33G%)T zO3D|2^egF;fMV9i4@}QB4{TZOMD}O5rWUXLXh}^@4moL_&s@yg)hIPGUOM8@nw`;# z3|0OciJsVjZ3!I9+ovIBuus3%SttV^sBPs%WzAWBg`t65-)}S*GsoC*IWfovPjPPF z6UZvg?}7R~q`S*K)EH*dVRBf{2iejp9N(Rt4tLkl^dZ)9f1@aIuB|eNX>r+aJk#WeWMi z4C4v_`tL#p1Y{QfzhMvKe;2a<6fxcZ)G){YgMdIlPbIDDKVko;VgL002UPx#F$U)U z6FJ`uOVmv|VR#J3rx#!X`YMY2+`MhA?_V#-Dnnxt?y4z5J zA=1X6EJl_}-2a+U=-8zJC?U{isD=okh|E+IqM?ZeBm>d)%+i z5+MUQe_nRaud4p z+uCuhcv|2&yXtY(1zv-uaKl^G>O%L$rG~Yz;*!H-79ex+fc?gSejrPbyKKj+Y~5pr z%g+%y3bd&*&k&C&LS6(kQ5?gf{jgB&Tjz@+Yy8IYzmKz#euZ%g+%D z$Elr%-2ktL$4p3F-`7=E4{j#m@4L4_B^yyjt8K5BE%w~5=f~x1h3I^O-7H30lQ1xN z*ON_c6JXLxQ%(%8ObHVR4RjP^_Wgt7i4)bo9v68C0kJ36!A3A?R5qk_!7x~{!6+d^ zg3K7oY)atFGYe6WbqukxCbA5T_)O{R>6JJf)vc((OHn zwl~qMj2&?kF@`uhz|z0ATV`(|VFj6Gc3YP4@4)PMs`|bXX#7B~HQ)B6=m%f8VVaxX zv+kI_%V&m9#$ummSEuw=Km+ronZCc%_Y9}xk+DrNQ3fa-k2%?P@cgE9@*zKnlB!B5h zDt5a3-k-t27JGF3x7>H_1ch`UbS-cRWDk5cFO3Kp<$VCdiXQYy+h}t3Q3Pq?o8KIm zONma-w@bcG7}9bSobr2IM4<_$U@yrO+5z}Lz=W6iPbdu@R~ALq6QRPb zv%Ib#ZiO`!UA$K?g&;Sc%~V?4=n-(#-SLF`ar0ji>akGSWhII>IWXjsj_RTQE5nN?EUj%=Dl?9)$8(ANpcASUXsYkWrK>69i&hrW{ZmL5#7WEj%z~ zW+(X6; zmk$VFKgA(zJs=}@3FDr_Fc7nUhrV~|O>!gt+Am+49aMUq)qooZ7hzQ<>&wW{!-oK! zEK>!wJH$TVFr)K(>8K<>1Fhr1=vhD-NkXGFEeF$~!n#R^FPz&=O2|G+CI7yZy?&SD z^S1kp8?Q{wu3&Pji_JC=iiSsdAZiHZnqXTkHu&|dNb!{Ma$N$}^lO!#B=1lVU$`X< zLG~7HBP^)B{TX>dYXS5JAitffdTo1uB1j z9*PdRX4s011xE~r8hm2XgyF!D5;a@kZ=4{%pl2zr*@R$M9vTX>s<9Ow%GrPp_5wCJ z_(Z0%ISqCmuWbN5>4hqlSN(6622)gB6bR$$!fJU`DYRWMu+P9)9@Dw0Tg-7U&Mq&d zm{@T+`6w~a9NNBZ)<3eWTpAE!7g#;euWB|*6cFJ^p3FRKcS|Oy!7)MZX=N4_lxKbn zD>?^k!36}*5w`%&Wz{~R%rtq(88cR>Wy*RP2d}+#WTrzlP9C>ryebm|WnwPK@34$S zFRTvC#j`anIN1@nTc?tOAedAjg^I>3Y4<_G8f0#Y0Ti<5#EAW&p@^Q?>Qx4Htb3|T zw+Q^MZJ*=%h7qkW`?6$vopty~l~0 zoh0TFw1X4Ddaa`|U|gjBmftMtst;Bm<(z&Ht>V9ZivBWpaFVD2V=}7aR3XXUcyMF; z>5Vg{A3AaX5BXJk#K$JECICYUw^u4#69z(ng`+7DSr%01gFaG5PBCb>#ESTHwi5on z<5v~|V(t>B5y5^nwL^mkFDaX4GNlA|j?L1ufS^!4)N-6Ahe^lbrSESGGKS&CDZ#R* zZbSWkn^RP3D@S-Ru$lZ#6PmpPYCTs)2a_}jb-2eI>f>mXMmCZt8gq+HigV00c+m)z z_B~`Kx1%zb=`dGv#HKjqtv&$2v1BWn*0|&Pf|Skj3OZhsXRh~H(3J6r%i|TIOVcQS za+sbA6ej!K5;u!B!Q+9Gco+ijMq+k#Xhj)ePEhF~F<>q~kBE^1LzoJRGp_JVVI3%U{KI2%^?OSLq>dQ^A)VmxvppKpsc?KfJ~Tne~*rnrVd9+;tcCi z=SXJoC~&)fjWW^T*kT1<4=~J3tKxlh&l)yh5ABfca@4f5~S5M2Y)>7b*F`@$z`nDKl+;xF#J{%cVixeDUdL0ER{WDw2heY z4is5l7_KTJS1Xt2;G6xQ_e_q1qKdsCswPIsWi{P3RA##p$Cj!DZ?oJf3VU||j-ua6 z(=Kkn*qJ!6(KXP?-sp@4I?}n()Xc5%ZSvdssZeElIh5%~gK2)x z{%WiZ;;!$6@f7pz+&*XjnGWr}1wQw9T%DcM13vfqqwy*(%4-3}zi;0<&*^(UZu)61 z6ScjLt@iI)&Cusy%R?;TLtqP({!QB9^fPc{%%1vRfE!|Zg3#COrZ~^GHNdMypX0@d zrNcolq)32D>_Ha_^hNqg_0IUNhqiaWqc(g*7PwMHtpRWb~rFA5U_GR=8MdEFQPzqjT=!?fvWXneXMI zc4>R`6QhlTuHv0o8{RPbNOJ#_2#3xOiJEyH6A$7!YOe`t`=X^K3MQB0mI!Pie;3Gd z8cG|hrP`4SFr~$7W;+4|la(h^H&ubYHB6Zk_Bd`fI902NAHn5qC zUs}zNRk#~kh;XV31zUn+kq@9CxGLNU6)>kh{X9?^LiW*41t=EnJzCmTU9(8 z>X`T>7)hiB>{tG9?E4COg5o0P;bROfoy$0X+u++cuFqgRe62sQM_}hXc_kA zM4m0^5o0H}1P!j=8eroc2vlwI2^@6T!NYsiELDvQp1pb05Owj8{)uv+#DH`@%k zu`ZC_EF!Wp z?#TGr2Q>|ThYBh3(`T8s>D(3CJL1m@J?hf@7OF$=CK5$vd|7d_(Dr{NZ_RlUgOE0f zx!W5153}Y`8`{gDym2B|mQn10H8#;=M}=;(Uaz~zpZl`4Atvf3tIi5p>CZR{#3K{k z`od|NvAr`!F+gS)O4t4n!noogGdknUe_ZNaGPH0FW}y|A8L=oM1w*S=duQgFz2}HH zM)c&el^TorWumPdwGF&vpkp+Vjtf%7Kx!{$6q82LD2DvFp4aHxpcB!-b&(Azs2#l32|9HY7#D2L#z(K#H_t>@w<*(40f7!ZZc^@;md6+C8Ky zO~#m9E6-4RS|>B)z{tHkM|{~!Po*q5C3^-i#OZuB6>*9@1%&jco|e6;CgMD2cp;;!z4B7bD-l}gqdhnYxYf`iZt_~Qa#^o~ zx3XXnvw?n1Lqv75)!{7rk;r6GR!DqW+7g*U2!P}Ig!`gRVaV)0EAnirf1$RV_I!x} z_({djb{|!k+@`?NMO-_;LO?eycASQUP}(IVW{PWhWic#vOgvtlk&~p!TCYi3`ZUs6 z#;0x8x{&osHO?^$fEsWcpxtb?jJ1M=2pl$>-|(*aQNX%w2G2%CriDXGF9kh0XT`y1 zI%!Rd*j*y)xEG$tg85<>@?%UBB&98@Kh*VF@IqFi&aB{vsY=i2M9tXO4m)Mw?3yb6 zAhV>J?yZC6NMu~>ZG+e4W@H~@WYj*@WMQ;$1Rd*~(V666B716$JJ@FK-z!>`&Sj@{ z&kj4gMma5S&VC7Hjpve{)6JMv5i$!`S0X+@Qy=C;jpuzE?UGE-c1A%rmk!{fZ=*4M zQz)RimN)G~d)AwcWq`ssP+Yz(&xgC(OFD@K;KD`hmjJsu#a#6S^d518z+@EYY3i+{aS~NAYt!jz)76!l z(#JeaR|2v>?K@PeuL6>vIb}ncvoiP1+Ki`j;R25$-{@|+tr#+r!Myk}cg@lFswH(nDFzL@d{BL+G;!L9+ys&;c^hdy%$f7x>DUUnWn{VB8!%0k z0oIGKq3&~D1}ry0JZp<9BhL@jo_~EVzcjyx@NKt4SZ11M*@tAmATZB2b1u5KBXsR@ z_r#FMAA^Q!JYxmp7zIphudFXTL?09VL2tz#mbFc3 zQzp+-(XmJ}6*$V<$l>=j*HNz6ooE{p<51IRZ#l`1X5Jha73_mL5(vPvWkW7qqLtPl zKfqMoPb+vja&qr-?T^fZ3I@3b&Of)9s+z1z5HI+!K;ftGI4K2{zOhUmhx7Jcz#ufN zsk1+|JzQ3FK(C8(WZ3pJQl#-DQ_Rf7;qlBnS(OU4@{$uysFX+LG(--P#K@?$n&}L* zHS~k(8SeJv@HFDRoOZqkh7!4D>+xcnWxiX+zNfYLpD9b#`(?fuA0GoP^EoU`c~8>R zV+bw{Bv*LSA(c)lC*KQ#*VRnaF}ftfv^UX&WiMa$@~K73|5=}XPy!i1E7dUORBoj!q#KGs3?=#BjXUmqE(Y(678oWWZo@CFy)#u1Lu$BoYYeRU5!YMik?pdl&Qg-d=e3oie+d5>hRpVI#yLK$k|7jb1Fo81}Rb&=~Dd5sdOu{b;Dq z%+1}Yaf0cONqCmn8J_TVC3J9yya?@UK*%;e5FVeD9fYXB(wKPU>lr2!jdZC`3pQKy zYhH3o9f+9#w%ZS3<8lgHMm!N=lM*nt0OR4c$X_d{42tN>QS^;Ooo0_fRLPzuqQFw< zGA#{H)W2u~cDzq(yIBEch?Pd_$73}pOPJFq-Qx_>UDO5ej(USURcNOEYDF?>TR%GA zvh=YPV{ACIbqN!BB+W2sa5GO-caNB{!4qy~kM&8TlG(SzHtDp6V#Z;}WW-I_RSZK` zn4nMDIrLS|Tcv=^& zWEt8=xPGeV1G{12F=du8=zQOVlj@Qeyf;gv+Sv(Xi^e7M>q>f^SyYW^JdGAPwPQGzhNX&rCLfqyb1|cr+Bg(V0R{7J`tJhK7)NHnyc)BW3 z$ll6|xKyjj+Nsg~7yU{zw>{LAnxm^E z-Xc-45xUULPMSHkgs!O8gbtusu1{raTkh^F%1-RIllI)C(e65>)kwN5o<7}zjLf*X z9&*jJhm>GXyEM3kkZQ648$y@Pz##GG*2$kp|6ED5T$RGvIN#EnnFs%?j!E|1q1NU$ zuhpQ?lDc);14`aRbbCNv3h47sF-{}=4JrpXiTdWu>tC*3;boleuIlSPf?twuZN;QB zuXYEIWbY)4sOY}>^GrF5&TiVx?;7hlXWqm z*B;WmhrzIQkz%QMYT%x9?ep7G)=0U#w40$?trAQ+A+6v|t^0Ft-JMIC`v1PCV2(8Z zg|Xp!<=@>sTH8@#EBY=aZ%ol%Se!0j%66MN)lA?SP3KWNR*<$Tbh>jMGdWROE%QLn zO`L<2_fcHx0Platms6TQgO&iKGZqK;2^2293j{Jhlwv zq>XDX%>KPbfbFbHz3ije>fNih2^XFJ>r(oH&=EUY1HXGV53#FzQ4X63Dpd2&9Nb5x zIEyr<3B$Q*xl<^6WqW+7U9~GnBwv!a3mQF9o=t)SQW<`c)es zgIts5vj{RH?wQd}D7S4x@!&mp0 zCcB>_s1q(u&1is>U{PpLlhJwlm#~`v!GkW6RyWuKlS-AI+P*K=>>*Z{)k;JTaEpt| zB_g=(5L2`v@sSU42A|-9j|~DOA%=-x-wC{$siU^IyCMNCl8VpVa#b{^2RorvfEbR1s(X`Du%D49m0>`vVs=CMA_q{F6dsGL=etOybTuZXCGZJ9y`uj z1qWer!jVqf_|9|~Ul+RA)cm+J*NehMn-GpVElWZL6CHDU_CX1~jtc5b@n~2Lkdpn{ z%^Ahve~C?mV=#_4o=>@*;6zQM)t9la_@FqKxM!8pxBRtoiF9)LQI^xLQL>@eI(8=! zi6jvP4JxfKVMMPmS42$1hm{+EgToQd1>ojxl2H}0@SnrWk8clO#|lBhjFKMX4?(!RB@rz!QH11L8WVrF}*g#peef(#of zi3>w}=kf%9Ty`{;x05e%>IN1*($HP<>0k$pj%3d}=j9&BE<%?&^lAiC@QLFN9OrU@3hFT50$?q=gxGG*vFcq$yRG4LP6=; z&_k?VI`k=ICV(I7CC*x}Gge6Hse=N>)_Ufy1My-y95GGC zQtbjqVLp>&2HOr8_C!jjO;RR1kkc-DF20q`1qisD?EN><6ey-r4?~|Yv8Jv*>9Qy3 zKPntG#}<+1>MEXaYH@r+CLIzyO#HSpFs96yX5N@b-tvuBo3#5Pe*lA9#lZb@r|yGR zTWzcwJ6_1|mRGzLjW=9J!8Z))T((`qRecMcn#NHea_NDr5Y-}_x5TclxD{RNH#FFA zOzF$RA-mY{sTQkZ7%fY)QH0)AyF44QY4z!-g&izXx&M6P67L=QXAn9|YXb+h>lZvR z6S|tu!)Es+;txjpYiDUYE&YdR(+*o{c-jV)ItI{481eq`=Df8s*bbFWz1_F9?3O29 z@Gw}miAPuPYNxryKICj|6>#Z)Maw0bUi?`pxzkaL3lm%-JZd&FU<$o-jr7@7BFA;N zjKf0tF-6m(N}qZyxTiqv_V;CP?{;S9?=LGuW~`iFfiJZXmi0Yh2s6vcCpmHxhBnq} zy*(_lAjaO;7HyH5=iP$NL17}bCYChde6UXoQw=vtl*dlt(fQ*n`A57o$Za|hSM5L> zC7nEv*kA9&1=tz-H|Nlf=XKZl&##}sQBx0kA(<9ehe!3?qjyBwR zjA*ljiyUUjeE8$QuEz4Wy!O)rkg5WJ2c@XkeuhLH!w_3TF5(v*$Y5@1lUh{VT?O8# za@ShHc*kXy^y9(XMGfojTTUuJaKzsFeBI3gf=YDl{tH$qWW95z?6IS^$YW8+U;Za} zfgGFyZJrRCO}Yl?oK2#c5@OwrCiO6DGILx>q4U*fGS?enqf)}v^a^$b`kP($n{L<- z1eya{?swvfe`YusxEIR6J!)K~Pa%z^mO%03oKrb`c%@QZ+9ls!uMGy{xo74+bEhkM zb`FY+cik>gF-w^zD|)R{cESu+(Ri{z*1IV5fVit<9o4_ti2=BR^uIj&UUca9Xg*vG zyKnR|wAw&`kr|A51k=?E7gqS5nfnsL^B+ ztVM-J2XWV}@^3LQX{GhMO@KORW#H8=c!RuB;~4M=?*;0d_kfF!u)K}I{>|dcT7SJR z+1#g+gl8;@5Sm5OCWshcRBSAcd4xCU>%P$G+Nq?g(PH~NVBM#Cm*!(51rEl)!~`ii zKH5SHxwBq_NYepSNRWWnZ}0mK4X|SMwE8f)disCcY{csxn^iPGLJDO(AhFxhs#=!@ zGM;PT(Ea*6MFa1Ad_#4OUB*oR)#mHzotk0F;>6;*zO#}C&P^KD^2g7ben3}8!&P!) ztF$R&5k(vqNb&%`+jbN!Q+-__ryJ6>4`Gt>A?o()rfDj+E1G`L*TyPcFeC4Y*mb7o zAF4-oypAprgP6!Ym817xfFj>pF->SnO$;NvPxY^dD zc4}o7->F=se3_W4_1<3Hw3vwhMu%`pq>bs{^XSx0E)BT=ktH#_t}Bxe!x!{wNfFCsM&e!-};+?D4sdwB>udJD)ZmLEQ4R`y5a* zO5{%{fu!$Bp_qP}B(PY)_h@kOPCmN)2Wk_&)F}BC91D9W7F)&RVRX3tHZo>BbL@NH zG9uLaK7UCc_5A4ay<+=(KmPg8jp{pf{S)Bf%KABn_<28d!ez9gBL9BsgV2zQDVW1Y zKc=S&%lOA=r6k2JZM4ZLr~_6Zz;BXkcv^t5e+= zK=pJ1t}pf9qvsRKJL?!?T?AAg;l-}5 zT&3ptf?8NrmIp@~BT-EK#MDsj+%ArTw`;Ecw_2`(w`)FskHY=9Rt~*4TTXrt5}%L0 z{rvCR`CQ+--Koe^rr7i}oWq#&7V&a+9u!Rc3N_}m<|FT7h^4I_n;)5ozpk6A;`Q4- zHgGb38NU>(X>&!K>0uAFTbp+ul80)oRLx6b(i?mP>gmF5-Si=*(`R;Uqkv3L7@MYi za{QHY^mb$s8mr3q7 zAiDR|JoNhqHno2lFaguETa)8nFhe$tqXD5VW|)(DyV{R*TMKZa{P>aSrQl~M`yl98 z1X&&?ctgN+*gZ^;iK9jjNp1FkojlGty(hLb`cpcjuz5sZV=jkoC*^i9zqE@UXXrQJ z^$9$CUISrI)8$pn1Af!V+It1ZHjP;(VbD*Isl7~$&W@U(V30ZYl0S~d@Al&ZRII)W zjM8|GGMW?)*EQ#uXmw_y9!5T&6?Bz-11`Y$8E?#U)mmW(c|%Y$+F_kK`otQJL`zzK z=VNmH>bpjhMzA}ZMnco6AZe$qD&(4vROo!Sssp_+gjmVNGJxG6?=CTj>$l)Z+2vyo z80AxNoV^%=whmYBiJ0PkyUGXqNDzY*M9q$5Q` zKTBQPYSYrQ=_UR2lS|~_al+iG;U5BtI{IZ~JOmHYU<3y* zu}6(5uHruWBv5~0;g{_q(k_v?B2<|1F`4;$wcv$M_iq30qv)wE3q`elN`X|N^1+kC zr4$njaLVz5q@izf93A5=dfa^!+ujLmt=tB(MCYYg*&Y%(TV5vM;i!^&uLGo6ob2jf zoHlcPUDEP=PP&?1Q~WoH3kv8z#Hxnh*u(%;P@p?Oa3GrhJF&{#=|2=LS`!CbN2mYr ztGcpBV}A1@2S4+Oz_QitB;Yeg13|+OVJxn9mcbi9Fh-=e9(z$_sp!y=Lqq%MP|JD3 z$nDw*uY3&=eBa%-0>17jeBTDy0cow)?|bX?K5yf>-+OWtZ{zg7Z_C#oSGL<9drvLh zx23Hw@6$f7=eoZ4k$}%l+n+(LfX}04z~??Y;3bm(^YmHwdu{paZ5iP6X8HQi$^Y?T zDg2oMlcvz~)vEh_*9v$uMV`mnw?z2dYwfv-&INqFECW71)qKB&!rtx)d_E89{aXnx z%0Kf`?$Gx>UQ&HuZfkwto(vUIG%Iu0Ft>d^T#;lr*iAeuMA1gcMH5+hpAKAORevw<5txcIp-);-PphAytyw4Efvz&vr4~C=Y613 zKg?^~VU>;r^Nw(JzL}&_i73sq3c%J06(2Fzq zp4gMuV>$qvIJ-}_>(s>=e91b8*A`Ls3agj%g5eV8$?r>drJ}*Y7y0}&ZDFzsPvvYX zWO%uAw=NeFv7T#rILf7oIp<4IzWnxE38M@+PF6-COES;{(Q$_CGXeXq~Hj9aaihH{+7XrMl zh;)USDn*iyxzp>21yFP4T`g-ku4rgRcWi6$$9K2>PsYgH@J~s!AM%zI4c#7bmIIy) zmm$ONLRU3P4H`}j|bNH%C$`+Ox01dS@T-Re`}SiCtzVZnR!&8SzYud!731S?#~#gy?>Irh z5p&?ji1SeNo-FneT=(-7lhAt2>>#N^t<5QQ)vvJ=+YHP7cmK>0D{PVX_560F7DkQ1 zuO*hUiqfhh1HP?_A^CYi&`p> zL9-hr*Y)2GqKm!+c*Re7p^^@ z-Pc~%p0%JZ=0#OrirzRP%=zT@2r`qi!f5=|^rauCNR@JS?qle%v)j)kk>2GBA~U7G zYpCw#D3^;)MSOIUvAdz4Yr>Ay%gv;%`Z`^M3A!tDRq9HfYWNf&XRcNBl!oIpHV38# zo(5P&I}y+uoOdrUx??=Tq90qk-Q2N6KASEBL}ZG&%#FuLpl#38;c--v<8wMIDi#8W z``Sv+<2Q6{H4TOB+OG_I9(*?-T?B$E27qzUIb$!l= z&t8`xEAui$BpeW*#hxp0H+$k#7%#mjE{!qyt5g=$$RnD6zzzOTnCL3JF`r(#khVna zUj&!y!3e1KY@;mQ^kY6ERP|Kk&$*=()aG?#WJtny(yi|0IO= z8s_I2QP31_S@DukPuZPsBWk_PTJVaN#rSL9YeXr7;}@0XSgqcTgmXQzE|XFgxfom? zy{>z8ypLs9N4k<~5T#JHLiH`XjvRO)MkjAX4t;)QmN@Vk0LP&*CFN3+ZYWn)u#IZ6 zLz|*3or{mD_G>w-nQ9N`m+vJll-N3aV7*-0u8pBR zf2niu&tu1I&kb{W@uKAk7gr{^7LQ4LLtK+oM)jJ7541*WZKR_6XkGs0h*R2-i5P44 z-xy_U>+xO>|L)}`NhyATrP9xGM;VnV6~xxi^^ma2aHZzQk{q?-10%$OL}BHRVCjvI z!fmhxuE?xT7P+u#4rTh01{(X+&l4g6jZ=WHy;R?~Q{UEw9&dHLb}~pD?dg};DzSaQ zu}F!<4nr2pExobYu{$~OxcM!8#+OA-Amdzf#Zpz+ye+{;tEzAVFYL3AbtX;$ z?pym5AT_B5TqDz%yZx}k;MmEV^rOx|_vO0Xuf%AJR)rR>dQRCyH2KepI-Hx1%$^K- zi&|tsa(khLmJ$nm=gIq!)A(|%##iXS*63ZOB#G&_3n;c+R-1LQIxcQL2ZPL_*aGCS zo?%a>PqWnB9K~89rAc*eylthDSO3nygzNBOOibL%R zb}Ko=75E?ppetQJJt=NRVkqaDa{@Xg+md7k*OYar_2H+HCL9!Nni<1apvkB2H#>ctncvwT4|CFNsHHf}&7!kQ0-ygj z;U(N?_N`MawwGCtne7BAce6bDo}?b-=bgH$aM@cIfBH=BYmSPHkKcMjA7?aA(&UJl z*9GhBS5NwDhiImUGxE6$<&YgV^%o9HS5zi~J@m7+#X)iCDe(^5jhS%Pmlm|=Og!~ZycjhL>VJj#4U_(s6_qQ(}Zq+m6hwp|^`$D1^*#O%(r0hp_*Dz9SWQ-#*IlZN}pgZ90B zudS-lCecpfk<`O(F7e!9gpj3Wb_!lbS^p2phnBSr59P0|N1S$i_*RUzMeH6+d|_~a z#oV)m!zt2@azPhcEg5T#q64r4^NUyVLoxLbdVVG8Kz z6`O`~I$W_3F1u1iKR9Ro7D{8tNJN$JkhK+4SsK1dDQ@VhG&f~XHY8g~ZRDLm{JmxG zMTSyg$KZSK9x<+R_u5_dxvOyLrMr%Mj4QtQtNuUfyK8B`x59sDELEsi^;y#pWOJjQ zI-=h*6+=2G$X|`yfw3hXm%P)DfCx0(E*3C$kC>3 zK56*(Qc;B*6?M>Ks4+b3c1xvWKqOgZeX-ToZ|vFB&xZsuu#_I^u@r;Rdq4MnN%Pwp zR;AcI#2W)R^lZ$t*dNY$&4wkb95t7|Jt7n*rouj@@m*}@1I_=wav9|&A~41r$$eC6 zvjV45U*KU)8kN-k6iu2}*`_%vSd@AMY{>#}I;;zl)lPNqZx$2RI z^%v?_$;(-I8=-E|o=mnmgv6U{q_;bF@nG~nuNF=BtaDF8;;qgS-SpmqJ$9u-r8Ur(2ML;P{Z{>=Cz^Vp7W@@O zOBc_r8X){i7RQpRuS1OLh`8RASJ)m_6~#F7P}MdK5|=c~e%Al3OO>LsO&KC@s1S78 zFrUQVS$evD+a-R3#n*GWVWY1v5vXNHN-C3;8nWLGn^IWp=G3~5H^10Xv0;oHS(W(w zw{&VRi>RVp)RZc1FVj3Avyx??aZuW9K+QsMcU)1T>}Ovx1wq{lvKlcOcpLs|EL(}G zn@Qo7!8#=nvF0~*cYVb@9+W*Q@S|V<@W;P;X=qRA!y-o8(8hyAjxB3v6*l)HoBm;3 z9J>Zdt%g*0phVwIh*nuO=D1@d-nys2$mR}Lx6lYIqu@Sf?uX;wvAd2@N;f@G{O_v9 zfKw3~J2C-6T08WOq8v`&!?aUOx^P7SdePrmG4ywlsH$N$*T%{5j^v>$?+OnKaRiab z3WEs|jdr5%L~?d;Z(hL9sMinV{0GUSjd1QrsIigXsj$jm0;Oc3Xa}b)%%7IwAMsmm zIEx6w9kYe)%ur@IN;F`INCy^watCFP9o1e&IiZXpOgKf(%29Ez3uXVl8rdAIA+F6& z+ukw)97X|UD4=oVPsP!o(Vyb){WufwedaSiiz2=~; z`eb_ys!NPGKWZBU)c5xw$hQz{GS z1+1=iu*4Cd=og;pl!Mo$4dLjBC=xmxC8O!<7Amk*d?uFS-^~}FBSab2uH>w(vG|G8 z*JeXy!rEBrR;yQr1a zs2{=__EF_ys7T&D#MId z;TQQ39*SSDOL=aGH%Z^o3K;l>5CPM5hESa+GYv{)IeP)s>bvlcB^)f#7~Ism)~lk* zezNi0J{o`c)Q(pmv!)1l`}-5(fsp%w+WGLYEER^b+JoD0ryWHI~tQw zNTZN5p|W_gG2xLgdg#25WGrS8!P()6`Cy!`9tNt9l`6@tHfyhDIkK?og4NmE8jY=T zL_r0Wr{bSUMbToaY7N8l4rC86j37-?)?#57m4#ultEKC7PFOv%%~A#T?cTRmOOy)sf2OOc3}ugptBCxIyZYUKuXtHf^@t^PA!!C}&N4 zM^}|CIDgXL0@o*79Ti<|daRjrfhbZZdID~{u>zX#5Y2<=>eSUFsO(OgVD0F8lWkQ> zXgvA=M_;O)6%XvK>6!5M{;>Rgzh|s}$Y6&If|OJU!WjR-KzRFTH>~tk@nFQqQn+X+ zx$nf`1uYQ^GRcqYnUY){Mzm|Q+fN3t1-?Fl6zy)1lWh*~3ZlU-voN_AaQnXFeI}mj z^swi#snW&?h!3GKPC#@BX0joy7VgcMhC7o&;YT~;bywXrBZ2G zXW=6)IX#&#`%a6J5(k|s43`?yq$(1RZI)CIN_r$Ft0$xAF0Ph=n<{bb4E23XLz*(0 zQAzeN%zFNevWK0oCSlEU({sT7uZoJdN#I(qXVOPDW%s1q&$5!rngO@>#eAu?O||M! z!U7>&*%m`JderK*E}0xwv9X#zZ;O3&GQ5NFi-C3*M*eS}|IPq&W;#43X@=G4_x><2 zG7*&6&Us8Vux5QrbHb*OLA&RB){OdKoK!}uJ;9_iYdsn+277wXY|ka^e-0MPO%+~ zo0KrKm<&2P>8s+Zt1{uL$cx4IJ{Il-fyHM}3OqKFk+Z9tlAHXhA#;v|NBtIy^ffbJ zH?l)nAp8`r1gEY0nkzkFkjXkT^;|P-3lUy2uu<_dopN}#u3y2?qxLBcczuqgg6{_7 z&x4?_b(a{MQokw8eDYyfzCD?n*^#yiP`md>yC!&zVU1u!uaCCh_lHT?b&^jYfDhMM zcFtIo^C4_6MX&{hds66s7@4g*P&9bB#TG&>NDvSE=`$2Sj_ad zjLc0p?O;`-I9Me__};^NPAuk;n5>?S;ixiQ=3bB|!h<&lOBkNT3{+#7^CK}?JhT=|XewTNp(w zl9cJi-~=D-iygf|4kM5Z5yDzPZK@mUG_bPSR3d~G#ebx|omNb*j#CB9d^?QgmpXUE z$;)FOM7C1%dM3Otm5Hnm_Lz0HSHIqaRMKhJRFB~o?QN_Dl`}w5PW!00KWySGtQ5oC zz&m1xu}liWbgshBgv#S#ZS5KJWSc zI_|@$sEVk;C4t#(Sv=-L*zNs;mGa6uIsBbjbUp;#-ai;g#e3|B?rLY%;6oS#>|pbO zQ4A&6Ma`<}fe*VhBVI}Rv)S1xfzSS8*7VbEIY2TEEm_Aj;h9>jf&;m-5KolnKP+|JL#cd=BWEh+(2{w zo=|yA>!>1abmT5nA?G?nh;%ow25n=v;Z5B3dJj=f55pz|*g0UY-etlwWG8gsUV}bu zf^DE3P0=4oZx18tmEDlKPTy)V@uY`g@%@7p(z0{iBbw|MU{)Mq<@$Zc{H(A?-h+Jy znx{(dpclnQErXKg5ay^AZNsXY9L}ksE|FUc*gfIxG^bwmt5JjPM1*UP8-EwscT1?} zl{kyO>7CE-aq zzJ0XqUim)8bSh9??qTFGjjb?$1X{kWS(<;pz2B|2vEQ)3znkZcXxdx@mk}!p3EAFh zalNOdq-P7Px)_Iekm9t(K6`t$-|D9~FEgBh`2NJ#C7u#K+e)tr6fM^AvKd=!sYxMln*JglMF3UBZ>%VQ;poX|D-f*-1-yW-W^FW>u7G z>Tv5eKBT?9-%Y!<<1XwX8nZ; z`i3$fwkbht`@!a{Vv-nNuOE`$KANfB94)&6hxYi7AjSJ&R<>%>R#&FuK$be#chGcd zDOU2P!4M{Y4WJK6so29#Om#F(+_Ne%8SW!+IwE)!cOf(KDedjqKz;R=ml0Dnax_do zgc5nNAgd>w*Jp^-2=~<6^04QawusjyzA|_=Su1}8Nsm}zW$*}}2~amP9FTr72wVF$ z7;HACIGpB&ujtnP$v%*<*~^FLx)Jn=9$Sf&FXU=bMJ0h~>z1cztx- zx-DgrT6K_iY$@&bKCSFm8y#p>aj6}RB(2+%!n&zeJUgYZg7@o8b^B=0w`4EQ6NYQ_ z?YPS}jN;yp$F7BTPgoD0t?%z2%<>+_+PVlUp~Q1-wWq~@gh5Xk$YW1<^D1^vOXDx@ z09UZat+1EY>kNM+c(&EUZWPg*0X&efR*0*FseaSC=%c=IY;|ZKyrjM@t^%Qk(fM5` z$js4JRDM$U7L{$B^DDyDhl6MOM~1H!{~nV*cXcfoQdq1T-*WZ5d!xTI1gcORRW8NeoTD(XvasMX3JU-Rtl2P z$3R8Bo97h(eKk&~Yq#N|2(|)csjx28bg#~f|RV~fAV*glW zKXzMfZS}w=zT=RAvnji(@LI-|pXLd#CUZw&OyHGMv=pn_bn%irU6!b=eWKkObp!AE zReq4K=3H9u_P)@6sqD=dfSAlRFq?(eY^Q83OI(W(0tOpYyem1dkb@1Yo~?~&J|9Xh z!lw&^loQVm4Hu9!_l_$YrLtyw#~IV?RZ(#;B)Drj*Mh)gS+)jJI_IuLvPcw}CV6T4 z)$0P);=TCG{HEFQman)@V8EZ{ ziiImh2VX52YF!wG$M(q`NYF$7%^r(!t;`|95@%Tt@HJ2b>b zXdbL@)q-qeb`{5KuiNA2R^)Uf!re=quH7o=4@N{YBmrLC)Hj>yMUE^9b6_o4HDxD2p zr7sRSxG0Pm-;Ki)j49e?FmHzD7lJDtD>}s`mbP1cXKwF{Kg$K&nXvOb2Li56X9=U& z6jU^1Bg(@S6>o2(8OzVO*KkUO=r(!_GY^~R|F$bWHsB3>C_DOY4|b$6rEFhaW<(8A zu@AKj4yT2De^4!@PK-DQ>)sQek0Wqb-84>^%KH(nJ0ob>kwZKmQ_z+JYw=Tj=Clg8 z_)IWMmxEQa#nI=wG~Dfdq5Wd1K*dt^11Dy?&AB1%9lVDI`S8l3=tqrhpMDQcJg_fQ z!|r77x!;JbR63JrnL*=vO2E~rHQW@gZX@%96Q+)i$EE)21NaA~8_x(dmD4Foxwq5F z38n4Z((0=tld6hse#1iv@xnehfz2t(>S*-h;k2Zu?W~^(lm@l~k#|s^c{VG-CX(MMT2(9DwMqXbG`U6 zE$PuE9j6;b3@h%d>vrW~NnQPuRxhh1IUDC3t^yUI4aX=Pu4!^c%ZuaGi+|LT{`S85 zJGE`%Y9r)}CsR)oclJ6j{!*cnD3ENOftLP_nVIKN^fyl@`!4P5ztY(#TmIsFa?=SjNri6JAb^pVg7VcJ-U*&I_*f=pCYXADBc5 zbHo4>>s;Numdf4U7lL$XWZL%OczE)A;SPe{?k-*JGwshs3ku{f`oD%Y%cN*1>38)F zTS~%mITXP|2SM`HXI7is+v7~|* zueXa_63~AW8?qJK!X3G}_DgNAOX)Zeu&X6QMBE+6i;2r2y!ytyc;zkWsb6OIM}j2! z|EbTMX3KQwsV~lXOL}Ga>|}QV>*TO0q$#3DU<9lJ>Hy_8K&UgX{9pr7ED}d=?gR^~ zbJaZ2y0nWsTid6*zt~dt?fp4-omVDzXu(lS>Ahx?-uExQVQI_mt{ol5>glIbwJ=L# z-@#XXof*-6mj9Xf>vQ241zD_0L~opmX2EYRo#btxd;+7f*oEmLS01ORi~SN!9Y(q2 z_%cyOSBMO8R<=~&O?Y)dyu|tJ9^qnMEYr?CnFCn@E0m7eQL%k-Y21DS-$4v7t}JZf zZS|5|YIl2I$ce@yKASL292mNrN4!{6g}0+8lB5t_u*10OKt)$5yLQKB3nk35=!qlh z6kCPca}Ucs!HsWt@BRDx`X?d`x=T!z8VAlba0*z7ia0!jdjyL;L>bwq;x&E44U?gP zhn;8k=2Dq>N(^P%ZLIE~OXJ+$Pbxo8Ut>Ol>MSnw;sff5Fx`l^^6Jv*8@_7LE;pJb zy)tCo8qNSk_{ACK0cIEG190kSFJKnyEe%g0($)sWKcf7~kyS>lB|gQAdu3`5sBT$3 zQlCp#{g&)6mTA)|&!~8;%-I4MbHtkN5l-r;4^}T!G~;ac$Zy2H0u|i>_PwUhP z8qe_0Gu*~+RV?yPI%di9G9 zRio^oQJ-<~%}K}1Ph|O+*1fiGuWqgCbhB}vbkM0Tmgea<8}~5DgaGU;(W{f~Q{f_J z$^MeXj?a6#c8-OkI51-*J7G2-;W?XEPuYu1jVMK$rP(WcL|uP(cyhU{fN za)yYa6kk0S?B%Kq>l8q0(+B6^*nopk#4HZEPTs=rotr@H<7(<{ig;W7fS1y5?@RWV z9QW}B<`6oInj4of;42JRVrO|$JHg0vo-W^X2H0%Bvs%7*!$YQN1XRN zxNq~tp&3@L2$4b3$Ez2ze(c-Kq}lq5uk(`r_P)9)zxpFXsG0A9M4b`W!J38aMVIuq z_tjxp`;fq8x23`xkE4J+MtrdPm|MXj{G49g)E1*b8*q8)tD|$u7z4qf#9>Sb4?`9B zoL(8Op3pQ6*sg;+6rb+MxL-s8!W0O*UeYT=WsqD&uV1hJ)0XJG8%@f|1su@?4BzXL zUKu_+SYK#+?cTs4+ihqoSs`h|I5fN^Fz$8QpxXLSz{RrK&S;Ihn3<=qe%U@;ICp`C zyA`;O7<{OF6v8nL!{iv+<)cP^vTm@>B2SoZ)OMO&vA^!@OY~R!H`{S6bjSY&nd zja5{0H}0=sB<|eNxHDzQKDGfV#l;jpl8JBz>q=AEG2WKOT%F)=?~6M-jaz^TbN}k5 zj{KZ}g|=E;;n56WOrCep=k)5q4g+aPn6sJb#YuiiAFlA>*Y4vL^>lpK%wApGt%nAq zwE#qO4ajk2nWex#GMNDGgdUpdZ#_`au+0aO3(xfRq=_P2kK&>(@lAL%af zNdfuoQI7uTME+DFW&X%fr9?^kOV{Uv2DYS+beGuYoOCAA|7=OWJaQCUiIVU(=kr1L_JM9CiFP>i zYaa@F)K$9~{X27ew9Yn3@aMGQ>ksFpgY$Er%`nS3=B0!FRHA_)sm~m-^u!g1#qAw= znQn>rk93S%+TqM^KMUgfo<=4){k!Lu^K6~*AYniPyMaf#%lvF^hDSN|K{rl`d%Zkz z)SQo!Fc9hUK?DBok93z0?NDjFM?vLLSD97y@67GdI{PHSpU`bX*Zs1@`B^^j6Y#t& z(Vw4n*=FY(8C3fF0XJHB6Dx*Y3!1FP8=Tu-)w1-Qa_-IYx(@vm2py`Y2+%1-3ow{@@v6DSry<0sna2RV`d!PlEmIH<2 zug7+k9-)8U+jvkO`j!;&x1cXXXN}A5X`+3yh3;V6yZ$`SuWZ5mM%|Uah4S3D!=nNB75l0(`fr3^EvJ@ z#`P$CDg&&dGdJ^Et3JjBgoDX$n?z;SgZoR{sWH9Inb?BMFPcO_bX0=R2kzG+{!eM+ z9Dlr-WiROFGq#)Y23~G8cs=dEq{pHIQ|65!mUfVodWMG@Tv$~MJodmc#z%Ncj<3_c z#$vAu&!LF&sgGi;_1HKy;up(7!^e4AJfh<(yOj;l99ozYkc!SThqzk%7=?4AI~+u{dbvF0_yk~BU$hv{ z%VlDa2F;QBtVI;?`Q5Q7fQlO!p*u-@r0C0?CLwRx_88W zYk^y^g)u=9&bCOo`|gM6CG_C-U4q3T?)ffw9(|;nI8i&?4|@aJnk~pobe|sqWvqAb zwh?>4b--vO2*;N^a#z)t;l5tZa(jPnN6Rf~zR9?W3^D&{X&BzLvHlz^P`ts!N{;S= zQPjHSljgf2vvAn2o1K)1uR(`5X$?7OXwlVoTt`i};xCG}efV^M(`!0h?d6{Lc;muP z(Xn~tbQr8g^|cwR2`5`fm~xrE?eH3=45xr1{WfSHyv0S2?Pt_SznyU3siOL0s62vR zFF`bxtmBc$yM^JzMKPq_L= z*e9a3oDrW(S-p#6MUkLmEDE&3lvq3mYj(G9kMy{KSu9n&njfqxYO(ZjCX#zT7kY-4 zhli28?=e9Sug%M?J1Wk86AEYXJgUxAC0)oys}tjFcsb}cA%wC*(Tydgi{k^%I(dmC{B0GK9`&O(l597 zrK&!1(^7QAmgie8l|ja2=!hM`i*{dvZ~?;!yeh)-QJ&{reUki z_>PN<1CM`&FBAWd@z?V9iSvx#CQdUPNF4(1bz=7vqbzXUBYXyz7BJ<&awnhn&lxv& zr1gz~XZ+M6J6Y7@U65qz{r*Gv{ z`MYom`B=Xi3n1YYVb#S$VgEanZDZDVL z|JX_dHH|h^_C9*aBxY-zV^$@Y2KgD9g`ktE7aKRKvGus%BgYh11?Xu?^)j+)V8nTH z!RP?6>I>H2_rRkC?h(Jv;5lr}PcnzB<}jK#?GgJhcCN;w2cEfWZxdJ&NZ>Ycp5gn% zb>cB`i}>k;Zvju-C(b9nJmYY`{P++I&ahCB#j?jTtcRdXo~-XcWJp8Sih~ z^Ld`{7#2~JB^j;E5vbo5)fd*^?HMG>;WbR6%)!qVl8XKFRhSB?1e07^2F&j?dQ~tg z3-*b@$?}05#P$YGWG9vDbGwkqS2_1JVgSL?TtcMmaNxi~U5pd0TC#wl*&&Iw)1Z^Y*`tZ-qZ2kRLc zv+>q&^h;8k`Y>FMe(fIP6%jq^uY*%d^=|JAL25r(ey9o#KVoB@0O7vLW4WjAy4>S; zargP?blep|eo~f%)UTHjc70bky92oUh&4lFiG8`H<($CXME{ey?{=(i{+)9XD8X#- z9r409I=JEc5WqZt&o(2h4_owx&kdh99@6`mbcJ)a5N?sFm$+^Zy_fgg=fwejyaPvN zF3I!ndOzjTe7E<7{)^-}Z)>#YwqghD$M%|n*(@j;ihsK~531)&Gk2C)4pnpTVDnvz zAv3Wd#`fhm+tYe2r;2069}3?Y4RI9#^f&m5PbesU+=Spak#cssXj5yQjxZZiy3b06 zrTN#ZH*fFDEt)6}qrhHi5ch8eV-<=ARpFR1zVhHz*|;W3@qF2kDypdycjJhl*XuWJ z#!-CV{TPorWpIy`pt6%!_JZ99=xJ9t5u32sq(VO%?t|gutD|Tib0}XOPWvNo)w*61 zdV7DS$4^sv8+&lhh$}DP4plIp&lJY@XBiacBbd6UM#&xS$8m?braEz{+j{jV$9WT# zoqy0OVhMRL8m;RQ_P#^L4K5WCCPRh0w<$eo(u+EK`zrqZnkpO(1Zlgt%A`x4@M}nd z3^@{WO9dGBIYb-8H|MqQyYcXoUtF+=s)T{wgO*A-v{uuaHGeFYet< zP`{;+w|yO2R_O{3MHG5g>ysB`EC18t-K9_96 zLbaQZ#K@3Q@i<1T+>wTS359objk<&P!(z?L1+fQhQhdMK;X`?vMDE&bjc)63L29$P zjddvq^o7>C?DRz#HWE8VUpS(_hq}Je)QL$a?D4!_V|#mF=&=?%C9e44H=&I+b3c41 zk=1~%_rAluQ1*JPcvfotM!5C4>fM{O{`Pv$EoUIa^%#4NW74QHh_C!;pQFSg`@ImPCQ$(iB9C#09!uDAZO=1ZFOA~RqU7FkpUWtfH8+YVutXz!=P zYpyDP&Rw8Nt4Jh1fh|hoN~9(%@m77ez-`og3Q`mE11)6_C4Oh&P1 z(||O+8|I&ovwS*suVGvUBHtWLB`?^W2fD1$rjcyXwzA^++G7rE>L&|Y%V6`(KAbu+ z(S5UAqA;5Ry$#6mZY=8Ij<6ih0HO7O$}#;GV(j)zL5aRWIq8$7+7n-`vcvxfwS0UVXWx zd%d^%Ij!=tkU1{#yW7a6!nis~nC_FX>?s&i3&pN4|8RL|tmc)iTBqnG&*KCa!fb$A zh7E+EFBmfLMlM zY4O6NUvNUsW`E3iLO(I?wv^262a{D)R7T|Gcr2IJa}%6*cF$(Iy)X1$e3Odt=2M}* z4fTK?&wnqW*>`+#B1>~Y8S5K1=Dn@Xjd8&$1p67scuO11wRJ2(h)+#e={?nGH@B{g zUS8o9Mf7uoiRf^@0rqitF&4sSeG8bC)c6Q1a--|KMfOA+?n)mqdbw^qA?&y?Hciu} z7|T_%5nAhqg=mg9$5Ysuq2Q}NDXz~=2zqVialEST)6`+AZPeU`p?H0ocA89rqjmFc zv|eJVh6%(uP#7eQ>KXK=2xzvshz%>Qm0D^kVQvTELb}ZZUBvrBR9~#-K^GS`EQ4^p zoc;E`vXFww3LPwo9$b*zR32-5OW&r6LoB5^TL>4Z*1qL z2mOLIwkRy_5Rt3VDMcXxd#_WWja(0=ycaHCEpRTJ8c|EHE|<(tH}XR3+1@WHih#5W zC$IYlGZ1QE$38_8L-6p?TD!YQ(qQKYKSYti;di!b=bPm5{h7TS3;(Hsa=0szg_K&q zD#1$r-4^8iqSCQS3AboTFIh!69>iF0!(S?Md;dVdMT`y?_LDSjGIqx57$Nj16zqe_ zQn8R;Fz(+fzJZovkwSunvi(22_P}2G6^?g2j7iS5GZtn(J`o_cbOtwjkOhWn+z|vj z=Ito0W<}p8-B|eIarh&b*+`v-(`S<=EHG*Wz#QFX`KP%{yFnf4R$FxoUC{ z9UJ6Yyz+ZaztF$l*uP%=zZUI=fxHaEb71(puwU_@qO*f2x2gC+BLj_?G$aX zN58`Klfz9Fy-nXzx4EsBCE5ZlFESqE6RdnxdDH@i zcp7kbE!*h8=xXgj&?7qgPFBHV7MG{)INn6q=%YfVwjJynHI}Zqy)V^e$-vK#1j;%5 z0yQgyQ#2=*VHZHePW`YDfW5Es`@hXD^MHZ;AwVNdbGgHspzR3Nd2^HRbVx}VyxWMn zBTS9JYC|i^`@{vjBlrfc#K)n<;V}shJ8A_Mjmvu*+`owK&a}rkwKW{9`1Yq!dP7ys z#c6{TxZ&f1kMRt*MN3_FCeKt4X(8e}dmikIrc-sp_h57KxS7YI;|^9lhJr`RY-#M- zsD`Ekc$%Ao5gjva7@XTzaEwFj({Wf4Lj`*;a?IkAS8dxg9Dj4$EibaTxO#Y4D_F_- z$uX>VdYV<5@HheFn>J=sZ9HnvraTHSH73bn;xs8p%{ZL>b|^Mh_c^3hi18l%%3`q$ zoAntNT()y~A#>-2EsZo3g12TDy6O07oU3RqxQ0?Yu5TTdy(`5M-Aj;XHbRt18^ZX&w6FfjTgKc+BoBYVc|2#os4*LeplY2q^RC19SA z%;sl%e9Ni!{@upRAx#2$;C>P~BFp3~RZ&v_Lz(pr+#s%H*Tdyp*PMl}_e&T-~zm(_v zQ!|dc^3KadJZOxMbmn(lz|F~5&g)D&f+q0EpdxqH=cY%?Q?%IOXMW7 z@!;7#)HZ(F6r=a)H1G8Q^2{mBGATDSF@0WO(ZcO!KhH)D?!@u!?DHI-!goJ)9lfDn zGstbsgLFgj?f(?Z!{j5)bI~VHjf1I)i1p+;n8L|*L<_3@xhzliy?I>kQFRvH*)V9C&PS^(=}o)MG50Igik>4H-meDH@D{J| zQse5wF`vXj9im`l1JjOzah?jxjxS!}VKGmQsghQ6YD%eF!1`7l6* z&6d=+_vLA_i_CZPWTx^{O=MY}r|XbhZ3-P;(h+Acg-%ySeDyiP;=@#?#=Rdm4K@7A z(YJHHX8Je7tm1&%zS%9+dllbQWT#lv?Qv-~&OgX8ntd#*)Ro<3&h92X7AQF}o1=P(r(js)w|e$Qp7(3#Pt`utjCUXyPrC6c!y)dFukAf^sqAM@k+ zlXzmoXG!In;mcTqAm?91XpN^m<{Ntr=O`s)WsOJfHqs3aEU28=$`)Jg!HM$_>kEMw z)0x3B=e1*u2J61y_wgoSyh-?6y2x4b_r6X&O#&>!v2TOAxaGrk@8LHASvc6R-yfZm z1gCI3;|QpfT4>fzv+wLMw$&snDO{{ckKg0~iMz#rIh&u$98bDbjBx(l>`^ zJ5?B$i6b;;5H1)K*T8#PA9Yk})|?dY9-$Yr4I|zaR3ogfGcIj+dtY8;^eUo6!U+er zxJv&ZoFmfR7xz>7JQN)_EZatfQ4tZnQ)%NgSfnh79zIx_6&+_HFntl$x&}G%qKYsc zrwOdziwp+n(e1m0e~XVOMeI#2`1)96k2jqBUQbqX7=&G+SoxGYd`ytTSy_;5hJ!PA zCZefvY|#{?B^siKCsKGe8t?d~B>Q23eV_^4wYV#kpNt#A5@7-_vO^3b0$v|PImxBG0rzb+-!Gri7t_3#1c=Lg}s`%swq$Ucsvu3Oh>erVSTXFV+x+6|gVMg^l zQk|^#gImx*zBNFYQ&(Ot;@BO|qh{E!Jg+WNBS5TQqFCOUeXiQ={h1go?|$qrGGnRS z@D6uxu+tWX!+EV_tyBEQl1g?llG>}TlwjyxA~4x_NLQanCh)W$xf zQCnVjbrE<6TXL2+wxn+d>;%?u0&ob2G*elFtJu1tg#5lhjjZr-6 zgB*nNYF#`2wo#nogL4Fz&B0t$exC&nRyM{S<*ZTx$L`>A%;eKkvbpQ1RCoM7X6bDY zYKp`0STio?oJ?bVKRMLp%`Zix)bT9RKVctOGCs~H3?08tp3OcDdK$9rY<$xDjWw`- zafkQ$9y%+|U>--zTC+#;A9Lu~<-?{3DIj7nY}6YQ(@BH;-3glARmod(-Vf?Bw*z&lK zW)w<~vj=gQUl_TY(v;d9A7AN^iegeDRR!*`VC3cb=-c~3OPp3e*hDy$cTWY#^1@gVhXe2HJDvrGl{ z8d$9v@e;e|U}KK1XeLU7az1*OqdC=y>!a993*6q9XRj~FA4&wC&sZv<+Si85DX4|? zF*K9BzSj^pRGxzPe~Onv8ElKphs@@94rU(fB!=uy`xKQz~!ndBB_C*bnrM+K(a z2^ZC~gAS|lz!r8r8zR``^S*8UmLQrN+%isfp*xWM|hQjfA;gDs@KysoYlFg(n|ozTu&L}$@}7-SE^J*kXapC0NXIlf%x!1|q)?=iUg z6ei{EA6O@djrVFSB~pa9iAS5l=iI|^jX||;(G1%fdm9quJSf`br)%aj2#T7f`-XaxK{vG#UW-8#Ub9iXSDI_o;@beG|9 zxXC@lt3|RdTSxtX?n-9GEd-E~Hi!J{?7$S~c#ig3dK)w*)+y~*PIdPlF<8V90P3;M5pwPwl$ZKnV za{kTwefl2#r>E-s!S|jD@Mv6`1TGD8O6`M3K6e$9oi?d;#C6r| z^Y`zcp3W5+9Ki5QFmh%H*WF=hR=Af1+c!czDI5b7`R%z;yL|kf;kXo7W0sG*GU-(Y zbP6(>rk2_^tULKViT0X3qqk@LQ~MK^i&u-faov=s$(s=u_N%AVS_k`^uiU4RkX(j1 znx+Ew`~l%73{&Q4+LiUvP&PpkI~*J0)4nv8tD zg%k#NS4!*R$K&0Y8Oo8yVF!W^cwi7x_^EB`Pi^DRZlsb{_S(SF795sWg!*^C&41Zn zqV>4-=_&s46UKD?)$t(0Xhl4*s4vz89HAZ~vF{^4|K|Jt59DQ(R$A4L# zCW8GdX|KNL150F(j7pz4IyZ*XMxI5jek!WO#1$&B$u_(@X?#hvf@7)#E`w-Vtk#P}ShoX~l zMK@T(rhMYv7VpRs>BYnb_43D4NBH#Aj;tB*59~_DL}PVn^Bi&Dcwm@niM;PUd2&ui z+;dofsS&uWk>P_EFj;cR9lanPeWyIb0I2;)T4^JDoP91nPP#=kxNAx~f0EGx8+#?0 zhq1_g&OMbWp22}ht=oxPX0|O|69em*jx6j>{Eilp2WPe|-g0ko+VA8phIIa=%rmo_ z`j{D=uCRHko&ysrnbT@^0Bv3(xdN~^b$6gRf(_ohggv=w2};>*peGm1Vj(<$w$=I; z?{=J=dKh=$CJy%b>)A+`&FCiV8+Q@j1mRwZ^c|k0kMGh56hPcNjm(%eVC+nBUBZ>+ z1XmDU7nXywY-5|^R;tC*Iq=k@xEQ{%Lg}LLN!`w(u1}m7eKTj+w9u*wTs;<+z@6~v zDSjr1z(oRE+xQ#WVt2biho%YWacjpqWSE!ZE059SWsOF7M+^GYa)BEjz~t$54{U_i zG*4-T3So&cqcbyCezf^hbEMvrJJp(e+LZ;z6sLG?yLK=4vQ{XbcW<@sA#?FAME&$s zx*vS+DLXpY+xr$@Bd|nmiqPsCX4$WjpcjlwV;x_7?X87};lY<>81{X%mIl#&FBnbY@JOb1 zr?|{T?vj@{PTwvC)QF&C%qM!U6duLX#p~idsve5VG2`_Zb5^wG^tHli@aPqdAoD&) z^sy&=dTJRy0;g-zIf3!^lS2=)av>Q!1zkVC&&|;(xbHjiGjI`$%~Je4X?-^)Y2WdP z!f@2y();{DZ*lU?&Hvw08}z;czGq>Og+7(`d%pdX@$NiF{GRWTk=l6NDFR>gldyUD z`JV6kS-vyMdp(d|`|LsQWnJx&|KF*-*G@ZG&`GapO*L z-q$0(2-oTXtcwLIGxB@Ao^wHXO;tCA#Xh)iF{Kq>^K8&$hN202Kihnj9A1iZLv~Yk zT5OoXKeNN=Q_qITQ`sGiluOh-1u(}IJnX=sJUy412^Btx8&1Pul>RIo@)M~__Ldv zTV}4q>uxy^v&ARMwm96doP;Q!^&?gR)XkLoq6#{UCjb?2Hm-(NY=T_&1{Y3v@fOZ@ zs#ZE{;Fy88;!pN^oKq7G6~iIwIQ_OiNUt<^J5nE+S%oetMY);t?E2-rn=YS)Ik=&^ z>+!zt^r=^VdaAo0eCdln`^B$*_4P0P>F2-r!%x5T)o*;^Yrp;BAAbJDpM3pG->YxEMI#%egQMB?sSz*$8)CINc(Kv{~Z_JG^>Q*<-5Z}M_aV~zJg>a6< zD()_Xf0n=Zf_!uF-%~;GOH&(<{6#jmGu@bjCuJ`nvHVq$VXL36ovti9BR?_Oed9>~ z(ieaKhu{6?mp}dbmwxoCAO854H-6<$zxc@?e*X0@#oIsp>KDKM>5qT-+pmA=cfa}L zuYdAfwHn=enJnD$v#$K}iGK%5VfPY0^SNrvk{7g5*`1-b)90`dYPeYf9uT2yaNq2rm0$d`aH>hFE7`Xkygz#N90d7IQu)_ z4>2=n|IjhvqVM+WstSE^f9IdR8x5F<{XLJ=q@#`!bQf?Eq}wN;lJQ0#0`9z?p`U2{ zFAf}~O0VvO%8wv_v;hw#vy*B#A^HGG)nh^*Q&C7kpO4*uzAtjKmS8a78zUTt-MjgB z^o!qv%3W2B-7YRdqyPdo*81NIdso{5HXQjU`wy5a3udLj@74R>Ds_MB@fa^#rJ^(H zCaTW?;m<0AQlZ9lm~WvA^_h7aAcaEXMzX5xJK(KPERTY#IT;1fb#QWS8c+w*k_+w7 zIC071I*<`l3yu^V1ZFAd%2uq^#rJ$GT&Gm4>(hAVdDC!POdRRot>Cr=e_`tI80Pir%cui7$*ABC#hK5?Z@0oosRGa+wu~7eV zG9SzQ9*;o;2|_+)h-KcxKhN~zsX!kJ`&lJ?sGR4Td#}{bt2%35Ezss?`S|aKh#&vr zcR&8sPrvx%KY#s8+0RJp$A9_ym&)bezx(=^=3C8j=-~04=Z8HfQsXU=tkM54k=XBv ztnnWv@>y|W#DADb?{A6J*8hz}?#}oANwV|9M>)D|UPcn$s^$@I<*&`Ju6Ip)&_kku zZf2u*^S9F~T}f#aKEI&OnKGlvSf&3gcWH(W{|t=AI}dL^-d~*Aztg|-oqyVwK8~%r zNd{{t3t;b+h_|KIdW7}4||n~6`UIGxa=X^?YK>@ zbHHM;M^f+6p35fJKBA+Z3kJJrN{SJ*h!@8KPhoI`jXL~0CG?dNQxs@7)3v#O#TBpz zAuMP@IVbs0HP5yDu@?VNGWox2zo!yCH_B6+ecqf;4gJ&&{_!Jv(U}+>24dDAt8Ilw ztorem{N0?HrVX!hrTcDUxjXY$^##PL$VG~lk2sark@=_Z$-iQj>z*cU#ABr}-)j37 zSz1xv=DJvq<6bIl$glic-{eO-@XuvC?1JNWnOQnr>80koQnvA{RIhg8cwhpO^`cjb z#w1*NrzsERly&KZ|DYS7cKhvUh3zLorB9%`$u8fjb;h zPob*6&oUSVwHC2dFk9M#SnAtKIsaB~kIqnE2{rU7q10=3#;Pb?RjHgMv74gttN7o0 z#F?QL4rB3q4!wmcvbs~R^GpfL`@N-Q`d!s8FE4pjWPI_h7XC?PWr0TH&UX#~2mQS) zw|h{q%7*}{c`iTGy7!?`8_j|?vkFYzg`RTUqLgxQjge!~NsBT%Fh-0Ts4D*F#U zGmH4|pH}3*q$6W_-hbh&%NxTZRR~dA=CwTZ)qRo`*+#{sRAaPf! z8Ted~uhm>ZGHgu0qp6tM$~twdg~vA5B8FC~X7XTV%x8mjsyg$B#n>_%>$r>=F<3{u zy5iFbYa?nFw0Rr6!luE-+tSWWN9gC_R^uq2-N9Yw0kc{t*HrAGp&L0| z4?023pe`N#{*>pr;6KgoztjzNmd^(V7r*Fx?7+*v+Ig5E$3@vaT4*;lo3ygu@z+~z zTK-~F%(ATfEiHVIXQjlQM)f`?J;~30^2k1w>R&2^HWAk9BU|UhS3#i`{#{G|`L{p( z*TY)7hgexhx)yy6jwX_M@1JA)_u1s$lTfk9onLKfmAorO%B4*F4@y&a$1tX{ylJTF z_t~n>8@$L9jUnFfkgUI1c)Al>0va+^Xb?5lwe?G1>@R4SAOYvGX-7K@tmLaw$z&&}K?FqJe*?$qF4xzVvdf*yKtOQ1Kamvw= z{q&Tx|Dv#;`DJ3(cVAV%Jw%zQ7kx4`W7O&)3+6e~5S-QZF_y=_qMZR0Avsv(i-h7; zzT$;^f_NrV?Kmu`zf%68lA56=4%Rs~pm;Qu>JJ`TfGyFr9J#+ad^&K;XvF$R~Bu?kRAFgk?B<2rqJ76CaCB`OI zTgHHEsGs*Z(RH(B^2MfqxX=PL%<9N9WR2v_=84R!hFh+r_4CjH-3!ZQmE^sMUv+&# za;3(Xzt*g}2}UJt7cRZ4uaQ50&<(bOEEvpr97}RARa0rDOXB(xuaXWgSxFP`SfmG0>KUaAtf`>F`67n$*|XmP>;c% zqOh3}$6S||2?kU~w60uacu(FKwbC+F=`OPDh87ypF^OF|hW5_i>@t^*sRb2tu7oUz z)8!kkNa+~W-8fYTeyGa#dS8$4tY<&3o;3oiKq{sdG)!i#b*mUQVC%q3Sj%*jOvuXE zu%nWN8W``Vwi+!{VN~R=_qh-7^zV%`)(^MnL&00oBD0H}8?cn`HjStjW%S^gF zhS)^QxNfedU8p;2CX$#mT+%hQXDOObGWL;-9b0Vtb2$oIupr9Zl2J9Gyv0gx(jk0E zSGq=y4#J~J*SPLZ)qx+X@^!sOJr`$QQWa6`e$I6C>Z2+A;qzuyGs%Lwzg5i+clXh) zY6hA{z8I?-&Uond$R$-1xSP7p220hj_%s@GsqN=gG!6Stx>QYcG!4FGPG=@l?VRy! zL#if7Hwd4o8v2~_*T;~mv8GD-I;3lG)z7w*w{#8V&ZfjADqX{1P<#u&bWI@7>+S24 zGC${hK{y;=zmn8ST4c{CM;z1*tR zI{K#%6*oTO{3j!8L%(hwjT$DaY@*7n9b=_oHCQ8FgQDREILE1D!`dLmqIW}{D)Xzi zN4Gd<5K6MF0?Y%nkhB-czkTXvxg?mL3SU!gnm@YUY$M-I($ltb!_Ei>*5QG-`yNN1 zI@`(R@<$gL4!Rpg3YyWPTYl5UD3loel$_Bz&pR78bWe(E#|CeeYxL8{+FMWjPpcl! z;rY}tHO01dWnI0M-K<+BTQlIQ&W_se8IIoG@J1~YzNuJktc#)W`}>jo?d1tCsHmb@ z+A6-#VKP#Z8??-CZ}iQp@iZSNHzF?Vr^7#qhUfTTf;IS6Ntc z5jaJ~Q&#N7XFf0E zqC8C-@^yz%Bv;SqTI2X8+-=3{Qx?fV8zl1rC|FYy4CyqdK33l|zuX3@RfC!jW+Q4N zW7vCIBp4S3qaTuy%2~%`f00AuZxkwyaW7dHX(m@xqZ*>B;&f-Ra=Nm|Z7yNDXJkRc zqy|tm>V2mfFw^bP$Rg+7m2WLK+qxpUKP<2n(Ue)>DK3<8@qDp4Q87o;E^pn$g z(HyMvmhPFkm@RRzu9Te7lX)3dY;~@omjjPwPi{H~7dl8ra=w!=bdaYdlTJQPw=d+& zfLl@3wCLQ)zWPH(cSoKv1imufCVReq4i7%9wzcq^%u833IqAiO6?aGYN~Yf=a?o#q*`zQTD9LzlF|8SHGF%nklDU{BgLR2);x%;1yP7qT4GAD_rK(`Z z4pezEUb@7F#!i$o$iZ98$$r8!8V~Cw-z1o{nVk{2ETz5d;wfdYS3a4QM+!O_zmr)E zXoOSXI)a}A`Gt>vfFW40U$0WvT}l<`{}9H zKH%%>p1Z5%G;O2`GDh5ADWJ%6`9W8P!z@0>eFOzZYLcW$PfeCPld{D55OLEaNp*K>ZhU&G$(NNrDkicXye_JN-ZPlp zX^Pb9r5RH1njy7(T(Px*{)g_(H_6w?MbQfcb|iWuRx?D*e=H60Ff=t@k1BtY2h` z@S)k!ZZea6etBeYV|J9xz;o{7YsnufZawkKIwuF&@T%kN8oGAAE8lba+BX$SQ=^Ix zsVCQ>sgc@6T$viBcz2bypy?I9R!!dS#^)fp-3gSE?G`1&u_n&3>q@2ams-ICSCfOO zQL@^C2G`Wcw~&srB$>#Cs)>yj9x2}Jn3HnI;K*PWH~AY1?!2O`vC$#4qSP}S-Ni<3 zpGxCzZ7mtYSI#X>j$Ct-n$zUyLruOOK{Na1e5Iq+N8q5<1>Mva#xmvDFkW$t)$m6`VpEEx^!lF_1RFRDYC>*hGK z+>_YH_bKM9>e}^eWSF-}n?`4@mcnyT@WF0FtbTX!G=E9?N zb`(^l=>{u@?g?g{iHEzMlqBNW&RPuLvQ)Lhr@(Bufh+RxBY{o;O#Ne1Bn7&2DNz!? z+*x=i81$J$20S?PWULEhq39v*^{5u5##|5%6+xy>z!(9@r<{0@4!QBGMqDhCZgkH3 zNt;D#7YlK?b~rHfCBG$qQOV+=N?u2PWN&zCqnFLuQ5{1)08N)1PBE5Ll1|o&J5LbT z4F@?9$AB+7zv35aqp&m#XcyQL9(r2O$<10xn1$l8J{gm4`6O4)P=(WI$ z-beE4FFmu-K);$@7yQGUHW2sa+?Pxpo)zxA=8C=uN3nL2M*9Nau9C z>|(CBGj|@FRVu@ew}cTWu;#O)>nj*tD0Xcoutpsx?4wfcp)zxxJe&}ikS*e zX4Sy*bHm&M25)zp%$Kqw!zYoE39b}VJQqCp%Ab}uI|OGnu>AY zJ39?T>w|^IiD#p<+sVtaap}qyyH{$8ceI)0v0}`95?+sdr(-;|*6W64i5bzIf6F6z z0+RtrpOz_LKCYYRh6~vck8zIJHp0mcjP(OAH=6vADZkhr05cOz#3=}#M!@$U=GG9W zjm;H#xh-MlA22R&xVg`;!vY+B_n2)-94p4W3769XalUv1Ge2>7C>$pT%#Gymq6_PB zMT}S2+39+#GFzmtm2DW)g6w08m}j_nbsb(X=CZj-o_W6cQhK@!y|CZMc-bO8 z;)R##sh$4GB=w#@>Bgh{izo0*F7l9^T77C#sb)RbIY zH>^v=6}=NKw-S8Y!&Mzvjve^c( zy%2sKc`3W6#`-6d)Zu}Ql_kxVhyvSqX{abMYrp2`FrKCN+11%;s`yuh*&YVpHZLwS z*w!uQtF|{AI(FUB49fUKlgqd8JTO<3L zlZ*R?HCI;rNw~Ik!naYp)Q#nj6mP7TW|d&kB4CY|lDoZxB8+9k@#o%4NIE3;9J$!+w?h#UB_Q2D2;4RXh;i$11E6)>;hJ11QEP6?viHX=flLhr{ z`Gvf`DQIr0?tbJo%Xn(8mo2NgRLJy2`7w{Q7NW;9k(vS=pkn?~ALK*armo#p7M524kZzxiv=@?+piK78ixHEdahPEH#5|BMpg$0f$B>hp2+)XZ*sHouMY&9SA#oQf!~VQ`77%P zW2F z_vUPgllxu}9&T}Tq|#m#gY0{HwwcZy_9V0)j3AghtR1~n7|jlcI?T}iQn)fGCbO;m zcodA`oIe0Raul+xxc&5km`-~vc)0W8?GsP`JEl&DQ~QJ6j~bX6h}R>|c4z|u!2`DCihi~D z*kG}NT5rSmtVeMD5;*Lemv0+p(gsh&&7|HK#Kp(g&*%ozGhjAF!>m*ye|*k%cO>Iv zg+0HZpF^GgC5!3d?p$?kb5tgkmlQ#>jY|Xti>x zZ_qqvo}l=*)vF~5?H`7Ur>*jE!wkJJirpNfJ{iKzr>!nM?5qc%K@`2xWs+~Vb0%|^ z8;Uc>U$MkBIR|a`X;9lR}K{CkL#X?SVi*5>Abc@tsYwBx89WPXsmxJw>? zpm|gmexLA=d^uIEH`sMm#EfE3P4(IWzWOn_^kwg47QSHFF3I7)xFx2!7MNxIdzuBy zW+1+@pj|JD|8DW_voyKE?i#sW+>Fy|J~X>|B2N1p9;bcc7{q@Dz zc(@80uNmAd*KUhfm-MQA6y3`!w|{%yt+SC92ht3dhs!wap{L;kgU4Ay(=Fu5>)7Mf zo{PTU9Mh$lg_@s(?o9r?CJeMQ8@`R<;SSupdl*Y);k?v<(f%;b8(4#lXS?0pPgg4k zH;83s4#Z_(DmkLLqKf%~KQz?qHbsjZ<1XlqXBo45nLZhR5zKdc&9lJl*}rF3ur^u} zA2Z$NyyD}yfd>v6)xMBhT+Vu?xE?n>d-lvz;xw{(G}rz(rgHBva`3?ap3Ly;$5&Or zaY{3(FmLe8%(1&V%yCQy6IrGKcnsls(SP-@OB`+;Rw+T$|LNw_jI`!?U~{>uerI0< z$-YI;jC@sNJzcaGSOk+yPhX){g}1mtYlW0DL7249Y&nBgTuuYO{R$NOyPX78SS;B8pj3?=Sl}u zox5^o9FS(?!XP)=#cb&YvgHuG4dG7D)x$!3_h72PhOqkt&jL{w$^D4)2|1Uo8+$*K ztHVX&3{{Fw$97E>@fV*O>2-UeIb`x*Xt`uI^0pSiax;kHiwuE-n>OrbxVAkEe%#C&3nNt0m5hHdj#_0Jx;#?tBc%G z{0<(7GoDv-oYms#W;DN@_<0^;;<=*NB^Af_mW#&D|{W_^{^c968p14;y zEBJ&L$yZmjcCsWEi`&=r)K33ob~=xlRnRWU-Q#DswNg<|Vj9z2Cd}V^P6cZn8@6?> zd&S^m;?m}bXO0KlynrTmHe5Yb%fAN)sW(P#@mY_cwFkgl~lm+LKP)k<~?BEv*V8?GuqW*-lRqmCw%Xc z%XCiokbHJ@W2mCn5f8e=Q$xLO)7g&E(HR_*xh(*;u~Jb_V$_tm9+PqOdqxGz8dUt! z;VhZrAN!UjN1UaTW8e~c{Mh`3apW2ciDx1w^cu&@(ad|oxA*;WhtU84->!i2=6$}J zxer(qaq%q2yMLA!*MRF;uiHSU^Ln=$$Qp_BQWi{A!;NRb)*0mCn5#|l_#+PQWGwm< zUc%Gx4oc6tp8Pmok*8*QZS8W1#1LuL%VA!a-M7f3VsHA2C+x>W8(y!vea?nG08PEU z_*G!0+zt=IQL6JOPq5K%^(>@W0y~m z&AOI6D<;RhZG`V*9-k%Ko&Rp^h~qFlc+^>S`TR4vELgBcxt>6w`h_g`^#E?A;Q`Nz1!+yC31}xGn+Vk-1Ol>ps6{aVe z>wq=?7WV>cpN!&<;lf|l$uE$OP4Zc0@LnZjEB`+`e@KIlLGbbDf$Id zenn^eg3n?DXKv#dw;3#_HAo}CyiMkd)Y(ibKC`DnG=jazh6YjeO?OFt-#RgZ@Om80 zl~xe9fHnUX_X(e+6zxTI;V;F%jo(J^^#L$3haR1stHHd7Fz=bz>v7t3nfmm;>^UcLs!6+$4TcZ?}gNbOX4_4 z4xbg=IN_u&+tOGn!TrtUS>ewc>UEPcTasH7Rp)a?4VKB0e9pk&cqrx(@L(xftYDs} z*sUBlBCOp+XJ>+^YWWwo8>ilmYu&E`v)kt|sqfRmUW!X*$_(=+oF!t#$90GNI2QQj zHxJhy^7IVj3Q#j}@t&~OQN)FC)T^T3W^kqddRwTtoqe7xJi@8_K|B&d>y5RJxZdAn zEC?~R;uYK5vPE9zrFonM;i$0OOdp%-pG-`>9YPB@k3=cF@4Z`8iA@XUjft2 zJh9p!MvjA5fiXGZ+s>uc5ogadJiLM|2R3|fcr00d7^Bh?&VG2Ub8zTBxv}9*JlWBR zPb^k&^X~b0pt8q|!W;o>GA^zY){3CwcZJ{QnBFa6^E*7j3d^7Pv9Vq^>kfa6a-#DRFI&y`3Or~06&|z? z?22Lh>7Pxl-WH87pdFuBNg+7!!W>^C%;Ya|xDXA8HcT6vn@&=mHuj2Ka`Ws(hBnMf zC#7#a@f8g)F4#j8Nfssn z*)P8ASzPIl;@I#-KHy`qY9W*OUf@JWg15n|wTEOpXve@+^7|Ofrxg|&-rO|#q>;^) zVrgAe@$)Z?5eHXyntgUpAiLwu_gt&FEoB{_pLkT*Mt0nLP#Im6^u6!f{g*|HdriJL zD+OfR5~vr=tL6pqO6uY%ah!mMCrmEPsu*1TLf(H@)P6f%_<19}HhyuOk9$w@BRL-j zo|`vx5wGpT2y@%8)}O_7z=0gmtrm5n7!J2rJ1Ytbhg31{DevA|)rjw1iId7>?X_whb6p)ijHH~f9#Rbj2FDEe0TK9k_v7B1?#`tGlo z$*;1Lf8qRF;NW@Uv5~)yeD~Z?2aC+nVfvZmy`m%|Q%td3R~xSMh^MCdC$rRj+_*ZZ z?ai=YKP!ZIhu}=nIM%(@_)M(^EI*%Ow+S=XfNyh`^#|YTq3DG5Yu&d?<5lBE@g7s64jihoV{jf&szy;vP?-Vu>Qz%i$X_oQw}D}aghIHA#ZFq#6^v|Jq3PV6II6`aoyA7i*) z^kF?L#Nn4stqG&};lblz>yF(mudma&Y;BpN!1&fJza-CTX)$%=y4tYjK2J^c+WMt= z5Y_UI_q$e5t(jPqgQ3?%?275s?wMT;7&}MdHq-SQ!neUot0UjZp)A^a(XxQ&^pw0a z=1THZ(BYVb=VQ8~7jbrDC$CQ9OaEYPHA^lwu;u+RhqAAkxwxsgXPHHx4}{No$9fyY zolcxQ-N{e`$}dZjFoOV01Hu|{k^_11IOQAb@OJrkHCN8gy z_iSp3$2(rhnOEf#^KXF%ub(&;%%;VAeg(_cQS^%^FP%MC@>hYi7?B)qcogMX?+k_G z>V`Ak;YIrMw6xdilB=gOGPq&peK4j3^6bBcvjqsIgMiE|%uU(XLr z0;xZ6(~Xnyy;51lo@mx@Kn4N0@H8=b8QapwOFr;hADl2%YH9kUCR4^%&tkxa3t4<> zs8?;ebe3{(aWqZ3*mzwcQA_M=;Xv6SnO_^%;Y=4` zzP(kGuT&CM+_E((S*kd5$)__(JMsIT$(U?}=ik*+o=tH>&*wXXaF9E0Za_RA*S2z7 zGWYOkD$Go+E?gA-e2Y*=EGaB|o|jV3-mI$W6L}`(FkZ=#{MJhUtUa+~dp?;#e`H3q zQXk!48(DqRGU7rhSOkhD4q6mHxw8X5VpUJgDa`4hq70LJ9NA zjLUsx`C4~|XL{s(@maQ>OuUiIG$AXJ0gCiDb|dMrTc{+nCw{{D*B@F-{q%r^nVo?+ zYO^KdT^q@G>HIa`79`)vZZhL3$+4*crlJbjr<0kllEr1Ew~G5n`N;H6{F#5Lp4fz= zoNCH*j4_fg8Y06p9bJo_>C`T+;rwPA5BO3z3(=WhxKn&ihZJ$^F8;NK`z4= zZz0TVp?&eGxn8yGxCCKF!U%WcZ7A`KHWGP1odnqbLgMeQ)!~tYc!1A#SB+ zIG&$Ie3W7`rUgvXl$1xOB9D)b^tSF0twE0|;t@5O9y1?suPd1W8F@Y)7s;3s$g>*R zlT+>@{qFqIgcsp8|J^*JlYe@ec+8&VU8Do6$|(P(_}Jw;xzhwnKXO@h(j+5s(GnS4 zx#E=UrMR#ca*tt!bj?^WwdC+1x~8>VJgQ4yh7!MOsB%_j9-afvLgz^E)L1Xubqsx% zx;Eal%n2HBwB)Aob84_J$=LkKv+(ALTg|M@#wcQ5GsD#%h>vDWCJQioCVI+Somcq{ zNDmE5daPD=bIIrFOLzr&x^6Q2h)5sHdnXUtQ|U*k$!zH%{hs+vsYj@8R%RaDT~#;o8Bb01vQ_JlzO1^CHZ!6NKq6T#p;_rSE3wc? zXA3Gz*h@;&b}h^lQXhCDGFmY)6H97*Q#^%HsR*ZvC2d{ijr7z_yM*t(lk;!%hnNOi zAxjLt+DyjdvPu11*Ntu>{jR)fQr8G)!n@)8TaybN%p5g~s!NH*GsP>(A$reH+F>K?_do zMRXKmvWI9NSFI_oF(Da;LdwU*Se1+uyuv9rlPB%_5NA3%UOY&Dt3sPUOQ!Vu+R0eO zEz|F0H<`&l;cRS};@wtqmJ&ieJSbc*-8?Al#P$_mtt6xN3Fi$t%Y`p%DE*jSm9xmaK2Qv&BFp?dwbaW-)hYC%Inl(xW>uIOp&VeD^{Sa! zG7C2FVA5h9$aCIdi95y;JD09Ar=hV6wn>?V=SuxzoeMX$xS%^M;rk@(eM^XFMja zA@#4+>osLEuN``L$yS1c^vUFfe8y{@y|&CeJQS{Tal%Q_+2`LC{hCE(kD=7tsHz!1 zyKE>`SiU7s&GfQG*-pWPk7aN=%f)_yo@_I5p$N_wblZYiaNXiwk>~Ef0ece8n%O>c zs$P>by#_Or>kqz)-IYH314f49IA6&u7j$t}QL+wngGCca-;7W6*d>{HXiF~i;WNQR z{vx}{Ltn5UdnL?k@8nJgGq)}4z0YDU$m0*K$tdxfEak8CD`t}JeA#+_VEwXShB%wZ ztGJx6X7#SQ#3ES6So@-wK7;y*E%E4Eg|BHQ!K0VtCcg_$s|#kRiZ4Dj*2^(fTTK1+ z?rheHeUuqIOO zS$U{KXGbbr^kujYjr6)X|H{{S?YyoVQTSDY3$o?*kmkk%@& zmA<@%|3z#dk`zoPPKPP<$SDFx$x_Gw<&6}o=f0Se{xpd?uM^ zU!TEo1hpNcGKQBfFELK^tE*_P#dJihBI_A<$;Mzt#}&OLU@p;pNOD80Md-e?oa&D_ zy2r@6fQ|ATz8dmhgY|#M6}pWD&nUvX#5kM_&j?LHEaFCM&lmu(#@rrQSrW5MI${ew z$Qc4BI3M=VGxq~*sD7dRo#e2mC~qlH1h$To9 zCCYPp6M|cb`lHZZji9$bPQRc6#+_n8oHGZ;bO!AX%NSUgpzVLo=S+EqhLTjjjs(eN zErVAqNzWp^Zal-=(8SsWuiE(bg9RNI=sz8o+<9h*dJtP4`mdBm{d8U0dh1XgBMQcw zFMso2+{75H44Bc>0@e(dhdftwdK6q&EvRxC3A#6&8jnaiSd%OA9|QIO)o)mW ziN-=I361&CGZG5wSJ2fn974}BI0s-Yf;^3w32ZgVSH~5duN3!;)p(vU;|TyiK)}E0 z%Uf6(&*5jy!A5(;bSnw9k)Dw|rP9hekC-4)+G`BtwjFZTDDI2lbow$5%FEDNMC1&P zBO({rIY+JM)&!Q8qgCqJur~e$O|F3_82gu>=L(Xc1 z%RFjCSAIoXJuBE{lDAG+V#7$y`o9K*I>p-3A5V%K&;CyhwiGi7KZ}Usw5kh;hyZ5{ zp+91)xn~J+OT~>bhNr=T-{>sW&b9RHf|g|=$-?R9v~U~>ihIUQ5uwO z?&D%19SFH>ZE%Sph`?Mh&kBEf#>Ik1ZG7XwT6pB>Iu3`ogFaPg==4a3t}Dw?Jyc9^ zS~;i7GwVFl=STi)p#JZeLJyG}>1%+p#{BD;XIL%!E7%&cqUeait_K-dSrW9$GGYgv z1U+MaJSn3*BkKY7qXM0TL?#eHe^iIqE2@JLG{jtlJS8_g1~bJyb4u3WbZ)h0>=4zS zkyicjDp9)%t)@5u1PFwD`;b436DSFknYMLly^3r_5WFHgITU0~=zT8H%GQAy_+ zX%8?4hWYX^sUfk*B|I(KhwT2C! zCZ@GLNRgtuzB$_BCX0{~Rh}JEsyK|+#u^GknZU}BmbF@eVG%uJxrn0bb)6Q+;JYf~kiX?ngE5fNVJL1% zhq*xK63P+@L?oH z#SOg1usKvC?4mqjTu~a)8u8;(qH-0Qs+m6v$MNeFVBDk7c06BT;Y5tCF%eMt;>ei( zoUVlN?5o4ILmE&cG$MXHVhj*MDVBRScWc+^& z7NR&B0akdod}DAL^9-MilU5cQOuwY;8JAVW3_71-#tW!}G`2sdleUG`_XGv(NGJEfECtbxJs%yE;6g~8dV#m3-BhrXasU>1G{3N9G23}3)OV3o>SN4G|B6#v=dAt{6Z zU*q)um2X(?1CNnIB~fmdlOLp&`4wv=kJCk9g&=%jh4P4U2$ZL%$k6T+Mr zChQhDLPoG(vDTkdC|Kcr^h|FSNm(8Uz0{Q62ZwAlEdaNkF(|aKgEMls zfY2)AQ9;&HX=Au&<6DH{@a?o`Um1{v^af`^#wr(D8n*Hpg$@95i&W6$KPaUyjce+_ zjFF`0KW9rzl0UfWFa;1t;kT}FaY~nhBVj#TJVu^F&K8Z0eB;5Aj?>3G2tin>q6n=) z&tbQya<0)cdINyY0Yi}FzlP}ljwVgD3_eg;r@#qnaaio-IjTkdAi%^~x z%?3s{1*XU!CyEQth!%kjLiV(-Ls0$5{GhxHDOriZQN)o9c}c~oIBKI$x}daxx%O;u zbE$SIjb|4WEO()`3cs8uNpCw2_T{t-dR*DS%#vOgMi2`d6tVm{Uun|&!B@u(RtyT6 zbUzQDoB?vKgTJc4zmm2J>+*q`0|oj{heHk*(IiKwN16qH)!!SiR5JLhQqt9#1^au9 z*8JyK{a<+mvq27|!a5D@c=+LKyfOAye3g*Gt;i9(fR+TTGE_Kt-AMCU@}FP`J!6#> zSiyOrMIDMN_st4xKtf6uPHJE-LQ+yW8H1S&-k(1UXLHMfv#70S781|KkbK3}Bgs8m z5*}zB1+`#5LueTf7_oGmyDai0k}I)V#06Ih`*!nL6|oNjHR5G-*V*3dJ=EEq35!qhOPD6c3m zq>T(&S!WPmB9@$ac6g{`upnoXk-f+HQajIB8_PX2B-=bIlCiixp{50ZXr4dSGwze| zOhFhhgqd$XWf}qtlxHDCPZ3h)8KDmx4=F&XWUee--eH`ezNvnWuoW@NeX3)^pASOBQRGcVPlY zD3AIaoo}r29HCy%A^)ejqX3pbISdoxCscogxEVNPZYfT}V=%*Ung=u;=K}qQE@#A= zhyF9JQGZza$px(%1RDwFq!s^bwEpkJ3O5=OpZ|)>YJ_+^OFX#00>Y>DhB4!8; z(N1h07)l9`mh`AX?%u&)quNbaC9bJ*#EDRu|C2tc1wlZ_t@FqsZDZm{c$Tzp0jCRL zJp0;!G+G{gF|Ca za|5PCtS@e0U_2v3jq-@OqB`tIlVEyd8JU_GC@^HWibZj__bT{|4#gF%<_#Vts+Xa) zxQxVcP6=s7mvNpkO9q5aQodNEh@}nM*jf}P*VA(_{)_@Ckk$~%!DV$}y@jUQVLk#2 zt*Nz~$H0gVhqNxSL*E^=BC&L#?-A~eLMK&lSmn?14hB}V0qnm<>i-TZ-bOfimNxVm z*abYh^l@SLE5J(3xo6lJ$pTxbQ-Wk2pP28na*xd{neZitnV)LibH59Ts-2cb7&8{BVc zII*_OGp-w?cw~fUNp3jUMqo@;%JaXE)c@DMa8(?6LmEQK_s~#Q)KQf0SAaF7K?U?J zOhsTNp=U9C#1cJ?6yhaxJ~tjU9%8EADejBYo+-~Eg$#D&$U!i1VoT*U1TK{~I;_8q zL|9_&AU(LRPolgI=?zX#J@j&DE=MLD$6@%uxKSp^bFGQB)+FDVWr0Od_x$I4%RJ&V z9Oj77l3vy}c*TeifFsEDu;<0|PuiBj39&I)(s50~gV-qYTa`3m*yoTnRzZ(*&FJD{0b>o(<)XLZCHdLXAhmu$6^aawt?V0ZQ_8cUeW~EcI?oUlD6d0) zLq$Q-8cEHCwbM9^&2NOpv7pbD2pr_Q&@NzPg1irot+he?TZhAV%Y`oOO_UG2IdJP>dH-vq{=Wc* z<0Hu-GI(BuAw9%VMdVwK(GWJILZPi?@L#|x;v{L6VS&+8WcyHD!7O@&o9D>?V!p5q zc~>|?4250D%hJte#GG5t9F{x=Gjbjki7=ecO~{nu*+t^>$F-EGU4^DvB*RH8vnZg| zDoAt50y9a{T`5g$EDO>eryGaxr)L$Mc07mD`0`ja8a!i;L4xRp+a9*O5Qnrat#~C@ z!qRc<9|wgbE`#K!(p-kFix{MZ32rNNZrI0xyJpao{~V@%Cz*XDa;W3N>s0?xdK)mgGy zcPRrS+Xw$PoKI#Iw}%@X|H=L#I--JGjH6hN{*%Gwfqlu4;6>$#DFYF~lyo=}=)1!` zAeJKZU3jAbwp<0Tm7zS|5wM~~&Hpu4|5qqMi}~9MZ=XBJ*@zxGM{#BM&sZxw2~LdR z5yZv`(z8-Hu;ebRJr>g9eD1>1W9tm6cN9}HoD2-ZCr?lvo?**93q;L{Bd0wp=-Zf> zG0#ZSqC6!_J^KnZ%10r`!B`Nq+M>ChaUPn3m4$(gRoafSlOWN>3mKp za-(4TCDqTlB*E;2@Ep;e4=^`|+Gn}(OdEwfBW5OJu%_dR!WCe{(0}YC=5#(|q5sSn zs$WIuAH(Asybl46D0=o^!}b3qaQNI6{}rHRSk&PenFR3@at)5BjKJ7v91x0G7`&#$ z3Svn($Td2hmWJSqDL{-%SlXefc83Xu)^Y#^!~iGcR(ci?xiOfL^QdW!Bu*E&tx(b! zCQQxYr}~4a6)rRumvx*(Gt+@>h&JOfBQ{$5@*E2(0t=M)_0jqC86U%4@YzMk0ve8B zU~r5XX<7s0f#yNN5i^74!x2GweC+}pcCCPs=wi66)Kp$j=ec4rNITE;Tbe(sJ2=?V zv-qC_^?z+JhMkJYI8-t$JLU$g zDQsdG54l%Lp;&)h{N!fQ4oxf#eKiRZHwFuGA7$9M0O^dwzB-2DNTJ9d@A79Av}K+h zEd@mL1eM2)LhJF21%!O}jR_D1b!^d9yzmf84)&j_7SKtslu_`DIjLC#)fF69qliP| z*7wM_930W5IcY&+C&_g+oKRZoIBqx(&>Q|UGWI;Jt`EoL_L3xWk z-NXicq}7%V=fezoM$Q9FDFRy5!959z4S}2xVM8aE#8z6*h)7alqdEDbLZLVhpSghp zuTdQ4>c^c_kjSB}T#=O4w9wmn*3c%NDJX;E7)H|T%;>-heM5DYn2DhGO@!mHMT}Ik zwko*8zX3&5J40H=^H0(?{LCFt^3WBiEMgpm9kxK&>MW!3KklP(6^C?94=1Q6oN*g!=Pda zrdV_F^OYjsCLETSk~|9JZHXhHJ!{N-RNN_#^yM=Uec(nRV1?3*(i*{yBy}8Gs=`Gy zt?>rq28kfXr32%QCb2HG49r~+^HS6KJPKmpIvhvtPmwydhU5AatO9f9%ZL3fo`3SS zc!+%K!J3Y1Qj5gu=Mzlm56M058Rpqi{qkoQE3+t%jT>M_dyM~Wl>Xmf(l^URSYGQN z6GhAV!va&~Ul?U^k8vDUTX^=ZBeEQ&E!_LS#+P>JtHRl^ex7}8KZ|!I=dp4yo*{!6 z36z(ZlENlVBZxT<8A&c|3})meYEoP{pBwI(zNO`v!Ds|GQVU-`3aupr?~fy+8G&(+ zjAw-hEU?hN{g}Ktn99)y-+#{M)}yb^a;jcy7b`?Tf|Cjfp-c#x@vysvIHYTF73+&5 zk{o)2_2a}6=ZD=WC{LY5CwL6hKRZ~tMsa*_(zB-TjQ;09{f{9{ul#@Ji{&j0?|pGS z{$}Hc_~-A@Z-4XixA=6tFOK)#adW@@?YF1tb}_qWPmkk#b6jOl@8ACBwVB`7fBP-_ z?QhnL&1!weUwx&I+u}Fx{pPs)%lf)l{_VHF+Z-mVMf7*W)Ze8Lzx~bqIyv5!r|aQw zzdcOu*UkI)NTo4_y)u#i7ZhoxrS|YABBhno;t!z%Kkf5>o$WX0CLU3A0PwG?_@h_f z;9rg8zLH<<4D>(l%&+SF->J=1?SHrar$R04zx7*l`P={K^n7xk{Dn?UpO34*PA9j8 zmVeyzvyJvEsuWkJjQ^+J>8~6pO{r=Y3)R-}_!`E$ZX*{XRZUCzHFR>m9-gKA;d zSr_$r+w*m2Hrd-Qn|W94ZF;TgN~?8Q-{Lside)A^3I<7rRt zJLP`kIoyiwrC&SFQYq)uS=rQNynG6MSa2bnx;-9;gL^(I!~VV$zw+zE-=J13+xcdx zS{|SD{+&tUR<*kSSh4-4Q;){cKPNY(FPrT*XN)P<{q_38PP*f-e?E0m>*DsU?)#0J z7w^OE^v?C6!#S^2tw^Wcksn95N@4sI%CSaTw_mFyjLD_CO4iHSvNU9)e&*B3W@`Cq zI{oDL)O4)f;(Rbhi2Kp9i5o@N{)N?cjbbiWdOnx)g=kJ2NB=<7i`&+#_=%$4lwY}- zKOWQR)THVUok|rl<+znuC96fUP8#K5v+-tQKlc4h_r=;bF+G3Jyjt8g7L(B^`tCpH zVg0*(KBv{b*|txtb`;v>O5O7=`aaV}Ph6RA*ETKI=DQVX`{EyKXVb&ETyNC2=~SxN z?2OW#Z9bccTf0nB$jq|7OB-3y*Z5T2B+Xp8tla3^=il*7)K;z8Vp5upMy=&_%NF;+ zc8F_DtE`ZZQq9hMkSiP zwdv{p&jM&*K|D6@*F1>o9qh9=ej*#)Uxx%qEgB>dCFgN z^5xrAT+d6T+U+mrTok+QG;f`E`ChbMXVROw%Vx9cc#ib^xcHvteTqKvM;Zl&g9p2xsqa=GT3%09-OW;1O@yQ&|pbUJna z^ldtQ9X|QHT)z+3-_EeoIM1m4r&1=_G*|uH;Xd!Q*1PpAzFv*GES}TbWF(#2Z>IHC z|6cqI+qS+iZa$uVC*{J%BzmeZx#{)$ZeQ+&dEu1mTq}Nn(szCxoOAc#^PhdFB>ozk zzE1pGVo%f6WZylj>qAU$)BL8`9q@FuI-N!R$+=hS@o9bA-@c_}Lt)f-E;Fz5qS-8& z#{QMwwE2!#j{OAB5Za&AS7?7BmDXq1DP&j0Ze{nGH|yuf%)gUTsZ>e$;BvjrzJ~*M zk59!3aXcRREUvdU?Si@cW~kP)WR9v++gjG2FW0U1dETpqw$~-K-KE*k$VZaNcORe5 zVtLOWnw`nGw(Z|L*Y}(AVv)BuDnF}pJ#Y2TvNc;Si@6J%+=h11&wZl#qq*}F)dsez zlgVdRP1t)mJq-13m&rG`k4MVZ$}{8b;QcnUnQYc=qKbGv9+TOAI9~H3{ywUT)uY=u zm(=@teC22RteB^#H{R+$Hy?RI-LMy_UO)4WQ|VOWdTZS>w}F|~L}@r2PR9F>nhxgG zXQ_02jF!vgoTaaAw=i?grj1HwT&wYAqh9Dfd2zGdb}GBvD@pR>R`P4^Yh?2++j<_C z{lRl{`etAsMxXocSUMgK{lac*TGzCH^y+WtZCIf_5L@L3vUEA5R(jO5rJ;XzN8_m0 z#xT;mnp9uOX89<(d+I!1wezdfvbuVWnsq%{ET>OzgTL~tGU zliijro2K3w4v&{J9~xsi^}}%5wujPnxo9-%-@M*EM}rJqV-vsPWGl1F>EN;`6Pr<_@<>(>8M%a3(NC7;W1mGE{FEhdG| zeXuXQo}ZTR%A;Po*@*L~l^oN}ePX$Do9{GBsyk*In1M@uo1p*Xwn)>vq52 zcK^mRwmvxZW{pmBQjYq5_B?u(5MR^Nlk^JURIj9;#pW_*)IH8Bcm%)5JDkXNCDCyNYdU+1#qwea^ir zcNdv`vuIa5cF!lKRJl<4X1p0J#P9gsJ?W-@mu&iwO}8(p$@aTQ5BvT1;*_0UYQLVN zeeM(|N4;O3mc8fowOZBE3olS}(}{dOnSLur_{%1D8iftvxtnLd=J=WwTjdEgse4=GWX>RhV0=X*<%d zbD>>}r;Ecth~dc3pW0lzM=6tL{jpdqyr$MVE`H|^F-fkYM=H8?7p3a$Hd{`fNwMLI z+&_1d!)(zks%Nv=wCU74ckZC=7>3q~XEue@Y090NpJb(Y^%muNTW^+$pPSy>r1ah0 z2G8mJ673hM=kWTnQ7zv+oUVmvouu!>9o8Y|2gmNO4iSN-_O<*AH7T_ z?}bHb!C=O^-R`#LZP#Yiovf{{6ib6`^TDfy?RSt$r~8vk|Irosjn}K?%6aGoWWTy& z>E`uiqDQ~pykKrjrm1=~|CcS!!xpcm>-yx-vRSXI60!e8dR))-i*nMOT>6vyfnWRA z@n_sP7T3wNofKc~?;Q5$<{0PEAX@sl0nf#AJ1yi&JkJZs!d(4ivu*B*ai>#wMaOuu z%x2d$5ln_uFmMs}C-D zdq~elv^XA&KL5vb6TBVuj%rgi>uS+EIN4Mx_Ir^ z{(V?v%k9oDdw0qD0nfcF&Y7W0oG{t-N*wq5{^GW2Hr18H~fIZ+H1^O z!KNC;(*2$!DRC|*te=c;sl{+!^{-0QgH9K&6=|8&n%#<9JO?i~Sblj@diV$Maw&Glw?Q#iId^v};r|&9{kyzej6R=K zTKFe&SzE2wY!z?psN*N!!FKCv_vLoG8&3*{TTbd?@!|&8)BOH^w_W4deLJBq?P>4c z&QzXk(!8y9^WnMMUPg!JbpJ13Y3~2iNQQ^~ZG25sYkYZoJEr+Kd*0<-ZNF;GPxn!! zwJL3yz7Gf2a&?g~{{6IlrB~tt=H@!_$iuPI%VI&#ypx91n&5 zXDO0Xb}26F_Q`&|pY9$ux5(w{gXhqtI?ciLxWAlR_w-^sR{DJ(vg!Tc{hnTZd)^JU z>e`O7h4N~@>zlUGuCVcsYRS0Neb=jeI{o({-TsWd&v7{D`GZ|Hlf)c1jIH!;eN5CU zwV7t#{l|7M>Y2vj*}KH0?sR)vc{3OM>hg~K&hd6(qdG5`+}F=*je{RrzJI*e-&3nM z94_bc?kG9UbN9}0;PxGVQ+HzaO7gjD-_8r&RI+Ohx|L7)+8Mjp>-Vkq%NLXTXt8Ky zvNdl<{CrZa8oPV8-l;`4^R4n-zVPiV^0jt^d9-vb^gHACAsQD-_Y$U#c~iZ+lYjc+ zwNoq8E~abO?|Hr0e!k`1_uKLBOR?(Q(ine<$-q0{gJBYl?4;J(zf#wM56O7bsbH(F zjs5qwDYxIx_M>@pD$cq`>hsxr`qxSPD4&vHZFd~)^Pl`ZH&k+$^KW;3y-BXdc>CLJ ztOw_b%jncI%GNsj;gy;BvuU*Ehk5&Z`)3Si(Mh~USuET)dOrKwE~-V9eqOKLDbud? zRc^JuH5w^vKkxGAb}Q7ruQT7at$t?B#Ko)Cd@#xny?`pZ)Ay5AljgSNvW5DxR;$S1(XCU>U83Q$d*8`r_Tc=Sx7uF)yLW%A#=UoGQ~dgX!OLY;`rJ~p$8esg^>Wny zWqWG7xsThVYb6<1=I7LB((AmBN3XM|<5}^ruXJ+a6Xk2oa_^;j_rmpjtXZ`mZKlPP z_m{_2nTzlFU9oyzeecC$tGV0FD}|xnrpGO{daqNkWxD^`T!(y6?cWc}_QjnKl}9d8 zr`){O&KwGjMkAjuzK*x@kk9;Fl+)C%&NW+})Z*6bHioA}MeEu6xXc`!N@c#SPRlLQ2b>{ts{Ug&|e~uA!Z0C8KJ?58oxi;=y9^2VtTCcBVQZAIePmy@7*zm7iN$hsL zc`>>ySHozNdWcsw(>A5ja54MNpT{_R+q04MecFBz|2vDJQp%;p`C2))kCWqQ>4Q`a zmHYI`9tM+BF0^W`XV13cN7Et3*q=`xXCE_LtzPNLx^_MtW~*V_bx+>Z`iO)&)>q5M z;k#^}@&zAm(erXw8z1qTo*SnE-+rP6->Txae;NC>=hK5pN7e6-Lv*m2+OpMK_ISC% z%X@JzRdxPQyShwgGRvA~bf3=`2d=vJvc-H7Y<7F)wby%-WR9gmdNc60SA5T-^y<@Y zXE#yzG;B}2gYKqX3y^4HrSlic4YyPR6-eXP$lHN9Rg7cX-+rgHD@xv&DRpIF+Q)PIGxUOXRgNm zA%Bk4={6eNc5Kz@p5jUOd%08^o6B+j%AFDs6_ZrD=|gVgcQN&%$B}e-Cpmbn>?)i5 z*{tCk*Gh*~t!6jH$qo8?z3axE+M-dK@WHmS?k^ijC!Te-Jw0!*{h~1}WxRj7S-+;8 zNtYc`%j#}l&-$oWF80skWKax&%^LyTRK;`dBImLT_V4_0xhNJ2`a9mYP9yIgB-vBGp00aG>g#fg^&m}BESkvC zv6>%RS&k;<9-G9Q?78@yH1D6PSAy4RJzF@errLGRqgSn;1mfYW7EAnN?(`qKE6B8FXKb?`F^!;)x%@od#KvH;&!#q zc#?{z+52H@`rS%WpDmxKanJ5HqFy*`((B=Mp(|VG?$4%v+~<{6^B5n*{&r7BhiiKF zOjUQI$zf36ULI&0`PbP|Hs7`J=`KX&(aw|)nfO@UwZ^B}W0oo9ydSOZAOBvR&gNQr zbiQqOD2-J1Tw9lY37KCMk8g`u(5KMuU&Knz8~4s+(k-nYw{CeCm#m26Q{5>!O2w=n zwZ1Luy_i?)Uh*?*{xfe}<4x_<-7TCfR#bAT<=VN+hVEbDGhv$~l^veTPa&mr2iwSH z*{xG5&b!x|ocO10|NYDs!_ICsF`1;U?>>DZx6ya%vkt3Stys);U#X8$O7m>?l3JWI z?p`d(N2Sz{<%7qUN^LOzv}ZoRT7IqctIe|e+o4-#&rNQ-FBR=KKJC2oav#;YCes`r z7MuNWSA2~!X|pXJ7SDGj)wbPw+6}M!?>KcxZ?5(juf2|}jZ3>@Qcq@|i<{+5EzRGm zy*j>T!!+|DBk{aE<@K$6e5*7lj7o)!NJZ<<`fU9x?iv-o&#d#_8JSEb%kkj0%GXul zx_c~M-q#-7x9)UW9H-g#d^T#>>3Nx)*l2cbJ<^NkL^KUznS;f0l781Z?RtKcEgt5d z>h{yWDfp``v5%K=>ijrWi>0!g*xjqMN?OaxM-GMXX`y-lvumMW`-)&uTIya zOsi6i{PX;(EK8}yA|=%&@)6VVe13XX_^Ef;lsAtqH~zIb-}yzoRpDJNX3O_S@mz?i ztK9hXX-|EWgH1E#{oai7yW26}U7beD=J2(AJ*utp^?jezCY!kK;}g$R_7**B^Sn#? zb{oIawz=9Tr>Xp?q<>Utf1U5#Cn7Y{-YL%Xx~kDGx1JQg9My8Iz4rIE^sW2gnikW{ zbXT$6*}k=0E2Y@+GoN`M=DmsA&;0f<>lCEV1AV`({O%u2T*tDT%o2Ve7UZ-f=L{0C zBPW3*qTuQ8aQ>T4xonqR0tD0DUmCKYsoiCuDnIKsFY^-$GN^9$(iv}_YMm)qtXr@= z3P=;efk4XQFy-wBdFNF?6~^J1>Kv9k2NB82P0*av^t=LP29d^?zGz20IiB*KI&wfQu# zoXuyCX<+afVxYRl<0Ii6g1ih*^7c&=4l@HnkE`ihgk&xy5X(G`@n%4bLvna0Wb#Gw z&dI}y$gAI)uZxXT=UEWy_~T&%Ysl=%7q;=6qg!u!UWOf?Lv}){*rHnpITTH!?;xfX z`b{}^AAakH574(xtmp_(#r!z2Hx;XTXJf;GgnSys45lDz_&Y)#N}B|q04IL_oP=Oo zZAmAQWjU@liqG58TQJ@-A+Bysakki+YHEmG*WDhqnA^ln{B_MIP!kVyN8Zl%7-LXm zY)B!X1zp<|i9yDWJpcTsz27233UhWjuIttozGLhe@75#or1b^Ul-l>}B+Jm%M`o9ZH&!yc#NYwd^hs~pbxfmq>OQA{VZ=Yio~`ua7sZSIcA1MDS4}t4-L~J-!HeibF$4X5 za_{o}SMxRpFwQCysT$dW$wjHgqc!hskqCfm^Xrcdif#0KaI1(1`1UWpsI% z1Th(qp=%+DN`=Hu`kLuFFbLx8PuE$DPp3_ zhW0AvEYrrxW3n&)FzO%*L-8dEz2PM%B@hyqj9!<>Jjt@af&kqG)~{7IRHo0pdd#Jo z=2fXO>;DHGL`B2!0cg#i&z29`{$3~Rt=|Qt+eaCx0>`4TW_!{Z9<_#opg7;VCgx3)0>cs$C;)%QcoYz%0x!>sV z_1;1cJzc)RCO=>0m$cRzT;o3sr==Pw)E5cUUg

9hLPjE1%`FZASgJtQ$+<-Ami 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%0DX(L{bqxXUL4%W{Rd3$!W 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
  • FlD!0|ml`GFL9(7MGZ$2`t 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

    <5>0q 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 r7)NxC+HiIU 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ôuZJnLi{jBB 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 literal 604359 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�Gs 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ఞ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 FB`R+DI*o0@SU^7$D>2P^ZN~YwHkgape4HZ^3 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�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 A6aWAK diff --git a/asset_sources/bundled_themes/stack_duo/light.zip b/asset_sources/bundled_themes/stack_duo/light.zip index 649716126f9496f38223a870c1ab1045e502827b..711a6484df563eb4c60ef5f2a3876f766012a0b8 100644 GIT binary patch literal 848898 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 z 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⁢}4mYID| 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

    IUA0Dr#kxF`qwX!QKR&RleL70! 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%0DX(L{bqxXUL4%W{Rd3$!Waz+nND+_1_ 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
  • FlD!0|ml`GFL9(7MGZ$2`ts~gJ%zY@*q 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%0D=Z>%ErwwTYF+K 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

    b8+ zryB_aF)#)e@R?R6E#Z8F{PHhLI@Bo>cddNFHx|Hghb7xS*ly+ONhe&wQWR98STc@E z2ahD(g42M=#wZsMg(X&N?aiUA%>`*tAdT@u0f2gMJC*~EL*o?g)erPMWBW{YXz0-~ zwtQm2@BKUT_2Iio!#{~*b6Lm5I{-hr{lDSWjh+>h_J8^Qhvfgv_|e~F_5a4Wy1o0q z-C2B9rv7346V=c=RYvKC=ug2frT;_NI{@htblZY$+qP}necCp@wryLdZJf4k+qP}{ zv_0p46Y=i6n7MN+qAH@IDl#fESMI&`&aA!G99IG!gp8|#eSE_cS7M#dEH#cISn-s+ zJPdNC_C0uPOVd`Q7opos=4G|qf8!z*geD%7}yr316Hj#Jg%w{fl_s^`-yG=QH3mRj{Rtf{jXXL z1z6N;G76I#7HicLf^-o}s~#m)MR@>%dr|WMcZyktl-gusEqaFvH6IiZjlPrZX&fwW zO`tnoaV;~;V}n<(NZn*ro<1&UFI>Zqg4}$P@L_Sex-k1ClO@Y%AOft5iWb|u7= zhaHYn{ecLzc$WDSjgVnYSK}9zE`TeTvY-#nCPr-~#n38ohvtl8%ON_h2R97b_;(h6 z&nn^K$D+;>Q2aB#quLQh4n5HQ%; zKeGJ4F0QJZcANh=7W#lU1^q=${`ufH*ib>9ih_EJ~81= z8l|SbU$%dj-xUNXgiXXd!kyzE|K8iM)5Y`a53Zb9a~@u=uLm}5<0-1su+i|=uXAj_ zn=sN3A-H12ma}veQ1b>ydukR{! zWe3BPJ?cwaV);jVjf7Q;G&fd`2PJ|Sir zx~ip9$=hTA45Flda+*x-_}u3i;`Qh2DWChBV36Q&v(=_mA~dzTAQXno>l@{P3p?RU z>S?To9Ou}mZFBIGShGG|%j^`$87d!V<#;2Wp`@quu{ZGSgy!$Kc;02W94@H75o#6X z*cg-a5PuUCl(QqlvnP)ebXHG!Pdcjrs&oN6!7%! zjSdjGYJWX<9c#Y>@C$17bC0tIt=@Hr*9QU^=0x-nlhNBA4!o<@v(cFf*6W+==O38 z6!=263M(w}Nv(yx5ABl*)2?|IeIC?0rPvecIS8%_v&lSEao0NJR0t(_rg?scB|Yq6agmA-hB!B`=1_ zi407Dvq(tp(2-;m1#4`m?7QBK0)+;puSIu7gv)fH$_i?#RLfJ9LGBpfILr- zvTzr|?d+w;|3)aLaV28t+E4yNNth5r^NUPc;2i5l;1HZ&5f)+?ONuGpkZ43GNSNCQ zj%GrxFAofq8G;~xTIbyKYZt>sw78-Sy_5Aw4e!F+ z-leM%^kLeHA@Q&TEB`rvC3P~gz5&glXDWC8rCurmo`c?1c(;GM`KRiTG;y_CjR*YkD&7|`IgHqLN?@wPo$BWNP zD#6NOyR)61@}2Io;mnf!jo3=RSB_bebv2a-4y>3Rq0Lfvsz*B;DL*&{4$(#tkeAu= zqtZL1=kuU<{LwGOG!;pQ%4&aokfgk_A=z_7Yt_u*D09Vh3?-BB?1=Gvn9;wG?deE0 zN6&_l9!e#crX%wE?jmXEN7A4Bz@|{%d_q=_Jw^Z>6aXzoOBu+bq5u}E^Rx1l8RalY|?tTG+X{5K@;hGE?qRWNlImMnO~$_Nz` zgvBW;JoUf8tsjrZh3=cY_d)nh)q81Z14s97`T%+=t9Wu^xcR+~IThQiER9)Wi1a=U zv?NjD??4xmwFx40iVPK6Np2POIH-6P+mXyi`RYw|HqhaB_SiM|Kq*?F`55mOxMFk|F<#q z`WOBEPZ`kv!<2Tw1e(nJbM>?TZ+CC1sAvB#rSeIu^o*CZ1||Z|ca=LA9cKkhGazC**^tYpDZxZNmSueb5avrGGC?ngN2 zQh8KYv#OFfghh-pC6k-C!UOQvO8ahjor9UR%4!(#_Y1y35g|8F#O$Fj(#$z5V)!7e zxa8qzDna|6LkPz3?kb<+ne0_JlS=|_rWY8YzDL#TYyl&~qtcV~Rmi8aaaQ@%}p z{&uf)@xO$#u2#CB9{!Q1|8(X5-O2x9Qt0~s<+1*AkMrM>DkDpCMm1Gi>gD{ny}GxtIU%!3)R${{JCs|7q9A(&hh9` z`{~aYV{PyEeyji67o)!vaR{M)@6R^j_wkFrR`JhQ`0m$}hW}@r!8elreyCvgfSoc z&%534+MjpE+TG9BaQ~kV{~z|9$KLP9!=EpAs_-AqFuNblg`eOozlU(auanW;Za?GO zM#1IQ_rXifAIsjuh}W-DgKs7nzq4!qm)W1LVSWGC;X1NYUcf%LGxwm0ZUr?<_O+=n&pw%;0|b;skS;HUA|X*$7|wxsV< z=B`uaN{?AwT?0EG#iMhzeX*v_sZJ#J@gv8E^;*QNWw)ZWN26JsUF~^SZ};(IW_}mB zkN7o*$T7RKm-V1sE4C%SfQ}C=YB1_W*3$*v6TO>@ofqx1J=A#EVpy3rD-(ue&;AWy z+p@T*_t~To-u?6r1D1!f*OAESXtATaYTqr(c%_lFq&4IM&?Rm?IriLipULs#-MT3$ zW8c_oHoBJpx;O!IABt zGsfXkxIXFKYCkw><=Obg9~_euQ_H`FV~uaG$MMFzVs88Q(8GJ`tidvFh%I(|1Lx|Q zU>AbIyH&p4l`Y)0n7w#Yq~G)-Ia+HW$u&FXohd=FAZD`(+*E<^tJ*ju)7Pq{rYXgs zP1jZ(eCqQ%mG)-#d0M?Do&DL89--5)v1G%Tv_!g9psD7xYJkQHi{`ORuR+U9upwpB zgBHDUE^NYVo9cPCtV7V5%;~7AaTVbB+-j1PQrkGwpk;{9^L!cAM%OFg{24yFVac&v z^+REv*Ikw}uYUCDL|s9D<+ zY!v)&WYjJT)hh;6Sq>VGNA>Lx1B-ZL4gxHfq$$(|>yT$NR(p&oELo7tfY_CdEv)pw zl`G4q>jzsX&av)Ri`mvloi-yFv!rQj@wfE_Dp8vHxnCe`sgP^{<4p7sLeC!q?ha|6Ag$ zrUfz6Y{ga<-LRFA$g+C2_z1!#hqd8%k=2x1*nttipS=py)7Y^I=#YzEV%1M2mYECb zrw3$)G$=H>Dy=tjD1!c;H4&1~SRZJ3f%g`4PX_$n?ZDz+A%;|H$;U?LPj>Y8X=K3D zRP^{dl4pHgDOz1$wzMbIw4(r}2&LkHv94-f2piW=V5ZFsDS;kV#O-MoagbF3Ug&eh zMa{RkJ zp3|ts3|q7L*neYYAW*EMnPy@KO)*eqUf;Ynw#FmF+Pk)>nYZ#epq1WqoQ_7I>43j! zVZ!aKz7hc*oP(elu)QJ3{+FCB5&-pNhHp^Ry7y3x{w&QXZzTH*6|~qM4U&VwSf~sW z+7)*da8Tedqs6Gbo7qG~x`AS)_Yo;APA5o9F{YZt?P;;H9#n_H=Hl8)?^8xA(>Hm= ztknR5f_sT5vzy8T#)jc2Il7Um=GaQF0psA!#e;E)l{jdopJ&q8zQ!|&4H{nUN0G{V z+e$F14|Six70Q11I>5q&1nq>yKhM+L6H9HcJogA=Bc-wk_l|A;8bXFcfo9bQ*9r{? zLjI68aji5zwB)_g30zsM6JR}EkMP5Pf(64p$@b;o8SQCs1YdWTgn_j}@ZdFx>~3P4 zCP|}rHUi#W8BzoO9QA)!>trN?Qy68nomfLzQ!3H_ZDizV)K-_TEr~$&98Wxt1LX@` zB4Si;P6vjHJ(o~rHciH@yX!`-MoIJUKD|~Hka?A4LP+{bh+kGyzX|z zrU^-rA&a?IB6k~PYGbAUPuQa}BdUEH{`#N%Ym0E_bZTF$FJoS?&88)(?V?1nq)Y9# z{pP0_rx^q8M>^PaY*vt^zM{;t^uAr8ZR3D`XZ}__qP$BGG~d;a1p!*8rWOI#H*~(8 z2yZ%2Nrye?a$eeKgjVWRCGU|_fK{6Q_{cI_$Mytx(1Ht$j#LXYc#;aL1n?4)MGiPT z%OTKTZk5^aWSP1m?Z)>Q90MyPa}L`nuzoSAYUxj~D$Qg$KD5UU_~1x*-BxSwA*S^_ zip$&xIT{LF4DT*zW*;*))7hgyIbjtRrZGjLYv;VW4MWLC+Nc%U`5u9Rl7<3$>@tRg z3UXXR0AWUyWw({-B`E6fnX0#I;DMPOyD-v=NDmopoO1*NQjv-@zz$VH2 z((`Vz+)iVU?c?ypW(ZDQOd@@AY)$BmonEL@5HLibZQ}frgp|6A>o7rTl`BWGg~AX) z`bkK3(8}t+?Z)LA6h@xDCa6p$m?C{-H+XeO#O2Ir94hlUx>SmZ*Sj2iymYKkEnvef zY->dqUZ`--tWoTc#(IV{Pa6HHcD$k2rgNgdZ6AqOV%)O?v|t2k&fRoI z!5_wX?x|GX#J`kdSsq1FFDuv31{kyqlcP17P1EKu%j{UHH!g4#XJLzeHL$pucJUio z*obdZKIqsYWMsgbV*hes2B=Qqv?5%i=Gwh%FsQ$pZRXjMYi#IRv{w@)1*1R92n#~g zv|%vAyTwLzw`)z3JT~!JesN$GCAY}@%TL zv>0B!v+&jd@fW)36Jn>vtS>JS2?g@DZA~+#mqY`=Xzv2(MUKPH zBjOY?77}z=Td?RX%hu{GqbM(n!y2$T+i-|F6)VU^{ zD{W?r7?Mc56HT!$;~85BJU;S#0;dZ{`#FU?3)3{Hu*Q4Z+1VjT1cg^)t>`3Dy@d`& z$!^kG3O6Ofr?L~`&Iq|$_&j^ok<|T!NvHH?sa9(O0E+j+Lh3$tbtiom&F{-gxrRoQCa#ED zI1)_to3NAEiG&2G=(eLfT1_J&i1lAf6%Uncam)O4b*bn#iT>8 zNTmykvP72{GP^?az`F2h^8?e!_v0{4hO8jEaCjZeRlvbcd%-NCbmWwG*J-gKA^aSy37Qm8W$miitN6J_@+>jN%G(BeBuA8ANN}lffG_(m9znLP}o4uHvnhZpC_j8!2 zg+7Y34FFynvGSAkA~nK#A-+j~cJm|^4m3s7>Sp@r?hFCeJ;hKpRt_xZ3}@^BpcZ$ZZKXTh`?b9^!dp4Ou8QDS}JgHWea-eRi1ntKu2x zF5wDJ595wZ4LP37aob~P&V*}_mbMSW^~Wjv-NxFVfYt`5@cNg(JRAm_ zMl5{jG2iK0RXyiW4&)EsRh<>hf_r`znhs!;TuS@&4R+0bh(V1eDP)%>weJ3rVfubMq2I4u;I$~w@vRW0-Ac7dGvNI+BR-|(fvmU*KX3ZMtMBX z8lCv^YZ=cV_Ow1&*a!<9`OznFRA2RQaJZ==hODsNfeEzcOD%_<*tlUSwpg6W`OgD& z(Q3E1C2Dgi#+_K1Y4v|umM$%xY}c+E6*>4Vg1wlUL=Bx)AE;5L5zNd@vVJp72WbhM zRfTlp1e-tGg!Z-4<9l0kZU^xi1Yi9A5;U@IV8M&6*EC(rSR31qyTp|M(G!;htV*Fz z%>fYuDqvcWFV|rtgKU?U&CG_Pv9ckI*~R(R;5f6Od2NoxTGUnH(!XF|%#&bLI=cxb zD1Yo0h?d}2tIs{GTHfL|Z4wF-G_%opYWbVjT*CO8%caAa-)ED1;iDAmEsa(B_3dJ8 z0t1sQGa*YJ185+^i>Ea;5jcWjmL`~NM%?XMhcURa;sly&!YL=joQG>b>CsUqA4$uU zN@A2^Y|MbvxaMv0g{DLNOXSb^OWX!PfxF2K-PxX-@_h||6^k^Ew#QmmJALZ)N>p| zA#fpC#crEQVTJPfJKGx{PV2R{db3_-pa(C)`f>V^@Dj>HZtg=9N%7~b=HMg{T=Ye8 zn3Lky6HqnbLT_sIWF>liO`a;z4g@1a2!AqEl{2e~@k!L$KE{Aa98{LrH2`>q)21h~ zMyw5yiY6~|u&d!2vXKk9L5NXOiX~~x0g1B-?jFa+xLN6-z%Tgc_@?^xbN}hI_wzjN z=fVA7;Cst)73%u6f6G6HGkBl2`~5!K`}36h{b)VZ6eRcENjTKvAlr|5O>&uJMSsOq zX7gF4FpK&1^y2?IdFyw;-ddUw(|0_NWXa;ZxWeWBMdN&TDllCXbpD$I^1O8ux0xqv zo+J9)T!3~k&{$^t1WTPF)CF1-L$T&y)>k{|9d;7l%)IFdG0yn_r1|!zT_JeGPzGh! z+S*()y?9LmAcBXp{qMzK#Ay?{6K&38U}OW<3XA9A+>c`D_fG8Rt>Ex;6!gTMXT_`b zd-GQKimMO^z=L=CS%Ki(J2G&Ms=wW42Zwrk*>e%TynUN4akAX}M}|UHG^3biTFDF3 z^EMWb@4RK5ALLe`LHZ%MTZ3Krc9i5=FD?ZQ!@m8wleIRY)Tzp9x6iiK;Cbic@mB<& zs9@0xQfvtRy_bX}31^5s&ET{FHfKR19H(dC;1mZV*1H3i7>(kJ!QEo9E!nPF9-g~R za<(v0)lOz}*1E*FVR`k*w2R`VAMr6olk27;GPzJ4E^X7C=+4~^OeaoG{Y^dS5L{k3 zS{r^3%(aT-j87X@LlCzSf{suN*d)Mg|>CL9LCK+uc@>y~O3jRC*r{#AqA|teq z3vqVTPA((nfgWH)^c~Dn*j&L{kQ?zz8gc@n`t6|>LBiNw_F$Tg7Z%2&#@(&C<#uiC zMRg$q_0nxsB&b9z7x~TDPLUP{4{cs>0u=fNqhnT@kkb4m$v}M1&#-WT-!oVqg|nXj$xDNhg4&g1Srpp37z^h^JFw*s?m^0nNiZ3X zFK_xh&3v_FI&TwJemrF75Dp0iln*%li7M^)G@Eo#4-pINy6;|4&JBdYUYUu7mJEf> z!_+}_2I*t2i(XITAT|^|@IGs8>%GasoQJ~-3>Mx(Fwflvk_;9hd4p>1Ys!ZDGz_`+ z1ml?+nEMSaE@cD+jsykFHp1il*EYpZc4!t$=V@cx+X!SQKQ>e_gYWxUU%*)yt1in z;@xwBBGSU&#=2DKAOGU7L_)uy^mn1I@5@2;-%AXd@;%^B-_WE42Ltkq_KJ z87fe5Lmj@sO^*#Sv4V#|m5@p=^HU&f&AJ-J+<65kkgH5Ee#6YZ`cU#=LkUT21l(9b zCNEXdz*DN0Nfr1QFpLoqIGbbx_~DUkL;$_(EfG_A}EpQh&G@Xfd4=d z?=3f>+2Z2&$6uyj=te><BVkY)Y8Ar^f7Twx|trh+#cs{ z+KEd=GSRa!*CKxGD5?Rxk=mvsWHtj_=+5BM5%Q_bp4LSpr4R#a8*!kZYC3kc+=FJr z5SU||b*iURPE4}DIlT}4wqCMF!TStsD13;V;9YBc^A=wY2X?p6So-UxL#)RSvur=r zvo?l`U80r051a$*!bG&-O_ZJHWC&oy9-Cs1o4IzM5yK=MF*MurQ3V?-dN6<_}k z>%0#mYnY)%V8A?-l0@`K&4#>T2ZSN+kd7=GAdiU200i_UVhZUSF+>zVL=i&)+yj&b z^fZ{OfM$@WJzh!gF~1T78R@~A_hj}Cxa}*X6~0Cl(A|mQ8u4@wmXj_1H51zJHvcK* z!U1R3tA&ep0NbToT)oPoiTjMj8T*)Os#+jf2T**w5tB<{(|VLlQ&p?#;1)-J$hxEM z!f|>zD6XC5en zvVdpGvnXxFyocwDcPGi2vB!E36T?j=f^}hCS`N`lbfG#tA9$-+@k6cEVlWEi*rC%X9N9Sdgxpuko7Rf^0x<(VAL9AXlAY`p){~B} zj$8wYD-lp5$XpIwP%Nc7#T?sB_Fai35bIC1>G{nBLB<6pj1vNaBq3_2m6677JJaPd zTN4e8AErU8(p#(t-CaKsV(1JHMA$qll$6^5w6U=kB3ya_za>R~v&1NepTcy-K4(99 zOdAIpa|@$$7x1CI2hpF{kSU_NQ8w6~JQ2&1Kk>N8avz%yh{7>cq+P`^INDkZfHulh zuHlj1LRo_VcFIe)jXN=0qX{!tQl&7C4;H>qF=mcjz9v95&$4nzV>@azmo>VSe!q^I@!?)L=SkwSUa4}@Y-Szz{JK)O;cimpM1S2Ke{eJu^$YvUuX zC4Oz=FSyf2qqUi|yP(ViwOF^WYkoLOL5?ca9Im4ZBGx=q-OToSQq75+z#&O)#cJVM zBFjQ34C}nv&Rv+mDG%Wlw{s>O@z&*S6^S|9}Z(hj6X)nmZ z{$@S@dVT6}Sj0mYQ8TojFS?W^ux46kI)fKMeisWtH%MBjl^v&aA`A++>4Hv21QQM2 ziFV4*z+Fy>_fGc?@skzsBWbJ``oTb9>BLkcH9n? za*Zha{0k4X3zYDu?4eIFd`^fC0-gqLBWvh^kIHI5H=aqK>y}w8`U$BmSQ3EiCD$?6 zS&GzCBAwE*!%bnrp+=Q!3Z@YpLO8Goro-u7nO! z#MwcU)I6zAL{sfiX&m*0P~LcuEWa1d8041ii(Gd&`&)sch`{$fyXSUJxMAwaR6ayL z!(_rej6bPf?Uc){7yG$wnTznV(*KI0u;+{hEPAmJ9krG3#b#4VNfbzN9}*elA~Rb2 z_zzli8*fzjXYF!%3)wx#{DH#M3zd9$`V`adXWm~{^iF>28~9Fi5^`I_3Pl3#;7>Y+ z=1mpakujE7l42(5Y~+LdEHP5>ln&Y4)$@AoD&?dxfe_8u`KHftUG^cVA6cZ?GA`95 z!wCUiGhSp^s~MJOAVz$eCtHE}(#%j1ZEW(77LNXqh9@exB-NbN$ktxyYuJSWQm|bH zOl5gN<~lu}m?h}DV+m9AR)I?3609VmLYXo`6@>`#^Hg%}`ky;vt&%v5T0Q4@#Z5rO zVFU7CSvTgFSZ3bqU4148MPb--xg^Ik%;~$660lw-`NrsF_Ng}K?5^U8xveqmByw@` zt~ae4Y3HW7sE5v8rgG(B=i)w&3y-~WofnHUrf1p=iqz9xep|kL_q_5k1>ezsIq|d8 z_rps%dUx&KW)^|8Q_^g7W*V*_^!_R*P~`0@U!*!$w--e0J_=yEqr|!}8^kyFU3)wH zt7-zIf_~viU}t*|QT`C2*cI^*uGXUTLPv`jfaNFuG!_jbe@PRHw9BN+LqnW-Z6pA` ziTf4V&itv&R#>`9WnZbAA|1eMtus4FepBedVMq7nWt^{qFrlPQ63{b=t5uj>+@V(^ zEn>2s|7sJa+n57W5Te>#P2A3ga+SpRl!yc4OG3#R8C+$P{P8!c%6y{)RD;@9)lA?F zx4{nkc*o?(O)m3R3gC`kigqlKGl3hR;>{hfePx!T5v7~GafOWJ ztuh1Ai{DFfsD4*cuOJuk$G*)*3v2Q;Dm3}FT}5w=#9e_l#)3KtweD_HdmIA0EKgFJ%QFxyQYQc6w?He7WGGd-o{sz)xOk+?!9F z)lw!%f1e?cCQF=FMrMm+x}Nd{_OaTCqgil(rV}z1N?SoYQ!7x%iW&rSGWgYqSR;y3 z`D*KbkpfB#kwi#fcYsBgmN7<32bH*wR|~H-t`9WI1xBIY*wxAt6ej?V~^Z_5-tFM`ZlV&o**qrht9KU|uYVaNnu?FwoJ9TiR#4 z*`E@3-_uDx0rN(GKM#EJ3;})ZVD+?}#BVzUDbisEudxG5=CnW;@*zkt;s8JD zNF|&!H-!=LL|SHU8y{lKRDXQ;Qo3#CY9tdS*tS3bx0HL(9KgJ4v|gc0fU=|~k+zS0 zMbjXy_D7zRm^>iEBE&)r9_Z`im9&)=1qXT8F@Rh7@#P*BNZMpiMZa)}nl{`ev8O_| zeXOaOEY~)1f{=1lvZK;2G!&%y#Ad_24ux{cL}SK2VF}Cwcu``!g~RI%5U@jCT+R0^ zvptKt*nqmEz8=e2^h}T!^Md+MVO3OVqA!?b(NDi&li>_ya}!WaJz2$~^wJi_%b1>; zjS9;{g<3f3*BOODAcWmVMHvozLZFy3T09FXAhII#=ZZx5kka#;)2SLo00( z20#J{{u)l0X)cQI-3vT>kDCZq;EcK6`}mxq4wZ=sZgx z7wU#7Mz8YVz{*Vj@Bf#Z$Z71u@PQ?l!}{Ald1KROa~Vo>#ND$+>nMR_Z}MRzMZ#Flq_sa}?||uV0ff7{5vlSXrX%ob z+lKGR)dhAp=`qZjzX0t_1Jlh;adQjPmUJ=BR_F;*Ah63wRi0B(aBu5$0s<`B13#yZ z7Pj_f%}Ur|bwErF`@4S=CgoS14^b}qIr|zHSAxf3rb+h>g_b>JK;_6GOY|(F8!nSR zx&FO=+jzdA-{w+rPE8-vmQy==*rO++PZ2LM?GO|Y-}WsO>tj_k*1)WdP=f%-ulJcy z`2(Z?aUh(|EpK(bg3^=Unog>?wfTXZT&wc&@^ml~ec?{M-*4aGh+$3u-DA4k)n+?J zB8peoqySTB=`4kKR2n`*S#S&&)h*DVA3ywE2T`s3X*pn!&=0acyd81 z-8XTQKK&y!+nK_hXoS2QMIeRO}IK=>Ar;>RSa!&HGFt+injj4NqB~4ilagR$QkI+J3O?TFpoJ1 zP4rM;DKcyuo1~ToM)_H;)u4i1>P9M>oE4$L&>{oA2e43=vD>G0M<0&^W%5hOR3y2s zUAvZx6Liv{T+iBnhuM08qr&3%nmMNGzk+!&VYuTylmg5yv9=UfvGUiTt%;p*^KG8s z4fll#Av%Dt^WR757qsA}N?}DIlIp64d3~J)hj)3r3^94=^DqgQpn>RKiJh};q-u`=sXNsg$E_doIiL%5aEUB)E z>ktuZQtmGJ8e{MjkXUI%B?-<*O)1^KnSPtnVb}M}b9+^Py`cv~67ng9j+ICv4VZJG zjvgPm#}kiS#P)mt1kD@g5Kb;+#rGtaF!_>OR~C_gY&6^tz3vAZ2nEcaGXs!smoS;n zn?`TYKDU;Tf4_r}nB4LcJ00!y!4BS$-~wIBn2u0e73q7_e!q!fEbvbgfr3GE2I6kr zegR`{Mczos;UjS1_GOA0hEWB2VZktfDaR_b5qEww%>1Tll;?KUV1=fzGOXcUOzZ?Ys> zpQ((ZQBwl_eTa$@Yl?BPoO)Op8H_~SHCugAIM4j-0gv?Q-6LB!V^i`CNDw|iVawiP zPhnPJ8g}LdPPG^f>=0{eR|5y!GfRz*LX5$AM1vwRh}SWdWmHnQ&ZE1MAGQ914G1ub zRdua0P{KAscT{DO_mZPQgQP%9&!`{*wVx=;R)Pvfq@KtDV%*`IFJimH_-<5%bis@) zRSpZ#OZW|MnGY5#^oK6qVxNb1zGzHwST663D2Vmd&LV27@99XkCgOSqw&(E+glBk9 z!~Aqm4(N|NNJOVcUS6tuo1|+STg~rbYHQ z+|6wnDV2lW9#W|}v>?}xLWh+Q%F#D?(HCIu{LTm5><7LAjH#0P8an8tJJ-C|W@o3+ zPkMcVdb=M6yedIVk#@GFCTwqG+YHjC_pw=O>;yilcOOoTyoLRT2t3@qV*A6hz@v9R z7V&QtiIlXJ<;`f|<`eL#FXo&E*6sl(d2eJEmAV}{O!~@FMSqP61bm^0*6&a`ydAOL z>&3wS(6$p8LkB!ql0PG-k+{#aMCaJLFMsV2UOgAUIX?Y{QE1!O#vR=U6o^9mxpDNu z4%OS+)cJpTm%)KiAnpXyN$-e$;ZSF0kC_^!Yk)U<9X*i?abn8P;DULc3IU&nF8NGp z3fVNW$f9b_Aq9el{1boK@h|^=3lJ0qBxj2cP7%73xb5Dq?cwi9@W7LJG!n7YroGW) z?lC9uKRyyaK^k==f{Z#&$l(C@7f8wP+%}iT=?Tr&AfSmXq2#)Cf4=!is>-~<792+g zP5_(@jpjM5QTQ($gSpXGFI;5x=C*h_fq?ep%iH;C<+9}SV<{=SxCkqF%u^1 zqNitc3+_nL+5k8E!n2RY+@i(dp*TPY+bNt6=gZs*RK7=*#cHmgnIW2&*`yB$`z0)C zHYYaB*0-7VE}uNN3oQ)QpS8k~2K|nNfS#}j#F+yVw!->bNaI=rKC!djIP@~m-eSOD z8CH*?DoW=&LtGZ7b-dO!#VyX_=BvHS=z6ZN-{yp!x!qaodzSmFQK1)WMPe;= zeL|b?<`;ZIp(i+044lxlYjp^KO!lLUFX9e~Vf}17Vb#Sl$o>_;KAv-r#W$ZM7r!aC zOb(M0W%aLgQb-<4kl1Z!;iycic9^V%BIY1eTW|DV+^L_w#Iww_@cIVtAL_xL(TCI zRH^UpfNJX^)Kc^O*;l`>hd}Mr4^gNeF&)$-x(9GQgh`PU{7#ubp!ULuT|%Uz?4?S* zIM|)CZuAe_poO{7=XA>NaOzR}tsfJ#3)M+X0)@&=G z%;pRhfKkNV`88+k8&58a$E&_^A-|9y#6k6lb74l{b-w-j zYmBkU<=ISl7UU%Ky{QbMyn;dkEOn4{KZVlXMYzQ6`mr%Mth6 zCG|Y7@#MN3MndpG?-lj%4Lz+=Fjl*SJ`G-UY+uq=oC*3^@L4>$1nOGLUgR?W?NM}+ z6!&=#%nN6{gUF{W#(`H5XAH2uwZanla+r1wC>#i1o$y!*tlEV(HcUrwslUr1SY4}y zML^8sTm1ua*A&3b5b>goNz(J0hCG;trxk$LsIN*w)|$WGT;e zAXPZi7=lDG7-fgyeQF^~=ZUlrddO9zQ%>p6dB4<$Bxcd>1}~B9%e_A%?Lw9p&vXH6Go-l$ z(Y=5N8jDI{@lmi2$`Lnr2{l}2MhQ`VOehj*k$TaajHH~o#Ki)SIIv4{EX=IMWj{rof-&8ym@q}&r({%+B#yIgfFy7^3Ap1!7G{|5 z=c9)RDxDZdyy16pd6G^tTQ2JAC`k!euYvtlc@|*)MR{gGN4o<8_sL3q{E(muLSIc) z9brUEO#lQ3oDC5;8G`fZCr9Afds=A1Eml_%-eBG4N<0{u(0{0J$D9^|4pcBPd0ud2 z8iV#Om!D6<9A2E$)?d{j)6CbP=WzrQSzEMD?IQ%E{ce7oL@c~M!NKRY&#G3!(hF8L zDUV5{RFFfWm@;MQPQmTay`e@kb}$x|3H+y)sHFf3EW&Sbny};TL8e4b!;0*+JiX`0 z5h?kt%6egXKVe*i@eOtl&X{tDdW^LW&a-!0*0T?^Ga?Z&$7dK16sZc4x>{L3DGm0? zuV#j!>GLr~w%njIO&lhL|0Zc1P%pR>4iOMt3w1g9m?+Rj0+fcB!&1_K6?2yt@0wkj z&&I8W+sZX}wqVLv^gKp8)I}5sGy%Jyva(pzQqYgssj!{&@daN3Ncg5Dnq=AB7 z!6#Ojpg}-v$zFni8ppjsXusHnTA;QFdzV05ocx|A|3spnhRl@T&deG9w=;GErI3+= z?I3#e1hPSBw_l1aTSG*WA*eC{dGf7QNpFf)4kc%fIy0QwwrN3d*17)qQl<>bUF4gj z`wh4G;-;e}qIh&u+YB%^N<$5-E?ShXaNRHtnxV1@RwkVRk3WP*1aa|o-}9U7(8$G5 z>Ih)2EXVw2^wR9GC1XC9VL`!8i+=3`Hev=`&Vs0#7@W9R_r~E@{^dDsyNFgQA#}Fl zCkOEAB@?(lXd@&2b($L4Ea8hHss6X)Q~@1ku90Rily-LF3wmb1FW|;8#&IX5qu9_0 zc{$K-Njmp09=VazD-l;C@#Snsi*1w@QUbVVtRC<$%=X>#G~!y zvha4wNc(mJbTy2JpK30_{Nt+Qzl0TP&6Sjk&(O%)_fH^nLF6G4c})`P`(}tB8l(~j zp(paZmHxu+nK;Gj@4k3Ww{1diuFmtx8Ma`!$X#$Tunxi^#5&3pd-on67VC@cMJYYv zX7GVx-qgTx%?9=v$7O~GUrQZ>_JBEsmcCqX*;^P#|LV_l^`l0-JU`5V8jEaU0p34J z@Y@Y>8SR-bHlXy<<4w3-Q*00GDjBF?R3I6eV@a`9o)^m)!BTwF&&heCkgT8cY$nOhqE}O#Ksc9TwFLuyy`cs;E?m~;5Vaa9}^727V`0s}~ z=ro8+RkF^9m>s5^oMBA$0_56OXAZqaC^g|x)OV{cz0&l~5@Z5-{Zz}nb20?${UU5p z@e10`UnMKe0D)}t^3hUjOJb&!`mrBY#~ zU*O8jhXLc z8NfSyAek4WKz0(XSO;yLek5Fkx!?gqEh3Sy&{XwL74}`mIAaR8{a*l9K&iiR=E!|M zQ|IVVfT8SnvG@DRdi%g_5N1a@+=s3rpDH-ompN^S7msV+9BQ5EbVcyf#9+;?EW)md z4txW6u$fQ<2F1YRH4aN{+%j(DsWkAtHiPu=|to#G7T=;}2b zg=gK*Yc8Kdy{V@M>JFDoxA!A|ZYLWtpNB&c{p>b+k4S^QGw+T!SD8(#CLglW0C$?X zJbRIcsO?OBUa83CnlZ@EnO$phTELBsK$6l^->o?tiN~28Tb&NQFPFLkP!Y0>d&d4?W25{nwjZbHOt zDt(g#<~Se;`NBmFgeAmu&FbYCMK|AMScWN$1?dAs3-KH{r?RHI+c%o5{(@;nl?j28 z>Ml{XkI+zbYo>K(vdo4C!;w?XC}|LHp^_+8*S?2a;?dzk(|kp@Ko6*ceXX zfa~DC!tuMLU=X$ckf`9X=s47ZqJz$uNptp*wkkRh#Qkw_5*?+WY0}Ajk#r3Jdf_@2 z&PEjp5V)wL)x?V+`hFfa`6YYy_GzwK9j)0Eh^&m<^Bhz*Co$BH)3bOzHS&bjN=_2; zhLF^Bj-~U8kBn9l#;S^R4(D@IZh~|UY0tbr2=x$kAOPensNyTxYlAlGXxs@P63K@W<)|(?H>7z0393Yq zNNeuY#pNtF^Wu`AY5dY@utnPm=~;7ms(I&Yydx<6nmcyZQBVPbLqjn{+=m ztva5^u5gCzNgRsO{jiHH?V!tRKx3^3b;ocDlrH4ioxNbAazW*TLJ-}SoJ2)?@DP&& zLc7p3hLU-(V~-VTnR2GkXK@{?2fx6l5YhGE6j)pU@yaPsmu&{8Il+5izjV5nj@Sia;hA@rt+ljGsI>1V(c5b_M>v@C6`qYbf2F z*KhTSS`neZK@Jc+i@gvbM3Mnf3rr?%FOq@I)n3EO|6Vi!V`YF>$5d*AKmva94q|E@ zx-Wet3HU-qaI4SJ5yKB2z+hlq*_R5*e_;^#!cuUpuK*@<;IAYBA5Kj`0WL~_dA)Wa z9`MBP)-S{Z*Xv`E5a1@B>ZAKY`3WY0-aS1Z3+*S!32yZnGp%dzoM@ocMM9vwuqW97 zJa{M^A04*o|p)$)Wdy|rv?+gQ9X$-FQ;kgJ3=J1W}C%6Z) z5`uv?5v9R{;^0>Q^B^)1A3#WQYkNCp?YNKkI|V_nlC_O_gHLt?&dQUc;G{*#=NUWBRPcH77mSlS z<%3|e3x9#9n?LCXdUgz2`e{A`MCzi*lLxWxxBB>QDi6n*HQ#iY0{?(+?*vG2|JPYH zAJ}ES>DYrvc8e;w-El(AH(*`-VO80%+=Q`1S4tHYUS6@tslJ}V+MB~=YNqj8i_@Bt zH^G0c*Yg8(+75sD^N_biARP1k{R`Omji?TtSg1s~^GzzS8`h^^x_9GKncR{Tlk?t- z%Je?ElD)X;X&`OSQMtibSQr`ROZ^1%#Q7=@>7GNkt)MK*2@hfyfu{m0vLb@)k= zX~^79o2`6#l)3+v#p3!d!uccypgNVGq=3-r2z{kPJqR4GwYgs1oe%{}`a)SzW$uH0 z9$x=11QNIU6e2eYi*iI+=U2uJlB|$Zy1eN`lS|!CopK<8V8L0w&`T5r=bb#kvwz_`jWXBovJX8+%B)5;ul#j=LEiX z^v2BA#`17-2$>%|p=rK;iW=nXx{bpgq5|MbAXT0^PUY2cSdVeMz5et4F^_yHMt9s~ zWu(%P5=e>rW!~K8#Rg6dx~1Zj9}IgzQ*a#G0AMI7F+lSZ`D&4Bk{_%LZ}A zXF6xZ4nUM3I9Z3tH{`8XJP|4jP#LgPdFoh_h7U`X-^Rd57YGn%tCGmDB|rPA%J0VH z=OTWB2iu7bO~H;{bs#3D9HufvX!5u>mfdo^s3q19pEYC z5X*oyz_vs?>1dH{*6DYD{RFAYwa++9&Zf)dSDN#DRQZu1RJzlMqMVDS1B|ppB88W< zo~Y}yi)DpfS_H4bbb;_fS;vocnS#Z873(mnOgUb>Pzv@?&<^EmI zZ$b#U9|=Sx&FkOTW?E8~Klx2G%6h*O@wN5*_U7K_#cMMCc6L`+Z`0DPdOR&-kMQ$# zL-$8s&zd)|EwguDR(W_i;`8CDV*T(Y>c8mc=85cvWqb~qK6QU$c{vp1=Ev}r*KK0n zDSA9?b!FQ5LZ}mjN$P&qH11cqALX+?CBcJn=Si!RgpXP57J!z7q6c>730>MMv`T$ez(=zf2E^2c{?p5NWPcFwxHuCj-Sia~3Rvm=X9%uMKaG z;LB7)_I3^L%ss~&AY-ED3i$-aA_|$6{p`WHaKZ_ zWLcUj55Jx6WDIB1{l%jurTg`)GKaFA)OkFS@luZMejQ5aSwH*dp5?Z#7nLb5FJ%~7 zELWB1YCp^6+IUQW?N*L{xqC4`%In#yJnq-iqdvm6HWqXdz`0iW01XXnZ0o- zQz8t38CWjcy<8vH$D`~^j=3o#xrDfs+r6Cq_UXlS*~`VNuaWnsd(m$$(dR+Dmq+xw z_3f`~L6hQAPV;s%C+G31?4so;u1D)L`NjDZFkxlTS*?$a8I5tV$>s_y(~{ z7O!z=OA-Nf3OZN;@$S@TD8tv!@~yt78eG{bzYtSa`HpctMzODOvCZz~YyHpnFU*x+NGh|k zeaO$`BtWtwlghXHpYLB-EWdDgR%IR%j?tCHrt&!QVbA*Zz`(EsxG%+UIS%ei+KNw- z%P)ME$g3^V|2yeMs>)SJ*?WCpYZSjo>*V;*77u1RcreAnNy5mucreA!m>J3e52n~I z%fW-0WQg7gFCW~NmB&mXq)djWL?8{r)9FE$N$EiwZLSxTwg@rXNr;(5!TEtiuSJMS z(i75Ns$0o%nc`x5~$b65ej3UZ>Fk*fozf^=`AUcPQCF?vIP+O)i zjG8Wb%Y`2E!Gx&L6Dl@c3K*vem7$uX5WM{^pd=<>;1!rC?0@(?{kI)z+ zkBKot&IFh%;TmO62v+)G*X10TCV(=Lgjtp~ed&05Ce)QjIc5PQL_D13 zsskwipbyB?FJ6XI8LsnG9fVp{ZYoY@O(y5|@x)bojq;AhI+T*F13Cb$18Rj`B{HGn zJ2t6KR3w-lmy2%C{`BG3gFh~MV|0IGRE8&F^6^C@mxY)>4gqO!6On^R3E=HXS#&r7 zwH#HYB$1zbYiiT zvEuw<+$FnSM&xSL%Zi*5%riqbl;Cs#;{JgmRQ++xZ_mQ6piIpwdo~N$antKD9rs7C zQA%Iizfs4VoC1O)fPVms8e`gM@)dd-NYCZ|Ii6nMs+(Yip5Opf@|1ai(Ff_8h}bXm zyPL%F6gY?Q2*8jq%+=j}K(unw=zQ+XH4T1P5(gxgL{lz_uT;U;kCR*%{}r%Eu$(}v z+C)27i3xLpQI9MEV>YVjEVFZ|o^-&f&qR&j2Cw_$04*XC=t)L=dq4fo*B5L&393a> z}6e7dtj!g^7=wmeVEn~Q@fU$?$gRPoqCn9=kvy63l4J%V(Z}=tk!Xyxpz6%8H}2|_K`*Q}!~-q?>38v7=0nMRR&?(xY#*`AK#SY?NOQt32cr zz?P44#$FFfub~t+n(%IhqFmj4o!L{|FaRz2`;_s)ve)PIX`Uj7`*l0EArzr;;PKdg zg7e$p_3&8o^VAykMs(x3dT(hf$8`}xibe*HI#)3M2av$|l?fsd(?AeWkeWll*=K5YZlzXcSSi1Tr(}`PyY2N>~*+2M;Edo9bCz zAQ?q_YN4MCx)zO(>de7%&LI(l*^U$$8_S#w!~HMS^ASA-7iH3@BBH{_4-M8B()$23 zt14%&FG@{J+Kp`3(XW#m1m)=E_PAe<=Uf@C^e!b}D2Q7;b(PH#=`~G3Hn-~Y^3>;4 z|9UmQiA?9V_ULoD4(}#c$cs$)RD%Kb$=9;aP2d5$X3y}+QhaG>F1dn7odm!sS0AZj zIB*K6QVt!!I7#SI@@yk$wh?@qFY69?PJT-h86|jl`R&ck<{QoaMldSBwI~}J`X?1A z9Qa=Kdg^P)bn22rL;9A)f~$8`ufsVj6hp}Q7?-ZEVy)ps!|SU+5_C49b%8p5)d9xA znRj{q7m88S?zXD-$FLBtD=j!wfmQHvdb_kk@VXX0A5EF!atV}N(!8h31d8n8^!?q< z&aQMQ3=GdTyPZU^QPU4@w$fo8BzdvsxIKm@iPx2=3HpD39Ti`l8isMAGV?et;r?md zAg;~X=pz-wzarK+Gf?wJ=?|D!5^3!i$m;VhJFqu;eF1-?Ytn#fYy<*lZ+>v}^YlfK z-ABv&87)wIwCLh_eHjA%_4V`#lF8})WVW|*@I^&ik|_A0!-gqfmWyC)r@Tfgi#Lvp z&(leQzML9y?Yz(P^$=44T&u%dL-A6*t}bOaVrNvjxS*xUTgB7j zH#e8U@*xz@y+pZHmvc*Ox(8NLd}`NdLQbH}J#!7&5ag)z>G!+XmZyeYPJsDvxrIgC zG{nkCoxaB^Hp4yK_jC?X69WU@&neL4z~Lw~ukY=PX>GzT2Ypi>+M~N~@ic9l=TSf< zh}+>?M_DRM^7P%|uM-4~DuGL7Qph!DnrcDP<93FJVA;WW%kEvW$s**e_h_nE3Mhf7 zg z5E!5uWd1Vpnxk}ZuHm8$Zc$eTB<$1Hy`C$wDfr8>XDU=dfJ4-gepRdlR&IWrN~XsR zi8S5iI|YpAP2W3be|(>(>99ZG%3~6NBq@9i#iQBOdMXc~uT}UB>_+~%)fWSUUPXkF zI&tNtqyz6>w6;VS1VRl~KNUR;;Wj~Ey2Rrc@??;V9!4;FBQG7MFesas#^!wZx1&{j zFyI#obX?c!E?6fG!MAW;gBQZ_T3or4SPMX~#JMQkeq9HHAXAW*yz?~=wFp*JzRGlf5}RIM51_e?i}KX`oEV`3s+$T!Ts_rK4aLB?tw?eW@VM^x zvt%}g31sIm!32}4x#G-8_c+1k`eu)i9?#apsCE}YRuFUGs1)I#$U&Pmqv%eG!<}71 zB0&e}S}{bf;KaMCj-Uf0`j(odMAay37%P(Kjpy+>f0(L6$o&(xQ8q*orcS%yCmg| zhssH}d~t(KEH}3UgT%6(T$!Q4;=b$dN_G{pEjXMHw~J=KX(RVzkb~>~(2@^X(xf;f zZBm&VWmuYI@P1kQXmi2WUD2h=4-~$%VC`{14A;R^v}iIEb=9DY`Z_M24sd+zMk-+` zwhCRtlP+VlIg`9nNFYoaJ@2v}5zpb!WHCBNSsL`T!zG<`CM~fNyxonjLIgB$=M?ZQL>F?k4!}m zbe&~gum1Yv<=Jk{VWw}?dAkfn`Nz`X^E@@nY1$Eoqj?mS6M#SlEQR91!RWFR;UI>( zvht-6n~Dnm&>C9De1J_0Uk|#xtZ-0h`WlZ8sdY+(Ll8(GH^mnMn7W5;T0MhAo_rZS z&E?B!Vz-g!#Jqm3+?66F3%;bXhd{#-23(z`z8pTZ(PLd2>gK{tt0OX0zHx!-a055X z!Kj9EkUhYoB8n>)9$KTSGdw62=V4k-53yEv)`<)EdN|#te5CBU4+FrWf`tGPv2geI zHD(V%uT{)c$PomDSIm^&z3415DH6m@(p~nBSY>!nS5?>t_7BP&>?Hdx%7!Czyhnf) z(hJ&`Zc}Z43=Tm>*K^f2E=(FKAs$PG{Sl^5wkmHSK z@Rm^^zHA-J{NlMxnNx47UB1OCwC4yWl#9xX5ts%-&Mu&oA%kZH-?FI^gCMDEQ6q*>YMa!79133pf7Q0r6OcWzx+t>% zW$uc%j@%!w_hfc@%tMwdP1`HDwzzc-MHry;5?=D=(Ug``z4%%}`xD&Wk6tSV;$Ngc>{dP{@rn4X!OH2&dM52)= z_IA2DZmr)RFDD#`?ob318SE0EeKI{WOVjq)UZ83l>8YMfRCHeWs-w|TSP;cR&`V*M z{(fX&bp0&SO^Jt7&4&sCg(;EDS)2=am?ktTH|oVQAi)+`2mx0vEd!gwO~cy>hu3eT zVth7cqfde7>S2CSEv8p{QoC}$CAz}O0a|?Nij@HcO1~x?aXi(p2M-)!n9$*jWZlkf zRG^1$(&&Jet~707)Y0^-L~`v(A~g z9}#(PF57>7{zhpkdJYfdB>ArJJO{|oTaW2jP5=$c(|2Yb=NW|(rGo0^?po3G&ZdOS z{@cMh!~Gw0hI|6bWL2U_2T1%bfp6W+6V)7#*i;K+CX1NwlFN3;p5PBGAdJ9pwV<4omr!62=}8suft9S?btR8jsDGO27RG!{?iZVDR zlFHemsxAqem!>|wyOCeKD|EVUaFSOKlHL}`{+J?;P&+$kqh48k1vbsOLl(G}I}TZ~ z5gmcllo5 z0`%Qgb@dyhSM<2MtCKM+>VIjvLAsg?I+fu(3#zQan&(sd+qk|_*uk?w9%MKg>|x5w z2i11_-Vv|eF|U0!k5*+UU~1(s$b7s~D*4$W8IVVV zb*Sh0L0Uk^2PY35cz^h*ct>BQaJDLi4@mFrY;)jor&BA2De`k(Mqpk>AcgH5S3Ol@ ze!S7A#L=KNWmbdNlsZ31Gw%4_)ji%Fx4t@Cg@i&)6mRn}pTgx^1HP3<5JJzL+(&5W zQDfvbGiZo{5i0r#%uQNx7rk!q*gvU8Bi0gOTr9=%-|}_&M_b=EbaBso*dvkz2N(|6E-INDMZ5&=xe9)LVV~jgD%VF8Pt9 zSv*gR$`9s?W01K5+w0MT`}!n)+}VgthxQKIXpxTFL05omwyY*oZ;;he9O4HXluFOD zgVq2J!n6rjBPP9bz0rVJp)H=OjF3J9w{SCwvzpGYR>fhB4TXVOn#iPS<~+Og-G2M1 z`vBf2*d*|t14anJOveG>bWkc>#Ltn5%2Yj;xkFs$$^Mu{+i8+z$5RrUNm@IBE6`Ku z0j{|zENBT0xK04B`BE4fWFj@Bd zsqwOS^dUpO!6~g}k>)+mtiQdSBHhElup5Y^6b2|LiG#)D<>=+2GS8j99zwsd7**6E zM$=`AsZ%yW z!R3b(o1wwMVQT=E!ipXaG(Em&e>BJ2caFwJtqooxW>{0J%evm=Xo1$2CPe`!JwO0B zw;k`}d8l*fekiNiQ!}wh;p>ds(gI0$&(p$qIGoB#7fk}@D`#RYNnuz9Gy`6ho}A!kHU=O{M>BO=>I=EQZP?vI|Mm?QXe zGK#YtZiKg&>;S3^Xgy-M6q;afVP2FV!%aO4Mq&9MiF*K?ou#S;2@#Bm242I;ap~0F z&+?#;wsUXhb-}aLI2@A{=Cuc>J*cu)mL|U z#KUZSeizceyJF*+0I|D*667$eOtZjoeSBJCyh1Li$umJ25GCs@U7sw=70i)IOya$~ z{8MK*Lf9ipOEg60_K0$2+&vS^jB;k;Le|ZxBsuS}?1@{3r!mpkoMhjx!URAfp-dD# z%p?|*a;C5ER%6z~H$EJ044n3*%xWnR$bDbrpJ%`BkAB}2%ALf?cXI0_Fk)c}Pce~R z+rD4lO*iDV*EgaSu)PDGrSLwFS-=8lR4a2>3nKE|`9#8T_;{mywh|pcbqel41R(MW zD#=Bzqq;v{&-T#MIEjUJ?HR7bDm$2S5`6*C0hKGFdI8CgT>qG(&=KG!8}7JdF;hpH zI)?;vqX~-vH!0%%$o##(+%@?icX;hoe#$zhgqq)E3=BPAn2``jGJ`o6$8%ZP3}- zv4R*3zOAQCylliyg59L=bWjjYaDvj-Xzcq@f{ z(K#?kU>jBCq>PDF34YOVW#3LKb8nd-k_fkjhxRoQP0>tebY>!immGbIjURfPKo3m& zLwRyC2Bs%Z_-C12BVJsT8`*q<#shj^ccdTY1F7wzKosbI=z-PCSPWoy6Ecu7yGd6b z$A=Cz9gdw%?NGesPT+u`;IWFtrM9 zax6XM@Ip(XFG=B#!fX!kwMqKZP1l1`htd+~1k`i#60bisHo(qkrIIZlleZAO90o%{ z#A|mMkPx8o@oH{Fm2ntg(q!k@!)adyjmBbue{UgDFqsiG7gm~Sb0|+{YDE$a;`yNt z0hN-<#S@RB)>6w3@~oNVPWtjd#Gn$HnvY#!=QeJJQ<@wP_n_Uv+)PZx&LG3&8lTLy zZ0a5;?>Ko!NJO5zG8v>#DsyTB|LQRHqN#j_@>mShrwVh0p!-+d-c`*0bS{LXvz%D2 zDl>#KWvUP^*5?{jT~_;}=a3p-6vKrSg;2}FVe;@PGGqc`s$GUh05#^(peGxWx^QYUgh=gvwANrs z0oGmY$*mi0N|i@FcP7eALUYhrqLX758+Pd2T!u1hO}vj&n?&Qtk&289h0FnBb;Jfs z{JNhhiY&ZR_s7SPnc&(SF$+LpAj)NB-b2Pxr+o>oj0{15^9h54yKLg7f^iZk`hYOL5=oEJhgn%k%ZXwrS5$Oa}a#FSz z8C!6h&?PCU0puvd|FFKI&bOnCySeraKF|G6oD`$IW&H9c~_ zOjI^9fksrOqJzE9*6)wEI~0ALP7(d!0<1L1tCD48z|Y7Ake)=xNyG0y+Wx3dPM)Fj z;~}vKWcE|JNk%9F!L(p?V<(oB5)cyt0COvN#&70O?o1fu zkj_AsZ;}8vy@2IgeYv&?di&rxlZbA#@_|3#>?x(7Dbfe%ZJ>pg6oH|WZCCb-XVvmR zj2=9nDSG)@-)$(*XQKHjkVK5mcP5@@pbkma5ZasPrzM@1an^OBia?yOj@yGy$zx=K zF!@l((-b#}lrplZfmDWG&Dn(i%nX*oaIR69KSJkIbkZ0d09O}2G>R(i{&r6^Ivy_< zg?Ku2A{+cKLU?usV|zL{ZK9t{qH}e+AbwrYO_aG3haY&CMY?xu{(gTug|G6NBmL*< z+TvhdmV=+_=V)5)Hz*_DxbKhpl%HHz>nK79G+~#UvQo2f0O&3Pp5oD4RLG0+Afg}J zhlNFgl}P9U)^PWc$7bh;rDIldr!Ah0Quyq=a#Pep1ezsHGSW1F2dZA?LG%N9gN{R^ z9jjO8vEM(;1>4aUB`FD-s$+P-PFOu(vmXxdZlD2mqrxl6SKd@U%$EmHSK{k5-5 zL3w$@blM;I?y3kIvjh71!s6Imtlzpn>N`6myBt!HpP(VYbU?X9M}fkfQ=DXYrD{0; z^jV*MIGs^Pr}#9_W96U}otnp`11z`GZip}^v3#!&%9mP%<>sLZn>~Owg4lrS)>BZyfASbJGl0eYP9EBpfM$j|s zST->LG-u6@plHGU)$GH99yHh**zT4Rr&2#2~B1xi624)c}|Y#68w3U5P48~FD5-~G(4{$ zD{%sUZ=T2)c?QPDGcftJSv(KT4=-Wb48At$$kGU`Jf0u5|JhV#uQn!pNbR55LD(e_sl3!$;I6qlG9 z5kYa>_Io`~WmS?-r;>#*Rq>r!`Yg`^&eB9u_hMu5TGwL(P3mSH&eNd{iN#JHX>2$O zm^JlbQ1M#VnHe~xVb>MGCh0{?PGV5CA!7_h-lA+n>~AdJ>N6WhB!-v-Sdwt+@w^rw zlUWvFI$pp-0`t^C>_|gl;>fi=XRD14bwYyL_-&y9# zJ##gPuBz2rtlp10+6GP$o;n4E3r^eNCoLgx ziTj60HR(pDKH&Xb{a~Rk)N^hkMn{?F(L49ly+8LycaVp8`h(>-pqII6z>*Wbc2~1F z;P9#VL}K|?A5!(EVs2uJ#~KGmQ5IV|t4lPZh>%fp@l#9?QaL40#jiz9#4zox3R-X^NwirTP)Edd% z04)hYnf!FiI)#zyOczkd+(9`@qSt%*B6MKkV38K zEV(NFIdM*tg|hmLp$Veh4Fd>g1aTvmZX@CzFTd!8cONUg>r?5GgB{eh-*{M9DPlBf7Is#r_AG|)0C?-b;K^- zs>PWTdvccYaU|uF{Qp*;?u|sBDfTA1sL4bZu~2zCeWtjoxA73UICKcutu7lUo`&As z-7U{p^CHgE(4*n*2H1yV<;81VYIPz~g4PzM$apBSs}6D?!53amRxsE4AOc|M#Qjm< z)x_>@4Z^{v*oSfwJiL0sARa)VXV>(_3s}C@XF!kS&QRLm`i5onK^+j$4qW@tH7bDF zHGskV4s0WJN;9IOCC)rXbMX!C+g0>+qkfmOD-6CtXV*89D>xFrnaK;;iRzaAHj|6q zyb2|L!&~s^#|+u?nYkPr^&_flk^G5J`}pP2wY4Fh zISdZ()Tke_9J6Lobal4$68dSjAXK?9H# z_wdoc;QW8>ear79$93L5f5pXQV=qM2`vHUjq-z;mGy$(>p^d>%lsPah2_zFc|9$#< zR6p)e98E?EybuUTQ@`6?U5`_z&htC=p{>*Ed$YEqYPD*yTb+chG2Tx*t8U%i|E(%( zRUKg6N;G6PUs*+F>Sj(x0V)e&>H6O7Fb&q&v#W%)NpzIDk5apzq_*APZ$zP)can`!yK z8p~q|%)=>?WF4(IQ#Ks*E<77M&YIIA60SB{CX%IhBz5+Q*lj#Wnw!iF@n5hc(E-O4{wDG zjmNKD`#RRfbu*wM^s3Z7DQ{Jh#qru+YHo3=ZEE-af`4bgxN6a`nKhc~&)Y^#k>8cq zSc<_*!F0w{kEt;{F%|!=B8J6C`e+v;C!J^Lw_m>Ottvbh--%-T=IT%?r!FZn70?ir z%*u3eY#}^^*$BWef;%uv;Rwn1B7X}^BF@cLy&+&D-fK~0)t3SNAhYdds5YQ3;2KbS~j!MtnWi|Vi*-21%ioUwO&!HswQXG ztO~wv1$&0f4OXiz7AvNbFdYI%I|J`Y1W-@4p-tUqhw0wN^Hj+xEhp_MxLt~tp39lM ze3R%nxcT%sp-yEdcf#yKAt)uYo+~lAWjds_w-0|DWZ!assrE!gJC+uPF%SJ^`7N^&KYNw5O zR~QZaWIOtUvKe+|F+qc#YAe@zGSd>zC%dM&m`NCxgc!0+lvX|~`cG1cz^N#fWI1Hf zUX{?N5tv*RncW3u>u2Zs)3JpuaLpR#1i80v%47IrmZ1l2cRtKkxluyJ#bS=;BJD|Q z4~G(}VR7uioFI4SrMJ)cxU$_BxKp;r1x#AzMJ)lncY2)BuZZn+Zw$cw1 znrpzj;`y9M#rb2Sw)@A)pvq^qBt|j}p&iqZX|m4ZASU@F66~xy?l>&cUv4g`)IE*` zn-Vn6EbOG1e759ZB|z3x-^t{evTK?rjnmeVZoDb8c*#d#iyIl0)?6@#*&b@9tUYM& z)EX2u4dWUb5kRsb>zPqT4M6L9Vuqlaa2<|eNy7;%C@(J zU!@IkEgZ!>)cwfYeM`7S*U9P*p_ADdn3y~#o3a#*x-QntRB(LGP2TEtS~^U&MMrm+ zDBaT*+jRJvN6)1X3JPG1^E7if{Gc#hfv0avAH@o z+wt+Tx7*8dEGI?v@~S^EIx$d;Z+d%w@?jU2W;QE(;Yz6%b>BCFZf5AWl!M+kJMJ?QJ+uN(xHL_4bZ# ziPO|DrX*H`mw~!wbSX5|lb|T$Hu+6=xu=k`gX*go&=@ z71^{y2xY>mU0Ed!$72Zcj8U(DLZ6|oWo zRhP`0!eT1cM8i5o*X7?{mV-V~E2X%9m=7e!dse+DBJ0Sfmc)chv!*lzDT^=$YidGo z65JNm3k=9QH#9ctoh4gS3mPD$uI|!mc9$}lR2V_o;ylrArML7IO&eF!Y7Fi2$p3Fz znBbV#r4&)ga#3L}+>mTbSSf_|_|`94XOel41Bu%@eav9%xGfvk@jCXWe8)}H9En$B-_hp?c$_MwMzKG_@ahk`HhzX@qpEUj6#iO%FTDFBRB`=@{?wIPXcXfd!pKK*;^8)Hh(B~4?Y#V}( zHZL?Qm_zqnZQFff27o!nBJ)SJ+A6iSA2H8l-$_6&*kJOp> zAlgYyx`H~>nCTM2r15i1YQx;Y_P9K6~o4|BZ5OjEIil;R9VSU!*mHU%C~wr}rqgo+)8uv)wcYy%H; zMR+D{Qk|;x-R!Vo`}RJKY64Bf17PdTj+Ua@X|%6e(aMhKke531R%e7t*7MzF-stzK zp*I!MW$MY45)rKC6;Hfb@#nZob|ljLY-H)!6sD6MTG^3AoS$fcS}%YDAO%}Yf$JtZ z;z}kYuftNpamuT#FT72olG)IvR3ShM+xr(GF0`sdpp`TTf!e)#wN z=h}Y0xIO)QReL?|=uD(kvb|ioMZXt!H$0qTpYZhaH2P5j2+d9_D~yH(L!0J-rCKBg z6{AUUESZlkD-=+gK>@)OlFYcHT@`}M%m&AW9fzd20#8}ei=ouYO*3RvM;L50K?Yp09F`oc4ZtoGbtuo zDsE=ISGGf|sKR%mF_xA=I5?nBxF9jjc6eqb0jT6$Hn=TrMQ(c(LN;#A;eII#bhDwT z2wBJkUEQ~$OMcjf8r7sFB&be7LWID+Q)w!eD^*cXnzHs&28e2dC?SEs1DqyZVjPTq zo8NQXco7HVZD!h ze&+B`$P_GoC@VcBqB>6I>8F#qA?L+%ytdQ3-R(Xf?oYeqfFihtNwOl<_MxOGt13qb+S#i~tcnmMAt{#XE2Al*JfbIcFw+MfNIXVot<;7(%FQ2!Y?nY+Y zeJ{DU*XcgbLr|@OMwuVEylXkV{Is4soFT2W&nQhdIe{h{b za8$%UCDSfXfX-m11tA+OIw@X(g_F_>gw9G#Np#~rW%u_9>W;eeNV##>ecfIbf-7?! z%2QD^@l;2$ZRj{+#m9y0VTMC)W8fLmTat#u1CA^<4L*~bG~1}JGu>W3Z#j}`51iQ| zM0LhflpXcftAm6){t`b2CcGAIH z0k_3#FANRUaRZw!4$cpY%~GabY*VPrkj-^{MH#-4^;g6frwNjCFE1oiOhViPUfSod zHAyYGXVkmK99G+Nh+T6`T}OzhB}E{9Xj3g2}%7!9qQk?uYljoAE8$peo*IcDR3i4d>`y!{NQsts@oP7n+UQ)w3(h z`|jB%54T0Nv!5qJ>8ezUc39Jkq6cz}ZjY}mOo`B?@)YX*;@~}sxBBFAaqSaJa=!9l`skc{ zwY@AhSN}SCg+B0m-GN3W%IeUwQ&<#}kQf>MJRJCFQ`0PROOY0>$@27d`=nhGi|y*) zy}OdMgUn9{aR!|>P8;z7HtLcijik zKg(>6+iGUTgE8v?0kVWYl7f%blwLDL zedCBdnx;MyXUo2fi^Fg!qeE=rty1N>1MyNou8QiR8OJAo>hb2V8{Yiz6mBmo&80tw zZhtE8P(@?O+`YG_<*{nb0Lj75L3>!keaa9&^t3W*SaB5JqCNP!EZgnND}Bcj=A^6E zRv{N;LA&~zpYvE2s#RPy!P!Ef&Gs}eA%ixe70EKSqwP#iTaH-k;0(j)!ExG?k*07E zHTRC3YFNV6yRwI2MwBk8km+uFJyd&AKs|Exc)NBD4hyA}Eq)zZS#R6RQqT{39nO>Q zcL^jkD3MKw?Fs$H-gX3!V6y8Ha9%0*#ay&{IBl_&tnQ<@7%8e-b}x=SzUtN6i`p$G zZ+7GXolNPtF|ymu0UlJ?rd{=}DMO!^H6c#ow)ES}TEPCv!vl%*x&AF2-841rM4@a_ z!Px)(76Ry#d%+t|Y7J!%$3@1~;TPzTpI9$HX&#`4qh81Ld*gf$h9Y7(tzIGbQ<1Ni z(Nv6vuFUi0=lZu0IM46R%Pi(wcqE=@uexq%#&@`5Qfzn%ad+vZ5(r1%_u8Cxg$9d$3 zABXdM>gZE(bFLNKUfld5DYM&tQLGkr6?sY3CYLUk9+V=xLZdUb*i@cA1slhQz+{b^ zwfiJftZU&grI*!S`><<|_kF=eT_^jDamw3;Hmh6q>D&%^+>zo~%yajpN6@?S#&j)2 zhnTN$SEM>c%L$O?VoSbGRE`I29=kdOH`FXNR|&^)S@^2zQpQ#n84=5&)nhjMMS`^Z zqq(m<+g=QY>^pfdTXv1r2_+CecDf_Ph`qDQo3ibsD>MsG5;RqHvC~*pSQ}f(JcnjF z?h1!MCKz47fhM2W9ncD4g3d4p#145+?}WD9w`Sj}+iag|W^v)}wJYm-ZC=YMrVg(- z*IMp-=dGpV4k~`18UUVW|4z5=!YtulPp@V)DR^}el0;Iey2F?xHXQ-btRaT%M1iik zS)JV99Mig@)5*Fx5EFTZGwLWkt8gq6=twor!>#h1QIIIwC*^Y{-YiU=zu29z&&ARt zzgL5kNh@{QXdReAXrvnlm#?y>H#*zy8?(-oW-4}}>?g&zfctorsHtS9{m>Wo6!Yp@ zRoXa;b62~Bzmm;dRM#1-acv^mMJbPt;+N@)Ea9M_Vq4C84V^LG0q33{c!{d$&Oy1OTz~A0QU&^4`IpZ!QBu;MMwlDPexA;5gI?J@7bQ@eI zDyBvm0_|)MH8SAfP>zo5hhG-$+xzU$z6+p*;^NN=bAr~<9p4~Ni~>c3QO*77+g~vyBP)F1jo)YRu>Af%|3V2umeyI$4NQe11*aE+3i$q z|18#WIj^!}59(*`-K|<5_A05p2G{+utg$bZnFfeb*W1BQFGD$!2WTDZBCbhBu5eTm z&x592^7|=wIoLq4XL7C7$ZFH2Rpg$<^Fa!Xj7C$CRXB&iN-&3$+p3aD(XSVUR)f9Y0xh~uy`5-njbHY#z;%Mpz%-fVZ{;Lh<(D-(f+w2e;6R9 zXoauG9olR_fC`Vrq5usYx=3J`omsDK5vOV+me}`Kn$M<&!scj;4`VZm6sh~=kCnK z(fhvjnIW?AdrDsryd{~kEo)p~=fyCVAXy5CYG=wcK_Wr-X2{m1%y6n+ZijVhEFwr^ zQ6ci|aNhf7Z7++5)l5FbL5P%yuxs|=hoa@rju=9KEj~CL$pS>n`}^D;D@Y(8NoZW1 zB=0>i?2DQlZz%_|(%|Gxn8k;B#oUoI-r72rLJ-J4wq|H}-&T*IW{uC&ah%M_iyY2} z-@aH|!C0(?E6qJyd`k`$$#(E8oGZoICPN|e^W9v*!;zzVnotvAey~^7HpVzEMuH$D z@RS{@8XQ`ft-in}`6S&^`%!5J(q&w+Mnhsb&ovy++kIassa!{+V^rOyoisakB-tRG z`wHoz%^+J(j#kUFlmM4?q{+obNdy%y6AaqfCK)+Crf&>jlemo_}G%;qv)l7?}iP~0j0#st*F{lL&et<$WB`8wVPQ;M_go3#&Eg)m+ zFjXa?#i=ClWMMZs&m}GMQ}pi!wZ2cys_{7-j9y`kQDx((GEjb;k`I$H<{$!6CSz8K{HBqbALd#VaLWi$%& zjN~HAYg#lOq%0wqC^1!ALMVt{XLwh8`MHiiOQrrWh65qCJds#aY&UN@& z93l`o6*(nKP(cJ01;&$t94iccW%P5A%-X>*7SnvSuwun9n+dBI5=YTUWp#B_PbdzH zvTZmxHUy?2KCCc?RF@H9hyyoC0-#sfSuOZmA2Ch~g8U zuXK-79Aa>W9GXek8$2&X3+W)MR<*&?qg?_1&88G`vQ#VzH0cyh)?ByQk=tOTU+hn_ zrc6tEQv5JDvW}NcF$@EJ+-YFD@5*oAJbwS~yYD`K^Y7oj`|+DMzx?n2<-h&us~^98 z{O5>|S4I;pXl)I_oJyqoz?RG`0B>Q{VnoJ%gCw~ZuSU5EJKe7O?+p)O+^&kK7H{sX6dRg8U zguNOG@&xRB*r*VN|91Z)k*9l0f@h^Yr=eUaN>Rl9-?PBDmH8At+K`RVAoRB)Y(C*& z<2}IoG$Hymb);|A{?_jWPJ(Y1NDb>je5Ifs1^XxjBOZjkE_EKSTxW7j`hR@))z|;} zGUdv0Az2cM8VVi`l5 zZ?O|k{UI7ix);UuMd+9v$7BB&Dv6+An0@j5jiXy{sgcWD5B}WQQt{vGG^-+0$g`s` zvT1^z3P}e99Pbbo|058RE~vrnbbJMjPteR!E`$d4AxMti6pumt;emGN#L3lAUZf}! ztKeMWeW(!oDxpjxCoRVsYW3krb>9If9ax4+TChZ9TvaiZ5sz|bERfQepoPbo4BVWI z3R@CEp00EMz(OVN!XT|-8dbol*wThSf#}X>&dzr7-2Z#?_~FOz|M;)pELwB(7yth5 zcRzmn`J43K$H;Yh)$tYA=~-L{RM(^3W-L3pH>1GdIUpd=b9f~Cj^rWpgDwXkmeQDN z4A(83gzk;YmoH4A&m4dCk(0={k$Vc_XzSk}Gl8hF6v_u@7w5R1&pzY(JN2Jr@jhy` zDulBK*(h++YM1G|R}QBk%_0iznpGFFvOs}$&H6^yw?C2i2ola|$h%dmY9;kd=@Jz^ zAc-`?3ZuXSB$ftaeLN~<0do}Nbj=0$O!OOBTayi-4yDQS@?hUZCrX0oeI%bqju?00 zxHI+pd;4SOWl*1%<@UaJ_5lL@PrSe%x1yl^HUyu*oOd7vL(!eU2*#oo!iK66Z{V^4 z>zCk|diOo9`;j~bw?$_mZK81i>9sP!xK97A6O!4_ed6Z=^yK|Sy+s1^7Z9P|V(qr$ zhZm9JV;LrP9W|s%9$&!i`Bp;9`r(s$?{Ld>L?xBLtCt~Cd7l7sGuN-5^oa`De*}n# zt$zU_35%jI~Db zzYHOuqL0FLO?mQ@r8%MYGy&$J!Xq67NgxJ=HEt8pFPN)8iBW}W46rNh&8S}iev7Vy zn@q5ptj>ss`&0?Np|0zgs7Q+>5&>o-6y$gsg&?}B$g}FwP{?^mvh$$|Q>VTO^2(OnniCbGT_9+s0s1vJ+3?H{(i@w(RM z+5FXS@ZZb66!5^n%F!%vFNbo0T*%W`8gKZ}sll_PLRaY~0!#2YLKEO&l$&CuSeo8~ zi#?*|F_h{cU8-X8q4GKW6`4lt3Q8Q1iyz0JepWeEnNAjBGA%xq^&&vdb-9T?Oevq)&AHI9{hi|_A>QA4)`Tmdp^AEp!9i0|3WD06PT)?aq zPFI|p6ug=R(l_e%;YoxEbXD>a6i=e@N%$+mOBKWjX)Qt>2K)o9ZAsP(Yi3bamr|Af z5?49WCc=rtOL-868jnd(i|{QJ;csy}@l;ajuxcm?jU4X}srsRY$3iX+@S?KPGXAZd z2Xrf}^q~kqrb>zD#<6k;_PtWeGI_~-Sj*D4p9Hy{S{L5l+&gYDi=XM(RbTr!lNuU} zFr&%h57%A!fM!y_>_QNDsvSxp${UU2xAa)77XMAWp2UMEP_Dv?Y{d{maK>OgK72X; zW%Pvtz{E5{2*G1^Mv)X0Q|OP$m|V6sU!wIO%9wM?JQn(4>PQYhgt~JmNDJML%a=)x zC{5hZVMQ%<#A{bMV&*zcg>}Cfz~Q029Nv$+E}*3Js0}~~p9PRb);o-NgbBoExITto zhLj8?BmFwi_wf)Q9-4CQFEq43Z?I?|4j8;nO}NNB2o6e3xya;-2{u(^gHGXF zA-KNRb?E;WtMJWt-@W_O58ph#{*TY!2C2sdq9>NrxLxo|2ac8kW zhyq+_UV@VnLL^d>{w!D_kZ=)zDZ}6=LTZS~HU)VE3m=47B6@23R3=84WoSothXTQb z+DrobYEj)0(<`V-JFvls;lny={QMB6rb;ejfsorn@T4hPSLJN_hghDu5eThkaR(0ngm}?V()__N+g2oBa2bHjYRlln~}f487Z2KY8J>EWChF6LqNHLH>ZFz&YfH zFGh?3S5=~<3Zo;q5vyCFy0ZMVEOrX1S2cbqX0keh_?Ga~RrdVJq6w8H(IYQTpboIC zcw65b2vaTi@M8=k?SlDF;hMF>N{*2A{i{NbQ~uDT3m%4PSjm-5Nao)Z6AL3It_W;# z)MbQ)=(M-Xs_%(Y^F{@8eXKH88uhJde+>E<2%2}4*YrciR@Agk>aV!cJPbBd6|Zra z;1dS>IM?*c%fFxRE&a>JTsQ5uo$u}Sg$!P1bDQdQ3C@MNE!brtZwvgg_Loh$?$vD* zFPnRA`Hd7VByuO67qVIe_d+a{e)0P7`yc!A=-{m$Ud{I(>2*6M#PZ=E%T3@6 zVD)PjzQ$2f{s`1TY77cXMU1gIOqEdYGX>{CQW4`Qpa;}~sVX2%nP0|P3O$29r1P5} zI&MPQWxzDc94PXiwH~_aA&@?n-bh7QDkCLI>fM`XOv~GcmvC1ThlQd95gfx<2y`~*F!g<>?@CeU+8_ua{ z(?xE(3q@+o4S0a`>(GV8bOL|bb?)Jxd}84g>QWWZh60lcdsoV3oun^Tca?@4yJRD3 zBR0HK5)nusjZk6`v*_RlTJZVjpFR_Gp7?rXACgtuqx8VNej|8 zbM~{!J&Z$;fn}D-Bi4XM#QD3Q&)f0+@-IB*x93n#+vp)lSv@T|Cm$~2_VSI7yg%@6^{cGM zqZaG4acz>~2HIGoZaM@>W$ezkFPwJYtQcQ8ZPrO@JUdYr)a#k5)u+vp!n!$F%CMK$ z6S#W(fV-#Y*hP8rj-z=N%Gz#^e4w{%{30dr+mY$BE9^7nZ75R-(w3shyVAu4v#U5z z5hgjp&DwJ_0DPpiN9%@zR3-QM#%-*=7}8(oE5~}V9#SBu`(V#617+MomWb%BWW~5F zxg&qL!@p>#e`EH4WA=Yz_GVpVL0T<2K(f6!&RHd-y*3xDsu~!c0-0@Y{E2~B#UULd zUAzKWDRsgTCpNcgqQK^p$Epz^<5d%mH4SvKe?4gvEwb1lDsS3y8Vw*RdRa9YhIJep z+cB=e=EE4~gwSY=L@d$gPH(tWvCbh}DfNV@R0mahd&~m9?AHfNS z@&}y1ISWVb9oC3>5Uogtz$b&*qx$rHAxZtr-l<$V14?CCvV~SEo-*g9&rJN<>>5=; zFj##ZD-V)Y9b^yS*10^QjPqDc<_0gK`G78!SB+>Y5h8|WqdGuj9*fTr1O1^ibveAc z=q8d{G|%SBb}sMoSGpY?jFb=KRBWHp1AaVne_43kL5#F{^*Y;XILu=gr_phv zR;xv?PS$ej-itjH_-(YydwaQ@}MIfS+S!Eh9wZJ`6gwRw)lj?uCvMDkG z%HxIFev*lO{qFm(zq1pJP&am?5gg~usFHT z$Z9Ktl+&uy(F}Z9R-H>_wld8yt9|6|Wr;pcy%RpVixePztf@VnC8MPXPQo$9YmX-& zjzK0CNDLFO`pQK&I&>GBT%_?6upmMy>Han|bDB~K7XAflQS0KO4~h|uV|Aw-Pi zS&eh)N_7M{n#xg*YA*Psr6DY0i5hk>?uKByl+AP!TmCFxX)!Y)`9iAE$=_>D$?$Ka zezmmyI@RBNtogwJ97filg`A>rWc_NxYw)QL*qRr2}j8i@+F zq#&N8OeZ2U2*WP>)*VXr=KI@9_SpM3X2yFne;JR*uw6!G;8yDU<>g4>AzXjS> zSBhFNFqzBi2=z|MrLy>~Ix}2fMPxaHIZmZwiy-+Z)cnqr&NZ~3%wGEbo3DR-;6|O{ z&11h!cg^>V9i?7J?mHMK0}5+sK}o zaXc$)jqT58R7t3hN(6=e=uF}pXWQR9+LY(w0}ir%J06`?R`&OS=)Nn=$b#90x-TGR zwq4T&^a?z<%!Wu0@`t*212(@49WT@R?VnxWwT`&$LO$0qk8>Rne$REhLD|UX$Ab&VpzFGs&FeZ2C)X;cg6tqD>OmyNZkayK?Pc^o@8+ZJz(Y;@P%{t=qeG3_13|&`WFu~Q zUtIB& zf_w!;&Q4D(5dt6gAa(%DJkq2HM8US*$Nuy4#MM3;88qQ`h>rofAj;m(2Y?d*i5n15 z`w*dR2EtsS7D(ElH$_T%V5I%YQZGc%=qyA)ydx$f11h*Zc#AVD7(wiFLvHe%#xtnx ziR)>qQUtQnagi1QyF@4iOa)hBIRMDFm*Ib4Pgy_G>D#*`j4ZL94N1{(PC-^qs7`1D zt=G!!etu!+Bn?y+sN=D&41Rsk63oEoP8<_f(qvR15qUO3EGYtta4U(mq^ytbL&CIk zvf{HJPl8S?eBzxT?jyehy{vQkA_%-Xo)GoVihuhO!~HS~!?Iy5Ex3>v@u#S01jh|# z{{XmYs}PbHOpVIbPlW9hk~WN>xK4oYLbE(IIYvg|j8`Q2$4yzAQHi&;JP{=xpars{ zeT^9kRh6}{pY>8rPn9qn+hyP%KWm~mFST-KhOmpKVO4M^QrbQUswY%v*gjg5in<@T zEwkr9NgDb5Fk&zU5V#dP!()vFsn7)50bMm_ z+6#Y>K<9*@WO4iLW&9t%0Q)=$yHj`m)M5Qaw&YHR72ut4q4h*q5G1X&={BARhXn2! z+Pi+*P)`{6RLJ1m>9Dbu5fU6D%{>ixao~UW-p;v^)g6>4PSBJ_EWPJG4MJ<;uTCZ- zd|QKGD>ESv#^XkI4!6f`^tb8XatQzY^a~LWa3}+U*t-f?GQA`*=L@(CY)__!HUv81 z@kVVDb&4OA7;9L($+Ec!|D<264^jdAj|nHFcNV{3a9XD_3ZdYEOQ6GrfyLXY0c~g@ zJ<^?95e$yY0Ew*-=-~5XGTv?QfAQ>p`7itb{O+6I{{Yj}ckll6Pgsq2`*NTW{u!}n z{~Skp^CCv={5+g8lv=MzF~3~>;ottmFMs%7`v?CIP)i30ay-TL5Sah~fSCaRP)h>@ z6aWYS2moq#sa60000000001zf0RSlgAOK-=b7gdMFLQQhFJo_MZeM9*Z*FrhVrgeD zVrg_^Z)t90VRL9Mb9QG{R1E+JD70E+kqv=ld<}tQb$AN^0R-p+000E&0{{TTz00mF zO>&(%@25zVCfx&WhTlB|u>mO|frB{H8k~thk=0~D#S6%iD7}5#x0Xj{M(m$OLamng zgLTq(-27_SWoG~8AO7oKKK}8yfARaj`jcPfZQFkJ_^aRi_AmeH_h;+B{`NQj`0xJq zzx~Otw#WA1PY?h7|M~6je)lK8`kTM~o8SEE@!$UXcYpH_fAXup`u*?!?qC1$AOGV& z{^Qp_mao74`@j5SZvErSwP_uIewqrdwzzVu)I{&)Z9zoNbU$F%kG zA5$6s7dLVB@fUycs~`LJNVRRxF~0I6^)w%O%tsnEfA#SwGcJ!=k2F%%uV)%PeU%c8 zUi9xA@!&}1Yv$GHZ9e_0Ro=DpYt-{simUond;HJ7@wctVvomhawe#%w;@Z{i+ zxXk|8<36tNmYlXnqw6`Ym3TD8%eMMZ5BL5UF^*i~lUrQKyf-(x*6I58Skw9QT(^I< zJ^#c0@5ZnGIOhB}zl(MFhu=K@JQg_~sK0vr`G1dJW45pMtHasO80Hr`jq*VrFp?(w~t#uNju;~0DTY9rAe@#5H={cFp-zsI(mj}fDb zchIh1@%K?<_f`7S+gIHW+LdKVefw&x>sKDD6<@3AYg2Ed-J@ONZTq@=#Mg3-+jiRN zizVM?^iJ*Q_I&iceiglL#M~WyXR_#Q%x%xlKBM!A*K?+7Y{&UknEMn99nBb0*<%;S znf)5&=&{F3W-j)4U3vD}zH-{RzJJ9W_7acN*T0Uo`?BOI(;>(?01USe6< z6}io?nD4H2;rfVO5%0<|l0CYb_xv^T5$7l7wYeSpx#t*Q=KejVB*p#gmgrmA##i*Y z$3YzIs*>U)&L{1}AuCK-^e@Nqa^y?NtV@uS_)Md{fAxCs{$6OuKG5^=59?mopL^Wj zylczQ%=eAwX~)!!81EL#op;(LHpsKZlocM2e@A&Vc57^pR8zb++9S4YjnCES=U$FB zqgPBv%`wOA8C#6U;vmE>i`!#Y^%k>JV^{Kc?O&C3uhF|2kH@5Uc5!X&r)P`JJ|UJh z_D$@kmc|$RpvJz~M^FqMwb4?ebUUvU!?F#AyZP=nJ}_x6mf7jNUUv5R9X zlpp}f?buQ!NG1Oizp2$DNat74!?6UhyGz}_HjY|QAGSz|ExDh=>hXL~gu)hO*xNWt zOp0iKjngpV`!OqH=>7~T2&(f{yJoF@r3V{zhnO;O%@naf-0)NHnW`PR}o?~J2l9srG+q ztZ|AtYEY&U2Z4T#I6pAjvO&;->o)h7S(_=IkA2MXoI2jA2ib&?<(Nx0aPTgg#X~tUZ8tpc9IsU#zzv+6A5k42Q$Bs`hrC`+Y`KJ4W{MWA8 zF_+Mb^tlQpRX@|gZF{dK#EIFC9S0ZVLC6B+z+7V&KN!0XD0F-;PxVqvDvmRkW0EH) z0j3m8ib2Nz!?c27A6z!skCVvbdmQUbJHxZQmw0=Mtr0sdrkb&AJ6j-j)-E z=W=X7QI9Q_ZpQaR04Ry?d1r}X#9Zz1`QSD=NMXD(B%?Sm@fj||fcF+t({el>D-Z{P zb}*=TJa}Hr&0Zk1O`i`T?y<)K8ywR(m|N_yn6Q|ebil8;e+HkS_oYkT2%(PGJ(!Ii z8*#!qV?%LH+m6^0G@{Lzz1V*p*)Oh-pbBw(V_+edZ~$UfgUF2_QphQVS)6hFo8^>- z;K;cQo{O9^IUqAOc8d4I4}++&bG9IAGxK~uxE@l%W5#6eB?Q6_AC2cl(~)0eHRE~Y zmNG>=HN1fYu+M`XQ@E~;9RhBQcWlw_oI9O&#u0K&OjFi@j)NEN=x@-MBj`iS&s00b zIgH!)5OjyAnAq_blKY6g)Woi1_|Xj{k=e?j`#0Jf_s8>9VnJthMZP#_!EU45)3iGF zAfiW(X^r8>p4(vm1=%v5k7Wps9qc}qDW)MrYfV>A{98m<#Ql-8VzOe=;w1E~_;?QZ zS$dqzdo(ee7IT+$ienCg7Q@UldIVz)`8ycHgv27L#7=7QjTW?zrKi~t1jms>Q0XB- zH1>0ijhRd$8*B>&pddKF+u5kWZ$h#SV*O~bBEj1aHf~60(T?je)j34K98y?gs4+#s zktKPyU@$pOdk&(&xoMe|kMBoe3SOi{2qBpBM!P1KF}x6+^Zx4?ekSV03@P~fs3 z1<@2ygpIfFPvoLPcX@qiCk4v3XMMiLhJr5@CJ+9f=Mi1_LZhMkA=Nxqz(S%GHMDP*w?zyfIm2tpEC%uX5TgYcMW-ayumtz5Ihug)|mA6DYb~6jwf*6DZ ze;@&b)TZ=;yuRa(Phc>h?B#IEPI0W&0 zd}i<-SUvk@LSK1rht39Fh}VXE6&nIsGbDEeil<&1z3F^5Haq)kLwZNX3@(B!S%U&f z1|ElQ%Ts$eR9A_nwOeEkNlv17Z0H9fH>yd8zy{CjF&VL&k6w$L~89ANV(f<0GVyIN5O@tZolUeCOZz4Ek7+3Q{>koSEpwU|aA0d(6cF zC5Q=#ze6y3s4(&O;Lsz(fvZ%UkU`>K2wyUx2{CKH%2GQ*@qhB$5BPfmDhwhW}b7->T{=JIj&!9{tD8t;)Lm`|&K;xJO ziwoAeA2Zk^@1Ka!L105!jOQTOu~)kPjiVX_J&t+wXT~bjy^8^C^O)#Gyq4MC&{ugZ zJ{v>>0ySBrpb~RJ1>$uGlW`t`D8}N(=TS3*O~IZuT{w}ieN(|fkJkR@nK zPufI6HI5BQYKwDD{}E^))Eg%=>-$5}1%h3R?^o;B8)Pr;kMYEZ@HMROXmcXnZVG z5ObPHh-z22QSj6bPSUp!gw-Ar5n&3lfzFfFMqT6fph>i$tWqos z1`4%fuoY7QVtZ^yv1!OQ<~F~zVtnCll#dXnQF^dbK$2prYfSmn-;DI7%)mKRk2PMpWotPG;n@5*$lBK z$dcD(W(=;8B;j|=Q}HYc&eTXJ1J5Y#>oOzFaXyOLU3yIBw(faFW`JuWmND-`7CQ9v zXoiB1^&^fc9p4dR<6~{}Jnaybcsj(VCUv86ctShc)Y*{`e$jrKCW=i_V^tABv`1qT zwAd6$REFzN6RRr>aT@OV<(xc7@wEiiDLh6aMQybBG^Ye@<{!d4YIgHPz zRF>`-ua9*`!)P82TX18GGB?PkvH)(L+K}{f$aWhtHnSlaIUZ-Ss`nhW6G#k7SIFbq zKATK@EM@G;L;6NNS2iYZgK{_T0$C6fI^xV}EcW+C<|#c8Oz1plsgp4DB_hDn{8jB0;bb3g|sDN}RNvPP6Hea7sOP z)F94(!v^@=k#|t2C9VZM4kq7hpWgNPpdM4!2Xw*sJOVQZ7+I&cC-grrTSv?(&1Bn# z3{84HCof(bH zkN_cyJF>v<{uWeV>^64t`1G;iGRJG<81gvB8%=ocvKk=bXEr+B5;bVvnfnx# zkS%q$W-jB3SjM62%s#3(2PKC4CHp_Zv^4pKK`UW&LNkvJd@gZ6M z;xyfsQ6t&PfU3;fl8-G-RJJ6E-(Tl)$@&N%hjU<9*W0lO2cJcy+tr3BKTTtJdu%Oe zNy5%1tMb$&rC4iG(pa*M-a?R>jEsyQG%;-+9C}Unzq|g;Vu%^Rk+liN7;_~<94(uz zFehlGgJg+<4in_;<)0#_7}J>N99@ysDCQeaj&{>SRF%CPADqiZBrX(OrVZP4N`vbp zF@8J&dKx;!YRY2ay)LT_67g7;JBTU+52jgyMeFM@&sb$FeVU+HE*-5+tF2 zHTWJ%mgPeBB-ULW)Llfku%&~F!st@5nR7r@W07i1HH1S{wP7a+5n;n15LA<$-%NNa zgeX2H8?Yq`#Nf`?Ayl&Zpot;R#9l^h=G+$<&MT9>KQvsrgfx0 z%s6uij}6n@j478{vc<3w?y&=M7T_U`yRmS`)}qbRvBW`opW;Ch#$lkcf&_Vw+k@(I z6naAW(CZLsmgGy{5?)9Y%S7K{OcKjXA6chh zmu-f}gPX@bz>FqoIo2I+iw6rLHG*@A_h$^H1AN8~x1_Fxpe{SQ|4y90S`4YN) z6`0DJDJt7{$^rsKjXCFC^r^^F^whU(S*%iU=nHdG@K`+5Rr^We4V)^ZA;?r4b zSw({2_Dw7od(lme>H`u41x;;xy+U+%o+okZ}uh8Q~#JFB;VhtW{VVz*$@@C)*Nv>3<} zYI#1ip_#nK#;xA)HCt%SIxbbSg|eIE7ikjJI|>HhuS=1OMc8%P60Ws`y;W`(n65Op z{iPVBYDEvSjv~Sa>xiRIYXVZXwxw-$?OV|hX_wWn$2^SJXbgLkCPpCaw@n)anj)pG zdEbxCEENTiQEm3Z^cao6A|VgeMd!M;BfS;MQcZE70vCh9|4d5+5SrMhn7d=ZUBBtZ z#=_^X^Ec)${Tg|<%fz<}zrZ`<$5UpExW*sL$GzozLwUdUyw~45d+~_~+5hb*-#Xhh z3ptj%#C#%S4CI&&=|b_B4kkJltKVcfk-uTrvGgM?pC}oAK097Y8Kdi?;yzfnS3x=S z8vR_aKX3Pk-#z;1`oE3C`0w9q^pAh_+u#4@7gp#xHp!B~YeIs>I3`$yoHy)x3Eq-iFvY3xH9%W94dv~^Q@UP0WOGA>uk*1^_q?PJ;qDd{l9 z*DlQvDK^;+ApIzv@)Zr6mx>ls8gVG^Quva@LU1|Jj{eD+j`cDWv|?SObUVklW&T2h zmn#&vZ?z!`u7N_wDFG=_(1C#au)QT)A7b)ScY{Ecft|-9{mI%k>xsBZc|B^XFih;j zAY?!hq?Te|5gV^Iur#C7R@@_Hldqdu6Pn^Q>v}8-UpxFXGH0tB!V=v-jTJpyN zF#f~u|NHNPy!`cV|Jxt^r{DeNZ~o$s{`znK;y3^Lum8*Me*fFQ``v%P;1>nA7|0kK z#>SlwG?{3{>MXOwW;%bJ_(06kN@&>01`SRK^?hEnd`VVpE;yX zTzjX@G-ruU_++C|Y~#Zc`OHmLPS8%#w{2O?3u+B&-}lbMWM#uIN~vB;L>X%r-54B3ra)hi}u)b~7o<5w4Uq^ZM( z$K=(d*~91Q`72CdtaM$ISpPpv;(?8`*{&NmNxuLeD1m6a0JMPYBt*`K_sHE9y{`JIv*Z#GsKIA8^BB7%~yp9fuAdWa>@r}^@`5iri0R;Dd zVku}=@z`fw8(kXGqk)M=;fc+;cdK1EdNmdhBDiTcH#o>6ttfG^zrp$j8FsG|}Z9uENztw8vxkRE|T6)6#T)y*~Kv#vfju>Nx<% z64Lq<4@mK?0{p_ZiI|(poMXb|o-7$wHV)PsO zV(t?Mk0wB-P+gK877W&7ZAk&Eo;Vz}pFy?7LdiCnElI_6Vh9tGRs3yQnUWv_qf0v3 zGPHNuPXrs<-AwZUZPGCdWw|q+pmMWJ&(Q|tU#rpCxyvFfkFPM%9pCp8>`Sv70U`X+ zY?iYfKJ=oG`F*d%zy0_8ciT8)*|+1|H=Fip#Ds2UN;%6m(&}!T4)QgZ56TYbn{YwIJ4~oO#mSt~?`y?mB zsq57ICK0NNsSPkjGwYPp`T($m+#Bp?*NlHB+F1kJvwF*HX*K_>c%oTe+5Mwll*6?|UEnsm|<4Eb*6P1C$99wP`vY#6Nm zzF17a*2H8Z%&Le^;?P3>+8NaW_QH?pFx9^1raxZ&$Lke0w&AbE z)&)@1rs<-u?X}WRDFm7x{;pxI4c4}`!9p+s46zxI%(L%i3tB%Id9~jVT8>9pI`l5( z;ySWFJPQOacteCR%i2xvjtXD2J&aX?&iebvKhK6EQEt*KpHmaR6nFt>=va?|yVIOJ z1XB@)32|uYuPtr>E3BC>A2PxwDZRnGw=Ajzf>LL+NJOc~=<29W#pfXYnc?o+T1@s^ z?BuB(uJDev!!sVof5CXGHer$lQi(WWy{9)L-W$lPd~CAr zrDqk?jq#$>nYN}OpRdDPCgA)en*TKjhnaRP6G#|GG}chFx9iUeep!(OX+Ep^WMsbr zWfU|-uvl!2ThIS6QwL>^(Ik!$5g?n0ELX|Sih5r52a??B+{rf)G??DA9Isk$rrYW4M>6H}%j z6iJ8NJ0jir z`o4Rs^KRsmvpfHbJN-O=II7E@{{UA&sJ{&tX)`e`1&HwG$h>$7-u2IcKK>_<`j_~u zP})d~Fv2<|Y3zbR5b)~bih~qzN8Xp16C_`9iUMD-_BF|{pmC#JB;w-6cce-p)C^Fg zf;|vDxDLKZ5sIaYbRoYBva;?69qi2pr6GVAu zbTpDyjGq#Hn$1Q;Nd+G%7F#9kwdxnVj)R`&u4?(QuM4u7C1N5T?|%Iu&469KOYW~& z^U<*t$Rl#t*xlKYDUf%e>|{s= z>@_)_DRFbfEIrIy3L&xaaB3#TNZN$M2&5zT&*RqlKd1r8NFMxV{TSZQ%b!B*Y_s_( zem-I8@}ubQx?w%w-&$$UIx!iqyF*Pn-_p0|`|bSQfx~`a_2tvP#(%e!L6FGHzaaT1 zDZ<5wr>P*EA!0D(Mdl179d^Pog0TU>)ESy`%wUF@zCM7taz>KZE$A;6z%td@c$=0{ z0k?$sl=`qoI-A#Sy90Rl?!AWjAcO2FzCLJQI{$}9THB(`(k8I>l(a31KGV@#H9=0t zAm+cwx;zAB&f*BVGe~r`b}iWC6Tw91tZtTx2w7k!m)Nocg@%_-6deo(^1Md#|X zV;@5ZA-a7d0_yd|Q0C6ch7Dv^5b4b(8KUB8=}hOkem*()`So}E#d(8bi}m7kNRu)o z^EF}yFJ*-JT9%nC-MpV>e45DlRbQZmYB^u`;ka}I^`$OvSb6`BFI4qyuCI1kaMyS* zvr=07-!UsgAoh%JDt1p*koohxzxWfzxA0(p&7xEVN400O!?M`AaIbN5DX$6th4F@h zedFuDG--VSXHEI^_T(c|Wz#D}z(m7)Tq=ajYBUCmQk%Ci5oCJIcjo#3|I+{A(YCZ3 zTGO7IcH(j{&NQXd3ks#Ao?&sLehq+ZwM zmqPjRyWU^;XLoB4`!kkZ425-|lvGCIm(q+&wh`CPR{V+7mX6pWJQz#wvrKsDY;AQ#40>#%j?^fdH}&rnGy&@ zBqS7U+t_^_DKKqzlM7ec6|>o(QCNkslUk#16+^2}NNEb5Y;s}Co}n#9#++v3q3PMX zfjQqZf)F@;G913DziyAuDf`1pST(H-q4-$=quV7K%6C~F$eKh+s;%1MzfTyYiKPgV zA|DiCAV$k=W7-%XII@g=-DgW-E2NdscyT_(lrvuml}`A%_M#ZmrfKjqcv9Mz<56*| zWQo%rCK^FpNuE!6Y2L&7!@T=^Xb%NTUk{=0f923$pZ{mbE%Hi8B+vCjU`~0-MSPLf zyP(&h1A~EAT$%n_-naXAyhA^#ERgTJ3BuJosvUBEvqE#*`}Wn3S8xB*@BZx1|MOk< zYo?a6Vv3I`V@Z-=sJVcUL1IM#Qav^8rWsz?Ky)Bjo>6-`op?Wdka0lta~_vtq9vc6 zbu^?$wH2mghmFojdi_)f&&D9ucsiJ`o%RAXo}L!}U8$a?xyAX8KYYN3_i|{kPap%y zkvLVpV{+9oq+{5XQG)lKKPwrU z_H}TcqpY8VB}*P_kN3>{;WPR_ID;C5vH>0cJIC|=FncQz7kUz~TFI%C?Vun}(f%lT znXWN=wkIgQ;Y2~q0O9`0^49xpe;5LT{YZ?knvN+ZO-HR7S5!j3vW_HA3-M+}O@Por z1%deK`S|1YW&hlVm!}6B!h4HN=2b^`A#JiC0Qqz-6^!CfLNVaIDrk>0Ges_mUxDOW>cKUOew%Zk{N`8oZ-mF=d(XQfm;Y19f=5l=pdB=R%?Ln zuyORB;_rY6ne!8?^y3rsb!4n5##j?8p|(Q!)Gls={a5<}82kC-f>Z*_DJ!^gX!QfN zp`a+>L)`MgrrLa+fRy9&;h#TVI4Ak|@)<!>44xB1PH9^?HHqHyYDqi)8ucA?iEx_6vquBZ10k)SWgT)ZMHIH!v*<}R3hSL!xm7Yu0Ml|~M9X<3o<`h*|+c?Y~5 zgaBfV)LQTJ7ur|!*N;!^*ijaYA9ZQa?4R3a;n0q{t;BC#G3jdSfT&&7mh7SS3%~aB z#|zRX(G&d#^v_;(G>4+Hvl1L~H1!3JW_;m%FkbNikR!@hPC*E!r$GJcSAs4SPl z)+v1N{U|eUyq=QmDUBs(^XN*%#4CWOc;yV{BZ&Nk^3%#`E2PtZFi=$p+RjKhn?X8? zDX&_+u6;#bsB%FL#)#hNIUp{(Nl=OL;qgjsZO`aGt|wgwGL??=!Ji)}y+by=l-Hge z#|Mz^#~XWh2t}xLJ&GwiluNLzR1Q1_f!S7@1S+pbdCdo! LbG=uwuKvg}a=o3w# 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

    h!XwhLpnUnc&bozNK!|P?Oh%8cqEqnJR;% ziZrs*(%z*`D2hD?q@^@} zF|m=4jL&W2$0`jjHn1AM_DfU+Ml4cIZTxhS5Ym$NGY=d)T^nEXrJe3`vhAyl=zPtK zdE7dPQ{vqPm1e1?3Hml9BAw#8tn9nbaItw}U!vlcUEzMSr{2D&|70HLq(lseWI>>Z!*1Z&IsiIyzAh8 z{I%tHGx)Q@X6ZhWT5Vm$|JBanNYYMEW{H)D(Vf*ia0H z+5(b?VwnRBqUxoC_Y$4l+ytL5!s697oD4lik}_tUU=80>v|h#rhq?4eULs{sPf7!~ zw(DA|YQ?X}a9pz;T+x3S(26VH0&H;BsCj}quBl!zE@s<}0AniUnG8eYG=&P^hQ$j? zN`e|)&#nO{Eq8c8ZFqYt6JQaZ`!=7)ZG2dEFCBWy+Nr%t;81jc!e;GU&i(N{0WA}$ z1?n=UVt{fvUjyt!%ZFEBjK^)j_uRM26Zo0I_DOYZ&9@jG0X0oVJV2vE?csEuAUU73 zciVouYStqDY-|1i-E=njGI-8g;@hXPQtiv?S9T5FcW0qwV0#)ncATo)yLL}$s$t8V z%1=-X>TN4T<6P|P&}=z=_vVRZc^B<+SySxlh0R3XRt8II!Mxj=8d3xqHDx_Tc9&Hd zC(mX-tbY7DZgmM|n*7qy1m#g^RT8G=No=`K9EeCmftmzsmrJ|n3cd_M zxN3b_fbP7k+&cDBF*lU0EOlGvOHu15u|HE?7v`Z!Z(MDlTUemjGuyC2hWR9Sw~Rlr)R+S;!atQm8LvyxP&U0n&7s&d$(3?vmL)ESm<|Doo{ zzP#IbtE7CiQ+BCn4VGw;xULZPVWT%TxKLZSG2KRA#Dr`keN%BvOuYF_Xe|0#Q8%~U z(oh$`KAPp!tA?LG*L`Q*Nzrl}m>Ge4lI5ZV+b(js$xKi1wOp7<;e1c*>q@gjMoIjc z-Ci(qxjmG0G_8|Ou`4KnxDcdAmHb@kz6@2yyXT7rU0K&j&M?tt6F2QXRY@<8^*k1J zfEVf;PRy!;>2)qrk4tYZR5|-{QkXm0^+DnF$|e96n7vUEBJusITJ@&QcU$!1Hg`_i z`Y`~F*OX0Jvot?W(Tx0-9^Z0`BXI01m13J3fKxM8*CAwpro8Z+$8Cb{3Agb&Ueabi z?FOE993{_~lImi^mkU)Y0NHNKl#3M&fhL7BM=~efaJK@1Sl)!#&_uq=fI&X);P{nf zIBj3&FGenTdv^-secn@YKkF$|;Q(V~V<9m(pNTf_Pk!HEE5I{!o`v$jOC*pvZA2Js z<{U`1wX3~S(Ny)aW%57tQ!f2~l6y#~Ceht^K~+dw?3_fYRHY`8 zz{9~Ex_yy-fuu+TkVH|zJf+7kB^_7FCl%Zta*kWU$Ih2E`$MTK!R02k?K}rE25?}k z)Q(B$L)tobWWKRe?2-`uIyyV&Ka!q5S$eD4m?@{Wf@Q4MU0pkS_zf=itg@dCw>hX| za}@^dbJL0KYzEE2F}SVFk1p`3Y8uI9E4iHW`q=R8wq`U*msR;U*5lJ#Q>r7AnLT-m zmM76>SuQ~(3Wfd{S&-zb?_?!)?|FS!^qjV)#*Pm;sjbpK0tRF|AT{^I?LaX#=4fWb zEhT}`V6jGJ?OcT&QT~9P4P;Yuhg{aQ6*rfNmtGD{klRhA+Na!%NfwQ+IA^&XWmF*D zr;qp)^L1JhwZ|H5?rvLnk8$XBOFxA1H(ypZ*De~UwxmJq6~14JZc;iTT~{>@?cB$U zz$nRSzbC-gMlz}ccSP1knsa@AcwadUHf-qW_P#n>*X`^2NN#JZ;BoicopThltuK%6 z&bFkL7E+GRHW3~33uP32sHB4wKf)8bcwhBKR797SPQo0%)as>kYww~d)A>oogzE_d zOpd`aH_GdfxV@LP&2w{|VlAA&0jf(p&r`B>wfA$IiyQ7|A%dZ8jPrV5qhaB(?#)F* zhTlK?8r@v9e@X4b)f8p0LGnyb2&iI$5b|-WW95~(iuxwW+ghUq4+^gc8BqJC%D}-? z`;?S*G(oGos%G?<&LGRmARJkjEGTMSmIKNkVSQ;#{x$zzjN8v9OPO5^-i zwZZtMkBw<>{Gd7`tRK=+~#*H6=z&$mC( z#fNrn@j?glDOM24g8Wdj>wPI~)3Rn#l>zD~Sh!4D$!vSbtuTc0Sv{mNsGN0oVpH1F zlCFp)@Q$Kg*^PW5`Hnbe67f}95X*zIg5%j~k8edQE@LBO*R2Z0t@(L!wu94OGv@Hu3xZZ2Qjc3Pgb=eh;Dkb8_bqON}CFds~(E94s7yM_uIzMjGaSxYzxWQ-Bu`z*_sx5H>1MP zqm^B6Yr9&uEb48#ySB5f%XM216Zm@WX|=tJ%K3O*dp@7{7q`>?-ZpCYf9m>rei;vI zUGGn4+t*9Jey?0_&*OUgIhWPDI`8RYE}iR5O~1`WBAT>g9fE!JHu?6Hmnm%b16{5eJDh}O^`w#j=t=%Y#7=$ugdtV`?UtNv##6qLk1BW+>%NURKa+N zd#vmAW!fI6lUVJ%XMgVNyj0t?bg*ka!)5Af5{-iNQkP&bjHga#Jpd*+t+eq~(F7b8 z`<1JMYw$atW6xdyOF_z0q0PGbj@#_n<-zFDGxNtV`OOhX6iy0{-(7@!9jAWhWcd0mx zPHw_wuuM&RDOqzJ3Ngfz;q{WGOZmRHB{(I&UwC<0W2X(09_>hKmAY0lL>UDrdbSk1 z<=&kJlOpabLzh;Mw}XJMo_zuudCavZ((3&pgARUFV3G)vd+IU?Y}hsMrLz`8d{?;v zj=Tmsm(aF3eqdPomSb7@#^(|+bJMmL7*uXu(fq7wL-T-UC!@i1`!J^!O8*_5DjOI)$ zSX4Pzpv-K-a0&{=M=k_4OpH7Wve*z+NH&e+Se<2{p{-C@+Ju`Tt}fvsT?=(NBY;E` zLY4?kZI124;{p}OAt4%sOd5St@;})XH_==9)Fdeh#GtXb>S@+ks?&@kpTl443Z>vk z3vqp`KX#pJ7p$_HyScy*j*Wd8&xGZ_)eF0qDZ4(;3zLZ+81T|mrbP+gvF^?Gtzg@| zUfK0=Ct;TC#s@+y{)ux3fSrN(oK17lvp!I)bW!$&;wtRWAv#8ALkm+?Gl( zbzR6G=>X;Ntx6hs5{=GB@Oq*$>8c7=(wZ)0X2o+Xf{QF`8-p#6vJ1(OStOy8>B(io zBovF&D|x!;}*xC_ie5274Mux>7zr+4xvzK zUWhAOsQuvq3;`XLae(pRY$O?p`n$xJydXf#M-^pho-WL8q9n?azX|@Sp!s&zpG#^g z2@TDb@AdP<@^IpBbrF{A%1rcqip1LIMeI{AhzH8J_g9Q1^;}&QkKxcgLAXQCE5r6IH3sLnscy4YqBC#GtD}dv)pvWy*^8 zmvPQMFNMwK{iGQRM^LDx_{UW02v-}z1nzc{U$!i} zM0WD0x!4_I90+o=GgZoiT?xL-!Ng6h{QAuYw^)X15aK6m{KBcH0-)%;#9>t-Pd8V)1~N?o}tn0F-+RWgmFenSM#JG}GVPS3DNqqt;VBuN%x}6_)3XWjEPsVi*KCZObS{ zqC#YfybuIT=XG(9+wA=k!vYSS-6mulhoCv8RA`c_S6i(N5z?wJhpaeMH+UWoEDl;g zZZ=-*hW8ZbzuKHxQShHKP4yLwc&m0fmx+Mq%kt88Geo(wR@xU=Yn5sDw6QgVk6K>C zC6tn!f|`B&`MXSj*=L1nL^2U>MnpK2h{t5<$=b~S0xogszPN;Rz)e9FLL-&2wm+us zeTCyOyy{RW1#U2XBMYshlu?}Z;?T_V=okAWOjLJ)`82+~u2);e_mo%LVP6Uc)bqBK zE2D(kX<6F4+u1Idp4W8*1l+WJJ&ywl9NE6^Pr6<32%30(=d!=3-Bx>zW-;-U&+FCK z&*3b?zj>TKXGg&}KkxS|)ug)X=jVRTR$h^-Zg$HErL4fQ1qG9EMw@^-;_mvQq`-r> zRe4mBwYL8BVkZSM*{9${{3Mp{?sv?;kRzAR@^iA-=N<1R&v` zc6D5^;(BOjw^aa1NR-_Y#%eW9=CozfzC{IBRksxsn0+$GS_{lT>vC69AX$N4ntgfc zY$t8(DPdy>)#~`gysl5}jD42(>y8Xtz_nda8?j=wn|i(dy$ybnYd1 zUH9Q*X^k{%OU#D}lD~ejTxB;}rW<%5rk-4EN7b>d7Iqd<6U&qVQT!f53`&$s^E&5U zS%wew?m@t?0YFo+4Yb>9FbF?LR?}_0eP6b8L%C_!wyq~%Zyvn1F>Pf5Q(L$9^Yxow zKg#;N)Y;vJ3ALNc3JJQZm(y1U2nH`zuiA>*XKXge*W_H`}4Q{%zo{!)}bq2Uu~(b zWAn|L#j*7GRhUKXru@gdkK?92usM++&8(~D3g8R6w)39WWh`&V_EIZ_hLFJ91$h|) zWvEPvAuP(5j;c@$aVfHm0Rhg7)C?y=+55t*2u(Nb?}bnT`K8u;ZI&^RvAz|-zMNiF zHeY*o1q37Vs*v|o@;8|g3=7Oow3wZCcoRugUL+kssqtA6joHd*lEkjkNM(uO-F1oU z3BMv}Y$ZHJRb?x? zE!AX|=Ph(#|1I+2afstavUZ1u4FUuIZ=XsQjv4Ms>lhQ6%IJCL4x_4B#x z9Nowatn4x{0aq6g#tq3+nCOjoX~Gi7ws~G3f+je7LpKjs!P?K4cPBX%UT6q!WRxC2 zrG-E03tt=v^+4lsSoKPG(Jbs|RWN(wF9=1YfBVX*&Gp_SK+6B3IPfZQRCN^j{#@XZGZK~w zmu<5(0s7D7sy`V>X$sW^j0m)@fkPHJ0^YR=%3tOZZ!d~ zy;H?GQ#L2xNE(#aRl#*hIbSZj;JAG_I46(GI)Za5q)EN5xvhu_#HHmsn{KbW@%$hj zmDR?BKjcU>Y;CI9(g|bBy4}%QO+l4<+-NJs!YX27tos)lBcI>4|J0c7W{)D%yr0*{ z!Rz`Njg#=N)+NLg7XVQ}uD`9oeZ4J6b+Mn%;L+;r(d}gOBp?|pz+=H+1pe4eKZFSI z_dezhN7|)Bh78m-9(m@Pokh)xMn4yJ+K<=1_H}ik7v_5TZg7OO43}89v;0KD0vu3) z_~Lvk^ktWOVCDVn7UmOKC}o8ZSL-qtb9&BoK(d}I*O{OWPh~ta+-Jy7Jm#|KRhfWp z^M2f>!GSODzG$GfSdN7YI1$Op|Dr&cA$bT}pffCO4yTo&R)w|1h&WDa8e^yGt1HK* zPN#5(TsQO|>$8{Lumgr!_4+Z-)4YH9dsRhU-P_M#-Cez}XMm^I#h^Kx2j4IfRd|yB z&5|${oF`3tvK4#(Z~^ld-Rp{NT@lvZThf_$sOD%yMms}qSqi0^C~lWs2#vigmbj*N z&nvc;)IB}Bm;mqRxP!lLD}uW@d6vSSp`%z|acpU+clp1BpE@aJBEf61q|RJzMuMH& z?6@wwx53BM7=WX7hYZ&>b$wm8<2(1&E*m{U{RgV6XmP0Kp!y=c9V++0jQkt@UqC)f@3F>zXhjqDFx7U zbvf#xH_9Qp@Ye=Z>_(e!a!UYu(C|UXRRJa(s-;RM3e_?v*oy%cpF8ci%{GC^EBh;j zS&05;uW4^hhh&`Ir*&b*6xJ{pfM?dCA3C|UgMVXvpo!T$pMi=66)*6)jU9Np+wSoSp zrE_yXd@3vWGbv{hfRpjK&Hr)x{;CEm`LwIdtxATfy&GFVIIQyYC=ay?XShw2ML%xO zlU6J=NL8&@w3KL>+X$r5CSX!h8=lkMMWfW7s$+J09)xao_(tAc8Ju`d+J&%WDuoYw zFI21tFlaYgfEr7HL$A-1CJKCg=LNDuD0iaT$#rq?7OBL2p00~iyyyi)Kly(z&lCQf zyi2G}xVf;7+e95ko1BFbG!@TvU_w{BBp2GbK2P>B92C13fsDg&ceRN%sjB271SxG! z8OBPrcPFB~KF=KPDmsg)L3lss*;4j>@ed~q`)v2K?fVtJ|9SoP{I*~3SL%lMb>Y`9 z?aS?bTwmYYtzA~L>-KiOtn2D)=wj5{I7O_(*zBGwni)59KLxU4yQ)oNMBTYxano>;`h?RnCDnASrA>?rc5ND5*+}Ubo62 z%+-66YH>t-zX0Q8Hc;hURf_G(`5=9*C?AukY3@1-9oG%ADk_NfS@Fh(F&D6f!v*g8 z+W17FDwcN8uIQ%9hs*9P{PDDZcttM8ezj5n7!tck7SER46Q0ym;jOc z3^d!n}4$7>D9ajor= zl(I?OPqnwZG8-WrP?>TJ-Ll2#0a!S zXLVkMWLKctUH8kBrM7Fm%=2rn_P*M??{Dk<>vF5t=6c&)H;?Pp^{$!jZQtJ0^?J|m z_S`h(PiJe={1+!uqrG3-^=$ffm9GB0od2ozy1%%c*X8=l&2@A8gE!w^eeY>GyEffU z=g7Ki!R)Im$?ubmq$uKDsm%oVEyKi;v`wOB1QqIXAM3J;WDO^!DJp{JG+3S)syiqN zj)Gc?GHpLx*^$r5^euzDHd|i_?2@xRm98q8f}x3kH7Dsu&cnQ49OL1PVmg%b%ZbuF zc)TJ_3BYzy`XcnKWGazcprKB2^T8R88%e+zMTI|E7OJypuaaVd#XG-(Y;A(MH{tTq z88S!CAC(Ld%-r6LZQ&5f*+LSQ{S2`|i&Hwo-AR7sq$eFt9}CxL)S<9q0_aY|9@}zf zwBk@qgV>jm^-Q6H7g**lXZEd16@D9>tE7K)NBM0ebt_kSQ8w4Hvga_{btR|3hBT;? zxIAwPic7j)HJakQd zK>t)?PAB6iiojJO-L}%9;1;ZHWitXX=`@#`3s8a1Y}nHZKGe6T3p&wO6-CtAu^x9N zFQ+VM(vO>PmJ6ZZtszyT@`cxPBHrZ~0#4G-fM7|PQuub;7B?%1WzB_xUX)3()aCEk z^Q!VVYNK9xhw-O%XGO~kh_cs zdt1md4wkZxK7_9Y*-UcH(}l^oy6)rSwz1&7m+6e1hOu;c0m)lJwtYj%ok?jsk#O8! z4(E+J&!KQ^+e$M)PPlxA2rFaD+1!M+0qJqOD<@zB8#?#AaM(?yOPe! z<=Cci)Y+)-wo4 z&>lsaZLf<606@k6uIpK@uC9zcD-SNeFCP#Gk?jJal$^I}?F3Wc zvNEAe=bp5gsi=IE2(VVF*gLFR)5~1iU3+?r6+KD5Inv%Z>Z&@o=A`hQhOB3Q8qKde}NkFFtpTpa`U=K->)-yTtDqdi;tHp ztYw_;1o~25;bP4JQOSh@bYiP=Z>?B8>1?<+1|RoR*ooha6|N-tXBb`E2rJy)AU zQw{P~G#%DPCtYGDvD_+8+w^EwrZ0ajJKI!SAa4buS=ml)wUgB(rASs}dezs~>r)o47c2U8>W|y(L7%GYNGexH94o>P9A*WAsR^9@Se~axQ=NHTRk;scl|a}!sYd%-ATk9Z_5Hzm*wlm7D-7&olymE z#r@qm>66?vDglz~N<`9J62t@xB`D63QZ>tNE>}}KA#f`ZiP~BXTxdl(=J)e`vgP)Z z;7;X6WlM||;{|f_Iz7j2d}PqZ-8VhkXntj!K#5huB({r)+7MhBLz@va%13)3_1PuL z2~W!TKTj8Ha!yepo)XYcrzDqF@An+>&uJt`t(v+;_Mpl1jih!oN$hbiwQC+0Uy0_O{Lkl|%?i_|Pd7 zEZUb?PB=^H7G{b`<#l$B+vuRRd0|TkN!|q*bDmJlqXy_XhX|M(7ra=|7<|SD_%pA* z()o&7`8-dV!<6Q3KhLMBqeD#OZ9Q(^XZ|lAP*oRaj9K_X%4nCB3`g0s=Lr-_ve(IG zzxF@EA<$K)kyer{qqYP=NM6s&0FK-DIWPKndafUqu$2IFkrnb;f;W?hi*Y5XsFm~3 zU`;`&td6uyRMzE_`uS@PMch1B-JP?vpa2ywdgY8WP}U|jM$0o@-O6wV!a~pA=})6` zKIZ<&lM`6A2l+VJ+{KJn&(d7M`>W?TQ|uh`$kKd|+P~AERoJdhu~az4&?uagWJ?@`GR{xRh3J>T1}VN=id z_uKY(^{p8Y`s#XX(pAopHKTb>NE^tVea%Kw?SR)uo*#?7JwA5A>e*|jxaaSk9`E3$Mz?qiC zKUOBz#ZQP=eSVymVfs9mchvdI1Xwk@K#C?}O~)PSdAEKs)=o*Lj_JhrBvUi>Tm>^1 z0Dbr2#;bl-_~PS6aJRIWul#bKLo;oE_hl6+FQ)ygvhXWQ7|Kmr_=Iju4rK`zB`aB1 zEw=$$^4&83=;`2dFe39gyG4nCFxbLYSv+mqLQC*Il4z$jHJINi1|&-F3Y4!JRLU+r zAJ>^Yu47}Ym+q+dw%3pnt-AXsrV)$)P(JN9k}V`vjBjI&o?!f>f=B;vd*{-7%W+-z zc|OI#&BPjr>UviLVF3F?f(9)hBMme$7>cq8(~?5cvGeUy>$i6Q&*^hXUQrJwh-Cuu zzwYTry}D}G-fOQ#Ps<8T%~VkGP*0T5wmocQ_HcD=a1zLosBB}C-9h+<#I=b96npiq z-D4F;kTU44fke*ROJ^Q0ty6QK>q8=BAF*x8$QCgZ0IFat%8^0L^@eeq@d9XtXMGJT zE&2M#OgdgB+MN*A9=me#F7Mx=WWZ>6qi_(Dti~<{l2?cW1%FBqUd-D|Zywji$)azj zy)T<}2IbbFoOkOCPE!;W-M{uk5nVg*V_N&`{Q`_O6H3YT*#!VKOuG<=zE#OXsRBj# zTDS($JtPDmi?G_0sQ7~{Lcy4F_+5)}%G03`mlDV!&%-kWf`d`$SO5HTV8}Rxkty#{U(?9D9SwE zVT5B8X`)V%!7x?O-9yT4z6HJ0@p8W@={kY9xM7@S1x*t8jzVxm$DH#8_3^^%{RWim z;5Pt`;yPz|9Llc%X7P6f~hHbF+H&_sjR(RKJMPnUOiwP0?vi}EDkr)XjE3tnWAe3 zQ<+il(r?H0?V20SVYh@O z_shPB6}LXk*-?y!-Om&$54a;~wQ4_g608X8f$+pvoy8C+vr6=cPJoQ_W@k zR$KMqjMm&*jz>vHWk>!?d=1F*APuI$Vz0=6dpSDyE$~v(+eS^TpJ*;}$4d&VVK$8e zNpYF1n7e>@!{{yu^L0WdtSsZP*geQXFQD^r9cgV$XLU(}Z@oMkQYFW7c1b9shao8@qF(wCbLI5~MF>-uCbBaphv5uW$Q z7@v5!H3?|XH+-`qHv$|Xv_OYocVn5#QZ4!;zS)-te0UK^(ZPPf%l(2wgk(t}bZ`jn zfG1n06a`i}lW8UuV^)>p354p&NvbwTSM#b!IQdsQh0 zJg8hf=H9)fR_@!YEOnJd!k`($lqsY;Q0{>TVVNmD^QzouT;E;Z{eBqI^gJeX5Xn-X z#snT8`<-Y;X|qG?!bHM?GG;+b*xC3b7D%H^9Vx%qGUj^_Tl6{PgvTPS zs}vabNl{}B%RXXBg3#{|D)MgX8NE+ujTUL=e6+iXdTCq+fc-Q`$8)dAsyAOHPKpsm z`^`4{u+7e1DI@1F%UtwAIj;A5>xG^NTdfj5fe+f&72Hzr-?lJ~R936tj1)5$p@gI_ zR4b`myUoS!BB*j!ghl{(`04O3>z@%?h0v=|9@-}mU;-`$X&jN0kYQ55pjpRIDc?Gs zsS#pi&?-#Pj1MWk3G-FP9-)WJ9pz0BIK6f!qQ}{c=q==ha`FU0tZG851!fYpnoMKh zWhS|Iu*zkZ2hZC=nU%z6!5O+YrO-C8IV<;}JkB@E2*~>dEtSJTc<vlvFpwTQYiyA=XdX{~;PAXh(+NLeJNTT|L zw_n9%&doOb?%j-@xMgd|@#v;jU6%N%NMp4;@lsoaPqWY|JWqXpx4zi!u@M3)2L~&b zhYvyo)bhB+NTC<*^SW_AXnu~2g51e%&$qYmM9LFCC{28X$Pvd z=HIE`J_v&FxbCvTq*^0)PnMet=Z_TUm@&~Zwid1^y{m;a&|K5aN8%VuXIBAH&hZUb zU^J=u8x~SdCRb+Uz~+`nfU^k>q3DcZs{nbStdW;;bGiEFO)M!m;-b~VxL>?lMhsI% zwh6*I16-aunIq$K-F+bTH&?u5G-vwyK;YQ=)?J=)Rx5FR*xm4h`WyDiur`+^Lz^QN z7uGV9&fp$U88~V8!ABL$UN603v{SZ@%@mam%i7@#MlNq~jA04DAS;}w*^3E7bNn9D zADO-x30=10GR$$=Ni@2yhp(fLSn3^4hGR>sG>soN`dRFgtx5(9jS!<-^K>~iV`poP z#lK^vLJhBS+ix!u=Xe<$<28_C60Q~H&Sr$DqCg2LJ$p~8Qw%!1#QGh%E|YTdKy={X ziY4wXg)5C7x_tazfRzJm6Q5lWzVDkYuKW-*^a}fp9?#vkV6WJrX@$_1Z z;x8oalDL!yn<)rtUg~_G+OD9EqZKo22XUq z91jZCvBW6_!^uKG(QD)yo#{Z36Rp_|r$+N|>J%hrbEDV1vh2Z7tKrvt)p+o=4;XG4 z4_OcN+DT_tKM*+ z_T_G!!Mf=M(PWRnj|>38{O}b=WEWUr;!ujIChVtRFZiMX z?^RHyhh|P6Elvt@a%ywluvP`ai2~^!FSoDfT`P2N zNU3QO_Kw-s|flQupX^MwRxVtxR$dFJP5TWCkHm-=4`Roxp18;VJy@6 zjZpj^oEi+CiQ2E<*7Ms<{?m26HZAq_2HY&+Je_RJ?CUZJ@Q)2IO`K5@rzRNkIX0!6 zciir+Z&+Tu?#<e^atL}RD6lJlrkVyB+6-L$;&m9_is^|- zdG|Ro0Yw%)g6-95-idCHQ-$Wk3cD>9Lp`s&ZE=2|JZjj>P_kN|*oUjl9;{1;9xv@P z(Z*ASV4A>^JB=L?Z`gRUsVV6Fj1!Eu>}JRm`fBFM*nDg@yP&2OW^V#Sq%t%r%@P;< zp5uD;uO4^aFJOI(>{AX*{ET8Ja%#T3_Zp_0Mb;VK6u-G@C@^tv53^0#Yascu&9ceQ zbB`l>k8%pDZTivJq)0vwKR(5gzqnld?t)b(OqgsJjuA@3g@-N4HrIE2(srFKk)CnO zo;U*8izk$pZiw?Wu=v?CUF!5giq|+OY9as~%sxTzdv#I}LUsG?WuhG~tqEyR|lU8{u?dYmBdcSzNnYi z9q0p<_SYQ_MtWY>k^*Z?KmFdF4VaZauIhFB{V%OOt}k~w$;M!`{Y?#mJwo{|YnfU* zFuqEbp9DG#fUCM?cS^|9{nlT8sxSH*&`hZUTPT?@JER+!Ztqp#`U2L~!XCSuM5!Mc>Enc-eqeC-kTwZ=wNHj{}5RB9lk@zYTrNb!P-(9;DZTXokGz-WbN zwZsB?ltmn>G6s~WWi!_k1yebm&!)j)ty0Fl&|m~ODp9xH*RRukCF;lT8Lmj8e98BV z>Rjbn{kt?zi3(1a*R13IQd}07q=JfD)JJ;gtSHI#&-{%4QIkz`MNf-$El=qDh67#O}hN`(^`MBdPHo$s4BV6D!I=%OFzjk!d}dCo`Ex zG)KTvI3}?tUZ&NWXV<>;SZPD2+@r6j%X+~U8Sgq4Z5}H~b5zz!q;iXL^;p6Cr}FSz zz}Gt=2L=I2-_3DOv_#)Q{?AO~Fs4Jkpq=v7vQX@nVP+vzkrOn4Pc{n zcLhmn?Xb81GZYg@Gzq)1LG+@i9U!|W6cU= zhRW^Q@yE4s_VIEEL5!yXy>wX)u=SCMV}jlz(cy3epm;S@`Fg*}cg-7933DS`PY9}6 z^f}aTi*~mHw%SM%C0t2}y;_v6=#P+r2j82l^RB&wveGG#xiAuSE#iQM2?5i!oG74R z(7O)5Zk72QCz%o~%3i}Uo%!9Xi!-G3JnxUI)BSihyxr8!3Ru@zvu#@xf6QRL*MSEzpeRk#rqe;GOVN= z8z!R1?A|kM9Z{qx;FQBMn%H4GhE(6stP$b_!>ihqC_w~4gki9KlR9d38Mg1jvB%nn z?BC!Erd9AhxPOBL)C=K2^;gou@RT^o2>nUElVv$W3XsG0$;Zq6`X*Z(pw%-wmMI>X z217WXG-3}>eq?_+lod)V$IJbwq2T_x#~&Lpj~+;#3bzQ}x?LXM9m*aOW5ff|$npq3 z|MY`?z8<8<`X)G=^0vpLaOA~1{P((EFDD2W59*PC&Kr16*UOa)eBN}AKiEzmuV^D~ zXycc%z3-1_amL2YXun!J-wxG6+;o35oJY0CJNnr=g-vN{Jm{@I%K7r5m$zXK$T`ka z`3_tK{Vg4sx)nAZ#u~8vv2@n(-YD@;HryF)wUkC706B)KLZ zzy}?6{j;?$^v`~Hkf5%X;j2YI>2@8@#R+ozp$ z)tVxTC@BHCf}tS-^C-#h{d0(N`HJG7dT1t&C{L5=R)^Utt{;^N$4-PQRQAwM=p$X8 zQO;an+z;)e;O0FaH~l&eXw*oLPnJwp+HG%Fo}gQ1cZ*XSWFv7(T7U^0E={%*F7H2D2_IMoU{>n;_zw=l?o zU)cNQEnbkV0qqV6adJ4NdNj;0cFl3dU480H9$+MBY)2~D`P#hW8nZrfe8nLt7-JXy*G>dq{2(pKx%6dU4p0__Mj*?pLfZ56e) z-;^lXIObIN5QkXna&*pK$!i45QQ$1O55>)9fFak?I>gY|B1v#PN3VxuLBFqgF$BaR zPX=f;gJnctqKIvkkK1Al{=FIKI~Plk;O>L*L|P}+daCgexm#b zdfEsCs$4zz1oYHCP6vey;+yL};?dm+7veqCT`#&=!07n$M+?$pxFlCquS0db^qjh~ zM~W0~(=`<|rLw=_HQ|S(uWGuj z(J*w7y#6(_1%1Nhl&o4N4(~(HiTNh%hBPK z8%he;S-W9_(hQ$A0io3z60E|E)}o%6XI_1^*BvjTzLxrH&(M>M172zRJzSbFuXXu} z=ZubBR=ZpozP%yzpi_2p&$LxiW>6HxO|3Y{-s}(+r`!m(4rJr1WgMno-q&&`CMrg; z(l>8HD`GesRy%=c3Sw!CrDUDHVL;QYh@d9Y9$wo?V-%m8ELI&p_01yTy~Y*2VD3jI zUJ!3NHoZ1;dLw>DtMPN< zoHtJ!UZ#oaI^I+qH6!y)=&hWUQJu4xHjc%HE2NXxM;Oewe9Q?w54KRB*KhBqRzW;*j{eB=ee*yW^v8lsNm?zHzR!_{p6?Pdf@^QUg%Vvaw+rgix>K=fMpZ-Pbh37U=v9ndc4P&=9>Xdg z;e0QosA&@?zvre*E@G*bS#?uh6u1c)pt&D~Kor$O?bL~g)o!Kr|K%raK$RP^pxBM! zBU_tCA#onO)!HX-1;VG{qG~60`RS__ciGUa^1BtWQd@`5vs*&6kSQr2VCu(9*Zt}j zFO|PbSY)%`01au<-XKyLs2db9I@EB(uVbVdH+rCp);cR2k$hsrrq}g7M`u|Rqd-&; zAd_KlY;&qbJN4YqiJ-y?6svNXoQ*MSQpVW=c;a28_jQ1r{hi11T=Gdv%0&My)ew1iuw+A$Gp}l zk+`-~eG!~fl}x3svVtBx4E+WIM%UxCf#|)`_l1*4NB&yYku!VcJVgU{KaZs+lLRceC2MT(~N~g2rsi_Ep!qi?O=BQYo&c{1pZ4tpU zlM0fI;xx7!zZkc78JIOv*Vf)EDw@fiDG5kL#K^3c9G}AI-5B>m{H0kaRb4Y3-!aMk zD8^5mawb}`6f_qgR!yA{rYfE^c^Clm)is;x00_k-!c+EGWkPKD2>1*Os!up0?O{h7 z5brULLet>_>)&J6O-rfbzEl2JVWN<9R1h$~SI#%d7Vc&&i@AA*Ln>Oh7$~H!RK}jx zz!l>sy2}alMKhE~}WOzzd|-p zOQ;(atkwxW(VMur>HQSk9@&eA^Ak;9Tc9&bKJgc=8q?`#%3o|+p^JIQf($}Cf;B1R z+*{Y{{A8^irXutNmJx!dK$(i=RHj`fy`8ip42Y&Z;}Dy;EDz?2@kPV8i9 zI)hd@I5gjiH5KQ!J_y1gEK6&HQ+$bFs!qA9IzB5uaaPtdUmX4Rv|J5&Ey5}yzF^UOEm8`fj&M_Se+bRc>eE}$T&xn>gUbj|D z2~!Qb2v%JsX13#NGRjaoSjE~I!1@Zpg6D_4$^c(4N|@#T%d|XR#^qPzvxmTWM0Te7WQ=U31|FeI*5lESZ@vAWx4*xq`O|BEmxddtfic!= zRIB6ZNxyh>!?k-Z9rxCq&z*dK?)}TKTnFqjl&|CbGzp#>^({60D-YDAFLWLp>GJba zrS9(y&Sm7D$MiDV?@fibr@y;>_4Sv(|L4y>e)m7V_~g@nK8rv8x6gn5^>06Zm#^bW z54Y|`0^m6ZFICQ zk~?bjjB_S>so-o;8YW$@#5?-Z;zsIl#n|?^d|0jF94Cd_HYWXnTW=lY?-;U7#?=t< z6$Di6hP2o@wWU=_VmgW$tBc4ds&+5U_qyomBW$Z#``j zf*ax@QgX0Xi&3}RIZ4HuNq|{@D-l6sA&UPR69kl$U=dlR@lj~9%?*+{9iFE^oalk; z1`@6n0;Hf_f28rF-#x*)s-2J+r7@am){i$J@ z?nO(ow6{XE{Lz22>c9VI`p-_n=)t?7#d_op#fKI-^-4lD&A%Y_=gCv&N9N^c-sLbj zzHfi@tpENtU*7AV?>#|uIBEwf7jjSv(`?M&`ZuJhk4dY5wc!iGx`C2g588I>T45udkh8_HHwP||4en+dmSPdI z^m1tID9?ed&*Y<9tjyQL#-v2IY3Xj*76cg~nUvWz?}5Gn%#9$U|KDcRL#NTNqj!6TGY##qHmQ%!^{5;p98mHfV@@d!v@A5)yKrQC5i)UqWVFz->O+& zLs(CmlmFbmL?Umv_irH?2fkT_?T+9)dXP}K>tES3$*kMpec_!O-APl$3X87&`r{6e zn}6{XOt5Li3bfxrNat#@0M=bPKTX!i| z&N3PfQ0#j$c`D=(xRA&~3DGRO!O7V=WiFdFBS=I{_~l8On!CSH=U6GtJ6S(Nj@%Xm zho~oZ${^j6(s|V(bS#o65#i9o0TtY?)AljN*T1d*zUKi=b5&)@t?b%%i-@+|!xQiuc7MU7A-Ui~5aMj0+6C^m1F`y9ya zSm;&OuUXx#rUw@vM?hhC|fnLJA|mam#S?*LJ62Cp-NT$pF}ul*+qnc5{biVddR+-Nkw{VNW6%5R#?mFuF>}*HvD!94CDD*TDeaG$H~vPDx~o*ZMQfnGoHs2IpOlbs+=qYNQyx3 zfhduHrg*W05M;_q*mzZ6$<)j`mDg%5d9xAMukTmjDl1x5#NYdfJY%N#dY{6|>^ap6 zHu`{Dd|^}Qs^;ufHZ+PB#KQG*7qZo_H}On=`~EXROp0W%<(OPsz}M-q-hj3$IG)(U zc=~mk|9RgG3**MZy_PYhLQrt>=(c%2nK+HhkO{s+=ZkbyMklUuL_ua&qH!Z`6VxWA zuLybM)7XM4maj1QPZbE+%F{V^!{bHFV#^pS%KK#VE>6~x*NlpKg?nnmpV=J>uhJv#F4fmTehixl`h2L$Skb>6D?QQ zW_JQhb-`?lbE9$?CY8{ls_k6TOEVr_lJENO|Nj~Ay@p&eOK5Rvug>hYFmr3O7N>%G z!kab8!Ih6$9noO|*WN!6z#SH8MNvYB8R4!fWdQzJPD!Uw7mjcO0c$h0c-3wmq84)9 zQw!U@QYTerod(!gt=786}DH%7V3V8P~z<5RSTj z=v1swy7GV;`p1g!cFVVOb{jqeRUczzYac>yHsbFllp@A?;Fl^=8}ZMC1`be*#P(0W zd`9c+d_0+NopZ3*`)+4-e&9;q&p(KZbR$`OaCXX5QJO#efT3`JW%Fq0?JwNwZ#tYP zdne3^2JxX*MHJwK`u1{F*wp0iJ9LTFD+c{2UAB?WNvNdkg>fed7nx6s%q{yOg#!r(-9$ zFwmmLJe9U}<7{e+L0LkA9b0>TT9zjuxe09xOU?UGY_|0jv_8okO9-(d)T%Tlxg=J5 zPK#upZn)(EI=Zj^#CoH ztUo6{7l#w2Uum)GSUAP5<_ElePTY<2$%pnHKM+CE!6x4x^?Gq+eZNtLIUp=qab#=C zTK9g!@w%U;rU-u;9IE|Pc!qMdIxkgg8 zBt;D$l_o%p-kr~muo zcWTYM+n4JfMI*TW;@_UasQT}{2XxrZ^Z5w57V0-WuMT7+ATNk3*V0+- zWUWZ?K#!{VD+D7>t?4}-k->HYu~%jW&8I&JnO5(^h57niv8UkkI<~a${qfPNsep|e z0}ut|x*$WFJ@?8%G4AaYLE29Bqx|;oshm%cQ`6m*pebku7rpg}I>%}Tq)W|2%^Y3<8fJ8j?ytNZ~jrLx8t+elXEcju14Tl$C zJXAzA_|i{~q4z6*U&=@8gG6~Vjx7t7z0H-_t_!3Xw`Tc+{agB@weqrGe^aOW-=sPY zk7>XTr-w|>S7z6(JN$<-lcO`njp+c;{28EwQQof1^RGWOzPq*9-_`P7up=wMe`7PS zAGtXK-?jm7Y5aSPcyjW$sr~q=Ff(9aBxqa0{a+3HY$fu|JvYMREx1P@~#)HtEOISn1Nr?D~xVHvrVY50~!HYyu+_Z(fA&7ZZ z^J~K&z0`{S`<^R}ziZ8$hG^7wk_`xct|0XuoHoeU?$*qKn7(qf#6_T-XI(G0F7i+_ z;*I>CBU5RJO|lvvF4_T6%I)=|Gp|d4UL`WY#@9*0K!l7m){YR45|B3kzQII_=G=51 znc`mdWVEWlnZKZ70#E%3_$4R|n#4gIY4LjZC@5;|9+B}j{pE~XEW~n9Ja^d#4qyLq zH^1-Y5pmnrnSgAGfSC20z{_4$64kAaF=GbZWv_V8VO^I6RB`S1bylYvlwb4%PLsFSfAhptYo07+LAi7_S*9sIRw~@aEKR>N!~y4 z#<=?`S2{A$VN+0 zCtrT{r_R-U&eL&nd$(Uc&lo!BZO)9p@|^jG1MA=B%nvkYyfBK(@7(l6@GT}CL=s5? zy(yE7IidJfyOT=4oy03Q61{!Eemw2F6PpwW;AB(1Ka%^-#!*8UvTZjz)u6R2GN>sk za$lf$_Wfesy*%tgFD}uNO8SK&Uv8&f9;q1_EOr(KZ;J#)<+x1~4i=+Hl;gL-ombQC z`q=NTLfRw}eIxtyp0>nsIZycgc0H#lVWpE}z1IfWE=bEtS_afV!ULvyo4r_T4sw}t zn^Lcp<46HGaYTv0L;g%DIIXk$SVti!MujwJCaEE1R1`%ZX4biMTdzwd&4Z3@&s1ld zb|Z-DGYesuv)S{=tkv;+a6(j~uD0K1y)>z@<0vgw;Vnr)(MlpOR>5W=NO32?XChIC zN=`VOj(eQv73PsIJqf)cb#tLy6miLky*E`jazxb8A*jr7)`(9?-|L>m6IEfz8q%66 z;}|*?3u|MlvHQ^1jTe0&uPO4nl{DiyO!77tQop*qTAR>+g*$6eJ}BTwQ3!GcR_r_y0ODRxr;DjHM*cWvmehN z#nb0A*0}w{_4C5Tp0_Di#@baf1g2{o#0#%aQq2=D zoA?se?8$)P8Z>W(d}s@hDrHOGMg}NqA}D3BDGNA@hzUycon&$?1@c+!8W?Rpz*Q3S zL==P4AeP>>Ry(Z}S}_v*N)T&zd3wzv2UoPX&Y%jg(8O-CM8*Gfweg+8FHjR~owDvzakVnv zmZm9s7}3DM4c2e!c8Sxf-D?@WuQ~sb@bpT$ULWt243&scaD{1lS3h3Nt81;;6GXA{ z1_^t~q;$&sz6NX8OQsHm_#1b5l0jBh`g+d>S_n5PjnmE(19Wqq$zIZM;`2V_{! zCk!GsrT+6|VcI)K+Y&4&IGd$s6nx}nOnq+Fw~yM{kFZp=M?Xr`r05@rpMpBdm(c0I zeDd{|pa1*c{W#sW^rg!Fgt{?EM?x_!wcC)rlOE`$;?KG@1fmoePlN zHS&5$Pua%-lW695eNcDPu0**69Yd;4HX(HJR@TL5K|3C#DicAK4Bz{Whx>OCyZ$_( zNZ(b%LCxSx>R~Y!L>*GIU63-y3pkZiknD;~2lUqR|b=vfnx{4MrXkH`=+o1oMmgs^&m&bpgF3_n@+tIsaXaMR~=U8Q()k+Zb$hsh6k{zww_d8^(GH7#wyIjmL z^^Db*+sos>u`X|m8k``7MJ?z0wxA`5X!pm*@%9h;IP&&Q@C7OC!Hmlzmo@(cT-fhF zEC1~uuCE3gn*3_5tLLjFyON*Y9OVzc*biLBTmJTspBJZgzIbine~B0KK-mM|{bJkX zyck8eG9NGBx2HF&z$($QH|Egtow$5Ht-DPIoDX}eZOhKlklS9K=A`2DRqN(O7{ zo3{<^{D*I^mf$NJ5lKJz77zWSEB55gmEjgB9KnAY4qf{LUbFR{?mArtxPe(?xv$j^ z-6weId0#wZ-6y~Jcixvr_?&wm+@Wdwdi_uSY5mWyKl{yBy7!CE|M1_n41B)U0Ts4? zRG!B_t}p%F%l4GF?P*51^xmV-=jrcw#ZSKaU+abc2T)4~2!*qL*(;#{05GEg08mQ< z1QY-W00;nTcd1qY000000002Q-vIz303ZNib8}^Mb1!ptXD?%KX>MO>V{dMAFJftD zFJy0LWiE4eXH`@U00$_vT4a$8fnfBx}LfBMZ2|N3wL`uiVl|NVde>0kfjH$VL0FMs*>|NZa({=fd~zdrt}eEi#= z|K;yF_3z^bKl~s6+yDIcfBefIZvXt7AO2U$$1UYC&-ly7ag&_{m81mPbBQ&HdJDJWCwWElcJvDgHA1nT~j*+KyZA_15AyHIDWimz?Qi zjeHw5eH-a`IzmtQrwpaS1un_atzlh{bQ7RkBc84CC;tK zM{V&Kxz`VdsJ4$5!zR7B5zAtCx?q_VEkQ%UV3t{#u` zv0|u7n)~qlIMSI)(V(Pbe6+Y(sr4fx$FCN0JUlOv;$bsCk5TLT$T0}~oKZq9l|f1+ z9+scSmtZc`xT{W&FEL}H)cD3so)nWRF*lh&V;_${Yl+XRX|p~w+v88k`Udg)>aj|( zrh3fL8e@`UZl->G^cd61ARuO*qON#Y?iOdI6~A8NLS6i4;j=NP?S_h@o{{Jf2QxPBCVK8hw#ih0hr=rdkNgW2OT;^%Wn z$uRh%qBCN!`E>Er1%)v+hNzL=JX!=GLEMhh^nWpdYXim;c4UT zRtmKmT18JAYa?{yWMCO1^m$CG8FPAOp0;W7bJ>FxKC71GjK`go`^QS3A;;W|MbADE zzmIJpqd@q5JSf-CHMAD@k1rSMYoZMc_h%H-ZNzu42lFNtWsU7|cCGM%+7FRwP-Bga z80>NzF=m;`IYQrrej1_t5=&>qQVL}`Q05~(^@u@kE##QPJpG6@5=(QSqhnM;uIv

    oBq&xj+cxf=`%LIg9RNEC3c)1?--MS1${7aSmzDB(c|S-$nmiK z2xY7TE#z34CB~{-YlcPP&9}#=3q8`=0Z{5aR{FX%M!xa$s-2>t6?yy~GcMFwixJN# zgdU?1w`(yoxOvgG)hb_tUuX7y$uq^Y?x7}P;kFpDf<8c*#dmM9j%C$wJoHCh)5<8+ z$QJw5%@ezSWh~0_?LwJ_xf6?MKTPNkHiUvM?J><_jMxxjGWhqQ>)AjOI+ycv9Ow2m z`Q77qiEoig_shrFVQU?jK@4IGizq%kx`3gKFJ3xJUWS<_LW#u@tB{|^Af}MncPhI0 z;8T~X#T8;km6Ujh%03w9#D-L22tqq^c0)rH*2vQ7GE_=zvWGr&lL{!zFSK9pnx$d5 z#bjr!V z7*efhUM>`FX6h8CMq?^u{y+u9+zmrGv*=$6CwUmWg0N+Z4#ix;ti^d`S_6in6ylP&dJdrz>N6Xo~nfxkQ0m%H} zZeax_zh$ST}KK6jnW;tFiUH}gO3n4R=kA+zspP=1j zee>>^^>NeKHLUrwjVZ2@F|IO(Z%k6ma6%u;^|Yk12IH}p~tRCb1M`S3?}NtCJcoW^9y|zQ#A~k5+i%C z!WrVwwk3vc$pDV60naX`)4^84Y@VpQ7$a^U)*EkAV>;FnZyz(8NnTlLHd%2dtHua1 zc9uAMphLMiCdZT)rXYXUGr*&w;Z2~JvVo`S?u8hPbOoY#c@8|QS7&7+XRWB&hgmcRP!Bi zV3>~a(lG;LU(wH(EeySbejOu^!4a;K*F@-z!J1&Nc`L5{~QC#DVhFRs(W*Pkee{owH=>tNf&&3ujp{KF5o|M<(F|Ly^E${s^53(p zOXx5Amyau5H_+ccqcPz|gdTZ);IJRJ4H9gi_bpLVvc8h+g{r7#j>xb9v-k$mM1;>y5$Nb}8`yy>+`D6tHe_rzEpYQ*! zx7$L;P2{`nlWNT2!5ZeuTR45vdK~nh^YPFzvLMaAL3#8btagEtBLjxMWP~toHK0R|$I3oEEWpf&@hunweW>9t z#p(Kv!yhun`{lF#!~d!>@Hm|Go!{ixx?}g^;}(CXMkq22KLV;pd~5<;mGi^QNRbuQ_@sKB@QY5K?x+s;GDa8{np|b*4RgWFNFwV#)qN07?h?M z0sigc1BYi=Gy-XlKs@g$Z+IV_n$y>hF`dip^WyBtpSPB~d4D`uj84o^KQy5U*-3sO z|8c!6#%;g1?3ZgS1C5e~AxwOXGiGa?&f|E1HKHrbO%1O|clf4&ix|03X@tlMID(ea^AEuC@jMNl+MBb@ip+A&H5N?WX% zu&{W;_*%(_R@H2b#cok)ly>-NyladxUnMTowD(o4!Eo_(rI4|zG&bGm4=ibpw;{R7 z89+h$_e!O3{eE3P#e>G}yKdi6tS3*$`72&1%zPePhw)sdzMMte@=ysw54UjonNh^9 z7NdfnV@;YgD)Fq0;(?0cczjTWq?XPm+RJ|NH0Jf!>wEsM%DP}nKVrIvA|j$ch;bh= z%ZXKm3D8R3vD$TOBuA1>jCdgiL=y4&qK(F>v-nc4(*5mDf19bqMHNnZdi(<)gU3e! z9R$H7vtNeXaSM>~;A1@}B720UNw>t*VhSR&i!|wF%Y<&?8}JUzA3SV5Mk5^x7|jo*_f z)L0kg>om5Om0j@%Zr8W?Wq%vy80%CSwdIfWBFBy6efz#}IF5{JzVZcOJn~|dfYX5q z&^4C_*~l18&AM0l{&xMp)l3_*BYe@=GY(Wr-zkyMJhA_fBTfgQz#`|H#Bhwp(#{dC z!j=zmTa8?)eji)JjNjwPRmnx(IBqY2hy%;7NgX8JKW1vdJC8vrlIw@m!(gZJpdFz; z6zF2P$+e9^Esl{ZrOZN({ZseHj*6AQ6qRlxhQwrym2&JPP3#jrewKB=Lt!7n!v~9d z^~dI2^!(UkO-5v~E?j!vI4^7Y$Lx|3NxDMv)bZJ*sP^+)-KEF-osJvs_fJGGmZOu5 zPkel$87=Se%kh2M)bnY4iFOdS()+M|H$_9To>w-&ow%YEU&9phB=Yy=d;hY(|K5&0 z5HTCu`6l1ciB&Hu6%#MQtd!m(NqS-)SErxjL(8^mdM*N0Z{q#!;(wc|Otua~CK2fy z^*(uZMeGO?16U0j_FZrK$F zDZ$pPJo$k^f5(2$LNhE*e|z=M@%%ZT=WO2_&veAvVe0u=&o`MIYGXG)G!UmtU%oO2oh5Q_s~0?ASzCYp$s_mFvvQ`t?+$|o^-3OR_J%3qQ1Q}KGqpf~Qy zFA6s^WPXwl(z1>%HQjN;n$Qm&iA}uh*lyTY9Z$15pg7xo5GoeNLYa#@dElnhKtf!x z-;pOPsVfTtzC-X4BD=`XUoHQ-zupt3CjEBI^}Q*Awj;qnk~tJ=Z2VI)x#V_7m&R9& zH4&=vPB!z1Db5O!V~Yo^1hYcZaW)%5x-_rHC@FPMsPm3pa0n$4OJ#%=DwG15f9#5| zafpa2)sNvEnjf=zBw3|7*-LwR)~5leKc7FoP zmqpd}Tra}C1GSKHC#T>?w3&e)8I!Ll*N4q17rrEkY;B|bD!)GyyYfF!X~hl;qRj&)0tk=5f7_vo=k49DGRy@8q&} zVjk!QS=PWeii|KDaYQELWD-r@v6^fd{2hLKfM9u%?zkI*DaN1m&TTZR%*KVhwp=7* zUM>TzYOIU+qP=Sk;z-}gKqpN}94dkmML4pYyo}hIyaN)z3~jRH@n}~s@pF_7m%Fsh zi}HC=Xyxa$e)~;@Mka+AY79|hiM`6QubIN}+CQQhL zS!vDDrCf-nm7V5HO8qUv_EwVLnshU1ZAEpH?8U-*y)o%KMi<|{hxQI7R1JG0U==!C zpPsZdUThP%GoGA~OIyxAjeucoAWwMC!8 zLzu~kx9zY2jInK&eDc8n;a-Fikvpt9vlPnN{En94hOh-ayb5g>@3?=&;J-N7Xr4{sc@` zLfvo&M6%RV+9uZiHAP>=U-k@sS|0i5`P1>u22L72tDlUWFDucFX&O5J2ApQ~qy$Cge2@rX2axWloUeIEYG69}RdH03k|&Cs zV1IKQ_=Iu;7#T_XRms{QGEtn0=UJ3W0QJN7o7wRPgWR6tH?Q*TQ%*u9b=d>Su6tRsSd>XW4430|Sq8-D*!ACJslz$^`k_6? zariL7sIWIdt#WuyS=)DgyHxkL`(=O1r)koD{`vgwGzmS0vy2a^{Mf5}>x6=ow;tH$ z*fgUyY1M({Ks=84BY`2Nf4A>V(nnbwEUMn*i-uB@I}6gYD)5fksEgas)wI!ZB}GW_ z9Jp7c1$IWL5uR;%i zc2<4#spIG!!v1^*4j;-0-QT{;li%Eb`_p%~&^Cv3dj+M3u`vuBs_{(37m+bqYj%VU zv<#T6oE;SmZOQ3{$P)XAFmho$1OC)b!3GH)2xU(Qeh7cxjmZRqq9{U|k`zn|zZxHy zJqZn+01Se(!LOKx`d4pRGN(aR5UR(xkq^8C-e-H%hL@-87UUwCK!6jj0@9%NlwRfH z;HwlkvmudkBXDLDQ2u+9_7IwM>Ui>tzR2hMakhHwGNKDCA%HI%Vlw+hhfRd&Ra6?wQ^0@F%hm0h9W$hc)W8NC@3 za`?PMHZzwS1hV8{2^ol=XctQHo8_tuY{FxC5enhQ>ore3!Q2i3l7-n4ijMq=WVu=t zY{`uzJ|v%=>>ctU6WwJRx}GMVtXm;b)8QhQYL&w7QXDTR<&sZB0MpZP%u(qSS?CH@ zu&Fb+6?mn9(;khr_KKSx4IWRvQ1$Cm>yq;ZeNJJCQ*17(_#uqtLZfGyN};aDC(gIx zVH}#Wdy5EP$QlvSqGEEQa4VGI8Zj_*at&*QLyJ0+pXa z2N#_95#D&`^O1&{teY-lIgvzN>8^E^uXR=LZ|m%HG5?lgz3-xRh_bUDu%@M^4=pzA zLuWUq)|1TY8(wQw5f!1&qPPSI6%7$v__j*o_ez0aynFGYnMs*|$L(H!T#pge`Bg!K z=cg&Z?x*_O#3QE)EWlk6LTz_ogsP2c;W&hdrNq)}LR*|~vfPa&s5iL!@+|Z5PikGp zfnsjjn?WTG9~TrAQ?k$I>#cm^2PEHqsx}6AEbeCu%_aATz!5SruXRr9I=TwN$dbuw znYun%GR#HxX}w;;LRPI#nttB+l1pwAas~bya{OM;gS(v0W!z?nt~|t8s?DQAX%Nt? zwjZ~&6BtSN>m}Dg64l_ib92~)+Eklrc1|)SO~VPYHaYM$FRfmkbHgVFZ~#pG*lWAu zjTh&z2w~Q-v3pIaCLITDcetEEieK67KBZY}42J-8j4u zLh>Qta;Uy!+b)J@4Fi;AWK2aA1RZDglo%eJulxWikYv!Q%tsU2KIt`x3$YGMGdlnC zc;DwIl?z(t_}s_0YF4h%IVc_{yb#$q9k8#Bz-G*$^lNs(0!oAu0Q6=xVwZ2qzpIp> z?3a3xjrrHEnU`NO^sPz<_;X{9^|0va4J%C+4M85tnQ)mdd8r(b+vxP=Ups=E1Q?K& z+@H>^ihQa%p(??$K5SbzZ}6^g)4%6EPKk?GCAd7!I=^^J?2eKbBOpUwnm1gZfgFlc z==A2VTKCr!v{{*NU!8rrsJzOx6FLq^rRmuY)|m|OF}@pKgvcn{!_t?l); za_e^qZL!^uHB0x%rnYNCmd{T`AEbgv)5czXeI z;tV3$ZEDn2E0nx{q}VWC_md~n`Z#|((|3ad_~mJ5j?Y)|hDV!;x@?i>o>Nf_0<6>k z0`+ApP-tM`LQKVk!aO4A(NMh@b73uxV*@ma?;X?!5T~t%k9K5?$0|H-Y*<(ySs@gK z@WOfl?w90V$2WKtH97)gQrMot&<2Z2JSse*NxnKec6H=C#h!>$^-lM($feH^hj5?N z2*V*jJW#U07InMrEVz;;F`GMRbEBRT}4rj*z5+7EB4$>z_#3m zYQU$4ruLIE)WrJ{YooA~nM5E$)gkd_e2BxxiOo&G$e(h|G^2}2V^bcH4Du~Pte%q? z@^V<6oH*I$#di_cKz*0*Q_!NM$ZY6~JBCH?hRMe7?~`E99=}+>civrr-3*p#{Hif1 zFxM7=@+I%kCj94 zz;Lv=?xPnMZ-+~I9|O14_^>+fZ{zv2Nb;G#tE(sim%dQxf4nt#6OE#{FjST^B!PY( z4k=0u$HC@tHTt_Vq}o|1Sg#u4Wk_yIkJF`2nl>nm>Ck8^H1B0;SC2l=L4`w6s5*hV z0dK%zlEa`gu#gUCDq?N(t+c!*mmPj1fW%5{O#`Y4%Y}(gG){-(S(`Hyl&=F`tl)We zk^yLAcze%MeDWQC=hL&sm(9%`{}$qZS`>mmIZ9f}^WX0R`iu8Nj{bd#D@9T68Kd+n zsw_Z=d-Rd6RMHU^d@cgsS`A7AQQj{-b;()p zl6PSSmbDIVIJrSLucDDws@v#NKMJ=_S7OAU_qkjq5Nhns_YoZZP?+@2q$!Ub>#k~y zjaCQM@iswUkWYDhGkmY?W>z>p?Bo|I{%BG^^0l%a3v|8oxIPZ$y}UnkHppE&B6;R! zd1^3otLLjIZJbH2Qcs^OlQn1kta)-r4Ju*e>TkD?)-8h;LBUndHlkrKHg8*9>@|vy z8(OlA%0JPXVd3d8#nQNfkoZu;KpCsD1^m%Z@lEu7U*=9b9+d=D>Qp%wP(PyQnN;v@%|?^^yCBuo2H*2pZy>!9I~oqI?!47OkzTR!Ev>RyL4c*()F$IqX|^UF~t02eE=9nESpF4<+i;J*3} zDujTIUVKmQANmAWb12BRn;~{1JN2P zwx&`64v{7?5#UhGtirx?=^&UbMTPAmP&@=2G-e=+Q;&IfrcS%Tf&C=i@QXFY6Poq> zsq}B^AUzH-DJrgozI>5AU)W@%0Lw<^*ly8eq;A`sEqk_%p-;9<;-&bNM9-G+nI1<) z$)efN4f5K5_e9Z6%x(Y-1FQb};j?&tIodo)6fR9lVP3K)N%Ln_ERjhvJShYQTVg0d zoDd8!OZ4*H87pSV{<$unt58F_oX%Hmmga?wE^&4FdU<-9^l?@5fzFjLjzdGt7Z;PI zNjwI!hvcO>NXzDNzR6w@4FozGTi%e45YWB>38s5@$K(r&TCTqruz9Ri@AH_32*ayTEyem0u^s_$mwQC)A68 zMyi>(K@*jBbhOK;6l7Ed3`L%O(w*?IjTy)odP~(bm?sz>cqPf^Alt3ps@!Zmo~yYM zM@6IBz-6|}L>Th!ZQ4vPF4Wvj6HXp@bFcMAU6#!5rGw(c(o#e=_Ro zw#!S_>F^Ki>dmRs$3AR?$1ZD>LjkxzPnulASn&;j&#ocs0*nfvp4d3O7L%HLgqdiw%EyPi*f z4-M3u)gDk`IfSIJXpQqIELDtEB@3awhGG=Lsn;rQtg47G95?G6;{Vzd5R;tnVf%mp zr9xA6Uk}4JpMKg%2K$vqCPE0``*e1p<@mS;*1MwE0gX{j1RS$aR)TfF$F`{oL4B;)(vqNyz$i*gf#d{3*jG9iA4*TA zOgJ2B`+JsgYBSVy0ftFlh-d!1)+?@DBiy92T?Om}{x-(x#Gl`_Y0eLwCmsMm((a&iD%Hnk) z_M)T;Mk$HhY(s0d3PERJh1LP=koDcZ=_hcIVJDYooP=77Axh*Xi*!o zGr6N|_7pu0K{Q3Mx-U1#p~)ukXl(h|bV?z|s$^pNWfrRv7;4kE;Unl~#vBs)I5|2s zQ-;1A2CFYNl{J5pPvpsjCV?44kI7S}NahatA(%jVI3T6%q&`d)up~H#=~{%{E3T3v zh}fj#mckPR-U;}NLl`${O|xo}X2*elmCvuo_w|&P=YEGPh~Xd}#C#cJ$xJ!fWczrx zD^xF82qUcfPEHYd+Ors2Tn>ttqhEWGBJ3(Ku1R1G!r-It{O$ILn@|VrmN7i=jp=qp ziE{E7T4+^OAt7fk1Ss7O&QIogtQg-EGOmw}%^}PJkkQ#*B_}Cg)u*r2JCeUkE;k0l zP|fCA1x*AZ5restIYRZ2beY~ys)CX?&{4H5CzoR$%fS{cViVorEW17qga-C4hSlsw zJ|5)7?8g{MS+!qjKO=ceK7!z^1`qD+b&4}q->S)Lh0)QuXiaPpmT7E@9=h8hqM4W!>Z9C@}C6$()C&rV-@nSEVAN<3@maOES5Dqz-POcH8uPlGh$iz`9{R zv|YswfG0MO(XZ#50t7wDMC(puasAe*V(6h<8sj$w*csx%?v}~HcBlSCXUX;Xikd!S z>V2MNV54o55kNhIc_goVUEfoDb^d;U1W&|6w}YgWcujLjyC?h8-A7L z%YdK4>-W8M#VdAlJ?)W#Qt-IT70oPFuz&FC93a5iG|uNka8 zI8qGDgGs<$iUDs#aZ=0{f^=T|P`X-+5NA+E# zf`yoQ%o7l|J?wn8CGD<6*1PAe5H;b$b(^gMNJFEWn$DLRKrVjOYIal++Puh|uju5) z$n>IDvza?(Jn(!zpAcEoyiu(f0rq5B<9ye>m&(9C&Egzh(A+C zzw5^dygRRc?Uw{OL2^sSl2IVfzCUI)@dMBe>*Os9L|A^Yi&k;6E>}57?)Lkl4(}$e0$?5y;X~oLkS6 zhh#D5Oci8Zb{^M%ku?+iJOtLJcHgFTfTE1eKdo(p`}7qh#J zTzvRAYi=7FLr=i6Zkv6?@Stmq!^^Uaz%kn>cCG*-pRzvB7q;p7c(I{}yeyAT`9yx) z4_oLVS2?3VcKkWP|7E>ym5WmqXc36VE{wDa!?TPZj31t_qM&Bk4$9Er)a$6~Ef}1U zE+Au4fFo&einD7NpZ3p4`<$$5&pqWVZf3{dz({fvSG~00o3Xc1W@LY^3phrl?M1oC z?(!<1UykFimF>@=gX-Q(3#r%8QE69v6B$5966?A=eYS{K`5a=f5_7HiIRsoQ>fa*b zlYucW@0&V+b#`?rS&kIcdh28J^bjc_WC#4O?ee13?{ATnryO1WvDR-^dZ|x@B67G8 zr>JjYLWl!i@a0XT3IaCo2r>0|Vm>>SD`=+aceuG%RZ6j16;Kwu7;^ul)0>bVR0oMw zs%fw7;_ABM&2=AkqG2dVsuFSnCozpW(?Hjb2fsO3r>unXzXa>L!pluObC3@^OYtI~ zUyoO*aX$KHFmMRBJkCE{Bs4we`8@^|T-hoPY(76L5ppW)l6J9#i^Ho!iPae&Ta!m~ zo@6TE!37BiWm9(dORuYFB)e?Hrdgqdl31ff`mJa-Hv2R&qr%a7hZw2*!3=2j@GhDj_Qck%jO}pZjI6$} zcsIw9dv@e;DoG_-$WUCL^I~s@?Z?%GT|oq4WkjVgl;H)`Q~_zAF34>)b3J9nVy<&P z1==NOe>6tJtY##939E(Qmfb~Sn8^dxqg8!ZSZEY%7qE{_#W`{8~e(iE-SUp2>* zHu~|$RDS-ZHiCDl*{iKXO!m*R1DA`f;F5E(xmkTagy}WQdUqOH5b9462SYxjliqX( zGNrhfjNAYP=RvKAuno*+p18CE>o;1H2{MvgY)txHtKvmAFk`wR-11!FlF-m+)tQTl zt~pt+;IC?SBo9%RnyCUAWZ#V}NuhfQp>m9J3I_PFO)zu~(!9To*%MiETdjVRBuLSE zVx9-}Y}4!n6fr7m1KV(Q6iNHvP!5=Y11KRnlwrwMw;E#iQd69rYvYqnZ}!<}7}P2W z63VLbnUA&o>%tF)a4Xu;wDqeZIWlk1j4E|f2@&#SS4O7skNKSxh|%fA)*E!X zOunQ9VcRtON%f=zT^5zL%|Q<2Y7Tz~k(4^tCaI8HL$em;fS4MHxb-*{z7hLQ5gcIO z_Z-zFCx|>H^TF{XRn6e{R^Mu=iWhfVx1!LDiM8ygwk#AO-%j;l#pQH@Cb%>b6E&Ga zs=53HzfxPGWdWSS#e*K@csh%~x_>2&F_jE1mT{2;_K-B>z@+To9`={|b;sBo2u_M3 z4q4#1>}(XzD`3*_HrsIQ$aYaEEO~=QaL?zyp1@Rod-z|#LKj;MysyAX)eT3)v~1*_ z9Os5t-FIlPSzB?i=pfni<%@S$4rU%@M?fGEU95s*7p`<8lj`<;s2tS!pa{Dw2dmyx z?G{j)_|?sv%&JOV#6`=l-gYNC2W0%@D1@g;-`lTy@;@!8pMN@9{;o0<@cwqC7~fZO;fHb1Hq69VpK` zzk`UiV^{fEzKaF|^M(m6B|6kBOYk2ZclQ{vrDApvI1zhBHSHuZ88^He>Qq<{Q#z7t zq%9gr3Hb|?r@lK0p~^^9{av9;$)pDm#fd3OI#QmrnQ4OWRo9#qW#2?_H-_c0krHj3 zk_FpTDZP&$8yTSx)g|K{@AEAu7m5~_*b53_Q7KbGR_p0>0M_g2a#i-`<83ekbbd0z zH8qJ%8KTfL_~LZ(F!^?lW4LrbkK($L7d`O|vi)(^?;;Jai?(9$@v~?cf$F1+3p<$?7|!euU2SpXYKo^rJxzdXs1Uxn z?zrxnRi|^5N2oiVM-IIz{^$Uhr}y}9dn_m)P8AaG64`xJIbtVwbad?k%#?g~^?2*r zhsq|exgkD-*uRz zt)Nxjcm7AbY4!{>l1JKwwaKS{iYx8V`Au$(dZ(@Bi#r4^ouaD?YGc{_8cX~df;d$# z=X$kz)3S6g+M@HkObJ0;*M}}7?@0V^%;XG@X+Knlt<#0KjX9h>dBqRoZBSssm3Phb zk_$uRU35pF&Q#UBuS<}O-_PMHW>gv~ke1bD!_m2zN|<*a-dFkjE5|qS3%v%?=lTVy zfc~b<-PmcXk{rihdrY+(kG-D7e0M4z$_U6X_S8uJ8n8cz5kMV) zo!m7+jSJ*S{`S2AH66Ex502-d#Z*LCme%8!aj z_S8OjwPI9bz~LBDL;p6b7IlLr@@PA?ZP#nHOVJq%UM|IXZw5{w`^4f^E#u?K2X>8tFCV5a%Q#?pLy?l>HfM8K5exn9O-YC z|BC8T#5RO$i66ne$@mO!2t-Ql(YUR25+5`&IQR2m-#0-4O;mhrE)^GDERQdXg!4&S zb(ii7zGrxnTpo8u6t9sSEFNc==SK|+cJD%F9|Zh0Sytmt#Yj%~+TI@4j(-ia4u~n_ z*k|iyf7vhp0vi3X|Mbm~ENafJUYqB$V8w(zEoKoZ`vYTJs?2(q!kNP<$47|vSvZx9 z6#IDE>>|UBX_Y1_DaeVWp`o6w`}JLSG<%J=yg+v2mR4!xGGL@`@-$AMH^z;ePJ$#jnzXYu=~pIW}Y%S8O@yS zgkodK+Htk5$g@PXo2>I7rRb_dvIA2bN|oc&Hin(2gbgci5{{ytm35PFTx8vzFGZP? zn|fI4!})E9$eKEA?U%0J>1EX?5xm+UKlQyFK-^Y6m+Us6=008Dg_g%ysi|5Dn=y$SL>D|;BGg5kC+8K%AbWt3%4nAEp9 zoxNElcTd-CbXm;bVy(2X_sSkM8M`DghLdu0o0YErnFh-b6aJ{jNOsZ!y3fl!9Mi?` zMN9>c!_8#6HXPlgOZ5)|sVv#^nl4Fw-Z5D<52lFMKy|7Sivk=;MaU`J?W3Z0s!z+Q zY73>+$|en(Cc_~CqGjC8*`!X!-2rUN%Usvf(~#8F+HhqxdlmBgG;Q59SCg#*6Sy4L zuAfz&ra~?A23eg@PqVzR)U9&(bH2*w*W)DP)o7{PzHBz#p(oAglfFs*a<_)<25&=E zb=jrL_4bQ9$WAk8?!43EBK=dt)mQQSa-};hEt6i>Dj}KBS1&7A{gQJ8oJqkXu;DUC=SJ1n z$LX#vUJhU2JSpwiwWQcdX0v?pS_wE$4zSo<-!p?1UN#FhhmES)a^H-Cq#w1B10A;~ zqnUN_Dp3(P_U72%<@@u_`DEh6yM8xUAQL6K!PTLB>Wh3+qnT=gJpoaOqLF&GZ2mDd z3b>AoO%IKpbi{kw1j&#>InoDm6zs%d4eh%l4bAG$W=#(ZWc%3wyZ?e(3-8IC7UV*rP z;RkRHgs&~T*O&RMIBj7%0f9;one90VV^mze2`=rrq>YIya9(v!V)2eMt&8a zj&_R*4$031e_G0QDAM~7H24s{?<&Gumm3G!m5 zjVWgQC|~6B%W)j3;hNNu$7ZS7uQgBL`cwNODU&RYM%u_gxK&gZ?Nk?4Ht<>vlNS(< zfSrWs7exbEtU&j<$5w5h8kJ>Fb2gP<_uPG=DWPY=cgcBZ_SCNyQ|GHFa(qy$?hVz| zQd?7=M}X;OrxM!cNBR_jCX#2K{!{c-L>i_qvUCwQBOzr*Hv2_XO#<0b#DkB|CoQHQ zDAhy*Q1LVuNC1=0{;`;pn#pNI`7j?R3xnt+UE(`+<@5EczIiiPPP1>ytRc>QF%^Ja zgnKV-B7-Ke4WCW+ojF6jTUV1dW#6m0HdI*es%CB}2BGU@QbtX6_f09CVdf|n;ifw( zuF>`BQyG7qp7#Um=S$@8dL$kkBKqZdoVvu$pWVZtpr9|Vud3iiKi_0sjpm}vTghWX z5GaUKO-fF?ud<3vvNE5@8D%q!RTMKyJ)gx?KUb7m=xv3o6?ORRWThhqfP=?gZfP&a zC;23?HkX-k)^zKHWpk9~1B{lMq^72w3~he+;?y9i5q#da*5DCC^^=w=Le(jrKZsq5 zi|KpW*}bk>qoh3{Tm&_uVopr=ZJfeQXQl4OW-Cfpg|_e;hsU={;~rP>kgDWg#5?e$ zLyudve`@5ASs=5EPDI}TZ$Oa0UaeE({Nk1jpgK8yx;5HR6%6PhQZvF}HhRN#g^EDe z9iU|n^N9kHob@g$9e{#Md&8X<0GSC244?)2mm&<|w(I>xi~PEk$ukY{PrZFNaN!P5 zH!8)^>~FFSM_>jb?@$G$%VJCmaEiK`EwPC|Gi@wIGcj~JTp}xe98Ly4JX8asdM9Mn z+-w5oSNZ&Ue1kJa*)3$iWdM#bJHz!Xg7E8Es}FB*Rm#O!I{o~VT!gh!?Hu^1m}7jx zs_0iXl5g~lu6mL8P^_n?a~cLyBMG~e74N`!P+ys>%4(GYh)yL7eFy4SPG8EZ=N-!( zT~zxDPdl@^ZW&{Pb)(Cxxt!*sAIIlwep*(H7KnD$;Nu2YF{b!SI%g$Fhz8TN2dX77 z>4>71;x*jPABWvB`&B%@9u*T8rD=xIj%hT!y2GEM0FhkGM*z4~KqK>tzKD0XhywK{ zzM=c>`uaHsUu7}z2|B~F5iuWFo}n_hQx_A~Z0?g)U?A+7*{zBJSC}TEkSeZw65B); zYcFsg^PD7QK&Y7)cQVnRC5Y@{hqW4l>#n(?FH*t1@KUFg!mNUJh_FrkKtO80NayP@ z{jwUdT{OPbeHeZ_ccE`KKK5!I1lP^srjP3JJ0!-wv!-plA&hNR)8}E-;B00sk!7hL zpY$N<`tfd3-}hl=)iV2K7E-(L8Cdlgj) zo4kPQ{G2xMd1I3EiCCm$T@VRgBn@*GV0O@4g_Q*SYC=`whH@e{6*=3|au;KIHL0jj z^AI1H2(C;`I@%y%p*NLuP1Vm~&I9HG3Es6&brEKYRY+uJagaLaRNutAD8TjF*)kph zo*v9tqeQ=;hpSNmjB4m7hyxGwo2>{r;xGpSFqeSNI_t2M=QAMfB>Yvm%_d-HZVIR;a733_`0T3+G}S@YM|Q5aEmlqooU_ zTZPhQ@CIVs@@kKtr z9yh7{*pYQ%{HrJY1LLptP#+NgruC8^5dW&>R2~rjBK>8pGL(l_3BuKGFH6Z3U407e zWyR4p%HOI%1Q$Z}TQ&3t%Kss6l>g8iS`UAD!ZJd7<&VODw|CPmXa+vU|Yxh>OqzmUi)CT1kJ0v!<)J4e~=ii0%7rU8o z{!?{{2Qk%T!uLnHaB9{*LoaWf|FrR8vbBD=E^)IcCXsAj@||{uT8&1!zpT!`4RpPW zfX*?HO3R5?`9|YJYF{zMnc>%A0^u=UUA9*i>(|(w$#i-*hglaaE!(`{e6l|LKJWfo zVDJF-9fsDv$@fk_0-^uKv2^c%{ajRaA7TN>y4HZIS{&J3mGNktH#rtN0q891Yl?rm zc{Z@Z*AzLAo~$`i2*$n`9onam5go~EoZ^A`{0{D?iMYDmCN|=i&oqDCU+bl_?(fd|-A;QdizB1odTJPIFRE%J(_g^}~{2ucqX z754$a)l|qXb>#HrlE-m^_*N6kJ6{g!Sy@7j z)^J9Dvw&lZxwBQka46PBIOwyhefhML9$&4SB$ItjKi|RRJF_#-Jw1QXTzv}g{dAt+ z?b|a%fsRdQVy*pmO*(TV*F6b`dGro3gPqJm^DR>k&OC%u<}d;o^8kaD55c?xur<{Q z0YeC2ZZh%y*zE-@cTrb%19zv&o|X=`;?M}BCVCM3I4*ir^*t0{z3Qu{md7&X%NiDw zA}b-EG;E$$E?wQ5)2{PUv&mQa{BnG{Co{jU>Y9*}nS6CNR5Q~`0TOUES?F8V)xB*? zR%7Yu4Fk8dnrp5pgny_5(%emPLwpQ-bE8U2Rfzs6Y?qX$y8~8T399spXx>9iKJam9eyyw+Gd-H;a1lQ$y7$G z^mp#=u7`a`H2D2Dls~wkJ#+NMHeA$fx7*+4hT^-ZqTqjd1QAA6HkXV+dYDO75*-Ekkhv);n z)t9Zw;b+OxbZU0OAgbG^R=J9{ia0pE>J>26DhG`LKc(IU=^W}WwDg@k5GF=PPb!Q6 zMa-~_8r80mEGxMN%%%8QHgn9@ZJO|SaK%+5dJ?50ZI{7Y17AeDIBl^Ij$smO6vog} z>f5>%sZm?b!7SBa^=(gbL%1H6e9XdiO<^X``=8#6gQV`8WYM(v8f;WJ)S3 zcc)`*I!){N@aN>Te7=f0OF5@2sYn2WbwJ>bq~oh>^}+{(g>tzei!wy4k8_H%;rZ;{ zhT`$)X4BW7%G3>QpFYnixw=E}I{#I^la_+Uo2EKB|2mXGx}$3OS0>Xz&zABy2~9%X zq&q+6$90AH&gpCDfVgQ({vSj%QItsl%WGC4a7Kiw@-!(n@LmrlgtE zvt-kYT_?S-7;W4EkQwAQ2s;<3HNJMg6^K{BjVRSEpch6z`jM5VExVd6km<(Rb)Q|g zrC!DRY9hFz82nT&Dr5qwH{zpQF}BmL_jK%@o71 zP9^)20~bp{A7$@~W3uV^BHxt+l+6zsS4)QgR{;5RvWa^wOP67;Q7QcZXVPeL9_P zlEi(B*v%-%p4lCSCXshw{&{a}gnejVM?hRfaZ6DpNVAg}Tt;#2r}~8~rwvg`OFbgG zR-U?#z$T;+ms3zsXs+qvP}+cC0&%)Xi+#Ed6RaJx^r@?3LEvz(L8_CFnV-}tJx(8HI-)zc+61wm?!$SvwC73^2Z8q9A)w;>c?a9@Z2K z7wweE*vX#>J&{f5GOzD2_;41aZmLL)m9yoeOn>*G`oQgv*oD_lMpz6HXIzMVIkUWfB~>$-#1{7N&XJ7@5BN$&o(}jo;!k z6p_B+5sTe|Bten&Nl})}yzAstY(QL>-fcVQVIQcXhfUoGRU;K@oUVb5ufae|8L$lF zZdA5JoR>&4usigsZdm%KwgFY;Yj#Q$#C|nST1aWUA3b{re_#O0(h71MyhSnO?{~k0)Yh>LfBK7IRt1mXCKf? zA9Zx_MLge+s?Si@r4Q3WLgG(H`=(~3G%IKDr_XM(+?v<}oGIy1U1hfFbh zD0)T265G4Te0afF5DA+w50q8N0>IrM7}ipJ$W3oaR#gk283LZ2AccRpWK+(t4QyHK zNz;t1jgC(#WEPD4D8r=dZWDQ(twPRWE}FvfnWpP(`(i_Emm;3;(t5et>9_1`zq~K* zwPXgJ%wcV9Xx3xHTu}`)r@K0uaXhQX%W1$T<4O>JZVMOw7onP`V_7JnBwXZH(8DCG z(^(vfCwq0KLZ{%@ZHZsMMnM>S?bj#s(l+OJeGSTjDbN!hWE1vqBtXR`+V%l+> zBId!mBB>5@5Lkg&3)H@*evzfbNF2Kf>6Ax8SNo)Fr^AUhG&NK-ic#Sw{Oe7n5v}Dt z&QmrE{9(0}EBxK$RtjFMqaZSeed~LWoX9bpa9ETr97axK~q()@RjE*x`PW@5oa!T!Yx?FS2qI zjq6O~UqN^^qcs{PJ;AnPvyE%6P8V~F*ZTBV31_lMC-nkxMfG(tnlX$y!pL1|6^ zjY6xq|GIXPulD+_!f*NO9iow9@Xq-NA?a$+cK-iVrHQ#!xN z_bJ3p*N#i}n3y1&fwSv0?5=8(5wq$(MN1Fo`m)c?-fLi3|lvYeB-vuKsGoN3Jt8qg*cF`AS*&*)2uoqD_WP!x_5JLL?Ha<^FVVysZ?=FR9Ggc^$?o7{2Fy0?Qn6XRi07B1N&-LlTJ`=MCZaJ#r4AggC*w-0X%3qW2PH6s zGOaSpsDc9RM%e;>3JId=4qmj|L@ql{O4e}-xMr+iPx@}v*}z7TMysOf8*2U`D!ihM z+hr$pbp~RYr`@Q%>_C4g_R}py1#Z(}^+zdNTYizxugBq2HgsNwRyFpPQ15VC`L!Lb z9ckZVy6Pq*TrQ1M%?|^>6kJn$@?eUlB>ZJ{KgssJRk`*m%V)B)-5;Mwe%j#<^klbH zB;r`gJZztDA5wWim8PZh@~Sbnj}1EVu^~{wn|yzph)*8WZ-4x`eYd0SF6SV?GP-L7 zrtn17Rm4rmTsk{f)kKRJ4_TeR2y=ww(jy`3ud@wO2kWQ;S5m`n{N7#gst)zeeV~7r z>m!eL1>{bWw)WkO{**C|i=!6JMb&*eo`o+I3#GzJ7ZysK2uqQqY6El#lvPjngjf4P zjWoGz9UIPGV3;3!lTnc?ltV(+w2kB|-UQ9Ap|Y;xy|GQzMvmp`gK1JpiEV?_C=8PM zDEWM3^~XL=ibn*{g4Z=W+01<4#dA0L5a+QLUfsvHJc<(p6i^JiAj-JaosOEW&t+Rb zcCD?dn34?g6OXwqTURvYF2&|2E=yO>&w^9m#dUqIX4j7xeG)i2+Z4>*h+c~3@t^S( z1aeL4!J~+r5WNB$c=oj~^8IyoJ~OraIKK;PRflZNy5Zdi2-L2JZDOtI$$PyjBz0!h zHY=^f+lV*0>f00*T)X@AZlJ>aRq5@k>^@7H(8D@2&n?rXo;*K^ASdhbaqM!w)qFRV{}pxi z>C{!LoS+HGNgbJV*RyyR;{`2lRRM`C_cuOZQTRq2ILPAvl&oqzPn2Kwym^Xb&_IGZnVn99R+=@XN#fZDKj12pXH?DQg6tWm5>L(zaQrUnIIpC!c0$%D%6j z*G%1JN7Z%K?u%;THIBP4s*)Ds*z$4n3yM*+`MrGovYDXFP??=^6VHEc{+$S|vO8(R zWapVwOr$r;CLJ~{Bkd6(~>m*f14@aQ3PyJ=qD z%kDVbl5)Rd^o`esv0K3NpOxq6Ns)8uQ(oN$;5Yx4z)X-XX> zG^I?|>asdGr9`*Z#B8q?&ic~Xyp^f!j@5_BLGvchdXevME9Yr>_VHu>ZkG&px8?l0 zRr8CCZXH&=(|tDC|LU`9_I}uhaa=04QUjvlW>=T24(`Q7f!Qeh=JUJz%a}L{8bh)C zZ+>y9b{DPwwBvSGvsz&wi`;j6(k|Y7xZ$4R`2sUZ zqBV^au&zzb=kD1t9*kX&p41Py?t**&o;|I&nqQ1vU2R)sDbU5{DpoK%QfdlA>)B02 z+?P3)lhPhUYNt;&-BCQuyf(~7>fH72rSEH<5_M?<1Vg5goPV9SOcY9mlcz*ZpL=Cy z@lwg4t@~^a50~~nt_DHJ&7Dtdvgiw7n}7;veOKlY{@Ud^G1;2~t)Smk_^Z=$Q?Tak@(g`fItce`e;2;|!p z6O8X^g(;Ohi$d{t1zz-_rKn{{ea=ZaTCO$}LnF3J@ffH)rnj-zr7-&eHAjWwe4-7u3>tO`T3 z8N$@o;n=K~WChzc4AJA9Ux&+JdG(cKUHSa1y%qd{oaR>n*A;k&zKhsUC*|c z`npE)mp!si-po%wuKHbqSTzsW9GXWt-{hMZ%RQ!Q-Yd3#?Yn}zo$8xv9XVw`(PcGn zx;gRqX7d@_gE_^*EGA2t(e9g?Hw#JIEX(@6j+@auSL-n|pch{+kKG->Y|$=PKP7AJ zB{!^ioPU_}6Grp4+4uYW*Ru46};6X##%DAzpCzb~&a!7W#AY9F#tb zT^>wSGCu|#;UErIMZCENm&yAmkT2s|ZksFnlFi@9)wmdb^mr17&gR<71@3)Q@5v>@ zE@)2|XL*aYdu+Ly!1_3LPy4ZnyiF=eJ$)^Hn6c~aF9PnYg7{;TnwuQ?kVk9Q@#4#k z%?l1w;DM!^Oe(I+mm!)CF$?lId6PP-#W!*_+bh`%$;l*-(^SNC)sVfSJfUEu=7==R zeJFarX};TS(MDD*jADvW$9g@Dv)d3*aP2PhOzdT1idCCmLFmOHC=N&C=mz?U~7Y)v{0o6zX=O&b)%ZPq)%k$cXr9 zGyASu{t!T&VjS1bU|J>dkJEMsyW2#))#-MrJ{q5_qQ{HHhdaMCa3|71&(XFlvW!xNXHT+$#lT zEnQo!@9<1+BIwNCi8cjPPu{4+>4Zg#;?3PgYBjlZb;}@aWRkNTX>D}%{|iqg`QeFUSzo%L#m(Gc(!UFs0fxhE_kI#$t7*SGpV+jNM;^8L{M!mH`{WdfZK4R zP?>f`s80DOG_cG`VNYFIT)Ysvm;DqVKo3bp5!UOn$^r=rF6Jd{Fd?z#rf2s4-zHRF zrwOVh^~(irYF4P0n;2lvCl|GdCz3aI13zN15I!r^L5gPRk$Die2x#+a4%pRZ`Y|}q z;$7h$Oi37u?pNEFX1DvADn>b_=jxiD*ZKWEh|8R4=qRzLzsRPlK1`Z)xOu0z#zknO z^HpyZo`h?|9QlDnpzhzl$ais3ANxD0b=ZsS;X`hH-_NyTt*P$jbl)Yx%-ma)loYN( z{g@7e;fiUR4~Ma;LycMA#x7}dS(*kF$X(hFZMKt1Hwe*@3q@&gpki(6z5~!~s`UgZ zH;IajEioYTTeX8S?JQAD0!(yvQGd+#(aqnDe^aNUJxNg`qWS7qOB0U6c>JXe-tG{g z<>bwZXu6y?vvb3qrI>m(Pd=D#Hysu`H=Ep40YJL;zH9*e-W$~y5um`~Zfiv~UA13b z9iL~!lj=+3{4UUt&w7<)oQi4^K~Z?7nXi1Bv$wlvkHTd`g+`}>tk9~B-3e@}zI>=) z=%$XBt893ln#q|3XgH9daG8Ic_h-Y-nC>;Tln7*FcVpY7urCiL3kQCN_4(Y$U|pyf z_DCw4JXYTiCT^6e{sqNLYvW^Q_mhA?YM!LrT-S-&IJdSn zflF`YT|U)v1$YNhCbwWQtr9`fnl0}R$xzX=#%0;{t**tEYd+{myNWHzQLP8g1xduuotRof<)e38$u$KBBzou%&OG}Rz*iTSk~IW!^diX%8fp)qCL z%I#`A0rgSJ?&!hkxjF(vSbZ93;w~BcuuR)*nU6nYY3ZF- zkZ8*WJRjn*bBeV|?q$o%a`V-n<$b=(<;TtsnVi;V7gd-KQ>SYfDVgKbWP2Cfdx#;* z!&r?gu~kSkn2J-}!!P)d)gMCDx%tvHnjN@G>`b}nwW@@2%@01&`WLeM_%%9xZ@$u%~#pgvXNcD<1waQMeHJ3AqG#pUx67ajOZI!Ymiiu*_4#oK_ZZ>_LZej|X zjV0}5c=x9~%;S2WregdJ ztJug%jT3Tm4F*^?;c7gu9AQ(v(Vk~-qR+-a>*W!@Y8I<@n#-!F0&8&8|c*2TQ+|* zV=|R2WJWCSHrZsPzBq+y#+>X1ScfIqCCQyfk?XZCKst|YX+Gp`g8V00Vd`NX1UjVk zE$@=NT)j;~5H7o>`N8QnvH44t0@pwsBGS-{qQ#nkv=Ra8!!aiP{UYCOo=hPClI(}7 ztS9c9=hU$$!d)SIoA zpL74N-kir?Ea%hT?J^D5XC5-ym1jOylqkbJ@scYFM-=B-Jld4nlIkbUNkmcZ7F zE;Y^O_$jMzBf#-}esw3WWMrwj+797$y$ZIoE>xL3sBULE?cRf3YmS;aS&O6CmzTU_ z&}Lk=b-8CMi8_H8hrArT?IGj;MRtrN&8Np{hmUuIhBACCPlvO5Kk#&0&&oIG>SJ5I zhO=QU>H#8#;%B)!l8`*~?5SY%LGsE0elkIwTe*?GGD#B>1xAvx)49*>GUb|A||%1Hk|pa zWm49D(`hFAw9TMtmKjB=06%AqgPND1wHX)63i93}c=aNdYI|@xnjMNT*E*TXwB2m< zcG+RHwgWOnjZ|n5k3K28-KaaRKTbAtsn9q(1EB9)Fx+*z|Ab++gj;17A7gL&_-T31Ri&V+(#B=Gu|>9y5(HV9R0T*(tfBbAVd$x)#)N(>mQ5;5xl^BL}-OXI+@2 zaU44z27+W5N0_!s5KeICHpaO4u&n_c!xeScR)0gA`T+pxp+uiTqDMcM3gX0fl)*wwv+60CrhTP=u8$V3Q8*2HiN)v<|5S}if^HazjM?# z>3ls#&D1PzQ1&9TC+G7aPI2H81lzpBV&+)geF#PTtdkqWf1qKGtGA&^kSVc(Q~8oiDs`opR&CTX)&FEPL+TRI%hqFAK7Ea^1;v&#LJ zS;Ed&(Om>DMr(bSDfStjibRv}E4(@J5%36Y(+h&CTLLpz15se7Y$E^Y)kG~=0>f0l z6=IcF`3_T^*qyWVzeR4YG3GJ4Qj zr?|dqsyDl7qG)aA>2)u}^2q6E6{wz2 zX+M1&F=kP7rEjX)oU2KN-`rWyTv0FgP@D9hZ){Z_+G_L2UNR>lRV1RxRVzV zTm8;4@}6!aryAUoap?WALRQiG84%IrdpFJcS@& z+c94s%nmmnhYB}D#Bf_`W0TytM=hC%-%japYNqJ{x6};H<#9_{{%MA0-kVNgwD^Jy zRrRllD2xHUplX&HPq_q>!@bWSBCG&>6DjhuQ zQd24EETT%%hT1h4uc>D9YE`H-qO14OT?aW%JR2q~NgoK10eu5;B8M(=5NNg@zXna3 zimna+6Z*ziV=W~yBk4u7cIWP8qNR4A6<^9JPBss(acdgMqXd=&C3HVlA)~m%At_pqL~cyGaPR5Pl8WH&wXV0Jp4o<#he3 zl*SwvAtg!#j=@h{0OuFe4XYpBaVVN9@uY*is1}l6`B+0um?;5hb$^5MD*wwZju8-O3lkA3H#91H5Nj90v$4#`l--U3q z8iaMZpz2wv-e}^SCbQ;_Ui&au$?CJ|Qnk!hDjB0Hx!#XoPpb+gvw=o78^az*HkBj} zjQ%RQ?b`bPn){k&%W*5Yy?@1x_QqaJoA?G6a)g>v#arCk)}nWEk38xajWp3}d&d9X z$jk#0z-@I&PottL zwl3xokx`IeVc2?2Z9a_Ig0}huM4sAwdXy${lAdKEFc^!gXsT{#$m{ILSPpD@ciDvs zE2n2sptvd}_C7x`-R2PdvIeEWZ}yV|p-4kGKraL1l;?5&vbX(vSG7U%x=6lq#sGiY zL<={{?@HPTsQNO~T^Ihx2Vb+?ze@)k^>CPZuC@MTmA_laC-2>RxA$OQ!KWu`>T|P6Bi@i# zfK?L~)o>_rjB7d{`6yVgDCN1)k>%MxcsWpLI6X7*{=`<13xn#U3jo(1V0TUKN$`#r zvspaW^d>+8yfS#kS)E2~0D3xD|0qb!+83#{Rb~j_VT!4x&{whAPd#kY!`A2a?9;~_ zz6s^s%cyKTUhbTJ_lAx1nX)0PQezGyNa9CdvbjzKXF;wEbp?=nMYi{B$`xlLpOZv< zNY0*#OyIZ34IZMU)GVPRAQ=-VwjPz8nxY2KX7>_-=`j!a0w7$IqOtM> zE?_VegDj-CAbJaWY9NE>b9&&J8t+%Ny?4WJyuH+3i()aFZ0kQoLJ$5nlL<`>yQs07 zc-!d*3DN{6{7JH9k`Qjzos`~GI2UA+nNzG7bF{_>tyM_oCC(O3Ti7c^%T-+M^Yu75 zQyjk~*`D}&Qoy42P{80u$MJYWS|2%(wYb5XbtGydnHWbqN4*MWt8kTGyf#J<0b0yw zYl?1?Q!780mQCT4weXi2bx1~)1cBA^1WV2f0XxP+bH()60G4<{U>T=`lCv|R79D5a zBkaUEOUlo9FLpl2T&iR_mGB~TZhc&@m_o8VS7l`r%O%n4I4l+|6;+@szdXjbAGzo* z(%MRLV9fS|%Frd+hpRO@2G3}D)37nRnLNog5uig9-JJ$w*qFA_DnZL`t7x<=xP!t! zmI8Os;Yi1qc1Y5wi(~nP+laeWr_1d^N;~F9ig*k*+@V@e$j;zIK((vvr1BX-gDn+b z0H|ai(VkM;KBZYJn2b@<>yNrUpaFJ1N)J;>p7gD1-(bp&&#k#9-_?g)-Yd3T2&QhQ z{SP0{gMJW5vo(?N!8ucsF-fJU>@-o-vrz|Wpw{mgSAlpZlXPMPx^M}{fl|~?)fC<& zPH>hgax*U=2ll#RcUB$m` zj4xIEhhCIJ+&F8LK+(vR&7yvG6y`FjbT4MZ!ab0LHGy72J2>(~0Xa+G+o4verr$f+ zPiy3vX{Y)3=1arn=DkR3y(y4QHoa`*)e;A;_OrqxvJtsMO~NZu|H9E7ZydL~{iMT! z9J$75iu?pzk01x+GMj8TO{kBF5!Tz%3O0~*N#uv5osDKQY02!n`V%JbL;ZDnFTo~) z{gg_V)`=fH`PMa7o1ifY&Nn7k8Z)mD`#K*Ti|&g&baS}XKT5dN8cLEYfMU&&{>np4 znNC(R;rH9*y92hGj?$nFf8kYhoWeW~`B6bC2p@2e@DD{Z;EhXiq|)UXO?M$uK8dIE zaiX+siRG*c76$WtpyEL+frXQU_;qW{g__@s?4lOhor(RM&sjo~6y8e-tcT!%8r&~PLh5Ct$Ero6C^hJPaGA!DDLUha$@&-{K zMpfs3$}C=_;f-HZpI^~iN>QOknhUQcKj4ENZe}G#@kVEtSsVqMz$1;BfSz#UmB#sq zzj&#H7fVzk=_?@idC*a7fH)%MMzGzW$vh_@$W=TzeG73YD!#IKPzUJz5adIQNiVKC zB|bT!z5z60ab9+o136LBJkT2s+ZEXXgzC7ureQM&YaCCDO)=o}wwVuKNT{YZ%ubVr zBXK5z46F5G!qd=;HuW_}>CQCPKD;i^%faMur$gE7zHW8VDk#zt)IHpTD2~kJ11m?@A zPScW2#nvERPJvsqj?%JwYiOZzbX1k)nqU0;t?x0ABkLxfo<~aS} z{<)YmSta5xab%06z%^!j5bydEJjso}{s8dpQ2R|x;gwpu%-)tb5Vj1O|^WCDZRKQa->Oc=zZ9}w1 zl3b=ixnH!=!s!Tg!Q1JTkzi6x*s60tM^-qtN?}Zzj^RHn<2fAwr;?=eNt$(}EEn08 za}PYcuu4@lFGks(&BE#V6nG|uoj4Dd+D4tntNWG%&CU%4L94#QQpNXcDOtNNV4@v%!Cwr%p z;nZ^4foQOj6*=leqwIB~taGb!4=2~sCvQ6E#gr*Rn0%2G^6Pe1^G0R!MS;Ftv&WYB;NcQw|N9Ds@S zZ&HoqSB?C@7X9yv_S``sg6^`_M{DuRLHo80D$sibY7TINIpN zey(jeV{Fb)-#b+V0Zxm;TYOw@hZ>>Y^fzFIjdl0f*B?U4a40KS7*amfz7!xVc?D#VSDLm*aO0?2^pf0E(@6Aku~ayfaXxwhQUKttqni3jOqvN^ zv#wMbPi)`!HlNnd-H zSFz|I9-xr&3{-RZG1(Zbh&NXI0A8MjM@H7_QAycHL2#7^F)u&|i%dA2PZ1Q_VbC9X zc@nw}?FzztJ(~~S|Hj8vahOQ_Lty)=@~YeIC$Kt|%>{qQxthj0h_f5X!V&Ru-jAzK zY7XgPNS)7c@?m%9X4etP%Hz<0<%rG3Wg1_l^k@|_$#He5%Ylf7CgwOSDoAcwn-O3V zaN?+YMI;gRJe(Du9TN`Vb>O>5Rk1=arVtziE}{GKMDifvw%L_PMOMk`=+(6n#YG~U zE{YEa(j+Y1Y$_t+bka1PKx*jC2f?tg&@0B53HSn&5xi`iPX{@BHqp-rpR1?xIN=TY z@-P*LQ^*~DS>)dWa_7*O=SkVqdl+=Y>WF3$;P0d>ttky4v%-f@uiH3NLt+ zQ`AUBvBRd=F4mh@tP%SP@5b>{ElgXn+*S=5c94Mxc_ytG`qS%Mjym5Fhyu#xWXF+q z0pCZw?x)4IH~e|?8WWLzhZbw9G`VFDYC$S4ESvNx9Mh8hf7t)}dm}gR^>=@WhEZZW z9QzK7Sv!mImt-+*vq6PgEvM>`E(Vbbd_KqXfy40%o{IG`8c7y|ry4A*JtEI{fS;S) z)P6o$@HHtj=D6BFQ>v)w`oi}E`h*nc0C=p{e7RAt%kP&?Y$f~%u3VmT-l_rHt9`y4 z$DG6R%!XWNGMaWwW_ct*h9b&ONwhi_NmGQ`09bdjI}}fty6PjX$42!%C)+h*;>EX( ze9%U%s7eliOcEU+rV7cDk(Ad6kpg&xq6;2cREa=#@n&Q~UUa;W=%zB2(=w@h``p(v z>zPAJ;PVw`#%=cbdR(bjYBXC3sL2P5kt z%YfK-cssrxY@L#&{sU21=<;XorDKF?w;2KmF`nHUlG5bTW%e#ecg?(fr`6iz+ z2^OeG#jR9qW>b*Y+e;yt&shXm64?)&*W7c`&f*~h3V`P~mY=+dMq~wk5j|m}W&)a+ z@i3nc5&||df}qimA+*U)45y;_ARMcMZG?IRfiPgP<)wbJ&iz=GB_0Nhcf~4E7-ubq z@ge1AT#0&wRtF$}PmFGjg`%E7EzlI2;uA8h$XRMV?GvtmHqI}Kco|;?#|Wv=pt&Kr zSEyA(H4A}gHQ^!eta1RodwAmjT1@=H0OcmB!ugI14xSDiRX!)19oQhepopG-bLBv8 z8f-qxo3PmNY4`w%qO>P^O0de%11?FF%zf|H?WWak{AHg;-W%LeVi&~`N;x;10UfN)0B^YX$kMZ;ARWnW;99bY!(HL)SSY=Od9xk$PR zLKvdmorsCRls>bmsa)%P9Mmz^xm>fTf>U1v9su;u-fEx91tXyNj4LM4$;DZ393kLT zzu-tg0KbwJZ{ceNll;att?PV9 z3%g=#o#+N>e;(C`j}7VD(bSBfF3dT@>_ZU)y?aR!V(tza?AbRN+Br8G)~Q0K&=r0ION7dvn}kf^^-tE>n?|}cK8C2YoXf`B z026Vu^O2`cPHSf)r84~WH>Fp-0Mzh$0o&gskyN@-3_j z4pK^ks_PhXs^sRXy0>HM>zR!Kgu0_ux@bvSL?YX1<9zZK_w{@!iK%#2Q* z$GsM&aUADb3{iF_5ICpBNOLCp=0w2TBw&ee2!iqlRbb%$B_F!Pp+)TCo1Iy>YNNJF zlA1Ahlb&7#q5ZZNd*SOJS@K z$0aft?9 z0ZE=(nz>C6p2Sk?KcrRr7Ep+dE#|o$ zMQAWb=7>cuim1@cHF&8d zZ{EnhzR3hrR`XVBGmV_o5%>}jQ#SW`;Q5Da2`X2o<;8Mh~U0(s=l)nqI=S@%^MvEF&IckwVi-sv;Ek#KRfx4hQ#6SNh$}ur=(vsns6(r)W}kLC%e80up)2 z7glBSd^!k*7#v(_%4WmdB6RI!lkbfL?)(DgUeDW4(5&Xed!bq2tOJrM5{i#?ibsSS z#JN$7rUw^~m@YGIj%3*Q;PfIhdZ|2A(Rn51%x6h-f*AmLL>HqqLorfhRp`Z2n+VSv zIr!s~tOT);H0~fFG?{<3sB&It2hFjK%HH7`-#LQY=njNd7)mLP43p;oPGNW^;G<;` z`(U$vl-rhg(0SRxfDKZ3!88dsmDux}shDH^gPFi71ryYET#!0Z&4QKNlQ*l;bqP-h z!tK;&X*3 z(pl$pmg^L3EHj?`!r_9nlX8^ER_R$O=@e>gMmk^2&Q(LDs74OCEQ9h=lOzEa^Gy#n zjRGG+_3sn~qJv0+aEWWk)t1Ldwo-GVvSXMe-8Wk3wv%lPMOn)b_-v4|a0$*i4)aKa zU<@3hFk~Ta8i>K~v)bp&anRao;3j&d&^0ujf7hSlldsRS*i%pYRp0!-7xHZwUp(YF z8Cl9japZY3rfrE~oLQ1`n?xJqofdV4f}-TFlK8_w2*9J9Y;Wa_0w^&Lhl6VHyZsz^ zSY6*+XSL;#^K;$8sC(4;NvXsNS1@&oQ-GJ>S)y)v#5Z*gXD2YaGf++|*CK`(zDQyL8lis@rSei$2O${ zI}f{s>9|*L{HeQ-KlWAusGh=xyZP)T+Ys+sxR(H`OoY!wen4n|MyE-A*+_;eTi3~i|dK|xO z(NQpUAWUVOUY2%=kHrp>nu~dK)DvbK9oZ#0`K$V2QR=?a;l!ALH%&G4L#A(3$+PMs zBiX8%@Q^#DGTvt==2MQZWNMQyGyYEB=GC&LHhFB+e#WA>)NL$vN3>}R^kPr*9#yyB6L*g5gkGVC2!0@U310(74 z&a#K&eRXvM66Luq>Q6;Nyu*)i$N+GXt*XO4%HrtaOB00+vxCZYdo}s6dA{wM4~;NY zy5R>$27;M|6h`2k6D)&^hOUz$pO@`Kj~M7o;Is4m6s;|yiUWRIWQ#@6Y7#Ov6<-LK zq;zpervK+@lXR65$0CjlXm{*%;GsiwJ1fyWBqNrz#P@2K8ym)95I@TbK1Rc5r2$vj zfeS_Wmxs;L%hyI~67H(=C{hjp^A-?~TBCMvx{^RI+YS*6QiYjiM>De^=5?U>s2xa}H!OUUp==AvFW0HGr^OC$Y`lDOgr;)C)bVn7K2j11$PFY#%9uA;bW6Y zHU@l;2CmM{_zaxcT<@hiITL{m2r@~w5Xky0_g^ElMnh9nf<=)l=UQ4X&lWz}Gk&3U z9LGh=P)HgFkHad*l#)1(@3yC>jh~u1e4BQNS-5koN(HKORW@)$RcaL2MsO_)nTO#! z*03B&9!gu|EFE*>cpb;3;Y&FWs}9b`$jAvU+EUAteSvLXlnPa4L)QRZ_>d`=GA^9<9dC8bZ+b0>8}rt7(HKQaB#JmBNAEvKnXe=k9>Z9$|uROs&#L2 zRAQE}?p#EyWc|evLhG7&nAF{|0f=#KkITk(=bY?A8RwPUGzuNqg1*{N(gK(0g|C~5 zcv`}9wl-J|R`?^tf~*d@S}dl*3`)$}UUm^NpI!j%QUWI=!rd;ipxIgxy? z?hBG~(N%aGweh+k)8PCy>QASu`S;hc+Wr0Ewj3^iaheRV7_;S^_M<^rcO&8~_qj>;1I1oyPf@?=TZ+g25#5W6R2yK)w&(0c~OUoS7V2lAbjP@rNa>UEOf@ zV$aV;Rf4H)?0iR>1lES{#+1V+JCE8&y<2_zzy(*e{jh=1TkYr87ckWVZfm)ba4_6< z)>Iprsx01eK_Cw?s%JqU0Zg{@IkjTl%ydE0?=LpG^li&o0}4u(SLMJsqD|FR-W1~P z({$XCRKv2SrjE(}r)mjc91rRvY+$Z08@cg;juUkPN$CVjS6yNpL|UJj!z1o@9$P zQBeWVk0LucbJIoHf%_y)PsqM*JS>uYkhv#ql!67LYF~+S_nu^DsXs*aaUNGP_b4y4 zbF!(ug(lT>PBGZo1}oh;*@>vn<6tVa`fy==)CEb;z?RW;orQpa%2S+eH?FS)9n(*6 zk3U$>Uf&Sk#C1H$Z*W~7zc$j%mh787jC3=n(G%XRXM7?58*>(^tA0+u**(0~$@|4L z{EnbO0F>!4y@Y^N2<>xNgJQQanZ|x0!HvuaDM3m1)$A{2*rHiewaWC{yD#LLQ>goj z;a)DnB<8XzmeMQiTJ7AXU6BwO7E=ZFy>&~V7iuy#O_ zmu?~4Z-69&<-Yv39lsh#KGCrY;FB2fl;cj+Bf}e-C=T%%3K`P|EZ%@LQn?tBmu`l1 znsU#BB>vn@9_EHml`%iGVG5&>-qfaF$i;v#ORS@j&&}3jIvdtZ+n(ugqfaA#S*_vG4kvuzH5%CvD7L`BVxbp^=_9(9ymWdA{5jt4&V;A@P|1f_&mp*je#|(pzlk z*+U^yvyTygJ)AvXQ3gcNmoLO=mCTU_Psj3v?*f_pYXRZgwyMde`as5LOKVaqLb!%1|W^8c*X6J(dizyuxKnI?* zij_UiHV7LDJEza$BqO%$__cIi%ygnN$Ar(~8&{{rvWay&W(zanhSi}UVHP(8szuDd zviAXsC+MdzCOVL_{l%~}ioKtkEk&+cZ!l~zvIYl-NF*v)U~SM-W+QSBvbmpW;-0|y zSsVWx4TGOWBbQ4OEEtPPhH8@bBuZraec#9|LJJff}2$#3^WZ|p?O3%;rW>b3Nhi`IzCl|Wz(WVEg=1W7` z1s_PUZ49b-z(Ss7zTwhaHIXw=9Uz<;j!ofBI2&iWad_NQ{F=(8%{ox;j)+1Z2HC}H zU=EKtLIH9H_*fuZc(P84UDGipmE~X@8iDQ-2q6n1?Fns$_HhwU5QYb~_mK^GhRzRv zmms_4ga&ho215g&mSUm89@v}l4~rh3I4DfnIC;1{@zxnYXu56Rso^%kTeSdW49UDc z;h=sm$h{6j7N_1zklZE!TOckJTrtVqbx5=UBQVPYLfiL7fijx8FCkp*5MgX;)au#j zb>O6toWqc#*God>8P2qIZ^b*VRI=iX=T3Bil5D%wr&aV2bpbH)KGqI|FGaocV`f;U zJuEnMZnkvQN4dzvq07x{WmVmCJO9gccNXfWIyqx63DSB;oT}V`k1VfvADp?r1KJ9m z&>5_NxZVf8Y5|o1)vVo4w%W$Z-f^fY59k(`g6OeF&7>oTz&64 zs5bAkbJtQmdxb*@&3&RLksAX8OtmikFt;^3@$i~^sISjWf%laMLKWeG6Jp;A?qvo& z(B}n5M%XS+qZgLw{hRPv0q#cjJUj*$8cv;-a;`xMK-oXHyM3v*yFbEZ!_7v$^1~bv z_^^`PEE-1E2)^lP zC^7blH|rB$sKX)40)w9m%ro0;O0&yWwmfqeY3DT9IyjFwX%J;#fsTBo3~%N2kCcLw zJOL?0w?QO5^NHZ?%vEf=B0)JJAWs~flN0pHMRJv!l)0d9Kax}t)2Jtm;@oT_d~6c4 zH=Eu=4{u^3`vxZrirrTdB_2EcTzr? z7VG)Imh|g1;5&^0XcHs0VU#T;+DMXdw<7f<&qfX3L6} zfHt#hnW-KuAs;aiW~y7pI(s7K_N4#4YR}YA$5;(NYmU~@sBUyFBc_%KT!OZ6Qa?}@VLVINhm$I;`x>H2p!IX9SpFLy8WOQ+cnZbq;uQ;=99KU_1K!XxP zlU^x3@hBHd%Rw11I5oVt5iS~Ve4O2=Kqpp4 zkiF59fbbx{76QsC{K+qorMD)^?QZft0+Z-;H+!!Kr-ptzc6*ScYl>)muh2$hYLgS3 z6J(59^kPfZ%V#9OrkvhJ$YHLSvoSM*m^O<*o8x6|<>}(8d(WGyi%<`U7 zfj5va1^moDiPC^0_B!r_<@8DKc(u>h<8W^Beq{5}zCG!2BHk{A#8iIvcUMOB`MQ8i z$y%6XbRKNDQNQeMG_&a_jnS=X`bzH2=DBIoJb#tiJEKtjTMH5(%$x^(C6FtR{3Ws= zfI`C$a*5e~gXb_dB=sI9I7AJgHwGtKUqPY2g>jz$)JH?OCEhsxG!D<1ctHKV|4-2% zH6#X@)js>^8ZAD|lL8He*D;l%X#WvHJ{-;Rp~QWHYDifQKpKx=<4I1FNE4Y`Cn6$MCX)M*sE%3$ zF-`>goxp^KpNx`tofE}s0X!d;gBiSgm6T;TnoLjuPsoHU{7o{Hytuc($9S-gy-l9+ z;NMfL&xrQUi2E-mpsSbIp5zW>I`48Ag}T=AenzU$$yIX5gFi!T!==%(lCAWOG4#o9y_Z5bVg7g3Ym8bQ5J^y zv;R?6%{nEcEd9m+$lv`esI}imBHfeS6yq?NyCOJ?LuAXwBaH)G9>;^y(Bsze=(B&2 z>TGm;g=U4uhYmjLJQV4oe)CU|vmDp(0s8=Sa$Cdp;a;++rE1WA2N#3Q=s7iFAA(|F zi^WX7>)x2mCGUT39OxpbhHzWQHBB_2OOz+oCFP;^^?IN)B*Dwpk0&5m@xP6iN#x}H z?x+otRgE(+Nmnb+Mtq`B+CLEN3&$Cw#j<2DyuRa|A9&(?RT2 z@1ScnW@FhdRTDay5uoijePego#n#f1K$F(hK&;Tt~| z1ftkIS;681esf$czCHOH^#HjE+9?EO=wXCR{PGIB12{U+`M74IK2ksT;2@(BxnOo6 zLnT&KB_Gf0Illc!zBU^ipN`CK3`0G+=R;kfLsd2OgF#H>pt-c?d@0(d$n@?LE_&ni z#xgZmsMPx`3R0^uAD<0NE~KobH-^fD`{l7Wo!9G{R1#kdX;XATtL_Q9Fdi$<`Lu68 zB6xgVM4Cps2;8uoXqPmuf}HhDw=Qc z4TO6~fODG&erHdWkrCSTaERm#(~&52m{uF&5gWf+MgXXx(>QeYUH@}?nErIsN#-BW z$iL*&YrMhDJqM zhp+%(6o@v_*2_yIvM*}fKH$I|&anyta)uD#!v`*Q5)z0p?do9|5GD{AUuk{<0zkkU zxeS4U@b+z!#G64Z!m}t{Dae4%*SCqF7RR4M5n0OKW^J87!G=r-HU=C*{<%GzW)p%J zGo3ppY_cq2VD6LrbsSx_zq{L}*6n%Q0qytzriCG6^2iXPlK8H`As*in9F<2sxk8LK zB=uJcJ7soYPb`bh(`}F5s&MIZ96h)uOIS2omL)n2QeQs2gUTtx?_p zwFGl#Q^W%6u)cT0z^ONth>rywt&T-I|_L$LqcgU%4LRXx3hq0a7Wa|FiEyCtQ;Uh+O+^3$ak2;qoblShO}(H&J?+14m3E&ccF*UKa{yt3+_nlV?t62GLm3 zQ^O^Nz)zQmu`L0;d^X z03B+LKv5%ERb!#e$ONpfh00`w&w+^PLw$m651MuRz@)`z6Bf92c~&KT`C&tA)V7pE zllrI=xgrb>MqX7$EQ(X5z94Z6*_p`|>*pG-9owME3zFF2O|H7sw@>3sqs9RyV_l@s zD|1#-WO>0}XcEU^i+p0ha>>hxx!@qNy1B4CM^u$o?Q=cuS&|+BEGPNABv(lqGw6hB z{O}Kw6vJp_xL0XN1EYtl9jEX|d!w)SBpxzxTma}?lOX#=r9Ta#CheN8 z!6~D8{lVl1JQfq=6IVZ216}RF*{zNy0=_=c!N$p!Q!?bq*-iUWk}0~VN?_r^K1&F4 z)OhH1kb{O$=_1-~oDSXEs&!0c5&>OkB%nUZ=mH!>>p_iR zpGpUcGTg%)@QK>TTG1fwBYSl*z<*L5#emTlH}hP}1Scnuj8o$ z3-qK*g7cEG20c8^<1C&OWw1pU3*xTY3@%>vn1P$IVm%3q$_E+X(AYTdVEqD@PKT+c zrQYh;8SteYC-auE*2d6x1ie7ab3~Y7nU)Cp%35|6hV<-nK_OXVA&SalZHzm*LaY~q zDyW%Ej@Eh#m{lfl*!RWY^TKVeuR3cA!B>o}r~HMOGRt*$3^D|PB~6CmA1#wRRCG0YaH#*_cO(YK+IDvQJEnr8ZxgLNqewG6r?45u{MzR0ei z7)Ju=hl#s~%uGguC?kF?wQ+p~jmvT9hUi@6^hX=nvjSRGQ#%2Scd0b#%wo7eN7=bm zy>#)@Sap%w%tDcXiXV>9BqWoPizJh7FYpI*|Crjrzm|5LuHOf#E)_5;qGRFN;D=%v z{l|HgOtJQ(T&ItEV1L4~63ojsY?5SIV-q?z|K_MNKzAYrQ=~Lu@K6(R;3wM#Hrk2w z-*V(QuTBn2!4^xv&0yl7>hdam(?y(oX}jV1gMMoA z9`UbyDmz`jdl~$}G`Ginw)a+s_vc+Q{>oe0=~fT8T`Wf2SCc2gEi!ub8Kjc4&OI>Z z$f$Ip7uzT10>6D8Mn>%{IL+lzqy~%%F(*?00k1tInwt5O?qUnK z6}T?QY;xku2`2}>oHuaZ+YCc(L3r=EO(X*}eD{cR^oMrx%~m?m!nmaJGrOAy&;1Fl z)Z0w!F-%P9Ssk4$3DdvES9)Wx;#8-@AVN(c21g==H5mrL9=Ku~N@C#hu%$8yuAbu_ zRlx$sVVZe$a_LAEDao${UqEJp0Zt6uQP8XIw1mQb4}PyAnO?;pxVVnGqqp5W4?)o= z%1y|%*;P;_$eVXeyrDie?z-oyVMtb^;Ho2fRU$JPC+^jySoFbXY&Vwp;g&IM{&5iylR6 z8=iBu`pi-VQNW<9pPUG|?uc^r5}l6s9jU34)sT_?`=owOf_(f0oT4bgUm#0DuMe7D zekxCWA2@)ykdq%hF)D&y0niRZA{wik7HFE)TYTPih36if^FR`mp|#PTS>A!d|B$($ zBY@0%z~TRZ zqm!djVXzgB`DjDWb5y*4_1JPU1WUK^7?1kMdLIdlA>MWh=WS$ompQa3Ba_dQ-x7z` zUS!Kc@{p>V8GIyzVhHJBXK5@;Cw%{$btwz-AZ|f%N|cM0nms{&&h`HGtH+;y{Na!P z{M!pcCG#Kt?fZZH@pr%Y${*KXe*gU+e*4{T{`D7M{qV>C^M`-jfmIXGWrM)X=$ISv z@m#PV=POL)!jIgjk_l_FqEHrm%8FcBQ7tpxpK06Xi2iTlYXh{U9hMHFExRoCWzFGoSH7(@x7yB z|Lga^`R<=zE4J0Z)~_Xe0(NRgRXJPc0CvSw?>_gs^<3du6CP^y}Q5Wb#17y1u?c_ z$tIN9CoT8S7i`rEy;@*dJ7jAEbnS4j4Gp$|#dav!1~gkhXd66j#jb78whj0;gW?vr z+|p>1G-<%UwShM{*>i%LeKO$Ja|4B)FQBmvQ}zNmTM=nHU~R3z-|}(40?lS1T7A3# z)n0&X8>qlDz=UHXzypR4cDQwjJp90)$)Y|MTDDD+p}|sqG-P1qAk-5n|^Hd~Ao8 z?dY=?Y}$ldTR?431G_yg@SDJJ=L<;g1w^+z-_JM3pF^lk0Ja6+wjjoy8=~xdMVzg8 zw4Vg4T~M|S=w^Hx28Yv~&kZv7il@6D<}(lef?eCOZ9DdDfsZ{mc-gt5&vtOyj$PZ3 zZ9DL70meNy;N1BFtlNQi>%;wgOS}NvUU6>=EN(@XJvZdp`HDkb@mrvO zJ1lSk4X%K~SGeH>MO;9NJA`q8H}25K6&N`|CU-dHj<(#um^)bW70kIb+t0fWR_x+} zYTO`?3l=gx41~A?6esB70%?4~J1$_z2_?C}C#T9?kFoUqKl>^CC40#W5xL+bcMRo> ztz58;EA(-JMXrF!8A&+-ELY^^0?M?C{XL#}Lsss%%N>@vp*A->*@QG(5NJ0tZ3nF_ zh_(gm_BmwSgrb|Vbvx{C$K<7f)mu?~3&L-~{w=7$4KX-j31^7mf<0VNi3?uw1e?u)`H(!fn5{cYsP^s2(cMCwjj!0;b!S^VbNxk+Jax3 zacv9UZ3n~6NVyF~w;=2$jx!jJCI(i?Mn zp-?Am>VjIG(X0!~b%wvLxY!LeyC7;Wob7_X-J!WNYIg(lu4vyI1-zhxcj)knE8aoJ z3nF>ODlaJJ9pXHrpI2D)f|$OL)C=mwk7rgxh#Gml_Gi?6_(tl4gf5q&y05&%;=MME; zV4yqba>ZnBh|LwvxkEj79OwcP-7ut6b>HDK{_XF7|NX!I>9>#X{{0tU_4o4C!b2C}=nJa!f}1kFay(uToD;b70({OW z&>0*$K}KgN=>#!dpr;cg^@gc#_|*m6Iz89c1J>vNJFxeBkr(qh2B4p2@R`VfuIndt zihzHA-F^P!nTGzNPxia-fB5eA`eI}BV;l>vf2RF&{h5z+gX%6Y-WA|GL4Q99;CjB` zUuSUa1({uev^&an2H;M(+zqn319~^O?*av0K*BqMcmo)3@Z%YpynvRMR{D8o+<^E# zXW;KAVRN4|YWG~=ybI2E!v8L~;2ktZ|+!4bYo_IqW?^xs&sXU>Wp99-`E_ml13Vm1nGvUIY#vu=o@=qd| zkNTX^!{?4H-f+h|DtW^!Z;0k`GEmRN0Z(}71topg`!l1&f5^!ESHaT$9I4Q3%K+>HH&%2DhdTToa(f5NgS^`1N5HC8hC6|X_J=u9 z`*0dU8wb%|a~&2O=QqA>wZ-&vxDky3(3D#txEXs3dq`^0{|YC5wJl>`vYrm?)?xVd z9v{rIM1?{%Rn#?~9kqD1`!_?GDP<`m(pc|JW)F-W`5 z^#pONCxvYk(>a0`=-gmz?X5iD_9rViE%)e?vmF}H=SfRG|8;s@_Ai$eTPF5pFE2@- zxd7r1b|1z?c##i3b)UQa92sxni|e;}66D(#(L~Emj)%zJlcRsu0&eU205Shj zVn3b;VDOX<1+1}uGI%{$^fdp(77eiy51#P++=~C}>ldOYE-hfXOnna!3q|QXT;E_} zgCJ60Tm?q(VsAd6)`9v1P$N78;sJdI0!Y6PozJbjxk5HPex^d0S8D1HjBq!kOF&TF z_wOFFaAC^Mfx{GHLTJDLA9Q+k&^|k;$rt*Hs9*Zriu-(hc4RjKB=G!mzzI(W8Q_}a z0_*R?(VONiwosp36IBcL`tqdTs>xN}_q5%nq&tQxYV>U7e+CE32^q-sUU*-{I4Dh! zRlAbP$yHACK)}Or;>-?^@W7og%SR-A5Y`V@2^pL{bR(Zz*>^=geE4vDql*0S+wXpS z&_`8z$Lb$tt$nv=4HrWG>hZhZe*aIu`>}tmQ0)s> zY)zA`TMZM$+el`h2uLKe1)0xLe2OHd>0{9wu@gvsNtp^j2vZU%pP**V%ZQ6w9_Y`% zq`$oNe*ED#fB4h?{^Jk-@{6zj3?GjK~x?a(U^boPWLd|J6;s4S??SH zsvj9)gUo&yFoyI&y;8ZLKH!C@C9)f02FLzYesH7<_3jpA6Z+F;s>1lkGRFhH{ws_{+uyyba*vK#)7KmFf- z`k(*h{{v7<2MFKskB?ii006|_0RT`-0|XQR2mlBGYImtt0000000000D{}z=CjcM- zVRLh3baO9rc4seRZ)t8{X=870b1!0PXD?-NX=5#8VRL9Mb9QG{R1E+JD70E+kqv=l zd<}tQb$AN^0R-p+000E&0{{T*y-Sm9$91JS?_UviH4z6)9)G)+722#6EgA<2t3g|F zfJqq&gh-gchXGJg`uDxRwLCK8L|y^}uE?U)5Y2@28|UH2efxgzwg2na|NGaMKYsD6 zZ+`R9yL=qSyUTAr|Kiub`Q|qI-(P(G$A9?!zkc-YxEvS$>EeI?r!T(z@}qaZ`~B}e ze|P!U-+uYKuRnVCn{U4P!+-hN&;IzwKR*4jJpKNwU;m6te-|Ssg2Pu`$?Dmke}Qp_IE%3`9IcG-~H_I&AC72qxsEk#@p8L zo6CACW9~P%<7wtOzxB<2(q%v7y>I@*r{DbM@~e;DeVl5)q+|8#m``Q(bV>E-Pjy~O zolm`wOX@Q}#eZ9>mo(;lPVISg5dG#l$QMy%;&l=f8mVqBkQx{R8ia*EqWJU7R%KBZW_80V)W zUe{CH9*Z)1c^a27;_l4dtumbLsTb}J(pdGv97@e`H*^!@6~E`$*AZk9FP}#Vs^Dp< zJk=88@w7&c`%`;5)@7#H?ip|IE5546cs`|Bp@S0djq!RK@!u505p;Q(IbOS-W7t`X znR;v)xA*ommd9&xdC-7{X(fh*Z)KckiOYlB65|m|8ynh7*6iZ#@!}ZA4>KN@V-h{S zwkNGsoQ1dzN^C6EjJrmSx3!gYd5y_IoGo@DK6Y~udfo`Sd+OVp;voFd3!^12|9nB|IZIw1U33&(KH zm_4*uBI2JV~rsuC9wYa|qWu>@2 zUJxI|VO~!wo)iBU|9y^e%)jz`%p=%NjrC<1v{Se|Ho0+m&_<2N)Euwlak2g>re90&e0m9bj;+_Q#$6?rsxuDS;4OK^DQbTE5rmp!Pg!c-p5mC~ zpaD2ZOzVlQ&Ov!q-&VCmIkw*49`6ZWow?7Sp5ygFeotB{e{yDlxjQzLmjroNt$Xa} zh?|e3ePrENEL@7oaCw~Pr@_CErpFvB&H;}xw~x!0_B~GJ-uGDWczbNTHtL9v$io`| zXFB4#q>nh@KtXps=;T=+g=jcpXI72-V`B%;FG(966M8Dp5xgOJ-g;gv>f-*GH(PRq zn1b%(LhfHN-NF4w?0m?{6`#=t*R29Qt_I@_j(Eg+#C%s{tz+?zpxZbf3qpbJxxU8z zvDUei7kXZ?sx!y>9kE`V>%?)0`5$abX@-H!=HuQSYGvhTn zua7+ro;6}CwF{L~J1gpec7fv^;}o-PSB--}XDsqq!@q}opFugf*8TOc%=qWAo;Ca6 zkjN&O3~x_d9wgG2Uk5`LVePlUe`84!OMPhW5LPQ*>depG!Xv>F7*|uyAu@%V*D|g? z*~psM;IVfyc6J^yR~?5q>hbRrf;^zC_#H_pf}K!CEV*T$q=hIcWMeRniMEnLHwwxa z!LUXNmY~BNzX!)%D?XOv7!-`iJlNR~5R#oSKM`hd;v;U4>6989o1lpJIW(o#`P$$K z!C-rAAWN0tU-{ApAHmz>k2u_&hZb%RzBm~}SG+waAa=0F&dkNz<1>OzLu!ZE;Pvr4 zic_%B(R4rWjd3h4@`H02Th)S|*w|3Vp3tsh2awZDK28B5EaW<;a_Z_}qOEf(u%IeL!@Xd0mY|+TnypEKW?b2G5vM zABX6+h76mK$`PL%q*0;k75p1!6Vt4jQ@1R{LQ|-*xJ}HfiMf=?W(5a6V%=g{%H)`E ztXQ`cnkYOBX48t!_hPj;E2b5gcTZC8K!*ol$zK93K zwgpdu@3$16f0)N+l-0`pp{Jwx28m?J@QImm$)QO$oy!UDyyOtYv7A@&<`58Jx&-Um z$2e9$he|T5WH2htC8L6@{;c0)IWjzs`&s^2?i>fINRGu3jpyXpR%Iqn<@!*CU?@RtlmBK!R?+Vhk--=d6|26EioE4Q zKOd11+=%Vt{fqe&czx6Kj)Jxjrv&vDPS4RS!5?A1v3lfV;3Q& z;K~PZs|;(Dx`fs%>Pk57yJKdgd>w2bRx zWe${pupapc6sT6Dl1rEu@#G-f#?Hk-40>Hi*Rb7Lc{XHVPe71yEQ8C`IOQDy6vJeB z(6b+oA`O-HB1H+CJ}j0P$K+rFadn1(rpD4j+}KuKEViIz4pe|F7TaL4Bj_T2o^Uj*R-`5jeOWkTj~-b9piOSa zI6@$BWo#tSiLWIwF5bzy zu^|`y9~E_#+e1oo6m!#yQNcUvTw~Ryje9Xn`AQm6dL$X~_l|>4-d(=_=BwZT^XDJE z`@4Vm`TB=)-2UOG+uxO5|K(Soe*K$IzxwJ^`F=vmp8XMPYDET|0{c2i)$9B#0=DnJ z53b;^5&Wrg_I-Jf+=WNPf3H2Lk)Qate0OQSJs`h608>D$zx8&lUU!?rtMla_{&D@c z^4^&q;)(f5`zpg+oCKj!_CRyxufeIoaN9T3U_v}4{(J36?XJJ$SiN4$-+F@n*w4LP ztT*1~@jBaz6Dqy#$sd37#W$b7XGhMTv!M2I;b^ytnlcdt1LhgZ`@pga!L%Ag(S9jI zuH@(2ZHdEq!0>}&VG*$CnSW_>^6t6@^|j|X$71;Y`Ij>YJ2>C-c^2Qk0U>&IF7b)< zhOCTp8=@O8Mm_qo41?TnhVT_jpvg?DO^%=78mT7#j^pQb90xr<@xb3vt}p+7WU(pv zWK!Gi1;#-^O~1#A_EG2?BEu`&`6@A2Nm-am4{Gv-_sbtp~$2TEl z`Ow%4#u&X_LXeABk_wP<6W|?57U`%$*M)i1FM3BDk{bHo@!F;tC(?!)z=GES`Z8j|!py>H(TW;VPyD9fn1az|j1 zGhVWzq@<&K7cN{L7x`YMJxMr9(;gRl5Hhznbnk_Zh(^LVE?a%tObdk`(`4b2Nz#tw z2v{8}l$AJ5?>%4g>p12A_GO&;-+uA0KmA`{e*U{({q(oL|JCRJ<+uOx&t%j z>(fT{kY};kc%;xf*MR^-pTH%G2-lzM;Lo8yLq5LT^!kSX_K*DUJ9uS&F@U;PVY_4)t){CB_q)vw-NKKt^EKRo`M!!L1y+0|p|)o2jC z5ivrqgYgcg70iBky20$1+_d_ViE%K3Z{*pY{jAWJ!)E%WpZN(du(Gt$FVSRXlCF%k z7Q$+AZv5a7xP)oqTX}IzBsf4QZdPxTtd`yte0sin=F2kuuP;CS?4Q5yCgl*!Av48v z3M3FO`b8>eQ26Kv4j8C|t5$F&{*_G>$A88kxr~{fU!U{W+O-U;4#grJp6<|ey{2I@ zWYKh$6Mqn(zzOcykeu#Wlb1vva7Ioe7I`Q56TE%k`F(lCC%jJ{{+=YZR{hANk(-y)DI>afjP>Fne zQo;|}X;~J0uXsU;4FtNx()2CSe%0DZ^(V5Q!qSDaZDZVYO{WhD3#=p32oj_%5Z1lG>4C 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

    %)vsvPWEu6KMn{wu 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ఞ(oZNOlbd*PnM2Va5FJu~@?i?*e%C{IR(R742%2hzF>r~XlY@Us7 z532G=uj}CGUDrLAe9B;6WfzaWp{isg`HhpR89_$5fY64C7@3N$S0a2CnPE8G9gA*P z%mH-w>+T1b9+E-GLtlNP?*!+R)pteL1a~uMj}fkUg@9ut9;%u&B!5MP#MZ<4C&U7V z_OuqRa5}6_>~P&VY>OKqBa)gqHHk#RaTeAG*o(~#MWUxi+xRIO-Ej@{cJs@uHIVQ7 zx;=V?it40do#J&^cI)~aaavd09s-(1@|GZ<}KSzTK%$zSM6oYOfCW-VT) zorb^AhNIzCS;GM*BC1E9$Dk4w;@QNkaSTscl60AP8W>TN@kz%MDbVM^W96TkzoCi% zsjTCN_TpRdm9Cga#qnS{aTkK(zX zU0ng+@&yc`8M(g@!&Fj$k^Au0R)Lmd8ZS+E`uHBKM1lR?S2LVl&lhiREuxiGo{!M6 zu*O$Mi$YxHY-_;!?J~Vr*d}KsG)RcoD^L!T1Sy|EF*P3Yq8v>E85&`ON#%#8mZ!Zi zIQDhH7KlWTwU7GM?9N$a5J5z!Js~=LA=QB-YMyssgX^Y|iKbJ>+-6 zU~>{<3Bow93T3`RO`ZFO@$R`Xo8Uc))7Vx;r?TkgZExPU4x5E0K@~czV`Vzs6b+Uf z%8Ki;`Tf)BQG6_L2LSGad0jL~u4o-BW^#PyE-?hiG!fJ zrjoN1x?nXX8l6Iw%4l?8{;Fb-RmKTGiiTSEywEOKVJ!PoXLW+g^MQRBzEr%m^o}Ao z1T)S&MVp9!h5cG5YLO>|AbV}2EXM~b#$_z80A!B+Ly{E%F;DlfS^*bQm2L_2-_iAnWQPIdL45|+;}pkN*qZ@@-1hCPAJaZteXz^PH0G*21ffJh3UjjC-h2bmKQA)kahtG$9JB z_}K*(k5UZ8pi>A+6e7IR{R%6F-v`njQqleKjYM;5pZIIR1|}g1yY+02CWo0D9&2h6 z%f1HB#s-THKPPE{h$^D1{HsGsLQw#bO}y&b4R=iA1|QLZ3*Z<`JjW&4KKmdmB^M=IWMjZI(8A}m>%<*ocp9b z@C}9O{)|;f)BxFOPI>oGcA586RBVqW*h z_5SGM{9K?L;b_ky)4H9_M#9~pU2u+YT#eP8>2#g0jRk`w6^}MS;;9vj$-q#cRp5LpJC2!~`H>eVJ9_`lit6!?|42Nt{-DUCYHG>d!pb5F6?`hrd zV-qEKh)!+coj4gC&ZIH4(BTeT)o8n@R#f997LI-QNOiw_UBIeOuU9cKP%WV;H&e*9lEPu{QNgOFg##v0EG7ejyn;xn00xR%O^5qY zoi!KJqBP+tDK3(uTcikMZj!x!cunxRNYn#pjO1zYG3E1kF(@vR309_FPOcz8p1^LM z$L4|*i^={O!F9vuMo7dUPLN7$V+C4U2+cf!4$#)Z4^L?_^@BaTTeT+m(pHGNl@fvhCV3m=Lu^;sw!E zNb`uhQJ9FbuN0a$1c<;?WBK57V$uq$Z|V-O9auRLr^69U=-D*qxw;_u5~}=+#7oII zrF)U*j=xaY@Yxg3=g@`~_!a<-h@)sC#BKrDtkT_>#F9ipRDYz`z=mh0OS+=>dc8qJ zN>GmRXRe$Z6M_W5L~7R%G&lPz3GAK#6?~uwOhmZBAHi7`<}kI1@w(3o#4x<+)D$V0 zdOh5rdWbh(Fy9iAeFdb;EO~io8MQpt7*j)7d=1tqQ$zD}8tB_IxUg7vk|ks){Yq&7 zO+o?j_*oEvZe$8@daOXxS6qipvR{ht09N!12J*RUSQ0owhL>@kMIl)D#I;4HcMges zkhzKS4#*oR-&0|e8Q88d(J(aHVcNj zD205I5t0>h)G^3Tn+m+l41MfE-N|yv`!UfKKYNC9KKG6_d}_{y^A0b!V{HiSIz}f+ z%TZkbf3AIe+SW|wMF?NEF!F=cflDS>srZ0UH(*1LDq`WJ<5^KFOmyI9jlyhVY�U_ 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

    cY7lH%rO?=_b_V9 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�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®DKG;X70=OXi&Cv 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 QHsr(SE!d1GqXvHc18jZ1F#rGn literal 904648 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
    9hLPjE1%`FZASgJtQ$+<-Ami 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%0DX(L{bqxXUL4%W{Rd3$!W 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
  • FlD!0|ml`GFL9(7MGZ$2`t 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

    <5>0q z#;$bdTI7I+${24pr%}sFm6;Q>9lOhYDLTx!1Bjg|nb3|gY1 z&&QOZiI=y`crm45oMV>k*t(e_h8MV-X7-)Mr)14U^<|4GD{peaIM|D3G`cs8a~gvf z)nGEMuh$gTCh3VDPH*1g(x3@r9$Q}OZctXNW+Oj_`MD24+5H)WO%q} zHLk$wmvw{14uS)(qyjuLS%i`Oy;RGa5T%9rt*20<7X3s_Vq3Med*Lp&4P54o@KTMp1lvz`JFIDq_FezXDF#HKH(uLz!03`L z9myp9vfgnrs$p&#=*;lR?~8)dQZF}&X83obVM2Y}<;Wmu&vfD@!3rn&j8HVjTR_Pw zJ6nvgda?hHo*pea`gepImeW(m+&*RCY&LDDhAYmljHOMX$HpEhwvRBacx_^3%*(P# zIZQrlkoScj$=w<0&p-S5AAW2e`KegvufG&4{p#m``Qi_L`Qu;z=!?Jl&5wTk7S)=8|>|QD)22at0 z76p1sT+INOf-*bU=*d&RTFzj;*raRHB~Q;E_$_!ys6oAjmYJ(stZp^n*eNJhlxIc1 zzZdQCbo+Y};7dP!t`Oc5yZ1M=B#^ovV07hm)lQ=xaUYZX&VUdE{wT&bcl|pTgYmaHLH1t0%P)Cgwp}iJ7eF(xof0U3 z<+8BX$YZ^%gjSn0(;gNc(FZzC%e8E=yUb*II!epvc#;_X>k@Gpps`2z% zhqJEqTHpVoz)wK(edr-2|x7o*k*np3cV{{!Su41C|43w`G8=YF} z+Bd%|#S_%bmb%wR%zxPy#L~d+E?WHu=^gP-<(uc!rdOl8T)Zo0Sf1@|Q8CznHnF#w zrK)4AaiSBdr%Wtw5o*4Wp-6w%GYiPe@tk>ICDOgL>DUZ}Yoy2y24*RTrAUtr5W@KV zcq-+SDEub>PJ?)3KAqZ}*O2#0+oo)5^i@03_M6j#4XfsfnrIshMrTa+*L!gurLK*Cr&32F?Ok1IPd8dlW`&pl z6B|nZOR?K#%@ft;@hE}AJ`~YY@k%J)6J_p7vCqnu*qUxr<>vuhKl>eKQcgU^+}mJ- zE88EO6VlCXr?6`6|{KU2*b$7y+)6UfBjqhI}P3DB5oQy)<8Pj zTMSbtB;|tQsMs`ys(D4D?gcJz<@CIp!PEny>ud_^nYhgypeGpH?}kN8u(Q@%Zn|O{ z(xlm<8Jm!svAO9y{HGg5s6`XAz*6PlqeQHsIN0{$T??IW973QC$JvmbN?$cqs!EUN zm7cVHBNiJ@u~|GxU$CPWTcLhZY4qGz`PCL~yJWiE4r-K%r>* z(s>WF8CoaLoIbes$kXh-@$ba3lgX4_1n~ex^7Bw9$RcXq;i>p3qZ8{_9HJttz{JFO zEsXSp?^xVS{kjTiGrdGrgwp*NaV%4s?Pi+BY{i|+Gp*g@vNDmbY#A-BJGhz7WW$28 zS>lWCVr{&3Jy*7G;Q3V}JwIyqx^6u+g3X%P;D>i`E6=Jb!Yg4_wI~5M;xR})1NSl? z99(124jWVJhq%(bUd5jbsyOg-4ERj1tvG}IBw_`>Wpl8Va`~{@QG;fe*MInFSawyF zNpbq-ob^}FUgj!PPrOa$vh0EbLZA043 z!9)Oau6bO36RT&jEyG`yJbJbsq~_xY4Ba71t9hrmc{Kp+G%}a0wB_1ep}&f;{eN`D zi@MXt+hnl?H?>{Ugcr?WvesEGH>Zk20b*N4VQkq*WbaXIi}dXSbGSUJ>l1Qo4*fh{e(%UVAs#f;v z5fg*hmU--lk#g2M*DG~K(;7Y0QKs=g8v1eqk7sCw=0cs6Pyj)0V71KAX2Cd*HvH!t z{r}Q1l}YWGoY-`OM=kf1ThHe4&J<{UMG`Q^!>mSn+C7!QUEzfF-ueHM@0$Ix291kp z6M(aRnG~yr66QgfVqxKB-IfgsRq(71*h40V8&~#35iX*PWF8d3`?o`_p#SwSl__tu zG*Cg-p&FDDzccG}9@G8phzOm>)QU2a6sDegt3+moEafxfW4t#9Z~tH6F<{-pW3HwD!N!po)24Tkkf=4R4jJ z$c3)Zd-P8u2`Y_+tXP%a+IpVqYAE zRMSI@^lf*mq#3(-8_9cZUtB{?Kki&9Fx~`A>@_Ria0{SbP@IfUk-MqZ;*)JUk;uu*cyf z=5<~R-|M@D`5x4YGzxq_a_Efue)U8cFdv!7SJH6qa zS7-KcYQfB4&T>JiZ0|0lDhqy87j&v{eXcO!N0oVgsr0;8`lT-aV*QC}M4=95L5%w5#VF$sRv?t3?S|=2NuY z=Zdp_YB-`5)D#}8H(Yo-Vs}MEfDV|0$86PQ^ZV{dBib3ZSp{kvkp@d5%Hc7Pj~;-5 z?=}3F>*}&B9IINz$z5%h-fWt{ch^=5e4euh+s-rg#N>kL5e5Wy8V#I<)G(;fgU4>$ z&GIg1UE?)xz=qd|AFoGgPP%QX-x~R~+>cVVRq=gD8gw3&)N^ScHFzYseWOS&|AVHG zQDwE?9&5zu+HK2FQj(8_hB%rgkqy=>7@v|wZHq_r^*tge-gkL((VO64{RvCgjMh?V z@2%zG-J-p=LlJZnnS{yy)L`{r)Xi++v$^d%VLO%Y>M{E4+PFH_N{yZi&%54gcj%!0 z*J9CIz9Pq1REv1jJKNzQsl>q5!`BD)%%_r>acBycMl_6Vd3baM+kH5KM-~>#*Az#X ziS4-|Qdb4QQkRrFn-z}E{<lh3GJxCa}iKOvrl^dYahiVm69o@b(&(!B8(f7_l?>1^{~)V2E1#V^S*a|J8e9RkWI2g#NxuXBX~3l8_~YA zsLtdn@A!NB*y%xV->O#HFuj|Jjk+^@L=@4}Hu%*>tzj@+SB{g#rb=;L;iL?luIhtU z*+1`BE668fg2#y2*YUWb1eNYoIm{M5-|$R&yYG!(eT>DYSbc)`4IdFja^DlbV*M;f zD^aV|3s_B|+-N^(oPc&ap6 z`I>?^ydsL^ZR1_y*9%#U$C|oW#ITiSYq6k~gmD~0@6WsTxA$%Ry~h198*4B@QQ2q8 z{*%I+9gCA)V9MJ@{HN!Q`hw^F6duA!cnS}2;gpfRVfs#dPCH#+$(7uzSHYEaNm^$R zi?ZL=hPd9-w0`ZIS?uwCa!OEor@j3x#c))SU|CmsfE8WjaZgD&3P=dN5Z}&z1=ny` zwzD-?FTCOB_)g&DS|9@aFPY8m(;*WrPU3ePnSXp4fpnfEGa!*i$a7~FLaC^iXKE+o8ul^8M zJ8}Em7ORxv{X`8qFveUrpe94d=TO>-UJ0I^6fg+vX_Y`*$Q7slM+NPk>*#~gaU#E+ zog`EPVRs=@TzSK%_)6f_D?&LkOzcTX=PO4^$opVt{HP$g5iUZ-f2CJ~XSWN+@#edf zI1Ls9oKP+^xvHL+l|8&E--((E=5VV*u1qQ@oO0lLhOe@#46>xp-ub{`kr!J!Ez?Ich-8zO;hVW{z#Q?z3~nr!Srt(jnu%5Y9bM zLzxd3&c;&9!S3T{TBUS%^-uuEYy-e8kD%ML#|EX@)=Agh&Y}cXZ(4g2LWXT6LPvRZ zuK4usb>ZO-w*zNzzh;iO1&Ax6uIj^>Qlz?*%|S{s&wdlB$c}hN9{zKakjQ=%Hv#AtWYxMG|nNVpnjhxgHy| ze-Evf;5(&KIlMevnb7$du!8F#=V0Zca&o5Fp;t?x5zlbvZXhL7-ajLVa`=s2e{Z7@_eivLV~d-jPjb9Ow6 z^($rf9Y5lV@Zr#+JUCOH3~?NzkPZ6DP36-k?-lg8@X?-}-pt0c z8&efyt%{AsInSOiN+{f6qOBX}Cwz!T7)eRni>StdA+2SJYsd0MM*uULz}}Zi;@TF?crtQNmsWA=vifj=?-Tuq?)LNSIj$&$nUO0<{!1k zI`_K^dxg60y8`b~Q;xDpNIgjJ%ZgN&)!wHDeCHR9%r2cTV)IQs7PE5A0E=6$4_Z=s zI4oUT`1kvUHW9qxM^usBeU?zR(WaM;agTAc8K+PO)o^h%c2K;7l-wU~P1gAffY>K= zM1$ny-cW15%xDI>6Dp0vt?4l2Y*UC;qo^jU5X&s7ZGv2;D5$oVMs}wpndLiW z(O#fwz9ixeuXrLj9I=p6cG}0Pqo#So_n5a&?>=7F#zMy%;3?!MQw+7zFx7M5S%|Cd zQlbZ?8HG)1)>w!+o+AoTcebAGQ1)HDzkRwq%)ZM@iGKE=<1FOFw2Pj!+Y8N+54SW` zI3n!L5sIB2*Y#Rs2(!)xb229%?rcin;o-I^NKsUuh_ba{32zcjFjJmzH_O~9Z=c>h z!$LnxY>Ts-S=T&U6jnHBE*$4)JBrBlPIr5_pj|7sZ_-HYm(_QCk13+?qw*}Rb3N{w ztuwm){yPd+B!Nz+niHuu+Qa^aS3D6syuYkj>nM-?7j|-bgstowCEV2bYcP?0+dTLO z2lYaME5yuhw?!rLhff+}sF?qVVjKfTtY)o)6MZqZhFI-RsYD(wau${{UkmAXTS6$4 z>_Bxxcm@ZvnJNx`qFr-7Eg0P2lNnjtop1Oa6C%1VQj-3vXQtx%h9jPGxqA+V<{(C4 zRZ+===_m`wB7_MTKJt|UN^sFBiNl{QCQ>Os-fB~ChSr<+@Fmk!e2;m1c9iq$l6}%% zyz~YiF-7+9R8u?*D0=kGgKzK=Q?-1!!FdG8EFGK9`>Y=2OZv+{Rr63?g;)DK{!@uB0cQG0fdYA+Z%_S<{xM(KZH&O|DFV>w4x?Hptlu80?R zRhQ6x%`awGiO#scQ9d>Hev%~g(D!)&oRcXKt-cHAjd&h{xvS-@MGp^9t)Fn^RlMaz zp#s@1k8Go9wI(~|cl-3&#W8CL#p5TMMhrW7VMg2)%++N+glz_RqP#tOR9*{t_2yfL zbn^HeKjPj#ee$ilVlU|ApjMP#`i>uQMfh;wW3jF7@Cm=Vg=8oQN1wUQVLB7U<3v}- z-6>;jE|IZWmWS)7ZyPFac*VPYx?C5{S9S0_aRxIUHE;>29X!KLY`4gi;o%@@HNGM8 zxI-wv<9keH`s^;~d9|;rC6PaP82FA)*4tp8#&;j9_^-Z(w^uhr_SNeMS0W@a&x|GRxBfTNe8VrXMf`A)vm}x7?vn*uDR1~57sBPS=b38k zcFJISfkA!CR%bTFePd^4pyKnoXl{p7;F_hgC-M%U5K+;g{GV4v)XpD02@_K$)e_hMs(eE0&_ax>uqycVKJ;?pRjqvO}uE6EnlQf3FEY5#R0}oo>n&tJqvn zgWm8F6|#r#qFZ9K`4V-tzTrpI2iYvENpo7aa9O8k(U!yVHkB}0%?i%gK_A4F;MpUS zzFv8p!6VvI-;9>3mBX~jDWNy~hb z{b2M0M4U=^k0+9F|I{m0LNV-}c0w!8?b8>xMc=`g!!u4i=!^V)gA{9q1YQR%d?Dr& z>FwD?GAu3yr3W1)zu|k_Al%myCJuTr_n<>58C#8MEXbYgv1BrlE#ZaC3`sDC5+pU&+sMg?cuTsp#}YL<;CR~^tcTSObTHAX5%hH`JI-8?#`Ci z?vIJ=dd}R)^oH*-MfC9HyfR15x&G~5 z--ISu6^7!*4wsUT3pS*DUY`hWhll4&bIjM~DCyK3<=z|z^`k+6k0u#M3%tQcOp!f% zd|rLKnEjVBs?KVJ`e=klZ1TK2mc}+Aj-?cOyyF!UqQiGn;-Gxj&S7H@AC8`vcV@aC zk#0}^pdpL$ST2(D`Uq0A<-e&&G!w5`kf1uUUJL8rE|q$Km|H|x94qkkRI zAA49=!3g>?$6-iYKWLv=lX_^xm@`;CP*2#oE+^i=x@DcnX0n6ucJg-h*S~UHB{`RS zmmM$**NIxQ(W(l}O`osMsh{3`Ry#{$b zK-I$tJaXU#YYHf{(t}c|JbUH(@^B=8Z@9Vo7&RX(qvyNI=1Ud9zJ&RS^!Dsg+ltK} zDv)9cSFiO$t|%2>`Asg~f-X<~wVysYsN`qcmvn6a?2C%A1{;LqBuE#JNd+iX~bg>Vybob z2M%Ank-Q+R0v~PS@%$w@%XGh{E=BuzCvEpX%fSXy!pY|~4DIs$ryYvrA z_)gCU=Q-NqydjKx*J3oF6lU|civ1u{63Z#M2j5Aj1u&9@k08w`-{to^j{P7)Q~r*l zeb=R**?pvuOrS;NBPxVXuEmvYc_!_I9Ma8^9Hd=+DfGuyQ22 zdoT@q?Ng1j*JUgMq}K{7wwmZp$qceDC+1^osI-t$tf+nU>Hyz8q`$iyo?o1&zk9^! z?C>ff(7xn$FR!lBpWYp)H|`OP3m>#laW&-b6el}ejfRJXFs=!A$7?0qiL}_y{w^a+nP<35?JYRjOKRvlww-vQIYQ`p4D8$V-~6NBe6vsVk>JR_K#H}EJ2o5VCVcji zesj=1(ceDxWN%kxM0dUjvmA!N*HskiGaFb%iQBzY8ZaZl@y7;EELs#U4g>kCJtb}I zZG$PN)v<;;F(~KMSrsg?yNg5Wu!1s*_GwwTv8@rQmkT@KdW^!16n}i6cRTSJM8erOc!qO*Jvpae;HBbFO&*%O?fE>QrWaEj(yS>`<3=;uY!COO zs=}kKRA=rRbkU9X@LyJ`Rd-+4Ea(*@J*^_TF1E&=`s#XWyVz?;eVq)LcEJ<2*EtK` z^GSj?*ZdPbc9~}v{L2$0VU-_0SM#pF{G)J|$zZrd@h7@|bk^?MiB^29A>HkvRdEb9 z?nh%XjKSDHS%=hTFxxbJ>BvL4%^wW(*|NC0E_rA$<;T##SxdNw$L{o@vhyhb=&|Ak z&cx3g+>H9@J)&Jb>u}!|%<;LvidYrydm@7Qc3?!0Z8Jrm@!S((s@lRs&^@uDlCt-? zost3~<&gqsO2V==a#j^wlAV$cpL|jHqi0moJ3bCYgfi`lZh1ZGNy+nu9 zCde|Otq#-ZIdmpn8)^pjhZ^1Alsfe5LwKlve3b~LjL)xu<=hDN;h?wU7VKMkyx2kc z0+v^y2LyxLxOcE`nPc#eXyok>2Gw6y^419995q?86?*IYfwdI|KKd)==jhJvd}!p< zc(+ea$3fnXsK8&UniI6iwb6~pMbsUGX>jna*vy-yE<8ky$4dxD%L02&q`*Vr z)(;o2lq!suvU$ljw1aD1!gP!9U`?D<47(A-#3(N~9H{MzMLWSNf-(9y(bpH+c2>1f z7Ee0fHZmTYJHmYEmPlYPyB+@M$Gq_4bkM2aZ=b$4<%MZUBX%h@#hc?H)@T|alkn>2 zix2+9&6K{ywD>U18f4jU#vm;282b}@67v@*g_)tj{(RW!Tv4pe-I07-iH^O;XN%+m zta&xk^Cg_3uOTCdO;fp>IZWVC@#&+R{Y|!hlveTiX2cRXT5lOI5wz&_6J3S26zMH` zmC~hiS6I#bIGv_?ZRp#luZN`GkA1PKx>u&#tfppkT@e7UPJuFV=!d@$P`}9;Adq&i@w28*mQ)|i`6f5pJ$nl{x zw&c#IyDrsx9@&i_wZ)6ajqUH?ollgV@>hZQUV`cOu)x#$9z=qtQ()(#XRowg7O+BI zQx6U$;6pZ!)2X=kGiWDzC5U`-T~$&0B^pR!)$nv9_|uf{=g#;rS7(cuVBf{;B~2?(O})IUbbLu#%-lKxyM{|+-L4p5Dy=xYM+ne`5=svSqE)!NkusM zn@-T5&&iz+>7A&tf*qgBVsq6Fxf|*oW|O?1kI9`+>Ag^snvb_+$n|iE&zjeOIq~g^ zSR?tH3UQfK%Kl(Jxm}tUEyfs~KKy~d2uGbWZh9}wW&Pozw>2z_-%?r^>G?n7}5;B^OZ?%CjEYq|oqR=N+@8<)F zY8v0mBurW2#;>%4ZLbwpe*RRwmY1rE?^$1$4QrU$H|NT8x5OuY;;VFUC<+o-%_xYTAE6_gzqKV2SgHE6YTHU}2=X-~5`z&K4u~)p zuAAT33o>N&XV`kQvGDmAC+x*iYn=n7Y)i6q_&iuHB2?f!_hFV zCJ5ux0odE8r?$BWtE|pUg`z137cE8NO4Lo?BW)VKuvr7NrsiV^*;%z{N#?KuR+Alr z&G9z|iv@*?=F87N-p|XjJUmLH{1WrLJH|Isd)cr$PU0*+B<<6_j23t7wnRbBA@w4d z#isi?C)XX7kA|e-jD173xogGORB=B3duqGer>FD0@28Quxn@RrMG0PC5%db=bRJj< zp3d{W9oJ2mj%VD^J<7uQj!)!~-s3#)rMVb6x+5c3ZAf%?9Rs09cWLs3)2!%6`38*c z?@+t^9+rtODH+mR9JRM zX=on@z8LrY9&YOT0#i_{OfHKS5`pt7YH`O#OJyAIoEi=9`Fu{7wZ@QV#X7(_CgiT4 z#RsQT+_z6p4S4}8PFyApBDu(QnsA_z=$e1>WFJHOv(pW76P#}Rl+S$$w zV7MnnReacYLmIvx`DR-txim3|*{^izF#I~cl&|P!df6t>-~z64wm)V}w;REnAPR{R zy{sx9C+5dkvexkth#||jws1t>(~3? zqi!7D@$~1mV~_59{GG$76~AaVwug|voKEAj_2JKm9gUwEp%|%M+eRZ_ti-kkZf@Jg zJ(v#X$f_{M?;*FL>wMbXBV4QdpfB`2pHp&iXm&V>z35;SGa6Qo#r9Ld`_X#-HuUMR z{;6`ePfx{(;+OT=RX&5p^y%+gv(+t(EwaRiPTx+}t270_)c8OxGu{Y6`M&N##wvr{@By?;CTf1+o}P(v%P%$^jOk-HEF+jKq6b@35?x=BuxE-2Z(w#w;(1iSBrC9Wp!fMf?Hu&1MT zy0_qbWx^}9w_5S+hnlmrZ#NlG^ycWC+IqV*;g$OK>FK6}3-=1B)xhq=_?l^oukA{t zzg>7xFoT0T$8PJ&JOYy!-KYF-pPn+f2#0yBz)q&mksoev z!WGXtFdqk2^d5_F%xshVcD7@{Du_Qk87hPf^)A2r&YuG=E`Rm4;Dq}wx9krn4)8Gc z_x;IVgk5`~K1c8D__g!GaB&LOxKs0-?~Ay7`dl7Ym-VsJx9?)?!q+HX73R`1V>C~; zLSgXk+ZiaHWZ&|G=7Pc4tBIR%W3xp+>q>}jgE@{7)fef~+gOIe^GZIQ=qxgk==B7< z_iM(KA;?~v5H9H;4p?4bHOEz%rmyV|QIh@rQep08Ffr?f_|%5)gz)w%*B7s%he}_= zAJ~|x3bTtFID)&&V#8wK>0sy_U2e+@mk;B%l3y^W(G&yj3(p9i{RQ8H$0cAn@CvRc z+)wexJ^YMcKJIe54CEtlKH+p=$A1ZB1+Z{kxF7fuIK76?x^N4u--RQ7JLpG*=Y8Sb zc-y12ELDy3f@(Od&}rcva(4Ml-Vm)|%@2V~cKFs-c<;jf@SEd{&x)^TQ9TBt!tsSN z{d70OT;W9GFYwo6!J`%p8{oPPB(p$VpAe{K;)?w6Hpp&{Z{9w%N_sewd{`>XxbRuF zK;JwXcSMIh*@vL2KR^OIYW&960g{hzcz7!p-?TDF-r@>zsBLdr|0IsCC-Hzm+#dyA zY&^pE#Mqy!JYN9wcJIuI-q)za=Q7FKH(0d5g$AqVyI|gKpgGaoA0V`Kf7>J3t;h6Q zsQ5H$TLKmOo&EMuh<%Bx@GH5}d!fgO9^sNN!sjc5-qL?1_o?dey~$=6hs#L0CX50- zvv&}r@pe_ti9SyH$VwR>l=p}2lwk3U5gW?*?8gjL!rLUph7Avy-KC?#DCjdb867;m zOV8TW{o#uyFqm^_2prdfvo078SH7_`SIsfp1bYGQ&V4YP73`g~sGg#ET94?|`y!0} zWwjTXIi*AJRPtHEDMf{VO?-WsD1UcaKJ51pt48X#-njJj^weYmcY3hw`eY09UWh1l@^ZhdJi9gkMznO@wXKo(beHE za2zmFSN|S3!ut`P7p@1s1kSJFZ9n1p8o%{Z_>o>YeNL}4a4NtTCR9L0%mFKFoGP8CMI#m;N4taVR#v zM++Q$>6P}n$!Ss=48DP}1e?!6_e+;scG*NGY9AXkMiOd}U|VzQ8tpNLLPvm3c#ngX z_ReAqa?^|Zv3ibVS7vj++l-GYBQH~9WQ>Pq&}Uy1kywNo7bdKekhq>?#O>45U3YKS z+WCTplE6w3CBha>;v1jnZ=b&2d-s0DU5WjCCBrF9T(f{J8$M{A*6Rg$?>F7GogSib zeUd-!mkD=)M))f|PXGAdu2HLE{hgZtaiZ`llcg93$=JGHydeBafBW=wFW&nlc*O^0 zqr!W}tOfR}7kr|>efoAw-q;tO!x*(CM+=6JdSAG8@QMER>G=Y{_nZD0bGv5+w8ZX$ z1iRBGC;Ho`r~CJ`LS(O5uzNLS`t(VG`eKs+yQ{1e=BpAG$gaAS5LdVJo)AI9pgZb?ec7uf}#6d(KS zM)PpLUJ{`!UD4Vbg6f_4grR^L|F)UTsQ=6K%7sAF8Fu`KWocgqX4JCZT!J8(37&Ks4}HZdXZ zdF|_yF%DI35nk5kUmf2b`NpM^B5iN1`N(+Em3FM@&VOgnqL~8y;lK4I*i7BIkT3>a zqwq{IB!?o{&9wu=3e{Mjz|m(S%qfLIhyl@Knr%g;=eg2sEP7!(#-;ORoVQP(+T-Hq z7(atvBMReb;M4=gQU^wtq#Nm7VJy_qi@gAqgRx3VL$=i|H3m$vf~0VJNPOu8Gf$JLFlLICfuvni)Rv{Vu2g5Qv z=VGw|#z+SG=N@1m>bg;nUr%I6DQVw}emhzO{m-s1mS?>-)W~m7@qS+hFE+yFB(puLRE* zzxulr>l)Wt-mi6S8<-RNbj|fdPlDL*a~%A}_?LlkI(eRMcs*Y!`$|h%aocP1?ILfN zzv8ZI12|Ide7Ec?t$R^=y+UKEJ|T9KSBb;TuK1Wuu0PS--upGi0p7 z8DnAbW#0H32*XFyEW#lpIv$#dU$-(x$ z0871%=*o;>+uy_GC4xH`I!7;2IP5fpugwOlJ8rw(;rxF0NYzAA&& zLCM+NuEKa9IIjKG)SzI_n1HzsQMuW#4qQ3zabYE}npvgcfLdT{q|(vw6;c#y)^^p?(YDc=>Kke zp|FE(EEA{eb$nr+J!pw{Hh;nJ?1hn`q3s4%;0Q0B<72?yt` zYaCEP`Lw)#X4I_izOHjN*BqV3eBO+0{`auax#%^Fe4i~=&KO2OZ|NJVn2JsZIXb$I zqmRIB&;M&)dcNlQ@_GgIN5B^}4|oYUUqi<$?5~mA5&BQzd*t_w_VN_jOU6g2I_-c9 zw*zNKpXsP!arnL+mFl5!))lVkR`gfiOYt9R)e?=80d*wbSd}pHR?&BoN2hl3UU+g! z!~z~=k}s#DDw|b9>zmu^d>`NtMv)E1mV$a5z)2%qmRJQl@iFbW$Ht;F$3g7vqV8}{ zi^OqWvmdL=QoI)5QPW4TLRQs1r+A!H@0!OKnPS|qEEvn-HL(m)eDBi`pM@n=UAt2W zqUAQ{D><2D^ z`+>9LOV%AY!s~)5U^!sKj?z4Wqv{Ww#%ug^#9zVX73Kw3`&icYhg6O{Wj{Bx;m&$(Q@(g-ag%DW7(%9)4;*ai#d+XHEEibK!m>;_`ot_~()b z?tnvtp!4Z)OOY|@X0S4Z$uspHuqq&rqpV)VoH%p=p>u%;Qr`vi1l%mqdOZoA(=9tF z_bDE(K=kn@#Qpbc5H9T9%)yOc<*Q zH^mZo&qKJBL>WD~rSR+}%-cq+l*8|2{Ln86x}Wj*#XT0<|M4KlHZGMrct5t$j4G`Ke)&~c z^2`-vlS%sG>3ddIgtl!4-E17smGn#l;qX44Z@nqad--#U8^ib1cduu})0Z|h|G!D4 z#72U`Z^*NwVj4r=F>&hRB|UYBIVh^{UUycx?+kBZx#M#nM}#=5;vsKajOh)*D_`fq zkGd3nCwjiK7#U*qHv30w&s7mVSa=jv!0TelXFn``8n9F~ZosuC~$Q+p?*;I7hng$Yr?t6cp)ggl`iH+=ri+SX86m z;zu_-d@X%nxPKh(T+=JZ`=yqz>PPNf1w?_+3&cJ$uTLt+?$0F0qd^fe8I4c#q$14K z*EuL#1UA^(NK+>;P}f{9y2!Kg1o9)lV-coXlEM||CeosPQ}P}Cm2u_$L(epA@T*$i zD_6?qvD#fd-%rkqHzSj_eoVmRVKju7cx5w1WKu8N22BftHdTX_X;sm)seCLx2d#Em z2Y$ap^XbpxR@H2lHRNCJim@(Gt;dXt9n&WaRl4}G9=h%3(R}r8Q|0^RoUhy=aIW-x zdJSvW7b2QTVaw^y8exml&cut-u$e>eTR+XwFBVYzJBFis;4#tOSq2OiJTxvjKSw6J z%>l(y#*o)dm)gEWc;|%GYYbn)F_&l8;U>9!-}HYx$g@0k5_?DB(^pMq9mT?yHdm_s zj}>A+UhVMP^uo1vp)YeHGuTWc;E)_cT)dI%yB?Gj}^08#RqqN<-_Fm8vU( zT~bEYK{Xc&pcnq@_U_5!{Tk6#D}VaKmDP`j#xX3dBbJBW#`n5hZTB-oKF7{?EPN;D znyW9En?9dKO)Rf_X74_peHG<<#jgZi?-<>W7WIwTnc|1` zi1X4B6S(_Tqx%t~yf<*=UHsUn_6nmd4~|9ws7)2Pd-rWVSpCfV zDWp#iw>>c<5PcZ&*%dn4wr>A*%Dw#6_bYBCh>nHA6|=*P z5MaFQ=GG^CJ@6!V3U;iK&%MOd|6$If`hpHup4_0wPN_if7_lr%#8HM=-n?x{LTxH> z{+_>gE4<=WIvaKq<|jyJ=l|x~mpJsjiid~aK3UDflql{|fKk%Ef`ZSJ;0x20;{CNs z@IDWPt^wPIn$AF1g1U?K>o(pnPm(C@NNh@lSp})n_bzTeGIN#Md*zPoex>KA z{YX!0RPew`Wj1UcVFtPouiOwF6u+3pf3%7%s)Bc8+xfCy}T zm0Y6BJ?(bExx+k|#GmiD|BvUyxPDRJ=|Z$8-18mF82g`u2Yb1Czgc#rR~fipB)gv< z8?gPw>3gS_m|0vi&y7|)H$z_Mb+bxIT5hwf==DNoHQ#<+X*%p@DoO$kL?)%4fr@)>$!)v7bGBVoMg^eOTxoYMS)qSr|e?O_-S+Q*2 zkd(=;5y7V!mS=$zW`B8!8AMiAG^Mu2nWu&P&(rtFrD|49_aXmY(ZtAY7^4g!wrI^g^O@B=3fX11cAIycd1G~h z;zY#uWoP$cu}y?KN7Vs;W#GNyCqZ8k zSZ6hx*gBr!HOMS%{qsG3b3ah%GtlW8A-L{P&7o{rP_3@P0WH zZ2=KXcFBgP+3Q4D;V=Kn-}U<82Yx!7yL@etq5`vK5>p{Url#WqMlsf5$7MI64ao^B z`b?}-jwkxOhtD=-IVj7l$AUG-zt5V9$t5+%kye;Z z*G?;>0~4QbLAVP4dN9;(7R=2=c@ zt>)BKbs@NJf?qaMggbR(Q=-E&Q{P6h`)DD?AR&Vz_`0mP|Bt6fu^c1#M(`MeH^dy@ zGrHQ@+K_*eTg`noqVu8!ZY#*Gvw{BzlApTM`xVu%!c*J1(vy|hrnuRb5UwPLx)v3x zJR5fFZff<&!s$-xw%+XUI>|th|>hD$l z>^|^6&|@d}6i9Ql-!|VTvvD!~6(*Z0FqhAc_iX64*e|}#;IV!@Tt`=1xSy$|vc59#fma`5W@AoZ zR(@~(d+!vFHK&yuwb!TP{znda5beZCdrYv~O~2+qET51N!SZ-}id%_md(P_sF)CiKR||ZwqGIyNU;DNxQF( z4@1~&J;4BFYt8pr5yn;i3u{wxf861(=Y-!YekJHTf=?SrxP`jY#xl*8+D*K@$Zq)ps~FYE3qE~# z3GgtzK(-gq1H5m%k1Ec$>#yX$SL|m`lmKe5QTBmLA%MK>kYjCy2TRE|*$cO)(Zy@1 zIJy{{$VPoooZirhHRYbosPvat#jX40V;AQ$#k1=FiY+W02C-}ID-rMc#y~i%{i%!E z+bCy!Fp8~Mh>I3y3YtPa;a z2s5g!Il`ur;#Kt<8Uli20y5Ki4ZhQe?Edj`jf;>t)hWt}%k;!HCN7Efu%=%}2Vhl=K+|PGJau@s9gt#7iTADIVV%hMTq1=gC z5kf_V=ibe}%u@|Dnl*eb>pg0kQ(yoxr~copvfMMPwpe+z*y|HN*7S9oeNzaHi8r$& z^b}$n0{VJq5IM1?=iyOE#`2-|`w8#wmZgq$6{hQIu4B}mx675*ZK^yPOpBNE!C*{N zAlq`U7TWS^(`+hCOwc{tFM;;Rpks-9?vFir({LyE^|5lvwt~68x8r{9`~$``mRg96K=bnhpR6?f zMk8s=>0n0wG{gzMGqcT>H%2#iTTQYk7P4-~IRknThbPEELyHu_K}}co{BW<5cTJ-W zB`=)@b5-p91Uxz!CPea1gF#2s&h}ZJwIVfRO^*mGZ8$xEi~xQ>fxpfCseRyD#XcuK z_>P+L?57p`pR~gub!5&qhhuE-NTfku7dNzn;*t_P5Q!^wVnMrJO!q#?J(-DkPP84~ zvqDU}X}SGY)(7sE_&LdhN01)2aLr5;#Y4q{d!n|3N{+kv0^io`w)`tSRSMyCN)ZzB~^ z8lLt=iHT!*xp$T1d&P}5%%X^cFct}QKjPD+%$)3}9p*&X_uMj+PdBW~yDtpRKHrul z7(ClL2XE3ow~$#{)Fi<*t3vJu>q{i>SPTblX(+M>8S+N%N_%nq(@`2+ktxJy8FR%? z2EQWkCSRk8avYij%tF%@7jH^>zX0j67H!T-{}@Zma6I)rpUCy)thB|jrrZ3KJW1Bb zFbP?T4-r1Ld9t7m{!e;X5DA0+FYKJPlXK)ph^JS=-3oKc3(*RHmCt)+@4vUMc)WM- zfP;w4-gXqXY+t>e_SH}OTBm&tFXTqBQ?cB_mYJnW{O=Y<1g?>uV;a1I2p(_5xW>X~ zP_hZ{g;38?W4UvpiSUG>SWL5er+}&P|EC3^KPEgXB2O4haMH=;-8TA;KAhjesNn`S zM#<^fJpD0Xc4V^ut=T?s-=5t1;4VB%6?gQ8=GBLJ_HFlj^F0(E-*Gq1YsKLKyFp*Y z$EhmjhX@1$*z^#2tRy%!I28OUPH-i_juG=B!JZC#u{Mdo^^oRJlL(k5rz&$++P{hZ%de;OmCf_ zd=26B6cJX@h}jV<{@&|=Q5u8Sm+PM+(*>&~MsR^9{Qj8Wyp}DWQ>emG6 zqD{Qy`RL)9L%DeOYqEGf;+42l*F^Qa-n z8~_KlUJlp zDg%E^h)bbQQ+?pIm*uv*!K`O&mgSfeyG$=M&iAS zP38EVbSmad$k800$GMhx)HD?Ky%s$eBD;Ept-x4_kbn>0Y2>jUZ`sf;##&iY`u|ll z?-f59f@amrWS&q4&p0M4-~!iU8xr1J6W3%^0piO)rqjxija96A`M^p&?1LxpeBy9{ zk%Gy^?wMRAH-AAW?9>nuynC6c?DBT_40 z%02trW%2$gxr#KaTubhmbyah%7=km1P<)HY$9t6q#q$+`pBP;Op59Gp43?b?RBQyr z$`AR){uh;yRc<>~Jb`=9X2eW8s@O^jE0p9$?tN@eJQ!sBebfoN1M_|PyArH9a79eb znQJjEIDGPE9%IRl4#vm0#VAXJTzFMU4jTTCy*oM6CxP-YUwvl~Zt!H?A;t_s!EekW zXkOKuzm-|14Q(D@hjEqvdlet;_bdI*@8}a|+Ufj0p5srsD`G}%IM~(sxO`duQE}77 z|BPchx@ivuvkQtt&fGeg6pEE^iklU3VUL|=DgVA|1lzHdHp+44P)ruiC7XK|1aH~^ zK2#fwAYsR^r~JVZiRwdOd&!aa0JmPTIVyrSAyt!duJm^av~o^Awzu55}o{CIcY zyS)9_t$M5Q7-urHI!8YK>PA_5c(893?yk>H7b-S7_554SIrWYTmszT3quJtTw;39F zqd;t4_FeDqS9Pcb{wkAsN{7B2EP&kCTMLWQuxO-#3dwKN$oIHi&Un0E>@z>u$DNDZ zTO$E-o)%KSD#7=cNF}kZF8}GR=E|Jfc)YF^hui(L=?7@Lx)>3=+}Z~7+A5xr25h~F zBXuZ9J})zrUUkw-q`X)BO3+sXtm9~^6(*xzIMz1I&l1``knpIVv~J(k>3QrObE0A{ zB!B;)_jIr1zgO)4*?}4|Xyw#4dhVST@k9a#Q`zhR6#L2xT!i}XuGQUXuj~QKcc%56 zw=VYE#{X}^A+u2ikXH_l-uG+|7pJ_?!=SXf4Un=M9aB#9+QxN8YT_Bo1?tn zWvzDbo%~#Kbhr|Ym&412Zv_m&i;pgGE>{+@&uQVd2lG_giGCxkhIS6j%7D)z6&6&R z_QP%T)FDhOCUa=gQ?z;o(Y6ej`LTF1!L)ld zVDnhb-|JajKNDoe0@FruPM?5nvShAPy!jO~+?pvKV+~_HrN8ztx6v;~1|sAT9PSb> zp0=vETmOA_G@RO{WL(AhUZr6nc*+Y)k+h(n!_{xKG2AO29&{n*h~e*r{K9i3kNiGX zm|GbzGQ&Jd+Fm<7eqaWibskk2zSkK6y10Je*_$|0H!?Ve1bh419CMoY93OZOXP;jm zQz=fpRWHdSc`lUI8#{i7U)9>+GGJT5GbH8^)F!Pd4>aJub#y0bdb+JDOkMW!R7G5m zE*lLP-@R@2f!hvqt9-9H>8hKZUUQ5N`?5;7GC9meRyNKW$I^7uJpSGKH?9BIwMpy0 zGW>x%g4T;EXjt$z79+`}rD6;Hh8g!+O>hj{`_zHC?|>QnaG$CuFRJo$Eug&DCL6_J#VCitKBy@Lb#Eg zQJKJ)duw7FJ=uMXn%OJM-$#ivYWKr6i|b>`+t4hT;2)Kv{C>Bz_o|q@r*vDeFkMko zB+wEmr^p<2aFp~jgbQ(PjvssW+T8N1(hQFuvDKG(w~X&8^mEDrbQSecjt-j+wawwV zA{M$~xuGD$h*j29R3ZL*`k#xrc&eCP^?|{e*mFgz+~-{OWF$^XE^4VM{1X0PpR=+jc_q0Uajc42O!8)ppU z-|I9SudQtFD)ypWm6^c|E7dr6H8VQ*pHy(SITZb;(^+IRt++oMbxHK6lJF|f+Hm~|3;CEGc7T_yGJqCf*7VrSP^ zW3Rb{%q>6QQz&|uDpKi4@8V+XIdoLk)j`vw4X}=*N%|5Mab?{t_J+9F_o2R5Ay6v6 zN(sqE)8y`M%^W;S?kOuwF(w|%wKB$f^PEo=`;O=jJSzTE#S9m()T?(7zH|D1$F9`m zoh;&#M$7qdsCf)#xi)W@K z>?aR?ft4wIE?$p3SQA!V{w%FVHlSK_&&t|>Q&##7yf@p2i@Pndugod8U#an0vRZUv z?M`?t7f+L9gn2M+MGaMafjXJ;_h*d{{Iu*b(P#@L#nX^~72h40AC(ick-n6E`3tyUKlXt=EtnIrMPtd4ZY*zr zUip2m_*vcRL&d|7Sv5W0?3Gl$=rT_L!)vH^*0-x3BPxIQ1=e{Uz>J!)iO3(=3E?LYB>*OSXMajLi)^eAY&bqyjgr-Jv?TE zy}W_vC}+u>7$dRMg6%yeanPNc@_Sa`lt032pAA%b-w5m>4%<8C16ODKviT)j8n{2H zV;(mn*I?AwuS!T_m}LU> zi{g*)v!h)3eXsb_z;ty|$V7wPx5ymKC(B>|Z+Kug51yw*PI6d2Esv_Ex_0Ta@?)9c9&Nv*}Hod%yakTQSv*@AC54` ztogm=_x8->-o(DN^SB4Ck1~#FmMAihvSHs7ZXP7J>DTU=Uzwjlaxl6k_%yJwcw2;* z1~%Rl4|w?CC>$l@ug@^|iGNm?VfSqnhc^`tTsHm--&6lZ_Nhiq#Nf{0N;7u&DtCq*0esG+F_3b$ zfLUU1rM=(9OuPJ5!T9Q|N|iI)pYoiRC(}2n5xCC=csEIZzqGmWoKDz7Y2W&OWW=g& zLeqV~hl_t*?C-DR&F3P=%HD-=tPIZC8JXKOAA9n~0i@6esqC30u3KmpE!lF=)Y$if z>rMm7@~xx0A++jd)#iA=BUVDb1Lt-&+NpTk$d-1tYz|G<+|H0|-eq-KFlE5IuSlfy z%ejPQc~h^;H@VLDP_LxFSL|3MSSg2tl=5YX@j$ZKVphP8V6e0icTXN>q1VJqa-SKl z(G{v8s~B?&Ce}We%`J!5Rvsd$ld>aw&DpQ6Q6?dLpQt!<)E*0F_96TfC85v!e|0exx`@wvR!zUI{$?px6kF#jzJ#7zIy0lu*`72Y_udjR z4bL-KY3Fl~#HX0c_GdJ^cK!t3)5NY-9|4A$>YB%-^07an*HC!@doJN#G^#k5gPXhA z_ij@cR&39+_X9uE-HZjP*q3^U7mN8{mmCuN%I$}`r!2hn+TAp37jhT`^f9B^Y-_@m zkN#Rv9+TDKuZ6|Q_LYiR={^~8mE(KGtoO4w%RQG29zJj{t|n^?^Et+zt&Gu~+Ab>- zM}P#hs#qoNtSkoMyvfNGi*$w29m6zpN-`e}x#FjleMO*VmM0QsYiv5xtmxokrU{V^ z3AsVBV0h#UON10p(`TO;Fz;IOELa|WJC;)(oW#X8Bgr*6rr3iM?x~D49P5+^LU>r- zmX&o^=5)>PGR3}r!`v3!I7=({2>9{SOA$NS(rRV$XD%(wEvDR8Ruy8>mr|>zsec2% zO8>nIPu1(|&i#ET_KL86GWKRm7xc8Gj=sFHl+kZCH5<~{T235HMfKTtIl3^`gL8~N zg^HDy>3fasdkj|v%RDhgKE;LzM73 zKX!&+Mt-lG?_ndrd9>l*)%1QB9m~^+e&JlNK0G@u`QkSw3g=MSgk5ND{QIpL3BM0B zmzuBIyDc@J;cBo~hdHoUG09Tyf=Mvn$p*7`W`!WDs&l6*TzwgG8-b)1Q?~PCE{DgN zYqtrf<=gP$8Lobx*=NEUjKz|3^E@!NuRUkmd%*gGxjD1H33E+@Z{Ms=Jx9NU%w^3J zN&i)Ni25u2pGFIu0o%ADAMEt^%)YPCaC#ZmJ(*WyhjGXh4!JDu^igpU2h4FXMketR ztF1DtWe4Bs_wrc$obYVDfxM>C!DzuOpX28Zlp_zLFPL45A9*Q8Ie>etiOg)_!c2T& zn#~6$zi@u{77k2#!mLhVCU`HinCc`>d?O{5W#9GEP~}<_WW#CYC3vYNSb2xLI~b zAgr^hS`ja@3Rivbq3Y2atfb|7=UHwFs)}PqAQ#yt~zaWy{Whj(&a$;{T_<6EI59-ig!JlxayNK~2h+lH7+;9mazK7>duWjzy8z;7=CTK+0GORQw}uXeumSPyEG;pL3nR7bb?GA9*B! z5K8cDu)VCjd=y|*4aTl~8#Z|2wlGy3<+lydp2WaI)3P(*I3t3t|G zHl{HnqgCmmIN#84>GIE7Pa>0d8Ogyqo^*uSg_nB2WG2@bdHjUe7y|frPsTYC&)%70 ziXZWb4r5XIc3oR9=w2DoUc2|Gu|7{V|He>T23kjQCP7(Bx3eZj$r8pn zTqC)k?`3|>Gt7wm zGu*M|_hZ712kW;J#CH zC;K^B>V3czllc^73%lNr>n#`QByxh2nZ(tR-m6K`#=Z*23X9&%oqlag+9On~KPo>D z$yBjLVb8(4(-EwHY87S?F5YLRv&eP2FJ@&v!&{N#Rcc3`1yQ7OOw&99z2O*zz=W%( z6=_Y7+=epu^CZly`h!-=Dm8h!5!dJ79%4=hfh}bKO0LLyE;&JOeH4*%wA^Y2ydw1cm*%pOj9yd1Uv`tx}Wu@Cvf#iD62A4zuM&3})r+p4BCIfeD1 zyuQ2UXHr-82QG6YkI3+gxmdu{_LmvU4G)C%r>fUJbz73bua@wB=T6zZ(&H7!tP4&V z!a?veC+#C|Q2Yt+TpHF>M9nm(=A_%{qvz_XX_4g<2Ht$Ap1}KTn4=q|^F1f@%UW_+ z-I-o2Z}vYPY%we|jFA$`w{yaNjNvNH_sZR${&1xy@0)u%T*;@+s~rL7gLAjMT844y z5xdPckAM|2`S?IcBiC1c-z$FX7f_X-6<3*Z@ElgkIJ?C5f!mj7yd>bT zkNm%ve^ux)Hl9Nts3ADI`0-K`M(WNOhnWTmYw9kUH=uO+IZ^9zJ;W3^9RI$GzHxxV z)~BgS864nf$o9yiVqO82)O9ciwJviq0^&b+d*!dM$O9mIdc~+lAy#`cr`(;R((m3Y zd&=*3f^xdIN?t{xfIKeLa#UzS>_4nwBOaIUj%AJ4C^NTX`_b*-ez4!Z(G=SZ;mYrO zMX&TQ*eUk<`T2{hj%&^%pMpbFc_~Op$M(W=a;`eBfkx>uGm`}FYf&>KUuXSqs=s#( zMEOflDeOm`sV+M2yle-?)&T5VIFtSEig3QB(m_K;G z4?97jzLtvb)F67dei9oU9CmD;AVo=zoVueu%JunIF}z>-@&Z7=WXyL&W>DSfipYsv zYvilAi}HDv>F>QYJ1=f&%{o@k#WJ*Kmp|(ecs($y^6CtHrvzD44DR7 z4s8PSu^~3m>7`AKT4H3YYt=gqP9FaGp=2DmW z8O$zdwe6QW?c}B;?=5B;kNa^RkXZTZ!azK2uOLfv_EP_e`ln?z?N0npmhJ4AzB;~H z`Ofd~OjGR!_JP~)(tN*jr`&!g=L4@N#0&M5lRrxrZ&xkfo3o45FX?_5o99wY8Sp+y zU8bh+9VHhsOQ|}y5k<%Q!+c1LjLzJ4%fOmV!-l&{JY2dz4~9&77E_FTvphwrl6RHn zdu31g{Z0@z1tjQ~0K7&CSib{Ctq*7OBB0jN|Ksn-c-V^Ot2w<_bIY0dLk9KRn_F`& z)iSf6RiXO1cv1kwC+2$|gl~Cx3AQEURiN*cKWvnr^J)-kQY^A5Vc%rBuo<2Wp&>q2 zf9vs?uf<^Cb1V$&a&KL-uPDmvHlM&&N4&G^+Zd#tlOH?Z`SDAq`W;K(dm2G98QNR^ z^EMhMXA}ODMU5BjMkl_ zhEWL=J}jSX`5(2WXpxvpo@TWLu$6OIzK3|BbP+3dIUZT_evup3c`LM%K7qzyLk~9p%I<(u7B4lUd&>| z=O)uZ10Edt@pk!|Os0Qc6y0LfCRNNVwu-0k&b0fcs@OK3Bsz@R#Kq4h1e+Hy#Zkqz z$Q|KZXYh$S@-k;;;rY5@Ut~VtBOvojRQv+USI(&QueA7`n4v%xRZ^GF{|sV27a?&t zsEIq}Nh9)Er2TZt+ZQi&k+%^#L9Q*#b>NlF_li2-3fV!vQOCRv3~a;L`R@?Y%=29h za0mG9R~1Ne=RVZIjEEZw-TqcDp16e#4!3x)FcC{Ax=MZQfOpZY#a_0ORuTKc8-1@- zrOK3GS3WCO;KmAr-b6g_ckDdV{^)Zhc;DwZY>o(@TguQW(qaZ9Q56Rb{?zz>N6%Tp znsmbQ89kSa%O*1`UmBmqWrI?l@OvyLziEDc#jgZ?NAMXol%V)(8UogQYit*qV7^UW zR35uw7t}xJo%+q}iqB-f>NDNh+}!*3LKOAa$0qQ;20PuK5ml`3zHPMH(7Lyx@XEgr zK$q4P-Q!zeMn@EelEdC(o*rwB&*;8|9bnuZ+M8^J@OE;^Wz`2^SCq*&U z!cBZwMhN}j#K*Y0dC4>Er(T~2cgazbYk#k}NzAXqCowEX#Wp@JG$tQ|*hs4dH=7vk z;#K+wZe_V+J?`M=K5!em!h_|SbKf(sg~FP}*RQA{P)Ud@hO_Us`hK@$WwvK0jP4o< z(y+y8pC=~G1nxckyfzTYyBTcr+Q3$a(u%@zm`i45Y@92rWQ7W@De7V>>oceG-$nmk zC8u_b`gH|GM+5hzi5p&1zm)w^Ek=C6TWG|W%!o^5v`b|4OJvM%kufic(JqM*m&9n_5@TEfqg?`HUh*O?d9g2f(Jy&X zE`br3z*v{S=$F7)m%wP3z!;annBM}UU-F`T%ZvGIaWN5Z%c|wz<=a!%-By^v%o1^J z6>;8&TWBY9P?#UCrlp>Jy=d0t|rYY&ehpz^XLm^hp6%O{mz=Q`kfdxT2#JOoL3@` zXIQnS1Yv`ccl-{0S9r7oO){z1RPebSG`ioD<=j|5Bl;>cq?c-}g>iv-*8KQV+@QPD zEU^F2a|AoAzi=}dgK8bVH_!DH`mQN1ZJ1(a(AqxqdX?jQWi74P3)@-`Q~tDKf1aMK zdWDsLn7hl&vn5tsGsQ@3d_}pE*bk0493PmTW{&3X?fKy_*B|c7?w{I{8{a3UDaplH z)=BEeIhg|-X#njV9XK*4jio!>t-tn(y9uX4He0f|QikG(X*;ay&Hbk_8mtdB*G>!n z1u2zl+lqh5b1z0Qyf>%5yZdGaSb{`|JtWCv*>H>kk{5eK*1yFO(c0^0i)zQF97d=xy2%N_tD^O6NkYn0=A93H#esfN54%=c(q^{87TKmaE-3% z!LohAon`{}y^?J)?!n)js(x%{?Vi!d+(t60c=J5ma-+H1yQPPB2HJv&=e@enpZ;)F z6-CWt1rF<$tM|v?CZA$PmVi?=Tv&y}tZJr>YeuUuVodJQftRdWjYwBhc(3>|hV&gK z*;IY4nyoU##5~f-Vr1plG_ITzwn|XWeZ@OGGX0EPu&pCg)ob^?xcaMKxPdj5adLaB zAc{LNDmQa@>$xgATr=ns8vUVXW1%Ht{$gZlnfCMDi9>{0=hN2VqtJ3MrO?epo}X77 z6;V%?yXI+bB$oy2=cnNptHJl_7;ZaWd7ZKzFuiNT&HMVk;~e)Tr3kaHr^9GO)5O>D zJ^EhXt7>RGU-`9RZp*%rHYc1Xb7hZA@L=1mz%+KZ#@$Fz&Q{$SX3NSs=Q8Ruvn#6& zT;=&*@w2hivM0nJsS@d`oBn`*-_8ezI*UHDO*YvrA*MB~J<1yPDNE zt7LUgksQUrTHh;g%ItS?NIp_FOIIFqx2(eQ(4F0yl8#|o?i-UonCZ0(CsDyw;~GaW z&MD`?6xEf_Yz*czxWYKQxlkDJDm|Id1{#gTVXU>LROK#1d7d-l?jJBy66&+n??2AW z#}YCZEtyU1e_12=D{2`E@pK9{%Zpj<9j5oV(0d`<*xC^(!@m z=506_)u_Ec17uPHGG$HH)E16s!Puf@Z1QIA)rqOa9N5LfGYagoTs9L0vtk!#RYC4> zcx?~eJN(!L;9>52iqdC28fy-iC9=4XI=DD>Tfw;GymwvqI2Gwd=x?r)f3LEjaK6&> z$*p?=*x6h4)7FNYT2cl$M)II48?qPfOgL&@<_0ry5C?mQ$$@*{a03s|Tk;7ySiL>- zTWW!A(8f$}2#eg6w6I=d!Ij{>Wm-0@{CN_#{B@><)?g|xE+s9(*e9KE^DJWeJ-d^c znRcP0!^Mf|6Un8)ENRa7Zuhf~WIlI{G!w(vc1c_#8(9OuF@lIim`=Rh4hQyNTz1HSy{$?Yd+WH|v1d4LPYO2pLLTrd;B z+-rwP(GY+8C%{Ofs?rb}@8H;q866nB(l)3dW2?(F%u3OOzx=1JrPK@n>l^}zsIZ0f z@Ufne+`5?C^}_BMQ}WjMnw&R@g+DJ9g^+pg1Q(`*BliR0p^X0Ah61zgDrQ)=`+_=i zc)7~=$?Wq(?4|O3Y{o-)_DCKTMoXEz>&O0K{Cka$DrqMN{@JjKUxn{G4&lswUPFDj zi@iT-#zyWcJr(D720kNZ8j=+{aNh3nRFG|O^KkswCdsw0JOw@c!!ZdBrBCwQ9qugG zhPVIut`DkJSSf?C0Xa8u4Kd|DU#mPy=X+t;fXk?`ZEfNDOqg<`I8Wtcgs?vFSOpH! z2lrZGmY?Rw@gXv^_-D!DWzGq=J(KbNRlDz1c$6kfcjD_rgbFn^duuVXQ1Ryp{Y;2McPtKnzRooV|`j7Avz@=VvM;+3OJi#KM2bIj&l z7i_xSHQ3#h|1uAwkdF8A|EE9P0kj#1Nl1tp^?s%(@gEUf{?RZaSW#iq`<7|AUB^SUhq>Z-SoTnh7(pv0Ld4JIUjc@n7Cc2B z6uEvJqy7&gc$FfrKEgHjz|@%d@}HFwvD_q{NdN=RLXW8?A$PsPSg+Eg;8fz*crX8G z{dbx(mWPwuD&!7lAvduvCG1%VgErU>GxWn>{_}Q%a4ji{&X54&zJZJg>x>XXxIr8j z@XK!w2h9zhMcGv9e^}qmEVF*(8K<*;xODjPPw{c8D#gFLua|U&?CwmXeuSN+#fWZ3 z`9aQ~r=;x9`&sAei3MJ4i^7XF)d=6W2Txy5=Bk`9jY;ggB*mT!y_Vgz!Zv<}cMKTA zU`vxd3QXR`l+`w)e6n!pu+>aXe%ps9$Q0H1Gt}%KUi()=%Otlsl=NZNA9CLnOXAO+ zjw{YcvCbWh%l!VjlvU>68TFX4GbVI}=P3}__wSh7GRtFqEtSiF8_Hd{9Ue)iU;J3Rwr z%}tRt;F0faRB^yQq--Hz|4d19hiN@EzfZD5*G})sjWrPVZNv8A!N-hZ$qji-k4l~; zew7^q$(8(1-$yf5stve%;k$c%x0*6733E9X^x~mZpMfNwls*v_rU7{~<$$|Yb64@a zSNvMurD-bzpU2s{<8V8S*;Z$V%;RqDad?|A|Ew3WZDrub65hHn9Ol}46zsonD7I40 zH~4Syp3}RXm;by|B|H$KE$iJnvh04OhA|ucpENWpE82!OlHcqx~SR`b6d}uVl46H|CDuL&cLlIl${z4yh?KT zI&^O%w?`?aQJIVR@~;4yBlC~VKjeV>hki6=QwczaJkO-!t;Y~IO~KBiXV?|z zbFuLx?hMlJch1P^uhT->v2&{8qrY`(KzXaFFAK85Y;GyFg{>mA+2>c&|G<6yNl&m2`))|@cRQoB*k&VlRII#DYywYdMAlqcFr!(fE{bsa9zbG` zG?4Q3u~%WfSMIpmRN;809wyJ;_%$35GD+;`chTh2@(!s@JfsfOvIhI#@)A9&#!tr zXK!o{;u8Gh-Rn84@7=4rs`~bkPkr`7pZ@tbfAxb8f9EqF;fVBV9E-~w!wLdBOGaZn zUb;`6$80#~h!r_vDQR6t4RRg1y=e2UkeLu!LYsRcGE$-+$HP8&8}%QP_|d-k_mL0( z@>jq3*^j>anU8$y$KU++k8b#h-~RABzxu&vKGN?qF-lY?q^5~5D;OkqM7@h`_n2=# z7-(~~DT4GJM?hB)*G_m1{56?h*!+7)hWB)-01>#p#xHRM0R-i@UH}s;rn|r(p0i(s z$N6#s0vtz$#}9lL&+|l0MV1|?L@*XW*B-Ct#7ke87>c=*+UY=%)T5e{^yVN3GPM~$tZkA}y z{G)YbY}gw@z9G>HwZHTsG5^@tYDiKvMsM2U2Vcd3+0UBRekC(r!JNBVj2#JHOqE*} zHETfA+lDB90^17gl5+77+4FBjA*)OmQtJoem~R-F#glzuK%@>Vda`cS)oRkY4Q5e| z_!2KkU`GEh#^hkiX^hVM#(@41|6fTg8|n};SYmf>L*GiQ4))Nc?cuu;XFZwHbeOtU zosO$uJ>QRY{;Z7W^9ZpWq zNrB63@$!baY>hHY*z0YOGmHB^53kLtWjokkco=ZUIBDT4zsurR-okxJJe1Pg*k2w} zc9-hA+&pCTt{fi9=(X%#%k&N&YT?w)eTLrM6#7&~PHo3uO~eh7uRAZ1|wh4^mn9;$ZzQ_}yw1k)&3fqm&p3g;Q?sP2f^ z5XMEXOGl=-@wrS(+Ua)GTh;joeR4>pK)t6WLzx#+C?m(C&k#C zif+{DtQ1=nqa~>rO+}|(aH&v|tcsX3$1-zPH*N7$w@%gHtc(v)ePMFQ&81NwOxJf+ zcs5RWmVTl19SYIZOUL4wDWTQ%bm3z8N&nn%TuuJA&c-H9JbA{_@^_Ip;%(|r&U3IM zTyck*8Rie3Ij8)OHS$K~x%l_cVplErUM!O%NqUZ~gt4324o^c*UB;Qk5`FFcYjW9l zORn{`%P>)_{8bj(h5!8R^>!G=(M+Pm>I_~z-%>5LiQZn_>dw>9P_>#@YgT2h9!lFJ zrK|{Fadr(elig|aCrA1Gn!9J##go-KH%K4;t~$T?959#!nc+>_$^w1PV$Zme-#qCu zp7VEn@~@8^w?F*&hd=%9x4-%G&wS(;Kl}Ahzw_9cOj-~(7gsx@Du&vX{yQe^XP#3B zjrJfboW7)_t(Gyu_3p1*KmMjP*_McG9$LpZdETrF9$Go;8arUa9o?BEN+0X>Tc6dv z)#8K6eVOVN=8LJkJqBO@=^8t^kehQ^Gp;I!y}otp6N^D|9o=q2IleY-O;&u9}^_6l5F3`zD{yb-Vxa%)P%7zkZix^|DDrJ=&u0?&^KG`GuQmUD@4q zC^F6x(dogasQ(RL%e|=J(uCgRazd~9e9dL$(5s7-eMvo6{(TJ+bX9`tTJnaxK+=z> z?ITXF!-_%rzE*>oNu{hi;?i~cv#3siI;X3k3}?kU@vZT#!iE(fOUFmMn=~(mJ`v-r~z}+CU}tEvP9C`ZPAE>XL0>Nv)B`-YX&{&}0 zoiB?ZJ)b?FNa0S3sc)_+>ZF1DWLXs67ybXm(SNo$`X2dn*wPI=M1cSU=!;%7z?rD6 zvSqnT%0%g8XTi`wMS}(QF{U*wWKI|Y8>qQFq=Tqa1#gFi6qgC^_eN|SReGems> zv>m1Ie05PyXSqE2>a!k+wEjBCWR><`Gkp&$liaLJ=ju3Qwf`|pC*PXLIBnYd%jpD_ z)#KNf+U{_j75h?`iK%2lZpZrLQ_r`4zBI|Q_@aO7i%i|pa&PVYo0{2ofBfSg{`{BU z{qVPc_nD6n&cy<@Z~y)?A0Z2IrF`;>eA8zB<{wj7{nanN`O{y1?`OaG36{cNee+k} z{n#g18Aa-ke{zr4k5_6=^p7?Lb;EneLNB}OMTVxA<@E@(vdU&%$ojtaJhHdt^O3q@ zio7}xp6LqesLeJsu|t(wqu)&S>)0F`W@}CyE&KipPwLmBE3BY+(>I;aN$cA-vGl+D zO!=k6Nd2+hD?%AF%*U}@V?DC5i)`SMfsv$!>r`dyLo3cUCXAU_H`s2bhO{q}QrV0C zpfrx{*U?7m6p?hzsb$Hg@?dir?v_3~zgezlb+vC2{Wuf)xH7Iz?%o@@TjUOD0ke1v zaqIgr*r8x?u1aI)q1qM0v8N!;bW_;f@q0jEy74aX`U! z$zO@*`p342DSOJAd>7mfFER+#=rwVVpYs13`#;p!HNc8Ak)7EYq$WGT$c z1ct(2WIDp+7Enm)xhT2 zuJomZxT%6br_kV@6tZf~;L)`TVx2Ag)IaT@&^SIpk00Dp^I+(2^NaD=VRhnf*W09i z<<0YJUhZ;ui|OSd1^21DrTIQ5kJ&sW@K7+X#q}mN?`)uVVW=W?NP{aMZM}{0#CKQE z*XKuA`wR7~^HeI#n!jGk({&bcjFvE3jpj>U=9S-XHFDP}sr5*q?Q*bc7ciZ8S$Gnn z789*1KvH`vR(1AP#Z9mZ5oq#)Jp0fZ=40OehuXrJv%c#;ZenHEtNv6lSf0t8I18ko3^ySP^X5^WU4KhIm;Hw zwL))PR5`x&cCAeN{NN$9H{;Fz;`OC3{Vj>UPo0~wi9`3l?fyZ-el|j8kJbExrrX+0 zMw@>1C@&2R)R(5pZL+vtN)zWO4eP4HND+}_ZR84 zV84I5H@d^2eIz!M@51}X(?@gfOkf!Mbn60FtVRoyuGX~;XB8vOZv8Ex|1C|bZUI9n z?z*U^>#*xuk{dfd=uzS)3zK@jmof0lR1S6{R~O;kH1#yw2Y12!6WSC8uYPT{q2Acf ze^FQJ8g_RbsI^MqV*F)2D3rbEX{qO*EbVNW3f$ zH;y(_{Eklbfnif^$xND!$oH47G18^qdw*~r-alS`=33aHj%u$uQfRYNo=?qLzP_rf z#hl6^+pP>no%MbQlo&xb-=OI@orm!L-t>L@hrjstk87xC&CfW|2V+DUfX1uZbbX;^ zsE=O4qr5b0n%k~9;W}bOlV&8ctS3* z@;7;SjOrKP{r0aujHfX(;pt;tnV?gqEPD*kzyIL7Km7g=ewF*X`1UTZ0hjv&hP@W) z%lP8X)ZB$STYe2EU>b<|KOXp-L5nuib>RJ;`z4uk^^>!!Ko*-bgPh`id9qGvPSyqV zjYX}YMajCEsRerqiyOj0ka(Ok=Y8-^Y&Tx#UiNTx+Dj)U?&Nuiwc&7lIa8xe_HEV) z+bhoHo-_Sfm%p9n=!aZ={V$g9DM#(HiTPTNLzj=+v3(jl5#vr6`pGwc^@|_=E-jxQ zzVaWtgUbf<@qa;7b!1VU+2QsWvge7Wfms6`U9 zlI6`g>N%O=0ya*ivpj z&Oz?*){)e@%U~0m_T%cx%}Nd9hIlW7QzasN9q|d1YQ68PRo;(iIXhTqP!Aoi2pfMV zIkp$faFg6Jx>me;y4UCkN9IGh8!Ha)WJc9ie5HG>^5Z=(tVXqM72ksIs_NOoZRU@< zoa%O7oxakqfOT}EF2`;Tv&cNzxDOH5CBE>oos6{Ga_QXze!%Y%s~VWSksp3_WF2% z$1pf+j^KuE~8Xo;rep`;T_O zId~*`MphInT{AESoPS@+SS&9dmduRZhOLhMrgXj7DQ5bd0b@OXsHMjWecT%BIJLg$ z?Z(jEb};9m*E)=5@W?2{V>x`061dw+Zo0c3|INjjGfN(P<8Vf_(>)iT1e_5Oeq>G> ztl?u!s(2O841acn=EJ%(a+rgS_Em?ZHMnk%n48m7D|+2=nZC^6jAw~$jY@u7FK~`W>)TFCo{Hyti?ZD zp90?c_E!Gcl=?<4;aCGsfBpjRAr87)_=*MZe32~kK(aSA;x)Jh4IYf4Bxh`c>G+e8 z{&sOpmH^Nw;S6Y=yMYdmmdwz+%KgSYcR!h!My}G@9Uioc`^tJ&t@B#dff|w_Mr;oA zGT5}Bk->X_ov#lLC2VaH0=oqqeBDzbo;V%iKls|=o(|Lf=CT!7OX*unS4lxNBvQ#y zJTr8@u|A6j&aqWl`R=UyY>2CHr_oGxDGpCQJ|v1|6GoH~@73X*sZIA70+hQ(pUeBM zYGo9{zighc(};<$`Vy>XUForH@Ip)^y=!h5`6AO#+qL4rJze)aypq|@yNW07xz%G9 zUz8@DPlp%H;-Rvh)++`poa&;s{lbdde$C{*8Jx5_w+$FIGns~K@FXelGKUd5QMuu+;P@{O&28wMHo-{N`4&~p~aI|g3 zVGNJ5WnHH9BhHB1YVhDxYJ!qI_X8GNy03e%;ZD1FsH|u8+BPRQO0;79e`zdI z^MED6GhEcld8r6Vx{%>Oe?^rNd%=cM4<)2|Z zInwDVGH;J5=fl>yPW;IaOO|1R~KICFZm|$ zVlu}0=E~k9@S=Ot@pTx+~}Ob;LP9_ zcPh0mV?FxSf`iT!|5q0?+$K*xav010IaM^^noROtR}|Ex-dfJEV-=5d9~#9E=WFcl zUfz34-q@Qf_||nq>k-LOuj-zuW-!Wyc+Lq+Er)Hxz5Vf)s(3bT1 z%%itMeRS2UNq*@&e`3PS*o)_McxDogmbGAA;fep=;fcv6Swb(2d?_vN8UdT`?$ZtK z4aOjxOg*pSmF}Ac@!~)OMT`-1yIL{_hJ!h#Y7O@^VLnW)s5iMblnb%X0ZTQ9V^27f zL1?o6!K?J)n^25}VQE2ph}FE6nr;r)#ep>5YZv=W_ZK=U%mgmEqx&!JEjc*t7Di-{ zer{o6vZd0p4ok(judJuliW-GWnG5Q03^y2k(lZwmXncFHD^+We3fNk}j?9MV*~OS+ zk~iNv+^{Ta$Hwp@^Gd<9fL10lks3ZcaIFjd#8Mm#!;`^OeR4(;3S14wEYm3NGFg}- zrNMN(;x#)g@K5x8}CkJ&G58U@G>bbg_9@>_CN0&ErtI#a@Z?eFeA$-7O zS-hsfgOtG00?sbA^iS_c{=9aw^QptG%fVEC24}!1pnO9c#-x-?J$v!$(m?ZX#Zh~t zR-5opGowPvzp2^m^kxp%X&o6$IY*jFX8xro_nygpf!iK1_6@loBVY_W$%w<^O)Dn4 zCLXt=SltZF9tn2NN-jnnWDF0XRU`u5G#hmba|qOt}{wRotiXSFH? zN=|*!;h{ivpKz9P>60xw%&i*YODVJbq>p~(py}P}fUapx9(?GqE?t^hacjwRkAxlA z7Gc@BXGb#h!_qx%4WTp!o&P_}dmG6d6S^w+E8UO$F@qZxi#gg+$oS@jeKs&&fU!HU z>1pw6s!e*- z#mMM3V5e=Xq^uQ#ca`*1o6-H5T>>5hWHY*rNM5@}Ds~t+OdCn29R^GsFK~&gbgpvl z3*;snyz7!=SW^*Ar$;P!o++g)&JO2;Qk?Gh;g;?-eizfM0%Lfqwu5e}vs*u_bs$k~p$18fVL#G#IfjnL1v@eM{r? zX@~PQEyY1C4(s$F^4{u3$~KNDPQUH>ej=j5^nv1WO<4LkJWaXN0gd=SdGD4aNf=I>lws63FiPCU|>O3;-MtdwaSKi_}>_d6qa~F5qV_S7N)V?uOwNZS*cUARN zrD4&WoN5L63(AwJR*iuVMKXUT?0kCgP||e!+|jNUe9@cY|5`8xar{rdbU14r_m(M+ zBkGoNmtnwlo4}-+S8=5KsqtGZodHQBy!_ivX2T+AOdA>2<^V%x3ZqpUj7lN43+E=S z96t78;{qc5$KG(18jL8s;7uFuGpZx0%fOVH)*NQCGZ}qAsF^y_ta{}$#QBxoT(KJE zz+Aaugav8kb6D}9u<3V3MQ89`Wj(D|x{2y4PMN?F~CU;4o^~52t%$Xc}T^48~fP35Qx36J_OpX$H&NO%%Ums_>3JR>^CL z`QNL7Qpw?N9cHdw&c}|*eT!tu)8U~8EJJL-bcISzvkn``uMjUu$2V9wM~lz;kBx{lpoUGUrHJXRmNZ!NP#R)f(k#LXw{v@-bEhj&dju>_zp z&nGX5Y{QeTgXjiiwZ@K?7_dIYHu%&Ew`bb9q3uY>Gn6-TFSe14=2qBn-jO$8t?*J& z#e|Iy>Y<{Z)+t?soT_hm$s9A)1&2gSdY)}C#U)NZuqLPBBe7~S8{Si#Im15^uftS& zx<|qaxFgNfb;S*C`68KGUd5i_hsN+?T0>xW@bXXNq3h)rp=iXVGyQjBX(w zK9WtUIc#mh*eCGrwn6kMg&upsOHDYmwY5Z0QWct)EZ&~Xw+8Z!rt?XYEZ$R@3m3Cy zF}X1vT<<;IJL9E`v4E(sV!&Fs`cPR5nT#*a`r^Hz4Z{ro z(spOx#T)Ip9R-!HyR_}?c6dwQ&Hop-bbs+@gSFU8g%usnhvd7udRnWjATM(-U0xs9 zR19`0aD$F^!kBQx<_0&Wn&Bg{VwleN^sHjOQZzI^c9>e12G`7C$>^PLY=abVBDEaF zp23^O@nS>&WSx$c_i4#lyc-;9Gv+trvFYl(Kvn}Y)y3gGxl1>PcN_4))&pO*V9Q{W zk%t2gHDMd{Brq>EHwn=BC$qlmSZB%TqCpl?4s^3OjAUagP_auZ_iaL&w~8rx1wNDS zYU#P2ikV=`b)qyxw<<%KH_`2*VC{HD28$9q_0dI5jN^XQ~rfytIVsG?t&n$YL{`v)2FcwB*hm zmcI3^VG>~rZur`P1vNlHHPmFGuS0__2h(g9TdD& zs|!g-?qiBGYxtME3+D^mBhDL)Krhv9saj&!kwGopd$FZ^-3c=e=W9mlS>9($X65~Y zyC#kF5g0r*!#O%S8H_9=Zr)(2A|GJVW$xjU*7?T1lq2-Ntk>j z)A$ywu||sSHH#PS8{I!#%NFVGuPC;3ueq&J+$e7Podz$4nTP6nTC;W*4#jBnc!Te3 zjpUl7ACnU3Fmn~+<`ZT`lG3};Z8py@9>1eZVu>5DRbSULL%k`zv7{;pD z8?SY9HH>y4?p>L?Xk~EOiDjk0yR{86oG5g+1qaH-Vg7V+?f+Dwwdl5LWdY52xT?KsNgf2hpKw2+|+?UGJUdq5;ba0hb6!? zdMZ1D;&5^A4yQ*ude(xqP8k2!CC1{FTvG2@$B^!wb%96jm6F%2fmIKaT3*Fh20t~L z!=+nI6j_H&3NpQkfkC6mppG4xZoTJkKdRXxT=DD!mU<3n$gu1b_^(y@3^QH9FI#Y@ z5$li++whS6S~f0+`5Ke?+6vc5=K~!TMtWE7R=2}DIb-o%d{Oud;RDukFBR4p@St5h zRMyjaMUN^$??NeKV%K0vF^yizCd_V6@$3$3jvB706MM_I8<7pfEF|_mVCm;@ z1l%>}g7@7PoL_AsLUDku7QBp(1P*;{OVgBR!Eh+L4zx)i*6Ju{(+RB#+_>0F~YTxyl3c#r!9qrYv~HIdcrW<_3_ z@05Z5tijmA)jKHN96m;3O}N0VEf_&8`HzAz2EKIP=|*5AWF=<~gE^>_)cRUNx(#W& zZg7TExyvAnhb1!`aolg*)7Q;nuesws8r*3U4|VmlTIoULR8u`#7<#2f6Um~Y&bbX`kGucpc_BtWi8cd0cyHbXA#*VIKutXmG zUza#@rdde7csR3ElaxyptJ~5>$JYX}dnXgB70+{IqW9wAwQW)rCAmAa~+_cNmdIJcUx!L5l`&1Twsb>ebmYrQnwtJZZ*bOga=eUl6=zD`5tL8MwSSu?`>6i?L5>wL9FW|n$ga=J5d5+m(nJctpbvKyp ziG&|*!TX}`kP&2UxFf{GqO0n#Ry&bJN*!j}Uz->mM6@DzzAO%JGQWETm)T9{Y(_AL zC3H|$yKh)J#zRd#t5h^8jUR}S7jwG?Aj3$boNdCHzbWpkR{D|*xY>fWQW*c22b{S| zMDj7PW+qr#5q^YRf@j|js5)qkDvsib2C9L)n2xp4V6D7&PsSdp&^4dcuOpF@lHQK6 zhFV%Y*MJvxK)8m*GE(3|TFp|P9f)u0=xJ4A2f&$YJ9iuVtXwfkF6d5KHZa1QcrJrA zMGX%NSSy6_-yPPzV{|iG9jqCNHV5kikA%y6%V0qCILaY_&LV|o8oP_B2ck5Chgz1d zPTjDnsc18?!*$6$S+EJCQ;2=_Wb2s!;A14#YzzK(th2fq|A@l@Z?#;Rk9qH{^ij=F z!dl-%dTnm8=In^J8_Zy#{9WrXe`j8|FBn-tTDiAbOus}~?G9^O?|oH0S5vW%NTAYo zZY`X>COm5PkYyGF&L%8$B@9#cKH8PT#wU&U>0%5r$%{`MW>%tU_pp^TOL^n!+A#Hy zOdWgi*y&zF_u-~Zl5P{`MRI4?gMwF^+4ClhH+^@S%o;Eqop`Mdms*Y#ImAr4@ct~u zmvobiEaUK08{Yl&Ap{&s&)gH%`XB{C7V1q1(%3To|&%i+6<`ZIOvl?A(Vq$W79P(;!S64BlM(&_P)h>@6aWAK2mptMxK>0wUNq%|006Xq0RSQZ z003cgb7gdMFLQQhFJo_MZeM9*Z*FrhVrgeDZeeb3E^~Hg?48HXY&#K!=RCy`Oklue zZ*NBgNYH>7bWa)d1d%~Rk$HR8x5}N|A4gKba-~H{Ee)hZ1e|-C}ec-1L@%#6F_~Rdc{^LLW*-yXw z@ejZI$&Y{f%g=xO2fzB&&p-Q_&;0hczy0X9$45W=#rHo$)X%7ZkALA~pZorYZ~yp* zKmYX4ze!2I{>6_!`3dm$jU(r8r12@D5cc6apa1x!=HsJn+du5Jj*m(`gU1-cZ99#9 z`>56`(9?%K*Yr^)pnuf$XWR5o*-m?FNng8yT2jC<2;gha>9iMp^^v2Hp3+BYd}yVA zG-``zdC#XkAIf`tsP&^>>+xYvY5S;r=2+}lniiFPW~qjZIT zD0}*lOa5>i^+V0|q-uY33>BYLZW^y+ zS0Nwuz6s|xK2mR{tQK~)G-dUB`H(4-?mSZdC^KYgvHEGLyjuFpU;W}|Kl-lPs&?$B zcKhMea~AL0{g>~2^OryP<}ZHn&EJ3i<7N9$w%2YsstVfshnAbWC1-l&_|WU-ZrM|h zZmH@Y=7cJmHkz9f-O_4PlZM8m?sQAZMfqqDm6#Tdt;877)RNUw6-f7P!u#=Il=9J` zL9c07J|C1+{c?P0ZMb9dIF!r&VI0*RQ!0bObnNb!r|SQ6I_A4S)`I-ycRzglcf?KU z;~&1QaJ62u{^K8hpP^nWPUVsVPU2dz=1pl6^cn;^Xy@K=hf_PqDavSf}e zf7BC%qkK&RxSv&$$OCJD!9BNfd~|FxLLJ+A)S_9_J`7Q!ZBOT>`C2r(Md1u-X+?Pq zt@WfK-9OUoIEz%2kM`y`nr#~A^S&MG+pcV?qU`7Aip*6$+x1%ER@5p@&Y^nM+`r~Y zceJll-o5{nM72k9K8mH9x|eI$b)|ZG6=E9IAV9%hU0p6z>p}(NDQI(Kd3W*R?58T>{G?BBDfF#4TGs zm5~DEsvWD>TgWB~bptycaRb`e?x3df0IDI;Zq=YGb5!nD_eTr!7t3g0dTn7jJOu5e z@)#CVK-Hb`U?QlIW&uPPD!rNM^``mOqrbKFGWpnEspfIgNCfLp7~oA=IAqWV8l1^v zr0t|xI6+aDX63C;{&1_$)3|&&kD8ZlB_GV)RQJ=NN#FFTjr%Airn_1}B@cQ)YfFpb zV2QM<#5}O&OP+?P>pTWaZ%BK0L~O)Nd62d#zti48pF$ zV0MmP&j($if2fOo^9)u|bJBKIHkO4bxN36jEmm6^&GRlXDrsm}C$U(e568w5E&KUa z)}uyW{0jfA8*z7`T47o3{~FBBQIk?@3Xen%Y|Uq7E0PLUtNZDoIt{3nx9%zw73dlr zu4pX6qR2F%l|du+kFvW`d{lM&V5rn^QykcRWf{ zBl7>6iv8zw_0ya@@>Whu4bm?1l9Ue%sf)CC^?(>OWiwP1e~-@m8EHEcd#J>ss%=r! zwhh)BBf^$(K;Ci-UglKbll56D>*(0c%QDGpbCyH>crHDQCy{KSqM&rbKD4y$w*^5?11G^ic ztyb|x?nSr2npWCkJB%)vnb>Jg98H?WPYf{OqG7_&$V4kS0trLh>$zy{96p>VJ@tpb z9bH%vcj4Fe{$q=&?p~-Oni|6d-P+EXmCtahF7yQ~IOOym_b-q{(LN{I^4FC~eo)3- zVp};sV*L4>)|sHjCl6%%r%trLu-bE?GrE>Yh(aUmflArN1!k3hnUWR5fU` z2JAC%S|-_0?g6tvK&7UKx}EOOY7i;ww7`46I3~W;OMiPUEVGzHrJ5)Y!xYtMy#l(( ziLm1p;$`&??2LC%)zNinRF;pwy)&9ats~<0?gCPvM@9Yui_x2VYUG{2CvSdW^%d(; z3>6)#%zA8wr36k{{ik_Ep__K(%Hf;?N|HRle@`VTPrl%}9Z%K2edmqx)ZpPc)0@jz z*XaE3lb)KJ6!Ts)5oVB5cg4wv(+fxamv;R5M(4e_6C` zxvf9G&a?c#M0?Xm9z=Q>W$~f3e@x|X z{rH>T{?R&-AG^zsfB4hye*2q0|NO^)@v~q5^gBz(G2YaJW0(F?!_3~Nayjm0m?OSV zMeB>2!D*Ibi`uxm#T0oqm48Z&juxH2GlWC`dTzR2Tld;-J$fzgN8m=>tnFJ;H{z+s zdPDBG``D99v_Ww?^WMZX6)!H=U%&YKRATxBMT;jw5l#((c_j zY_XKis**m3Kid{Nl$Ur*3?2~buBs!pCU|uZ@s+$0z6CO(py7fliQg#lK!@v zY+94x;P||A`W4ZFAR|rA9s*$D?Z1IYAj->I%?>T5zLOlPw*_7p24+1 z$24kV95L=1|FXL>VB`?>21EqlYAY2>;?@P9YAphy4{iCH^|xPD_EW>2#`565g-X2k z2s3UJs1fI`A&QAkL2FgtL370K65|XBAA_TF(%)eUFa-~rTC!`PHAoDR2$_<#7++Sh zW~i1x9OIfu0g)1Pti%-P=K|B=>?IcWmeuK!I7ODINZE9@5Q3kb)m}HLf3R(*Txi>7 zYO@os)BDQB3t8MHltgIL;3=h>s4Y$TjlZ|ze{AC_g~3nCvq4fMEP(GEWI8F#hpN6~ zs_MKp1k}j@My2MUJ^N0yJRFJ7lK7Mas;C*{!-+b@vJ%nJ2wGoY;Sp^1ti@ldYi9-3 z!&TfrB8f-2qN^zdD8`IBQfAApA)g%`0~MqytgKsQi4vc1`_^(c}=>8ALu1ghk(el(MN&cW~EucuU9ul^9w+ z;SjBwBhe3UQyY0WOZaa<@lJM2anR>4RsD-HKgAPkPlNpNL4@k2F~~XbTY4~0_mkmY zQrx(?k}P>6DE?H=eSRDv?)^LRmF$1YqS-w8EMDN1iq4hG=iiYtlfP;&6$8NsOKj5z z8V(k>CeGhcU+r-)Or9|{7;KGcuyh{Mn&*kYl23iZaElR~13t{dD^w?Gi4j6fw_7o; zZ{-7<;B>{C%w&CI_;wC2Fl=nO{ll#;ixTNCFviO|$j(IclpP?Nger?soz0SL3FL-t z5pOmvM?5!g#+nV(@+IEAkq6|i>}1g$vCLK;&am9u*&_7b(uzX-sg8d~Q=j#(2m428 zHr2y7{p+6mr5{!M7pCehgZ#)~R{pQb;?do3bZV$(eBNPn^gUAS#}L!pIj-w>&4U_8 z(tTqlhz85tK`6^Mz&i61K_B$9q<;qj=fBt=f6bXF#7zSkpXvx5>_RFNsj0t5Ow-^8 zl49Mzhhq7hEwVW}6z7N#o#|v!qQB!KQ4mgjjRA^TLmA}E%SaPP(RI2(H50ihY<5snKMocsH`@81y)X*<8;{RIS z|7&^wujT!}miM2d<$csB2L}c5L;?Ese`Qrng8#3M{l7Z)ePX`XCWuB?y2kuG{>8QN z-2A_G^M78u`F~~Ff0r`tA8gFut4RC5is=6;qW`Oi{)<&a|Crw7|2m=n>xBNV6Z*eS z=-*f;^dF$J_%G5)yf$S!X21BWZ{G3_i5+y7p(oiEZ~aSuj~c(Wev8fb%p<-wTMgf1 z*BW{7b(%T*SCx2=eXqy$&xoQ$Gw#ig@BR_Gy&Rd|`cQa#?$M~oBeeBfO1|$o>f4<; z;OXv_KOQ;W&}o);4^>_6DWB^2+LZqWB}N&LN$MP*P5Vb?i`Jh6R#qHd{dq!MAr5{1 zp7SjM-?x0`=fTB|NBp`)KK?w-{BOUHdxA%O{#;i-Ybdf#q~!pLcGq)*RaXT#J?=uH zF+~WozT^BzcfBb=lwvd`oHvi#c*A#<#O0>9ICG73vq&7SE1!L_GE^9>YvKBlb|Ya% z_@VGn77rar=Y$4e$qA>p7VIkmq@V)G zXRr3GUVX!N9m?gVXi=Lv4P?OP%N3@hW9pXB$Q-kmw@xq5gv#QfwAl;29C{Qm$FyRc zbyr9j%Ie68B5nzp9w{o`G?qC!mA1X%Tf|%EwEi`BhB~3|%G~{ld`|eFKX1{lmuHpF z8R@|mGPtaj@P?lwU+>DKbM+vFHYw*n0{K?uo^?SQEe&yE^pd(EzvD+_mG!J`5<9Hs z(_|fSb=G>r&ylZpjnLT>!$Mg&>G6i|s+!BQUPlY5FvNhOx%q~lBVRAiI-1(J;SJ=d zf7ZM~39dkK!d(!0&6+VI#ZR&QE*BYGnx`S zbVcV(slzO5mPm+QU*FIQ!c?Zu3DA=Iq+(K;56u&tk&a40go?r~m_Pkbmj{H8*#XY} zuC$_s53#X$7i}5_+UkVWtI6{F!Bovvg`|+Kvf^$DmBmBh!VP$p%N(LY_4&|+Dd(w+QYVy; zl-S@Sx~MAeAT)}rXkQNk@}wy0h!VTLMI1LqQ!z2c;QE$e*Yw@MIwj~jY5P>M`V!$$5#yYu0rwtHa_kmNg@x$bwoz!jX_-@0u_qF5=e# zJ2VbA5H@r;mJ2$>JRaj7) zg6T?iin`C9u?FFxGrV5ziaYctl2-tf1ya_cB*3I4AlT^{vnBM*E#39<(D;?CI?SbA zvoJD0a)d?16-}8X9DLkWh05ZluS0-xP%7l3QcqmC46sJD2y5!o=T=~~yQ1&yO)MybK>h= z(RoIZpfeeuD84XkXJzcodm~g&rV!eQABxS(P1oriI{91m(a6C8S0ML_h1DGixQoBI zYe<#;MRCdjhn#8g@N^LU2%&i2AyYIJywlW2TAK2rJC$3dpajPzDx##~MLMSfQ%iPx zUq^OPgg+;~zG!6ornOmsEOS%nm`^!7VN;b|$Bh4?XN~OTp{9k2>7GMkiAv0C<_4CM zhuQ(l=pKPM-POC-%Zt{x!oc)71|6EJ!$*vXs&benE9M-+{h=~;WnQ$&WjN}Tv+cqe ziIi2_-tN4I0Np!}wB+=-etL%H)!lGcOWyE|>SVXOqE6N{o*u}gdc5IVRFb{vq}6j% z@T2^ZK8!2~hZysLs4c=;rUfKH63hyyV_M+Z4y&v}NRaJ%bhVQXw z;)fRfY_V-RgxT?`FemJ4?y0eNWUY?6TR4(5EHiCn^rGQDGsSc_SV&14nAM%EjZJ}l zYVVluX!m?ceO=Y-;?p4YstGgqSmCO~zPxC_MbA-&i4k(0(i?W{N8%UV^qFmPAX+3? zXy;2+O<$iezNYw8c`Cfm`Wsr_^{Z%?erV343$`9YOl@U!nHpt5BO)+!-mO~XX+rr( zdcAAn^R6^ob~kRBBaylhuF>-wyo+d8hd(LNFAu#s{t2ojf}EawTJ~nxhyJ!KEW*1f zoJA}mcTedN578eT&@f-iVIr7~4)fFGBopAOR9=*#ZD!=Ts{bMva)blT*UdcFcp5gB6Pk zuO+7ox8_^b-6505!`V)~&QR!7yTi2tUlLy*_7C28*`Gns^!|o#aU*UR0UYFt?IQXVzU?WvmCiad zRiF46aX>2PtzR0w8%6#?@d3cLvqY3mSN*J?EKFS=^`2DixmlQatx%|UaI6#F@GUB( zKU=Y!Av}r$O!^3pdIxhxCOnHs7@N<3BqpneZH!l=j*!5lb#K9qgDs#GYPnTO# zvUwPdsG<%2%Uy5oFE}MM_|!8RwpEVQRPT}UdU+VBc0*Ln$&OUq=B{7C5>ut#EhBn} zA`0idU3g=I3EKvk@S(-K3&IB|*vZtuyEOzyL)->UMnj9lLORq-475ngu5e72Fut!( z1|Z7hVHLumf^x=AIl`jxmcyuIAx;gJfrth@j7gNklZlCXC|U3V3(i7Ayp_FpL*^}d zXqY&Q-BYR_Pqr*jJ&p&qW?|cZ!_SeG^kyxieMbLw0pF$&gx(&sA&BLUgT`cgEqIlg zkUSn1CTgyzq5kg*Cme|mL9UDtj3&ZS-O)4I^>VXdiKC68D`WFCZ+OO}(1+= zEo}yj^1L7!b4%G$;DM0mk?{It$WkmU0%(HnrgEDN8Pq1TP$P=4X69jfa(S^xscNC7 z3s7^Y`gq-0WgF5hVVG=65o^RQ@JLK$ZU!(GzHA32Xu_oZ4c{Uv$&+D?qG@32bZc8z z_=rkbH*1%u^t3B$_``a`kEqutV;UXEG%H;xi{IYxEh@=wwkl^Ev$*zHHl{axi>M@X zKOiS2T;`kQv%*Kj>*Zm8;{~{9=eGNpwjmu1=sXcwRIupn`H@hWOhXngz-`Q1F066i zqY?B0%~PgVf_;2A-_l(#HwzdBZbm_ebcB@6nq6oL$7c>!9jx%1<&0YYYRqC)OErXp zIlqQp7dsiBoMa0ehB3!GevVG^S6disgKF%I+X@~LNq9F@QHZ4`9aec8j;Lwmz$#i{ zyH#LQuwviRT_3hEXMM3#2q6xA$1^609_B4H~Cp!!vFqe6fl-m)U%T_RzX}^WnCH@6F$#Klike)srO-wYaz0H*?cLuQ&*=(@P$LnRF$zBX%*6xYCWf`JdCmc}hmo40!8%(GftrhGiI(i1J^ zT`w;ea_vM@mIp#y%-!GcOKc^+TbEeJ#CrJpNJuMVN=c^~_g6KWpWbJ-c?&N0i#AK2XuH}5oAe>tuXpH9*VrdQ<9(K}~ij35<{w(UUWifJm6 zAjyrF(mdO>-|bEG`XgB6Q{5&AT@Qv7+rcq_VUq@O#rLCmCJBp7}eK-AlgF2f8#Izh6>zojS~h8B?>XQd6yKJ#I< z8e019dReNk{E(D@Im`_AX7>GGriproZLV}%1Yv1ThO$oyHMn}+{ys|r@3f;@7ie1+ zMC7Z*(1~o0>>F3M{qvtN>?n3IUpU-2KVj;J5B@Rr?5fXTcGKMhn(|>aYFgTdVUkAq zDAs+z*QxRoo6lPflHN?9mh@x@yF(3G`}IUeRoh5mD543%D*!eIVBW=D{vIptaoFa_k1;`OV-A$uN&b-p_ z!b+6}hH3t=T5G*FPOV+)6Z6Fx*28z4VKlv%M5~2J#cZ`)OtFyzp}}M$@&guAH5oU? zY;Be8mX%>!O|(v$&cQr|e%-Spys@D3VD@jKWnSx=M(UlK*>$N7M@wG{731N>$Jnff zWJ~MR+^qEyMq%hk@IK4Y+KPgd3 zKTkrXeqgz3GMf&l!mAP9saf!7LS})0Z4j#op)zJ$fdlB^#6qF{bt8ZF$xs1khLE49 z?rJBvw9mGFTA})ZnqaS&cCZIjcs22RvnpKDlcD0pVr@Vv*v}{oG+uBP!$xqdsL@&Z&ae`;N<>pu;(U(%8zXtgDO{- zRppIOf|@xV&Es2QsdAKC%@vg%`geN@%3nT zVKZcr+hFb1AY9cfuv?!!``Lz-`+*zjxq8O#*^)fEaPN?1{V}ctd|2%_m$A8Co|_xf zNy~FKm+t5`HkcVmr0Z~Ze}RH4J{6(?ycq*ufysj@Bm1H-+*Ju`vmK`E;pU0qIXu0m zZKr29dI%Hh#_CyZKixkX;qYP6?T2Ibj~XVr?>TK^u?ICM90;hLMr{r@-S1PiE0??$ zF=y1;8`x61_cW;@T=JCYU6uN7y87t6J6SL0nQX#44OziobI|p&Sf%2(III*Y1`6YC+auG_}K z>+rdHesEtkDrvTl-Nl_`4Vw5A z>w<&r6jgog@x?m$dU>w%=>ak)lW5T1JU6`*{M;4$@^qNfZ5U|>HSRsGG3>syj+)qF zA+rQ(h#S_;e=?!kO=@2QGb!p~k*xIA;Tv-ta!2gLJVpsZlfoED5-jtN zndMJ>%nMkjWJ~!-Cw5`Boi)qL@9QBp2H*%)%(KKs)Dn47kErQe>4F$FH9ZW7R zB0FthP0Dtv4cnzm_CY%JXE%-`$!cW2^xpOIQvG=oeLo_7Q*{qbakG`8c4{oymFd{Y zmjKnsc++c#F)MakHavvx%$+{UVfr5z`eP$gV-$L@P1m{Y3NP083pF}Plfk{)I6zQ0 z1QMpKq!Uijwbkq5r0gdp#!kWEb3P?ypM^DDefr%F50#l$vwcyW+XH24HR)HY``4~h zS6VpcnNnbq3HQi#cu?gY1FJq!D_r{#uAyMAqPFbfL{#*IRk(RfsE;shAF=kgp{`_} zOolzHF&xQbWogA*V`54%5L~R5|0?Wu*MQ4&$(50oV>)95Yqakxm-z7aHLj~98Z%#; z(|mDbe0(q^fT7Ve;*mPSt?O3TA!Q_-t%`kzM)g<)Qq(V9cfBkPI9ZuCfTl#~tW;)5 z9>ghGi9fo@CVRM!XhE55Ogh--<^d#m-zc|(vkcFeDoQ4NJJ0M|bqLTanDz1j>MU7$ zoZW_2X+;~@19#J$5hqQbXWnm2Ah>h&n2Acx!J6V=Yel09t@1L09aeGVw;Q{-!)hwe zT+=x3rm^aFC5KCOb||d7XwKA3vDptu7Mis@@Am133c{DahN;7R0%*rhYZjh?S${Vo*Z$6L(OT+1ueJob| z8E#*KOE5=l_Nm|xU2(Ecn9jxQY&9(GV|FWIFfFEO-46-E2B;vq$7hXYwATAC*UM{l zkoiS=Ds8=eL=d+jIyh(LG0x;D7t;{bT~Ts~^>P}Z4$u&&`d zmMc>-le4W}=!@;nPOY+juyPo&lNXJkFq=;IZS@^OlGsu4k3sudsOU6|2m1i^P4E@m zZZFfKI$MGVCbU5AKuQf{c{;L|7}y*xSmngUt>(mN{J}`5BJ;cXw!@=y604rNp-Ka? zEY^Eq_THvp0(Tu@fO(&=9$-ZG5xpj&-)f_wAy}1lbQl}(tu1VDhQqNjxQN`{aU8Du z^vN_r&wD6$`$n>H?TEI9}2}dzop8g&3X-t`bzXBNirO7=+=E+*`l^hAZ5^Xt1OmK78u(ie@EhurzcT!2L@Im%0fA6(9h`uK6y zsbxn%xLof$3C@W}FEUmfB7q22jm5ASN8L94Nr6j>__+k$h>!duMRq;b*xmzXhMuKU zjbkdPO73a*6eF$WH*;sA;W5*>!Ic`PSvsdjl6PkpvQV&0-kiNYVkYTtj5M{!-a9N2 zRBeS@&l#&qGj_c$xy+R7<+U%>^PGQnpjmb93dNHs|~GRt990S%50!1825v4|qv`<=%fB zFl=&Zlj^|DyUqK(&6b7Z_9u8rAKK<#rvj&QYjc}8Ya4vK#rbw`bV<+s(0MJLqx_-4 zw_db@Guy2)jO||=m-iE807@!rPyQ6K^Gjns$MLKfFH5ps?RA*?d{{4^E~Q>Ck8Dp6 zGIcB&Tc$v#`^<)ox!s#+&$JwP8fPZUS;LJ+;o9BQpww^VTFON1KX*1%^i~$q~EW1cjKwlu{*AolG3u93v)InFF1Ca#~|AsvDkt(q?cDaSE3M~cL!*5Eq5%a|W$^P^^cNl!>MOfb!?Q=SU z!q}q^+?Y>CTX@WATSy_o8<2kG`N6I#6WlEHM)u-s+F=v2-r`2@kdvTBIed9+*@AmC6{Cczy#&HK z{Y_*0%>oAZ;MnXfF~j+ZsxfxLhh2+pAxo83AMxY+jr6M3OKKDZI;$dEGE{YuPNL=~ zGxL`p7;GH_XYv!0Caplq_6eXCCURVv(3ZR0sDEwO^|I8(E(Tlp3+&#js8S+)OR@3V zlttN5m%Lt$KZRFBD$Ams9*`Q9wG8#c($?j6z9|sf?JO|u@6HhrCe&n8EIBuOySl%m zzh0J$_w_LJEqkDkT?a5TCw4<~K7y}lub1Tt{`-A0%LXrh7HA0_zkxKUeaGLi`#?MK}5{m)MD-) zoqGa-#qEG!)8AWLW|i~1(}aV3jX9gqV6a;ZUeYVWSFZ~1ejMtwO1E4b`|u8SICx2~ z46z&A-3J;8`UC}@`;4R5>OSGkXTxiH4+`tX2?)VrIItWEDCgCW!khnwB|R5h5~n#b zK;@)St%3dQX`#5?%iA;eK9uEtAxWytnof+TE*Gy#>5 zVVmwJc*%YBM)8tXm0R3MoZQCg;*)gourK1E5p^x1{|(&`Qy$rc=_0PYv3h4E3SkNF{GPsjx`E`z_01m>W(+wttLlF<&~EkWH786 zsDST0_|&9I5Z{-?Z3{AAe~0I=oqL%s?Ir$P%D-Ng0#2bY4Kms|g`vH64{gR|8{2B^ z(>t_9N8o|ou-9?HfjtQ5o&2$`7a#tS)hx8noQs9wnaG@KSV73ia zuf`&@+DiF*^D<__sk@*T#v5$q(!A?ssZcx?F-An_BWyC<-aWYhv>uuHLB~?zf{Z9A zxmG_|C#tx7PI5Me3Jm3FW^;0|t?7hO`hauj)ei(Go*qi5`1ERQ94gM?$L{#Mb+49- z@AED@JW}Y5lV39e>TbA8LnRY9pb7q<>+OfxJ7u4T?_ujxCb6?`vLKfwuf~M zQ*?LVg!Rlc0Y^rR+$P~{B7EDBT`2!zswmrKF0Af!n48Gq_`#E2gI|JcR*%>c3B}nK z1$Zs`GKj+!(bhI|7u`c~UD>4^?73FqbZ7Kk&9j2aL!X^pVai2u*lE4_?ZKd_JH8L- zOqJWpI2fv-R=T;?7se&dVM-%>a(2yAn5h1PS;tOeGX(>o4M zEeH`idG+=Ld%Ses^|Dl7LTGpykSEpDeJT2LqmBeg}G)#vu zLgA=gB{=C1jnC+7LpQL66!@qv&HA5WW+|k?G{*XNMYr{-=3R#@HaD*GCJu~h3?+N1 zu?~&ytF#fHttlMy%a}9v(4_R7I90pXiMIF(yIz*YdIwFeJ@z7OX|AnXw;in0uGS4> zvG}XoueqaU;c6p$FQY^7@DXF_%hdr{`2IOsTp-JT zPa}!-4o_Vi{%nfJ+-qDLj@KbtTo>L&C~Z8Ds4=3N(B^ly&)v?EuIaBdJs3dxY^e>( zPC&%A`Yg8D8(H?n($zZ|SJQZL1v3$jrpyK>XGJMBmgmmhR!_)2)bqansuruXfl?!` zyQ+3BePgsX(*--LVKVsMQ&D_mBRz;#vezxuDmtSUD_`TTwGH9kJh5FbuhmDBWQFx8 zA^b)`$lYm*8S&PP4h0HE-W3n99w2Xx>JD_f!o~hS-(9bv8BX*KlvLt+m~mlhBKxs>M}kxvewd*u5)TB*r_ox+!EE_gL%*e^+&PaoFTGi8cPmoNI1gV z*y@pSd5L1%UWjkwb^C^Oe%*VgPo7K+^fp9Cps(yS>-2wN1i8Xk^-w!|_EL1)%pxno zth4w&Xs2<$n>y$k__LFp>G=j-tRloQQbEkYnS(ZmZ{BWt^;KxAfdqs?w$%%vdkg3n zrq8cwafoMau@j5v{1Fd@aA#%>u%mqQfw-i9a&~xHoEd)jWPqRdfs7NUKzDZS76Bd)v- z#qaQqK|ke`$@Eiu^Pi)ii>p(_{V*QPUl*-neceF|$tTk{f2W%d0N&7(S;pP_2Qu8) z>=HN^8}%%XRL@K4*UM}6JSK(@BjXNN#$7AQqhtMGRrSQt`b4y<(c!%r!n^$zW}gHC z_YrK`?vwC*%%(}TD|Q#oGjphCkMsj(isQ;vogw~+ z-&fB(7@7pL%+&!fM}o+`v2`&+n@TU#LKw-*uG*no0*h9f`Gyzob0+r>ul{GxuWh?t zUMnMJ8y{v-*MkkjwVr;(8myiWm<0lTBz- zyim)*5cbB$FvK~=3@q3u5uZB~`JtHPz1+q{3{O){;ka#Ar@*9C;R9Pa*Owgw!#-xU z-SbgB?z4dpBp(zPMA~NcmF76xj+7I2db=4D#%-F{v06O%UN5hnczH6;*S*vc))(40 zyx;R?p0QxV`PK#_iG5$TY*D{iFL(oPKz3NA#a-JO<^0fs5mr)_!P2v32&J~CgOfp(Y~O+X$L1N zySkfR+IGDx)$!q7EJ2t*a`@(y=3Op4Tf~h@CJ)8`-nFtc@@~%v4V?! zug%$47+7CrB73jYz(+v+Y?v39)d&iv1aO3;zC%Ho_iCdQ<3uK-(`uGZ`Vnw!nCI#O>Lo=*Uz&4dTp(`AcF_QcR!yuF^DF!W}tF z94gP&8tx~L8bT5{{a~dRN8+z7yIz*coU*SO#VZB}k4-YfCgRv=+oo)|pE5SsmZRA4 zFy2PbT>IykZNc2)>OJVLa<#dl7~^1M4%kXqjBt8LM{MC~(|nK%=M2KyRm0$W$VS1w zvC8)5iO24j*gvubJ}1ozR)v(mJu-oluc(Br zpfL=_hc_qb4Wc?dpzowtwZf?~avPNg_eFge-;e{>u;;}tjay*!B$zGlL&!A-_3<6z z!}QJex{zm4YwtS3wc6%K$!zXx@&1R^E&S4b*UM}D=lijvgLBvib6O=s9I^0NL4xP7 zxw4Ansn%(4oY@u4PwD@{ED5LvZ2dkTab6t4dzEKIukIi$#fqQVc_Q@6~C%C-u z;aOCgZ&bmdB>1R!2TZkEdVh6ck2DdxQa1+&rf<&Y6%P3VbHD%H!ToD`Ww?5$?<&Z6 zuwdWZ&Raoe>>E?(*YwIT?lm+La0evB2sedf=P=O1dz|lLwHjN!<4eX!gc|nXGgZ;3}Zrfn6~+_ zPO+TOsTpCLnBBbQ<9LAqRiRFe>keUB@Awc3#m5rF-RqmkVCmHYZ{4^>bC9;IUieSK zh%0C94wmP<>t~Z9VWoFC2IlZ$O?X7>IQ7C)hWc9F6ujYf({@w6L#>#+AzIe~}qlKzho8{wQLG4vq=*?wHx@H5PGx))zeJxc>8EzNP}@GTC% zap4})C)oCl;4zHNW##Z^7Pzu>P@NuuIrDRG!`aWh6^7@Am3??x2`t9ec-(L!oB^4* z2Clbo=g-meh9i9J3oftmM_a=CivMikXd*?-L&p-fvYYf!i&8jrjFeml5H4#;-GdN)va-@6F|T z@fhzjJd(E~ifDE^rXnSLB#}rQ}gp_}IH+>#)WDe#F;#T`#z<(kB zvEms&Pn>7?F>#$ZP26YvfH|^PD<NpYP#+4nN|Td-ywkJoxiE;NfqfhG(TWvnWm)=#z_HSmXdi2gcfmUVPflH@C_Ia zQX)P_@rmo<_&W6mZV`XDe2cY$VcQ*!z0=9K+;EHVu?OBAUw_iX)$wIzJ#mllGULza zHBY!l^mYq&IL)2-2;7ewJ_W85=LjDQ+;8|4xJ+DT__*W8Q(>p&6|oP2^Md=tb;chz z9O3)1;PM(j1ylnA<^|uf?-Bi|6ORbbGy6W_j6P$RF=2|}S|>gx?l&Cq+x{9}+H3mM zZnY!6+Awi-Z6Mr%OT^D@Ha5Aja~5#E4v}o#jS(*zZyD^X4wfPeS4Zh;oKn05?RQ+@vMN{*K&xvrO&hqfZCJnerwgyA=6vd>SrK=phs!xPk!Fv5|JhwG*WwC@~8SJq&(%!I2F z6Kl8~J{%vdHSy_~z=QboS8{%g%iBX?Nv(pF$?>%`J@#a(9i(^n;djnDO)j4R&2KDktX(fl?}VSN%^2HJ1{0<+a6+~O zQ|aDS#+2{v)7Z3}OS&=Gs1)PvP4@=%@?lrgEP88a4UbtoQdN$#iZx*h73-D^E#)lH z@uqh<+Z#b($)a_iKzI&>vgFpH_=v!;&6T58nKe^<-?tgY5nkrB^n>NX*i=o-DS=~s zi2xIOuaTm63bmrHWSLT%7?;e(zcZgAaJKVcQ@I1{{5P`Fz`+x(SIuSHJ!#JwP zO$LWorm-y)(=ay6RqWXh9Oq`cE{R>m)v@r@#o4OJ2jPG|WB1r`LLiDLtxjCR;aJP} z{meQhmlWbm`fti-gFaNWH?FxUo6QH)Y}ph~M!Un!940e|G5xfx*Y)AQ>*clM8CdA| z#A*$=#uR1;n9A!Q7@lO-oyC+5@ueR|F;;;wurU$L%?RJpV}Ie1(PW$SjQE|KRAAPI z;;R8(Qn(-L9_Zqcz%ZYIhtPl_@r*ntEmpio#7~BA%`0Bz2=|}}DcS8_I6t(vIjHs2 z{1cz-QG>7v$4xui_iqXE9O5gq;oNhr<0g$1wq37pb09qyMym$q{7HCRyChx@*ygpT zy*hf|9Gz~T;d$aFe7`Khyo~sJ34Ejor*!^SD{;1o87yJ_0SAi;?(?RR?~Wj*iQ;+F zuuiZaR>v`s|n< zxHvs0JL01ipZ%H~u2Y%&{g(e0_XW{kh1o!gTQT7-nSC?I{lSCyC@bbJKBzyl&GSIz zyJx2Fw>$?TO)0ZCz>w01nA=a7_!4|CmdvRlG4G1Ed3#7!7*dtk<~d#WJoy=4R}yBm z>~mj7$V|5zyM1>0dD}=!H9msai!!kcAnVzf`h!irZ8c)3kpXA@? r7)NxC+HiIU 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ôuZJnLi{jBB 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 diff --git a/asset_sources/bundled_themes/stack_duo/light.zip b/asset_sources/bundled_themes/stack_duo/light.zip index 711a6484df563eb4c60ef5f2a3876f766012a0b8..d94ce2ac8660b38e4e2889e3ed0e2add9a124c89 100644 GIT binary patch literal 897669 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 E;Ev?^0SIu+4v^r6`fl2QQUv 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 z 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 z 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�Hk=GSMv^jSonQ^$Q?y>j28X%yM_wXj zP)|w&x3=qAs%pir$Z%Y<9bD0W8PJL=-vVrK)~I=cIMm#{HL+#;o zo*+4&w0GNnyK2@V{%mXh0Nr#p`7(IUTjJZNvQq8K>Q{CR-gjrAWMF$5J9eC^+q-s8 zX{uq%oXSs74C-wwMB`lS>(FdDe)r~yWqB9va#>UC>V?fj-c|-nYQenQni^6B88u}+ zMRu1}87I$XKdgTII&O6dW##JGs3l9ClA8R|(FEmDXjKxX=1FY1PaKFyLxGwEYnMyA z=L)_ILAYvtS%B`mtlT>GQZYA_tt@q0=1WoQC$T?MT^Ht|NpDbs@mGG6s#F@hO?4Xr(InMn5uHvq6{PzCDa*~ zZ~vj@$iBSWc&ns*v{QDeXbqNVk+`l9_Fn*w=vyDU&MrLBYjhGOiaA_OlU0n zT2VK*-O^AOz&@Jg)T@S{KG%I`-AU1M8<-h^dy?g%1lulhxyejV@U>i+N#T4??CVOi zLqAnnA#=GZ>23=X#NzO3QW)nBt=Da#EN(+4Vu;^~xpy6_~wI5hC&Zs#^7?&39Y$ z<2H9r+WIj7jn|Y-S+g`hPSK3~mLA`7iX(9BE0toK8h}$XR@Wh9fTq0goX2f~?g_W? zI$qLdKkWvdb{r+on3C#Z!X z?%?>9WH@bK=PyPsd3$#X<9*&!azE=SQ{ez(WMd&QIG>3&?@xZ;U@O2gbe@Isz)K{M zIc-E3Y~~zDwY96gQqffPvSs<~`jwIa4nEf0BDhs3y_fctKT2TkM=f zsZ^yVlEA~k9lCvyeSxG%1dv2g!91nMFC`sU$|n`v9&(Ob!N<;*HTy%UE5YR^we36y zG6ry9tkjN4=tJ5%cVxb?Q|yuu{W>~3=RcC3KUsRK*_bJ(wt{7>)?HmYd-x45_pGv? z4YxU{V{;V-?Q_$K?Q90k!7;e4%#SYcscIU@Wh=Ry^ZMBE?Y3q#NtadmH`e3RTT`kd zlbJnvik2tQW?3#lB?^W97+H|ytM6nbb?=nLWif&RmB3)NC z4(;5>i@+$!X}>4H*G4j`19wE$Mw)Ydet2Iw4K{4(>Gr-lTi5OD`bchTtKf0>+nsY1 zw5>0X?#{NPl@?Nt&NdMp^9yAZeW;{^6hFcfx_DppMpQ(XmQKPPzSQcab8GLSDbx8$ z#f0k#15A#=GB?WWkhr~2ZH)7JU!!5+ zvF^=9Lx$f!`x@O`w0}wM!_^dJutD-nPY9@Df)Mg?t7GMrxr+KG$=h0^1rG|Z2pLfO zrpmy!g#X|*}T$ZSg_}^C?yk$%6b)vg>^*Y}2x4Qk4PfC|I~mTFGpC$gMDh@>xBkF{qq% zcVbi8(~_=;CGd`-UD=I%A^DCtXA<#MS`f>FvV!B;X^(G3D=uRrW7n+;#jVf;-BFHQ zSW$D*OSM7b0BgHG@2udLN))%kA;jsmY&C*1EV2ta4a>PdEn3l%A=C7l%!o~SxXbj$6iLI_fMy$#gityG0mq)6{Ar00@Mz=};&_)DRDp#rgPFcjG!XGOAv>^Hfa7=;r&BTE-@<%@ErU zz~eBIMu;_f*9>V}dh!Y;!LE_j`Lrzy7P#JP!Hs9fjIE7Stu)RRR*oVK+ypaQ#Lu-%gJl-pUfG&Mk_jn^gp&h;GOEz#o%4lcnhLAD>0tu>@8%_Bn z9+V9jRy*2hP_Q&Zh|4Z)*=EvKbU)Q4@-je4N8g=^gy%t~%K5iQVX@6Xwq<>P*A}zI z3XgMfE-;ZsgzD&@w1{qcvm4BoL`s_qjH@1sv<__YQ}^4((2Si!cx(&F*xgnri`kkM zdN-rO(4&=IZ)>|+wk+yxy1TZst;=;=4-@!$?rF8Xi^}%3Ikv~;j*KEq||Y7&it^ir2#FpQ^8XFUKWIIXnt zRnY_-7W#!-*l>TT#&1D-?z7n;&#Vn;Q z67i^OdI%9DHfKBKq^A3anLjvczkgeh#b#^eKHnx6NVsq|@Jo^(UW*wiB+$U*l8j`X z=69($j81OCWw1<5dns9S9SSkTlHv7|rAzs~wubzDZ8hOmMC(`QuB7+WoRA7<_lY8ni32fLk@TIdB zLwr}c0gk)|I+xJ4IeuVR`j%r^`NroGFmuzk7Z_A-UD5okX+!gXW+$V;bo(%;6-{2z zl;|^k>8#q;IAOa#KV9kGwG5Q6)r3deKsiRtoKNKeKn}-76G^(sy0*z`XCDJ2l$(-c z=-Bk7oNPWeA3W!{kt74GKla(Pw-qCJ+JspkiK_t#Nz@L#~~pagiIQJQ}RFA6*tja`P3vS3B;hWxaw)vSgO;EBcH=x z>k6gdNDFa&t3P&~Y8R}sn!CBc4~~s}8P9~}zts!7mnpkG&kK`@9vJY_RHj7<-?8q^ z_N`#syr9U!>?9M~84eOR9Jh!tzG)f6gwHJnHI68u=fytAo+f^?Ku^B`< z?cA11Fm+wXAL#()@vTZ4c@mAzNAP;0GU=)cR??a-WM;*4EP{(HYa4?tkFpENkXa<5 zlj+H2!z2`o(<^zp=;M}8V~@D_f}j;Q=sm?Ih}Ziuads&OR@N&F1~2845>GsHOPFRO$#<8^Q$cc9P@)znO}%wGoFMm6hei zW)el+K9pa!EW1Q@@~64j9by~^a?1q)uY-eGCmq+=hcm%93`}mj6-7 z9@NG^38l<_zS&>-K_~82C&d7idkbYBc-5JHNwGB3-`iI_7T=@RQ$4R6%w`pq=Z$4I z*=k}K1UPNWC`F<|WQx2H1Wf03agW>V{Sw0h4xQa5WE_W}Ii^%-lB!o*tqc*;sxODE zI8--y9uF)IT0m|#UhIbV6z9L%oLN!upE6DL6^wYRb~%@cfalBd(snaMxwBT<7guYQ zY4^0THG_{@Uc)7nlAMB?ef;^mOn}*Eg=$1H5pG6AIFyLTWa-J;%>M!|ap}Iegml17 zK@~zHm9e%zrtW=(<1xJIP$&g%FnuEnt)!Guob}?+%=73M`y@@s!W&)z{DAEW^KfoIYnq!8kwf_bb(;y6flXe$G~2k*jWY%Lt{cz_A4dlW<0x zfI8yt`l6)3gSSwtSCB z3<`v8-W&UntSEmK$PAKKDCgqvUeeJji}4IQaX?&*g#_7lNpH#_BwL}a>r?L^GNvFR z$si%VvkL?u;h%POT(IJLXlJ)o07*!c-4e!XHBIKUWzxPy1y@zK6%?3#GRImA%s}gM zS5qKafnJ(@dFgB?ZR{ywV+hsi_{F@gPwk9-miOzGGkJBrOO~|oGlXcjQ@whsi+t!~ zUn|k-<3@DuC3s!;;bUoyG;2%DhY6Cuez9C-H(I6}cp#>pTx>_xv8@(%7Eu$+lmSuv z9zzUDluPqE=UrKb5B2Urz_0;8Q?U)S+iNfgKS);7ZM}V8wsb?eY1g){Ctq(KytXlI zWdT!LxA*h)n_oZ5`n=TH-G&LZo9USEg8?Rja>EnV)H73Oli z-P-+j|M|Y`>*=F;)-`@!D;_`G%(r$~?XhmJXM0_5w|2kXKW^9OKh=Kz^7Z@kxBkq2 z?XT9MD_&o1sjg%5&6>rr^!QbnMeU~i$GeZ?raiDZks!^itL6&e3%a)Rp4Me7Z^-si zD}{!Tz}p3R83JXfOo<^Z%9oC+Pz-S?vW)=&&WqFxCqmi#!mJ2QH|_6*Py+d-)_iT2 zF_5vo6~VroUR5?b^r!2^t|S8St-cvhvj-(Qd4(C-Y(ArApq^+eBW+Pi?rPmxkBO)p{GUg zVa<4V(j|$|<6k5~o6j;3Nzk@IAt7gdZrPyxxq5~G5q`fU=&?|*aCJmz+2b%mNrEmb zRy{SRBlT5fE4wY#ahp5i-9PG?KUIiDF9bS~jnAqJZBT6Wu=`(TSb=D&4Z{saNIr(X ztjar(o_qE4x$GR>$PBFPGB5#G7ZAn`$y1ob`!T=s=ZnuTKm%WeSUOV*Ecyz1)GIaw( z>WWhY?4^XD(*b0q3aFUp8JEP)Dl0N`bG`^{e%p#P-Nr&7sa>@bNitnl94_FDvE+zs zTQK&!^}MQW2#A;+*{StF<8fH^N_WvL>}ORld*d$%MWuiH%Bjuu-XuWE|DrhXDsfbG z6#4#K;E^*DmI;?_vpXVlv#nEsM@|Jyv(6P`--~K3Iier5xhpdjhph_iF;sa{H+$@x zgRbIRRbzL#`mGpUT8v^=XrIN==DAPGr~zX-L;n^+N}2i;MeC_JgGHC#qZCeRTaRka z;FGKcPv_-R+W@H*gzMfT9p`**1-)PAnmD7Wl^BkO-HngRt}##8QSw5|1hC5<#zwGF zUExOtJc()ukSCO3KZE~L)y_90bIPP3$fiRL%L$PBI9bPSqoY(`mP%Us?%B7BYoGtp z6lSw|ipma$D3-lb#W_?>ibg*dcG{2EzV>x>p%>=xz|Stwp#E3XfY8qpw z>Z>cqrcS4Dhg>)GAM3N1-LM0OS@rrc&(pkr_Pq9{Xnz0?RVgZjBcMI4R7uuWNjqn) za-KJV=oDryy&y}rR#?{6w$(iPXe-lsfK zt69~o`Mg|R@g$w?qU+8u^w}O~`?yV?gGWE+M+wgrkwuxDVx8JA;6@kXaMl`>{9Uen zXSIR;r=@dqKYS`H_%kVI5`dHOxXu4@`~Ip1EBUmm%&kg>s=XUqKsc=O^e7Lt3TL=Y zltn*o&y!XxG)PsgSG1I9ncE1Y(I#M0QX8Jr-9@9+o~mPZdme;tcKAl#T^XEsPTGaA zWGaOZdoNV12QX+iT7Vi$fJ3j(lO_s$edh(TLnwEm+R1fs@D{1WeV(q1Q@rQ}L_hg| zFV7SHoV-h@O}M$Rj@v{XMw^_45;PUhbznkQyCfIdxjs+!F&q@T7lDk!aCfzdHL0rP zBLpdJP8r5ZwRb0?y*|$z?kYNqsX=%@=h;&Been+`4Et>Nv+es8zW;gs_WZVA?^o)E z_jTddFYU|ieOzDP+pS$zv+MSDzO3u&Yv^Ls+d8qdtHF)u%gigcZN04;<>fRMnmMDu z+Ik$mjz_(&x%fzWPc!X8ix1@~a$SS2w47_=himqToa_d2=2gytHXtc%K<;ck(Vk(5~pF%7@Hw3aJ2hC1{ghtx&?mHEvK{`5Ixv8<@T3laFMJMhvYg zSeO8j`wTSO*SiT_acVi`{w{9fz6V|CPuaDgGzit-qM87FY^&!;VSC$_SJM)cG9MLz z8pIYA?4q_IS1Kp2_F8tOHBOjA7OX4)apI9_TB(^oU5dNbVvDZBy}rSc~Lgkv9jkd+jS+U zz=kxalej!@3W`g*UNxHHynG6U$bQ}2m0DA|@Ch&)MrRFyv2lqfK`gekGPb0o_b&wh zu8YcaD?tBLVooRHD2l*UBHgyqq2Ly*ZDlh8G3hjynhQ{Y&TQDz3O>}grwcmKRux6m z+OZyYB`>EeXwr|HaFz?9->o54qwCLIBa)<3UfZRvv6!wr8!FmvKMhL+#vf}o9Z;4(ueVKjy_e~XorbY=c>&2=LbiQF$(>1Q zJCShQUk>MuI?thSY}-mRKu)-Ph6pQT%j33K$L;IUo$Kobj@i-*eM>HAup*1Lg&=VY zue*}Y%jMXnan#wU@3vC1WT$MyV8|}Nbp5z}ny9FK1+FVBR%WivAV7%%;6+saQw~)U zom8teB+wp3nr*L(2mnCE|E}vtPfh5Hb6Hi`Ri%r!*<#18FDsquI`dA*=9oQ#D4G+p<&{i~ z&X79Bwq2tiDZJEHyE@^tLy)R?*}e+HE95BYcKiI!+L|PaT-3I$d~bOXJVHON3wzww z#d)FMqjlQqZH1f>tAi&kuRvBqNbC`XQc`;q%TYEn!GD1o^Dwm3d2;i*NZ+qBd0ap3 zNQ;k`E39Rl?gaW$Ug2WR0a3|?0(4@la&N6zJ>$uN(eEoRURBwe6P+m5wMs8q;dTyV zqCHoeLsJd%Rx};fMkifjCb8TqPuuipR;Dk1Ej!y(TOe-*qgmNbZMBotB&A4JWO~)t z*6a+|j9U&uKnYkc$?H=Vt`{r%b?T4X>_MNZ>qshBM;t4{4;*F%f~g6d{aBu-M^l}7 zT~)aipoXpuAbO>zwQq{%7W7@-7Ik!Dj&Z&XPIvt_Qo`l+qTNZv9dFA5RhQ-K#uiCQ zM4eFuZ^ixHIq8$!G%5j->q9G|ESN zAobZL$_Y=(`9Dt=YjRFeA)XS@Pp2f8R`2&6x9_t8mk&Hy|8(X~N&Cu_uzN*d{@XI& zD5!5gloDfKD*z5z={V(86*2^=)|6-pFLxWjar-_jVq5VxeRots`f@TAn;ABhbGL6V z31DSzN`{UpQ>bnIY)BJAOLEHnrph`ev_rIKTcMj>#W`;u$25C+zW|skcZgDpHmjfRL}LN%G$XsI!rYQ^GOiR-&fIsnCX!0PIKsb6vUI`g>DkY#0QR=d2bDw! zO8C$z6fD}8SWY-g=@w>+N#%8Rj@#&ebsiQ+oLM0 zsi>9n&|pnLsH~2(OjOq8llu8<4n^ENSKXbnw4eYLFM8#SGf>thHAc%bUERuX2Eszm z-|0`Ib3W$&$deOTwFmh)+1$m9SI^R1!TYP{I8*E#^T^VCkJ`V}pH{MaiKwhkD@5eo zE3$2B)2>bdRzcdwHS8Shca5dJab?LFVy zuVGWq_xIcOc=fFr5c=wRYtmKDku{@vPDmTboqf$lQ|*A)N1h*xy*)m5!s^*;r?}_u zo#c_N?WR%Zb4B4qb-X_P+6C^_dy}kApL=MH>9xPwdomi6F*Xpbo0C1r$tyr>GWl&1 zN5Gku#XnXi*2PbVSABk*mtp!mmv_|p%LG_8yFiL2Vok>#>3O$)G1g8=rjF^v_asv@ z^;`ur7XW?t;l`_eR`}xMMsT;Zn6LbDpF=ZkfA?h-DKDn|tFrJbOBl*cTKI%+Ob%rU z79}fLS1q>zTJqg8|LE!9b1)+FIlD!PfiT#@R#`l4+d@n5K9XpsH8q&uDF!4;?+TQ! z8dSdHgg*WPQdMNi8LP0dtL@=#Bd(6&8nWcF}%ZEzCEk*I8Alifl1hQzgr z1r&SruH9o5N02h;t${?&+e>F2FRfE^pX);+WFN6@$;cKl69B4UEXt8V%=LzGoACl@ zg=c*YD=qo@$4ok2Cfc14)*icZ@-FY+p=7{lc%yI-ldQ%r1(H{Y0|kFd5MIpNOK%?6 z#>t{@roAtlbq3|up`3T?3{F!N72Ut~L=jy(@MBv0>-_?ZHWNz8_1OggHB7q@hrU(G zL#YBq_*%FI(LE#tAd9ftlc@NEEJDGUa`;_~amv%75SR#)F@kcNuG8PkyG;=K^ms#y z9g!ftTO)$kc4vWt$xv&A)HibhxvcfHDz2P^UNxzV$D^K%Om)MD?DDi4XF9Lf?@~=M z@R^xdQ#0S{FmPJG1E3sE<&vgj?*Jy>o>xqf7WO0{=HJ>psg}duPVT$`B@WD z2VrqIU?D(OAc()c^!@SDd19&DZ6H>0k!4E_Q`UN8CTn}W1+txJR)SB}?|mLG_ghm5 z156jJ4v}!F%i48R-Yw`*5gW%Kqg+6J9WVDwDO=G>-9TdZA)R*0nh+|(IHdtEz@59O z20S9#ijJ52*8}0fBNn$Iqt=4dB=7kDh`kfo5x#e<7j#R6Dh@DK`Fg*Q0mEeZ3PC5M zE0AR`!)3;l89Gen9VuyLbNPC|oGl|lr{c*}9>ZDQGG!U5D99=`K3iUdGPy^`%l#&o z_bAFd-eH7e6ltPPk-;!k(A`7IZN3G))A4e@Dd{?axVT}QWd%(V_>MwwM8}--1@-a5 z>-`3l?BF*BS~=#>;RXTf;M)KrcD4X!PnEkLc)eePGA&`w4Tpl^(}P^Zr=0^P%@FW( z7e#G%T<_Jhs{d9{JuoT7=Eam%si5yLav}8?R{ z!R+87HcYKh?oqKNpIeiQP|Iv)rPeniGY%+1cDXB;e+DjG>6fN^nFe)apBuY(I1Puu z0XghyJ^?-N3Hy@I-v4VB5am?9L3+o)`?+|St$%mfWw~dHy>s8>VWhKfu3f2 zL;)I6;uE${W-`bT+XECc?>e*WIY2Ushbbu*;6~;2DaR)P@?;wP9F{cY#P9H6tE@Oe z4%I)(g~NKPBg*_tdZdboU1($6qrCg_+0U|ncjF%A9QRi)-)8)*;GoJW9w+RFYUiao zYE#W+{8n4_;f&VYT8>9aM`cI;OMDH;@*oYS!D6q-fO|PQ_bu>J(%VK&t)FNva>q*w ztYJ2d14(h2teCric*E!}2=jG9Caf&uvDiJxLNB26aUE%GOlNgTf^WS%8d5AJMmt^J z%GvJ3pwIJnTqxNHJIZz(phHX9*Y|b~gD;;ks3jghqMMsj@=ILZJ*E2j_LyNOluC(( zid>vu08dk$Vum&kVm)VU8wMZpHhseduP@kkEpvH>Tbt!@a?+QZ4>&n_Br!m zvU^o220W--J?7rMrB?3St1NYuMZ%yN!;~qcJ5cU{2Vt2hKJ%*FXI$T1-u-?U()2tg zbP&l>pT-0pV42_`vZp3R^{HPr86UsP#0sWu^$!Fh&3rU6xsXdL_B82KILrt}_J~GU znm1dxYU!@Qmuzql@idoPlt(>Yy4x5phW@Rl0JRUtzHjUitSP7g=g9&h6loH7684I6k>$xcyOr~rbE%*Wjv8oN0wR3ISlva{3ZSXlBWt0>{i;9gW>KGHl*H5YIbKFnkt-!< zV!|UaM1_n#-C(a0tjOPIgN95;fD!XqBqrDUW!F^)9|{z9WSd7Bw?waRD~Q%=3(Su& z+Eu>ZuLn-&D{0A@nAgOKRU9XsMR!?gFG3QHbIG&r&&Y8-fYZ(CQ^mC1nD--~y(MAp zBUWCRn*5Fnjo*ELPEj4XMnxF0pV#LAPegfhB)7S>%{eSLP8KGyhMB6^iJ>Qx5NohJ zCjr|8R_cTJ5qRlV-xwSAIJlfZV&;PA299gLxgXDp+~EvyFJvETLYAlKbGAgPg-%S@&(QaxAO}Z@{yd%)k9D$k>6?yp%p-J}~E5@(1vohv;5L@&) z4a+`aNrKSt4=VC*>KVOHXN?wV=X|ugiF#>V27vuENXK)p$*MPB zB~FSFM*Gb+`>@T1!)|SlaOIjz@S;j zP$}O!ov9IGWY8*1(Too%z6tYH#vY-E%N^xS5IDVdC!)vMjOZ=og>v!)L9A**s|98f zwVF(0;AJMccd*K3mj}<=LYbAsXTce|H>J=vusJLDp*+qv%LvH(1ud1sL3r=ve9Q#9 z6W%%zLN$n$U=n~n)5J=6imFw@DpY7Z4^d?<^Xqm*6QI#7E{hsK<$9KVxlSrvZrY|T zxk#e=gtuSCWX{bt{O;Y1p15Ue$nof=R$Z3(sYqkBJn>Rngio{3DLhYof49Ea?y(U9 zDhCHEmWK~Q1mzezjjagZVr(&ph6(SmG#sbOExDYnUOwoo0EY`%)tk#0P}3!lYUwcTbj^3+Im%=a@0kGPV}3D7~wNHPBqs%}3%GOJ`RB zQO@xVS70=$`5P8eP9|4o83|ps;xf!}*-13Iu7|Iqk67v*PKIMkt2B)tHu_oYldVby3ylz?Tk~`| zHDhOMjm5uXr9us_a@%h&6X$pt9OE^RViK+u<<4e=sG>j#DLs2ns#6R)yu|t)xh|7( z@<4Rp;EE;gErlzM9=d$|UVxPYY~=p@k%dIz;8s{kzMwr)gH_g<5ZXd+-#8N@4DB+x zT8%${xvIaJA~UgoY=(on;yb{&8HCX)PbVLMlu;Rt?_l!*I6rPCdUFv4)b7j}^%L16 zyYci|jO0;}UzJ%l(T{AW1dWLn!L8I9vmQm$=IjI(fN{KxgS>)g84pf?7!Tj(QM`RaRVd7AVsV3~Fj$oJDjkUu!iK1@@q~P`x z*)RB_0q<2%riW%uVtK0gs$cF`2ZryoYV$8RbqYNWTP;osa&l^O-mq2$!ifUu9xu1A z=UppwZ%CKTNZ@NCeUA1|hzPOgN3_J+6CMO3r;^u6z*ST<= zD`70t`HfKg9-JBso{8G8-`4ZnP5#q$y*4fN^#$FHM|L5~n5@ z@;Nr8n|Ivqt#4Rfyzb5AYFBr&&6R*A>jcAG6SP0UGKCxk+GG`|Gzc8SFG#qGtvW$& zG$Xx1^+Bn1bG~6iA>nvwo_haMAv|PYE7j4O>?QPhWpW65CMd8gfTo%T8QKh7{Ni;O z-iqmoNqP4V%TTgfpV)`1%^s{v zhaNBOGttIVgdXI7nt8Mzx*rZ544?jM|k-xZH{O*EPCrp@Z7mg81!-a<}$u`$_eA0HE zEs>sa%bqv_*^4KXmTrjiHL&>EGhOQRLW}@YBa-1j9JXZ&w3jP}{+Lgpk z$iAqT*B$5smG;*i4n}%j){+8iOh5hJoeh|kKCbF@`~5GiJ+3czI?2XhwEayDf;~d{ zE^C=uJ21XVmY)PV41lY;Wp_%*)BV<8eyT6}8_-Ot0$V7VFgv6hm~QV?;Q9jA)xsXi zW`DD6xf(RcAb9DIAWnw;MvGxChBK(lEJ!^rUV$T+WriBxJJr18^H9!T+miqO*qBwKaY z62NGMXtl%wdXz;Rsxk(YsAV(P69rQ_p3kPiVXacez0hC;I4V)M-PfEA*lTB1pXmBjACp!;S6TO+CQ9?2V~=o2f-LCYXg?vZId znI|)uM>I#kQaC2DCtjx2nrGL(^jK*_r`)5jr^|Z578&n47Hu9YNOM%yN~Cg&a`jlj z`=|2oT)@{mAqNHlN#D(JPP9bdLH^H7<1nT}zM!4*)v{3RmSJWgRFM-jfKN3a(qhe= zY1kjRkgLpIxjGjdxW1FMPH5pnRb?=gAVGy~5^_{~gI*6*YV}SHDtLkr>vtK&YArzy zSY8`f3wH%cYvpC6rBvAt8p@8XP$BqFu8ZWktHpDL!qz9OFbGxA_bc42{B3H7e9Af4 z(fVdHTK+JspxvWD)@Ag1jdnf0kmF_41;Bl-xy7~RJ?Po_+FN9*0y$5Z^-$yCqOi-~ z&O~`GEI)+ugFFw_9)Bhc66W9tHo_A+vLsyW*~@nbaqK3&;RCi>!0<4mDg)ywJ&8Vu zS7XfzWQNM^+VRJ=arW_Y2tkae0ljot4zTr+h+~4@Bhle-1fX~|RQYh|a%$F(E8^jth`w{eA>^IuDr6ggY)C+Q_>AJ=;YRKDJvqNt?r_2?4MnlP%pKKgR6X7F<_(N2fz*@;o7 zw_`qNWk<8c!(M?G28#zo5z^B@tZOKz>GT2+z{+daF*vU8{+7*q#^#;a0Z1K?2SO1a z#m{h238tCYy-7IbP@zR~cRpe>D~WdRWNQczMn${`j{xbyDsMQ5h5BnOn*D7*?y;!O z$Nr|+3jw!j;%=4s94DC)EXrQPF`fC{tBW(F^gQp6tJD2>HoV=`&I(x9ShH(5w;S1jDP^lqf+2L4;wjeUmzBbs4tr z!m-ENhwR_r3#L`@KDd8_1k?-RK=oJB!tj(h$q4;PzLRA+Lkf_?_Q}V~{rV0$NDBXoAS2Dqj2QKJN);$UN0vI7Z2)@fX*9uPS?wo3w+*mk3ZN> zAFpU5ZfN6|vc2z*XK}{H&1k<`JKqk~LfmwJG@M7Z$2z@t*4Yzo5%ogmBRnl~%^fdIlOOxJ zGM1&-am#0?k0ncoL7hJxRp84)`4}&3bwI?PpAjqrN}r*e9nxeswu1vVtIBdEqF%uD z((`WouM5Xnm;%!@f>u%DI_&4OSnaRF#%M4T)_KOSc?l;CbRsfd6kNxIzbj4}#!rE! zZZ;H#&%g&AcKx%pF7(fSc#xp3mf@>KKk0TI&*R#`nzN54-sSKBwBXh^9(RU)&Gvqu}N}A2H!K%yFtZnM>eALNdrE-Ief+=w%B&7acoK?~U;N*ZLnX?^gnL zh^xUgRaop;csX$t*n|P_gIyZLD3fDE68#wo&%n*Q&iY>H5uQPw4GH%;lwV6OdD?C}s1>}q`47r%a zMLA3E1wPc(l;YJv&(pS~?55`0C@&YYk;B#`XG*iUgvUgL_!4XZQNEjLT3#E%hY8(0 z=&sIqmJ^dkAXyZmhg7-vT%q9UbzGGBcxml@NT!IChw9EOane@n))X7!b^`4PHQ9Zb zj%^jSw%?Q}**NA@_z;I!>vD9?Udd|&%TeGgxevw7W`H5r(mKS@*CI)9Jx8yHWI?~L zc`*dUAx{QqHG^eDabX8|8LZ=_d8@tG3attR(vZ;`H;iCghY>0l9>_KReP($-CcgodZs@YfV(bB0JNrD)yE2 z8R;yjCAbGrTlziryfq{^kbF%3eJ!C%F`hChz&)?tPXW9`R6f=qy{$lltul!ua$xQ2 zYIzIg5n@`iM1cX;)0>wp(kxZkSy{4hZ#inHC5r>MDCvjVr%zfIsFpYR)_htf@HT{6 zz{}C$lp9J4*jc+_gVGG2HUXj48WOC+jMk!_m}g#nwbvalqrR5N?(395o~JP3Wzhl~J9um^O~ZhAX6#*GCx4xO~hBJrA}}pVx2% zAtnO_hNDb`<@tS^-FD4hqI_aK_J<0)VF6Ym#o1rGPjEfZ0kVS*c$XY9-37Ff#{gfw za;Cc_-?8edb1)Gyh}tMu$arZ&s5;8xN+a;G84VXg=EU3wM%uKaq4~73nRP*q2&Eq@ zkUS%hvWdR%w24M`=Ok|p&2}o15p2zJkyvImVgt4-O0Z0!H8CUMLS>;0VM) zA0ZFMu-~NpHh%&6)3K?;O_(Ro16EJWz!i2GFYTy|sy zzaGOX9^rg1q^M~VC%@;WOfF)nm05LDUKF?q8KAizg+LV5L+#Xwh}CYT_5bB3Y(SM8 zvY^?nc8aH~Ni`F_T85FnFbZ)|g_MLYG}(21bJ3KXq5G<#H7uIO$eFRL5g${wPTvapJK%fMHJo7I`g z@L)NOZz3~svch0@Du^G4OG;y{v2&SZ1?2)6|F0wU>iz539xvTz7)4ArY&HwNGr7`7 z1}Qk(m8BFCAG4}Rb1B~|;%J1KrRvXQ4Q>Wui(gZYfd$YQ`mc1~{n~M4l zcE`NdDUrCgQ+*MfQm2GkZ%RyJnHA%WN}cgzCu_dP6rBl$V#WPkL=-n9iLj0v!C{Q1DB*IhnSY<+N_z3t63#v~z zBkf^F8xZd?jzZJn0_)#n)=f*P;=WV z2fso#P)n#A6|B|?KGB=Fx#|5B+#cDBhVv6mUt6FvOFr=zts2wmXUbn}TA_=1$bt+) zJAySS-=P`9i}4m1eOtkr$CvC%)NU1@+OL;gJMaral4% zeIXE=miZvDIwmt~LAuLO4gHwEoV5&~Jt2(kX*nsV|0{R3*SeOLGUdez= znuS8>$|=N}ZN4*7HE{C_S(c8M(f`#iUb^Ql!7+*nNtLX)GR`p_3)?COlYIdwcF%~G zJ6^X|O9@jAy9icYC1$qcYck4EI#|Wp8Nm7q!h+|AyvhVKliRw>xLDiP79U~+CtK|O z`mhw@!vHUdH8D?{2^O z{EII>e)n&`{rv0C-u>ji{-^))hflu#?d{hezazVB)p~CGkvmkFotQ?38(hb?26A4~ z!o?niRdA{=I&Sx@9AcY<`T&|^+uG8F6H-YQWYsk6GNy%U)>~{$x}g2$n6An?7~W?M z*(aSR+HDv2TL5lWK~EaxzAJhAmgIn_H%=R)V8BgpM{)-$ExD_CqS~a=1GXkb4|PND z=BnJ(gt2xz2g`Jw_6s=oSF?w}c|>-m`ecl3r3N0MOxEMkk8i#GpSQoir}@)sf0u?E zsDUxoYgDV_=}EtMbi=iKE*E_j4bElcp2zeu+V4$;x2M0mef9O1zyIgYK7RK#q1^Ed=Y~Vg ze|}`mL;81=0F#Vjfhzr}RI;NX{;&%5(YDQwB|Sy_!>V5{r{XFxQu({9xr+U=$Gq$E zi+<1gjo086#}H7U4NwbMgIoWacKgKmWRowl$pBSAs zSpBJCneIhPvb48CwEWS3v+BS9XZp`h!sx-fpv8LR4#kHSIrU0HHO;>u_UFk{=SSw{ zXWr#7IKFRx^sN8>HecTBpYJ_EbU11UDi?B43e#-N-}*PUqH)K^#){fd2#0}jl@vY) zk)ic)SM3|CxTp?@F2yQ7Zo}K#IEV!rZry$vFML$v&ztYnlPbd^Df~&1azIC(ZZ}?qHHt;WjpZdPe{Kx_SxNUMhc;I$NqASw z+1Q?_o=mp;+fUY%SU1+UO1xF>J5PdZ>EL$Zt#og8-euIW88e!-+Q>s(`FB9f*gdXC zDK-eR7KRT_=JOxE`22UDefr5CK7RM*@Bj68zkcmmRV!^qsv*m~76)|~^Dj#shwfwQ zTS*pb`rTiymcP8&3ds6r7B@kD5K7oBV>Dx!l4p7_El8qAP{Am49ymR0szg-n=_B6s z-%A5p+|DTJ1L3>baTqmZ?poB#nWAr%M8nJf4xaB9!bAJxaiwuh3$^uJbI8&xa(ipGs&#m;Czg1KJRKj+ze70>kjBx7PEQnCXQoC3MI=a zy~7F{lL*Zir(SDw&P%tV1#v12fMksrq<0w&D^wu5Ak&VB|Gwt|O>b_142~vogY;AKSY*m?)zQ0w5PgLQ|29`Y>x9#V({(?yL?Bwqa?`$icqBPcd+ zmirvY?O5nl)~{LJt)>STFT9ZxH9z4DI;8M>kFqc$B`8}pu{(sQyO*kMKtc(aD4|?q z%mjl19_#kTmY+m8XxT-Cf)a_tYI?}Nnn^`^Ye>9^cUD-->8{cDA~yVX3J)RwN_l#b zQW*QLg^^sLRGh!iBhsYrC;R$QW9iJsa$31h0>{bEw<@IZFKxFtDKnnO6FK4X!K$1r z1W1ZN?|~?hfTnn{gb-xPO4xW+U&++WI+fRIEqSvM*RSta;3_LxRm9)>h&*Ga_w=7R18!au>4IuQ%~bfBXJ3LQINeu;rLsTfo=pvEG2T zDmb3l!+832n*Vv<3=8AN!o8L;r9x0}^60jCKAAX;%a94aL+6WhR7NMRaYR98R-$nu zZWGidrmqNj_)irG*~-&7cEjUE%wo$JE6V$1^Da)-lGluidWCyx#Glz6 z3b5|B5_F=`0a2lOqy71qNW!hxo*0*&0H&);y8-GvFgnEN{KS#ABU`qqf0Zu8;m9nk z{u3=%*JgJDOLf6)i*uuL7$%j_qN?p&(n~WQU6Swm@BjZ9@V$myGD~Q2X|K-gwlH&R zvlgd&hZ*6nDrErvSx!l(P#2DH0s(6?wRqKT z9-sz9|_ur3!fWFTj7p#BH5L znhZr$$-GIFJTf!nD0?T&i3ahZRz(!xg!=Y!RoPzQCG^>_ZKT*Y%#ymB@pr~*Tj3MYb2f`jC+H01 z&q4aFAgC%tW~jrPJwfgw7Vo%TECHTu30lb>Is6<8=Iy24PkRgh_kH6B(i8w+K%l>@ zUNXCswl}9^C%7=sqQ*RxwsqrdYKuWxLV_JzdwyD$Cm^{AZ3|1y`%rAQ^%S%|$s9`v zu_Dx}G$y$uR(np1WS``DS^KfmNlUxc=hbp2Dd5@4W|f*v|9$2)P#OH$CO+FF*O+SHJoF zm;WOF)7PJT{n_9BSm`4jrA;1ji@SgHO|N{I0xecd0=9}0l(fZ4D&5eu7l7LlwMrf+tM1NYl?Yu$>14#U*QC(-loc36N!JoUV_6M2pHUV5#x z?|CfvVR{XR7hpV8L^b%*PmZDYD}Z0hN9%(`c{7eJ3zfaimDsKeq!_nm`Gfsi`lGe- zvR{8wr~2QdIu4I%zz(N}OwU(l*R4DJhcc6+GscbS0MPsypo3A~uFUhVKQ+F)wbD`aX*#{0^|8Y0J@8uD3+t!(YY>9xF^_#%UUR4s+t&TBc2Hj<^c+X*7mj&eHaO@pj zHXK&bB?9w{hUFyhAOhoIMtVr{a~ge}c=ZvBuO$}V>4>bPdqLSnfTKCxZ`H%Ip%YZb z05htu-5$+)&xE=*-{*kUkH@7_zxW}m_WPYWwy>iWHgckUQqdN&605D<362C zjkfmapn`EEM@0}PfHU!4CQL;?TNGFeC?juyti(TmcS@kOq*@qR>FrOG{X_wVaq%6`zlvDGSTEP!g2~Ch(1p2!aC#=f#UJnVg$1r@(KYv-sTPWG`YC< zVcg~sSp5Fabqo;a4*Z$F_*XBO;#G`*+dhWGfpL+atFrLQgGJcnleI548tT={= zwfmm}e){Tv{_7`Se)gx%)qKv=adLaNUp~(mI_PcAjKA`n`Gy1Q-{#B@G-tdpip%fZ z^hEG2CLKf)NdmnolZ-i`_*J`;O23`ND>o9oeZYP^?Yk436bRsCQ@uZu`_9HuLm0Ac zH#^m!wJS2HDJpVbpm_HEV&1(x>_aau(UMB~g(6>Wr(PbZ85t~g76xyN1V!bzO%o0l zqe+zGx51rP)9w1$@2*1HBocii`}Cf+#Bn)K`2BW0rzv5jlViQt2H7r1%Su`X)IY)l zrh1#bSZfY)nR1&_ua)CS0XT6)iNHhtOer|6v-?;_At*+LG-xKNA!Sq)MIdI@xpZ5v zOD4^Oj&09WXPb5-i0U&7VVJYo^T@2#@qBPXRHCl7-)6lusj=fIEmq+zNkP#{A}?0K zW+6y%C%|VSQHDxRIGm1qoaYthkuN<7y&`pUpkV=>Aw%qXK z3k8A##qQ1xrO1LQo!sJuEY>ukC{M}hez z*O*Z^ocAfm^?IGI-`AQp#p=73*W9cbx^JS}*h$-6i|c(a@qV>x9esB}e8jr3!$7%< zFk&^jpgOZ3&mYCp=QGy0{loS1*--*7Oo}%9eXo_U8w8;18`$Brw6dZS3ih$VP-SJ- zdEX@>CGPNP|D`@TrBPP|dG?!rF9<^@$$T{gX@-0g^~0JH>-h?;thGXPc51lj4T?A_ zddZLW@l8GhVX>w#_&9G>3zt zKEPEH^F$Pb(jb=JwN^W=6k0J7{7MjOcX@ivA_rHrxXz#ou+YSAvP8xIbhjoA++@nk z?*N(a`Vtj47Gr?co1qNlVR{b{yP3$pm@85=Z>vMpugaYsp&p0g_v+SdgD+4MY@M?1 zQ*pI2-UN3Ks@-cDy{|d{k?{0Nx?Ugelnj-KQE-K6dRISQ%&Tjy z*b_vt@&*Ze$)t43{JsWj*Gr}jh4>qHd6Gd^R{DC+23iO=Dvj2iIuj+$>r>kk?n%Tg zSA%zP{EIiYSlxF$cy*$6d0HLE%LnmvoJl|X*-sr3`|`6-zrGP?%gb)iQ83SS2nG2Q>Kb7NkZ)JV2RXI!3 z_XlKH&nFBbHl_aaWMSGnN81uCC^(y?XB2$oW=wr<*0+z^*^jVPwMRcn)THPih@XNw z%9qgTzkKrbm!JRp-~Bk9h1RX=FPBtNQ@mAKwXF)q2q$(3Zl?>nejfeYp z5xf38p-A6V!$Hm9OX^`U7UbQZTJntp`eb$IFdk9wf}>}iRLIS%@rKr*Os5KUiTRs4 zeB;thhsXvUmINozDfTBFgzMu!WD?IHtDs?MZkYE&*ppj9B6ZsImb!`-FKAvQ3frLn znU?5)Y6|Kn?D-Ay@|VYdpf1pD_3>YKL>?fi#tua@8|8xcuA_!bZSqbv60&6VL6C>+6m8V+6i175TBp6)tb2DpJ) zW4W)@58Wqt>3Lr~W8Eje_;=oyNBEq3AKam7{CfRQ{%QTsuRr_ESGxC$&;Rh>wG4c| z)&Ui^e^j2wKdvwR-OKirx9w?0xb)tm&*$myc*Re?`d{mX{|8V@0|XQR000O8`dg-0 z-|>%+Td@ED#NPn`A^;!&VRLh3baO9rc4seRZ)t8{X=870b1!0PXD?)LXJsyPc4t*o z4FCrS6gg%-7dd9WUOr}Zcnbgl1n2_*00ig*006ALOS3G=ajiGkuPAGd?`Fn3LUtju z?nJ|SP4}UCQ{y+cYKmX%Tt!t9<<1pa13WIrZ=320#2C z|J(ok_kaA$A8!Brn;-sH%Ev9`G0*tR$8nTfYHfVvaT|T!(x}I6O#LO_Q<`yZFGrl4 z=SLqQv^Z9e<0Jm)bA9AEGaf3nb)5MaH4gS3{}%sSGo(@CFGt*L9Q`&+=JE5buK3AF z^_E9IQ_cO>YCKCE(Jf2nFDd>q`a>{D^^FP2-wdju#54f23LBo|n37AebdbAO87DAB^}hV+`W7a^#QB&*R_YF;hwHBd#8g^RZ&6N}Bud{5aB? zO3|RCV|=u@S*i6SBgd~6ay&dQk>X)9KaWxC`p7W|{G3rjE|oz_B_5Wa$CqF()VQlo zk1sJ}qSW}tOr8{zDls>iKw}?|KWmB4t7)@7G~44($@&KI`|7buv8H;=(HditV{WE? zeDoO8${-+So}#XJSnd{Qr4_$k^9{J@m0`^+j7uk=iWl_c4X_v@x}MJUz00-}nY++;(|1&=4_7J!Z(kXf*%X zV-!dA+vga)UiWBne*COlZx9BroM}yhpG2-WQNXanxqoOlnu=#ZH z)CGkxHHN9=k1E|#Jhr)i#LY*Ehe9mrqsICi&4U*6+o#7%7mn`^;XEhUNhC&(4`dMRQg`$avx>c6#p4;{yU+Neu)<>H&iL-LZ#iBG#TE~5jL)hib4-of zoLb;3zUDx|&zSS+QV`sIYErJaOK2c|zxce1*%EI)Lvf%#TKqiecKR$RtA+lVqp@~Y zsDoI;oL@fT^t@sr^0XtqUg)}vI_C5q`ZA8E7>KH;t$Lb-mf>mR?N$o48d^n98*3wU z<78kNBlLMpsu^>7W}dcb@^jgP6+Ww$T9A63-@Of({03euLtuc7G;g?adxfnf!Ys|X;5R0jTr258!={?$vHyb zgnk;K{1QuN#8L`nIZ);!KJ|z}ZY|`P!#w?nH4;m6prd0{Layu-gTbE6Qr1cj8T}Hc zS4Q}`I0QC#n2C?Jlk}SSBp>6V@Ip0upnb0 zrknoIdXATjA?Y(VzJmoF6D4+>9`6{FfCYUpaaiXKz0u?4R><+N{Rm~O11;oOnI*=m zTWf|z;mxp8?F6}YRVvN`jVlw#mq3hW|5;~Xja~$XPHTm7+c!_V3O83jh z*kNlOm_ZC;3yUZ|Ji36Pj4xg~OJ0VVCPInD5v!1&#~`MV*>@_s_~28Qs>KyzMwOI! zh{`?~=fs9oVhBPzb9O^R6xPVn=`vJGY_f+wbdw4w%rCTG@0z7yxW!~=tYad?#L-^P zEJo({@u3fNGBQsW6ERFWCQ85Ln9--?n7Ad@q;H2QbStqk8!Ca@$L3!SCI(~Ec#T`u zl3jkgnL<9Wpl*8km?)X0ni<>peP}o=mDoD@ePXM~p`EJ+Gd84{*BDZ*XkIQ9Zf5Ef zrbc5bWd1+}#M})-IJ4+9GrSe#BVHC0rN>)vmBlJzu#!y}J>6uNjVU3cIVMDsEv;RY zO&Yb{*efw>CR_B7e!wDF1rs6uQe_%2>unOC#o`UBjQf~|MTSdEm(V}0XdZ+e6q*1N zAsz-Ti9%sB#RQ4V$D1xb6!r=hM7(NVp*)d0mq*LlyqWweSpmrW;cj6GveVR9B))2V z9}JwhJ2oH3SH--t!NQ`!LSXjuwDEoFLXOp@=^0CV#@>PTCdCmdc@C^QDY#IJ@u9Hp zVwl1v4;>%3NxW73B_4NW7E%1352-EegPn`{&U`_^u(6idlVX}?_Eik+c$$!65-03x z4A+=VnT@UCKj{O;G>9c7D?avs&}KPaE?xi+01F{Am5+s49iO1xWPS7QnDuef*fp&A zvyCaPk}<9_hHp$#%;Xe9pV4-4`-SU(N5)#xn#kT5^oF?NLYY-@sO&@5ZFd4#by0vhCs|?84@4_s` zx^73h>->%!yPbZH7Z)2zOgg=4%%*t87SB4FbSczMtoMdJxrRqNlo`f$Irvhs{=-jd zi=ok%8eAUZx?)*o`CZ}D#s{kWKAtPI4f|2JoP6oUPQ!*!HLqgrc5S+ar$e$R&Dq}Tv>p_mk zEhnZ8`Y*22!`GiEi2dO4BgiS z!3{!7m_#uWIFYi4+Wz0mzr=~B{w9+FuW%pMO5`%}m-9NvKl0zRtV`%G`IoKzO`^mbj_;_0*Ib#(u6 z{dS9fsr~nTx$B45?cSdG^99F`{m1;{U;83$W%*pZ}jf#d7)mfBybo z|LvduIVNk&|M!1m6uPYW@HNA_ZRPA$M)rzz&nJi-lVJ@-iAD85ytf-dSkG+z!MO3vJAy<<57+RprNFi+A}egjK?248pPAJuJY?i195L1AVCBFU9Hlj>8`^#{1>7 z{=@&OGVnN@^qt@2*t%o);^P*7r$#6;3_k*@M|^AoU6u30%;hmU7v^Od#N&&6f4lx) zc>s1nUXNH4%Obv+CP+Sd320Q9m@H3E4@0A^&l`EXHlWx9pc| zECY>_h9OLRj5B6yoX+ETfHk5k%uNlyMmu8#4&9tkY|IURI)AyC$6r3Jyt6pHfpUGgD?_t4S7mpATbgA{2}iNfd9|9DcBai!<&59<;%W)y}#b=QzxFk`zeh0 zZ|X$dB7eRSmj5E)pRC(rchT{oPc5Bs@I_EGOe384(AqId1WH@1nXs^U!}washgQ{W zjKywIX_R*OXuNBTF<&Jv)U@|itif>cbfu87sx&s;=MOAtj<+GX$r(UF`u9quaQ%K= zKgEN_?YnN@QLHCV$N4K>D9n5wT!-;oroNm--11NfLl3ub`k7J0t`?($pJPp$G%E3| zjN*Zc;dp#dg`}3wCfdt>@igZ3*Xw)!ugbb$OFv?|haw`PKZtQ3G0TZng$d9~-m%(s zYa~aKO^kRU21F9^`J#=+sk8V}uhRYPPJf%J#6=ZOdV2f=AA`q70UZRvB(qVr3Zqolwf z(~-@l#lKHN&#~hjXuzXxId=DxeYbNprlC|=cn6gkFr^QbOtBcBG)~XY7t@3&@$O7^ zmJwmbQuXOV1?Jd^A2L2geA-N~%y~4PYQFLXVLb9;m4MTM3D7l{2ieFNP0hMj z`TlnOztv0|vLk%a*fS1PO5Z7w&^)pKkRwh9p}->No5XO8#?sCauELfNa$AjDseT_@ z#EjqL$W_Tj-Z*YAfrtakuSp#w-9Kh(!8?yZDU$1l)Wcw>@t_@{J{0I;xyiMSK`oAv zE2Ydrj{Q^j$Bv4Xz!a5kBZkCejFociBu(rSJ${yTze8ak!ovrPd-ccWUG)6eV@*b6 zu`XPC-Z(F7`N!;%5lOm2^3?I!q^S1uTivC{`<;#(?)OhbFP5W|j8A-gq8Tmk@yqdj z+SK!De2I1tw$l5seK$ozvYuBqz@50F6<@;?^Ca^3<$M3KzyIEjJrFS)+xaHn(1}$q zDisqi!mO0uBT0H<9#^NI<3r1~YI-gLRd3?`?c#r%sZ6#GLnaaF8}&YUbw%t566E`= zStfwewt3xGe1YmrZNI+2@vui}FBI)>3U0)w_q?~ga z0T7D=U;@cfA10cJm-mo)j8oZ7%gQG)c?vm*oXTI3?^E%5$)Gpx$}b8xGh}{}57M%Z zEj8V7!^UK$1BWYHa*dGP&e-N0-J|j5QIe@=iAMh$+qr zkzbU2q5`5ldx+6)KbhnSbnxuyKfpD%FqS9GV}q zdL&t;IoV5lde)}_s6U@S)oxH*Mf%Yevi5YhuO5Y?>VMn}m-y2$z*?j}7qPLFCv-7G9Cm^M`MVCd@^;|E)y#uw7 zawn(YN3@xN9~qOcDA$M0DHpyZiEM47{3^dc6T9+1Ta+_`tpftAY~Q@wW!2fS7{c6; zmE8O1=`u{iH6`*>Y#NYQcVtL&FW8otA956n zQ8~oYaI3ui>wM(qmFuINsg&f?-_O^72j+3Tj}cT{LRDJpt4?+xe*C0()Ji7z^JINs$u)_W2%Z;}jl09k3x(WP97rj?!M zOiKMN!}eB^-CPylkCO9dc85}J4P4ZzK8Y>B~%T2BVZLeT%Vq_G+t~IxHF!d zkV{+6ek4{Ev%47jY2Z)WwhHT`CcEFIT6v`*pGPxa_^+m_8?#M>*=thcf_)A*Ij> zxg|URMkgs2kE?qy!I@Ry3>+%!quxN!6@_&Y>FBV^;z!jvSpEb|Rzlry2Sl>eQ`#oh z{xwBk#b5Reep(*+=lRp|&E+vM&%>k{^2T08{|209^`rzv=6sL{VF!@zsGP5PNNQj@_*HRKl9DHioM3-*9QcHC0~i@e z`&G%>ATm*$isxCBN&xl4_nX=A2Zda(cqKqA#ci<1i*}GaZBU`}uJh%a9Q|F^p6ZFY zvp28u?Nd%dC3V>Y$*y}@vRIT!KMa@Sby)_)=-Bn&WU0eB{Q99i$8q>D!Kkn|L9KFl zPFdS`eY;fmxBF#(%BN}4e*XFV?lcKKg|mzgsr=ZheCvdQl(!z(=GZi&Hfhy?!iwyf>9U%CZKXS=_9ClWH^r_?M9m4*6 z2M!;~2;JYl%ah;SfBVySx6n3+bbAG*hp{mX9IEk5#21kGjxRDRM1m0(R)P|R*>=xuAnLvOOt^(4a_LN@b;^3@uPYEFpj|8)7t*!gfb38*)^XMymoa#WGJ4r#5_fc(cf^KQyv0vys%1dGr5~Caf z|ADK$0~S_bs-d_;QvveB&>*w#U5tYkg0nKEmSi^YNf*nm2fsh3)@A7@NJ#Dq3>K*$8f6Q2< z?%3KI8%$L13LpR|1Gfs$>s5BdlNEWmTmsWdV3l2=;K;aTIT^hf6LR>xLpC#)8w9fC zU2}a{`s0LI)R|_z~WC=kt+< znyi~HV>yvTUFoiMm9KSG?{Dkub20yxV!iL8b%?UF9_cZar`D6q>Kk5b zRS^}T&!V^l2o((xTllt0;`d5{V7zhrkgsF|Tz_>N>g#!pM@zYMHt|Su)H;_G!Id z!a`Q9PMUt+_>xO*6LJOq8*=eFNkV5hy;Bu(GWZN!= zXAJ|CWn@f66a*b-_LLYNov-`=Dv)H*smwS0%VS&N{z%OYDx47b74;UYa*tpMe~TQ|R>OuUhxl6tr2H zZ(p5#x~RO$wG%oHNTuwIA(val=a*@FfS6nJ!0~hy6L=5ck*)3ZwsPxt32m|6kTpy9 z$fmYyLzd4^MIWSsNYln%eSIZ>y^-sDbebkYvD~c$^g*=*nst;yt4#im3Z1U(^tMh&t)9;1a#Ws?apDXj*==gnRV$Rd zf27zjUiXtH)A~4nJJWZA1Nh}>XO7QT@rFm6iMni&=blqh3<9jw00Q-8D^O@);X+Ks zgu*-`=+RKU7;|AQj$;EfiSHfM2N0*NhL3h+jK?ZGZfsasA6X$3h48|90q&RNUdK0h z6*W2nV^Y|j!q5hbN<1n&qDj6wJ9c&CJH?)eQ}s^wvB;&*5QlJ|)Cj{NKs->gz!r78 z?c@GBMo&i3@6OnFzUkqRLExIW;ZhHAj4hNkwDGStNT z5o@Ecl$k^zLe(MhW_*al$BE5Nz{sC+%rv8mNn=wUkqq)JLad&X81iyhot!w?=EZjr z*Fb%j?^DpCq{wXOi#vuz?}o|7@9&df&mO;6zjxkUf!z$2Y5b}&DCHOaJxss*>)5<_ zl;^j{o4A{RrAtAsH~B^Z?;0j!02?xKmt>U~YdQ%SNiIr`Y%iR{6+g$+<9tj&@Eq8D8xR0Q4p}g8qN1SIx(i3CzCO4gYoZ!u z-gummH_H4)zO!IOpaI&er8_BdL-4q958IUORO#*bHt83pM30q2@W61ix$dJE7jK74 zdLIL~)cCME?{DMzv`F%qzpJY#0++r}>3_U6coU7HxG+?fGbDk29}X!>49CIdaW(q8 zGo;#CC|Iu=;bll}OOMl~PMS6-jOoy5D>UzAX;+Uv&q0MlQK&kBx&d#%VUok3Gq8{j zXDVWC^R2YJCYK$4BY?z8Y)u2I3Co3vPc%-4<5`TV|aVdQhf3q zf9KP)#+S{_9sd^Me_9lRKRHTT%Jbjv0{V;hLyrD^i7Q1>?ir)>Dyl3%h}FOtKJ4TdDgJ0uKk~J*9t(86^te6_<-NQ=bT-IcJ0f}JW_fBbbF1g8C~cfc zu2N5*ER!{7{j7O%M-3`r zLrXrj2ry^%ai;|ypdG^=)6~W!mI|mj@*cUdv3t&lRUu_n4hR=ejp-e-0@)Z#0@99b zs95;9$~q6#`m1n9r^oV!;$m(n8PqsSYA$u>sKY=;jfEX^3K{{y#ZXmzTm$44l5;IloxR^SIA39 zNg(;Bz?za=2cz<8J^H>nPAfOZ@;M#l^HD{}Rb=aHPgT`6MFY_qDz>Il0S=KSF%jTU z&8)({bLk+MEk%XxB2YX895iMii&KwzccxCe!GZlG-SCSw#S@zK{HgSB>L5K1F)1pp zg}!`|Jzv;lqyWoC=Gbo0WTbA}oGp8{jG<4qOyZ^Zl|;{$@R=S*MaiPs&<*n1fA>Vu zP0Vfp33V&#r`JV-)7~L(b;|q zhyMFhf7@w#{N@VqVK5{>EI#$N>6A`kDTWEiydPqblKMDyNHAL=xQu{Qd%k4OPkfrs z<0SanlM-h+<)>9BO{2lv$5p1!@Ac_k<-5Rnhm~I^#P});>nGHUfJUmBxIq(@c67AM zs1#&W1q?-=ebSxqu#FkW7O|CSW5FES*3sfcMSn8t>bA>E*6HvM?CQ;_ z)5kt+gvTyxltTfyKu?-n!&vbRfX}WW>jI9er6NI#ShMUAhY!mt#rPODHf;4yhg$(ziIH}CFyiJcL+oNv0)v$>t<{xHCm1!@=Ihh_JUEJzhg)Xu^edC%l0AT`*o*f(>MjL;_?~xIsr?JMF8_6(8+LwJeC>>cD+g#K2X@%rQaTk z*uTia(mrHG;y-_XXlR6NLK5R0V1j+NBAQR~RQ_$3Y%3KC@>URJ zyT+Ol`eixU&-o0jk_SmOHbf;w3`@4Yggy}?U9n6^rcGDZi6N|LYf^Qfg78_<2f^q8 zBgpAoCZ2#_hB|Q!pV|$b0N}=MYpg@j`9v)wPgOi9IF|aRvk~g6IoaguL{+hMfr|2n z(B54cncSTCLyH;=!0lbJRJt=?M>C0}zyWzV1D91~N72t|0?OibA@-uA3Pvf3+-yT@ zwhBRKV1?EJ?2z^8Vg$9n$miGN$=suviVK@%7d;i1KM4F4FOH)b-g`_Bl?(c+0Z@Rr z)@dwz@~2mFw6u?nLec4X(8aKh12Zp`El)#_kM86j=^)p30~1uDEzVbAv}R7(Q02oM za6bMnpYO*Bw@sz1iWvlmRA1?(_sPd;=bP++j%D#}Ek$ehaZ=~# zVlAAeuZo;5nUaxLS+O0GXNaOsIqVq}VL2u5)17Hg1{N#j$Y@a;vNO4(Z1xmA4M8+T zu(~fd$f3z5@n~%M*mO!E$Esvv`ehcY5*TXJx8Wn`X2u*6`8YW`HB*MZ90sc|HkCDh zlTYNygeHL*LyyT*rby-v`5~AjbZW64Z8*<|~8w<}aHSqLMn`%X>~ zdD^oWTU-u`m!n^Mks|CWFs?~p4Z`4~@BHodh?`Ic?3OV+@QvwqMTv6q7+PpmRUsi~ zF9ayv4$e>JdaM}V6f&-ljm;s<0+7+!UL_|fU)86t)H{;DOD;DC!%)rUS_Mr6A`yeR zlQ}~5kaU^ePpX2FH_%bFEhm>_9?QWNEn*Yh;Vip84ul5wEr!+XMm`?o#q7rzNm;dD zX+I-*Og@6(tOgJ6>~)GWR^O`0YlYF#xoAyn5teCehnS6@WPz8b%(-H~2_ddydxacV zQt$9~TZgm&Im4>aA@ZLD{?heY5@Qweuq?9ThYT!o7%Y}GJivNWoS!dQ#pDDSR6O1e zlfz*paDQ^)4HNwE_6&F|mLdTNAI}2ay~*d-<96Hhe3I85PQbchKD1rM4S**$kI}E^ zn*szq$wcc;WO4o0sbc7%TpHsy1=tzl!S0sH!FH$qL}$tM`HGr8W9ogLWniOilMz5Y zgLx#cd|lsDe0BbQfCNv(L$`yZm3U2aNxLWe)8pfR#`!$%CF}K2ILm;a!t3|Fbj2%n zay{*lf>Q9f%N5NmRj_~rO!a&CT;u$vStZt9!}Vz_IQk}@???4rq=JQ*dCU_Kw>|89 zwk7SZMAp0Ktq?Wg!*!dj0!Txno0`s-8bB_7)oONB5!$@SoUiEQ#>n)dSF@QrWjyeF zKA#X-)4WlwICAm4TzZ}%p3@=T_q8!MdRtq)Lm_x>r)3R-r<+9DRo@a7CIX?13{=6J=`68cRk1umt zFj8G_QaugK2~gVpu9U51J-pPFrfGSWvv!|yeRr|53Zn4%ZW@{7npWl&Te%1mHuQ^t zuDCEIE6l*_`8(q;r}OjqOyEB+t`FF!g^<|H$HE8&lk4o`FOFRhrBG0Px(ZC+z(smAy+x0Kz95& z!T)8wZk3Bu6=)HN$1aSt3d6IEAB-QKucDx4*$&Fk;MD7=>Mao;G40xQD$U+t_wIurR_zz$?ozhpI?sSua)i3 zp@Zt)OAD#j&{1hud=nW!M-uD0Jbku^SNR-buo82v_&EezE9&1O;*)_fFYlW=fOU3t zDOrvb)Ozb<^YjoYA!G;qukG@p)bDSRm8TqC{;}3?R(h#Vgd%dd5T~ebVnT=mUhw5j zqY45x?+7vVcw#;~l`Ckb>36ufS5-=}S`|~p* zcA{Y@NU9QY0w*zzI@3Vcjt9RvSf{Ln^1lS@y28s%Jado_J4^8*pI?txsc}B~W-xFF zw>-{2TqHC-=lMMb6ymb{gp0$gLy6THA6t`0bDm@>;K2-1_l+sS zmZ7E_!c7%l3!9;wZ!&Qgwaw|v1e)q-!|_8l$*D?zY=}eHZ}RNncq@)6(ux=P{CYeo z>@ON;MmE{er+f+oc~(I;p>NqERFY$=K_*~U0hJIDN_Uo&YRY)FvV=)=N0vCB*sId9 z4HT<-Q-G-k3(LqT_9|>_v;7jEnGg~EY?`BlO0^~Bh2(~qk%RK#bT~=KLy$)nV1@5iWIP` zvBp#a>n;Wdn07UJ;`AhTnj0+$C@j?qC@zl`P5a?~A<`7B++Q`vlQ#PC$5ej)rZ$3i zsoAToLrnJ1vICckt>BV#vAJ1&K7{Et%X)VjS`g|_5eGv)q?6us2QsC&n2g*21?NGn zh_DUJW}djT0_!(glL<1CTx?AGU8~|nHZWtlBHZ#^;*!wNXVsaDiLNkz388X~ata3cuuU*@4br^7joA}fa$Bu_lO#yddSadj^=#AZ1QanU zYXjSGbreba-%t*ifCDHYI+S6_R<{~r_fk`woonNhPH*U5*V8!Khf+n~$5)(C2g)}=HqQJ0(5>d!ZkP7r_x17z>MY0 z@2l)CmCEqK8P?A?`KHm;`K-$7D3^R(V9In#S!j$^oVKab+N#2C5Qngl(hf}`dgNZYj8P=rdKrWZZ&46^-k z*6$(>uZy-~@bR-~7=h}eiwirM7Z}d$4_$3>p%PkLsFGTaOWeo>8?mhR9^>jKK z!>4=FT0ue51TLMTs|#vl+58$y{2GEdRWIjywR+RC zbT8VX^Sn$6L0s2|E+p?r{BF$T43B9)REMq8g}044oIQEP594i6V8WGm&GeEBL*!j_ zN1)DB)x57ukc{8Y;VNcS8Y+;M)n&ucxtL0rcOTwY`TQ%#H}MO-2GZyH1*w4krp?{h zX{(YP$6tF)wHuGUp2d83Dj($3zG9e;vum=cF`?q@Cel!~t>m^ddU+o&%^5wZ!rskq zK(wfzZ?dg{k-fI_j$3bj0{k`fdrMBftKU!=TNVmZpB7*X4JsXWTt$LluU*(EMU=sC&u?$T0TQNd6kIKZp@P9e|zOH9?IF z;&CsZujdhkyjKX;zS`Gy@9N5rib(dprIRR!}pqt8B2*Y>NfZsu}kwi2It?|bR~x(_~WwIv+sZQclu zglmZ(!M(}&3~vZTO6}3Ot#lF}G%`5%^I_jNK>QmcSaPiksK@@XPDt%o0 zFaH7>{jvY_&5&aGaX=d)nNggq^05h?ovV_T}sdY8hP!zsr{i1t}Hm5dboc-rhD z!^<_BBu+|C{S9f`xO;t?(z=__qwPE8zG=$$`54>cv#1WemaRlFTXxCL%#Q? zT8x%zb$p`23~iPoCiD9!bkXdhAs`zZ~ar z`v%3!_R6+@ve@8GeMyBCj;;Sv+Q+>K@;obh7^Z^ZwksK?z5HdAWlxyYw>h1?StWN* z*KKrJ%->?Iw6XWf9yJ-eBr%4Qa&w!NuK$?^%MTO&sK-cl(gM2A%RL;^#qUK-1&_nc zWV$vS-K0zP4+5zy+4Gt%NqyciSv3!)h}S@Msu7C<97#pUDckL%qIRlJ%c*J$rPazN z4VosyApxRg+|AjfPR88Wi@*h^7}Mx-85H|tpXFc9M`U&Ri36o zE%OFholsA+ys*@*a`5dtH&-ANCA-1Zp?vC#d{d*DYJxohQHY|EdbVu-F*ORfj*CrR z{CP@b&xd62Kzba6C4;mP>xS^Q(M*JMd1&_3uNG71t0;1OP^<0@)zwm4Q=UhF z>1L-A+U7_46oDp^XP*93^i@O}rZ2K|5jP_tWkxppMN~}!*-^xUkIyG9rXMKPL<3Oq zG#5w!lg|FJn3S5yX+-%jA14cg=pts?!O?CH8DV<^FC>G(SJ1VZx_32X? zf1RH91MBBYx5-_!p@EeE6w@Tw4SMiXlS23peOFCyINQeg0v1mq5zRx%trvYR6ry1ioS?0fWk9Hz z7k4tzpCyRwVTZLEg6poiqAyaxz3@_}l)|inc8IV|{6IizzewlnG5xX{v0XI2)O{F! zJ9nXPHa_-h9R%0S;iix3@jE2OzO$xnydjKjRnzBT)ZlDpEsH6_*Qs4Js zX4NwLWfoGrB&fy?ZBjytFH@OiA5O^))RPWV%T+~d0(Ia}WqTD>37fot>-?NH@OfjB z^NCobWL*#mUL*~37GQSJT!obc{Axl~;)Ze}HWfMB(sCDLdNrx2Q1cKUm$PmN+(m4kTd&@L%q+tmrZTf8nWx@J~Yc7oFbR9g75&FTc!ml3YwK zh=0D08{^-nK>pGg%>*556RRES>8KTO%nkB4j9vx80`X^Si19@}zaBTK{MeCoVf?En z`~%~!^-v!W|EBel9}xelQe-X;x$oiyonl#b6aQy~q&hbS)za9rFXB=p`aQ?;WIc=PO z70!QNIRBN!aB`UNt84dGv!n~>Khy^07&|03v(!b&8|UAJ^B23BaQ;(ui3c&&WWx7H zxo~RMK0_~Wod2}(VY0P;xGr(CC?=6?UhzYTP~i-68CkV?ymSNTTc zL~36##hKyPVFKYXUR}0V7VFp8oyl~1H-}jlEG^r-;C!+^{66pgT43-1^&N)RzRCAa zKLVlu#j$knfc;!lbsu5@$hy{ms#+Y`U6t`@oHscZI|1k{>T8OBx_LIR!q*fzkDjbK zQV7Pr7#-TDsedMwhkd%Q7+wA3l7@PwLlee}JTlDoDmjb3jL;|NzsQR3QTV!jR1qD? zYnfBd)EUtn(DHWI2z!K)Do)GI$P>Cs5siRDMrjn;5Rf3tvNi@CE^ zz;GzmMmXrRt9|*jlOA8KniQhV5@pkZtKL)m4EK+2T>*P9l~6d}`CaB2GnPm+B@TKi)+X zJO?_Z`4jRf@yS$afLd542%qXjiQ!h)3dvMPtMqs7?yiS@M>P2q z(j!&^F02CF!joZwIdVWD17X6v51nIkF)E5RY-~b}r?wNX()o5wc#e8=Gz_y=jIAoe z;(#Ijq#&yIes8GctC>D?Fqti-@C(JPoPC?o(sXKe z!XT>Kr&hU&wu(47z3LS()hY*#0Y9bQ1?e2>FSPWXJP;;EM^7q@07cBOj2hLhkt{2@ z2F#`SSvGUb)@_>bcyPs4Bzh91BW;(#TLWK2yEtvJ5RPFIYZS)NQtI2f6{%5M&cQ6z zVD)WJaznT=RX-%K-K%*1m7@!htzK+O)rW=PA_3d{lLC==*I0;Qc-Q-q<)X-|BAN^YC zzwDL&-17FP-}Y}7bwP(`HOaRS4I~Rul&-W5P@SGb2dcGdDhdtrQgN~|T>|ec?IqXU zp~Ac4C|NBHvSr-M=6OLz5MXAG}0wsU0Yl{x$6w*p*{-&gv)3apLi(MzZuNZCI z0gxHwHV8Wxs5QQJzZHmAz>O%?Eua@hKl+iCr!BjhEs*KP*>#^?x20ai`)VS%q8R*C zE-Gt;aAfIzFdge6qg}kyNuOL+ff-;#@uTc;k)Na1MwTXTJh@K_6xB zies|r_#)qx1eDDa8b*Cvhj#@g^y{2^s??74S$_A;d5q~HA`I=j=bJ1$mJLc#cbkX! zL_@T6p--pjRL6F#oH=y-zv}0Q?GTae>GaZ_OBii4ws(hGYJEDLZj!`(i`dO5$DY|8 zh9;4BVE%b;YlMAhUq?V(MR7|}B}lWA8C*tj?Wg*MET;`oN=rQ=x>laLkH99R5SLR> zP-w2{;!xUvU;=TvNQ-^C4il^|j(A_PPA}d^k9~DiVYBNpcCdb!Ab`Fe5SD|hAoQuL zV?p3>utBPmkC~s;DLqafW;&ufxY`7+vSQ4{(Dg8E9e2Q4%0RGRc$u!m>MiV z>L}}a3$d&?gSr*ra{b*W4lUe2M|c=#?`vX1|1e*gWB)$(%$Xp-;5v8pbgu< zj%t(rRaO}0k{L8=+mEV;uhZShi1V~6-VTscxHEJ{WwbzL0j6nKXvSi$^R^AB&k0bub1}@hxAI|FxM?Z);Nmnv;tA^_w22u99?NAni;z4HdR#XBNseT%9 zX_P^Am`mBPY(Nq&>yQoI9lE2KB@Fs(;thWTDOwU6@J=fbicg3v=Wll(T-&4Ft5H}p*|H?vBHm}m&Im6mIP4wyARg8f3m5H_$=J!C2|bZb z=rXVGFyoaE82E4&q;9H6jg_kJyFRPDWX2b1b9eFS5G7%`PQZ#IE@) zDp}aI`m+<80NXTE)V)YhL6Sv9s6_47I-F%g;8bY717QSb!zYXx4L)iaC_p9xCWKxr z$G$Ft06Qpgsk#&rR7jKjmI|+S>%{o-sEs13GR5m|)O~Sd6Lo1_<~Q;Fwrc-2z*1k7 zFP&v7zR5CjBoj^(b48c&Ph}Dux5>eBs1~Mq+!&d@`^k|%4vpX9GZc}&;Sr17f+Rta z^+{2d%)IO5RBS+8m)>nV=V2eHqK8f02vs8$YMictjjzE#OBt{X<8D;U@$(@X+NF`t zS*Nr18O$!y{3Ktt3eqCSfrnE)-jpW^6t<3?3`rt4t8fkKJ-fPwSEU+aR4CVqt8lLc zo+1}n)YbfKQvj5Bl;f?c(vMW$yMM*?`4?nbI@(oKD-4+4P&7(&=nm^lP!HD@2tN*{G}@I^e|kE+j5 z*QF2BLPFwCNBgE`q%q*m$tc{LODP$Im z{3yeu>uwWyovlL7VJ@1&@|mXVZ2MwEY?mUQ@6vj?+Ud9KY`?rO?zLnFoy=ivZD`hG z!(34fG^e{dnsGd<$IEHJC*w*Ge{KsG{uiN|r(;iYI$@rb4IV zP@Y%*E;cg7l9@}~ige52c9hQj95T`FZ*%>b6)T?lo2*#VZDQJSoFeAIx+19#a}Zd8 zSPRs?rhbv7#7G>w3F(waLRb5wY^TGCHZ(OTE-C;aP8r4g;=Jw* zq^tfL?@hkfc$+)cpP+vhW@?OXi$H`9O(vhW}L_|oN!o_EgVKpW8~3q#&LKjUz51qnw!1& z?;mf{`TuiF?xHNo%1x+k(M5r$O>tilVByU=H&qW9Sx#Mn14VImW0d(Yj;Wb|v3sP4 z50TouWMyQ^u$-&XH+?*=cJmwM&#OajdbH2u3Z*s2cdijq12)QQ$%WvBHkn*n7jPn&UFzYiDpny_Axd= zw_uQD*+lEUl(=O_-K_BE5aiYTgvutU0fOTp^5}{iMGPAcr$K2>0OOq4RmuuIvK7HY zClrVJHWb;@qd7TcS1SvAA=ioXft|90_oQajY;s~KY~F~PWK%l7$@eM5P1lY~_L!I; zn}M_IH0-Wwk`c4&K1E9p=lZhG&flB1&$|Xspy%<+9>^zm`TXg}_FbMk+FfIR7wtxO z1xDcxRFTg3l_|~C|NM8qsQjXAv?!WKY$DlUb5aHZ1ZU}#rv03voF=A6nFFG#Sejwf zC4gGw=ag1VDc=PnE;FBBi>q-%KBq{}R`;`{9l`9=5v^UjQekoxbaOW|5_ZuSXW1d{ z!mt-nHe`Xs`4B?-{x&{OOJSWqkMAypWiwVNj_yp)ldLGPOo@#y(da4)yVFS0Lo(cz z`v%N5?NYH>y@=T zz3f1LDE8AWL7jbwA1Wy;ZsPD$8fGv)vz`NPgPk4)kQVRV3nA$~5 zL6xSZ^YW@Ow~q}v^06UM!JB-4n}|;y)Ng#ws7QU~j(0#{PQZv5U|@Tv~=&V8VNm+K>sb_L{4lD78U zjQ*4{jfsbL5(!IY#kfUUSOCX zdy`R-E0jY**0hb}E8YanuA#E7;=Qp=)kcox>Vs)gNr`QP)F=#+`6&5(Wc9~BPKrka z(1O=BJK4;9;Kg${`4H!^7GB-Qw>*jy1QbvVyCBNA)t!!-uFqv#KX$FHs+f`t@)M7_ zEn8PKcOLkoDjVN z8+i7$FY^6$c0Mz;{5Zc0YgLDA&AQ>;2ME-zhizi5>B)P&DkODg)ix`w#M_8Bx$4^# z6zTWoerpEa3{)O&qPSd-p?>0rIKYTetNk8}I1Br#D!DE8Y+@5Y{M2>;e7UK) zqmpu0ozjbZsv&wo0qhDreq9_N7vub~{Ak?`3we~orl%-N_k#|3)Y_evXPfpewXcx> zoy9p}##~`c%iP6-Rc5bPV^yozoLA8>!0Kh3;&JS9zSVp;mH!oW_UY7BtDK+-$w?iV zbl0GPEvy^)=4rivBqs1k4UO>`&r#+xbico+K*fg_=_kQHByyE7HG z+#FaE8Su-){cU17q6iwB<0)$do@G-AsnaHWchwX^`6Awd9LQKh^Vby)l=hx%4?dzIW=GX^*6xdH z;x&%DFRGFj;@I+W^9zbmwE4Y!{j!;$%utz~aTCvfZvLGJt+G35!(``~R7|8d$|fB) zB~MoWtDBS@=a=JRaN7iCYO{1x1B0~*$kdcT9fnW!rxpVoSV-|6?*6Z}m@Di>KEEE% zX4-?NMy!%#N;XYRHG%XY>M!%tA-6rzXL*l9@FG&$((SQ3TyKPifKw6B{Zc>*6Ol4IHg3l z*2HYD7S8(8*}Rph?2grk$wBib&w7#XZ!70%dG_&R{%)5HcDLpHx>fUwjBXuPz0-X* z+5hUZYW9BEhjCmgwo(J4;bvEttPbwQM1k2T{O0q!`^%U(3K~PP{BM47sdg8x4Ur#- z4|RuELKHdI5WOH5muIaMyR_qWROvkDk;Ix$c5{|DHXqxSC&#U0rQkWhv0b<|w@egDg_Ea5PM>>aX7N(Vpso9C4iA_1 zKCT8q$IYEjY_jMJV4HvnXnj}a5&qicIWgI?eoDs&_f&z0P!U>?g183emq>L~Wu)e29nqwD(q%imYD$c;6k^W89$RICa^vl+tF*5TN!mt+Oo zHVo0@oL`5_V0rbGWL^3Eti2Wdft==78I3zEtD5~T63>_y3|-H*m-@O!@|QibPu|Q= zKd$;+f><>V*c_TiIp5@)7|T7TYThfhe(k%0yPfKrY8^RcKhb41Z@M}0_-6AN+k-j9 z!Yn3BnbGc>nl}qc+bqlay^fpFJXh;6GoTk=FOS_Fz--YjS3f0d?Iky?c$|Nj^Akq% zw%PgA%z&IivghG`nri(at_-t^yJ-S`%^_ZJ_jWm^Jr??N@*I>ti(MW}R5CvX9pNAj zS4F(J2A9eED3CAXS#Fyv`;yJy$kn(Qe)M<}htB5O%LVRzQ}4+o!!Bq~7iW2kwR>#2 zn!x%vc2E1UiM&lJNj-fneweZA?JolEtb+JslbV|x`H)9z*74%Yjm--VQ{aK6n@lRM z%aL^QHQOuM3(3hOkJD7dbk&f(qCBBsq~?e;%zY?&ziGbPZP7+n zER14`QO9~cjkDVjP;l)o^GxhzVv1FpUqR@_At(+<uHPrP)2ZJI2eerR|x?d)2Z~1QhCaqRza6zfZT)RLF?}idtl|a;#U#u_91?mOWx$7P@b&0zGx^yY>Ecy*JbV$s1yMSkUb}mzW*ZDe z#B(YH?*9JmW0S#|X5Xhzt!5@m+2n%y`rUZvLmU51b5rFG&bVkMA0_~t`bzdJH88G2AN!Wi4G>t?%$mZX)Q+ z-ibB^R8QWh#OZ`Zi{j1QMrt*=bal%hZDf+O9cgWJ_5QZ;{mr5hQkgBy`(H7Lo@G;a z>s+fhehQW-Cv&Js?lz&+BqNK(79%2W5t|3Mzitzx$eeD z8bhj|*Lb#SAgBnIIWBmmNXaE_zcZ<}nMh_HJ48@zE;rk9p@7?PqfnW4MW{~sCp56k zNnuZ2SzNpjx|jVFAV3dEMG@BPvdRJp3NGd)Y%n3Q=B8)%{@*54U#AJGCH2b%ZfaJj zmYW!0&nFkPh$oUab^||Ru@F8h)Io}7=#hC4w+LwSY7W@dX8JKW&*EL-9!yCXitbn2 zmu9#7nkq&)rRVCJpV#^QK8VYlXy_=hr@zRisy%LH(ExgW-y4nh%Gu zszZ%g-^MO!b6J`O706xM4sEuRNjC`5kqbp>aG+vs>b?WeY^wDHDL09Vj4d%B^INrp zGVLr;Oae@Fc2R%K_R-DXjek?8qdiGcBcl20S4$I)!+89q4c_h$q2=VwifFo=H?woY zo~4+2HBUa6ZZ{nkJ2#u$Q~^M`_P%TY{N5YY7ZISq;cjb1HC?q|T^*li#FOev5spm3RgocCwL&Y12swUh{CV|QcQrLZp#CJP6ChV}W}$Y5Ql81_ginmktD4<>Gu zss07UOKam}XZMqUK;!Ew=!kt___-paB8;5b&EIH@Qg)52J9wGg&qR@@TMa3#rQLyz zJISK3PI{3~$yds9-abX4G(OK3@rTa_5>j_J<~-fnev{d{t5|YPWAEm=ueKBC?P~r6 zEMr{?g39SK+ylV=tIif$|5?5Ij%uEy++5d***LehHGxZSA5-rLs)$pXyPsz`>;&h^G&{~b0J$6@$_l~WYeT)_1sW6ri*WX2b+j_(sRP54UuCz zSEoC8xI$oV%Zd5{J9-!jWDIfYb!nmYRVcM{DHuMhxd(_twQZGsGB~@~6rdttIM3f=a-D!x9IK?K3R*9-4Wj9TCd?=SSRJ6##o>GKrS{t3UK@6?!NZ*G8vK!(3HEzWDpyr2oBVJVr|Aq*-wWwaCYmV zo%vGvu9PN-(Imi1we6{}gHUceag{eUsLkf3!_DRBvIwXZ>}8wLZuh6Iy46?b(fXs~ zxuWlVIFd-ZOo+R_&mN-GAQ%7W^z4iI;?1<1mbb3TzL}3dWNGQ0R*-1R20S0)v2%*G zN$zFK%X0J8pXGhN%jL(;51E|SXBSnN4^yXW7%7?K(`0)W+Uy@K>Ti#rfC|J3|BN__9f?A!YohFf~uJi42)kA1pO^yVXw z8fxMZY3gQVOg+G8El^62szl{o53M+r2TEgA_jWFB;DW4p12yW^$JvHpc$Wc0p^_kE z$r0y{G8NzL+AbBKX#fh2KtIcOO=Fb1TAm^|^^cLVC!+k=c2fCuZ$F>A+X@T+``tH& z{Lij@oi?p!*_&E(<*e4cN_CfUg;bqQ3I!slr{$(EaqtOPAY|Id{I*$Fu=m8?aQev`gOamtqv8x zGc4AV$(>IwV?iu%YBQx?N@NOs`l{D{vJ)_BGxaG?wPaalqYrU8X}J@PEOM}JeY2Ww z{0Y-&?pO$!MIym@caKs*L8yXx+s&jj1p%jQV?p1J+}M6Jefqob0ayo6QXxLg_QKNY zuUw2jrTO!Bag0(ps;m$^_DGAtG<40?@WMy#kV>BJji;;ipDt zcw+nHJ!tv)x7APbxVAb=BP%$TL@u)r`y1%iRXA3~_f%VAW`rx33Ma_nCgVw#J{%!w zBhi}E{LN?cMf=#s-iv&GIgVn%33+S?%G&8_Iv*#c8SQEXPg^#BG-EQAEM!J3?>5*m593s-ti=xGvfV2_;>ccT6{rw`}ZJtaa0Fvy7s;npOo8@63CbixZ zEjf&=WLr48!l;n?7HBQ;*;#N<-L5sj_jYvR}4p`_!AQmY;L~uHKx-UM%O+ z-|aFD*JmCw*_a8C&W!5jfRKE`5qEq1tmdsrrg?)YL6Cjsj+VgIi!L?I=J+YAZzI6* zeSUQ(uViGYy4numb-fCB$ZyzL?5|3!9;B+aMCX@`$@gN8DEEKi5CdOz@VThGcj=;~uzy@s=4E$RUxhT>V4s;pC0&Xy)ITJ1hc97uvSD zmu2_LSi1Zr+W~wM*R_gK5HerAyXk7fcDfKh<>~Y(^dcsMU7Nw z5RX17yWOZeu0KvTbE(icI|HEaTjdA2Zzf-RrQI``$wO6EKR-p#&()_Vvwd5I56?Bl zksP=XZmI06b(t#C=$cziohenCtd-P+_fYL|-5xpwD=WK+CuK0xa5s%%HAm*=i!j`E zy8nb>wS-$`7awD9`uJ&i&sC+Ms?x?~yRk*KjuHe}nO3x#UBDfe(r|qjP{-@wyh&anm~88Q?m-bt4D6GG|?wq;VWO9|nSC7)O}4 zN)S$P=QhT;_^_=39K#iL*H(W+oB9C&>7hiQLZU}M$~Rl6i6wBewycXa@KaV-ILfZ@ zHbj&#Oo35EBes+5b0DGEv|*fxW}Y33r;ABu0Gh`)2xH|cymM$ObLZcz3j zvnS{CAx?4N5(L}4!(!%G-F*l}{H&83#DAb+j;pt!NsuYM7fG`@lYRQL=(DSk9@NV$ zwevd|gzCm(>KeU{CHljvE+%QSR4*~WC0jZi&Z1bPye#Q7{jas#^jxR|8RCr)(ns=+#6mSOUXTzZGJYSNRT8o!FhT z^uT>VU{ysWlIYy^JYjy_^X7$(@c3@abb8Dbl^#*3x>PGaL^68NTBo?aYN|KH6ain^ zrMh9(L+6(+>ef93<1{W)#?@;Wx=J!5E4#%b6@#FQu7?@kPWWEMO$SuFiIY6a)wq)v5nKJvG4h^nB&QnO zlX2+%u|ihc!%&=2f0KXFp#HiC_47N$0yw^H=81ivnK|}ZFg%4IVB0ZYAIuInABPGz zM8t4gYGae!xJNCSh~G}>aB8OM0k_l)&E;`RS^jB;X5O1lVYK*y3{~~7i71Q#y`XBA z8c(?dlf%8wO_@NsEHO-DlGIJsT~=U@WTp}H%KKJvZK_HSHT@Bo2ZHqB+74(Oi63u* zOFB~b{SF}9*jW#6J9OBDqIk{+9DoYXsW(&ya20%x>sq%}AvSKG#e70tE*~i6e zTXz5Ic?BYt5U@!>(j_)a653PYSrJO&OfYBqj5PyDA+#>rzuG=`5m3(uUeK z7_X^j^J-P7G@`5b(Om~QPCOeXEJ+^-kO6%IaUzEES>(f>KH}K$ski|PF*x+I=v}N-)y|GzW^UI z?Qslx(J+u;m0}=l!_8G5`9;1jxs*wFA8M$CJr80e}f0Aek$6qmawDWI4n9=k~hxDb8~**8_V*#Nh!c;$5cs+7hY7a=7|1dhQ^ zTma`6(+#U1-Ekm?bYZFXYn-U&L7-$4NGs%EwK#y5EIxvl@hTxuEJHXFkpNH&!u4vhXPx$WBe|C;-n zX3KFaxxIhIjrPV~Oq=)y7IK7|QpH=`+Sa0Xa*sUf7>zX1YJ0~2-pI@Y62NVBNl&Gi ziCWY>k0c0!AU@8?lW7VxL|zw0UNKH&PnabZSsZ7MY-A6@aVWJ{KvK|-_-u9%Iagu3 z6p79x$#rzwE6E;W6hSr-EJZWJ4x*bAJ$kg3broh5s^`lUt!pK zO>I7m*@CwE1Vot7xijXvpjA$XE_+dUx4{3M;2)QJ}agCH6i) zG2P}6{IUk6!Eg4H1EEMmI6yB0f9E+e8aD%I`|r2&no( z?G`lVr$%pf8JlvZ-?BrhT?ol%&_NWC9TG>z{38g8V?8Z6F`nlv=j+Anm9>)BJQK%8*7qZ!eF%7Z;~Ot z=X7*2MuhRc`1Np@d9JnoWR<^L$S3dJd$;#sU%{s*YU*>dNh98nSAbO$7S(Vlag1v^ zANeR)uPEiY(UIlZKX^G%XgEDH@&3eCkqd+BqzeGo9$khQqMn{^~=BbgXSJ4d|=W~*?OUc5F&5CK}uXKRXXl2a=`mzGW8 zleO@d8FffTl>~v+@&rrH3jsUELvzLS*8rAyLSPxEgp#u}p%xuy-XrY9IZMjVcrSK7 z$Xu#qIhF7tbZ&iIub4uzJXd996U!yh>o_bHEfrOuE5AI(w;#FaF4Edca$wB%gUZk) z+J~z(ItI^ZdDE~lx|ux5H4&gg6y2Q$W7wFs(JDd9ZmVdtEVzThKb8V_(BVkOmv%_f zsEcFyh1-a`Rj14CLP|U4M~Zk1Hr%0FPsq;TL_oEx?4tLeYrQFuO*Xx3LruafQvbry9d8`ByZxlYf*iTVXo~y~5c@hG9gFUZJaluo)jvwO)EY{XD}Z9nk^agnx@li%%aeiI6xt;!~&VnE1KVK0bym ztKJJd;K)w(yLrAG4IF|{PvEqwSQg1=3{jP8-0r{X)-L@enNE267mL7A4XN@f66Rgq~VQU zRG(kbTS`%(Mw$z+CO_bV9&TnOMe#;wmsuPIo4_NDnSh>f2WuQpi%l`$^R}4}Ur4B?Hq1_wh9hw%f()z-1uD_^ zjhXwPrxM>nVpBQ3<{}|V#%{87fxMcsm~K$E>oef^l?Yrm4NZdOm`{ZN1y;de#iKx~ zg0FG4$tFuTYbzRKn1JOOV92aY&^8g7fsu6pJvgRII0;clv;^kMs7}+8O~uwAUQU5w z>+GU-Uu}*4yjkN|LhjnCSc%J|)n>b*!J_0V+3ui7h>z0q^GTX@q%0TNm2(d~ys%1DG%rTk zp3TDTIkxHjWRMlWwTCTc5NfzG8xX)x(ZtimgiNwiD~iZPXUN7Y8bvAY%cYc61(Crz zhGG4nYm)IQ=%|T zw(^ULXp1V5B9e3jtBCSZu?h>##O#|^VfheuJhj*YVO+NBEEKaD&Z7Y(9|sdjOxbmh ze3=w+y^JbK?z z0&twbi{@Hwva(IxwuGh-paQN4PIBpHtDK6=2e6T(b`f?nZ2}90VoP-f!2EsOG?R;^ z87(iTgirR8zL0aBRLW9JM^8WifB^&GH{h5B8D!9a40kowlN^AF^>0#*1HhL$nrfhVh{SfYAVntoYj(k z=iDtCr#lCId(OM@K9mpT*YDk#!ULU^JRY&0#U_drMFLinVF0UZ?19W~T(cyKyK_7{$w^n}W+OI|?OnQ=F-JGOKn{nb8gm8}1OnH*q=u8{&Ucy%~@N z*v0Im%?Z0WIa0RgoEoow$iI4LKGLQ1!mZl5n)gRA)Obuvnw`H=PKWSEx(PMe1aL`_ zlTY$I!A5I4y=wUz4pD0o%7&ZR>W9!d08T)$zc_?Ws%>H+3broP2w4j@ZLmt%x(3(a3Fy)zm~!(_M3f>RC5C4xR{iUyi(9rw8}upQ%n8KhK@U0l%K9 z`(jE9Y;*~hz^>dpHVMMQJ%xRB6)PFQ`2NBVok+wxYzs>77E%CsTv8Wow?lhTKqKgD zs=_B(s^0a=>t=qkjxhOF{I61br{}toKgFAuJW-_19|n1%Xk8*8l2M6J&dnx-I0_#` zt_G^hvpnRGBtnXd_o5U7dI`i+B`Kzo6Ya+9fy{&4c4d5uEP-I?1J?@cL!s^6K3|R_ z0i5-VX)yeG+DJe^eX`w8X$!a?FrCEVus(=zRbgvz{#9SZS~F3%UdKsadzV+S=pY`T zkn#*vbNMmZ7_5jlR{H>6o`pw7*6LA7*+)Tel?O2|KnIIVIGj%r6xw0XA9{Hbx()3L z!hAiO58nUA$5nBdNc=-!`>OJ)+wCW?I+e`@f5*9+#yW_z8_B{E@p9get50eU>0wBn z&v5c#cjso;5y{Hq(17KL&BkRKU#0YD6*9?jb*amNh=wNSI4mkiZdscVU=ncRsCz{u z5%oNr6`vgw4&Zg*yGT{BLNKNf90V?*`|?EcAmO&zl}JTa$?E9UwGzceBAYIX4+qjD zEZuA>BI0z?G@U?d=*+xb=wj<|-Mg|MDL8yEkDHgig^Sy#;2*(O9c$8DrNJX*3 zrr0jln^&w6`wH*I@l!2KTd~|$4H|Zkfe3jftr+^#>syXG-w}uc%H?Fok#+&!N4)N* z#kDv5dGi_*k$#63YpOK4We;jWDlROW^eG(ElKp?!|N46)H}Ca#e~5-rVmloB4vSek zi}9CaF>SL!g<37A>X0r5kqUf1$Mb>1@d}=b^)VVr7K5i6EUY~u&v$^Io88oYK3VWJ zDKqA{+CNjOsOb8__XGNb6z2eVtk!(FQLoJGqSxyT#yD&x{0OdGo^#)rmQwkfGkX;RK0|C*`Bt!Tl0IshD{FCb(6rZboz8uG#!}83A zTxT+xc1&h@BteEE%1=qOIu}V(gxLUCcd|PaPnf#uBdy0q^*txsHDcn$w~c(zMy;qy z4uDJ&9U!I($&!(j*9egUc!Z)09$Hk1Kz8wFWI|qaypZUoGL_RZseAj}*E8#xLrUQD z6=ue5_W62TsaNE(Vrt99Mder@ybqRN4XIivN=ribrXCmge3fL-7_rq})xaKYa9wFY z!IsV2ah$JYm&xlK(s#O|KJs7SRsQ zGDEp7r#Ny;#xCOp8shsR&5azsc7A4i5=rO8B+=xT6e*e`eFr8?&+Fl|_GhJwEsAi1 z$Y3<96CI6VPA2<&IgZ5@Z7+8lRwH#}LiR5n@eO89N?n6{U1fDTW>#Vu!1^%#=8Bmr zi?cigmoPS+W?n9Dv;i%hL~whf7lUUT&sW`O4{4TGYfo;Sg3)Ik^qU7G>mkd4*mrn4 zz8-9ylBNCwQCR5mXYQqAglV@K0tnU%H@P!FXuz&)6hxccnguXCZY>H4;R5F#WgtG2=anlQE5;Bn-g~XiA{}H z`B-c|>v%m-r#jjb32C&kc1?+}+{pQv!{>7wPNy;ZL$Axbg>Hp?WFz?|pD_s*s7S@F zRBUEbkk{KwA(_uv1XvQ;51iNBbJEV@Ap;74=Qoz0yop9+1%44dVWVaOnwar0pAQlO zHZp>s(U2ju$xjTYqWB;jtAlNXdIW(mV6o+;ezVT~Sd}Fn28?&bDp43`Er;Uk1krsnDRgA-PwmRYNrk zfoL`1A@8hm0KI#7;{aMr{K5d`CaJ>tjtdT+4jffJCz~DEAiSW6o_}-YKyDgrKFgc1 z*zsxj0EwcsCwfY-%FqKYNtDce@7C?6)o%P{pGMvr+)-i|#Suz5H=6++y;f~rnYGU2 zY|azT8?!Sh_Yef({K5Hsx6ha3gs|N6JzGHZP!N$})P(3dtS{)FiA>+q>k<-%;{#aM z8@(J^LMK(jGun`sd$H;{=2i3Z!Y@U`RT5=iV2&MMHsv+3A--&Z!dSUTx(PxUqTQW{ ziNKUTv#F_E>wFy4G1j?Uv#5eoUj!Zi^v~XEpUMRzp!kd{CeX>nS#KO6;8efhNI?L< zk``~_YXy|-ba1bpla0$2aFX4S8O1OD$rNjG!*eIm7Hj5d*z@NfBc14jSy)HyPSFOxS~Sy|>qeP@V;{4^!^p z=Db*WQUqm!HS6P<(_RTMs+zpuD}ZaTUbcJ%T3Z7&sO$i>*Fj%FBBR5&A9oL$3 zvAa;`#G<6>e6|-oEG$pdWvI9S*?BzQktmRC-Qyr|HI21?B>zAfWGBGOI_^F7_yDka zqQ$xNu+xDmQfupUbf$4RHuLCAx|@Vd;q_0}*_%eXG(Lu?w4BSv+W-@Bv-6RsPEKoQ zBc(F@_2ouVn38G0T_cP55!74A3f7M4W5mt|JHC7!KPmOA-bo^PZVj8Yjxu@ec3cU; zOIUQe(?+Do%|tc0#?*Fo4sfB!OQhbw)J-2axVQ&1@do#iY^H`&^tDKun0x;S7us|LLUo@m6dJh8A6!;H{7^YxW=JF)! zc_!uv(#62SL0erPBm9_^i3!gHMGP{%9{iBbd}ZyEaNdZq$_grP^uiHIT<*MzL`N%AeM3l36BgR1Koa;oI! zs=Bvh>g$<}0ff4vRk~tZCGg6I?cJ$)Ni>4z6qU{s2do@9e z!&!_y=o=vp)wq7CloUDJnk{zs6io@tD`=3%aWHd4M%i_DqRfm=oyWZvrg0qSS`1Nk zCJ;EM#Yl4|`{qQz+azF#ZwP|&2UTF;{v{u}#Gys(;+vgWxN4)eN|fzH2_ouHPc|it zRX<1kt1(zj&Ed?ksq9Cp<);f41G4?60H`P|e9%3EUnXu25@9l%ID|RSSklRMnWFz1io>adJKfMJkBwC3i3L zWCfX!9(WeZunvM;LE&?|2SUi7LF&ZV0v1q+jV$Wn5krRD=F>Q&#g< zYBP@6%`j$6NyO;&-2IoOeA z@kk;fylmtzdF5Zw4BUypzg^U3crFAI_@!|zJ{3-CHuyQ$S4`lo18c0taKY622@$rn~-^L#o8h8P@N zY0759+#+=CWRvfW1n&F-=3dX+PtdI9!+W7w;H(3ZDH4j0b&5xX8^pO$jHU+{kC-kq zZH{Ev_~7&+GkU2!RMB}Q<;-VEbb=WGc|;eZHA68{WL4kTmWf zAvBqPwWxAlXa~))jmqBP8s9mB+vpC2Rv1btjSQ3L08U|eCg7uG5&K}Xew5pmc+h#- z!GH}?c)>IYHExbe8KBY%DXL z{KDaaw3Bj_$X4lDDd`kyY(_d?%+6IqrKm;@xh#Y7Qj;VB7V}LHHjM%wLiO(y1)_sU zf^dmz$kmp|NVZaQqOxO{B;7Y!=(dw>3`JSX5cq76v2Y2_IS%tkgkTIDqA+A3ZW@Te z@3Y$H%W=@!YTzb%rO-7roqyM#;*+n>v)EHl`&HlkzZddt7+*Z(IT=~XMRDYLGp22c zVVqf#a+^dO-&vw?2O%tU$B~To2#2;SmrXIRLf-Kpn~7I#tVNszfP&G= z1hqu9&6vt#Vq4VRnGsOin6ioEDMO!|L`C&Ezmy5`?fbX;-Wih+ZcbT+uWq#!ePUmY z%8WF~Hf^5>LG#yQEg1yOW>^lki~U63)}n=UNate5i>q1ZBV{a9JI?yNS^c&?{@$bv zrnPZ?D%xx=wh4tL_@13M49h3U9gaQ?R4 zINxkfevHG3dC60F=Dr;mc+)AEri~6!Ic-|+8;kD!IEj-e;787e-k_BTw>DmyI+JN< zCo^MtEN$2FV{6NAKUR0qBb?W7M3|ss&bvAx*xa~~_K6HU)p{JiY|&9Lbs$V-n_iZ7 ziI2q&lA4Qobkq}O8y(ptIr*#lVNvS7)8WLJfHzGw^h2g^RLQgIBO}?WnedQ1r83@U zC+1U*uViYIFEj$0-k%l&=W0$LjVHqg<1ZSYt7G=2z(cmQ9D;uw&ckk>KXtswE|2BT z<&)Lm%eW0N))=9M*9;wvLXZ#(vc^4#BtzmGlaIMIgTU~q`~xHD^Ukt|<9&5?0}|!A zE$UB2LcGI|amWC0lC7%4J<8(f;!6{S4YPyFb$d1Wuz9}inh%XIRl4B^M+SnKg%n2M zof9mBi-xX~BA=J-M2{HgOyINg{1mM%qKX54TV#tx&}tGgH5Fe7m!x!YNT&biX_Iu7 z62~Hr3}|=kbl{;wbUQ22JtQNRw8Zynmm3?#VGuvd3O+`|XQcsG*?|j1_?L&x(#zLI zY7*|M^C(gd0P_|Qk6NR4Z@Q8|FWU|g3sQxdWk)l!Am(+T_^Ps>stQL-@Fm4EPYtBWC*qPs*(OCzDhq@`_10$7fP$8 z%(nRg31nGpb~C|~gUD#9GE6)3b0^o0`4)pxzXf*&pT=g=U*ThuNj3(2j|Q&J&G-zQ z*)EJJzrqNghgD<18I> z<9Hp%rQu6C533H&$H>SDF4|JdlYN10Uz7?}Wkc5hUHFhGmohFFU#C>7aXWb{U{9?x zj%V^|XqVzN%Xn)|fO^)}?JGM*eMWujx!FQHjrs#ef!R#9oeu|`H79TwjMa?h9m&^z z*eu^&+qlAb$3foRcnAjqXs@*|a0d)m+4+a)k)0pgK4VL^*OzemVq1o8Qr9KTtS4FU zRlK{JpP>TSezQxv9`95F_2_K|JJGIEzy%N!xjH_)$%KQFsFlX*#Gk9FKf{e#$4wv8r`%a#UiLupv2ZjZ~xcITYzLmB6l+%yUu*n+;=P|^aI=!LJFiFjJVbG9~E4OaLg z#Dc62x>_uz!VF5x+Fo`MF`r%l?NgNG^YLokIb=bA4}1UAl{t}oukH(ya?w?I8@2Je zA=BXeHR?~NtNHiWvD*Fp;kFzufN`1(u^6-Eoc5zZS>$H(R>7H#t=MI2owL}7pU&@n z4mpQcd6pf*?4k6yvPXiUbw{=dT!6=FTX_PL-*ynd=_=nV8wnotB%9}hJCiF6$NU;l zpg3C(8zo;e6H#*Dquga1-(Qkl7F)&NwyATsVP_FUHX8^IiJTA{t+xMqFftTdgjSJA zk9X6X^Aoc!KH~G&=aGewUu_LP!)}X>b>lhNB2>h-cd?;ES!KJX;fkXl?9AcEbBB`w zcoN+X8-0`?NG)L3KPJ0#T{b`0EDK|8-vQUdn5s=3pth-W5NwR6p&S4bRO|h; zx1GlMneQ+YXoA5c@ng%%mq5M`-vMo5_?(#>T9TeM2=Rv{tXa$%fNbX(ZIprqqiSD?bN8NPXQ@9#_HiCpGWRGiv~#kly@e*#bWSnY z*#;}!IoXM*&*NY!wfb;jebfa>&%l<^be)BOfXY*xZ8xs31Rc{)aF0J&&R*XT-^6u1 z$!~C7AHO!z&6ez&J&bfSr_mGMtY>^7{~L1_sjGfYzu7&!)yezCH2jXBK>(ELFujC; zR0!>JSc77>F`34GA;FEz2q{5H_toq#W!R!wQ?<(U+q*C1np3Fzis4=^!X)OhDwfhK z>{{*Ird^Q`85UCo^}TgVpciU3TKud`plV1jc1!Ky>^Qk-1p%U&zIPFiWhXk%nwOxvF6aHCHnep#*OM&npidbzaj$@pl( z7KgK_l4)`{MUgx^T@mpYNEVep-njDym-Z;H7~_j<(ISmz{$?0 zET3)@y25Tc8>>P)>?I|uH;@fX=Pbi56J>_gC2<~EaYYEI1{=M+h~rwe*#QyTYWW~Sn=M7IT5m9HF|q~+he#wUSYU0?Q)VM_53;$RY2u#1`B@wP91Vk?MI)C> z5-b>tNrq~Z8bc(QQKv&sO$!yJ0MwxbrRuifaI{y&rY87WuU29}2(Ihtpe=MFRn%u& zs-mOe3(YoEc)`JRK0dwY)~mk^q6zB38p;7L?w#L{pKm?!CSQeWDLo?KH;E#FUY+PLl&pr zOOV_q09zm~6kIXM+;vE_0V6QW147&PMu9S#xi2AH?GRyXYSil4=yl+vk(|Sjqt{D9 z{%HDCPDH1=^g5#*FLpe0$4$vABoBDIRs4*8FAzXd$I;b}9v~$-|J$r>i z3C(??Cy^Ti15C9p{V=yRJMr+Ed#JC^O@a572SOF$ffHii3hreFJ<#U`M@HB#PNNr= z=>41USpn`w_B=cW7aC5TmU6B^2|(FDx4V6*x4S>WWy8%zz4F5x5%{o>j(XUJv+oTk zZ_Y`9`&tvXAA14+&{tp7L-A@twbf5ad>I^1Xj4ZmhiK)KrJUoDAObaNJhE&nEEu4F z?g#!5DptLXTod*Z%NtzJrVL79Ec&pO73DQr5khK;%96OePo8*GzpffnhD$Z_3!&S4Uvcq7eHK=p=@o0y}z@WsBQlwFzlodzy zLXE`MmmG5TIItCcF;!hp(< z42s=X5+xoyA0WZ@SjsEyla)JBhy42V@79d~e@bDCg>yFO_*bqaUP3Yw>?YzI#-0xQ z+L~fd&gMA~Cqyx7jKUTov=8s4hCr$ykzk+>!d?(dE>Z0yvA>1>eK%3%m@XsF_sH}B zm69V+q&IZoX0F=!<0;tl*vg;CBg6Z-S;UNox0j&s1ddF5)8?xxtZ>viEt4au+lW}7 zW0~B0g3U~o7&O|9$$$(5<#EJ12j?KUiWpBfH>E#>h<6MF8h27YnHKB$z?SsuG~hdp zN}Ju!cjfCr=EMFE=q7qd)9GH19N2s45hMos2QC9 zdH^?^aS>F@NyNK!%t7bj+LUw7w}3FVaWt{j0FMsCme4Xsu0V}so^Pxq+`-J|`Et}3 zYeIWv2$!<3s=8A|;K7u2`ky^x$7FPIhMB>J5wAG2Z5+RSr$B=eLz7-9J@F_PZHMiH zQ`_(x%Njy@)ADd-fKz@-uMX;^Gs{64FgP{5w-GKHaD1HIs6Z!HMv%SHlYsCbzZL?@ zDg4PVk)^jL%I$9QJpz;HbT@mi2d9R9J9c}Jqic$2e6P?(WNMQWoD*b>TJ&N|)yroj zz^0tuM#y2Vn6oi6f|xdoK%3)bZR8T<*1&^q#!(fOQdfe9#q%&&+KdrY|*4|o6Pc_Q-L>-Fa`X~K8ezR zBlbG(gyr-}?|8M(*W++*@_uCV(Y`(DaU$L>g~U{T_IFoC_4&GhOvzf9WON>ExKY3C zZ8Wp#D2>srY5Gd;&E~mj(ma2a+B>6A{aXtXAk3TxeI<}9kNhRFAb>){4|0jweuL*Q zHYD{PCOAY5pf?65T3b3tzr}>5!3NvYcoK*8b@lhIf?cgSV?@%PjuTvoh5`|-pmoN|Ll*N z_Y$E_B2^)hiX1dh_FQev;LZF>(Lc7DT`&3He)s*4zm@S1fBe_qeE0p2|L+%H^_lB_ z>wKFIlYepPi5J;_9r5Xil8DH+`iTA8!{vgBr7@u)7f$Q_hUD*ih_9ntjZX%;BTOG4 z7tzxk9EzDBP4*9mvx^HKwIu4NBG!uX8-ABjX5r0@9xB8QeO8WYk={)r(*Ao#!Rqa! zBOsZ7I>~>E_YoQ3h+K$9z|t^%^h-kJX&yVP0CYxB9}1aw3Q-n@__O~}R?Rvkqb&W# z0Lb6{EU2~LMpT?cqJHyFkh2`u@B#Y(baGq6_TgT#sHJMqeg_wW&FDEbVjqHHV2i~}zU$tY%q8!C zZXD<$sD^M`$2Cnfpi7h|)g|Sj_Vs$8GbF*w){iG3S@FM(mr3O0{qH2E=sQHJFu6oU zFZ4m?w{<&l9f;#tHzrR)e3z=0A<0MC00TIkj|Cj#E>7p;YsPVOi{$P87)bknj9TEZ z_9w{+_MMnlfYS*`VRf;g!1-85CM;(&&L@1kKL)vrdUFIWN7F&i9Avb`KHzqvv!! z6qK>>%^qVOR#=D(U@$`s@hQr+j-4|;w0;BT$i;;Ip)n+4-{BiS76hW$Jz2rx1AcQ{ zExtYZ8}$IW3EC+HW$0mqO#Jc+y8}2n(D}G#qdrnU_uwF-5xHP?AVVcqRV5$K>p8yt zNWL~39G{NNZVW>`x#vS&phHzP^n*c6OH=Wn(np6^B3~5tzL96Zwx-cFq&-t`(KO%U1T|}Bjy9ndq zvuQfO!_Oyv`w<@%LAt%U&jgkk8vP|D2ormoPh+#wIQ^ZmL^JzX6311TI3i{2c-4Uu z2PPQ3FFe>uF^XYk4&kAp0Ehd|3J1+d4_p{!^l@)07T&WH*Lj(Jlzc=&bu$+SEEXG9 z*_Z%hB>c!hW~z^95j?Xz3aY;TXyfA4TL1~2Gyq?FBuwY%ghgoCyS2~^pU`N%32{Cu zQhN_#BB<5{%&R6hB95cQgm?)Ue{sB#A}q1|gDijqtg!D#^2(x@qtDaJ7bJCyi9+gR z&!lQ&T=`@*_?BX>9M-Ww&0bO|7`QU^4Mfqv{@=*31!@g)gcrt$$gM**T96M#af~p- zmXdXz6cdnia&SeGQ`%4|0A~bopM-;7dJ^eDe-_$SKCwXBI_6nXjjK)Z;q+Iu|`LT!i;!Y5Kl!|=@Di1B=ln0Qa@^L%E1=5v5P z@v!EqFatwr=oN^iP%?>6+Z5n1J($dd)Ql_~U)6bgpV=M`5QauYS%BLjJiuoMsb(7c-qZCv37TVPNi) z{B;~%wZFUDrq=Cw+X3zP0H%c@WAexlqLTQoz#$&r5*(FBJ-I@RHYD{|3Oi+XU{5TI z&eLs=-l}lva~wUmCQDc}aZdznb|ut?Xi_{kkU8sPAu@!8SpfR|$teiyNNlijC3jpv z^bQ>j^qb8@Pr&#I#4f=xUb{;0vY3_$`Rg>i5}1n)=cpTIovl&c0JQ{jXH&!i>#)9e z!@#LGm57f89j%TMYoc5XA zf#aj#hM;{-?Ex*uktwfjFjne`2sX8PW$;8m{L zm|~&Hg`}N`ZIt%5CTGM32$WN7T$w{2=%m1z&Pt*l)6UbC+bTRSFXd7A>nbm#tGt-B zi)4ARjU6v8Ne7?u#8OzbMlcVq-TNoDI9QXPbT&seH+;jochJ2tA4I6H>5qly7^5?` zvkf`nXbSE-niltw#EEdA@l%V5-AzRR197ql9b$H)Mod@?wt$cM$lf?-n&;I$tTcw=i%Q@qJw}~6StQjxN6Z1 z-aMGWn_;%YC46OgF|FA-YSG3=)dnvjq(g}|8yrLxO#^`lxD0g_)fbvOjZ4a7t`@p2dXA>53)z{;73=33t{vN;$qSO$;7zW&)VELLOQXgCCSzTs&?|FRQe=6-UT6}> zVT*iXz;emUh`Hb(vAVgiJV#WOR_${=?pcx^0W2r^yd+mi8Z+pGYW(mIk`%*eWVlyp zNCTsXs~xBPXq*n39JLfq+NyO-WD)^gXe6LM%IE?dMC(D999RvadS`N8WYT&u;G5ESil0gciZa~89Po+S z$6C=K?IU}2F~EOP9mRmr7dP`<%LFS1-LnK6I};~6?3>bcqOaqr0}J$|OM>%~u?9Un z&f_ee6lJhQ7z^UA+6*pU^_YR1v0^<5i^>NX;LzAO?_m7`mrjSNrlsEM*ctGp9Vhda zvDU`WcLcpa%yUGTVVRZ)`pQ~%6^8Web3q|lV6&Kxl!J9C2DJ>jB@CxD*uKcFpcqF2=!c2Bhs;by zgD4|@Ewyod1&zyb=!WQAC9rdKu6iRRlRia(^z$p+RQ?c zfQlcE&?F?2l8YphZZGf$bN`sy!M~Pvovz;psV)^TDxzcI+2Ds_8U4q3l}xerqg^xtyiIIm6)l3_fF zlOloQW5z$u4$0nPRbhN`R0~TC4!!y0k9cILWRztzjJqE7ig!0 z^Z@-h2DvoPro6XGL07p-=ihaIU0`+Twes9`f{fU_>FCAqKuev*br8*$6=#D@5IF!ei&$Gmv$#KjU$$LxbS z?nntrWL)=(^Ext(`B8>F*S8;I;=SEzKggzt6$*C<{b{@5`GbCH@*eT8d@4I#zk3<{ z!8EtWeYW>jhWF=PGXBb2+UZsgxLqtp+*gw)!Ywj-^%*w-vZ9$ZT@r%Lyk3 zzMMC3-rEdAZ9#bNxlJSkG<^4nbM%LH^37H{(ZaZ-@-w@e2haTpt<>90>oH7B=~*3} zED6)U##ee{u;Nsw!yrOUAqGbxg*6!lz#h0_8%ko}^01{c39g>w9#z2t$6=azb#m!Q z6e-EC1YbaAf&oqp+)>c0?zDu$eh+@HBAH&rAh@`Wx}&$^-j^s{vh**-SMy`NMUHcu=UXyArCxRau3>YP{5krn0rW;{Jq91`X z6n{qL3fsxKO7u`c!Rp=^2|NjifQ~r1j&xW*y|!ETjX2nV$cr9DY#W|)wff9b1yR7D ztDl?*xbBE@^%9+q_Z_LJlhu%s{`;hUPJ(>=1e~HM!e1auLaz^+UVbW1eIGc0xsa0| zJuxbRUIEY!Ln0chn-*xA)mwbtb%p01o%28vl%ciJo>|_3!vB!Dpd*0Hd*hlyo;FrD z-dQF4Pc&yu&rAhUK1YAlWd0Jc&m~GEc@>6j>wPMFGVm)3&%ojTfTNS6Qem(aj`?Uq z&vR6~fA!dMG6YMv@feT#$a)_Mj3M533g>NPc$Yb}C?k{4liw1D)?Q@GLh_KRn;Cp0 zgJKBjVP|P9ODBB)oOLM+@*r+OaY~enm6|<4e$Ms&_N&LAe*EE&|NPqvLM8Jb{_XpJ z{PB0c_{tyGUw;4nAAbAYZ~pZcU;XgM|MQ1`+<{dS&}DAm?0wIxB?d2KOwGAA63^Jnqlq zI6pV0{bfVi-wzA=rRw*0!jpcf>Rqs?1ur#$p(cpbjGUS--SNGnV*l&+zxnQ;Un{oN zz}BxNd;)fAM^!mn<^XoZQ|~_a%`e-B5ZB^vu+?+IV7&=*^#uOvF;G&iex|4khV@+G zSrZ;>0$oM_^Tpi&tp$%YAX%2 z%{Cy~0#qxnK(-y|_5y@k>i_fK<0}Yl2dV8Kwgm+CoDpK@3w&&cm+k1Y7i`*uTU$VF zPXoI>F7TVcaOVq1?gd1*Jm1eZ#-Br|O#rq9-?kveo*SaxALcU;{(@cGv28o{ZGn$HH+b2(qtAA5+Kye@kZn8gZ2`tTH{jg) z0<7DCck9Fbd`r9l+g@>R3oLF$mOVG*+4+i0TY+mkuI&Z)w&UU!+}v}8)t#@XyA74M zKHO(oV!^zn^QSOzKZ%(W`0TlX)6Q4$+752p!EZY_ZU@he^9^Jt(B1ih#oM8J%VT|R zbo|dZul-e1*?+?NkG&U0WcQj@m$s2*I20S&Hz!dJNA z1VvmxiaUgHfj92Z#}ybkK_+)N<&L)8z?eH&^A*gwG~3U+4p!{qf@<6#j|&zuJq(1n z0~9Cd;sR-W!8 z$r(vG0W4SK-ITh+=QZ= zv2{D_ZpY-Mfz?}4d<(*F!Tv3%zzs1tVF_o5;etI}P>Bm(@deB{BONysFPIoZsj8na^t2?N5#=AZ)6zq+S-B7a^ znsx=*F8JFCm%HF~cQEgY^j$%~Gd}pn4KH}&7qIb!L*5X|8-98D27mq|-*%@n5OaZO z?)c3a+PTAVZlunQ-hGlK8N^(}b62?sdi19$M?geu(OhBFrNLMSe{#Tn3eqa0`KbFP!ayzTKg@GirAO^sZ>%8wI?egLmlgiYwkh#|t8P#wsr;<{jcZ zqn}q;^n#eakkkvpdc|I^sO%N4edD+%eD{L;o&n)APJDxqFZl8acfR1!C!G3)UEe|N z3*!Ao!Y>H<9X&te>KDBI1jL{4`7><)1=4>{Gk?YGv;a0YFy{{STwtI(=yJtmZivkl z&ACH8cO2*f65TMQQ+40rGXCxFfB*fz{^_@m@BaN4U-kF$)#JOqg#{|}tH%%hPcHWV z@t3qV;I{eVC+*G|vw0&qFLdXIt(;+(7aa2ir@7-eXNc#H{@l=^R;|CaRj|6Tc1bO( zT^jzxhBDgX7HKFfUfH&b&7z0f8Bll;;)!fwViy zb_U>1xZDl0y90VRxbFf5UO>V-f_MWMZ}8(8n!JFPmsa|DXWW4JK4;+XCt-7+Givu- z;JgdYcf$WJxZoW$Y`6Mbf~6b!cg6*;kl_VQyuo=_tnUN@o}j@KV0Zx%uNdP6emqs} zGbo1%9lWB3Cphti-hB>4?>VD(ecmA8bB717(BT_Wyh4pv81e;Be%`RanKxftUbMe&~ZoC4KXNa=lf1fid z_}mf08=iPW8}C@;6{$R-n4bgNd@gwB9SVI{{4?RgpT;2%kn&F=n2-9L(ZlDCEZ%U( zJ1Tj@EN_VBaWYWP!~suu=mjNx*ZVW0#DB=h{8z!!{v4^`7lGY@(UY5{nDPnKan;_u z_Rk>D*+~x$N6P^012gj3Qu;I{o;jWAAmLD#q3u%A!R51o)Qd_2v}et9d>>PccZl&-Daxt0#qR6w^6^ z7UMISoAdi#1;*)5)Yp6{M?HF>+2VyCoU~ux=ei!5DP`=JY3&kVS^x2Ut9%7@M3R1 zpw@x<15hJ81L6UF1_DUG51r4gytzU)JbtD^m{)4*4~%d(q)R|h-S_Vvvv6U`&Vj=e zVnS%Y{~vUEbS(~-uJZKrldQDDr)p><$neT%Ly6C^i#W*NUkX5^q%E?tu^FYAE zaN^7kknq5rFv~|IeGt|UR|y%MJ#-_VTiJI-K79Cae4~o|@Z0Zxe9%W#ddKP?WvzX; zXAKuZ{_63&-+up3zx%O&tx)X?RjwN*NaXgjCGzB6VguYY=D)4fyTKBGCkV$Puy``X zqk*Bq3!IsZejG4aW;w*lpls=FOL1Y+z+mV;9fBB#mkrlE)^#`zKf#M?+_ zpa@7Lvjv&YQGALdrs-qR8?h5eeo2`MKnPP3DW9Nb&C7_3S{~@nzofss^?v-}H-Grk z|Ni3-|MH8k{^d76{_y?3|F?f|kE8$VLuRJe`M-beE`7GU?-HHefbO!NE4^hf{d~T3 zct%I*;V>`h&zDW_fjg4>Z0Ubv3qe#K8_}45@=o_K+dEzqt6A?H0jeJvVS~(m7%+zP zLA_GBpg!P*s3o!+Vg|?lReo@!3-#_6WE1++XJV*{BipE^+t!^f6AN8*L+AtM$Tj7m zAU`EaAqazR7;u@3C)QdJv;^7--7rA27OL@0_`KzLezF_>k3aq2fBK*Q<^KavO9KQH z000080Qy^|SWB^P`x}w~0HTrs03!e(0AX`;Wpr~db9QGhV{d70Uuk1+ZgVeUX=g8G zV_|b>E^~HgRa6ZC2M827W1Q zMrKCF!^0oT-T&P`{^!5F{nM}h=J$X1r$5Wbas2G|cfb7A-~Qe2PwGGa>X-lY?|=JW z{`6{kfX{e81pl|L6bq@Ba4o*T4SNKm5r*{6cT~Prv*1|Nd`8AAgl{N`F<` z|DiUzc>9|_{n?k4`^RylTRKXw29K^t&INB_y4IM>!XxgE7dLgoIj-2`#tqm zH(7=*r@4+>YNN-mGV9&HjyXS${hU$rEhQS1<2LiYzS6wavHv`F!_xMpdh}a4j(a+C zzU8`~uOF%9+bo+%{oZT8&0}|E_a(3VairZaua7b6t)$~tSHGA2g0c2}>!8nlw|V{2 zujjD-oAu{^(f;x;fA;gYG3m2?jQvSHkB^k^Y3%>k(x)CD>g+f^xSBrpJJUSoN76tX z`J=b}(Y1Z7vHLvBhdybJefNHEYZZDO$46_MPIKSC2O*b_w4YvQrrj#-L*rg+`smOd zx~%oVpzQ&NZvA8K|Cf5XpI1`*IEtR%Kl1)RkKM1i`?J5M?C0eDJSJ-QW9>Kx|?x9^G`r@NT+5ctd{rsrLH-X+W00{d!+N_E>a%YvFx;FIxRQ=SKV9o7<;7Mor(NF%sQAs%Co6aMk^( ze(e87&mToYl`~Vfm+42E1AN4~vGr zl>NWj&%K0}_S?Q*O=}9v+DoQr>h^-$?W-1E)>1mSulA(bm~D@i7S7sDi@&JtFVk$# zls@*8n|iv*u@~c^McMWu+dUb($66$<@1E-VUd)>JwtKiVk#o`0Hna#Imo4$Re~x30 z`@g^JA6A$)^PbhB&+diMuX`4ThNbV7o4lemyt-aBEc@j}D|XLj(lFHVp;6h7(dd^w z3viFd;FcqOq_kV-!)s=*g|0!``%8nF_vGo5$DWMJ`d=Tb`O}&6y^pl!MxLJJk~|c9 zAE%SvYoZVDXVZHKc6V4~x?e-J8Otj1{5=!>*pr+5elb(=0gVRz(~$P*Nmu`e)^zb` z=<{^FR%Vi~hu&KL};H7~hfV(NU^E3pi<_Ec(xY9sf}G`i^h@B?~jnU%fz;0K!#Gjp4#X)OER5b9&m zKG#{&nm54S5De{pil%PAT*pA4n@5XPFAoV*F@xSSx3`-*0V&>8*&W=i^JQvz=+R<( z+Pka7tDBa=er0vns_xz_ME}$E%~r>Ls8;y?GHvudhQ*(qm)2Bbv>2A%@p*UyYt%~j zb@6USRWIB8uH+c>y?x$y#7}IWKEz#i%1lQMRvRHsoU+G7%c?K$pRy0g?w7H8HYpynxi8yhlR6*A=24v4)jUKz zM}66%LSLSRQM@yZvtebw70f*nixIUwe7P=2n0HzW263x`o7Y8+%QSqu%>o zi)+8X76}0B_9uJR*P5IrdzEhiR05_15#4a_qnaFhw~d<)%cieA_KWx0TBiuw#6yl| zS!2K`_VDRH$zntDm4)iOXKru2xgS@xI1ine`vGaQfV~Gd9^fBgOLe)}JP z`N?474}TK+M>?K=`I}$-$W5{ zwir_O^)2-8<-$nrMR^@uYdWQzxk8D|Lx!W^56dbfBNx-=;JZv6Ux3aYl{7t3_yOpkYG=AONmK&OnDh>biy5Hi&Z8ITF z=Y2n8Z>6=DPTr#%+bD0wKlgb?>oT|On6#=IvVOez^VcUkDEIo8%cK4Czdie_Yk%^) z|D+H7<$wO=Z+`nXfAce|#+Se8yJpe?OSicX{9|ibb00>%qji3?y`Yy4*}YNc{;n^!CC}VSuB%#doLRs^XHj_>dX=9tQZ!JuM@jA*KdN8g_a>HgGnZiWA$`@zH)E8uA}Ab(w6_4`1#r8eQ4|%e5@^mZQgcU zTUO0mh+Rn&zK2OV?&c$l6|(=|`?ZTx9vYdv={+r*E$B$!vccMiNZku!X?5*WX0^1p z`!KyWx!G^dKkm-#!)M*yY-sy$vGm4ML^X~q-T}|pQ+lTdVy(wMOgG1&hkK$ojnH|1 z!KRlqqP2xGb%l}G^S`WAi!obRpQB^1>0Ca)cAqc1 zd4HUvf&9PKYmHXR$WTeWVI&9i=MamyGxl|zSG1k#^R}3`cRga&zL0B;~cUdB}<_|20Pl1-7G{r*cQ_@KT|UOruGMFaY^x$e7p~q z&28?|NHRC?+jeVdAZxJe4oM->P!0{?p&#={?fEg*oxkrzJ+=6>DED(@jhy@MyI+2f zOpvnZZSJLBq&;bKkLTR;rC!#h!(+?edlBm+_PEDc@_7bCSHJoF@mIh8 z)o*_Ji{E|PW`F*#hu6OzUjKS{{p;cNuZP#a9$x<|9$r>9-;D&L%4E8E&fcxE58+r@ zk2En89>eW+GQN-tLNC zU+9)Bh+FO4zqA#)d(1oxX^z8ov3S{M zuj-$--2Uv^D{b74fpjx^Y$7sz$+}svD<0=3>Hwe>ueRy7#_(Y!oE{vUAcuRecGF7t z@LFQCqAr6Iw&lIy09io#3-7NI`Mvw&fz6`OG2^+s_EXvwsW*B8`WO3xQUat zfJnJp`jcQUXmM$o@bJN`4Y%C$b(6c5Y21Hp$LCL+AN$AVbqHDAy_B0FsaN}(_D1G) zdz#t2>ebQ$nVRc1`Ekd=cm6GN*}mu)fX{*Yv%k>4>k800y^6m+e*S-NjQqp4>CIV& z%);7wd&%*bu5*8XPGUtdmg2?*xWg-X|K@7NwZ{MwvC2Upu=He%$lUZiby_X z@on(UDdb3aHfrJJ~} zw$H+AJ>=_R3+xkc2prIk#Jd?6!xwJy9}OJOTRN2zpl)sUH6%#4y;(MBdjRD)B>*{_3D0*1s=d2}R|VMB-RtWh$9)@39}xNlpv5CTWdq-gRG7>g#D#iGA-I<*`0!xP}Y9u`N&vxy{!&Fy-V z0`)v5^;BLxj+gOzA;caM{G|Dy8N;*m(7IA9DZ5>}bI{!`U@?-^JA+o` z3+>sfLQs`M{zjCb+lh10E>3|7fXOh2iz%6As(W#7S)Bv?xo}<<*cKA*SD((mF0g;r z0%L%?Jl;C6#A>_vqaYq)!qUU`8ajN@PjJghClcgc&Whb_4W_T|!PiP!5PSGPA3DLM zXi+cZF|E?`HWBd#E#YzArbB+;lYFL}Kku)9<;>kTBw>rR21jErw9`?|hyDM3BOLpH z?cd0=aEc_jNX2}j1+AsEkdKmFwz{@J)GVFTb&q?u$*8#P{*7`|b?ECE=%IBOZ6|Gx zMK-eEW#MTsgqsA-g-V*XmLKA-8p=g1uehF3k#uXbD}B$#XR}GO5*Msj)wF=R?AHJz z`25Znk^C=ft$%(U5FKvE7S{LUGit1M2Y9`8{_0yy@6C9pJ76dr)ts6YKuTKpvbz+x zBzQxY7?aRxWCv@2J7oSq36gZb_PPKKz!$CqJjT{(ryu}H<}L{-TeipU#X=C|^R_gc zg&lav%&EDmdawq(<4QmF63k4izwL7fwoLpN{d)T9T+wQMcnETnwqy90L>E9oTl?M% z7C7Rv(pG9fw}!ubuy!*#=LlAY{>eP97IzuAa=!AjXX!7uH1&o~xhmBB34?DMx~5-h`>Q{iWYWfLT*ME}4GiTlXNGX#vXThsBfy z%p>+Ob|g#VKth<{!<5;-OcKZPqgfS)jJoCa?BVB!%%y+dutq!XYkCNKqmgYtNJ)8k zY3b7ZK-oVVzHF?be^*g`Z`0XB5n8f%3%yb_2@Pv-JEf4huq3rP@mz44Z5FVZn3m#R z!K;L3rsHNERWPCBHU;37aZ`_|)6z;uL!8|Q*V%>7u8zOdzw5`h1T1lHkq;@1LjT}< z(1vY+jniUjHigy(mzE+Wj;$%`#)Q_^!HTBtL!leqERxp4cwfzvO*=pTg6pnPedi zSwVWOM|_+XCJr-z)0{KwG`0QD8>pY++CC7|0Y9$(U2U__Ub1wlzwU!XoC&95H)~44 zzuSr})xlb(#ugxSLW@(j+UK7+3xs8@?B;6uQJa;`wSYz{9)!(FLyvSayi~G{_hk#< zuYL#6a+Xti^wYF;1RZx1B%@@XgoRdZ3B7KNIF$6;2TcxP)rSyLlw{8>ZhVB?>c8tb z4z$?4{W#L8J?Q|vy$tV9SQoc;AU2PVzJCyG)8#oNRAcVHNgC54({Us*1NK5(37=|9 z6Mx+UMSMeviK`s7`ZXQckZf-k(vm~+IFEnf>zPr(JO$>@_V=hWdi9o;LdM913-sMD z&9fW}YYfRx`!5}wZPQtGJ3s6vMb8e0I)sXEW@zfjq1jkwusUy!nSuclhjdI~Q@wt~ zN4J#X!(ksLI<*cN2m=tV^>oOKx$aE3n)mfY*lNKX3f4H!65ZZ~T{XMc03LhYC)hF8 zwoTVCI=*!N`KABi*T4Ad|9IsnvJ?(9J?VH`Uu0~J43?$`2inSOv>kv$gOt)^Iu@p~Xf_Z*s%^Jc37?GJb3(}kOI*) zG3ToirdTo6E2^x;^D)K?g)#0nbRj%#FLTU7>lnf+HiVe(|f#58sMrl_?Zr#wMCdu2`{qY~QKY_`A% zMY0Jm?X!D-bY&KwYR9p6X7PePIDZmxn&}p1nF8FHt72qYh&_-WYGeOWJO#jl-~hxU z2|s z_HTaz1Jv11$9#$yO+_+polb5;8E`O@sOyL0g9K;co8!)}7f*kVxF=!27`o-4m%XX- zd^l_<`NNL#cy-)=c>x4Gh$~Enuq%QqTRV{@G^+Wb@VP54GKPn3g|0W^9hf%e`MeQ3sFs)t|pc z;=4aV0{XV(2(6@G57B|s*q=InbgLhHj~@MmA?!!a;X8#`8sDSOwqL)zfd~|A#3(6P zd@oE{^0Dz~!S@HjNy||NeB9@~U*B*EDJENMiDrqgBBGK&COAAVOP_r~Dts}D0r-M^ zl0Ce`;2U}jMe(=)pcdyH;2snXpME4(Nx^raIL9!1$!hO54+c+EZSl|JOE8pq^_-J?5-NgMikTORmhA<%4o^mu_1eECEuJW!Gk z%is$)_&0PkRWCpN`VT}qTt|wv)d$OSk@%uLjSsttvYmW76JBm+^Z{sSG$ktDedOJf0^dZ*HG9DPTM6Om<4lJTv z{Q3f^cwm|bAED@N#^i)FeEEbuJS@CbKCxt&2bmFond#(jjp*|sTO+3R^Hv`7j;XM} zwN^cL5FDTd@v`#@BOB<62OB$~LuJVViln8B zQY0C~X!-RGpz&}f5jmU{)tbLUzhET3yuv92w8%nqyQ08UMufN-=lM^#HR~g?`a@9 z6>2}3oUX}I>}%G0pH08MIOn}Ix>3o;_sG-9`Q_6q`oPstGs@K(%xIGZTFTkMVN}UV z0OL}C?ekWB<>`cdpu@>6PT+C-4t+LdaB%xdNO+JSLOX6BxQ953#G3G3FLu0sz=r#A z`iXt7*Vxm6+-SEyBOSvVb2T<{udF%ZP<4H;q8Hb*p7QFE_QGf~(hbuZ4dHy?FS5&L z=&7CkycI_M^m#uV$XEcJ)q$|8@nbxSx+|e8O_uV3AoO`NJqq}VIgmgq(lkf@9vw|N zmFGFE9K-U?%NDY}N6+UdK4A|J{X~`4si$EqAlNxF<;p1wlaRiuNH%@msizoW@xZjl z5=Rb>Kl=#%0IH!ymKjzubHs_?wFr7}o3p78aGNh4c5i5lDFXw7!2u(YBZ0#yTCy!( zCW9m<(^0^Ee24Duga5=kJisorh|F$r0K`Q&;S=OxhQ0UOmUZ?n&5zfMY`GVd#{)Os z*7&7lRM`6KWw=3pd9n@?!I#!n=IVFo&&KercdZDy9>?v;QON)#b3|I(6a1@!>)|Gd}^lVT;8T*=5yH2nICqj(sP zGwsDWkiehVgD)?jg$D^IlG6?;3IUt8Y#{k)@HfFJaOZ&Yf4toL@*wH3dqsvZeDB5f z9s1c;H@?6y9+=JnO31~;f^=Y!GASW2+O3wPj6B}%Wp~;?{e!;w$CUR$k1Q zA^o1szJB_p-*@7mlN6W0Ir)f;#;2R-yvzn#DkZx6sRzzJ#RzGkmwY2 z@1}Fm+J12(eE7s(3`~W}Lj+sX5|wFVewceUdD!Fy%FWzVw~2Qe-XU!^v1rQlaqtc8 zhRBKb-|I{$WPwRA@9)sjQa1%M0E~c#UAZne5b*km)Tc?wRvd?N>alz=VoT8e9L~HUbE-B}BR`Ym5wuB?w3YLYa)=(~$NfuYTQ#>iL1~Dj z3Y^XOnkU|6H?9P@Od1IZHNcJ(tU5T1m-A~eWN{~a#8?!TCXQh32*j`}9WB3pVq6}e zyJUG&t{=FMPFm=_Cm*(ylKaP2oG0Ss%L@!eNm+0|O2(F{XR{WPjP(A4n*FF|7)K0! zd5|V+;R)!xRp7Efr;Xvupx0zS=%1JwR^kby!Sw(}rPD}iZzYE4Kn<5UdjzenpLc%! z@`lV2yUnB~TmHfWz@###)$ExdGD)xqROa(m7!6D}kI<8`N^es5{O`~&t-0Axn(0)s z$+@&ONBH}derb)Y-Ay7sXD^ObI10X{&$e)_!=3OkovL$s^+?9^4gJ{~dz*dx+H~{G z{nWk5uzm_}vFz>9&`%8&<1KSo(NJ8O;3^Jg5vm?5ARc9haZ>s{f{^c!cE6< zwbiO_db}S60bhEMHAlAQy$K3S>_SJw{};LHC&cN2Lv@Dx*(z_KUKnj}^_)UvKqWcv z{rZWhLf&9B}1!>S3!ABU<66bvhyAA%|$U*vTMoxif|J>AV|}VTHe0 zYkdToM+;m60Y2o>eo(U?)$Hp9JSB59E`$BCVWhJ!0W)&d8Qdd5O?`t?eYqg5+F@kD zAvrFaHv@3Q)oml3-y{S0J5I~y8$RPlcULkqA|rEWI0I5{G(%?n#A3;ukU(rDxUsT^ zRj?NaM^V9VrF5JaNX|RIzTm#R40M>npNWD#c!=N=a?B`kSDmvhfA@U^d3K$-YJ^`MKbjqlL!Sfwu)tds3{C!O+l=(qOqfKM=%Zve@q zgFJnQeru1~_Jn>}Fa~5Pi*m8Z&AK7s6^KEjLGWQcUT?Or^nyC`(^4Qw zh=dkiuCorYdKh($rSC`gtoB$2T05`2Wpl#bTylD3pMEcq|O? zQ);;Wc)OVs@PrRp`J17L!8M=PV8AC{$t#N}a6;R^N1tt(_j2lpT0+@ND9qeO9{!+4 zKZbJniR*ftu6*Lj5yvvFe`wq@4j@lD>B}o5EPND3b?MESEQwlM7-kP2@5*q-aW4yP z@?w{;{CO`1?-TQ+On;k$Nhr3vfh>)S$o^(pnJC&}i(=gP^@*vn3t8BDy$APdV3NL^ zz$GbTO`eY>>8N~TIifJal+|OCO)otsz!6pf6U&Kmw3Nnj+AF!9AP~ zILT`5_S}hJVa(S9YzN?0d6rMV%?dy?Gi2#sOsTw}#m???q|2_!bm$u&$o+5zfuS_c z**RsCLNxLx_Dmfapju=|1)5IgT)7f8Gf9TXTW8}Odq9#M=y zmy~M}yF6{bKA~EkR-zvTsGr}X$7w1z)XHme5s|aUVc4=sD;b2t_Nu%FgJc?y^F~C5 z0Cgc0s1X330UejZc{q<)F2Hc4*@l)XjEX{Uuz?>5m`_sXgZ4OY{Q5+5dArM_Bmg#x zCva6?J|S4)L@}BOsi%XQ5%_^o2mUNq8W!~DeaK#bj2?vcmdf7`q%U8vmi_|PX<+e` z_HoQG{VRXZ(25?Wj8>xoM@O_Y}{2Mx&+IvL2gTx61*mP13d&3$KN7iy>4{z8f3R>4B zIIcOXveumd9&H&oy(RrA!w-PDWa(V4ALQA$_vt_i6qOMWQku{=bkG)uNIjlyzP`e; z9^{Zkc@jGCd-Nx+>dOlfE6@k}T`Uq_$Y)E$V`Hi$_%I9Xq@Q;KA>S&Mwk zjie>$&T@r0>uz=04!O>TjT8WpvcE};kUYovB^`=>{|M|uu;^iX^oYd0-D2sPQ};~! z3vfyuYVp8GRz0evbeY9!q#Q{BC@Sj;2GbWlyP#~&6MIwiPQ28>9@})j!H1;;Y(&qV zB+Txhi`5q_EX$d`&rjh^hd(xZug??A!~h6ScD!KCa$wCqL1piNx#Fbm;~)=BK~o;- zcmtwgQn`T2uIRDqB-G4$vJ_Rre9NkMyPs9@3NO1es437ynxmTh{Nz+wT6H7FoaPQ= z1u(^2bZb%?S3pVg1bJz-K1kO+y8CxbC(&MK^e$`Uh&et$nGI~$AO%0_ne2HOxyBl* z4sjCA{76De-UY=eYly7~{Zc+9Z3@yjC({PP?WIQYnre%yraN+YlYD!fiLGtdgC19K z9!v1`d+*5(;2WvnHGY7WPr#RI1<09^9r-8t^*oaXCF>?SyIF^_t~O`K@%%0@_d;gZ z0M#|t^@=@aGsy)Mc#!>G*e;b|I2558I|0EI$YjBR%FYNO-=UJD4A49PW8 z&bxeohK7}~W+Wc(I1q$dz{V-FkGIgvN_bpGj{WqGSo{W<*lbdl5md6SB$+hKPN3iJ zM{l?w7q0+Ljn$d-pUg|cvJ;FIUX0F=rmB&sprA2z}H)xk}E2tup?N68jXl)(x?Eo zeZzy^shf~ujn13%g9SHa$6SG^Z*PY^yguKd%PH8OHjDI=+0R+=5$O~3AeSY0j_Ca` zx9h>}R`Q97i){_uUGEUvyHA-F2+L*m=S*RXy-Ssq_*{h@v*K%r2-$uJS*obMqV9eJ zmwo*_2{~67>=o}?LP$wQT~`6~rdO%)v9I@Is(weregl3LG$a@{?o4G`Z*h+2$K`(O zrL4&xpU~KvPS|W<-`>%&-ynYl7#iL<&mN6f_Ggct_hS(lCx#SMY=34Hv%|Ex5P>QS z`1v;WaU?;%qhi0o-M-zAFl`9E>}86Jl5ieth#-JsuQ5X|?4a@EfEh(!%F86;u@yF$f!A?#@_oM!X^gc5(#BPQ3~DBXceVhj_aPCS0@uxwg-fSUjXC8a4V5Zr1!CXi9jg< z$FN3ar8#R@jsUY};@TIvK7l=^>6Bs1u)br>EA%>M?z8`Q7yg>q92_`>w_j@hIzll| zvL9?U?&!`FMg}{%ofJmbB7;CDu`8yS+zB|Awjn#aGhkvll<`afYe-D`xIqyL)v7oO z!P`VDi^U1L(IyJqTxZ_A)qmVQQ38^NvuSXlqQehy5i%xaki}FPQd5A=3aM%oX;P45 z#$r=jbr%#_C1dh%hp~$6VIW0^bVCdgvtrgDw6UvZ%5oT4L^_x1+(dj|u^0Or0Q=k6 zW5(d4?#9i=hc1c=X-r5Ct8h%&WeCEb1oiFVmC&8M-!xrZZ6i?UCx!9XZZDEiq zuImKQ76V5PbwMFgGSK1TctgwIVJ5OB3EVUyp-RDC(zD|lmANO3!;Iz=PrKB$c zZ3#GZ%xnq+!kCU*MC?q?@wF$vB1Sny1A;12U3NlmGKNC5`GXF13i<#M&wYlNH34)g zZX3C&Mr5Zlo=PmGs*5&5@tK-xM0RG2sVl(BvPr#v2S%JT(<475PLwpwT`sPeAvuk;G-k$&v4Z$4Pr2HUqMpWv;s4Myx;0EA%+x z>1`5nk!!qNSu~Y6oB~ZpB*Bz>;_SR3(#4{419M(1h@NwA&rv$#QK~B0ouKHPo^~Z+ zZI^g?vc$8;L*DpaqxzfDQ{(Ke-sM8V7pE=zPC!d@y3j&x%I@li-DNPT?8utx=n`T% zS!v`tm`;yUwsKyCI2RNwl=YVgoVPFf`sKA3K4iNolCrtv+Kt_{>h0TrB%O-Y>#CEL z2OUxGs92{hOrIa}`Hhd)_x^D?Bt@kEaLk4C-_Fc>-(2pUk@%+;n=J$WnNLF50&@10x>3P2YNw0T0_4oGaay?(}Kfm`$x6Ac@ zp~t2Dyj`NOZm(H&C3h(xL6It!`w&%3=L=o#7y5erLf1?CdcFQHY=8DI`b&Y8E7kw`qTk zySx2yx?kG&>-GQ6_SgQ@TL30ZmUq&PQ;;bhmYfNrBaa?P6J*99eI0@IkRzItR3Te> z6J1O@fu_beXzHmRc76&?I;QiWNqmyM^x*Npv?WXqr2PY67S8Vx^Df_gT;j zI}V?wR&{X_ndRgg2c;{VWy|SVb0Z}fI=X0QG*~!|v`gwyt;dSD$$&Y~W924x{8=Xh z5~7uG)W@nnkK#4!mMVx z-QMXLbT&Qi?_|1MK3^Bz8Rh;?*V|9fm-g-U9r`uc_PH*cBQVZqmJI$xqEQq?^~uT_K2y=4{a6sC}Nv?<)gR>wZ`PqvF&k*AQc%+de8Xsa2HC zh&-`mYN=S)w2P@R1051ajr8v&Qoyr++ww zrXx6$y~LATyH-5ze9AOCan6T{i&NXE9AVe(R{ufsNd51Y>s_&7taB3|XNEuYib=89 zNVvh#eK;)zu27D0tj>y6nb31Z`|OiHo`=I$G-XCf>fq}+nv;0!umycgi!t&)jCa~~ z;$Koi+}_D{q5GxzxczbZ+Wz|ddZjPz%jLS~D#~F<4e4xGLGa({aiOp6>*acSr}K*T zBj|7?J?VEcosXZUkMr@S+dR8x%XO1+2k3ygO*^~0s=3eEe);*;-Jw3Z=yHTFQ5imz zWv-^vx9APYDv+(xWs(Be01k76Q)l>Q{ijKCj#H48M4riW?c8-Wd_>C&Y>u$y$h3oE z8ps_a4*9#o2gQa_3QTM>6UA9sD_WoybQH*AjsMX3hUEv(d4w&eI(fwD7S;1qd2YtH zOLP!;rDWUZl0&^cHWNdu=!~EIo4gyZyb7dSJuAUvSss9EP7H+80a%t@1WP=kUP=k^ zkJNGP!1yHa944Vwp4>A#Ym8IPNkED6(%n)M*a-XTFhu0jHe^FXtx@*lsDY|&c07gQ z!DT=ic5Ii7Np24_m%Xp}y4as|fg|oGeTZH=-M*#J6_&3zi#TOQdu0(2z54wvJqZl) zmF^dMzPG=yrC;;(0Fdxy9N?T7jV`)+R8#f~goGNyqb(H6iwzG&U= zT5;YBg_=al#kagXZ~OS`mv5*3HE+)CjbLa+DsB_7{` zTyJDe_c!vrv7s?9&$@Q~<=xV1Mti4^m%d1z1UvFcxA*4wmg4Qg`{Za%9v@|*3A$T* zYb~0G`h0rfGixL}kepprA2-gb9!g%6!}S39cou`^BB9@ zmp;x}p^}YQXZ`TKh$|a{&!@#nXy2{2cOeWpJoYK|ifHYX`zGSf? zZWRgQz;`L^aCgooihoW54y4>3QTONek~i!5X4KNxN4uy_U<`^?c9{u%8AYp{;Uc{( z=ge)69$6^-?ZYXp3PwR;ogsUjq3@d;ju|>QI(LrhYl69YAum!zi=L((8Gwfw`fQ(~ zJv!wpy)Nxr(DArveypJ5^7C~;4wL=tO%FQV-sl!-WRDhfm@6daK!-KsN#_gw-n>TV zj}r8}&|zwM(*1J1-rnoGy=E`Fz0>tVmuTOE&bN0uUFc}uOw!X=x?kw?@gWZb8);6= z1$}lWn-+h94)Hmf&*<$DubWO-wt!PKn6t1{7q9i~CDdiS#p9E&UroOYyRnni3DJv4m>uEzN z7KV*x#q6;ohR54!twBRN%Y0SvN)i$Pvp-=z7NSk)OVBG832=-Bicj!TiPr# zVw5abbp`{JGD+^VHY7cKljo3nVw(HIMJ5%FN!Cxa#!_wITppZmSfm_{C6O{+fcFRErhnP*`*9^hn4gVguu7KBZl;~`*&(0gw>!NVQ}r{ zD_BHbrv;Hf&4soKfC=?{m9$KA+YBIW%S!=dwoVtP6r#Eu2RjT}crdM#m7TCoW=Wo% zJ+WJ0rDWU62D>O&y9S-0QL;o=UkA?u4WtEy8q#V}g(EH-b4Ay)xyc^Qi=S4pWz-xKk0V4-Y@jHw4ZO++wHw}X%9=2Q=Gk0h>)*zxnJnG zUV?5Hy5HaF`F=fJ$Q;dc(C6b$dcD*6Y@dQYA0Ko%yBFlRzmgc`4#4}S=Y{UyZT@`u z`EXyaGnx;7jEyWuw+<#noX$T*!=p3u0}z8)6!!gtL|2&9iPSo*xsOn4T;fu-2GN)j z=2|-b$=rpnl z8_d~CXcNe-f0{M!i*=&7z;n( zNZyDFD#LC0GW?JC(F3SM611PWcX|HE8>Qi3NY1{IF^D1zevPWP}B=e31 zM$~*^|NOp^zRAFQhfnC7loW8B$Ew*@;qcfGngIe##a`KEw{+()Xs$&fx`hHgy_blR zd;h-JTb~`elhIIef~FngQpN5%NHEg8UAlA4&YU7MFo}V|7!$LR$Pt?y1(;8;oR(J>oxFT?<9>lIo8S(kJD{{&aa~0_aM`;5|}!;EXoNgd@bOb@}kIj?<)&OqL>R z1w0!uarC>G$0kK0bT1rzw?NOh*EK->=2D&0Y)c1HIziaM#*}(TEK}n(Am@niP;tQ& zFu2b6L6B zFW0Z{Tlb&1{@>94Gu!w5EIXzBYxMUYCex*Lx?cYu-2RXE=Dl&5@0ZOAU+A;_FrCl# zL8p)`w8}**Y8`r+was`v0SfX3MSB?&L?1Df&CeSt-rs$_tzgBzTzh=0jv}RK>itu& z5$8OD_emWtM+icqyJ;socyd~!Kq|=`s4e8?{@vo$+JJiY8T^f^jCdP;@uwawK6QBL zEG|340H0E3d@7`+?5!2?2`6DL52f7I%c%)|wYbl^w!A}DTM95^QN zkrMREhz65a(l4cSIN|_g)>LDG6PsK`q|tEp(1AlxG>8lVmzHVQStDzrXl(7h75KD<3HcSp9qx9SEC-j&vuT&CnwwxCVpuGGDJt&RYwEEFe6Ga#)9;KN45TrA7R z(i=+zyoVh`qCB`2zwa4ygjuB;L_C}(8q2bvP$S9?$N(KlUXm@xsLX_)L6TQNf!5(< zBsI)Inh4RO22E8Bh3qRUgy;p`=4WaS=o+~>s_$>|J(J4A(qhe523n zXXS@=p~w9~U#|BnegBE;|1IsG#SRRH;$Tr`pa4((LHgRhU9bN{`-mck+gFFWz0vdj zMwj=?<)mBCBbqy~uGRDP*>pP}Z}NnG75Ane0VUHaC(m&7E}MOuL%M(}aet2EbEumH zXjBfBG&Ms{h_7=w{%z6R#J$%B4dCwMx`_6>nCA>m?VJ1 zz}}@t7{6!lhqT@macpm;OWw9H!FR7ENA4sr(A-Euc8VJnH6=ZWQ|gdsfiwemkYii2 zkVD^|c2$ZVH`Ut92(s6*B%P3@?g-vHNP*(mJ+SWj_Ms@e;f(8w64;MdR@oG|IBh!F zb52m77I79HV4D9-8_*Z&o8G<+j`-T2J7?$Ky(&o+D1lOp%IV~SA1!A^$JaGv1qn{KQt{jbXOC|>rL;|OiOp@ZFhTfp1tQ;3dNIo)c)ZOorLtfS3E77yh`sRY6 z>lCM#7LRgZ=(rTnoY6a?Ac`apJ^u*HfxH2F{t@DK*rP?W@pXRZ+c#Bql-!OoZfs@0 zubBo>TcdQaHV?(Uvjc?dv}3py9I>)rFgx;VRu~5g``hGRO93f;-&<9mJD)RLQVa)7 z4Y^bGBMAA4)gS~JS?XU3{-`sSV&(Q_X(k6>Dvb$ID=B#}<)zNonnIE1_w(`gR5rV_ z4#LHfV*<6;7Xd2(sKpBsPS~BByyoU()U_1iS&C!+B%B}db1j19W5q7GQsA;@w39Ge%RWh3h^Ypm7llSX4*;f;Yjk1yDC|V)N*!Y(zR;T z>&y@!`BD$+PUi`mC7Kx@@^ajhgAyr)W1sP8hBFMu)i`uk?%|HT+rGg;jw-Da7qNP) zB4v9w@tn&padNj#;|I=lYV)~YcLW4zFDICmgokG5LXRNj!^kL7sK0(2zJk}@+?`~? zX0?904rK#O5tSH%*dcYLJT4{W?q`K(uH$f*M`wThF&xtTP06gc*Z(2u!X{13$HT>h z5Vns<(IuX)&}P|7Nw{~DV;z$MNcT)hO61CG87`+e#L@}4b^2*Iek^J2;|4GOnayfH zY?8k}Q1|YO(WR0u7ScuS{~YN;E3^1@n1-wKWl)f7#jEwe%jx5faHk?1A&Wu#}`EI{x-r zxa{rgK;FF;D>K$b=hbogp^AB!jxA7Fn>U)Q#CR)S%+f&_Co(T?w`0g5qRIwAJXlz} zK(G{h8f2qQh>!;I4Q_Y(6aZvEo4@5^=#~{*JiQ`&94P{*Sm}~wrUR~yj$CUn8tYC9 zFbt`Z8d?f-Bau;A&ukHPLaBy>Jbi6M_?*@ucmbVNh3v%OS|^eW3$a-)p-fY8$_C}g z5e!9QkoH!ABP9#THC!@p6Y;oARD^COC&-BKOUaO=sj*DEWj|o%gi&X(4{A+huHKf| zB-!kcq$SP^mK?V{7i+pROBpm6bcy!EkE6L0j!N)_cjp-8;M?T&5c?MA%g-6=j(`Sp z#Ck~~jBC9lNkxQ_`b?BVBBDlI5B{It$_q)WDx(QjArS;vF9Ru_yyG;X9e$|6V$$w zO-NYmOq8tBHfeh%X9<&^vUuOD!CGVqG-W7VXCaEH8zmW&kV0adTg$y(J8L1$B7#)mLbV=zA0Y# zHhkEgUU~hU)Np$}t4<->fouFy^#Zh0CXu#W{}q2!qUuT~x%&elNRb_#&sZ}%gJPpGclJla6%80$rTr?Q%8|w85#_xj-DWw$v&eu z)y@0ayW#8c^mau1R->R}a{CtTQ#`)ClR9^xi<{SY9r-f8M~{=fU+C-g+k1V{`K;Q==)Dx{~y%;+Mjm$o*8s?`+l}hzCMB;v2e7` zpmVIVc%B8i^?V*k7rd^Jcp?t!96=jpB)53bk)ACt)7YMlWdlVqH}9zOsMyDuGM?wR zu%4IU_QNX+NlUqxboAugMIgJ@P5t`ied=GUklx z&w0@@sbLD~uk+pm3wkuaU3M10+XjB9-@ENkamu@d8;vxVFz zHSdTVp|Tm0Wln3jlk-YGiRq-w(Rl+2jAqB__5^lmTmsS{2}IhGK?gpQWb!m(P6*+*J6KG@2U-hwsM8El{#M=(XEK^+|AL4n3DeIy@B)i^Wg8g!h2%kL{k zztAPx$NP`7z3IHp_oblc{hjWY>#xTGp0Q_f;kyYT3>kFm?-CXIBGiew{>rpntDY(&HjU-RVyC#~*XL zJK`HsJmFHxQdO-RxPJiVrS~`;snB1E>yZN0VvdvtoTKCkgK3^{`wLV9^5w8U6J#(^UeerV=qafqeHKJ@p4fTHDmaVpb;HD2Po zA_7MIewMK&>GyjfY8%Z|zVCD|*6spl0+wSAmcCh{1Y>o^W_9ZTM0=wKqZU*;fMa4# zrdXKH&~hzlZHuTxgcMb*Dn=94lO!D(#{A|wjEV}9F2ZgyeL|FtOp9a2B}4n7%)gMU8TJN3uCt%5550@yR$%oi_6J+`g^E z-JOwJHLh-ZuNR$S;HPQ&*Q4CpvBIk5suz@J&EA!QiKv)5NgF$*22@R*!2xUFij}yiV8rg8 z80`DtU#q-Rbnm5D`<>6B_}~%4HN81fqyVoDjo!3&qf=_?^Hn`gLZggu3))3IRH9C` zhL9HTSOB$`R3z4qJDBrBd40mC!sX|)R@n)_+lTVS||PC8QD-`O(ijex#&kj;c8i}Po= z@VEv8N12fL>OJB1ac(xBTX2L4qC6ecV!II|sN3t|r0QffrtlZx28r4i>nU&<4yO9I z3y%WT1XW^Ek>F47&1!+|kS9#_DAA*vHyBe{T<=E3mbDO%2IvB2%`xhNH)?D!thfF-5ZBhu36wR@SOz-O}WDL_Q?q5EW9kIB#NseRCY)<>81&?4GDk)nw z5ApMt%S1?Y^De~=`Nnb{mu<&BY*a44$FHdje?Umxb`5wPesJO{$ph_-FoHH)>PwitPYqgfT1Rlf&g+ioPOD-(=O zHampIgl98hbzL$hW7f<>qbwQxQS6D)T=*Cf(iCgFs4^9KY-^^_Z}Zkcq||0;GkGhi zCc7e>S958IthX!29nL{Cz=ao%t&JgXNpNn%coDWXWrgGLEZ!VsaK09ee;Ya%y8P_E zP4G*#tC#b&kc-jRZI{d(HL7jh@r4SSs(RKv;%^K19?|yM7qF+=>=|WDB4(#lHf2`{ zO}9)t@hC}9+uuutsAP>nrL|R_!j=WH*DS(>F=qk(Tqy7|M``#Q)d?~ou?l)>uIO-t zMlw|KL0DIUT~LRpX^i%#)Y&TWEzX+kChFNWkm+wB7-bzT>Q87qD4FcgB5d!Q9?sPx zk4RO?WHF0oUyF)B69kQijvQhuk@ooZzIq<-lM_kDb9`;Bj!RR00!)n5C+B#YQY>2c zXp9&Q)35iFy$6qshGR|g!gLQujp9xC`<5a~sM?ee{gz-U!lQt>ovaokE?x3wkt9gI z-~#?-NfeXjE-Xb-b>hP|cOl?%V)ZBRpDu#8WL#`im7}cE0s*4u8Fsz!6L!-YK5#I~ zx8Hq#nGQP`PD`WyWDukcEBg|@UB*!A7!UeS((I@srqw%nAB8md-gcIO664Tk*XGKO z>W}m+?e5|FnyM#XU7W8l9$1m45v|HIsMY5zjLwKR9r27(JvT|Rq{n4;sDt+Uy?1EF z(-QV@WR^&m5S03`8@fQ=lNu$xv`xmPz0%T!p)+(%=XKMRPpsaTBB_`4Lbv|*xZ2`% z;<9qW3Ih)9>y)X`%xhoqLCZ8VO)%{pS~DpFrf0&say@~^ihZK&bpab&2-OuEt<*ly z#E8jjKq*y$zhsTDs^fC(SO!RYMQsEfbIHZMWsyK4lIC{ieiB<9himb5OI{Kh02Z_( zBya0T5!bN~<>fkJuIwE|`7C;k6;NkpxB7=wuDDuVa*`6K0niz(K>Yg|UApz7EXh~4 zSZm=O0YR6wcN4JD2j)`LL&6a67ux1jl-F*d?~N|^H`+z~KJQO&WVBsTC7Wm27%tiw z2dpHCCL5SetsZ@k_9!$xipj~U)~w@`jiFj6=q{{!qC!%ON?NUl;#@tj%?0vO)b3<| zSyLpsMd0~vMYtG-YpFV_7rN%io^xBRL6w9Y%9>Mcw&fDEE0~`?_J~q?R3X`GOf?vC za)~*WW|yUn9E{CJqXamZVFwG~GuV=poyF!@)MWGc zh;0H(96dIhG~VgzbHO(V*dU=qflZS_?wzeZE^H_wKtI>mofV2ozpTq)oA0XqUZN;! z!61@_y;qz=D8d;J_MLQM8iFju7Y>4I-E~<97;L8s?87oshaVbbGrKUhMW2D1vk zfSNVm%kqguYbybaG1bb}Z)b+OO+?ywXQ(rMCUu)Z*V~yC&h*ViHuW12 zOm*E|(Qq*btV8$6ebwV#XZF2flI830)4g+0(x9chibfT$`0qDOGIChUxzmi`vWYT_ z!Oeg#(%#j4QP$M;@OKE=Mt4*XPFUHuoeLh)N4mD2kif(4T&KGfog=+DrAQwn9y|E{ zV*2fVz_Ylw0|q;to>h94_pMx*=qahWV6+Ul+2ScNvmNUIq6YrtFzr)0zL-XDDlWn< zuVD*m9qsv~n=z5n7mF%9*B&QAr*Mn(G>5fD(d&}k{-pD81!Q@A&;wm?o~+Hyb=Okl zGnlS=J59-4BUr!@nG&epOc7t`TZ~ZcKkDN(VsBl&Q`>%=61Rqm#Eupb(1F6%sh6Rc z%Gyt0@)O*{U-Gi9Sk9rVr4Wt|-1?dYzS;Yz*bcE;!;h_w?@k)uxg^80{4 zw@5l%qmc94P(Lo;7lqB4OQjBw&fZ4v4a;(Y70wu(U)dr(Sv@yKMpwUvK-KR4WCXwyb6Dm{uj1ym-g*)y$3x` z`uqsSV}${^CckgP1m5$o3m-cZ>Sew8o!|ExW7c_rpXq~hshaN8?O$_t?Cw= z#2K^*64$WC%O{pR4ZEwvPBVEeTt4biZ67&0umZ^gPU46ojGI3GWpF9-qAOap9#-Qz$!l?$hlP!MU66mTGKPMXUlg zml})8xp^Q&q9&BmEC?t`)oY739yqX4h8Cc*#;;M13hl(EafW((Z-~Fj7kL*X(^^3k9^`*o`1F>Ilb_Zf*t$4<~P7>S18RU!;GZ6+(4{*G`QR$`B!m17YvE7FxLllGFra+Y@? ze#>SF!|r5aBoOU@fGB>Ud`eunn`?+r$?hOlz7lNW8a&M0DSdT&y00ZNrQ2orAD7Vs zOVFO83(FUmO6#uBkIhL0TG}ho^-uUuOhMB;jTkW~}IDMw= zRQlSp9%ef28pW?$p<7O%8Ly+qaK856&P%3iSo+X*;RVXqp6xxP0}2OZd*L2oI#(cg z`25B!Yc<29B`{a7=FzeW$$j_Y2XlnJqZ8D8|&tcwCz=mx%&!(J%4Y6q)z z*vmJv&$MMcB!2G~ec^q&9+%-DQ=JtCnRBGb^cbGlm5OL!^~?Hlqt-TTdxR=8OKeu} zc|z%mN7o?zIK!rWuOJ7TKff5F>%El>#YF9ABRW4KW&!P(V%#-H#P9|cq%;+;G$Tu! zH?lArIgp~o$1n2X5mH!p1(OH>U}un6e1Q$pm!sOu;nTg^?MrZmg@ZzTd z@ARH+DujUEo@|CB$WKz5HDM?!f97|`DupkHgPz*d2?GS<{Se~_uOg=9po zixjK0TMF$df7r?1BGBdV+=wSm=ldIWkblJE$MV;t@R*L^xNh!~L2_Y@&<)I42~Mmv zZ)sn})E<|?W9hth|4#R7DCJINW&shUzTVD6X`E1G3zEzwGQ0XondbP*kUT9VTg&$2 zAGU|a0Tk%&nLP9>%&$D0jP+hP@N40Bl5+|6INeb(Lt)oc(%HAMe_TEekLz*+LG-3Q zjI8jY4K6+;!e=OUqfjK=|t0 z!d0VzT=qpM=P21u7DfH!+vv=wJZ$o945Nz_?24~qM8@uA7p<<7aB-2Y5gN`$$t7q? zSd&>}_ zRE+#FV^NWG9nOV2PUhnr>tcih>_$A}5rAEA^^Q))eMXAlw`HZx@-~)ElVflFat`Cw|mLDARJzJ66&dteoPcK!~7n zp-o>`nEsMTgH6w%p*0esk!DIhFIhHSb;)+8BSnd=ZmjMh-#c#6z{rJUN^#1-+~JF? zCE$+BuFgta7Z_pqUcn>12lt30vDt-IjdsSdlz}t5qFKql-mUojbKJbM#$<)-)m~$2 zcG`EU$CvQ(c347f;ecC4k%dK74m&)hVxJDsnE_yA#}9)o4J;<0m7$slsXdMu!LzU? z9tiR4tUgBGuLV3S@^ryNSEnBL4bv&UPytPst*6b1tt_*zP%1}Z;z>**8WtgdUo#Dh zNRE|)PT}qhYwTiE4kt9oTE+OQh7Gs-xL<;{&|83X;K78O40S zG^BnTcI+v|dJ;@#ov7zxaA`lo9s=?`t^5x{EJ_F&fe#0%U~Shtr$1|h7>Hs~vQaA2 zJO@8bby2}IPDEVKXKKDya>#ScG`{PKRyDo-Ac?=Se6EJTWuN`g#Kxr z+ju;j`{9^2>q&w;amckeFkr^vYp{NB!FdEI`;_<&45-lAbPpsh2hap40BH(M{Dq9G z$Y|4O-#5D6FZA{Lzp(xF`R)GQ>*IwC20^y;#gZrNXW8A@S+iu9av9}iJhOe7R`rE{ zCh1eLeK|Svq{}A9mT>Y5N684uU&whf10St)=C)=c^Q08*?N5^M>m(G-5G9$6qbfQg zl3~-0RAZtYbwcfx_i=fDGf<+3Lz>#AU z+HFL^pJiErtX%kyzx_+EVZ%Q}5 zfA+`a`@((o*&*XI(1x5x)~E?H6_S*c_&$XUd&siwclN;b5x^v8bZqrkgX9DD{Wx%r84wr1tC?nJSiy097y= z&l#3D0e5aw^|**lFA8RvGM+dSI8w;4U;0p z3+6a8B*_T0X)%2e0dJp1v4WT0+;P4Nzs}(Sgb~E@RIHz4-!WKEVLefAJ5gy<;yT?O z=uER^JAnr$`NRuRj3^euScy`x`#DT%YKvdAulC3vQ z^o+vkuY>t`|2W|0Bomu*VJnodTb>cR-t<7J68yY%@a=eer!+w5xBKIP%`0J{P*<$0 z!rOPWwruM_ib{8yO~MJJ3M^Y)rJpON*hyfjX?_2En)(Fj9y0&PR4CO!ft@`&SX?SC z0!R*9pJ=%c^nPvr2;n7QU*Q8*78cfsmL2XO|E0#0;y}FbI6wIF`^c`Lf>*?oEG2xV zgM+nhdH_rCR=|9R*;(-xrr++z9%cN2z{NQnTri+CK}QT8m2 z<6Mpd%cO-w7PTB>0D@@0tz$TB$0uE?vj(2wnB)aG@J|vJHX@`c`&7j5x9ogX7}|>0 zwQ4$r=z9cR9YZ&V$$3V#MG!2L{5n;S%g}Kmy!PIb_A1f)5nq=~BMeW23v_7Wc(O+& zu@8NjGcf_k)>!)PY$xSPpCSh!4jV%y(~x#`)sXYU3Aw7(pkx~h^a}cVe|GyL+7ss= z@wdFMSp>4oCH#l`({j+b^*oBAM=XsQ&o41L?4dK_dA8_ZV${j?IZdy~TTuM@PO_V0 z<%N&@RAZF9B>6l?WL5gKVu|bs9QzEUM~c}q%%ymjo*Q9hi-?k0xo*^2ax{-Ko6evE zsyw1Si)YzO2Te?y!{(vS;fnju;UoZDfTHRCAP{JW7b8`Wuu25aE<1j>J}nZ5$PLOb zZ1&RnTygSTdyZCp-&v2#+GR1nj%PTDL&9_BR{M#hl4uzzKpwSMGW~QO2Y*H`Dw{bWCP8 zRb#H`Td_ArbCaSq_=1&UE+RTs@zHUAG@sEN9=Ys5ex=W+wa_KvGWMBuc%zmSfyFC& za|BzU=8wZ0`c3mV!pRJ8#}ODd71`Oj5{y;A4Z2FCjtZ zVAVAw#`JN95t51NFvvTFAS}Aa{W$uMBSw2Yvu0yCQs7GPoUlufyMBekDM!Nclc(gc zJ+B<+Ru1E93K{VXXiD*TpZ3r#=S*!&-aTHeM}CtQQJH}R z?A1~Oy78TSCOwSl*wuQD{6sU-;GFu(#JgIfinG%8z{4XxGmRN0RVV*Q!@8<>O~HWz^<#uvfUn&}x5iNiAY zn;(~n!9Dc)rN)GMWT!Q|7A9XRKi@8z+~cC@-O*OyVk6uZt%h47yeMxY`MA74G6a3@ zth;w!iJf=uROlQqzDmL*mPWXNKF z%1GAaA|Xhz+poG}Q%K8!L5%jS!&!q(9PFcMmryyvMUt$zmGDZ;Bc2{7y~ZqDEDX&E z-J%%v1A@;Qe8LT~c$I@c31Z%h;sxijR)=1p3or~(HJf!$teB{uB{ zt$T!ZVhtasDK>EmVHs7WonsqvR||*Qbgb@Ydq);QmsrXx=;Y^nsTv-89{%kJHFtf) z(~syq$6*bn{M0LJLup2#iM2%Tj#Z3XX(O>&ko= zKJj>GBbJfjNJoS#L|>aBgLS?1E#IHv6UiwO91bzOhkcqhk8N?B==;!t8eCe*m=Xz4 zaMC1Y{ves45+8OFhk(BvBoLSqWgl8&<37HB~fvH z{CPM<%k$(*Y1Ks!=fFhq5xvfwtgX9!Hu`k0_et^U9=%)8hto@QY-r*SqD5x6 zgW|CF&EaxdC&TLqFsn`YUUpg*TKg>k*P}xh#%dsti%yeeEhB_TN>?ibeafa;WpAtU zahZ4EmoH=EI#T5(m75ED^B15G-m=F0+xjTf0C=T8(!D;?drwTSt93(Bt&^P zlxb{}H7Yq1^swpT;7lHC*9*CWW6P_?2d)`1p-urgM}VNXTL}Ot^{ApwxK@l_>nO=n z7(QG9O1glj#o>$`bh9}_q|jON>d4MH1Jbj*(nb^~uAU`fxu&sYh0mnC4mqMdNz}V} zUty2;L8heIYtNnRM7xj3$80AB!3O?X;8hbGh&Ue=^OfzSTufh0HTtR*;RP zsauqNrqd2WUMk)=89$D8j1@9)bj$7G!`7>S%7S!|0UeP-JV{E3j!5!*k|?j+k6Kx7 z^cyGDJeVjX2UQ%OH4GnaQZnBV;uzNwS=e(~yjpmiaMH}}_he`SdQMSsT<^sfKU7wD z5{3yYJe){M6hdkOtOH6Nt+awz^Za_YhHId_!XS&n64;bVo}u_$61l=E00Xy2an23l z2>^{9w};LnqVrsR^$y(D#AO#X51TE96BmEKv-wjAln3Vwe0!8q05Bv-&JNFL2keh( z$(C}F;7Q73((uaqM)vwiIgMg{!*PK^KlpemVlXUDD4J!M#279>W#7J-@OHVV6KlJFJY_ zJ<_O|1grtXisxsj6tZUoITJ%O%Y)%8%GaRObixCXfCf&!O=kNkG*C7Eiy>vn7(!TJ zQI-L7>SjZ8aUdhRV6p$A&_<1#`S3~P(4}2QBHe2uzt>Q)`lL=U>J(uq3_K#(l`E#r zfAqzkpQ(C_v~FH5$JB0jjg`*D1u%Rs>2%OKsZ9cMD&qxK4$ z*3#9{&_o;MjdB$)E`4(L zkEmnKoVw7C0-2igEZPX%yFKSwuA44WIh2#lJwg{|8EqYxMH1(yJB>1mf>_9DLaf}f zv8pJO>H(#b4BLcjI+UV~rJ#4bUo>)TOx5+}`=M*639AVq^6kSQ1a*{{HSoE#5V;mQ z8pyl-(9y=K-t1NDX8vyW2$})Ai|BzKLf%YH1ifM#{Zmp$%?*U2ghK z_U9}$NH2S<_Oh>J1J$=%EX@ZG?VMcY1Ep1lEX~6p5x?d zc%nT%8?Ph&a^Z&P-?crS?Ssa`EN=@1QQV&*bcXL){OJm}pgX1L{^n^;tM%en&$7SL z{!b->Bsg+lXgrF%MRycIz4Ov5AA(|OIaQ~08ktvsGO%4&wnw8BvTS~Qe^Y(BnG?Fz z$cnY5#?8gHz-}E_6kE|ncrDzkRl&l+c9j<{w)*``XBHa|lP$&BWqrTMAJV7QqI`;U zP_*stu0ng3!EPqmGHE=`$&S^P>>}B8tB|B@xV?jVY3T0Tfw4)`pp3de84G10H?LgT zWi4LIjX3P3WmpB=j9sEv7C^_M8ttZBYUp;E)tuyKIq*DOyMnnbs62|+G2K2!u5A4X zfv5|c;_LE=D!`Ry&-rvX5$`_Bq)}BL$UyoHTB;tF#MwGq-3Q6W+-mopl16mHypwsw zn_(?-Yf)LQ4M3DKt-ekt&Em9AYgKHY**nPW1AV!M(`Q~&7se-A7^k-%icc7V2x+G* z)AP`9()oCqY`2F&py#=`?aFQ4>){(+ZjPuj$#weTb9JCluXbJ@_b1=4$!7N&j=LPj zBI&cPGwTL*3(M&|aKXSf-<~9m7LE!=c03#$EmfOgt zMzSHgGlSw4k~mu6*(D=pT2WO|tdGfAeyY%i2)K}&Mvi9&ByhxZ^Kf`6Aai>2kGiv1>(=6jbluM!UNvmqRO_Ym@J9&-Q6^ zr(X=(9C5k+w2H{lIOJiU)s9Am$PjO~l){vN`-EXkVX-T%7}HdZ@063)z`VR#veGFj ze+ZV>Xpgqm-h9U-MlY|;KI(f@ywuC9xqvT=b!TxYL}i*8ibT3&8poQ{QD;pUg4Xq+ z`-}biZLOL9ek!M}MAihmhZ*Lj^17dwv-_%HZx3>7w{7(aQd_B_vC7?k*rEoN=B<(t z0${x{(nU^bsowkR+I<2xOu%9k4_6vZ&aw)IcNxcr2>mI81l3*f7IBG1IYPmTHA6RW zxBB{6KG&*-E`K*W4)LX3_ba~BDT0`flOnp*=yJ9*Zt2oZOdw2f`(#M`6yE?0QM6B0 zgkp2%kzN6Ug1~Z^9WxRjGnAVo8jQxkxv>i|Jb4h0qPc8JAJ7x16|;D;aU2!nH#b`} z0F$&Hp1sO)qAh;Xm_B);%ChytkVXRFC>Ie!#~~M0{wbJIVe1D_<=Q@QLtZK*ntPbm zusV^PvJfXqh6Q{86yvbNRshMtya^Hj2F^!v`YTd=ir$;q5MUf{RheviWx}?}gC4p^ zKf6J7plX=ViEV54}fj(Q^Zy*dIm21Ctdf zJm61E17#5q>^3CrHkg?lQ51#zDcuo_i0~x^si~-8{a}{W?h~h2ZxQ^&9dz$vM@^(? z3QA+@YXO%zL^mcGO2X?P(Wzqc%>^E(84d%ChwV;)DB|!G z%!;XKRlJ=XLD0ZO{sZ!WEe3}qTyUzwpxrrsifT!NcREoNWSOW^5$9xch-31pg_JTT z5Lnp~@VM!$o#Az_UUJ$1E#wIsqo|JM4#rC+m^}m_6Fila42BwN-iq@zc=v~75{wzH z0wiOaFyhh>EKscCGJ<3JMmfbiKs@2>+k@QS9>j{NPS4#bZwnb6V8Iss4mvN2iw-_@ zE=RMOP~G7YeVRXf+@me&M2`+g1&GH~^uuty;RHs>@Hi1Z2N_1Jt+59qe-**!PofSh z7A3k91aM?_q^l&{9-2m*c9Y#1$66TgSGa2vEE2UHzAhfn?!B;1Qsfcssy%n7$%}1M zY=5;$m$9Zz35d8kfO)3TKChEl)p-@+xk+myZ!cn+i%M(F@bZ;wgDyDuGTfPr-!`cR zb40-6pDkKhocbhZpT3@5JtL-Z+;Ki7A(Y`ENTw(-BQu(tz2qt!ynCBg9L`7oWx%RoES;$3bVw=Orf1VfpEyyxozkDA!ZKP9UGv zalQ&Z#}y$bR6FmhRl9V@mNKk-D#0wz%~@0mI;c8V9k$DKA`$2wu#LDq^aVTT{Cb_o zFx62W#)hgoN0|&zC{G=Gy01@TM@i1ouLZ}L4Y7e}Ex98}`S3EkxJ=)|kTsmO-R?M4 z6ssREDkf6|L|*PPICRM|cxHU|EgZ6ZJI7*DHIo%c_J-oL~?l019U?)sF zqh>Ug{zxx?XsM9`I@zmn^yKZ@6Be5L>n*|_rUlk^RX+0>K3k*~6g>L!3ikvexTc)D5uQ#>pLp(}iq5^tID!^Z@;U8V;n6E{TS*dVbE_PNuph;t|2uAKla zSh>h`9{-|J!ho-V=}WWx;s97+E$c1=!vw&B@>vM(fsDS*Zgrpxff`}nl0qagSPVKX zR)x0e!DKynU!_4}6yqtdgTnK$3khaO3)aZYu`U|fU15L)fdpVxM4yA+;G{AzS@c9; z69D^bWPJj&{>dIY$ouZ+fx%=XOxF7W8G~E18n6m5Fn~hM2vwjeX;?E)($RnH&~pO> zuN_9ru>%c(s|fHlEHh6+<}zau2hE{E+-=MukMDzxiuC4_tOf&?BZQ5SH#f2UF?T_q zF@8903cO4QD*8`I=tKk^j@jZ@RrA0N!HglDhDTl(78;QVC}u&Q2?pZZxIaD0SsClk zqjh`e41$>&`>r$PSfo9fjUySQbVAdu@Jy?;yfUr;cryMqqAI>JuKr zI$%*bi$$>WbAxP^og~t%-YVmE_(`+#QXI`A4C`DU!KyN*QFs02n!@!#yq>TxXwMiX zvPJWXF>pf4bXd%I3XSwwuv|#JL7%~3I%6_8Bf4;qYpm(S4KXJBf88E>=k`!rOmb1h z4v-3v+&Yr&fbS>K5v)z+zU~>FC!{5W zcj6tghS^$uZ0oFi@tGB{RR9RXFz~AL{Yo2K#M%RbQ*3mYSZHuC5?u!X{U(ZDuhhsq zg`&O$)q|<74vuXrKDS^h!El>&DC(Kr!xMLAS|g;Inacxnbmi@#aXe&oRS%IbPQU~N zHV$J1=@$=`>;Xy@GYFvL-OOE%&dY?PWvXSDr(R{kXljg5j%pz z3(t_1$PFy7We|l=*B&G@n9b>^EDts3_v=jCI_uLpIEfP#4&Ux?IkK3ny45umQldE)Uy0?#fP>nnwHPQzj`?BoELQgBr7yYQ!ESZQWgH5{%{T`D|SG}`vi zmA6adxO$$eBi3my}hEtNQN46*wc?J62W8iM;;(UjM&ygjtd9I!`qM5sTd zf1(VedOxm~u}iXW=1o#)RSIv2M3ITX zsPG7PhxtW|htd|3rWE?1(59A?1QSN*F8zmyDH@@p82Yfig{h7_)`gMTBMJCMlNPlh zGYxa|&Aodhg+Zm;6;j)W1LNG5Nv^v~+t}E1ZDcXT<{2xh2qvd=Jz!`<7Q-rS%ILL3 zf-Wi$8+&>8P%75ySe^g``Bd_*q}%(VNR84@O?i|=jhEy~W#Xh=J<$*)V=JNz2`O7! z1|4h?4+@u_ygjsy%lNrEPbzDvn&jR|U3(PZYgc1+e<6Eb0$n->o}H^%i*i~iClSzv zm9TgvNZg=icU4j`(QuyV58j7qpTtp()tpL9HVFGR=V0YA1N*AXRca2GkDk0eG|dBh zRK{Bt?K!lJWttH1K&V$KZWj9LReMP0aW|5&MbCjlj&2Wf<^ase-Ck6{COK`X52sP^ z-0T*okStOdm?IoXx)M9_FlD>+g2QZ=ji$8$xJ+{0ac;x$LWgI@=cC+}RE8!XlodhQ6tIQsv^h6fCjdj? zUbF|rKn5LaDvhK3+;p5U9w&J=w3EY40ZQRW5$lCwWHzuS^+4E0)z`_e7!;$3&00`- za%V37cEpQi25eTw(t-do(_vA`4vKQ;X}S`Qi+D5Ufv=*l#z;-lt5(7(F*HNhX|!YT zU(1p^glw`}l*>X%VYP?ek1{%iz00V+y&OfKOEwIKWCjXOovW|`6La{mv~;IL;L#ibNn*N(Y8w9Ar!KUARZ zlX4ufoL8CV4p6B^p4VjrM|7~u=jVA!qy2?nplH<~IcHkjO2jC%N~K1tb!m~XEOL}` zB1bA?VZ{>5yPJ*$4B<&qVE8s8NvJb;C}Eg2Pnbjc6E0g~`bLw*4hFxdOdUgI&0^q9 zr`l3%V(ZesIcDiVth?l+kJf30ebu<7YV-s^OAKx!l-LVp8ZS`B!Vhu;9zm6r3gyXZ zap^ir;kf|{bxacDw$fo$sR;(nGeVJ)RJp%R%(BWDUzu(+3&@}Eh(1Ur>XRJe1}&Ch z(k`+BViwZX&DWC&lGB_4i=n7I1d{BS|UOnhH*eb61w z9*z7%uw~^bf+}<;6brfo&8KJm#?kTD2>x^MB#1l+CJe;JO$PBMJk9O;#HJGqS{5}P zz#xprMs0vO1OGzeVBlmn$=+TxRtWVZrvxf5|If?B;h4PbYP;Bu?Axe zEbg0MYG9$yD(^MlMFWJ}3FbIGuvBAT?2y6sC&; z;Y7m6l}lSZ7~nkE`qQHH$bxhN*O>OfHPP?RzDXYiJj|F5d8!DRf%g%TutErnx&3igtRAJxc_#;P)m#eG z`DW4rBzEP`0ka^KOJ3aFAX9+b{!W|*d?$Jb5?C2BILVKe6cfDbs3~_TMFNd0ON1J6 z@#u^koK2>)ud)J5DhQC!BXpD#fW)3Ai7yHBMV27CI?V=53Sx;b@_2g~_Vy-*4Z3@$7E_*HhZ1dSj+~B5n6|kxrc+!Z*qg^%RFP z5qCLmBG1YwayjfH__vb0GZU3BLGgE)J5OJ`SL#pmew@x6owkrq?BcqrheslE?YXG_@ku>P`C)k*+LK()V?Xddp+@%p&ybX2{8H6=e(ym&WZ zbBy}xD|5##a(oT=iS`#YhLoyDVb#kt2Aqpe?_33JX0IZm14+ce7`hJc-xE(nb@f># z-J;y7be~eI?z38u$SO1Aa>UL_S7()pv#LP1;QIS{IM&Z&FlWWTN2$+2%~a}xOk4v) zjp*!z=Ovrx4=sG6S5Y1ryBy(v0RWB0gMD%BjSbyvy#JJwbwdaNVWy4Vi%R{$@0O?I zC+@v>)pk_vXhI0}>p4HHQkYwIV~mB8{Oy{m!*4?xq(-A*#}1Mnqb8&WZmr~`?2JEO zbSry#*-rPfuO%bJqmqqK5W=;AUdh5I)b-L+!KdHKFLVM^j+%a26JZPJjdQE+YgAW| zX2o~`7fx)`KDpb}NDSs-1R7uFq%JoT5fe6LR=tDJ5Un99g}KWet7AeS zB(zbs&*WzrGVr2v;kx926GJ17Pzas`;E9uN$j3_ikp<@@Z~KnoDLe|;MS9Lsbx7Mu z2G3u(e*09Zhx%R`b8aLe=r`;LlLA(%hW1jp_UP*8r-uQ!jLpNST}Sj`z)!Mpk&%<^ zoFwWbXJ_d<$>c>=ALRHX;SaKZnHTrja-Ktv6YOE`ou}nx&YtG-<1|0!|3xc2s*FdK zvgG9-9~GC2zxel8-@g6+i)ZP-&}4Er1^pIvIM+u5RE$LP7a z>F5cBH_WqU%ewphx-IGMOZT_4eye7F;p(9`-$#>gK96-fq<|GZOGrCwx^zgDZnU(q zzY1qun=WEkK%n2WBY$6`Am2e3?{C=%bHZHkOJR~8tFtxD8#&9TrvLF$g%3mWr*dwk z<1rNO_1xdR9>acgea!Re=T*GmY!1CRc0us+HS$e(Rg(;zcv7 zY@Jb+-DROT^cvAR7q!<8jcC!lD@%3uQl!Iub-1|g63 z{|fv6754vx!iEX5GEhw26oW{d+BSKdj3hLCQu-Je;Ax{`*b!mH66r$aXh*UX0Fa@;K2)rVHE9>1<2G7}OZElxp~Pu+ z4bxiP+j%l*d|gWU@>4tPl$4txaTK+RxX-zMwZQD&4CEDF9L;C!GfpAsugO3bqAnsc zD2fmuFg$#ti@L+&T4-VtyDIrC5S-u0nu*g6Ov_UM`bm(+n6zC>8j)02^p^C&r?3$= z3*^cyCL0=ZPl%jo&b0oCE2H`;#dobw9yO0&?}yiStW_V|zF+_nJ-7ZPMT0?3N=i@} zK`k~9Ip9)L^iipd?hVJUzX7|(fqCsQtmvFlb+3MkG2 z#xK|FXlP13{_;~BT6BU%V7aF)EE`E=mIbEvM5;aC)}vC!aK3eY$ER~ptcr1(sxB_iB8O_5Ai+EdePpE~y4U82=;MAt>$QkdNW z+dk>=!|KWUFhC;clR>MbYRVu$4>0TYsr4DE4K`D&F6Ql(nK*T229gPCFUstZSgj=U zII5mTT6Di0txv2+H^E>t$!Av-mT<>S^b#T;P_{^v#nxMxd!#!&5oOd3Wdf12c#gWm z8BvZj?VrC#M6*KGF)~Ozc)j8F&I_6|048R;x;;F9pE&O`#QgUw_oyTWjH@8m1!zYY zqy)wd0t`*byzv#0-?%hjjNEXJ-gLXy-?LBI(EO&K&_WunDU zB*(uio1JzUHJO=EOv*awmVts^gVI?z@PkHH-i z|K8cWQ3D6Epo$$r8Nij_o|gu>6Yn>kmiCN)pV)N(^NnW9w_=e2yH^!l|6i(`BOVDh>*g=XG&eB;U`uT2@?k6}>?gmYu0cP2Q)}jf?xbVf+pfGb&1=7>MQW-i;G&%N?%UL!Mm8*a+(>ZyQQyl^*v-l^I+(s+&qV6|8 zT2w4Mk55fANjZd%EV5}O-KFq%)1xXeP*e)U>!6;dN5a2%jZqMr!97lu6K!Z7HlBqi zsXchtWQ16!1^~1~XE92wScX8Yo+S8Lna825n{WzRfgATSgI0r1azNldc=|&IcEX3j zv@`FwRvns=M?;aV{A<5^A_g<2PK9-2B+P4rhScrcz&~)y{;~Sl2;>^=8y?PY8a1#5 zSB4{6!deOL0*J3*IUA|>v+}2FM*p{U=SSAV|6?-oY3rh}29f!UMA;tM8{%e(GH6w^ z)G$6%1VXq!dWEdhO3B&zL|8}apv8Q0|Fd{=We<_QTk39#`bT6cO5Yt90c|xc&=WTV z(rna3&Y5gpWf9OY*WUDw3TFzl=5RYfhMV9M5ZQA!9zwM2Zz9{3uBzh2WQlJI8+l}H zyU^dC$d1iTQY_{paW~Rfw7T~r4*8z3^PzP#FlP()PDph{a=Wqr4JT?$LM-?=6H-Bo z!C@n(68A4j9hLI(L`TsykUGAIC|H~K8UjOv=`P-L&_6uesuP1& zM{S)LCaCyH*_R2%uFJqXbW9}0g6?9J_qu?HctwkC3_@gds}>x zI3?b|Ls`Nje!WM$!41LCG`?f=S&e0WY#(T)~4t3Fed0@vQSw)zN!Z|?Ra#Fb>F2u1x zSTc(u5;EgQnpaO|%L3?@ToW;@csu&9kmj2C*0!U1AH+~nPU>OCM8yrtaQxD)W_g-b zof<=%3c*~m-7rTP&4UQ5_~Xo#tW`1u!u}Pt!1WB8D-bqHQ$L}*Ja;lJNRXWb0CJvV z1o84)K+ISHlqc2X1SN^&w`~_b*@l z=KHs&KS1(Rc(0rzw4`r-<+i`>F5`dt<@mZjd>ZjHB{Y4ym*dlbIi}N>UH<5Y{laa3 z*#|!icg@5Ch-sToZH`Pbs?alaEV|M!peX~P&8=>!9G zM93cE)%Mdt2BG1IhfcXHQcI`AN3ak)^}EW#c6I*=d^KtIk?}N~@xQ<0+eH3bndSu; z?n;_`VCU)>pZc~g%9zC1VPMrOvG$o^JHJQWXynL%rSffqtfYuVnrVJ|zcIf+2Ehgf z0VklXklgE&-$g|4*pOc%A<+gFrCldu*(07iT(HwAzhgu1+Lno>q-{YZ8uB=_ z07<1!6Y>6sk4{9tcJnL${CBI=i&w8-{IIrjOJn%E`h2JLVRqzu+1EWx=e4cH;@q2&ulf{_4%kXZz>hy#49t4gdMYi=Te@=`}o>J(pdQK3^Aq`tG|o zFZUq>Kl!ukts(5Yy!7s^@tymA`Bz_cHT~LN^y0n|{(DFynvO!aH+f0d+J6O%+!7&` z9yf=duh-$XyZG}r|F(Dde*#cT0|XQR000O8`dg-0zCrwv-%J1iy4(N&CIBD+VRLh3 zbaO9rc4seRZ)t8{X=870b1!0PXD?-RXk~I`b!{$lc4t*o4FCrS6gg%-7dd9WUOr}Z zcnbgl1n2_*00ig*008a1OOLF_b)`M;Uy-0E?SV>hzcgAOV3j5GAPsyY4m2^?6fF^^ zE+A>k{`b9~wIb_e7U??Yi0HN~34+avlkXdETz9O!_9g!3H~;#p%OAe{<+s27$tNYH z^vUJdUwrwiUw?Zm{p*)s{Nbm+`?sHbk}m1OKVAIq|McZoU;X5h-~R5mUwm@;x8HpA z+i!mI$*;ft_V@qe$3OnVAO7(4hx+upuYdJp9{q8A;FJIFzx~f&T|WQn%isU#_n+~l zfBE{W|Nb|W(?90a)<3rXw>-m-mtX$mlYdzKDbKktxsLVJ=5wE?JQC$gul&P`axW^c zeaa(6`G4is@>5>Vxz`&1z5V+o&yiK`r@UHMxmD_U&bw@tYij;Ixtw;ne}6B2?$3E< z)xYM5a=YYR+fyHxmC{qmIo_Z8z31ZRPkqJZXvg_pKjoV8-S5vi_o!%IO8lNz^uIJe zUy`2RNzGSlT7T|tU0W(%+SbQg9(uSkXi-$xX^S52>S@2+hJ5V|u^%DrWqfFD{?Qa>}WcPcEPTd;B$4dg`BC zzK(w#YsMe(kI~=$QbqY${n>OCFDoRL&3;<-vPOMseOz76D%aIrj`pdX+jEr1)25y6 zX+}3vi~q*!@vmbv%JnJ5>vcb+z2fz{o-)73_@@}G6botW%Zh;?H6D-kGUD+VytFsv z_@iECtiv@nug6I4^i+pFooMQu`DwG3Vz_3k=$T^}Q}5CKOH9|(m~^A(cqz)|X{8eH z#+1eam@&#@$AU_;J>_^l&!-;G<+KKs&NQO8v^zeUgeVv#?Pfa#afJ)$Qf5WPNXHUrEP=|Bh#?D+&{nJz*5j&7Ok1qK z80a*kStE91j8&ob7{h3N>sp5~?<)qjSoQF`4zsEKaSe6%Sr&ytbPkkDgZcMpJb$L{X0U%JsCpwM&h4ytOD1 zxAjs>j|oxN2fL!iNJZ-|T0|kVVq`{&HJwAK#XlDYOamQ@v&ZiUAiADQrn)j1f9BoG zsPqvd#zaT2dlX|sCoPj1^;}AbxsbQs*OlhkUOwG_hTCtm!&q? zi>}6E?S8+qrfbv8QQmx{#vsKiLbg{vPMHP4`BXz3)c7M6JwF+{8sb3DM>RdZAA39+ z7G-{q_gjogEu3plv5=p0W2zV%j?9?ke8w#vX(4c9L6;mSL5rrhkm0c?O7vjo8n2GQ zr%G(ER(PI1F-<#WBbw4InM!Q>8gJ8rD8$~L(e54xYV6Gt(vt48CrcD#S$7Vd9?jZX zP$AE*QS5BZ!YC)+j;4mRE+HFR=5eZx?SS;wDIA+FM!!bWLe9tg(UlmD8nyPAF@Byb z_t=tMk57)48nrG~3KAzqqQ(&-dEa9Nv=U{udgJ%1-PjnZ>GI(BSg8h7JwNsSWYLt1%5f%E&gG{5Eu>2<&^QBPM<9V~RXK4sB7tMWv36KXJ=PdS zCZVYLo948}QfpT|9urS_ZH6n52EWIsb=Go^@5X;y{HL-ZdteI$YiziXj`2PcHh$kd zj%J#VTmfUneva>kI7l4vz2<1{pd9tbxzHG;`2I+-Fyr}R~C4bW68y`9x;n?KE^i^vTVel#$h!wOAo+0wdzM0qOh=92mRg8s&j>8Nv%Ocr$QH=Zp=3 z&PgzP^7GMVq|*fd#P6)|5o>F5u5d(0wQPkM?U|H0jSwVAk{o5NrTAVAfmLaDlo5XMI(Q4bfNYJGxuV*Tov}(|qalW- zMDt{Zki9Eb`szYAsRCJ-_C4q)gW6V%UJvxc46(CT$npR?K*1TWZy;IB&o1%log^A3 zo0E~+v0gx0(U#6G-7#fx#LkfWu_EK;K)BHrpnPYfcL=ru;+7yx4w2_Y>=0oNGVHd&xCz!YQM7uI()k>aF-8C=aW2i{Zb z1T$Ww9K`yV6%-X{B{oMznd_{sDDNi;ju^EfEGGFM*hGt6Xo^uEu^OAo(M0z0(1{r3 zp+kAZSM+-f8}$xw4gEwZ%t(^TIU=}~8iGiBKj2lY`es4Kp)TksLDcx0axL&(m!W;aWK}0<)!42I7HR>+Sb> zb$Pil%y?r=Tm%d^mUZ^ms`Tr2s^<{6s$8oq`gExe$`M_Cv> zMAfj;$g&3##-LGq9KZuWm-QB^8`A}Dm8un+Ko~C&jYb~$9Gj)o?Y1MsQSjh%HGfFkWf>UaVQ*u|WN0qyP7U*3=m49YfPLXq>T{Au3{`02io1vHU`L zjAl;HINy)$yQ(x9X<0i&_MFy4s6HkDL6rs?O$fGXsKeF_DG*9cj1h`V2%1b8N+Sj@ zagK$Mo~X0D4^a|=bE?s=NP=H{a{1=luYdQ?U%cZK&OiL@GUG|r7?)Fh_ILc^I?7T^p4!m%1>%`*#h?W$up zo?cx_I$H%T3_WN0i0+{l2cnE4IS>jUusqk0i7ABF7--o6`T#D8a@t7)yIJ{OZ%cZXEwx1iC zC3q+PeGY5D@t=Uv(dcqPCt02H=4)5POhD=wIdr=I+$0kj$$&RCUI+OKUr=}fXyMzgYh-!K)^}u^qAzqpR zwK>MKNTdKxot?8isCxqYw-`GZsQ|MVsf{zf4`f**rjT_zpV=%sHVJAbS`e7A#8PMg zUKldYL&}5h_UiV4KIX&7W|mc8{#?f^Dsn#BiPcovOopWo|P0! zLu_e?Lo~9XDG8|_^-vvOY13#f&L~!J6QF|2ja?b7?c&zDPFN{^dOs?TsTmnK+kLK= zsU?_=8RDcI=!5!th{rjkLM4C{ClnHkLql*7QHtm^-kH*mwzl?Fd}<8PKpDm0ASx_0 zm>9URco|5(#ow-cNW_VX5+b1T@!f7^H+^?$A@T82M6C&#PmW{Jgz>#-e8|YyHF`gW zCW^7yP*Qk3p_IfP6`qPCA{P1LwC&q;acr^`=OUUsa0+upLxO zSQ|pwAo|cTLY@r4sUqrXL#Ck50f=HmL&TZYh<_B&80<@0U)UH?9)qJ=|>SC2EaW~zER0p?+Whl;I>1db!VUD=im6^?Rro$>~iLkhF+IE$rG z%%!%2OH|!P#k@i;aL7fuKs`dQaL9y4f6eNuge)cq}XCs&duuQwq;Ut)mPc z$}wP)18^KoyfJ1m9ZCsZ1Q?g&dBFdc0=4vf!C=7eAtO6-BJOlvkPr-g)Gv04^G-LYsbS?(69BxhKOrspBxD$SRn4xCZ*G08T~RD!#W zfdhyGrTH|VECzbQ{*A*0_xe1=glu!Auuj-#ipWrzQn2@#dX7CX_jLl<54Rb}Fhsw% zcaP(F$@-V|_7=?sHfj4X0s(Dwm|)dT{+U%kS4O657kG@U$KikSbspUwNJd*zkpW{A z*~b7<3yB3C0j>*)SVdn{HUzf4gg}J7Sb^)H;1PI3wka`}LyfUoJ7f`5sRgQ|#Ad|^ z*vc~~vCdQOfYD^$6F3-B8*aEWFhjPdYmb=*g+&=1=NZUQAObkc0k2Wb!e9X?-k`^r zMb6C;E4u^18Fz*P<6wYb_{uyy7HP_QxBR>m385*fk1@&t|2cc0q>&BlxuNNgGmBui z&b0MISx32vi8euh#Rp-V5N~i(0m5UhS&?x>fiz@D=njhPcXv zO&J4gyk4jIdl2#-&!OJN46r*p2=r3nAdy}4IyPKQaK5|`*r-=Xl*P#^?q@zD(r6tf zq=~VnT9jcnh!s+>+OcTW&CsYJ#fpRp_Sa{ugKAC%;mR7Q!L0+Pv_P9e3s#8odJWhp z3a@skv*!|$q{-eT`~C&#Eo50^Sxjt$i05VdTY&iz2PA4{$la-rXISwgryE8r_|IiI zzAz4A!bWZbVFTOjV+1Z3y*7NV;b0Nnd&wGd%9ZmN^IjKqRI*-24MkSL3*`KaFNVx> zMF!q@9y(ZOn4l`0Ph%xzxtm-w1}Q$5Wto8+3~8eyQ6}tIF(Iuu^P0Mo@q(Z^SobI7 zpy=Hwf)*k7qLXk@SR*xsF`?DqRHL*H1Vh*b)T-?DY-(~succ!WAO2jKHdcf_D3-7Q z*~IB$iMjH8H^&QC^^A*&d`-YuIz7>!1DgqW7QN3l-7udMh7Bi;uCk04Q0?2$P+m01 zhL~-j=3oPHA^?Lz!o_#5)K|cE6>Nyf7sLXv9TE=GVB>^gl9?4wubIWp2Rzs74YHmE zuEsO=prFZishBzA=UAviNBMMF`e(ciaR%iTD`QUCO?9Zjk!R>ct>_^bQ>xB{&=2Fx zKo7=Z!!C!?;Gn@iRn08T?#+*>KXC69R>y+FW)B4ery=+`2-z5WslRfF(pTZp86rSZ zh^sh}w)B%%JlGFs*gpUA>(9Tsxd`ECCKn<7_4Q9aneSZB{-%$a{(imo3Q9@GVywAX zguuL^vnmNA-Tg~E_^iJm?H67L=jXcpD}OxSe&iqdzx%SP&>!c`mzr)L&|mL7p<;>t z>}P*>H$s0`emZ{s)9)FfSAEKu!m&w*2>KMX-Fqk`5O+e|xb9pZpL+S|AAbGiw_mvM zqu>4hv(LZ$HinZ0Q{MW>bz(jd>wI7N`ShpX|B>&jPvrKjpUOEv{tS!?>Un>u^*r;( zHu+Tj>8a+f>5pIWV;|CHq^nr|?;GIT7@Vix*Xmbo{{C@2b-hgO<5M3xFu#g*^zUEA zy86wR|MsK*{nZ!0{pF8-^SfVu@jrg^FJFE806jEA2~mHO$5im2apR@iNWE+E-Sqxl zi&N=i`z|NbJ+R)&;T8jtjP-m(e`)qM@*R`E{@!>r4K!L=*5#=%G_zagY7TztlD*lS zF@_^-?=cYzUqEwvRVVSI`AS%0{U$oE*S!smhZr{$8KUFa}S!1|}= zTK2^=4*|oBpij88FSnJv*0$>dfA8w&hNc|v0X?xigM2}r4ONRDg&K_*CxN2bbTgrv zmZsVr{Gk&(WNJ?-P;9dbj6;{!+lZES?B=XzC~21e^k&r}#O|lI%rlfr%k?+~c!TuJ z1}R#sup$~0Pc>N74}n5&4SCn0@>Blz(KD}&ljJ-jBe@7vW^|nS?jHX$!}zw2tf>vH z6-&MTJv7w+m1Pfm&hq_}-x4~^kPg8sz?f!j7+*nsO`0>BjW)Y>XU$q!1F(8($MP7% zIrEu(T!ms+)Z^&l306f%p4@u%Zgg7be;+$KIFSm1C-emUjY+#%_o9FKd>`Gcn}Mfy zx!PTzO0COg_UBVJ8`W*CM|pu2GPSwwWhg3Bq&Aw6SaQ7XOj608_RNW$}zJ&-4wzhwYFPTiptRJ zAmoa`68>KCyxrS#5%+TlKomytjCZ5@ZhrpmXZ-J@=Lg9hlg^^kF3NBp_VZs-LC+Mh z{j;T0J=-ti0ncv^9ME`FdV^CaLzK;eL9WW{!`r-M{YTDs1)m_9afe+a>`mfrUd|3` zWuN--ELql*HT9n4l04}!GW0<1t1a=Do|2nIy2uMfOmJ~a-SgJ~?0w^R`_hi zOi~u2lvbb4J7*YLI?qW~$~RJ~^Hg6|ogB9x8ux#t_f4J%a`YCxAg3%mPpVyq^qU(m zx>`*R%-y_fny3pA#np=tR~o3Mt~HjC@fcS1w?JE zULKnHe`OpBJuJAfK`eEf6`1YhQZpEX?Z=34{^l>q_wpp?B=P$`!m3aCI=q65z)=a}UvuBH7SCyXzj*J~_5E0U z?CA%$6+^LDSZ=O8uc=I)^-?i!e?#6WNOADZX4J;u?1SdC4YCw$xd2wnt5L_ZscC(H z?O_}?w5F`ZjO~LUgt%sETd0GQrqpwt%I@jJFP=pUY=ffH3OicptxtEjw%5JNMrx|H^8u;29=x#*fWxYSt*RT`QG)f(AF@K; zIQ1T)KP9yexeG&n;y=+#9RQl|0zm)wSD$_U&)=;BPpOwW+O3BCQbYRg`*({M;Er8I z=*!|cAB`3zYi`3vY>Ule8^@>si^iRRP%pe>^|w{O@q@s%Nh?JlH6iVpHwGw-9_w|2xXfT*=DP}LpO^5Qd$2YD<`dxxn zZf=jArK)$MK)g(rTJf|M&u5o=B%I1kHt=|sIGF3pn=~9B$ZqWdJ`x+PJbp03ABDxS z<1z(HqGOA~Fh@ifnr2?sePp>&+>1L8h5FsWXr6Gq!$c98mnxEpzdv-qihmDnwidoz&D8Bq^NI| z`FF}*77jOW3iNR~BiNHX89iREULH`yRxbPBwDWmvfM|E~45xk`3Np=(VAAke=X`p# zJfs{y$&Yb5fCg1uer1FLwWErk&wbrn^gzQ~P=!oS`4fn}1<@-nX@bhtu~g(^tFW@qKoHJxdh0;2z-uX2wW8$|oR$ z0B+4qbFj#i50plCp4by%JaDc?U{@bZk!@d`^DAKjg!Pt6X-I1jMR>0drG$h1F_D+q~N94@1Bp-!nnil51==&%0D;&0YB8_|{jzV%$co{D;8e>n}e4_9Cc8W{mO4MUZNT26bwV zH5ppidY3Tf1%kzYzy12N-+uE?zx(<(pqp<$`}T|fPC$#?%v_&v@83Qkfd4mNe0#X4 z@jL75yQB5p_2o&lO+vtw^+HUXwAAVCH@1#BoXm9mDGo%0)RXO~Ptx3v1&VYSf}BVu z?bhYj#YP%q_l^I-W{hU)I9ao`!q`5=srf4JTOY8`@BXd_$C|IrR^QtpUI8(! z-YD5(ylbdxo%!x_Ke*|K&H~$_qNf|@99{oZBOKJdOOCdSwWPx9%}(9cIlCpfzv4qgGALK|f-^dPX;Asr`9< zsPm48iuSFK?qxp*DVm13eVK!rsixk2dY%&2V)A=v_w?DFJj2K9vl4mO=8()i0KML__sScyBm)jqPQy;i&@2dHR9+taTB7bN2cjc%KBBlEayoZ zKFu%niDk>9-=$oO>!g8Cmy@YB>kz~%&+IiQk_2q`A(#wsLRtBd>qvEJun;xgD`G6sXcON^u)Sz3lXwSQPzSE-D1Jdo4fA@)hxck^+ zBkr4b|GCG8ylddCo?m?IIFzDPLvX^W+bVHl%e~%Vip~DrC}d|z5}iJ6JHnJAkd0*OaCz)Q z%66B#SIRy=ON(pDnn4j~qQ|ej{`#kPt+@a9%X`YN>v`XIerWxEzn@V`+0QF-raQ+2 zXN^1u5o5q*>;TKpL+0o#ny0+a^Jm!78OD6dxxTMI-}5_h58IJHFcJ`G==+py0=obG zS!LO`y4-Onj^*adgq_V%sk=-%9+ao~3^sLg4$ofWZ9!W03 zL!L$8=n!&hlw(P>dMuFJbquaj{kJKK|V@9gC=aIg?jr7Tf0)zw2}m2K;#rnP#R5m=;b zXeZ|jq07~KTfzXB7Om=~X&Pl6PlfIrGgfgF;Z{yjE)m6n9h4OT=TWAt-l9roR|n|? zo=VN1gAv3gTHG2<+8ih3iy)ilSLIi~uT$Q)vNhP&PFcCz=F|Ck9*9?m%R{DrZ&{5M zW534fd=`&|(wf$BSvx$6l4oTFLWxP~&2uS?GX z4q|$X+p-MO$vJHLNmQnV#ZIM~eU>5V;&PH;-Ck%a=2PyceEU7ySgjqfO=S{eCjaKG zs6~~v!^l}9<91PIBNB`i`%nz;H;IX4C6)b1s>Yra`)+`z-`mqIDV+9MD&CLe2N2P8 z#MNk4a`7%aKv-1rC>py?BoZs9oBJj>|DaB_str?6v5xCG)ouUUs-{~FP{Iv8UM)SU zbKvkZh?;}nA#C>GlH#x5O_@E&N}aJ%hqVx<*^6-k8SP=0)kw-p+uIetu7xtic2uP| zq%7GVM{=v@`LpXR6o{^N=jXna{k!b*_vQ2bdcCV|Kgn4>KIb?~8=NS&;xfG!xUZH$ z%q3+df;vY6%{RL9XC8XbXppdQdu>1oJeIwW+IUsYubzMX`|I~#%0FBi*w#0)Ijep2 z7%lMIiFR?kE$g$Kt>CrXy_Abj4lQi$xl@_;SJhq@O1|8E?gtzG73DGJr|>BRY_(&9 zvp<5487zj1|8u%i?EUlUm=TIWvp{b?-Z;vBi^0!5lndDvnnM)MvpiO17dd2K9mmkw z@9m6sr(_kXls$g^g|n6zk|U!DxGs{oc=2}YdAQZh@vfMq9G;TnMVkXA@T|2L*ZJP5 zGu=v_#rdu&r;@Qnun7{k7{&RO*=eU?NJienaAk3c2(PbbwN2ZPTfr?I**6wYdLqXD-L7I99y9}ic4 zc8)t+oRy71v1Q`%_i?>qck?}#hwUU-5TJ~h;L=SGIe~&5GHxsGhf;TcwsA0a*?86c z*8yOEo?$Q_)b&5TD3}jx_FscwK4_f&3&p^E*u4LRhQNH#;QTcL=Kpa7%wGds-VAX0 zGYeGt5BA_+TAa!c8HT@xsr)re<*#8X|0!WAAA}$dU67S7CKacYke?guy(H^7>~Eg@ zKAP~`39UbVC+GOTmD2Oe-*ec?L0vL(y|nGlJL2d3?=Lyj z=D$iL&G*mLpJt%Ue?}b4$DgWyabYk&1bDoJZn%NI<;umQ5Oh;&Q6x5?woQz-P_rAXgj)- zy3^m2r)P53GNhz}0$@b8qX6VqnzF23H>Yu3bEY7RB(3ob_T5bUKz;Ww!WsLGk$CWP z-tFe+OispkuFmtdt8=}HhWENUdy!Gy`@EgMJ2QV7Zp`25_n)m7^PjGh@?WA4@`urZ z%MLAI%GBiiOM2C;+v|krx_>9WhVMgY`b$o}Iqg`a_xXLuz`^BqB&;VEPYl($%ch=7 zj0%#2i+!>~&k6!xikqLWT!*Fdee?cfkLM5T>jyhLe^__b24- z{9(iSr|<0iVg2||^L73(3(KFqtMdm9!(W)E^M|e6<*fX2x&$aI1-;9b9ortH`#4o` z_tJ9t=0%jw^UA(|^BTG=f-?m-4CHT~_b*I{vKo<)VH$oq}ei8%&*V-Pc2? zHS2imN$uMGJYSTWTRGz8L#10!g_`YNyzSo`B3a&m^2b94+I#z48mj}Q9RFV-*=lD- zxjPFnP9a~)@p0SqTD*DnDHlHKL+3WTVwYn%Ms538LcwaPV~O2d zkmc~t72_J4d>l*XNyF~oH2kGgaXC$wrLbi?(%~p4LSpIlagqtBY%f^R4Z0FsHy>zS zW)I--E$FJ;jBB@_`uX?}2~>3Lo}3fpAB@kLUY^P#u3^j;i(Uou$+^o zR+Gwc_|?c%V_;5I#{hKuBL^rwdkSrmW5j-y!w$c=5YQJQCdMfr?`nNM`#R}H*8cOm z_Ut&m-dy@ZbA~ME8sqF*oGv14kD;LW^F zb>fZFKCh2+Ck1r0pWkP&L`;lrzxeHp4AU!HV=3S5`r<6@%Tt`efpR|ZRY)am-Jpui zLZ0i?w+(3JQ=4S{)CFVRQ!B=F?lbkShO&IQW8G{Q(^*!1`|;Z{(^+G^f1Eo>+PS=x zw>9$1oE&9IuVv|{-({T{XQ5>|5rBN{`kgE;mRrM?7{_kvvuAj}a<&zheVQaKNVZ^U zmse-!4~CF`at^W|2CDw*ANyDT*gp;b*jH|H)%k-!oGWzxp^HGggD^T{+7%c919AEK z!}A}1m2emF`84&V4-+$|Sud2?z6u3jK4ST=kgW9;WzHWQ+J9;+}>H?cFX1cb0 zJ1B^2v(O|?9HJiQ4k9j-$L*%7+#KnryU2N6%ZtcAmLEZ7VA@fWzAY;`f`=hkHWg6J z+*%X;Q{B2kQ5{QNze^*)w@#)p1u4>T?$@L4q8K#BX{XZ`?kmdz`$Ryde!=mC`-Y12 zPf9DDeg();SuiuplZ~?O4`Q8||zX5Xs3mO~A_%+cGk$*ooKWF;RL)7cawi9$RS z9_Y+p?Ig*f7&1;SnP^wK|21Am!&B^I<1WSvs!dTKXxDA1(&+Hn99?;?nl4}Cc`iPV z&*dqYJ!0?hI7QNk4VlGs>6?Z)woV8me%9JT3ffH>E(dzNg6h!QlIPsA$m-*wM@(v5LEiN7)Q7`G7zeQ6+$Vfw zsquN~@vh~9W||dVqN@d^dMZF8i3gEELVooqKt+SKhFjyitEalYrL=+k3Pe1yK-4}@ zjP#a`hoY|78;E!R+)&@SXr2W_knwWpj-My;zFuC<)SHt!5gkJpO?T)p0%dgZbjWyo zwiJt$b<4MI0j7*NAT$^6AwPx1v zjhS-r=W*SYj>Es_cyTW-pVw7PdR}X6>bA>EldlBLk;64wV~2&B&e$Nlr`9SeH>+;%ToFwt=dS7yVP7%CRF9*s=Ahy2Ft@lJe0al2Yr4E^%tPP<4nCdsa$~@(g5Z)_79;uM23rs(A8jD*T-_< zt#_U%l?#SX87C>Te8$0;y0YAtzRP+txd}bqM?1y5vXZVC#)O%sVuPxBLZSpt5@Ln8 zRSb-(=)UB6mdZ#-QO>#nR`^ZQGcblP9)~H*eMXa=x58f1snJ2E22F3bsUChsXQM0O|SLe9A+Kw%@pH17&pOT6hd42tAG9yhequa z`^bVB#i^Z?XNE@~jWWt?L2}#a9o9LY@NlVotA#6z?m^V(B;0s$eS0k|N^86j9Ugme zhnu}y?t49T;9XL1Mjjvb5YV!pJFgVid#o5>EMy<)1qE{}%TqMcQ7pVlErGQe6HFS7 z`c39fk;N#w-r^KEu=1y?II`qWW+!E^ZG|&zuaO>zm$W4JSpLc~CMhUevfK$%9Y_}6 zJfq>Obg$W`x#2ftEa0(m`oxJD;~~;`Bs?d;)KKx;&?igzXvO%^LipVp|J(PEk$Tvf zh8uzwwjJy>Hb^BI9vUX+9Fa_HqTRJZK#iSvvHuX~I{)dsHN;6^78XJ%&YkSrrElwn&}u1T2)<=s~9d<^=Uoc{@xDf zaT{y9EIahS9kWOI`izKpVU7=v=r$_`?pd{!Vbx~Y9zB!Ra_E#2FD~C$ZrCZQr=mSs znlwBxk}ll4z!i#R1khhAW5cI!E0re9YbKQ`t3lCat4youFj7MS*-xZFDix0E-!`Sb zsg;{>remB~&gvXaslC78Z?4ha!K}EZLU|fY$0()$70fd_f+ILT;`_Ru35qBgtX(1^ zU|uNubU_ktb~R0fgGUGLyR37IM}l$C+$epcfnv^jr! zq;~a~v{&OVR67ico}jNi8{io%EXg@?*daT16#{?}@1xLyX;|tCwyrBg6(BmLDsvwc z%)5@$pC4uSmRnGCkI$_R;cm_S-E@v5R}1!Sqa2fq0ewO_=0fyud?4)6&fh_Nob^C#V#9*OjGLS(SOk%oJ*KJeLu=6;*Vv*`dYZrqzt!^}cEIViS z2i9?7q<~Oj3^~-r9EpV@8WWsEd7<$UWzUKq*!7j#^qq}*MVBsGduJ9|xV6FRl1e-7 z5%4vL-50p|kb)G6B{FJ%G5m}aR!e*r(l9UU`pv+nbCr!nwU270ek{A-!v1LeU`M*1 zFGYl*dIuox&ump0T7>A_2^ZOPf74kgh{|a>;jolKN|w6Aa>$*})WyJ%Y>$NLcDTYJ zB#y-#qaA>_>Cr-+##m#VM>wc<>4|t3dRjxdd0(ad*X7}^(1m7yHjb&~;@ZLs)J#Pc zu1Qx5HgyP+S$Cus;qI!FR`BctsYHjxZ;;u7SxC1kodKD@d6f@}WXUKEanAwFDkd!o z|MrrjHuF>k(1U!j#u%s09XFBA^JsdOAhnp18A7lf$$Y(eH)x(rllZW2K#6rfBF^hcH{h?K;zhuLz4QjrdAF{4_?%&QjtWlo7E2`joS zt42SHl$Q5f@@avxPfWN-qPKEhe(>lu$qvBeOg4WXq4qs9S+G^ z<{syL=Nu)aTCJv-o8{1^aTO9ma#4O=dvjrbzn+her!V`l5B+T1fay zzT3bq5`D)*UX#MO8|3y!>OwIerB%53^IrAV84zah?3X>e&pop1D&Go%bWG)7!iRq7 zTw1qb=!Ro_vU3DiSjT)+HH*xadU_o0Ttq(xjW+a{6X@4a1BIgd5$=mW!vNZU3vdNW zY6^DqzT-yvoweKKz3O`8BpqJ3BbnY1P(1Rr0^lmsH7RK~x|JGR_XyCJe%hW45Fbdh}Sa}q;dl}h!n`h$g&W{Mf|-RI1@4%mJ&D^wv3(L_diDc93C-R}oPG;SqSIrVF zwowTR=+6?cXPTnt-PIT)!ANkd@I5cDHoC;y3Q7PdH6urMQMvVRO?Ugsm-w}2yu{9Stp`k z$^wCa^7xbu@7d`lhPRMNWd4_4yI7SG7)n&B5lI;z#%R;TnV);5UIeo4*J?weU6u$I z#W?FcEVd5Ypzc_{R03A~T?TBtA#qsB-2R>7p_}D_YaK(QNc+>u;|F^R@5~CkH_;?m z7w5mtC3NR)1KzPo@~AE>Nk96)cM)X+e8KLyGuLcVLe{b+Y;_LmOC{IWHBf!V_@{BL`M+@X-q1zP;TTAGbwzh zxigmx*Yrx!;ZB89QVq;cR)5D8J*reUP{*ku%SKPZ$AI)FVsM$p1vi4~&XL+8J=eUd z76LYGEde_Du&B-=&Gk3S{m8zK?Y0UTE_U%TyU=Ru9UVkOyi*qY!)%aENV3X3ca-y<|&do8xufu{k2Q zO&(pzovI)z!!&qf@EuRBEr&LF-@9L%)MQ9$p_6iFS#hrs$sugO!wP$6*@a+-5A2N<~Py(Wyi*Z6zT& zfdG8%v=i-Z!6g8QH?a|O>AIRT)b<7@qYbZKC4~K*(>5avUXKC^XdF-2ja7m|t!SBD z{(y_M%Euzom?F(zqZ3)8<^FAJ1pZ`u>pivUYlyT5&P|5Be_xLmNMi*p%tc}%093IR za)%CKpgLsSz`XRKR4&2UE_?USVUz<9l{I+VJl{!)SOYRho0ve>#Aqx@32=X5VZ6(- z;!oc63I<37BP%h1& z2j@$4ugXJzq(`wWeZ~H;RjZRF>qDEY(xwrHOYz{t^bEnAx+A3+=T9I!8abQB(UVPr zRZ(#^gUBoU*Zc2ci8D+L2hE4`T6SE@S#T%&J2&g@-Mrl1r2DN{N}*5{o*Im7Y+6)I z5qH}`7o$yd^gop56hFUk8(99>!874O4@stI5sFq>7bh;YujJaM+u((LocL!Ztr?6t zXew>c%q$=IOY|h3;cxn7{;pSpLDf#a-$dwKO2x&{cS8pYN;)y1tRc!4((G7UxcH@6 z^dqCx(NCPN1~AkTc}Ki;@Ht484|7n<8~d-4c6kaPFa?&T4xm=V2tH#F2}bhNc?Ja$GhnAGZrmn*lxCzzM1xz5TI{#`QiS+J?$i{=~k?5gjK&m$zc2L$z(=VQK zPJxU!KupnVM48zbdYq^)2p2<5#ug1Opp-*bz)a585bMB67FMQ5sw7IO{b_K3ZzfVn zy%Ui4u7Gwe1Bh)s#kk4KTbe-)yp($}DPoKXuzk~K@`zTosF3Ww6@QTW(8JiYy8d1& z3$Rz&&1&S0DDQXGKD!v$1B_L}|PGc4W7{Y!N& zkS{OAx{xS1(KxDL9eoRBrQ_Cy2OITKI8rjMr4zm=Za(`Q;5d?IYM_VOK5_*#6yUZD zXIGL+@b=qtzN86Gkf>FExz;C}+UhT^_T(n=nejxI9&MPcS{07hP+@NKe&C{D`o2@? zZM*iFr>-T*wm=?kc+75uU9z7Q5N;4d5N9qpHZ{`UW^#ERCWLd!E}t4;n&P-x3XD}w zU6=|658AG~zai7aQYMIbkxBTC02`dpt||_O8^)j6Z3)v?2_ki3aaFSVMw{CqX=7HQ ztGWA^VP^URlmOWTYP9R0s!(=~66mRj{8SvQA>tWal6Y2W#hX6Wps|SL0(T0xMO0`6 zLRerZ-c~;`@lJOxZtu4OLbB<5H$3PxrJ7PIg+E)I2HB zHngd=zJ+eLagmeOle1sm?IsI#cZ5i*)_g{jo*J>^l{ocm%Pqy@>RlzmPi`e1_z=JV zf2Tzt7)JZeDx&8!q4G7%zj@7aebju}pBx871;L>@ z#%gMP>`OnZdcHDg_dkJ*cT#fEaH*Oc`cK8f!2N@jLi)d>`^87}Wby(hb1sW3fiqFw zauxb(5U*OxI%`>|#oH$X-6hYX`AoA-kVFpuDp1mvwM{!xqC;mKn$t0k+lLce*(8Nf z_i!r04z#e&uog+draA78V04)8j*?zsbd|cO@RT^!YHILdVghL6G=$7x4Fc&VbO;hK zlvNYmGMfnw-?+bUjO^sEQwQ=B{3WY)*XKA?K%ZG2@wbyPTu$_OFU8p!b~&x0+j1BbhF_H?j$x z3NzAda)eC52G!>3WgV5#BK(dnE4u*0OXY4Ik1aoIPPyJQV(R;8xk!m70R3~#>0Ry0 zMG7v;QB*~xrR_s20FDNhx5ewwosU(qQDw7k!*AfM3k}usx0F(++xCyAGv{T-gu;qz zVqEWhw=486K*l7hn>dPjc@md0cF!+&Cs&CTRVh<Yv>3oJ56Z9Zw@`|?2M3zfCnN9ei?d7p{Cw$71)EpCB64{okK-hVkXXHs+={3*i zXs6Qbu^R$ZWPx_bLpyTlL;*|Qv6uruiRklTZ%X^>ss7 z!CNwtaXIhUsUD5^pP57V849m`_Jez7yQVT4Z zT0#>UZi3=h?e;PODXl&vF|?LRyv8LfL=GxWJ}SEANzGldzHOEteqn2e_ic8)Q|qG} z)|Op8b5R0Zjcbp25?)l@sa;-Jg;!i;q$^|z36)NAGtDJ&j#zEB%5ePt6YE*CKxWG- z6A3|2kdrf@>1-F9FFL>o+fyL6i^_9R=ezJ8ROn|c zaTGZzv{aQ-9uQc_wCtI^`UECcjQAcDT6OGL&HJf6Vj31GY+t?=`REw)ct=**yA`z| zhyLFjV)l=&qhf*P(X0u~OXvNo>`_If1MR4oovof2MY$Vkj&< zs2^(`m}D4ZTK^;WJ8F=UA;l}C6^JDSfmausRMDFyBOjQ&hyJB@6ZmSl?YnX|<0vd7 zW}>yPn)>}MB^EkX>!hc)%T6MkE^EEUA4@=87KMzojKSDl0)hmp5iH=lDTMYbJV!pK zZo|^ZGzVwZ4=0^!>U5itGu0cmXBWIp+o0p*NO>JP`80ZABbMcY!gr->!YeMb@`paq z?R#DRIWb{QxV0U&hcGSdYGu{bo}M?wa|n$@v$caZO^l&~b^P|H+hTgH8a2}}yerme ztkZIhNq&+dmm*O25kaAO+IfmfCz8og34|tCO8wJQ^0oP0l!Z-3x=ch^!xTT)ZJn&S zA~#uK$it7OVEI-|?PAaE5o82FYy7$ijauiD36K=LWi9XYf%k84K~{$gTB{ff^AJoi zZ>r4t^p>IE!#D>I(Ow@Ezq>yl#on4*@pe(u4S=n;oOJpnjEZ=n>;*+K3lb>?=uN@d zUeCSb`Gn@O7AZ5*ItaFII+^dL>h{p`C$SOgZI|dX-VVP>`qF?)a;#ub7f70#dMj|X zgoHB<1iS^)YV!H8+|EP^KhW0J6c*ZVh_!Yr)-i^2agKeV^x!7f*H58xRXQT%9V z*4|!+b4a+&JR&@@Y&lbq=3@v{f6mLlME|$ZE&rV8i-ucCq0a=^a#aq9LKyYYv7L|u z?=6MLH#@g|1lKZ}b(UcgIe~;GC%U07h3s`-+etr|i|!A$O~_>fWwQ;eg*Hzx&b)AW zB-9_IO?zyQmlE!6mCRgMCr#adI9MSSt$fQ;aK<{5ubekLpcPWc-gWt8H$XzAGUz^> zl*mP2S`f<+_ig#(-x+O)fjn>;d{fVVXttWOcQ|HZGyj) zqD?Un(kvY=-EkyinS-6GWNU)o2`ZUu1~?+)0TXrRdr|<_Cyp*#Za0(XNGUpk;{25= zPmC2$Y-heCZQ<-_rJM?49HP)NI&T(Jr67)fKj22Fw?v4uEeu6UM&%Mzq_$$}*Pi8j z;Ms2PMJZJePrdV$(0`c^8J6m{5f~bY(<9sC5#*xM40 z@A};mNH3j^#C^)4#gu+LDmC|Nm%CHcIEf-?!uzMF5giJ8Qi~;mHnA(+rM>tgn=@@< zoR-WQ(z4X;J|Tu{2-f<&Jb^(rO<9f8vM|0*P0@MNB&>!a2bNfdw1jQ`pAi;?4+9pZ zbw~qAQPsKA{UA-PYt50)ucJLZlb z&qE{Hzx~swLDMYN{M38hvm>u~YjtuA)}6w;cCsm~sYC7FY1?A$kSwXIT(#XRiZX!1 z=Q z*dvquLB6CWJfrMrchZ+}o$+xoMX_j#IMJL}O4`|V<}p=Nj-Q4s?KOgRiL^a+Q`EF( zaZf}7A@*A#kPs?3m|c!j(IcnUnWfg^Z3fEN%x2Oq(~8?_?Li+7r#$6%M(0Z|R&dya*L&|6 z?Tz@(1(5bJbH&k?ZiF>osZ)?yV1p4H8;Epw} zN7ggy(Id*&KgPRkmYoaF9`8H)-9!Ax#}u;ubGoq!3m9|?Fy+=NW{%;;Di+=ATu%jj za{U6qe%+3p>Ge)vN*akidU^2$<3~Q;Prk>m7meF*zt<4~UzG3Hk17WL@9+B@27n0a z;{V{jCNA%av~$;!7rSs`b>8G>+Rk3yeg2K@epvfle*^t*gc?X#Sdv5#5D<+sFc8K6 zjZky2G^R5)bhh~aFw`!3WRh%t7;0SC`bchUND#94{#|Kk8`Y?E*bq=vLfVc2QdrQz zlIi_nz=}$5&pmxDyvzVmJrK~^@xs4|Gr`-&fNF{BEo4{q7gK zd~nCQrtJB@_gDK~kJ#UK^?km^{9iu%{2s2_aWTG5_x-=i7Z^@gJOyT;<*YrPtw$tn0ud-eL$IZAM z-^X`*{?DWPJ_bNV%mTx^RN7~J-WK_jyTJFWz>3=L=f&+zhrnUc>x}K_=E_ahloz$} z6-OJu@`$VNamH`aRN$b;{%fdg_v7fU>gRIVR(-|BkLT$MrjIUCk0(DVn{7SKR9cG)s5b97a7Zn%mc#c`}+quTq|QD<^84f*@>vHj@fIy%Z2hk=FM z`#n;j*E(e>p)`%N*Oc$F=hFFNdFEruZG2B6ka zV1sQ`g7(bx;FcBVoK?K~)HL}?_032p&#W^#GtVh`?3P#3Vu=ZaS&H}#*xDX1%TFfytayDg2a#~0adwYS;4!E47hC; zk9}A1=3X%^UAw}vzozM}9QEKY(JBZ+zK*%|!oJ-_9Y%8T%;3`N$~9ioipub^!D@Sc zVoe>hcJ!PN2(=^&4Y4=PHjkJJ+Cl~($>88@$gEuKU*7Ixjv=t%rx_#j^|n&fsAY$= z!%5rFE=PBX$F#MixOm1)2xZf`5%YVsdg$7y;_#)ihTb+O*8ZT8pLNNd4=(9adCj%8{Tyi#-|@f+H(_rsKbmo%%qD+MF-{X zdp6uVR{xw{dahf8c1wLXZrGX zpvgt~#`yM)b)4?I^PVPIlaF~c#cWn-=VkBsd7a`hV}Eh$0FDh`RHgdHZ#Gu-#d|sR z*&cFcxbG;@RwHw;#%Mv{${9l3u*Oq>L$Jwzrwy2Vk|lzxow!%nX=4pC5suzg(K5@0 zRv#CJ)oQeZDn4FNUa>W+^`p9Esg*478+&w~qf}OY??}O!#tK?iJGuMm2l>F9QnKd} zHM2sVYP;$!qFk*zyZF~odO00)dAWc`AwPxRRQ^t8e>!;BlhZ&wHEO&sj>EI!ihWJC zHE4ArCmcMpkIM%7;!4MGX=Z`rnA+l|eo$5Nhda-jHy++L-Rx)KapOZcK<3>0oyBpS zdxApld?yE51R)ljM&{}<@5aUua|}{Acqm@f^GMx9o;zN8v}gNY=^WZl!Rdil0O2cr zrtN`Gi3^|c3ADTg@YNa+zFKeqY^=wy*RYRd5}0gUjUtB&5$&xVzbWDGC8 zhDw&PH@pVD?DJvA@K*vGJ4Pf-vOFY#G6P{Ddq+~Nu{#E)0`>>51r`7scU>GGd@h?2 zO$$tl3J=ZMAGbdMJOFBwtwv0cpgHZG=1^alPo5B0$I9np{q)OmLoVC(DI;_2d z4nFB(nm&XGy5VKpfWNU6vW&0A6{0$g-r4lr_8`dsGNy*gED>`^)+%!?|N405+FpY@ zvzr?}lLlTG=h^K~=Ea*|{emY&6_}$aPTOIcR~$k~Wn#=28_}95%mF=#IZ!VSm6|_< z+XpeGOT(WEz(kE6=UrPzL`=+K5_RtG=~ z-*7WIw;4Yp%X4g86_pV+@wVuH1dRBN`OW>WIP znk~gQ7F>;ao-hKpkC8obJ^AsU-)U~ohjwIdLL}>~X$Na;4Y|m4_l84^w1O!FUbms< z`KOPWB`;5Y7L*mefJc~2+(cwJP83M7=S)FecOM{*{OFHvj}Q?JJ3-Gk#yHgl!laq2 zOc<$W$ch51zp8hQxtMul-?hFpuW%tMC1XdBVvY~i4n&Mm>yaWo9I!mhBspV+#WAer z&CueedBNG@lfdHi%fW5jeHcJ!+}KPPT1|nQv&oz*i|?8vk)Q>nEi6_XjkuAkWw49p zYCL@5l>#V*LrH4x)lJD24&M|*3@C+clfKPF)fcW&5(Y4l(5iZ4BfAfU1qc$5w!$v~ zpHZ)<9==Ntv4O3KWuTAf@^cHc0|bV>4ZfXy{W$>VcvfZh->df+iL|X<{V0)s80J($ zGd|`Ye)$~9R0$Z`b*AOFy9Qm=eyOFXus_YVsy-{RqEV+^9wy-A2vy>iN1 z;{gjOU`1ow{k@~Lg^h(IMW-MammN>6V#o^6Br%POTO~)&dKgrvS@+QTcxlRv1{Fm0 zFtQ?(QfL&IDLQrZ681H5-ViW5$oJ8$eXpO1^u&nyIEAQBf$G4p=IC={Q~2b7di+;N z)N=LWM45Dq+XKR_(b*9pST9}4)%tBMPj(Xn1;Kbn+MubwoQHV8s6!^6^GyV?#BeE3 z#9~lc{IowObq@?c96fl>@!6>w+YFEm6&?(TZ`<<|c}?CWx6t63y4H;~f+p8$NWxpg zcp;4%i6^&Fl4Np&pc@|7KG)ba(eXoqaVzVaH4B0d-NG$I5=Q|>r{Z^*t}vc~m{F@^ zrK5|&TWjjNw5|Cj@Tvi{=$i%&Bqzjvxelz=>c!-+zFM5darjz48LizIr!b*|nJ{J? zr-BHNo3-U7rOje>D${>~yFio)j z{2yBf@Y|pI9S}1OGg@$Atq%=syc$i`RVLCv=5eoi&TbbKQAfr^zcbObw-CG{AGFW4v4%7&Bw z$=5S}D@0=0zmBgwA@8Nl$KA4*kFbyb(XB?$J!`1y{*d6y@w4r2Cj);!;#KOMdPpZ5 zv_R=e(D|@#pklybljE;}FfZAc_od`zZ683hM{jD^EAVS=u1B|;W9R6WdovP+y60+w z!2f=PBd^a~Vm7ZS|H<*6MO$PhGZN^pBdp2y{zmA5W^B;~KPr*hgX2xxh#}AZn;;`Y zr23N#e@o}Pt4{F8mSfH_qnEGOG!{r6&fR-Y^xa-yA}?3^+lYtI>S$-2LL3HhzPBdW zpe_5*8#I~x3E3*S*t|XL3i9t*z_BYX1Rwux|E^Lk!?&MF1J$dE^5zxTsF09c-`Iqw zU;4@vhX=;2e!wFwSs({p@nt-k@32+c6EEPSP{yRfWEE?SgUIA{ehp?6vqx7rK1w4I zI^Gdw4^ImHv|M;K#PctMmxLxWO{{OIIGa2ZyxyO~nyIn-p{?FW7N?tcMeZYLxSSYC z5i{^o^-~+!1b=e_qXET){_WiENaXk+eUba<*R8$xfjn2P6{!fU@s1IGPyxDzJ*NA0 z2c&%GVN4Mw)tHd0p~nJd`RYgP#0TCU`&~pc_HItfsqzjd34;U{y~d*A;vydmdL4X> zSG`g`DNgAnd<<_y<~9zO>yX%R@j*^{ZQl)9m=OFWlYfa)i?Iigns_wHDV%cGeEN6i zoQK~}rrEE%ez$c3pZfZKUtRj24{d$l%g5h`ZQpl?96#{pDSvPG*G~fe&xpa|Hq-{JmQbZ=v5$aUa(_9;SW=yoMcj9SudcjxOADv0y1tNmPbQ zBYj0Mmofq`DMA=M1Qsm?2>GO6$Pnz2W)|QiE+{)V5vAnYRGJ|;F5ykkC@*Nb+s0s zeWjI@CQ9HSE>D8)N%4Zx?YsBt>p4Qvt$_cPOWFz;jfcmySFD|G#6*G9{7uBAy7)(` z*Qb3DTqnK0i03IG%SZdyP}J*v?nl&TCc@9rkU<#kVX8XC2p=EiL4CF!sReR%oE4NrosH!J$%t&0l`5!BRGsW!WySOa%n*u`nKrXh z{o)YhhL|l>L*|5t5yUN2V^8shEw5}5$Oo-KpBb6LqSKT*j~5e1`PjbkcgNcs z6R{OyhK3*RU)A}6@$Q~JUWPkezT+K(CB8J@UonJZ*(@znVXHFEY!&OijO}`0uFZYy z5NN7aZ0Ftm#;8Za`HMB(S>Xf@2@#h>nk1nU=}_=nIc9yY*-~GXM5&>P9}OBLg9*vj z_e7ak^rlx_C%wuuBRxeTW=!zX^zdVaaQ~5~&4p0f%zEv9zU(_bYa-os-7?i)e}CS7 zrQIT+8_gP9Ce*DHC_7i2Es6PPkQ%Vya$eTl(rv$<;MZwsa z+;+S%bu2T29?AtHR)#=YQcY9+T=~Y*;tA5HsD*gcTQ8O!A3vn@CC<|mDvm#n)}6i9 zxAF7gE>F&O4TUdnjhK;bQ4LMsl1yenpP@7`RHZMhb9qk9%X>S7k5r#6Y*)Rz7~aT~eLkxAkFF}Q z{}|EQ+$_N>RP%^J4g!g@ft1Oz5*npgbE~QQWg_5K%Fip-w*3+i6Zmw_XE4SOB&I5d2dhPHvJ>4Iq z^#9}EiJepOnB_11yxgOg?eCH(KLTwixI_&*IbAw**PcANXSx10dIcBf1@@iKj zeB&wBV|V5is0|Z2085Wv{aQfFYYwydAUM*!>67|Hy5y+_f#hmDJqh~upey{0w4Q#I zk9+_Kv*+6$#CuQDJUQ5&O$i>-8tTANOfi_O+&hJw86Pcziz9}Hzg=5DZ>%B zrw1>u?iiS&;+a+sn*(L1 zHW8+`aE58Jv$nAMGG%mk+W01s`u1B*YhUl)OJ>cS3Td;0hYX!ylp&4zPm`n%qGx*u zMkmO`Z{&KDq!G>xqU~L}PzQzu2b83mB@t?E0!wMoGLQmFv42WB=HEL~mSP=LPW>c^ z7=BtM?;Kh*x*5_v+B*qa90XvMD+fQI?4A{{b2T&=wc@1TB^bQY2TL%u%Ki;%!sWP& z58#$H8}%7U&d{XzfasbB%KVIZslEN*we5*5z0|YebmArX2P897+ED&p18PJOi0$)& zwy(<_(r;H=ejZpFLivCgkpAGi8SAwFfuM$1c`2T36MeHyE>GD17xhF869p_0Tlt;0DQz=X@Q}N|T*u zY7u9F(^JmOFY*vPeSQq&z$o}@^%2gEe~WcYJRddj zkZ~r$RHYWzgrXkuhjmMm4Ih;8@|Shs`A6EP`HpT)Cdw-zD8j}jlb6@9#GoVll&E$0fKnT#)rCagVrOEss~NX#9~!=Ha^1(g`K~tW94ITJiGxbDX4`y*jC< zkZ~9$r;4#!Kv$e4#UuKz3$b;GhWOn&on`$wF2WEeeVzJPXH|V^Z*!1p_m4m989T%9 z@=n~Ezpo$MGeyqOsT8xsn)hz&=wngS^E8tF%?siNo}Gk>K$FBG&QLdw`dQsU&&7g4 zJe=N7;n0kfBF1|6>9c3j&+lv5KJWeU{gVM;%WFR7=)Jy5@c!J4C%puo!pxLqjl`DP z-i~sqCnI$uWD#%=??rYen1tY%#d14E(#by+)&4tJ6 z`5Y!~i@0?e%LDm|=XQ1^f{q>nt6*@C<$bq%Gxpc2nZbA0SjwKQg%Q9fPXnK^ zM42b%J4M92SsjLXRJ$h=DUanE?h3JvmoLAo)w9j)yVd! zgcx-7Kndu}wm3RWGh|NJ5*0jutTUIl6WQD|>JMGX<$~q@Tdab1m<7KX?xFc1l2mUU z9m#C-skuD~caCMTEt)JE4^(g77Rrg)_}7=qRDGRp@UruaVvHjeluZmea_x3{jl}az zZO;(R85BmlI4(0U;dj#LD^mBoC^_kDR~a&BPu|AbyT{zR^`R~=wzujQU)eX^#JI%s zLKkUw*8+xgZr2VeyQl???+{sM^&%V94p&P&870`V-jBN!18DJKkvk3n&!;Ka>XHp2 z4tHm`In&cs+k(2Kj?2PhKLa(?ZyPv7919IcS9TYha_b>{cnj;Eb|45}vIphv5&KtXY<&z47QpJeqIkrW!s)7wrRQ zFscNk$)y=|^d;aE)aa1Imd7&7LPib09h?M@9Yo1IPUr#?YhpnW9EQbm{ZeYihlRCC z|CByYY0m+fH_Euyr9w%iz+2ozGS~l(^{6P$vcg@Zhh>=k+dv}R>N+tr!E`@AR(=xW zXg@T;2)aed>q4y(LO_*a#!2gV4bq|Ami73;>`JhHwkMdeQe^t`_j?D>6$^V+OQJS3 zDg-I}L!#S(`0EBr97pK+$e>EYlU8SUHx^B7S3j7S$f=QimHQ#>V83sLWxEl-cSLc3 z@d}#i!2*i$XELD`uBlsHi!0Zb;@d1^;iNYDh?9yq;ULXFYK^!P7X!uBHs*uA$=xTY zBC}EpaaB^;6BNXRrBa{yt4=VMg{?so%*?wFP28xZL|5|U3?w@3KHx^^v!aLl!Ubgs z691LYNqcYo%pJftvwd$pdd(*L^Dl;K#lwkr+sU9)>j$wt%1so{&l`Tawk@ z{oC6YMU>n%oj6EtV7fb*j&u%_35TwpaGb6!AQMx6)k!DPrH54-@GKy}v)nvARjY_LpxvtQ-l>f~8`VF*)7R1_MZJq*nYAoGB!k5c0Q(a+NHA18IqxvvrH6 zH{AoTpwd7RYAdFLpt@yIBJ)&|Pi`EdtDEvvBPV|fsmIFnsyMAG_kg%#2|FlDEvpBOxvNs@e@0xPEP?=TD>-Fdbyo= zLskm{qT$XfhgFDa6Y=Mr7Ja7Vl+DYi)!!q6qw-(voh1T&oc=zYAN62ZZA69Kso2!4 z+bXT*5c;{I?AEbkT_XU`jTu0NL_h}*Nf$g3hl*004`Ooe_Gt~|7=H|WZX7gxTS)WwN_l?%pw(Ij~muEITAxuDE-plHe z>N5oI*ZJr2JB)ts>)|H?fj-oV&qt?ZnST$?7T*_xni6AqclH?lQBU%Mzfg{S^%YT2 z#Bam2l+q!ZXvD<;wy%<}pM8!%b5o>TDx3JS0bV@r+#NK%Ixr*AmV@f`C_s!P^A|2` z9*+KnAWrli$U4Th5@^)mB(B^tiJC$<)R$3OB5z)9|1bSI#}=2hV6?B_Y+@qpd#eJh zxo?$`p~Oqn=SgZ^KH(g9TV%xdR?ADQ{I4$`BK~)H4YKtg^mo6O3c73Em*v*yQ7@^o zu+d%T4t4>I^pn!WeMXf!VS>UK^CJtQc6IIoe-(NElINfU9N7ra-@8%h|9WbjzpZL* zg=uVkz9Z-y^-=xyUps;z_ExJT!?-lw9~jDwh~r+Xy8CxSDD17&G9Xs}3%1@$6*9!wc`| zvVJtkKgv=)lJ&!0OaNP=M0Z;FFgfnAbUb0Mp!OSNBNdti;Aa2?M>QT~#nmn;Hg4b| zwdT&nW@W)yJrEvYQU}*!zI8`>!?{~*u(4(`z~+<&1h!OiG-}EOoNNGode|BNuzUkq zt;H)@j?=9R_6LaUgxNCXE?oHgww&IgUi1DXi3W%xLf|m=l#ZO)w}xFQZhS+JA}!&I z+UO8PkK-#y2Cqr_`0Sq!2cJ9c++w7bizCvCAf?;S(!8(ND~0J!U$zriM5)S}uOj|d zr!wH9v7U+Wy2K_SKTWel{zCc{^?f!+yy>NN&*q(HoS5FANb*1x#OzI)LTqFdf9`mb zzuq801&LH{*`CPD0l1zFNl%&1iSZ1FsAvOyo;Tmik8%p41LPi5B^cJ~JQP3jJbdGv z@M4f%UUGw)5&r09CL$-NNYiErd-Rvgx8$I~Vp6_6GO4F-%dx~x_rKNa?Kqm-4P$ug zMETNah0`z=(7M}!B}A-(Mi_xIDu*Fu1m5IzL2XT3LvA2O^Ggmk5d!8>fdonN8T_Q> z3382;)}V?%tHSNnTpU|CK+x3jH;p^)^WYTy(f-d)I%25wV65QEzpxkx)oyJY4DRan z*FKVi**IZSH*ky5$YolgVHmO2f*bI`NQb$)aj?4Kwsv>?buQ6Xc`}gE*f9X0l4{7P zMz9VD&iC^N)B}hYlV?D5v@h`r07Z4X8E^<<3uMvpm07Q;L5`61AYwuM_7VrgOo-q( zgVXx4VPM<%@`JH?Wt*^{qS(<0QGaWK$|lj`Yp#pVoyv1CJrq^>M>)XD(_` zi3nu?#3*;MD?lPXaoz3))t~%miCY3QxtE?aBVOLS{n_0ZnPQj4({KOT|A!(MR6iCE`wJuhvXo=$Wn<7 zp>mLj#a%0LSbs2Gh4|m+jDx>FVnbD>erIzJ4qkE*IDUXh<)aE`415m#61JWx-?%VQ z!n3tR1frd`Ba$x&D0L!XbT7bn+=<%RKckpk7`jds0vBX#2ejMy5nY>*aG#)fbx++o5I4MVx%YkEPa3&9V>Vh8i54QbUnP?oA(( zgdXh;J#a$HR;}QHnii7Y6{TteLE0n2$WZ%LP_F-%CVm`v*AAgdq9N0j4?U2Qc0L@ z($HiVXuYLuRl#2fo1|*h$G9nciq6H2yAE!f*osdI6J1Dn@vq(2>T!h=r94z4PhO-e z0EZ`w`}Naa^{P4hKj!=w)2q6eD7<@-g1|U?4hL~`C^r~N79ubEs-(=AE;2~Ej6|ZC zcoMY84cPP4qNf=vJ(Nl>q0JV}t zXI*tz4WA~M_*0?DF06IXxEyxtDrvzOkZR?88Q=hg3bcbi1x(Xfyt_f`B|dryZhR(Ox+$^PVp851+A`cRo}o9z_tX zj&!5cqIx-~dHCmPXa(pGqN}R4Tf$VsM^k(E#hiCgL=+mHLVBnIco+_B!HP(pntkWS zG%2-3<#2pdwNg875y@(NR@G-okB}Bylm|yBbn~ay9AP#4DoWcMO1-EO+S(}@AdIVX zu>`WrSYU*}M)v!m0IW35X>Y6zu__h27jaKP?g%JeYMx%Fq=mMOK8u=K9j{$J$eNAK zr;2W&1dwWn6)BX;S;!(FK2~*($r^Uv_*baby@=Ne*sLxAWQ*5INu5dqVr`R{<=mzmtcj6VH) z_5D)7W&fK2gQLqZ`SSdNIS=M0plEwM#JFjyan-nps;7_z`?ROB3+@$!dNFAVN@d2e zBNyOVGweyqtNp41|LaP6()p9N(EtV)dYMI}Fnci?vy>T?{slV$m~Ja4!Q=!vY>}BH zGKv05S;=}F5X7t70nr#2+u+!+9r46U@-32GMW|BpSD+cViwGJcz1Z+U~2+^)+64 z!^#$OBl||CWwa`C86$&PJg-jj*2Pli>BUUm3Wc?$%Vmw*xUIdnc5hVAd*i2n-Gp>( zHOy2eNc6km*t@!^Of}gW7mu+yH8$1NzNgYX7HdMsYa;Pumb;l(%d~20kv5_O%qJ}! zp|v#kB7GoETy4cG$x2|fh;wG)7oe@kRw4CBy2$dr$iOT&s3Eoy?E!;P-7v)DQ6`2a z+tjT?0OleaAux;Clp)^KZb6=6-ZXH@RZ@J~W^Kb>$<(JgAAsuza(6RgA^<`*$Q~1L zQYdL{#+@`SFMQp(LKR`DRumD)sY}4iQzQW{I(8uy0zQ*8g+c(bGwHBOM?3cK z!6^hVnPjhvo}DFSbw%{qoMa_+rElfSZA#>nc4mwa(4@Z@l-pSURGKL9yJxFUlId5Y zWO=MKY}Bc$$d4h-P`8@LO~4FY7|I$en;30v|Gqq2)~>`~v3%x^3U%l4Z0)L9tya2| zzD9X2=-2bIU3W@WBl61GpJnHzND<9>CxP>D^*Pw(V#A7TF+!N1hGShy{aoH^O1bLg zR{w*doL$3k*mNuVVhjlCOkFHPQHxaYrjmnc`-gI~e9MU`(%|RV`JG*Ejr44Nj#3sc7y!@&A`}#m9hLj^aG1Nyw<>ynY-<&oH9Ta&Kk`ih# zK2_CmV3KaoU{LELaZ#(BNVExG*2)XI~HHH=dQ`|$IsZ{Dqbq&k0@*Ma9junZ5755G5K9@BHp9q zZ&u0mYZnI=71J$kmpo2+?l(9mbkxVq@NZu4t8IR(IPw5YwNfblv-^246`<97agZs#X&_5tnJDnXMAh1$Dr z|LR7DYU-Tv7t3|12J%H*2>e@&soB-3NM%-JGOHX|7H?5JilS|)xN_>Namg_^Ci=4R zA^l!%x+;FV5PwQbwDqql?V|o-_6`sWkk?^|E;24E6n&fxc%o#^+v=kNM1B>_uO+o5 zDSe>`-a$SfDyHgQZY3X^s!++G#JOHP+bDcyhDlem;BwC;$yWGr>vKmV+`2?P1Hf89 zi6UC7(z2$aA;ty(Zpt5kg&$=j{^qH1mN&8swO=g$$UF5oDcVt`#Hr1xRKRMT4{bSL zZ-pFHeauAj*0!XLX`sw({=fv-fLYxLTKyi3DZ_F0PU8O*$8d6G5bz#Q-p46 zd>A9kMj#mgeFN0ug6@PfcNJ>!SRN_HcrF;%U66D;l+xi`v#S`JYHL=zJ+JH>`Rv2Ry;5@5&*5Q@1A5OVd{*DFk`>s{`g<>Tggifb$tBI|YAO}zXuH~kk6H7$n5 zE*l&U^YpsC#3I^iqq4cpm0V!WoWdU~Z;mmkri8Pw%!d8pV{8Nuyk%m@F8O<9GE25p zms8xVfe@RV;G1#Ci6OvWc{7wvAwPCg0SR1bs64;f8;U8fBI2%cewjk{EKga6FBo}4 z>utuQ8rxz|bKP(N-R1^)2#WHw;U+(6*VxuQziGD}>WNG@0xQ`92;VW){_>aLlFaI3 zrT|q{uZ%J_ARtZ!+9MH_uRHzXFqb*n)|2F`8r#s`i7ZN8kk{d!>ut7-rA`=rCJV@F zWh#peF85)hrbLdvF2q7ilp!~T*OMJ~T(I`r1hX5c^p^={b6L%gdbn&KD()d*@EwMX z(<$k?1enwmL4gS`l0Nylm`OL~uH59W3SI09o4YI9MadrccT`2XS*nD%l7GaZ4||{1 zP%eo2w=z|g7h|^Vq#-%V_#IcF>)nj>qHwn2VhXs4za|~)YX1xU zuX1{gcM#XW_bkhgak38)eyz++I?I-Q%Bsdy&^1$~E`-ZX}-E@cRhCM z_vS7AlJT|Jf(=E97C&-51Pe_&9aQ>rrunKENJMduIieE09$Tmvk*T>l?5qqe}=cs?g1h?04nT ztEnMb+hW2_)mD^;KZ{!vdQqy-NN8PHr4GJM=LdT^zL!bCH_=;>ULyX&kmQVV8pa$b zQ{!^OAgER2Djc9R-Fb03B*wV={xLU<)<_z!+x0X1^Mw-x%vRO7tX-~1oN4Sr{q7K4 z#+@o`4T1E>c3eNeyU72Ky?c<$7+WQ&JoROJH>-%a zxjiMWO)@YUn+Oz=?aq77@RzwajZN*#VN1}2CX_UGu|Sso3OT*3(rwLmQ9ExNbg^v) ze$ZHYX#yNB&O?@eJNa$hPj5+u0Peg=EX8C8Mwy;IRsOGXjjXyjdDH5mxRFu}DMXkaC%gK+YtT%f{xg6B(jj^GX-paUu zuDqem74$;{NPS0|25L%EVaJSW@SZc?U)a}E9Yis;=mck&!0L)`se<#+RMZJ{Qbawdx76K z?&mUYGt?ik3+?iHhZ{7%JdlI2A9#4Ib9S3beVt*wzD~SeUcc#fN4-6NKd|0j;P=)0 zxoGf#Es45VyR2FmW47N37tuv6va!b_{P!ky+)3XG~do3p)i=h)Coo68tY zT1>$CdDHwz?(t%W81GRA`A!|uto}MOq&XKMiw!nw@-Su?)%3^4vB0mQ@5(}SQl`1w zBWOUZO?7sD+fFQc3Q8}p3b5xcz_6M%IqeHGSc~fbl#-(9j5xjPVpw_C(zUWX8)qZoo!4f=jdBB( z;YuGY7HI;6l3qx;4Am<2*jq`jVv>xDcRpwJ)UIO}yl+Y{bi~|}plnQ_HTC7iBT1pd zKu~gQG|`t~Ash}z>=1;&%eQg8Q%1XJLLSNO zszk(N?+Ky<2fycYjGHTy`OxKgk0Cmup?zQ8G(6VMNagOnkye`OQy80(HKDMxb5i2u z9$MZ>2U+ExW!$lsn?B3e_q{qCpw_o}*;S>%cqvxivwtV=J?|5>G&aP>Y4tyBCrc*u zKn(zYFi~iaJfT=GWn`+N2BU0U&}9-5MhR-9)X!b_0fqy8x*<%0!2r+TJu^Iv;6t8W z^>lI0{&8HC13*nk_6(}aCzGQscv(<4)h-$1hH4YJ5-*;s{Oz9oU#&vzD9%73g@|Rq z?XY(K{B#f0=GE3KtFZY$l?9~Z^l zE1e0KC<$|l=BJ8I^SrICW>92}SfNs&zZ%GoT8wIR@b0P=6~U_keZL443h3_h@_eZF ztHeCz+{i9BOp5rFP{6AEPn<_}`?fqDF z=6BU&)q*IV}~gdwIJ{pK|g}3|CrKbvCNX_fY9n+CT-%=eLl!y|sOJ zJ``HfQe~vlb?UbGmuXn|Yj@+;&%c+4u}tYKbRx#7r@PRr~MQ6WNm12p#`Y`Az#nqa=9OyxbDVfp03Yh z?cek5d6$Rh|1c?Y?(10BPrvw`K!);NTgQ77LHj6S#&~~1Bb&NDM2<1%OdH3 z6sO7&=P=T?KrHGmJ5Y7_+Qo9lLUggKSBuKoX+Q zVz(i^!qoIxT}LY+9HC-^fI<9X84!c4R}%7&1wf4qD(r5rEJI4q&~E}HcyPuKp#!muRc#K-W0$^bs$mUUU?(;It!=AQ#wjD zhvhwo;ko-R+vPNmO^B4*cY}Cw9$<<>9dDPLL(4Fg?9a^qx|SCj4~ z|Jm-AT!ne6HNtC~>xN6=NK*nP>LZ^|L-(3(LbH{>ux@UuO7P)0JjB-B*>(7Ox*(|Z zbPDRfH;*YL6@p3jr?gG{1Lzp7OjutZpU1-hJuRthUK%DiWfbrd!w^4Q)`PV|&7`#q z-Lm8i97*-mIT@agz7#{WN1V#iB6B|ln_3Qug+>ZBYKfuARIi-uWPPEj59|u~BS-j= zBmBq_{&R7JZ-X^^z3llGqJV~LGVCA`44}BWIw8GY4Ao9I2&K3ur$6Iv;w)AH>0EKX zU6@{f`ucXh9{Blhf88f{oXi+vMQ~~Y|LiVJAf`)aFEvxjLeE-lKA(@~iN`(bJdq1W zq7~NJoAK#-$DqvhjP10skHQXpJAS#8+iuKFP}hAQp>iH;)$hi_HuH@_Y};%xh?80n zuaz$%uPO`4Dj9=qU%El~URfm94rPas{6!nH$MN}k(Zyz(Or{GrfTCoz&Uzf*E;SRp zW1!DA0fL~Dx|zObe7b%s^)H;!$Wov+;KA?j8{c34$(xfPwAU(t-)V}0d*i@U_ra`u zLQzSdZ%)RE=^8E&++)mS*`|-<)Abua|Ah;4{V;+DUbVNw`-}I@uT0sOcl#gedxod0 zZ|{EL(QdSXr3qNZsBg#T>-V|aT-$F0gM*6hIo>mVy;z`#_e}g*Jf0p_SvB?V8K17# z1Ma!{v$$$@+pqFwbh=iQf6u}>HR>MPT+O^G->8qXmPeMqDgTwHKg(wU?2Byr`M&Y} z^_u=YlNZeb{TFYkkAu^dyP4H16MJcLKyH}fhh5mTvaw6v@GU&5_74%O|v zSsVu_d<)Ypd_aQ8j~sNLfY--gh3CGcR~2JPD-lsSOHx(vXH}Q$l5!i=O>*gS!Y%qB zVA5?j<^^#Egx*?rf|g;EcEVSeV}Q?fFJ9FN36jbU0=8w|?2Kb9jF&-|6px1pY$%lD zh5_=6-hKx74u`axB0sS3Vwh=Mfb#MbH5E~hFMW8qJwB^l!|p<-qTPM@9;?{+WsK6W zW3^-V#PiiF>19F+kmfjdZ@@iXf_XcRja128DSt24K!tI%1Y>qlLPD1d*9vddNp+#u z_DG?Kst~VTP89Pf2i2VDer4Q=07q5dIQ85f3F}7clvEfyQUw)ccl^$S zS$>;p*ae?xKDe?|0fgX}m+>|f?$6ep>P}dACCf+6L+Zx;>KFzTcOw>>2yeYGS|y&p z(Mp=3lhl0;?HBa3>=)Jz#hDy#SoTNWum1DH`^8G{HI%Ey6w#7$r1f@pC7%vM^i}(DB#Uh+$vU; z;q^wtzQVk z534NNV$$@Nv9hOGI@lRBr5%P?6%e7iCcRO=uF{Bl7fWB8A_0WM*cZVN3K)`CPT^_Y zfNE73v0ZtMYGGw(|NY`T>WLDJ_p|Zirg2%j5@?$3d_aX|);=iwFfDEVq1+@Q<`*?2 zy?Jj_w<)Dhf7CQjFaPA@2UYTVqh?s8UHMHCjK@m$D)mG-pO2cObDKIka5wCbI?TmV zV5hockK$S+#jg2Ajs4`~2W4{e4zu}Nni(i$L8ohOJMp9jpPugun0TCeqF6i&!bQ#A zRGYN~OQdNUl>Pqon$MkfYSy&O3EXU{C_*nkh57zj7d}7V8Qb09cIDP3!?z!G>jTpm zZL^OD-FVODMcciehH_}Uj#Y}JvEvf!*o@WU+qz1ze}m}5zWYuQKhI?s2W1B}ZVfN2 zY77_ijI9eaWBlLER5S0E^BbxtEKYi?FM|`T!0c^V~PTFgAHlgl6PG5U( zC0Y5%9xJs;+DFq^Iq2sHJlbem6-yc~^S7kfBQ=UPbg}oXO$=|4TFo$Cb*t6;_tp3KmK*NvZaP|3 z$q!18>zA8r&D3z4-VWfWyr=K$m!f^>ddXw4@HbZK{rXr{ty?vf_Sd^r*S6DJ&t~dr z@wSoJ#Q~Sp`d0n1)YwluLQ%98G2M>p*Za>#Fj|8$ucb|^la|m5p%}NzUEX@ZwQjTX z<=xu{cr+P;L!OGJ{=T{(Lz`=NXgb`*=B-J6f4?4hZz7{6sUn4bEduCpUt@*+#W-lq z#_#yEsS!Kd=vTb}KoIJBq)EG>9D1HouGH|mY69xzb$-8P{mtrj6g~+RR<8IiY^SE^ zgyHhf=Kbl}*3htYsVO~@UCKqnZjZAyLL{xIcqALuq+cd0O=>QHtZF73Il#z%UMK&+ zEySIL%B{lIBKu$N-=za|Jfh#*UIx$d$Aec0&`9NwAgFL z4P!`6V{3d}q0<20r-a^E3A|SRM&hQ2n!oX#Izcg>eD9b(2}hPx)fk)Xpma#fLP;cJ zDHK{7?Ncp+eByD?)gct8XN}P)8LR&jc5!0Guyn1+lE`t`UPkw$_u1~yv!4ej@C2cqAL4iAnPu;>Wm2rJ~NjT6*k@5NR zBe}@kZ5}l4>N%IZI$$Gqiz%4HK_LL{eCoPbj4sr=p~@)6N>`0>QobsSTle_3_*2&_ zRXsLGeWpc+hxSr+nQZN$x8t|GinO)XfNKmj=)qyKR&y)((@K2cF-EaFvKsdcpOsq! zTXz(SB|6kdDqinqQQ+jq0Gdj9U&47jRPlObcjwv9eLY?O&*FdIcYec}+ea?u0Q-fw zv70r#Qa87-<1QHMqW|Y`e+lsw?sQF($W>Re+*vIoPVe~O`D)+ngCCTSbRS8MQvBv4 zm5fEI?www~m~R_qVX+k>RLR=*R&Zfcv5d*-a`%o8nC*|e>qp-8ADnm5w`?iGF0sDo z{W;>m&7}Y>hkBvn(x)|~|D3!0d#J(Eq*!5mVNQ@4*}hqX7Bxq60oVi?FTRb~qlW5FJq6|yOT)M`=AWn9 zfyTElHC9s$9JGm8I%TRoE7GvyY9789F>^PO4`_iRP(4h2Xa*pDF~*M8UK1yX+p%r& zUyC-9=B`xfG1Z85c7+GD^sG0ov)HDYgrz#2{2see;32-4t4|9NhiYcQKu+QXUE8ND zsfqIff}Q{Y#pFR78-5!vC&)O&gH#mFT1~VgK7`!mowf+6+Rh^qk8f{3aXi6 zQFMc~63F+E#|nxI9@4#bBPbo~Nl_Z7QS=7RprH14m7UKiYl_0K@!K@nPVy@E zb3b%?6V)T02=Od61!dJd!KonE1PnzJgwnc#Ktr9sgY09|4--M(E$Ai*gBRh|zdZY| zr2_oOhkoQke`P+T8g%t!QF%LIABr7atu9c0!$%h3xF%nwu8e{WbNxQqNNVpV$ToLT z*wE44?O`r%QBnjadn@|ai}#h;uu*f@ngiV-n51#JpW^qe`oI0lmtXwu^Ups0!$M_|NZYQ^dIO%Tn#^o}CR5rTiMgnj@ z3gHv;u^a%f-EJ^{r5mj?8yJQpjbrz-SQ~+z_Bw)&s~cEhXmJ%)Zh7vtSKr>IsHV3@ zs9FSyymcy!xZl|Cdz$`TDU8S@$O7_RVxt^t3YbGvkc3nq&~F7MgNuTyT6RiGQmjTD7D$=lbzEMPy^3LpjpFky z#F|592jljNoJs%8V}q~fq?;AQZEAGPvo~ggdIUl5>)0UnAh~5VE;0q}4kb!EbR$f) z!MH&>2-`Pp%=@MeqJaDrcYnRLGc*!>H#9q8GU2cpH!l92t9`LCND7DEUgg zgtRXPECYVFYH^x!R8o4`S3RFbfZq3ZqnlMk7e#d)?qCjJjC!c>eh$RkIF?EeHRO%z zh)-ns?|njCpf4>FD3aa3p$G{ixdj|;wlhfg0*MBBK8B?3=+54E zGYK#pl%cmfDsiS%aJ!pZfXSeak?EzEMiz_N%_;zKp+)hUug`-vgsnbQsh`y!sCho1 ze~@3}&K+H-DrxrxyL}ySPHx$x04e}>Q(r3#q8QiRvcC%UrAF2dH{U&6uWAaWvL93Z^m3+2T(I83t#ko1>sdWGcPfenj~i znO-SwQkA_z9FlAhK&^OjhhIQaN8KM&McgZwFuycs2qRRG0?1k)mElr(O8O+Y*mMYZd9v;onil zs<#C^BjSm5cwfNGBkGj*L1p2USzJ9`0N0QUyLY3Gg4%^;cew=b2-mDovAg<(UYcqY^JR3mCMDN>|;~2lN<#A9nY%z65Pm)YEGS-B;)^Zlj}isA})phEMh~md@1Y zPN{Ih!f{_3w{H}-v<`*%TtD2AgWW(YQM*?jKb1b71zimz!0glJWVKgXM)F}SKDN}; zPvc|vvV7U=Pd>0n^~dx4<9Yt^JpV17=aYwVAo zbiEewo_RcrzP6$}TYk^@bUhDv;3m_b$Yt!J^5wgH58;uk7ksU6hP}m`i>; zJYB8Z@41mlsG9;*OZjGex?T^sV^7Q%<^arBe;nLjs4u@~RNk3vTI&?kz8Rmc-<0sm zxi%>nt2Q0$edGJ<^?(OnHVw3gts+RnLon_boWhfH1~!O_iImv$?V_bSUT6j*^@55T z?oSRYVgmBLOMql)0%lMjIO%P6FAVOgF>VraFOS`JsQY)xfn^IT-?6V(c6N2c;N-Eo z6v>mpaBXb{AD0TH9+|5qW9V0ETynRR5WZ@=O=g(W)ZNeYkvrc%-;E}52?(Wl%UsM( zI@72R(jzN9yPO})p*$&m&kY40yn6d<_)7iyY zdjFmfFQlPQ+w*A#L9Ns87n4n{9y;IuC`Xu27AksybeG=`0%hG;c5lSS{p&TId#T{v z0&laZ1lsQhx>WVC`EtJhQ7Rc#A0F5gO>qxp<5jxLX;ZF97K~+olu4S-y^Jw2vt25N zNv4;!H8%B4dK7A>7hJ`oo00YBR^3sVP}HnmPiZD3YKw)RUa$EqL#6VV=9AtGwJHSN z>ijD~txAb{l#!)zt=sNdI}C3sVC<~|-pkDM`?pZ!7~*Nu2eKf;W6>XFU>>h_ zYc9UTO!_e&rQZG^OHqXZc;QW|&fOs9QOdr)U$Wx<1?C^5KN0D&4ldC2MERxMU5`?8 zs^bLgs2=W#W&%gJO)J4-AH}^*-iYnf`;uGsAbKvvIz*TPOQOw$$Fag zK`igqhvryGCe{>2Jf(nc_I^M8N2NgRpYI><7CzlJ&6GQ@CLLg!8T-Jd+X1)eO}F!J zZy;Jq7XPYqd-J;aS4mo)vr=(-yQXvZcxH3lj<>sR5-~~EA>3!|LC4syD;o+^(;H$3 zZYMvJA)4{JZ%h4k`p@UrYdZJOH+vNva4h=V-L`EZRr8N~tp#J&@X}Q++oqczVQQOo z2~iPNR`cay>W}J^2f=3^O1j^$WVS%4#fcvd7sd} zvrWTdpUWWA@6pV8GX(w+Nv;}&@?2o$ecNN#X&p-cIT%*!v z0jEnM0VtohXyQAzm?q}nM!rM+ZWLHMck>|t8jZ!+U;c3Do@n~tTqt7ZkMA!hv85FT2}KPD$=GhiFQVj z(5IzxUX^CdG>_ey2iO6KMb|C2GaxMnCZ!S*gUq`D5P1o?-2>n8gAx+D{d_IEdLDvz z1r9kJQU_Ha=H>;$+}@C9wj&O82&vmKN$^iOrd3CUQaX40voEX}**`nT)D#V^R&%j? z9N^aa3aJ?_@pZ>vgFvwd@xRA(k3V_idr9TthO4NX#8sNLDT;geG{+$<5-83;L(6%4 z@8d^2e&p--KQ7IirMq9*kKZgb4bVln=~m{Kl0^1YN2B4Z)ARYpPu}yOhYdaN_8k?R zspFA!Ua0CsZg+I}N}Koe`asGjI)69>rxS8_a_-L4-6=btzPnR-cUJFD@ZGsS9r$}b z@WLEUT;s$~PMqeR1>MnGuyc&pdm{XcHTO8w_B1K6t-HBLSLZ>JxGri=DQNcUn*80| zGpYEitI=3;6@P3;7Wg@oH8+?DYYr-VpH8)7{TMsHxhbihLUrtB>OHchir}KDxj@K; zY)}m`U?c>oxs7CN)c>_*9f`NYD}VOCt>@bTg|jl zJTY@91LwF6l_Sbb6j(H;zsPZ}9)Q!GhSU{dxoXZN?~3L=?01|t+9A&wZ|vx|%Y9_m%jN#qDc}=4 z%gIMtoT={y7qpMu0wUeKuGzn5MS$jJDB0a|x|C8zlH1Z)387hFC!1qU8|od-E<4bUfz-RX*jD(};i4($1e}SRdZR`^ z%`p7ftbKc3QnL-q`6`kl{v8#arVV0v*h@=Wm#1cv-CAe2m|~2BmXa9viB&!iR%34N z@>+HZ%KlmTCSCe(vtOK@x;-0xm`>U9I5YvWCDd;D7rU~!U|s5N1D6&i1a8J1rc(1E z{Ew3O_gr&(R~5cJp1ku*>cFxmHpvxvwC%y?RB2UKdqU|CY0Dwud5(!Uh@&Y+AzAYqI z)W&C6@fUpZF!0TBQ&-Z~QLK{e3jUkd*oZ1k32btNsQyX0#oDJs2$pnW>(WZxZf?jk z1W%u7qYX3*(sgVQBiT9R(~A)m$=Thxw5uhbNKCO;a5-QVRrp8_7|=q~JZQdf8MjuL zFI?#Ea(I+E?sT}IxuuuJ?y6I-r_s^Rzxq4w#``<5>qUkt-0pTERJUFc*nlU;a8x?6Z%~>xSX9_)eo;$M~3>@w`%5_XejIJm)YM)n z+HU-@Dak>Q**Gw}wAeYfLs1KPSW7=~!w)PQj@hj2g8w+C0#ZW}q>_%BgQh>%ajR>c z(ynedy=fo&@NkumitR3{dHW3vc=d7z3b2e&rc1x;iQo(NLot|(a)E!@r=EqQXq3Z1 z(5e^|YJ8=#1tZKizCOMc{`b0Er`3B|u7}rWnKlC-GlT`AS^7mP27N;{8(HYhT(yRP z58B*_21$PD%b4-U%X2<(J|y@HS{5t7nt83s+hL} z#->L1>bMD7zH*kxSP%7R2>DhC_3E-j>GoW=md)h?yHo9!`b5X?n80&a2LzuRss-l$ zDX{dRWYJ^hVv>No#sOEwP}x9hvFSr-W6h#cucK>seZj07!iU-r zv&Znb-@1nH-_^V4Q12|p#mJ?)dbqz+7t_*YB^YD4n0t}KQXR^tKDD>%pLurL5k#IA zB7>zF0%|k5i7c?>sSH-GZN%3@XnrcbR^Lq^c;n^L5~i<@my>vJv_O@0AeWSFywUs+ zTW-60D5W0oN%z-Vbg;P$W%UT}cDc`2mM)_r>aO9j#vXepRMR~f<|ytD>KUj$E#C%) zKf8c_zu^oIftw*eY}6X=52v&0RDgC1LL|Av6EuD=ag(vVa$o_`RChNx2hLY5d8Y|0 zo<^I9k(@XmIujtVS!P97$`yWhCP8N9-DC3g(0tDh*!@lEvP+1h7pUW?LZnn9 z)FO9@{;c8!LjXvEQwMzBc=iA=-_TOZI(!{vE;8Zw)8Fuk51+-|U3YK1o5$$_a{0=V z$L%!L{Q-~vdVlr)!k2G;dH=)53#9bp*F`%0>)qh)@!ykOx^22*5eEEQ!lT-)vXXJ; z?N3vgxK(gkZqn0igTxu%RPduogWb5R3E5Q2<`I9YM7~^g{t3?Nb~vkqtUcsUo*LZT|r`8La3q8C_*N#50H{x=pwImJ0sMOZ{>kjV~`% zD+lV=1>I-+6E(5!`CECceFF){qi7SVHNP19mP*u%^ODpZUg1CZuL9QB-6&qc;ES=F zg%z7F_Z$CR3PzS#uOj2-o|EG+SS4#Ja8^E1Z9bpxuYY~=Dr4mDOPpENa57)00h+FC zQ+&BBxrobc+bVTCRJgLo$;Ff++X~h}oP7Z7&|uYIu{p&cYulF_mNs{0R2igDm?}|4 z>^6% zP*xPz4FV$9418>gxlpN5?bZH`aCLkvsz3PGq}d?Q86QjS;nej}d6RCikZ?#!l^5o% zd<@x`G72tWwY;qNpT>>)v-V96YO_5b*{qzPqSH~1-F~`K6{gxRt;j*0;dO81&gllv z%L&jI+GRFJd7DqVJ6l&NozitHKH4_M-bzVLZX7Rlm3HFCApXpDHN?MmU)x=JnQRp{ zmx1lTXi<^l&G)`eq&;W<$DALR=wU@#Q<+$ki;U*>&o1<}{Aprh^yFlEYH(kI4^`E8 z24|x$s`FOp*-84hLb@CXfKZ&BuW)lIb;kt#zHiS^=4q|(?2TJtXmvIU5;O0Ibrm7s z(re?o;s}Q2D#*${Y9RJeX^b&hZeP)y&9QXyl0y*PjZb~r1aMUO>erRXUJ2Ld^>u$` z5%GBH-@&@7#JogMSf;MJg*JY z?3kc*!l_`Wb_`vw?+~j{XK{Zz!sBGf;3JB+Z-4W5DP1ClY$~F?eeT|T9L7e3_!}WI)4fa;#)TS^Dn>r;tyYce);TQKYHgy zdw2Ql-{RL9V)Lu`$H~8Z75_57t!Eo;+?(U|O{v=^SOY#3N5>o(hX}IJJp`zsb}=}Z zYGx|g+QZrmdjSLqq{|IC2$<2jiFw;T5ibGf~hx~RP3Y% z(iAkgSGdFEl(i?dKbZozo(h=qzBSZN5f_cxWI*AHZDc)uD&gU1H>hpFln({v-FZR4 z&Be{Ug*9Y@6j*ZwsD^`EwaD+&-OO8A$sqRk-A#l}rg%ApZ%e#%UEKC#Pq(wwAz2fopEOr9|rrWy~C{NcnqI?_3-(Zzf} z;%R&zJdNq(E0V|8MvcKupw!NFd0SMz4yP3*Hyl5gdA~)p`EdvTgYDq=f-kFYi=*Cq zx__*Wdit?C>bB$GQ62T3;*%dxGIdu2<$@`eXx;RSR=ni9x%Q70Pyhd}c>1%n*w4QB z>a#DmLq=w~T{6PW#V3Pn_IUNi+=sUAZv`;=b}PWazO}dSzSB?ljmPyKpC|P#&sKR%zVj=8uc_zq?GtC`Q(8ay4jGi% zpYbVee(SpmdPVO2&wSTcpMUnvh3~3lvG7$11$kdoNIDq(-Q_o*fAQ+{=v__Pl>hLh7eK_#x-gZ*(IvEO7ybk+^bm1 zwWVFjC-EYg&MKBl)B=#lp$;_J$th}p117K@uTJuJW54cYOoa#)=*RT^L)ol$xE>vqF*jPc$#zR(X|HwV*6 zjhj~-^bWrcwZXx`ub$LWW9g4uRq%t78#203D<&nr_p4#3$JWr34RWHjX!ykDU&nga z>liqJuuuV-P<7N0k~w8JLudpT5Wi3?VO%?JDcSsfx~;V#Ea!CS>hwkLC7qYgCnj}J zF%(}HN9{_aia0OhLW@<3I4L5MzxBHsHY-CcDSY#S1GgMkYt$}qjzQ1beS4O0Vpyd3Uxmf?8}%A z8qlsmEj=rYzkuwh6m1M8P89)9kRZRV6})`aX<{ll-HJXGuB5CQtD=$Gk3O%A%djo7 zigL1^aP;W&mE>>$*`wt-!c?ksaKI8I=Yu2z&1Y#ftL9hzeq`uTuOw#TiDLEX%?jM} z@Mb9S^R!pro^;|`NdmwM{TZVrX-FM1r9C+*KK#_ksKk3FkRp<(^A#fv{B>r^tHC@0 zaYyB$RpX(!F&Hng@Ze(`e}ZUN)l;WzJiSb9%-Qq_5fEdZwh+lQ6q-&K4Ui2ktTNIF z=-<5Ja`GU^5#S`QsgAW1t+pkVZBnt9ivdvMtFNTl62=hVR8ptiA&pwW35HGPV^wlI zW6?L1)s&-K^pQk;0E8NH`s_YbsV-0*r|Rd2Q7|EzGpnrgp}Z zJ+a?qXxOP?qu{URt9+CclTr^ji5TM&FwW=-5>#2^;SG=buB6ETTc-+TBE%T~D&KBu z?A)B;$FKzpQ_|C}{zJKMDx^)`GCE0fp0Zz;V>YNg)95${li!=grse4|QFV?{9Iq>5 z`XRGTHQo+xKOe`p)0Z0m#qhS!8igE(DxNnrY0qXVUj*)E_Csr^OK+S7T0 zuggj`5$k-|sc+v_0xIJMZ}A#0fC~>^J(u+q9{1UAmSY5>Qr1q z;}j~Sy1I|E?f7Q8_;XiMO{iK|byvU{Bizq&0fZl~E-T3f@H(6>$_J@Tr>eA(V@`CM zUNgn;vy1NbBvW9>;86;#279yb>sz;I>YFj=Ja z_BbPKhLMaJAH~3EiMOkB!3G_w?q@!_I}pSSt_VW>Vx)wtG5ru48R+RbE71{!CQrj@66X=dkiC@Uku{-$0q=ssd zm>e2liR;z0iMh_$VC?RNG$QqKaQUI?X=rxVsmsB)uq$GD0gXW@4; z9g+d2u?B0oP|lf@Ne3s4=S#6k7GNc&LurQO8%JwhX#ZK@`(l;xzBsyLdFMiTxehq4 z2=mZ?iIf(6)nJ(|k9EXAKy12v@_H2($Ll%yV}CyNb2z-Jw+5|)*NJh{b25arrURX? zp`%E9Fufkf*GyN!_b?O+*eH;r1UPv!n#QNi`u3fjq`;uGlgFLLbyBRC-2Z1@)C#Qg zYY}qxq((e=P=U0Mb)71uUT*h8Xq22>b#ki0FdP5JZ5|<|txVl7fIgnI@a+fmN7}Mm4U@neA#xPb= zXhW@a$9WOadUBmd)A^!_PS`qdSh-iYDAcZ>>>20s^5>$gfIaJ#c9Xmd~k-f~CKk?h!8RQre!*a(!vqi7sV_$v5k5z?Vq zW6R?)Am+z90#7o#_AU4-b_cjAg+xmxk8~;3MKQ@^42`04u`9!*R%h59NoGqZVgB~g z_4HZ1D+4onsi`s9uJJ{l%Fsf>!cb845x zOc$$!Awq|`!(H6S(!?-X>IZfRxrq|YMoTY1bwZ%wMoV-AqyB-^Q_ym#8IW72yOdMq zLqkxtjNz*g_-Yiofi>*%A~Gj=U!n;e4z9s`vRdJB;6wkG-9?o&WRPSS0mhXzj%B{8 z*ovi2wy#x-2Y*46{{IR)mn2zo-H6V$idsP{_$MctzeH4sEwU* zD;WF$aKHh;ZM9BB-d8qQ1kP%8J`eN9lCJ5>h2~>iy>Min51)q%-}FpOu}k6mIQ1*o zWz}p>KUL)AP6KmCro$<3@z)SY^7Wc2->^;-J(Cu; z1tZ5uQcK+xu*v3J;jFnzf}HwJgEVLySd}EGmozKHrbX1k>!7*`+2Ts-uGj4TlMmzh z(nUbRa9e=^=}WhK-P4l>cE#lfC`9#aEr4M!nbi1vkq*-1CA zRrKi2oiNI`mki$%@ZzpKClgK6mrPz$Z6KHLjJ+jrp7S{ES=gz<>t8RQpO49ooI(lG z3>>duO%F);LKp;2hl9}Lv6;BaY?bHde?T+nLCDbXkV_PQ>vk9Y`D3rXft^PHEjy{) zrKhLpHo^Q}j=-1I_}yA9KV+k*MY$|b{}5>8^f9-G$slXdO4K#yTb0$#Q~Ip!^Q6Qy ztNNxAz_Z@gjsXRnq+yjs=()EjZx z-?9ghDRTfY`d_ceAwzj$6T$Is%d5xusmD8Xuc(i&m2+Jog4@Crto*eV{Ib2W6Wj5xo%(`x$PZ&#hF;UpvJ>!h z{M_vXoJ`-n^kyy#pffeJ(fQEdmIBU96%+v3ccGQYnx)c*vbrY4vUHzs$X*z`7c9^r zaz<7a3V|S_>TuWBVmhd&<%PdiozM$!nxar_bZm}_7CUz~97Ycj8f6fW(6o)D{E_3? zBTm`@ij==1Y|!>=rb!}u)_K~>a1mYicKY<>-T1M2H~I8@8Yljm>j0PLQZ%iPm7b<1 z=&^)Orll8ZadKTDVn%phACSz0a3Vr{)gRx6L)-*8$G^7f8`80Oal=Us6v5}t+-JA4 z(ze0l9X3tLeN9U>D8(t)xX6X3$Vt89)lfbs&*KGKJdc>JVI213^El~DzlDza1a^D; z;bP*FLhuoGzNcX8;fhMaX9)7zYBU5P$OrS|M1{5cJepGthg=0)G<_x!lpvq0;#%HU zD&XQSJzK$XVg6)Ta3#pxI8AIq)e&ygy`CS&!#1^)$-M8!gf2PtIFi9Gb!BU?KmadX zROpxYnal@CJFVc&bbbBw^FP~aI@{HUsk?2YJ=~q@_@A5g#UdszhZdsr77>k5<7PVs zTs-NL+9iq-XMJ~9tx zQqIZy1Ppn@rpaU1_0eUT!>(O=k25K}r?DYeNAp za0io(IyYeCo*)D-r08c^=E8hYN{9B0Re{>##b^sjZf!s2&vrHY@cSQgxQ~Si8gBZ% z1YhK9P3-|^gOah7q4}?QyG@aKx(20cOjp0I%xuQ)?dOlp`i6D7u@1JVtqV(u2>HjT zkQwxHxO6(^7!Tb~6q1-%qe0o@OhZ&;F0{tLiiS>8p6K??mfTLHm>Sm$_2Oe&A z9xJ!`I^0U^JpD%P7sDN}z-JSC)sftGDim0VQ<;L>xf=n}szq_P1c0zz*f^Gw1Ifly zV5)#Hwr&H+0+s1YN^fo)8rSmi#eJfVt|eZ0``dm(!k}Nb^~so`zq2#+0_1gEwJY}D zuuRK22R4y!z2mj;J^%$_3%T@oVhC{>bBK;xEQMg33IRF)oQ__oC^>^fz{E~4gbMd7#Ku*@Ump-cvL zIY+$)HHGrG-UQ>&TV(M_v$$+Gy*D-4w z@A7BraK$TOcoFt3z-s%!*LhcCA1L0s5 zFY-0 za8^++leMQn>pEc?km6XL_&n&4V9MjKz524TYghsaaI`KWCEP*Szwm`soHD|hphLHH zlH2;rzVsfo2cu+C#<=E4p$Mijx_UsbTJ!ma&;?JNFi&uYdj8iDB`u1i97=;S zn@91*WuK&~()?U?h99O$iSPx z9$_X&a_*FV+g4Nng;$>^kBlR|c{zsxQO(CcTiDWiwguY*+;Xg6bl#v$_lV0s0bSeV z?dTzFKtN)%IHzEU?C!_Wh}C*nj{mt+-*8S9I-~EKIAp7x(DxYW;F8XfB8iqNe;|m_ z)c6FymtC`$b6uN?hL%xf+lNI1ka*M zHL>-wg-Mt?U~k4lPdMG!KsMtw-ipytkPB=KjkjxgEY0Y6ddJ?G4hNycZNqeZeev_} z^k+0+IeK&XJj;VnLC5j0&H93LXnFr^3z9ryk)fS~8+(zbhIHq~VxwQExrjt!U{oW@ zpLHUzbzAfDV!rh3;BCtTuX=NX9h>qwenLBrI2$3c>u8fT5h|it+ z{EP{o8gdY*;JM79U&kN}lnmGXS{?*pklGl{3Cb)f0vOd~jSxQb_0?~`&$rhI@4`7V z136~|su=&?s&7E23Y%#yH$@^l{4TQbcaRGXBa<*9pzd7?A_)^<6v^84FAc9&^%xzOjMs6+h@Lzbl5(|hA*Lc1-5;%o(0XQ*xL3%3ADKsBP?GN||<`#Wd;${R{$yd&IHD!BR3-2hwV4=J~_>5gp#m z>3946?G&kjJvPq^+-65Sj0WO=BK|4( zwA_qv1_2q5%7Q(k-jOY?U>p*L+CS;9Royc5Eo1ecNmtd!VGi2cjkjP#&-cU|w81N# zRo_RzRk)2;8Yd=`@+MtB(-5FlzL|NBetA)8^0Hh0zriCj2!?T~wm_!@b+`JV}0RRC`jY1$)TPzak6NLJ>h0{)!7B z*Hhmbn|)_K9PtsK&Cu(0T;9#`= zJq}bdyhXT|7A68u5pD7@u#!WGuH|QyAK|r?#|LkxraW(_cnjagr(>!U2Itn}X1+ig(4xSWY~C^* zObh4)O7(0A+hP==lIuFeFHhq>)0U33=WymPB?Yy7N<}y4w(Sy zjO?xltz!j*yOx${T278i`V@M#fF;7)5;|x{Pv`^f4$d$_7ys&jaDNQOcmrVhnSI*a zci5Lx*VgdDv%!F_wc0BQkHMclU+o23Y|ZHUWp`F%KW)5%lHg8C^0Reg14Qiq92LXt zcN#U>>tJL|42uh7*w7l*In|5TZ*+VP{R(c88O+LG%Yy)na+|7;1Z0>Fs(Zy_!)$&1 zN@qiufW%JZV-G*hqOC;K#?K#H^#$g%)bx6j4?rX;z}+2l6ZY||l^hApB1 z`ZBUsUmXXcc{Kk0@M7rYaUIxb8Fx^=QTK!ioC>t_6<-ZOv-PU~hoDuFIK?K=6_gL_ zoEOr7D7OD=lfI#wru)cr^DD$CdZBKj4ekN0Ec&n_oA;U*cz%b8*A+6CB=^z zsQ>^oOf0t268BN8AS0K6qSn0bT0$QH$9!Ggv{@mLLa2>xD>Y+NN}xKfW1t1*1RLeg zOW&j)--mx5CZ*2Z3!_0>kiJcvFb-p>GHc0R{Z7!#w_}GDqGCJB58`GmejP=M^({O8 zwO9XsW5ExQD-6s5Kbjmq#&xvUZ~a4$&$$!M!T&YjfX(uW8}6C{PdJ@;{XnB8Ld>}7 z@Fm+_s|}x5pq}v8aR@y#UUeeOO`0uU`Sk($tewn-86P+vKvn^|C`cCeoDI~g0UwQ6 z>BTDnA7m#D-%mUwOMm{BH_&CDANfdBlLneX0GHmhGFI&!3yS-^erEiemPmi}kWsHr znGM;BWC-!r5ogiyV8}EHPAAukm2_Ts6k)+Ue);Eh_PX#~lz+L7@sB$G=RSRdHr+;c z*17|GkWc8}8hS(3FPJefytH?R4lw&wk!eNMY+U@TnU*`|vzx9*V%X`G3ifDEA6KC2 zRay$x!+9iz!L1;z+6)$*uOBYylu4G1DwOrH()y7vs-?kY*Tp;yKxxNvI5;dA2PIT8 zJtlDW*?O30WLhcywxtD46kDl82z|CB9SOC^P8lks_6>Bb=d~f%lDF*Fn}0;CAUiWj zv|5DdW{Q2k3ek9p`3pta&Ffk1Le`Hh*|)o)$eQ+CV~B|Oy;tARO%W|qoEJbrrC4ST z6B4TzHOZMGOzr=#nsmcdiu(DxM}Vd0-T$rkmVE~Yp?RzfO_oiGL>+Gk-MWe-xIC7R z7aCzn;V>d#La{RT@+9fbqCOmZ-4!Y7PT-`+!EEq}GsKwqtl=Kc3VLK#bBbu}!s}>b zJ|v%~JS4HIuD8TJgIWd?9z=v(XJG*005~o+ZzrcO$9)M?s;h8U{D@Mv5^t;iok^)S zR6vn4Q{U_YNcw{-#hP!Eo0|14t(V;A&+jezvYlL*796_Bv(n++9212QhKN&#@p_67 z;rC+k9}=x#M?y@jA&3t`tTiW%nQzOD4qYt8r*S;8NHEsNwls{#ex?2*EG(`CR7?A$ zcrEN3CB%X@>;Wjod3s&`4Ao&id6bYWbT<--A{&>9L>?VHEFcc}<`FOChk-cG*d9Z) zE91E%u4pLE7@{CM^dxVH_G5lEc}E1h1^3k+YD8HmmBwvI)Fmy+#!Jp1LI&O4Ba4x5 zOk}$1W5|@ zm%% z*@Uy8W-m;-`n^}*5KR##Cz%nJ41$T1Qs%s`F> zI?FiEQl(Xcvc!47wMxjj1rkNkfv4$X8A}i4Bi)I($s#sflW@eid*kp_7*?qzI)KB+ zKZkqcnP16MIxYKxxdFgZT2s%uzLPnwB+eN^WJx3S<3Diq)Os*9M?S7ezdkx@|JbQ7 z+j_PbS^Ywe6*dchj8G6cR&*IfTjQLe4;D5_3q7HdW3^L$n8^a|DZx-qxZiNJmm-=o zrf>DbnEP{O54lcDw#m)~fXjC{$?iK0%cUDDx(MVB%IdEioQ8OqlbQ=Q*wbJ29<{zr zc(1RZY~l!l-l~s!F&w9XLy3AJv4$|3Z-;oDaU0F+bobD(N^zI4zWCR5L_Y$>`0Fq( zhRsQ;7)z;5jRk`)%qH2wloBI8=Gy_Sr1=m8?60mSEr>wI6R)QUSHE}a8>*=m0JASi zn;&os$@LaqGA=#z6AkEG(8++Ud@2C%YBSggp70q0C$u#1DfJUq$Ux7_8hMIOD^*9B z>T(@CM8`w`P?6WG!!l(y%UC|2GGtCY|005nFl?s&*e1uJB?HaJjZ>p?*K74i;Ncz> z{k2d9{to)%|D|mLQ4>N8iW=Wj{@&-3v^rk})Vc*Df22$Na$Nph8)VY(fS5_GYho(uUn zyCKcpet1icACY$U!Du9$WE|-v7c>67PhZSn`XFkrLOdo6Q%$j_?&wqtog{#yT#nW) z;RYCbXMaR9fB+bL*l~rftJ^)Vj<$*RW}o@AB6WtPt_s~*M`FncPsmrpe%jZ@Rus3~ zb%ZN%*7GvLdJH#Maw9HfgFIv}GA15tkO#?PJNNzC2YDYkH4@FIw{4r#^GNo#tU$?F zBi!kzD9Zh-E4FB%nDNevNkq!S2g-6!Y|BoSlUi z0b`x;HnOZ(`QID$4cyegWMBr_RS+lrW6P)+aK!QrpcFJL-mU6?9+Io@m4hkB{$(!6 zSi}-e>y|mAM(B4_VKeUXCNZ5@2lRKuikQhD<2Bs^4P9d8(391?>)ukF2?$w*;55Vo zPj2W_ZpL`DWHIPTxd9d-^A(d#R8dDn2@T?{e!!_j!(fTS`Qo~-WMeZ{{o%`fhG7*< zHBL3YL8~e7eH?mIj)t1ZwLeu}okE*ntznmvbFPPN%k%U7X3!AF%c9q^^ z(*$J`be;BLd|asdc0IsG^$L(%m4++qJKV~tFROaraX0|D)J9W_mV zVHuNegM4h!X85&%6eNVGK*+3G@jj|xNT`8<>y=u9YQ`OVaN8r^m{W{)x)$9Y8H~B0 zTwKUs5>2w}&)e^|mh3y^%B3@_z7XpS^O(_tJcw8VqB3sCKp2f{8eD-S!A?=F#%c;BXMXl1C@oi`X?ZMj zeTw%k!IxpSEpC-#d+GK@vi$*VoYBn zKuNf{O%EoO-O-?F9enX0G6%mC@Pp(kwhW~NJmFiF)o~$pcy%alx0XrXpIcmGJET-G z62<{scMgJXEwvJKO(0iQr!8YZKr-^c)nO!8SygE|o(6a9Zl<7|pdP5JktXLAIuUqLZ zDv>hYFAxBab9QG{ zR1E+J2oyPHJ{LJ=zFt0Nb$AN^0R-p+000E&0{{TLy-Tkw$&nto*RM#FHZzMp41c=| zq5yTM2epX1t;O9@B-JFky4fIWMCsp;eUHeD$a9O;nt=ud@}`||kMM`NxxMW_{^h^_ zfB5|$|M3q$ozQ>(1tn$ch`{;c0{gUJLSdSDYd-+UCkeBtw*YJd$ck1q|JCuZURQidmlx> zEd8-IzhJB!9eea1b=%Vz+efSH5dRnB%<*q8^`k|<+VsJ+VxTcJ{i(MeO=7C?`8}1E zKYEI3POztaD3#4SL*Az+W-Fl`oI3m_FuN|eih64`yYS& z~_t+Q0eJWBqUca^TK5zg%noDEx5mSg*hJY4&@l%fI2v z+rRb8fwE=g@xS5Y&(k*pvwC3n-10}Nd`vIS*~-RxqMWd)D&;SOXkP6D*v625l4U9^r>FTG1mOZqdo9% zoWM8~@$wkTSlh?w{V_)UNOAJUh~Dv$(c>J?&VNUp$LKM%IJ2YAk2c#r+WN>rOrr0{ zHqv7>Osxi7;@@~r3j&1hK|yjfuak2cvD9_p-QKiShi?a-&j8E_0QcE6Xv zf*Hf#Mocf-2iB|>{o@qZ=!ab@fwN@=!H=sAyRr?y@x54vxUT{k=TTz$Q=Ap-N=|7n zb8vbsuCG$k18@vEwjsV#0Y|$W%NonIwG#bfw->>_jUBHKC{QOid<>{EVh?Z<3UA$x zNyM7xkq!)Yi@l0d5h%Q3@Ii9pDAch&7H;WS<5i+P4qAK^ioo5LfYv*TyZ`0|R4yqI-Nk&T)&isc}+foa;K$2QXv+7k$NgVstaNF6D=F|U2OLB!?(-J-I_4srf%mZ( zmCzPw2B;^%-2S}<4ayT=ixr;SzEzgMI9xbX4TDGX8FOoiloD|8A1xNHH@$7fTN=2E z(m2*25eMMlOgPr9$JgSuH7&xi2|*HqG|Wmk1%K7!jIN~72CsF*NI!CH6y6UmrpH|8 zz~_Us1?dW$inW^T-*A>dpaV%u9HPLHBhFo{ZL}YpMv%Z5AEwhmf#Yz*p40&thbBnf z7BnL6z}TOUvh@QbwqyK3!Fwwt!Er4<$ZZAwg7huSCzg$*7}y_+8Ti;@v4ecYDn;`+ z2E9i2xKU>yREcTET@j=!bF1>ga0c&>9_XI2`YEm(5LSS(^FhEzuhBg}a-53FOJ{+9 z8#&fI=oIKvygY+oZ1n(K24KuBt`8t};8SjRTZ}c<1Y4QoaNx@8;5l>9=HN9CG>*d= zaG?5_J063$=0H|ljIq~&Te0T2JmXMx@Yx{e2kzVj26MyQcHG+qoa%}di=B>(051p* z_G619G-CndCJml9X5NEYh`VPL@W=7ewDt)eJ5FveW4zuQju`mfxSE2c2+}#pDf0v# zff_-&gFgn#(e}W|*sb^&Rth`>P9Qj&fI%ALGUSB{IOn>@DT|vz@D|U5l*9@Nj?3_| zz-u(VJuZ%8;ULHM1fL$S&3mxg@w%z*fgCFq8tW4K)8fx7uHPC&Dewy%%&{=Y4!Iz% z*Em{h;(3fN$i_nV7%gaD4q8Y-VcW>!l#C#61qj2z-ctqIcjVHnanSQ}m9V7{De_AvBH!4-lIR(P68UFG|q1K>Fw& zC$B;{!mSj&gD&&{V@ZNliRL(DU~e!Ea78*(W8ljW7vjvueIBF|ePhDWeBhq#Xy5rf z=AR+Gpnse>T!3jtcbtlldSbIy$V9P}L4<>p2W7!t0gjudax*Y%OfYVo_*z_72j6Bm zDAcaE$3+t#FG(LyxQM)$7+f5#7GDc=LU-Uyz?gSEyMu;@?55`6RpRSYb4ge>@Gfya zuxxP|@D7E58Xz$WcPvU7*KfO%cz53o8!k3dEmr^g$F`5YyGca1FA%K@sa{ zYg5slI~M)pww~n1!Rh25#>Z3O`6%R>7l;CsPU5d2t^^oMG4!p8&atiWZw=NZ z_}e(eacsd_W4Cd=Y!nNRiraytd4fsaD`*A?98OmuYdmo`Zn1QMUC^B^5- zklzb97AGhsS@x#S#}4&e$+&TNa~wTm_{q=r4iS-8DjtKt#$Rzpw!o_jiW*zDd3Azv zb+E-a@f*19v3KC5Rx|c8*wzJ6lef(T+Jg+NfJ7b2~ap#!nO%DbL{#S;}5v;*n;7T>EbyUs|*~S zl;9WMpTWV59Wc0k9#g1QpsMOw#~1{?LZN~8XB_hb8i7obgo$^KmrQ03Bv0hJE0{Wi}B>v2YcC4g3^RKgIBs9)&7 zH89@bonsL3We}-2v6K-yI1TXa)bcD!UUAHE@~EAG=uCP{?G4$cAm>zd9nkiO+;2D& z`-nBI7;cHpg|2GDo>W{11GB~LJwdZdOglrw39=4c1#vAQqijHFJP#xex`Otj;Cm1O zJJlH@xP}CBRYOFJ+jQ`K0S65Px3B@1p}?RjJ=j>xFEHW*A`(t;qI$6rw@GR{;Eel% zS}trR^eY|695~&mEQdaa+9R@w6-v5tK)VEeM1sDCGFBX2kj>zwx!esnhxdV9DMZc& zMcw$ZJ3%oXiQCB!S+I zMNQqpWWiykSSyfSNH$Qh%|P`y{tI*iX9DWmSd1QwYe-xb*Dv16;i6$FfvUV26QuUI z1Ui)tXdWC?U`+2|_3=3>LLVKxdYXEUOQ1?Yn5ZBfR7Py03l7E#%8EAl`3W){j15Iy zC=5ehgZk62gUV%Z(AT7MbkQ82$7C|`1o$zz7%{mN-9hAlM>sGgx)%Bc2JeE6!24rKHz=PVDNJEuNB~sN z5QgI9D8QylF&~oS4#{zWB=p#D3Yt>$2hwN04od?P)*$e&1B@__TugNaM;g~>$G$b_ z2MRe@G7D`4RzAr0g8hbatEK~NasfeY4NSleZ43!6bYmd`XNV)fGB7D|`O~t-&p|K; zLye;Z0+6B9+Jm@(4-R_Lu;dia3+WFSwg+w<*dBtuL1}bknrsLMdV!s%dI$7zNgWVd z1b(|#@~jz424Gzkxj=zU-^=E8+PgxEYp+eRMSP`rWR82TYfEOB&;NQs+@)A!t z_Av3pB}o1@7+-uh4k#4k!4P(E`?!<~`DF+;{Q~3mOFt~0oS2^fzGCe*yf+AO2~Kq3 zBEWrt>nP5|BJVQz9bATsB736gst1xlHBf0<(zq7HhY;yO`@q>Q7~D2IA2cm3sMxR` z(EsB7aXY3pIq#s@!7Rq=Od8ZyEDtmb=;q});qMnvavmWuO-NW>cDOzG;CO9&;L_`0 zT@o1T2d+pG>|muR6yW5Alo&9`-Gj<#oD_&}p#M<3u{{{dcs)3|IlfP@R?Iy?D@^@9 z_=qKLIBxzLb4{&DQw3v1gE6vFy%AkPGV3zyL1h{^R7a+01t9}64OH?CG7*H~GB^xa z{n-x8{N(wsG;^f~v>qcZ*@wXOZn``nA2v|ML{A7(AK)p7+4n~CAB^T-zjfrEXF`lH zki7v}_XLtP4Q6rWaV7>djpE`-I0kVhMe{^q8}kLxhb)f0jH6K{n{Uv-fmNw}#Aari zS+K`jE8hp3JwT>o4?Fl@{(bO>H7NdoI!i|~0|}s&iZzP%ID3IwFvmfa2h}IEP%#Xu z@=iF8LT#}WI2sMJ)8Bb?67?c{504hdukY~a1=n$ogGY0t7{GA`4BN-U<2M}hfyABK zF|qyNl|Z*gFpA)%=zXI7qwX7MM8SRq3}+YK17OJa*`Zbj--~MsX7)*CHrVpO`PrcM zNhkb0{aGNY1{Q%k2fG1{JGgn=^k8lR*B2Bt5u>V z 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 f?utDs+~i|n0p-FJ$4WcG$oo5ZuttP=^tj@A06 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�GsGu>$Bc`LTo{pdL$Yl0#< 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¬tJ}CUy!-EkLIu6CFpy#OsyG= zM6|;Oz_dW*3+ryuV62uEorI`q!|o|Lc)P2&|I&}oce=#Jk-D40qj^YlrL3;N10J1G zXa9X2x*zMuuYG<0OS~5zWs|5;M%Wm|<(q7)+hhi9D`aGT)vW}!HovXGOC226a7-bi zjK@;`uRnbA?Y~?X^5b;*;rrix_w6@-`0Cw{zyH_Y{pK=oKHqkfn%ZUm(n8EuCaq-D zy)xCsJWMmO6V`qqY1SOPH5zUcinN;Q-=syk``|~WaQcvAx5REXw6{658MR{ES2Po| z6+6C1;7BYsVxwbsj8c0_^*-1=BT6K+HtX;l>V4H;?DtlE`M5-8qJ+&*WoFhy2RNMx z6cI(P+$wUdx$ud6%rYJJBuC`a zSbSdU%Nd(yu+zJvY_XMgX?$_&XAgctX^Z#dOg#;_yEPqS9^BLxzscDQq*yuQ1y?u4 zIcXpJkvEqJ3p?FqsZD{yuA)hV7`AE}>cn)%j3H1noEiN!#B6Ina)ty<(KZ-|)a|GK z(T_)OD@N+^#olg@pEsC5)D8AkwKUXjyD1>f+p^J~j~MtLKey+QY_?h{&>u6YHkirfm^q)MpGO38rNX8EbOU6c}x4^RVTO6`i>Z@W^GE0uz9!nuW>ad2ka2-AdCqh)ixTIOjGs^Qr@74hcjXdieq<}oIHz$V^sd<$>{8jQvpLU^<+08k7H<01&T_@{ z2M1V&hhRN1A-oiJu+6#2pVnxfUv{#s(1d)58fPbK;-&;2tG)!rju}Sk++M|cW*Hh1 zX_3_%QcWr=GHs9BYW5cnslT*uTdDLdh}+QoIi_^csf}E)=GZ2mBiQ6&j}_lSrET-C zZTP1Su8Q@*w)U#bq-^?FsFlYf^J7gbK7U)Fx^^l-V--W^Gz9p#O&3IFSM2Y8qt@niP$7%hO$@TtHJ&lP2?K1k#C|J zY*JuM>wGKG8yF`$>u9Xs!p|s?5>*UO&ht-OQOi=1G{`o_SsF-{`C#!&>M!}5wL6Lr&m*s)U&k3m86tUa9+q@@{t!EvMR zR^t*J1XVw8vbO0*UgqAv{Jjo2i1LEK#*sU2_qO~w%g-kT=YzME+>grbH znpncHzv#ZzwX*J`d+V;%L5^;_@7~D_yTff~qOxwRtCv|XtoMF)zk2U!!y*3E#=oMg z&;D1$l>##|+KMj`LC1bi7m*9h zv<#{1CIA(T9jK%ciL)3FCfs4h@@8jO(UG7_L_xeoQxIneUmTBrla?kOV`Ag8Ho^x7 zpSAW8h{5lJ#=h2$a`AQ3pe;IFV80|IIT$8kBM*H>##SO=s{(?{=%bCrlJ=MObOn!FYp4{dI zGtKhvM>dIj=s&w6e)jVI?B)I0%losJ_pkNxK3Y^#3QH#yRNb`kyTBKp}y^dHzo^s`Us zXP?l|KB1p|LjPfXLjMQ&EdB%eB+gw4`4|^|*=TX(<=Nj%mtiDzEUxioyl3;jA}=0y z^IPxmUqMmB_q*+gUGHdZyT94~>fiRe@9nrq1n2Fin^yPr+YahH6_@4BO+LD-$!kRK z&0bg4$n~Ut=QWc?HQhAV-C%>G2cvajQLc_vGw&XgE5tCqx?*Y#y@FGX+CqHl4P`*q?krdW($l zJNXAb>~`ps<}dMa4)FuGd~NrBynAZ)L87Ea)r1Zk)ff8kp}apFE!OAhS-9A2qYqj3 z#2;4A-pMmg?lEDMj|c4)cc%>*LmK7Q-sHrwxv!$j+pyIWnt!6%VPu~;9%OmAYiRE_ zm&FIQYf!KBy73sCKEBpq*dW+x(38ef_PJ`S#>Z2)eSH7y^4YN-1h>JNKGk07r<*_C zok@GsB)K=KluwZEw|W2U3$od=DMoau$%dhPf_~g=&3y7U?F8)?x@;=$8+ObW`f>Be zyGLl(!jMrGNqT;QUap$=&wd@-NY$sfnVw^7^M!u8`Q!U%AC0jPWq3!_p1j+-d6TSW zYibN5;Ro;~TM&UPvE#{)PyV1C`3v{030$3B_~f#AfB1HGY-GwmORTY1(r^3t{^2Xy zG2?_Ok+tk4N_s|owUM-I_D$&t@RIiAVzO^OJWohQs7i>TCZz71!V>->nMc+`6GVLg z^!g{Km9^wT5%AD>)6i41sUFeO+YmN_hf zM%xb~$)9T!}aA%7>4u zc%K*}_eI$tREHrT50N3V4*LO9$dODdGx7bCqiA4CBxb;vV_-Jz&Z2OGRE;!IyoDmz zhE6)=@!-e9A+=|c)=l3Vw$xsz<=J_^+&}8J9W*!m-!|v_`n&Dlhxcf2#%?E;xl9h) zc%h%}{rG-4rNka=-W;OC^jXXRrce)Cy`dUgz|fA})>Msnc(ULD5BF9hecqOX(%-8% z0B|AGUf2SchbvxW5A9D6TJM${ZAWTyJDeT;CI-CHexr|`9CSPBHWA6o-eoM_R-Fk0 zBg;I-wq_;-tYNxx=?~AIb^Y*!VR0E%NlFnO2MmM)9Wu)Rx;ab-y;pZ%t;PFbY8?E7Y-ye2odS<7A@loT>c9wCi>4_GPk-_@>@EO|R9gaKv zC$d*ynr>KGE6KePr%1vuGJIsPQQOEI&oOw1$IsY_OrmT_<138=ln)U@k$|G9>kBwt z^W9ZQH++NrVZ*_7Xd~d>Kq| zP>i-SS0BNsKcAg}?@wMr40K}or3NKyBJ^XuEF^0hIsH5AW|rU6v$h!?u1EAyG2D!W z+IX^kH^~axbU4~^?%$CctUY-xKOP=PoR6^F%xcl!>MqgD4pRFq@8s8u!9HA)@W>DL z13SV_woqmha{i_C?74h@cV}8N>@?vflW6TGFoGrq;Q}^??cBBwFhWT6^i7lN z3I;tEi1G0-?;cWS|JiYhf|J}xF1AFfZ*ilzaSYg$x|%Ux_LI}~_Wi?6 zix4xkhD;=?zOGptL`vFVO+?1-qm%pHy~|p8^7=Len6c(yz*9~6@Hr`{OYmfjB0h!j zmd-5i8BI;Jz+3bAd5ELpC=ARv(tws;qTZ|`9w7uz`e!9c+npO=vKEKlUThS?w zTv5BtM8Y`STVfr4rH@^h!Sb)bCI3ZSnglY%f!#P0x9ypYEppcQ5)bvuz?el@rgJm(j4Bq^Hi=Vdp_; zQO1$Pv^<_gtbg)w?<}#Lru?X(L$kY+ys>G~XzhdW9XmZwPk+3+*LRlCufjSJSp?CZTwCTa9LCH{%h_>j&%kvemzneRq|dlae+)n;e64tp zG@8SVazaMtxLG4Awrk^6J!uh#NwO!Ax=pBSX&uH1M!*lp~!MA#Q% z*K)E~!U!6gm5j?KMeOH~!C_aDtd0)l_4?f2FEEu)kqA2$`QC{$HIarhMV4$3&LZvF z;n2y>7_L{pe1G`kbNs^&U&RPJ3Os#$f_}sYynhNT&{4}y1Xa+4B}gnkT6y@*%bI0^ zJqjo9{ZVG*9?Ec6w7Y^B;{J5)z5vl|Y}IIqnpPCVzb^D~Cp&WmTkMi;>*A|Ze4T{_ zS^X6S4vDPM_WNU!k2LPYgqmzC24%Y}&sX}mlTm%dMT}*9v!h4S%FsT8Zivcxpu}S^ zKvsPYGWhrud4O(;MudsQRK1*l8Z2&8u}Kwp0cSQAiBk7_fWZ4BpkU{S4SW}*K>}M} zXulD?z#}W9L4utJ@g@zjy1gN=q>4_M6z7UvxJP7&AKt?>fM86A>o$uvaTFs0yfbIAS{XU*#MI1pYT6<|I>ebHn zSMs=#!8k>O=$e!`Me)3l=es|iB2UB~l4E!lx_pY>c>f&kAz8G^vW5*jeS&^|^b&$1 z%Z^;!CS6~M^PL>UM`XlsQv^zkI)kroLN&yRhZT6d)ko9xvXr-X^=&qVpcvr z1+vs-EQ&U}h=jnlDv$vKM3%!rpO9zf5qk3e6p_+U>EN$6NU&(s>%lGySht$==`Q{Z zw{z>q@vyyW1;EJo63~~UEtnKv>2;$$@)THOw?!go9oDwJkWaVr;1TVjMtfXY2M_C& zzTf)sDVSy_K{TsTZhm{E?=dFtk64vm!7OS$k&Wql1Ly68!*h3<-#6U9*uXZcP*I#e~MBc z_TxFMY#srliSt|VA!WC+$+H{fLTCW|39XsfntSAoY$8v=EONCpkw`H6`Rd0@oQyQ5 zsZ-flME(?gidA`kj)jposQJkluEg_=7_Z8q=Tuou2BI>D4V)&qJlUkz5VuMo%bSFw ztZ7ss}w59(!fu*B>g+U{2q@o zZYz{#C$wjv#KZi0`vkr2^tHT#TqHoM+lX2Av3s{Udyp?zw{hb3{prb%&oMPJzNo8G zp!=ujdu+@5Q&f!Xm~n(Abie=ejPKAuGCxre@(D3c_J z&LW}z6ZHLF`Ww*X>^_vP2i-#?2NiTrJbY=p|=u)if;m)m>@_b z8tWT@waCDPreXFb;L=B-qh9QbI{K!h)f~09Y855TP)H zX7gmP2j4OicZ!FR*P$x~Id&&0zMqI1dKx?YXQ$@d`>>QW56{U{qgj;y%Q7Kn+PG33 z9uZV*@H3Kab~iX_t>Aqk1rQNr{b=$9PLExw=^8P#@tRzeai!Ql{o{chRS@$;#uvTM zXxaw`|6G1{YtLkLGu&8g$g92tHJ$rMV3N&pR!9>_q6)5YddYd$fTU{()cJW{h`5tH zS|{213S=%SLdRHsCb9ah7x%-Y=()2oy9`7cUviWYT+nU#4nU?2B~H1o1m0dl zpU5oN?uz(}0YXi%?CIfFB#9HPpy(@9fQ?a$MX$#pd1F>uRmc@W^X)ZS>(n`0FX#67 zdeI9BDC{Z)FtnKfxn%F9rqzpGYy-ws2qBe&$O~AwYtl2u6m3-m%gVG}L$o%QvxF!2 zuWNNU8Vf#;BG_2LR@&)eOknE`*jHLhO^T+Z(4p>PtR>s;5=eILoprY$Z@Kq%^d0os zq9}=p;o};0cZoMUJqzE8YwscI*bL}=JT9K~HmRi=R(F)*oW zB^2D4FL8J0!Tb3B(thhN{_^H4nWZEr^kQ6m0LP{n6QLotO|g2re^kRvZdYoHQQ0`K zUB$TA0>-#5L3mqFF6#grfI&bph)s;pUd*wA1TZ{aXmSo%v%>Vy$?7hEt}uq6rTY>m zcqFg1C~QgQ^QbIwXyEM?4oJwD)mL z6HwLsejplfc$Bf`qicSvZ`CHocn(+8F+b{23MIQ3kfSro-i0XbWYc=IWk-;Yz}2%a zNA-^LN(qr}DdcUFz1y5|HHpCLebMUY814W{yv4qD4^=?0pZKwabLGb5b5;{#HcX>=42eM0@YaIj?C9qdY{)qpwY<4ZWbbNQ14EpPk)f-E02DC-fe|T(#`mSdcP?L6 z2<+3#Hvv0nqbSBg`!Z`IB{rHwzM?=7@8)~rNXm#ie)R_n$C`nUO#psDNv%w_- z<&Y?5*0ChSW&+g0Gp&*h0k?L)YnPa7 zTuXo~Q&V>~XrswKBvFr!+VTlqbW|AHIU-r8 zLR}jx4IL|)6q&k$x1!EP1tVd>LVo1*S9}=Z1&&`JUkvfd;0zJ*82ZwNG*3m_Jm#Z< z*cyw1`Qt$|xjsTdO ztHYz4Y?a_J(jXM+W*bZ-VuIs&rTGVEPQ2fiDgpe}v47kZb_&hj*kOeU<+}02s(Kl` z&c4%u4Iy+^06i52lID$mB=ross~plU~y+BA8XdmQ9~R1{1+S zasX~ICG`72RuEnBh@{chu?w*JHTwR!xtF&KSXEs$5UM2Q^Ds8Q_C9vDVz?;;3XW5RI z$3&cBVz{_Q{@cfnTmzElk{S~g>B&)>G&JeHbGaY+zInO|IooAbn`6BQYXS8^oB)Al zLogO}PL;14Yz$Aa#9Usxb^)Q*+69VOIt?Ax$WsS4Inx9~B~FCTN-+Fb9!3#rN0-Dw z*qKdztInAeOgeSWxdM`OZq!3@Ch*LbiX?%2=ri#~eA!?nvfqqj!JQ*^9CSAmxmv>; zIGi5hIny;w=`*hx6BzD>D;&)}M+~U4UJz@IN8v@3p@UePbQ1#{(P=)HJru{yM8*_6 z^Ip5oG}nfds@LJL9>Um^XNtp~It54~Fa_CZvM^2N$gbSws)a9kqAKoMqZ^`Dht7$Y zypi+dm{f4??bE^zDQ&4h*n)(SGq>#BtgLbNOOgnx@ z+MiKyWvJLXrz9V$;ayCR&^fJ60%EY<`RWF;K|+go+E5`u#DJiCmH#(9&9jz5Hl8)FaXd;BNwC2if+0oz~7L&>)7Nm#AM?b;WlW-Kid@S+)TmaW zyQ;+0AYT$ft0RHhrE|mZmyS$F$-9J7X{wtRE{ZdvqsN77VGpguoMaP1!C@|*=%dwz*)_Znp1s+IKwcX1bL7w&%2tms63TyO@G-gvo#3LgX#}4w z(B6bxL3Vpx5!FQ&Jm}hrE`xj)o*X>~3KznOc0i#lev3p}_9Q5i7 zK!T8J3*bxswxWSUxgHCXX}X^`CxK@LfhJ@{PbhwoJ)B^{4x&;NCKRGTQ$TSMvf+Xa zAYvV#ZD@$aQ5{6u1lsuhQ z+ro-0YvNhDzf`9gyNdlI`Rj)7F%1QQ07Fxo)5XH1f=J)=DGzMZ2UIwN~j!?5bIAFX@u!l_GEY z(^zh#e6${YW!QZrP2{$A;ldkGyan(-5u|}6tSGH~Ac^6e$I74mc1o+v$W=lJVZ%<6 zJ-R1ZvZoNjFl(i}fQ4X|(_|Hl?kEe`aqX+zt7^aJ<#Xpi6EV>V0g%-GB-qb zoi?v|o85z(JyX=^^YiX)#tknA&LC?uEV^W;&sm%=d86m&$q!v=>8SGACSQJ0mAWe& zx4cltzu{%989?p$^lY+co+0@>OL7uGelbGWirS zDT7l8no)IIO%c3FmmV<23eHTjvpS3haV2qiP@027#pQ1zX8hjb{qezj3KGVmd4xJE z-KvahMyt{xWTFmfKRxH$u6oJ}@jN@pQVJ2vO7(e3^Ld9;M zl(l-sT0QMGt@ixQQnWr=eD){|`8tT5QZ;u%Ua)?jb9cQ|s`3J&5^G7)O8BkN&3P9RyTW6z?M^>! zhiBYkFk@YIfU%+*!U>DTsy7otalfV(vjLtOvvF9X&*5KguxyS5>}xvvyLJJ>C~90u z!V|*nDtuk*SyASZ+x4yGx7WmDk^(E(wAN>WG7zA^eh%sdd>dndaK$y!LUucR(81U^&9`sY!lnwpdm`##z%rayFZc`^gMNPi{3Dy)Dw4REhI^mau z=nY%=kS(;!(4~^NC<<~Ek)(0z>@^G9lgXYwAcWtPJVuPf04i6&MaW^8b{f@@HSYm4 z37jB0q7Tv-+EH-CoF3+~wkt^|G|CT}CN`Q@EJkl^FG|z)n2>80H+~13%|TFsV~&yE zf55zoDDqYLG4Q@*fL@;?tx^qUlEeRyIfP=tvRcuQl z2c}d^TdgY&9{KVnV~F4_cznasB$z`g+#A=!*HxmYOaT0R$*4c|i%{iLTLdxK9WQX` ztfEP2c$BsdUJqpvXdlANIW>NBRK)6_YIz|bVJi)?q24Ziy=Ldbftp(x_+W~!;0PEK zh>y2zoJiHbrtY7g_rTky#Crue3HF_5*jb zkdZTLwJPp<^89rA^gJHTQ$qemAXJoJikR;q2d^}auKY0yH>^k^cwf3^=Wo0wp<)ok zF}!XAn6yzrC_u?#n&I#xDzRJv0dNwXJ|LHHRp?P(p-(9O%{}~)P@Ca84?ZaFk1G_Z zEAs7zV|=VQAbT8vD7k|hd&w>vl3ZBGzLZSvGStg8Y;O-wGY4S?3dEu{c+gBK zmOxh&XeDfF7x;$EDlgy#r{1{%(LHR_p$pDP2ITl;mxRdW=dam=B_L1F3P|9Db8tn3 zU|TCV1ZAZ}C8s;h9*9?*1Om6uum>*y5v<+ReeLF8ukT8;RV0p{5%OR$+fwHt=u? z8am3vP!^fON*NC5^Ye-xKVvdnL58F{F3r(&0ZIQf)YKwPV61-pBEjSz5+rhM`~>`==1YJns}4vkZ5lQq!FoE z_KNVuxf}2k7c`2~v(j;%VI*WBsRzVoEH^K#JKZ*groiCKP(a)mw!rD$i^Q7CviQio zl9ed0v%8N2>jBtvqQ967tglhFy5NJm?4lRE3gs8;Fbq1|rPfBr{lMNu5XBTu120l8 zbez$1+5&o#%@MKyfDzNt{n3!To;J9oZP~*R4o#l#htYVrtrEM9ELa{Js5y5aS-gN( z7!I;bo&hy3=ot#j2LmEu!zo#m^!PIn2a)Y(V2ulc2C=ZhRS?z`*=Vx+gDxE}pd3ga zXMBxUXc2;S)JN@hd?}(;89iU|Ii#+hQ8tipMb}S*XHfZAG^Un$Md@J2ISOTT>*fov z1|AEcbzp$YpFr<8Kku>e&(Iq$7#pMtM-4tQzc{80i=2z?1-gUWt}_V73(^Jw7D@X8 ziQYc2Xf2p|1@S=DI%9FXAe-bRCS+jE?Bt#+43gsS(C6m~W+*O$r|BMjWxDf40v@vz zFoz*a^0T1J342L+3dV*M)ewEsW|7t;DJmx=i7OUlRewk3P@H>RkoE+BoWD;GPaoLa zVd`wOqlMwUPQJ56_jQa8Kc^{;r8&lcmF29HA&o7YaMo3M5#UIr-7d}FFJD)hoyW$o zX>gOX83ove2^0-9$ws37g1wB*%KLBqF{P8!U8gc0;G2R))O;?-+bcv0(YUNAMVoCz z2`JP?wF##D&|S|P4gM?GuVP%Fg`yz0wFz-sMOVF>XhmMI9#R*Lw`RX|56SJ+ATJhy zkBA$n@TCyy zH_BB&uIp6P#B838ZV#&RNU!VQ=v~)6mwd`#US$`LzM-mQB>9b#su@8>xq#4yi5QuR zu2&*_7MWo<+#QQ!Zr$U|R!qwfUgl+|}d*93PnXO9uCd4+&uBOa=n zG$emTg~Zmw`6t8zhW4};u5dc6P3&;pIc$p?AtRESIW>ty!f_VX2iS|v4Mn1-N89)* z8r^XX^mg;htTmAD`?@`Pgo^5_cp4Z{lkrK% z6DiQ=!DHp0n!lln0I96whxX!I@s+NaN5%1AIdK<);=p=ZFbnH`#R#)n2pEFy*;iX# z_e*BLAm#59P6bOHvt3;Q-|__vp&7Zq5W`ebfRX#~)>eU*V;V0_cl!7qtVDtR-B&Z5 zUC$S9Z!MygRi2N~v9QKhM~gyS=4@-g`t35kSJ) za;gHa@odiM0X^h*!C-R|V+q1IuL@!eEM{_i^OR{nQN^(<7y?@* zph%qhLpiaCw^M_MnH<|DYe1)3iEjHObWS#!;u)rdR|~kuVT|x>vK9)%gFwWobpgeK z@z|aO&8iR+i8u^IROm7kEBY!4HLIyuLXp2#zJcIYV32TSxlJBXQ>I&m>5TmCQ8r|g zzc!!37PRo zmhZj|8}t<=?FvhFejZ)r1SY1^NCl%j4M+Jao{Ir4J!!+L4$(bbI1-3K@Bm4+0aJ~8 z^N073VMnDyH^b8t@eGj>5t~3j0JuXJ3qm6+N-VvilaZQ6#TCLtP)&z+jLLNd{76I4 z!MvTQCu|?sze#_!9&eyv6^zb`DnV1kgVR(b5xyX>8Ww}{o~R3fZDcspN{+f!qYp-_ z?tE3QwF2Q@kl1k1JvU#TBplYWy73zaA-U6hW_qm|N`OzeS@Hs`SrkVjHeh_aQ#{R< z+6(j=p5dgiF;2P>T8i@*JQa-oC{RhrZbBc^*Vt&#SlF}2fs@u8dS9u@wsJ}KQhBP= z&|h%lh)_K>X9M6A*Ep{ikHy_ehBcwI)rC36aLUp(T!5fbu~MgoBnaCfTA8FNs(KxB zN8ETarb--1Nb)UlpAHxMmn&2dn`^T4T5nKVxs;ebdAppB|+FywQhwFFwa zcc~TcO%Kk*szN|na7pXBq$z2Ul%EOyl&v(vmAmRL2Z^u>nPxP|95#M&nXD_09;#b> z)O6!FCDle$95f*ctN7Uk7LQU4#Gq3MN)#fz()|i6hTjL$9#YZ$@r^`tYM=OP!3HKF z3A^=djwXkh8y;(F63e~@&&CFe4nHSpfru)itNg1&NxAq@N>@-SHL82hRr#QU&J8cY)0N1URXH!N z3_5lZ=9nJynwHdsWNYnt?Y2uZ=a_7qPH`7`y2`HI@6cy*ZceB{<^M@MW-{}j`z<+ zuj?^7T@TtpHDX@($Myc`;{05o8{ufrBGbB^%|^oAp@|ZBb)X5kqVH+l?_(1sc!*AI;hi`c9nPdNw9w%WT;tb+S4rxu3>2a1a48+VM6};O zLSENB5MabbmPIZ->Q48|^>Lx+<^GjgF!QJBw4KS%-~DIb{!HHiN6)Ok3KmnWpU{os zoL}sce3&92jzW!QiGx`wt$BJCO)VX{=wQzmAXeg9k(el_+neHIkHv-Di9`hm+z=L9 zmc&MkjZ$90H61QD!atKuFZ@%r<3Gbc&rqi__ak@=L8^B3kaP!NOVLbU@J@pi03GN_ zB4gC~F$J%ag$z=KK1xu}1xR(jd|kk*Pp?-oF;Fd`DK}HdwUWYN?@__3riBA0Q7k3{ zg1mxAsQ?CwTTO@iQJpmx)1oxtDJd?Jqg$j1V{VeYe|Sysxk%IlXpH1(@iFD|crhq0 zlL=O)UQVtcK%T&EoyX>a6pP9J8NqeK=SE1xAWoIiVciu$=~e-OG`h45v|ue8DH7x+ zpwx3l0)(VWv3O&_lYPZ~)yhMlNfMSx9e_q9(A(h~q##gklza|=O#xX1y%vK5@*-Av z3Ex!#8orWEHb3Fd?&rQa9POhq8=*8L;6vjJtIDFB>Kn2V8K#mOYI3fptdpcg$=8$# z$j~CaV)`V#EqTr3iv39;w8<;fq8K9HNDYgEV1d@eBGlW&O7CQ1sc{vlm)n(y!7`;9 zjI!<8GMEsxMdAg~R7mrPyHS{kvab}HHw1{lRAc$zb7Im8t8eNKuN_!95vRiuOz7D( z=efEd_!6r8jKoXHIHh}$=Z?Qn*znmC&*#vF75EkajfkUYBE)V1*sRjsn8cDqLR5dG z*T9Bnrc1h__jC_Y{n0h_jpn8ZmUNGMhl6?iF%Pe_$Xc@IU))-SmSbPoEDN{r9a~kN| zGq|u=cakM!DE&%l08K&x@%UK~fo^09aC)pj(^p)FO|oB#?*LZx3kLGJYgiIELWY-d zo<$*8_{6nErgsjBe2}?`@(#!wDc@6JlN*vc@w&Zx>PS|8vIoa?~-%PMZq6%nW_(Lfy%7$@?+U6+e51az6KtHGFE$ zhVu?Dw_|Mx?K(y$Ny|}P0D?kMmh9w?E=UR@3X`Co9s*;iORSL=5EN^3MRt}Q31BT2 z8uljFHl?SlNfy^^VhPOi~qCuVV+3!qK{34`}01DpU31^~JAa z8G&3OsjXZft7Rx~3*dB1{SXILear54g4Ep@JK*HN5V89unYcAnAm+`*(dJ+yFmmcM zGhYO2>X?}FvgGONXvwaKoDsNB1Lrv0*$WUz*v?9l@nV}p)2L8kqH;M#C_2}jKfphP z9SB>;pzRf*fs=p@6M^vx#O87QR&FrK@SOSURX!vt_564$XxUgvxS-u@PZ~Z$(>8~RFclh@)8}p3R){4Rv~Fs zB5&<0M2(QQzK|NBOTMD;Z_s0`=^yoo>d@Qku&rTtrwZn-Pf69 zVr0W`c)MwyG4r~-<77HwRUgs4&&BP_9=;i>5-LktuH}#ga;ivysCx0Ql?YA~1F!9l z>B!Ko!U4~P1f(wDx?ecuFBJ>U&m+lQDh*r?bp3rb`%8rNxd z8l68$=n|>3HF@ZP=qOr9E6@nG(DR_Xu4_U>H>cZi-QO<^0H^)>j2F6|@1Om0ef&B4 z&)k2d+vWcD=f3}E+EXsqpXsB7#C9$&u_mUT$+F0}UFdZ^U+DCF|N5PT;;ee!C;Iqu z+MJGy&VGFyO{q@z%`r(b3{VrJ|D9z%Fr|I*IV{?dp?xRJ2f&Rk%`AV<*%c9G=o)_H~ zofbXT{Z5wkdM(K2c9>XK-WkY=UE}7P?=C47MyN4 zj^yUZWEA#*jS3x6^X7mV0;gO#Wb)O~tl~Lf(|vc(RbE(|h^hvzU(z@TG-#*sYdS93GpQG3P<#PSc(%Yr}&+V0dF8K32;f}W;p?4`z zUA>&clL(^2kx@dTGy!&SWJj;&!m~ovqgYjNH*@h~Rv2PeoJ;otR@gM#0-lN4u^b4e zA;}7v0-%BBnbM-=hZzE17eI>cM-^YR1hnB$h|t~d7l2okS<3~ssO!W#$v773L3@2T z0mwo}zh4-qqMN%xa$ofD>vi3~ZkNa-%p1SGAD7qlz8;sGeahUuXup57MHjz5FXZvM z;uLPPEzzoJH=o3}>go1v@U zU;657^3M7yK)-gAtb&#!(Fj$v!fvBd9b`q&w1Ge0TuW&SAOtO)r~`Eew-j1Xb@Zhu z7*(ka*|qv|JG0|UNiHwm^(eHZSH-eYA&TSes7NiqPQ;lJpDZjDEJZS{E1@$kZ4IY1 zTq~+c4xXSAHA11-2*4M%d8`u2b6zP<5$m`^H+7L<=WHIYufkqYvrY_DUo_Sj0f}a( z+uZU2Fb6%SUY}smysx?~`cx<^O_%T^VZPRTDY?+9r6qF+=STGPBE@LSx>SVRPIg1l zB9w{#mUUFI?C>IH(ZPG?#+tNnR-*$CbG_<1nO8;cS73frn%tJP8W}CjS~o(tqxQrU zsF-lE@~V8-i?Eg)v8NQ@-O-aRQI@spl1zmjs@^X(*07bGM#pisw8g7qHDOXJ&1n#Z zO7>W1y4Q;G(R6%5%Q1oNtov+K_gRNESusl4Rc&5I3)ZNxSw2_fqb9vJE;6}`RfuHx zSLJcael22WbTk6d(+MFrz9vT&IT1Jl&%pL>IYSg^O)G z#C;-NQ8=QLyI>V$j};WN7shn0v#h!d6c|;?Ma-@@3%aD=4>cK$>+nM_4k=L6N$J?b zPaHRhVoGa^t`0cXj{{6z{^{qJn=@;2SlQ^p9!oT7gJxOEv%&|{(K9zsu6_$nC$Zuc5oB+#ty%+|IOun3ILK5YV3h zP|j;h5SU7iuX6yIYw><7lPZF1W@?EYxLsQc_@SYR7KnEwFu!Rbbl>qfkT+FI=kci- zQOR&Y*AW9qB*1Wvkdk2c9Q;sdbK=(SFJ6ddWHXSI5m%-i@%?~6%312ddf+702OL-#8) zSmT;>y@a;L-QVvJW5CvW6oi}NW_Gyb?&y@{50X=bPBqpk4#*4kF-Q4R1~Vh$*l%S` zL|Rs69e{47cQdz2m?#MzWdO?@3M}hR45JGnnFth_mN@3ou8HT9Jfn1_8<5vZXw$il zkvV$K7~8P%zTl=X4pO!OF>TK5$=}{oW^oj!t^Lqq--;R$sVw$Lm}b@Op%$lg`*6Tz z&T-rX*P@?iu0am}W929w+!Mmc%wI7Yb4?CGhJ>ab*U9L?6`zQM9zg})6QNbLhtK~_T~uuT%Xfaj{MY^rm|w9i^tbcaa*)@Eb%haEy~0S zk<{nr`KS;Q@OPBS$R27My3p4ii+<8nU$?;q8b6+Ag9#;E8NNp@ALx7Kb|j(qHo=b`>oq~K3%H_#07NG8Pl~Es?$^8EaCN*A{V%QD_zM1w;&c(8 zNb+XtI#xZrVK#2OpURq~UJ#>7@!XD;PT;_#c4Xz3=(xnvi=>%-&EWolPFVC6htG8x zszAp8P#H4CbbGDMd+MGSAbe_%FDlB=AwT-D0UMhncCmA1!^p}s2>`a7EAwtF3t=4* z4c1mwIhtF9JbUTwe)&4(L#r3@EqxX7y%hCLb=harN{(3eTHX(Rex4Ve>;7g%Hp$Xf zUJLprWq3{;aiof#o+XdPeXO#UAuC|cle;4d&4M#ZuH=wZ%c$z89PT+sG=dY!z(oos zXM$95fo#EAv~+k}anIMP!5+rQWg)6dbP&!$a9u?^OvX3@0H`1^oKJ@ACny+nK~~71 zwBu{B<8$u-+B&soW9_(iCaZh|p%4PI2(owHDEt}wVZX)xMg&na&yND77gb^4SVm}5qVYvT zUu#yQjXf>H%kyj9#;J8@TU1MjGQ?s7t$m{K@}=VS`FZC<$^ycN+)e%Nt2*LxfbAdqWlG$M|ro@wZgA6RB(5z(K88-z=o>&dNd%&zoYsXlgia-Uqe+J;LKAMjqJcl z4l6Qy6A16M(sgu0IDCsFW|70m?8gtDJJF;bK;wTPgo~0AME&4p5^`|U^`47p#rm_k zW_P;#{WvNnIYp}8QJoDp6?PS^>X*u4PC6bDX`nFzvObFVa1r!ojh+MqJqg!WY>e~i zuoMHrh^By+i-a71AAoy9YEi{0hqTIUAf9qvMyheUEQf1VZ-?KI5xEORNQu6(E~2Ep z)ZV^S`#wGEC}5JU(U|8H1eU-@K=%dR_)Y!E(BM-HV$lENU_pwW4|(DoYcE zAaiTV(oo2RybG#R22+oq0oi3l-0IrCI>-8y-l6h+O?8m!GW&GRR8;Gt#O{~!?dO?y z{I;jj(P+y0F$L+N5=O!i(es*WFT4#FH-jI%;6xHIwTc9(YB)3ns+4@voUUn8Q4^UX zpnd5$p1La!FBRUs?tP*+6eDS__avB`mn4!78WrTu!@{(I&fXXKDnQ29%JaJF@Rp&W ztU}Cj3B4V#AW7hUH;P#Z{5;68bXhjn3igcTbJI04Q-+oxgcY^*cs^1aV<-q*BgrzB zVeV-eW~D!fzA+ANeq;M7jaN&mt4NbC{=#wrL(xegnE+pyd@DAuagki>hqW}%`0p~V zIo=nrH!9zPaUQG-9+Nd~3XGCiE@Bn5JQ~$t;-U3ZWoK&&9+)fGjpdhCodts1ZVrDo ze29yU5#C{q0qmRk41#>sl&~78K0Q|r2@rM(6j!Vi$SOW6LKBM;{LZUoKTilCQgg9I zxyZJr!WVQ_x#k+Yti4f{Y}*usvn+Kmrl9aRw_OXyHiu=<#qxwGbC|M8+C=CL%Q2Dj zf>Eh%c;vhlifMI&2a^A24t^g6?da$Uni>zHC+siRgA+LHu3%oU`~x_pxP$66d%aHd!)T?!_1vuNTC_si&k)N$&-R)yxj95q788H&r6 zg-5tE(M#n}hr*Lus~m}xfk=uh7v@(aE^i9XLG`KSCyD|E3XAP>;B&Mc+l#1B*{_nX zJf+E`6=jHR#7!a!eIp7ox)CI4dt>OrqykF9TAF}gU|;ld0H~tk5$Pr%Rf>=kUs+75Mgxr%MumgiyvFQPCCZ;}ZVo7pO`n8w zFZoOxJrT2)mGoZwDuCccx#Z=d-~fU8K>xJG`$#&<3xjv99Z5vtAsGLJUwm5Y`(-I%O*@8flL2~+V_<=Xo4)5| zXQB9xz>|_B%ngkgtOS)(s6)AFL-UlBo`)eX>Ohkpbt`?@85!8-ev;_caWqQAN!5K& zp`;BjQ1v_lM|SBO#5EB zgrp1;Li?(4l$Z|p@dUBQqS9tX#kIQMPwQ0iwm6M#rK_-!UN6I3@fzbe`?z}*BBQ#7 z3ebmDr$rIm5_wgEkIrEGfJaRU6|i|PqmCer|gX3zlI=y%cVIuM?3Ghw^cy}nO)E6`%izJiz{Y};cR<5F;1^XmF zlERRi>SBx3kjvk+-4}Xu^Sm%-mbt$#FO;?o3K*>!&b%2qreZ~ns31}jsfAY+G=le0 zZr>yT3N2J03PIT1E(?9XOgv7x)8OdyE+(=_lQK+|!@zY}exefcgrPY+BwYp8DbRv< zcCJ8WX3n#1yzWd_c?ynhwbmzY9Ig^XdwI}=FrAu*$MXsK$eT`rB8aLrZ$2;im?s>` z=Xu>PU4z#>H^#AKyoe5gmE!b@m!NfSl@cpujTc#dvzN%Rj=4Lmtu4+9MFrBDl$ZN< z?&*I1G*%bgs^dz4vCXFxPg%@s_dnC)p#A>K?V6xxdaV$o7177z&9Cb?exe29_PBqZ zuIe}vU7fDS_2Mah_v=1}@lK0OM_&L#j7J43Xs;w1*4=K3D61zj%r_ythz8D0c#h2{ z1jGj%b>5RA-%iRxzcSkES0eLzv9KsXgSw3>RYXif5mKeIRpn;iyq;wD874^%?0;oH z5VkK zsGu6b7}fX6P|zQ;mA01LnW$Ky$#RwD^EP<`OV?TD+Ak`Z)Zuo#O~p2qwk7EKT^rZhI8ItOHm zEFgq?++gzS?w`m?R3z`rgZ~Bip~PxckqXM7P?9UQS0xGp{3R@%wZ<9luS;L1+h%)uB zX#e14m6ULY7m$twuW+PsB0hoARGx%X<;GWJtrz?mIzWlv_5>B7-JO@sewh~xc}M8& z%Fx8;D;mU|1^g(Jt#U_Y33Qs7fj&JCJOh~1OQdUxaH}p+M1k7N;2d3Ob6hk@P8bZk zFm=47B&>Z122ExaIRA8T2#2#(0q9MDa$?Oa%PLq$SCSODC)zEz++P)Ap{lzm$fWzC zn@<-H>Oxs_syPOmwq(M-0N_tpFw(^OH^t&7w_;?46*qTANf-g6jgb%^2D8~qhq{8B zRqlX@z@w0A+0WzV5RXqy7aEBqFUYofHZOEL-~M>qulqGae0OD$zA~wa}^VQC?MoYnOppA>TS92_2nEboI&T`ABS) z_Z^*SdI13RsGwItYHP{se*78hDn#CS!732aoo5j zXXtj-R7rBl`RiRE^DK|^HrX$WiKv^?@NAD#7b>EtlB2`T0g6;4k-|$~&|Rhdy6Kw) zUf)S|F6%+}tQWUsbRCw8viB@!Nn~OoJ{ukyjho8Tkb^c-o(_SnsUE*#<{KJqgKa2sc)%+7YURVkS|I^z)%*r)g6uK&{eMsX>KNE~{q044Z1# z+#9a8P9L*zr`|`f-Dp5Rdu>QF0vgzKlotatC?$JsXsgAT#_b%7YW^V z)tJ-wqLg+8FJf$RwEJ?MQ_A*6klmxR!CJ# z(ti0q%v*7`LN=eCXCf$CQWc`hTphrw=0!Y&83XbyOk3F4j(Z@Kc#bl78yHNu58y-U zcM%OVIA zvQJ7g6?hOOhEKf%C-KxALG}nPjHp3Ea^!#a|KJPH!E z$t{G?5Er(zgn|W0%JIR+@nP^ZVQi!nlC-YMrb!WlAv#p`bZB`Jj|sE^!?$|dg!u$O z3RY#11Q(PosCjJbcE>;6PaR{_Pi@hn0sTzVvgUlQq7G9_4y8%xo@9}72F1K84Je65 zWffGW&=2kDNLvFCo;rNSyMX>Ve2OYY42Mo`Nt!aCx6?CZ3A!3=6J!fs?!7J~ZK+UX z)~K|`>OKwPe(4yYZEL-OwUM`S-%Y_o>5t9SC4rUuW+DS5E7E_g5)FBHjH_>^BFd`rE+X00+Xq( z_1rnoDNoID(~-7=!#vjeZnCqoEL(K;7XaH@@7pQL(0$)cNw5O-*iK5o8n;Vt_si$8 z;jdLkf|gtQw4acgF>2iRQwG=|0h%QugipLXdTCEBDPyHBr5Y%-K1b4D*X0pL$v`w58>Mg7z>M*h?sPZ80EDhe(w z$Bs&>G*#|9%F&I>v7->gg_*jx6!8(k!)MpL+i|&2?{({n9m<2d;?WwdL=>DQhGCnimLk)KMeQTeLTl=Yi>{ zi}@?qKgoKc%_{!5YKMPdJNwIt#uFvzB~0cjkW5xiST!%m3K;WVWq}#QNl_H$BRpwF z+$kFUwHobAaDC9hKyyEuqQrvqXy|B;h<9{^PiUWbKgVeh?v#D0D;d2%w?vgW!3JFI zgxRWA$LfctqCfhn_rY^C3aiol{-DM>&d_~6?!S9-tH9CDJfFIOw7S5mil3fQXm7_L zl?mNf=4JHO&-de z@NfrhmFjhr?pq~0j{O>tAx3*pYX8^8H_Pe6a!dP4St%szGuSousQW%wVDK((@fo|A|UBUlR+nVbSXLZ z(7nrX!CD_f5>GP~{gXJ%k8fxTwKZ_7;Uw7dmis0mK*Qw~-$dCD0w0#<3694gt$`b- znTl&^91G}Z*0I1=v+oOVb?a$?s@wB4D9=m#Yb}&*Etl1#`_ftszAwGiq5IN2I(*+v z?RnUo`mkD!VBXdt1IoB9&T&vYH@(nm{Mi zw(Q6{;3L7rQzVz>)Heqqd}_?5qN(6UrYyh)Vt)v_<$CnUFM(19)o?AK{d4*&33|hh zg3Ds6#JR8suq{p@td85Iqxd=i*mDJ_W1>{wLFAko)3 zAf_S@9i(p1+Ef6uj?)ETH=%FO2AuG>RobxiJkm!??IKCHo zJ*MhRCHfA$GL0qSV<9k=RfP+fQjHx$i+fC+500*euSSbl$a;`{DZikEPq`2sI7>Ce zl7h2@lf~B%>ZSY!Pg5bC#bLAj>7h_M(dtZ8@e!5KUY#vr8L1ffE^Ct#zJOjMRlm4u zjeI?`irQXQi7lJ+*a)NngXGlCxhda_92NG}@Nh&L#|SC5v8j&a1dlbiUeAwO08?!v(Q!dQXE^F5?rNE!Ff;?hI}!=nh5$r3Z+<@ zhdK^6KN~61_0zXi;^X=Cvj2gnHWjpNLr=1ftdk=+#&EzIcr>oPk`TfPe1{8zn=GVy&^eyJ^>jJfOL}V>P zwj8)xT82$PKMxw=j%_@*^{+;VurLA6QNj#bmgDSrcCcx}52J5y-Wit3Y4|6ZEy&_6 zRJjV`Ln&ZJWa$BC7rn&S6sBSGELrTBfCWU)=AU4tL}y8ar%Yu8_~}3h2L;!L3bF;~ z*GwZE5Z5Z%XcSbdp3L{OTK3CyFC5dgu|xCfbKzitN&6m*YY{GHaSaE7CB0&uP4V>rku!7|Vx4hPqyH{{I=F;anLGrClx%Vcn?SZ?1h zW5wpVw^t#*guJYtw3QuAWJ&daX1bwTen|>Hg<__5SH5}FXVoqf$C@i?5a%>1JeApX zPErax3m+h>Bh5KhclX6qN$Rd3SRr{P?gtts3s;a~42z=)OWKFkyTR`dYQCq%9vK)P zl-N*ZIOqbV7}Btt2MnP&jXT8yU+d}fOTJd(tQh;#L*$0Xc7Nl#AL4^Q_R^B7mfWAK zdTzb6Drn=N{(MWCTGCDr-TPLbTT-7|^6vKEzW?EeuipLXx8MKt-Me4>=l}E%fB5F7 z-`;-n)w}l{cWkqBi)tgueo`rkWF^&7zx5LACj+~8*eibzTNj*8c2`BFatRKNNE9Ol zi_|*a*+Ig(#ZKPmt#dr{P$ygkPeq$!Z__@|O$JdoCFeEgQ{+rMns#sg-=%*v(YBsD zAlRU0k}`!k=s=~KlH4@Zd%!IgxGz9|Vn@ zSIJZ)Ph-@ls;(={k65Up!os?@QvH=wGYEp08+l}YCER*Ci0A|11f`}90@><8wEDOW z{Y8#C8h5n)(ZljfQx$%7?jg279CME0uvaWb5iu; z#RjdJd1EG2e4W~g#*e+Qd-V)FMPayWX=4>SL7gHTRGiyKd!FXy*JZYHZgp0e0-owk zj%USzs0NmnJ5go|u&Ewrq(B}5vN|QYP?;38LzD$E3fW;Z6)bY|oC^F_3Md#+u4=i_ z9iq*@`)Hqud-mVCeTC2y+bz3rVl#ya7!uGoDHYj$1>=bDMT=FV0ws`PnoCdiT)qYk{fhSJ02o7YUnmEyb3w2J*`k)1vt zPCL=L-|de-{rLNT`Hp3q`S19{-~Z|R-~9C3uijmD>dSEKN@%n9eoZBfzsXQPt;uW$ z^>%3i#`~ByFr|`vCl!(*M3Uekx&(M|42GS%39_pyG};_aSP1@7cnR=>y{%dqB&EUp zVjzBp07MV`B(GNnNw6X6j)H1hwmjIfuHW2+ja8~EDYJU*E7CQMhj0QBJ}0AqZJ@4t zOSZdXTC2W$tbup!iIe!0oOvZa{NDO5gz2`?yd!rY|s5eFO^{7zBjt>+Lg{49# zK`(vlzz{Lo45Ch!PBe?EZrSfae5HTq^Xt74dE-;7!uCyetm<^{qUpBiX#+CcyR4;5 zU0XqV@yR5B-HvQdd~BCmvauf&0Z;qwJDqUHp-u=$x0B_g_nXo*?1)uyujW0Yn$%bk z^OS}$>459-ut=q)nRX@a6JsIf-gbfugjXWG0&9O+DVbHJjrL1_|9zWDnaVbGL=(UZ zatnJ=0x2V=U66h{`-K%mkY4@ETTxt^(o|VX@`4Xb-V8;#sc@2tfjh=o^#J`j9obEl z#}q{9jkSjS#m(q$bsma_FFI0^>?Eo{E>AD8Pg1OKb7U{;CF`6XlB@!i^$;%DC^IVt z$g0Ann2&X@W*-Bs?uA#$-6ZPKkS~ZB!-3W?Bv3<4hhK2h3j2|OLCVMpq&iivVsR4X?6dEp?vXK#v_jB`ov^9}OR2Zut)-=syk``|~pdws~M3Rk_xf~u+esHs8(G!ugj-=?oFD*+V^DDs|V1Mxo8P4#1| zn5hm=#e*q{N538L!HYPm5@1)Uy>d)+fYZfQ8W~HAYP)B5MY~SLnFgQl{028r2?S_j zRD;ugD=LV`##Rx|$hGFer^iGU_kyjMfHfAMm->`I8!0V!$GYF8@hPiocdxn-v#Ua< z#MA|=>W=F!Y(?-VWJ_~a&UnGqvogJ$k%3#eL|EAA?zje|zw81u3NheD7D$z5%u}6I z~FasIjH!?{?` z=DO%17xe$0KuuPER3T zM3MJ7EF)a=x{~)+7YD8$3S?h@b%^WZmZ!PQ{CDLNXMSWW&N!!BB@Wf*K;OW)InR+V ztIEKQzO|R+h;>!|RT&F1?y0XA%A@N5cjdv@7qK3oqapi$yP3vq9D{ zz)0qz@d)wr`QnMFb7_rFyNwVMp6pX!R#j$JX2g4mS5qX_ZEI3LQ7~{=A=)%f)r*mD zbec0uKpL0ZbnY`XH>KIfkia5`A7qfRD^*N|D)87}Ii$Yz-K75T_}`1&Mvsq6Y+12y z5X(l{qkSm`4ca5~rQV{H#c6t3y40Sp8Y4&PkDSl&!NDFgs82m1jkFeIm=EU{IT(9$iWN zdc+RA^^Dy~ta`#EsFJN69kf>NhxH|q)fsQ{YMI&5r*F1`-^|~fFLy&_ zW0C7poprJzjiyq6SVHYVCD*E9#27Rpzf9$RvH`YmA~(QS?dU%d&3nhemB3YmA9S7Nq!v4r~N)q1Wggbg{A z%r8idO@gQWlFgF;onShm1M`-SdK)kAxuR}*zp0{@p58p;pYf_c{Qmbp{?{LVc>4Z- z9<1On>EA!_5hMKF(@&3oEqoC_J^u0NKi-0>FFWXOJK*8}q%Pig36QJUdy$MLrAvii zwbb8}3E`xqT(zM2akywxC{!oH;&FCSt;K&rbxGO~=eoW+9)A)`gJZ~zbO8afP{mjpje--x{L`5h)R0LEDNNT@B6$y z%}2h{UhJROBNJQoM0km!-s4RtpvV6rP=n>{F`GEMzeXlM9Jud){OSAOXLZO-(%BvoDSf(bKwp5~9_`-JKVxv)*gmLX}!U&cn8{ z&@;opFqi7}O|qIhXGOf5rVnRS7DbEXP>HSR5CbSvn7VL^MMDUecD+0(!q3k%ujo)L z|Mf)qq0+7vplebf(&dV!Gw3VyzWg2v3DXc((s9&&T--djsAFnA8X9?Atg%3P=9Y2P z{1DVYZa-rBx1#sqam-qcfZJ_ zxEtBTusksa^*=MklXWKK-c0ShzE-yon_LB&CT)qn`xX3*p2FOoh2{N0PhZsgLf?$H zBjAKYqbKwioXdGoiE=`IqljmBr{XpUZk{7HvYP;8myFh zmqJ&mgJ3mLje?qOOWrXyHz{^J`d89+NgI+v6tu6` zGLwijGA#18J(i7>iN}d&jwEn|Y^X1^r`v0%B$)aaMr^6Hb^P~hyF$(3_o%I6+S4*t zQu(Q=wA1}OI`ib@s?$m4+|Q!pB#ob#ZEN@Y-DQIsN##^4;rhe%m&aQGcUf_uoRq|w zPhU*ehche74@JFX|9dQXq}Zi1q1#HRM7L4c%5a-uQK*t0LlM(@jfQf3k^P4PVr}qv zO5(@2r)Z|3>!+u^VcAhmJ#W!63%%rW38g$P@1EtB3NZ54Q|Czm_>1U0a8kqC^tgUd zO^VwS)n)m^LVeHf_Q~TH^*?-m$reF`p33ds^5=VQp4XjdhN~auIrlxQ`Np0PU|G8e^$l2srqcEx zGc&O=(}Jw(fBSq=Tj3&eQ%;BLS!fF8WT?~3oXdg>r@P4_1RCXaAlNtF%l z7eZGiz^Vx29U0;2iV}TU_R$55_vG9pfEKnmn z)N(DNqR8JvgIW)|4zbX3?|yhKGPO(4{29I;C7#QliKJ(Yh*j3+nVT6w6LqR*nL(u* z18Rv!L{v0IA?g9K%Wu|W_a@Aw;ya-&be&?P)u|*NsNv2l?Y9&4@th8?J&8tj(J_m- z0tKOOqxvkgW;Si0yHan;E58!boc=Rdy}4MNY#CN**C(&brv-VP2LZjacI)61lc!=u z_5Bo+&yhCFVVX-@ZcXjuB}fX$<9dk=O@nUDMo-}x%dwRgDdQGuzN)q0FNchJLjdS*Q*#Ep4=-?y z*6{7H9K4&XkLOk2Of~d9T8^q_It>Oje_~NB;$wV!+q*p4X(ueJ8f;$MB+P2t!#w)j z(3jE?g$$x-NRMucXXt#PmL=1nwcEtMMJO}TY7Ar}8xOgJaSYN9P zLO!8`1(>|NRn%o}t~R7_nS@b|fWMD$;Tsz-ma(cK7)x(M7>YR>oMI`z4ABuEgFE{u zL#})J^>}@O=Vrot-429lZtmeeUgxKI;VeU^_tW(i(n|FS(4KZZ@kl#vjbp^7TmjaL zN$s8jvu%ZKRin)j9$FJ8R+`zG(eK7ULn(z8^jppLc$L%H2t^Lr=#=!!^_l5o6f4zI zSPhx0YDe}?g?Pn9hZpAY3=#}g49=N}?j1wrHR0&ppju^RaZ_|uA_4!U!)pPxcpq!V374z_{f$h+= ztETE6?(J2s;Y$B3i+6MNF&Y+~s)l>o`b4Jy(vp3-71);HVoAmfLqkB|8@ja&TSZ4H zR@!!wRPlj>t|D!} zh1ziAnyU%hK~JrxNjl1AdUds!@ijfva$q&frLk&un8v%Q`gm4*%#9i?!Sd!0gH*@R zOAt`VzuFf8y_+Wq+oGg3@^0!YGfBNU{niDDi;I*!9!q=VG}YrZj*Z^4XNJ`_6NM6- zZ2~cDde_fcV8dGKNQ83zGA6jH?H2<9<)TE!>SpzmKhps278_;t+tK{mu;M{(5yQgb z9i4554A$)gFzoJ5IuYsRR?7TW_xk*{+fc<$F>%_g#cmUe+I5?xdz3w#GrObO<>`w_ z`fxsxatzedF=;VeLqRXk?qjg+@TnH_E~>=lQ`<;0WDUe_De>Ym!Un1`sowDcl&96y z#Kv8%G%ax&UydH)qwPZ+vDWIT-NDUT8HmB&YWl*#SB)__<0;m%jLVsMz81m}1cR?0 zb8(z5SHtkwY`0|@MjL($1yj`9FtlWyt(c2hX8y>q*KR%ghNaUBOmp2J zm&=1RyRD&&RPo)+n%_>;#~@ge46%T2f#6zGz{b!;gtA8eRA`aJ-zUt!>%5^^v2^Os zz;z1&7V?NA&`a;*(~WpxpRsZeBW-fxyW91cea^eBKZi`m#w@vjlFo5tQHaopSfHT0 z@Bj}7x9HAVnBnF^T?qx+I1Mjb!h5LjjfbhNQ*cK|oEJRXY(lBAE{N@x;MWW4Tywn( zLXmPExZM2iC-7Fb;~tDzk-~fOP^Eh;2k$28<2jvnaR}cvEk;G~RO3G=+%T0BK4g>A zhGqCzS18styzJ8y44|&6z|9oxM!P5ON#^_@GH-Wgw1e5lrnhyqm#$x#<=bhuyf5na zEHM#~^shCuR!qs;U*6g=O@~*Ij)CPGcD{Bj#S;)psUAapSjP$$E|(YZ>c)sVB)cER zCE1(Vw>;2^>15Xs-R;J*oK>o!6sTOxc1xh`>L%y53!4#WtT>uo0_2OS`U+j$vF)NX z4t->w>)vIpAY^#Rr-x<`reB=S$BwCH$#{MaNN@H*sC$Fmf^h~{=n2}5HaK(2=vWVM+UR}gm(mZzbw&2=Y&C5N|qVsquomUp z4Wtblw>h|aX*c`22>WYKUrf@+^SON7W5!k2tHg|JKRwy;&Cn1@Z+Sa~9+sWXVN?Pe z$5*pK>f2j(Ki)_Ni;SG1Czy7|n+XQ?G>;rL&1HS9y9cdy-TmP-iO_QPPnD+!9U%cqw( zz(sDmQ7banL{r%wKJ4gSH>lm_;vVSfmA$;(boQoqv-B~ADGm!z42-t9dBybIxLgEwPyLhD`NljHy3^&6SBX>~CKO9KZkJ+2Elar;#w;_}m$*rN z8uj?=R1kIf=XzTe1}^Dd3r4kf4V)bRF%@6240WIqmG2guq~5EYGkUp7cXp>K+6tyo zYj90qH zM(}Q`J|;3_#*#bOT1aTww)EOR*o=4_xvbn*8*=TOR@;VLGc76-4C79y@~|0?7zSOw zToF_#SD)W)(iUml*=^k{>U}!EJPeb)JQ(?kNyFs}sGxz#!w9^_1K3`y&`=32_GvS) zmKeI`#b#jO!%F$IT&J^SdT6v~=yuJh^ERNkhT_Ue_xg6icP%YmMQ`ftR`gl%H^X7(w=NZn_0{l2ev^`-I9We}Ce&5T!X*g9k ztZbp1;PbPxDc&g8jtFGKlYG0YH&vtLY9IJvYgcnFv(4ouWZ?>R)>G#MDCr$;dSWnM z+4ZhK>TrpYhrG7F(5ZlXShywduLg;VFFI1^~O8?PYjcZ>?z zsOs{tG<&7tR9H~$#kR(pL1!LQ4?RP%6;v*SA$r`*nt-naAg6>hp>xjpQ5 zB8!0KWz5p2jY6{Qp5`{AA}?hNq3YfSTgWDxs?~^!OX5ByaKU_yDWCRn^xKF%b9$`I zvHXtBY_qtDk8Yi8T-7UV7l#IDpVNxjuW=OwR`vjDGYRS^^Ymc=Q$Vc0;;ya1+m+$J z+s>Vnbq4}(uU{A5B4-Anve5{n@TCPnx$L>2skOLj3`HtF1_PhDy2eFZ z(l;mgyGi;O@m`JrK(22QF>6Cm-0~tz%**9aoe`gv_Mll_$rS3(rkRZUW!fz#qap6W z2qUTn7ds9^9JlfMI5>ck>36%BW;Qn=3B^8f>~F%T#Rhh4h28P02H-~Cigw+8IybyO znt&^M)i&VGE9mbwZFQ?1s1pQRe548hLwLJyReZicY7JnCWGt@Qt2Vwa z?dAEqtisa&Wt@x6Mhw*Q-R#|cJ5L`^X?FyGU|kswg)P~D;Azc=w)UJ2%iJCp)m}WW zd`g>44a+1*znR0!y=aizFu{=coLvQ}H}U3^T?M+fbNz)M-NF!VKEWbSATbMUBuqj+ z*y?~)L-1k4#E2EEg-DFUziW$xf{&9F0vm!9;M$Xd0Mi&Z2wq;ms$P3MTDaYZosfc| zaO}WYqUzzuc=OdHq*O+R8IauU%iV5{xPBSy;kYiwD!tpa`*yCr!cFZx)*hps4($=$ zD*kv;CL7FbU&Eb=1#H->d{e4rps6eZm#XRmbBS9(4rzip>@9;+uU}f;sAcAC|)-YXQX%c0^iwn zTtn=Onfe&@)?w4_Az-rAxNJj9o3<#7q1{ZS+E^mos4;J~e2Qfks8)@uWO>DqAc8mU zIE81#Xh>lY#*H!17`Yg4wh~NSSTce(BW-r&W>~M^zc{wty%2jZu@ldj^J)-v$V5*J zuVRwbJKhby9AG6Oi$b^Q-5_|gZO9O6%zO;;T3)g^kcptwW1K2?z6_&WU+y5)_>@ax zZiVZDYX@T=a9QkiV6f6ZkNI}0KAzMWt))h+WQ(^%F9;yi4mJFOJfMX)d7&{(suFYy z5t+_u(et-J8-rXs9xw(5)>b1KUZZ9fruVgmO0W4Qkfw%532Gewoh7z>N@zG(GiwKf zJN-qN!glBC$5>9MAtagpPYl7q`fJC`UA%PH4TGDPu(qdZ>%YNSq>zrUEbc+CN=8HJkM~cQZgPl z@Q86kW&DI8%d2fUIHYIzdJJ!#ZqsqKS4`KirILX9Ws$XV1L5Tazj9kMVuCD2s>BC} z;dVn~(xa~B%eUSY4HMoEZIW(&wBwpoq(|@c3*y)Tu>oP4f*tO#UKo#%t4Ow`NGhP5$yW7Q#lPNyo zQgLYL?>iV|228VL#%l}(Mv9TZ$IGN*w2Xb&_-HW)+pVH@$=pBzhQr7-I3)KyFw4nG zYC%jr7U5=i=@4fhHkeeiQfl6=CQ!jSp|&T0aJT9B%2Jx~4%dWT>=->?rt0HKUEN09 z(65SMP%Y zC?oBD%sBZT?Uy4XGT@jMW(`t$XU*(a3p3xHq9{(*7D21tR`u}k@sp_JZls{=ZSZ!2 zko2_;ho@KYULKV0gcd!|yluienC2L;vTaB}wC5hQ9SgGZ%-@;L@y~J{-#- zSmMjYv9>dsh6s^8DP`kmZRpXF-zYGUrO-d^MRrqw_1`F5&4oKzS=Y@G^_6kz~! zUC9!32)r<24ZpY&+n|A$yeC+uIn+&mH^g^ZIX3(9lwgHt$6fDW-jcZPVvKwH1i*;3 zvuMbYOq+f$XAJ226`w;1q*juHC_os)2!kkL6g!LoN08!>)qN?k49Ce*60F#q8%r!p zAhGrivAv#15X+gGG7F;Cu)h*xvE2G%f4+XagtgBEEYuLL6Nsy@fqFyD-jlRx|JI## z_7c)V`yknm2d~qe4G3$v3^~PT8i)`V65+|M;%@G9FLlh{1J8MNc}L46F2Q6Jd*W zf{^TOvXa1+6KH!Gq-K-6BcI* z_IRODvpDwEmf`slO%3Q3Ea3M6!z3U-7ng@N{H!4^HO66{TOQKkHa_MxbA9ObvOAaX ziLk_WquXs-ZhNr9xtgnTn@E+XFXrlF_LqIct6yCN>bE#PkV;^952=Rwck({9JK6JS%rs7gdjYV2{vp8&aqWDUMX zRPa)@#)TDDQEMVH%*rVg0KSZyrPdg~Z`d82O$xFTFoB8P{FeBX+dO>Rb8TxtJCCq;uDjiq&5zwYiG0_(#3eCf3U>6$@+L+yFL6s?&kQ{K){hVMtvq}EMf#Z z;hFfDZ+;a6itF7Qf=ee)w9IN%r7eWDVJvS!qUd1Qa zSl^|d_t-xvPzwE4SV#yA`-k{$4WY^V;TbIXzPE#(DNJ3TUnX4roj8nV`Y$0^ue0?P z!s>tk^s$d)V24Qw6t4Ib7lR=wu{hzDV8`}KvB=&_ge_>jMNFqSPk6L=C5rPU6jXZR z`*b#+?cJh;SK7NdNfI`2yX~|C5C5L*yV#otP5{TY!e$zhE&6B3LJPTQaf|lw^JZ7N z0y!D5X1`h-WG_!8sRwbPW@;e!TJ^*5lEVR*;=53&!Knk?O++fM)?R#d&Ifgfg|6P_ z=5{R_morkw_nP51uM_pLWSa=cK)!d){&^5mJdsg;?60qqZ11H0{-`h`CF`U}E1Svs zjDq;%P*679W1IZe-lj;BDmYPP^RxC{NeoX6zu(xI4g<+l69+%XXZbCq2#Z+$`sOFo zH!M+Tt)%*ysM;~9{`!C$f5xau_LK;bRX)pACpAwTk7IsgZ@9|pq)c&_f-hRq^9gOw z(!aGg$!17CQ+AL2nUKcEF{RC}j{U8jiEK2=UY5E)$APLC<9&VeYdS4oU~bj&Su3nW z(RuYhaozs(!}mWwNjLKGcHccoHuCX@r(3&T0UlD8{I?%|{MUc``Pbj65^;@KrHos% zz9vAZ4jHqzj+{l<`%F%XiV#jmcsvl0 zL@g(``COI)J|9gbdp@?4HJbn2sEt@u$xb?vL^zc3MgwK&8L+ zSO-7<^t=D~!@vCJPyhbw@BaOFKmYXO|NP}&m#6FTe~ia9dDv!@% zU)#SUgh&nj67A(T%iyQ~{P}l3|L~W8ttg{OjVXTllpp=oFTK>S{`K+y{`rT0`Gaoy z`yc=7AG9uhd@Kw#u77%*IR8}7cVDj0OR}@~;&kiFH~7`voBlgD_|+f&`*FMf1yD-^ z1QY-O00;p3Tc%iwe#(OMb^ri11p)vi03ZNib8}^Mb1!ptXD?%KX>MO>V{dMAFJftD zFK}UUbZKL3E^~HgRa6ZC2M827W)FOf^nt_f1(+X5=BU7&y}yXhwl5z>)$C$RP6H*LvP}AMcdt-iurcU2#Gd+_U`a zcC+^CoB#TkfB(13-+uR-zy9{8UzC*67nk3D^}B!j?O$)uzyI#5zx}sA{>M+hNSAcs zPZ$6F|NY(XfB(}j{_w{?eD%fUKmNbp|KTq`{o=QO{p+9pub=$nZ-4vS!{6$|AOHMs zKjGG�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

    FXM$pL@3^{u4>uLxxs= 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Ðe#t(0?PU4coOgXC5`*kn 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≺rx~m$&YsGYRG%&&ieS1Osy+k}iJzzq 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

    IUA0Dr#kxF`qwX!QKR&RleL70! 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%0DX(L{bqxXUL4%W{Rd3$!Waz+nND+_1_ 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
  • FlD!0|ml`GFL9(7MGZ$2`ts~gJ%zY@*q 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%0D=Z>%ErwwTYF+K zv@MOXJ@ES9AK?IIAhC$9c!THVET8_Yv<9?g#`dW&l(7Djp|p$qh-HC8`_u{ z{T=49U$wGCwe>x12mp{92LfDS`IT8K5B?juMt>&MSJ9{jEcEyN>Zfa81qa99djJ4b z4j{m5{&Fudzc>k(aQd+MAJ{bTYW&e*_pHU%yqt(*P(dcLN z{#~s>rSd2b5dc898wk+CzuGv!=yzNz8*8J#ulAJH$%MNa0Qd@wotK{N{Qf(twVu`A zRvR4DsQjKwn|bF00Pxx8kDe9Chx(0`|1>SDm8X zEIyVFClMzAfKd2z#ruDw=O;D;IMV-l@$z%jb2M_darisXpXmwwBuBp~5dg5x{Z*?k z5DFlK`3=;?#^vwDEU@9&{ufm`&cC$&EYuzv{u9>0O3%{rMY-!+-LspJ`unI!GHO#^ zj(-CWJX07@11y+cW{7u`fb)7d)azZd)yJTuU$1PKKHyuSN?)tfKSyp|n*3H+xc?O%W!0pZL!f@W60 zivzDI008oT`SvHgrR(=_eQW)H6y^UWTf?a9ugE^9#Py|=1ON)B{z$f2{XO|Tu#WoE zMD-UmYXnv+kIs5eQUeW63H0>Kigk?=_CJKt|MX{}KQpy2bwvo&f2pQ^`uPECC-D(D zgU|+c?w6*Prui>eU_B-HX9eqD5d720xn+Spg+MaFzma3<{tNj(6;yxG$!dz*kW)ai z4X|&&EHb2KwEhrl9@4zmc10=t+bS%^FsgnPxsQQa!;PcD+fwdz* z2iUz{Ca*!}-;<^OysY|*TzERl;5(+b*)(^lQ{W4j@v;Uqd`yYy{zaaM~xX}YfM4!0{uK<>^IP!WweZXB zo4*3_`u_-gu>tV^?nnANI$!QI{1tmJ@LTNvqkUiQcl(vQJoG#6-!<>cO=iFH=7#^2 z_lGTKf5)~jw@CfUj2!*X%>PHjzT5%yE0k#bKSKYGRsVh0&Hus(fQb%g0``|ZIKNs? fy-4oH>rdC!!GZhv0RT?mk3SXwV7>qg{Ph0;M9 Date: Thu, 23 May 2024 15:38:37 -0600 Subject: [PATCH 119/318] in app logo icon override option added so the stack wallet logo in the standard themes can be replaced specifically for duo but possibly other options as well --- .../stack_duo/stack-duo-icon_dark.svg | 1 + .../stack_duo/stack-duo-icon_light.svg | 1 + .../in_app_logo_icons/stack_wallet/dummy | 1 + lib/app_config.dart | 2 + .../sub_widgets/add_token_list_element.dart | 16 +--- .../subviews/contact_popup.dart | 23 ++---- lib/pages/home_view/home_view.dart | 27 +++---- lib/pages/intro_view.dart | 20 ++--- .../subwidgets/desktop_contact_details.dart | 26 +++---- .../my_stack_view/my_stack_view.dart | 22 ++---- .../delete_password_warning_view.dart | 17 ++--- .../password/desktop_login_view.dart | 21 ++---- .../forgot_password_desktop_view.dart | 21 ++---- lib/themes/theme_providers.dart | 3 +- lib/widgets/address_book_card.dart | 22 ++---- lib/widgets/app_icon.dart | 75 +++++++++++++++++++ lib/widgets/desktop/living_stack_icon.dart | 20 ++--- pubspec.yaml | 1 + scripts/app_config/configure_stack_duo.sh | 5 ++ scripts/app_config/configure_stack_wallet.sh | 2 + scripts/app_config/shared/link_assets.sh | 3 + 21 files changed, 168 insertions(+), 161 deletions(-) create mode 100644 asset_sources/in_app_logo_icons/stack_duo/stack-duo-icon_dark.svg create mode 100644 asset_sources/in_app_logo_icons/stack_duo/stack-duo-icon_light.svg create mode 100644 asset_sources/in_app_logo_icons/stack_wallet/dummy create mode 100644 lib/widgets/app_icon.dart diff --git a/asset_sources/in_app_logo_icons/stack_duo/stack-duo-icon_dark.svg b/asset_sources/in_app_logo_icons/stack_duo/stack-duo-icon_dark.svg new file mode 100644 index 000000000..eb16522e5 --- /dev/null +++ b/asset_sources/in_app_logo_icons/stack_duo/stack-duo-icon_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/in_app_logo_icons/stack_duo/stack-duo-icon_light.svg b/asset_sources/in_app_logo_icons/stack_duo/stack-duo-icon_light.svg new file mode 100644 index 000000000..eb16522e5 --- /dev/null +++ b/asset_sources/in_app_logo_icons/stack_duo/stack-duo-icon_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/in_app_logo_icons/stack_wallet/dummy b/asset_sources/in_app_logo_icons/stack_wallet/dummy new file mode 100644 index 000000000..061d11394 --- /dev/null +++ b/asset_sources/in_app_logo_icons/stack_wallet/dummy @@ -0,0 +1 @@ +Dummy file to ensure dir structure is preserved. Stack app icon is in standard themes. \ No newline at end of file diff --git a/lib/app_config.dart b/lib/app_config.dart index 9374d94bd..3cd5897f5 100644 --- a/lib/app_config.dart +++ b/lib/app_config.dart @@ -11,6 +11,8 @@ abstract class AppConfig { static String get appDefaultDataDirName => _appDataDirName; + static ({String light, String dark})? get appIconAsset => _appIconAsset; + static List get coins => _supportedCoins; static CryptoCurrency? getCryptoCurrencyFor(String coinIdentifier) { diff --git a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list_element.dart b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list_element.dart index af132b681..89a818529 100644 --- a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list_element.dart +++ b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list_element.dart @@ -8,21 +8,20 @@ * */ -import 'dart:io'; - import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; + import '../../../../models/isar/exchange_cache/currency.dart'; import '../../../../models/isar/models/ethereum/eth_contract.dart'; import '../../../../services/exchange/change_now/change_now_exchange.dart'; import '../../../../services/exchange/exchange_data_loading_service.dart'; import '../../../../themes/stack_colors.dart'; -import '../../../../themes/theme_providers.dart'; import '../../../../utilities/assets.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; +import '../../../../widgets/app_icon.dart'; import '../../../../widgets/conditional_parent.dart'; import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; import '../../../../widgets/rounded_white_container.dart'; @@ -35,7 +34,7 @@ class AddTokenListElementData { } class AddTokenListElement extends ConsumerStatefulWidget { - const AddTokenListElement({Key? key, required this.data}) : super(key: key); + const AddTokenListElement({super.key, required this.data}); final AddTokenListElementData data; @@ -79,14 +78,7 @@ class _AddTokenListElementState extends ConsumerState { currency.image, width: iconSize, height: iconSize, - placeholderBuilder: (_) => SvgPicture.file( - File( - ref.watch( - themeAssetsProvider.select( - (value) => value.stackIcon, - ), - ), - ), + placeholderBuilder: (_) => AppIcon( width: iconSize, height: iconSize, ), diff --git a/lib/pages/address_book_views/subviews/contact_popup.dart b/lib/pages/address_book_views/subviews/contact_popup.dart index 55c4436e8..5411736e0 100644 --- a/lib/pages/address_book_views/subviews/contact_popup.dart +++ b/lib/pages/address_book_views/subviews/contact_popup.dart @@ -14,25 +14,26 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:tuple/tuple.dart'; + import '../../../models/send_view_auto_fill_data.dart'; import '../../../notifications/show_flush_bar.dart'; -import 'contact_details_view.dart'; -import '../../exchange_view/exchange_step_views/step_2_view.dart'; -import '../../send_view/send_view.dart'; import '../../../providers/global/active_wallet_provider.dart'; import '../../../providers/global/address_book_service_provider.dart'; import '../../../providers/providers.dart'; import '../../../themes/coin_icon_provider.dart'; import '../../../themes/stack_colors.dart'; -import '../../../themes/theme_providers.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/clipboard_interface.dart'; import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; import '../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../widgets/app_icon.dart'; import '../../../widgets/rounded_container.dart'; import '../../../widgets/rounded_white_container.dart'; -import 'package:tuple/tuple.dart'; +import '../../exchange_view/exchange_step_views/step_2_view.dart'; +import '../../send_view/send_view.dart'; +import 'contact_details_view.dart'; final exchangeFromAddressBookAddressStateProvider = StateProvider((ref) => ""); @@ -117,16 +118,8 @@ class ContactPopUp extends ConsumerWidget { borderRadius: BorderRadius.circular(32), ), child: contact.customId == "default" - ? Center( - child: SvgPicture.file( - File( - ref.watch( - themeProvider.select( - (value) => value - .assets.stackIcon, - ), - ), - ), + ? const Center( + child: AppIcon( width: 20, ), ) diff --git a/lib/pages/home_view/home_view.dart b/lib/pages/home_view/home_view.dart index df2966d41..0173064c2 100644 --- a/lib/pages/home_view/home_view.dart +++ b/lib/pages/home_view/home_view.dart @@ -14,14 +14,8 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../app_config.dart'; -import '../buy_view/buy_view.dart'; -import '../exchange_view/exchange_view.dart'; -import 'sub_widgets/home_view_button_bar.dart'; -import '../notification_views/notifications_view.dart'; -import '../settings_views/global_settings_view/global_settings_view.dart'; -import '../settings_views/global_settings_view/hidden_settings.dart'; -import '../wallets_view/wallets_view.dart'; import '../../providers/global/notifications_provider.dart'; import '../../providers/ui/home_view_index_provider.dart'; import '../../providers/ui/unread_notifications_provider.dart'; @@ -32,13 +26,21 @@ import '../../utilities/assets.dart'; import '../../utilities/constants.dart'; import '../../utilities/text_styles.dart'; import '../../widgets/animated_widgets/rotate_icon.dart'; +import '../../widgets/app_icon.dart'; import '../../widgets/background.dart'; import '../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../widgets/small_tor_icon.dart'; import '../../widgets/stack_dialog.dart'; +import '../buy_view/buy_view.dart'; +import '../exchange_view/exchange_view.dart'; +import '../notification_views/notifications_view.dart'; +import '../settings_views/global_settings_view/global_settings_view.dart'; +import '../settings_views/global_settings_view/hidden_settings.dart'; +import '../wallets_view/wallets_view.dart'; +import 'sub_widgets/home_view_button_bar.dart'; class HomeView extends ConsumerStatefulWidget { - const HomeView({Key? key}) : super(key: key); + const HomeView({super.key}); static const routeName = "/home"; @@ -183,14 +185,7 @@ class _HomeViewState extends ConsumerState { GestureDetector( onTap: _hiddenOptions, child: RotateIcon( - icon: SvgPicture.file( - File( - ref.watch( - themeProvider.select( - (value) => value.assets.stackIcon, - ), - ), - ), + icon: const AppIcon( width: 24, height: 24, ), diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index 5b6be3d4c..0f99aabae 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -14,20 +14,22 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:url_launcher/url_launcher.dart'; + import '../app_config.dart'; -import 'stack_privacy_calls.dart'; import '../pages_desktop_specific/password/create_password_view.dart'; import '../themes/stack_colors.dart'; import '../themes/theme_providers.dart'; import '../utilities/prefs.dart'; import '../utilities/text_styles.dart'; import '../utilities/util.dart'; +import '../widgets/app_icon.dart'; import '../widgets/background.dart'; import '../widgets/desktop/secondary_button.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'stack_privacy_calls.dart'; class IntroView extends ConsumerStatefulWidget { - const IntroView({Key? key}) : super(key: key); + const IntroView({super.key}); static const String routeName = "/introView"; @@ -132,18 +134,10 @@ class _IntroViewState extends ConsumerState { const Spacer( flex: 2, ), - SizedBox( + const SizedBox( width: 130, height: 130, - child: SvgPicture.file( - File( - ref.watch( - themeProvider.select( - (value) => value.assets.stackIcon, - ), - ), - ), - ), + child: AppIcon(), ), const Spacer( flex: 42, diff --git a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_details.dart b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_details.dart index 696f71324..d38d171d3 100644 --- a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_details.dart +++ b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_details.dart @@ -8,24 +8,22 @@ * */ -import 'dart:io'; - import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + import '../../../models/isar/models/contact_entry.dart'; import '../../../models/isar/models/isar_models.dart'; import '../../../pages/address_book_views/subviews/add_new_contact_address_view.dart'; -import 'desktop_address_card.dart'; -import 'desktop_contact_options_menu_popup.dart'; import '../../../providers/db/main_db_provider.dart'; import '../../../providers/global/address_book_service_provider.dart'; import '../../../providers/ui/address_book_providers/address_entry_data_provider.dart'; import '../../../themes/stack_colors.dart'; -import '../../../themes/theme_providers.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/text_styles.dart'; +import '../../../widgets/app_icon.dart'; import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../widgets/custom_buttons/blue_text_button.dart'; import '../../../widgets/desktop/desktop_dialog.dart'; @@ -33,13 +31,14 @@ import '../../../widgets/desktop/secondary_button.dart'; import '../../../widgets/loading_indicator.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/transaction_card.dart'; -import 'package:tuple/tuple.dart'; +import 'desktop_address_card.dart'; +import 'desktop_contact_options_menu_popup.dart'; class DesktopContactDetails extends ConsumerStatefulWidget { const DesktopContactDetails({ - Key? key, + super.key, required this.contactId, - }) : super(key: key); + }); final String contactId; @@ -120,15 +119,8 @@ class _DesktopContactDetailsState extends ConsumerState { borderRadius: BorderRadius.circular(32), ), child: contact.customId == "default" - ? Center( - child: SvgPicture.file( - File( - ref.watch( - themeProvider.select( - (value) => value.assets.stackIcon, - ), - ), - ), + ? const Center( + child: AppIcon( width: 32, ), ) diff --git a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart index 9f9bc5226..e981979db 100644 --- a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart @@ -8,24 +8,22 @@ * */ -import 'dart:io'; - import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:flutter_svg/flutter_svg.dart'; + import '../../app_config.dart'; import '../../pages/settings_views/global_settings_view/hidden_settings.dart'; import '../../pages/wallets_view/sub_widgets/empty_wallets.dart'; -import 'my_wallets.dart'; -import '../../themes/theme_providers.dart'; import '../../utilities/text_styles.dart'; import '../../wallets/isar/providers/all_wallets_info_provider.dart'; import '../../widgets/animated_widgets/rotate_icon.dart'; +import '../../widgets/app_icon.dart'; import '../../widgets/background.dart'; import '../../widgets/desktop/desktop_app_bar.dart'; +import 'my_wallets.dart'; class MyStackView extends ConsumerStatefulWidget { - const MyStackView({Key? key}) : super(key: key); + const MyStackView({super.key}); static const String routeName = "/myStackDesktop"; @@ -110,18 +108,10 @@ class _DesktopMyStackTitleState extends ConsumerState { GestureDetector( onTap: _hiddenOptions, child: RotateIcon( - icon: SizedBox( + icon: const SizedBox( width: 32, height: 32, - child: SvgPicture.file( - File( - ref.watch( - themeProvider.select( - (value) => value.assets.stackIcon, - ), - ), - ), - ), + child: AppIcon(), ), curve: Curves.easeInOutCubic, rotationPercent: 1.0, diff --git a/lib/pages_desktop_specific/password/delete_password_warning_view.dart b/lib/pages_desktop_specific/password/delete_password_warning_view.dart index cae9ecbba..7708c2230 100644 --- a/lib/pages_desktop_specific/password/delete_password_warning_view.dart +++ b/lib/pages_desktop_specific/password/delete_password_warning_view.dart @@ -13,16 +13,16 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:flutter_svg/svg.dart'; import 'package:hive/hive.dart'; import 'package:isar/isar.dart'; + import '../../db/hive/db.dart'; import '../../notifications/show_flush_bar.dart'; import '../../pages/intro_view.dart'; -import '../../themes/theme_providers.dart'; import '../../utilities/logger.dart'; import '../../utilities/stack_file_system.dart'; import '../../utilities/text_styles.dart'; +import '../../widgets/app_icon.dart'; import '../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../widgets/desktop/desktop_app_bar.dart'; import '../../widgets/desktop/desktop_scaffold.dart'; @@ -31,9 +31,9 @@ import '../../widgets/desktop/secondary_button.dart'; class DeletePasswordWarningView extends ConsumerStatefulWidget { const DeletePasswordWarningView({ - Key? key, + super.key, required this.shouldCreateNew, - }) : super(key: key); + }); static const String routeName = "/deletePasswordWarning"; @@ -119,14 +119,7 @@ class _ForgotPasswordDesktopViewState child: Column( mainAxisSize: MainAxisSize.min, children: [ - SvgPicture.file( - File( - ref.watch( - themeProvider.select( - (value) => value.assets.stackIcon, - ), - ), - ), + const AppIcon( width: 100, ), const SizedBox( diff --git a/lib/pages_desktop_specific/password/desktop_login_view.dart b/lib/pages_desktop_specific/password/desktop_login_view.dart index 30f13b44b..62e3b70fe 100644 --- a/lib/pages_desktop_specific/password/desktop_login_view.dart +++ b/lib/pages_desktop_specific/password/desktop_login_view.dart @@ -9,40 +9,40 @@ */ import 'dart:async'; -import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../app_config.dart'; import '../../db/db_version_migration.dart'; import '../../db/hive/db.dart'; import '../../notifications/show_flush_bar.dart'; -import '../desktop_home_view.dart'; -import 'forgot_password_desktop_view.dart'; import '../../providers/desktop/storage_crypto_handler_provider.dart'; import '../../providers/global/secure_store_provider.dart'; import '../../themes/stack_colors.dart'; -import '../../themes/theme_providers.dart'; import '../../utilities/assets.dart'; import '../../utilities/constants.dart'; import '../../utilities/flutter_secure_storage_interface.dart'; import '../../utilities/logger.dart'; import '../../utilities/text_styles.dart'; import '../../utilities/util.dart'; +import '../../widgets/app_icon.dart'; import '../../widgets/custom_buttons/blue_text_button.dart'; import '../../widgets/desktop/desktop_scaffold.dart'; import '../../widgets/desktop/primary_button.dart'; import '../../widgets/loading_indicator.dart'; import '../../widgets/rounded_container.dart'; import '../../widgets/stack_text_field.dart'; +import '../desktop_home_view.dart'; +import 'forgot_password_desktop_view.dart'; class DesktopLoginView extends ConsumerStatefulWidget { const DesktopLoginView({ - Key? key, + super.key, this.startupWalletId, this.load, - }) : super(key: key); + }); static const String routeName = "/desktopLogin"; @@ -187,14 +187,7 @@ class _DesktopLoginViewState extends ConsumerState { child: Column( mainAxisSize: MainAxisSize.min, children: [ - SvgPicture.file( - File( - ref.watch( - themeProvider.select( - (value) => value.assets.stackIcon, - ), - ), - ), + const AppIcon( width: 100, ), const SizedBox( diff --git a/lib/pages_desktop_specific/password/forgot_password_desktop_view.dart b/lib/pages_desktop_specific/password/forgot_password_desktop_view.dart index 56502547a..235f14563 100644 --- a/lib/pages_desktop_specific/password/forgot_password_desktop_view.dart +++ b/lib/pages_desktop_specific/password/forgot_password_desktop_view.dart @@ -8,26 +8,24 @@ * */ -import 'dart:io'; - import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:flutter_svg/svg.dart'; + import '../../app_config.dart'; -import 'delete_password_warning_view.dart'; import '../../themes/stack_colors.dart'; -import '../../themes/theme_providers.dart'; import '../../utilities/text_styles.dart'; +import '../../widgets/app_icon.dart'; import '../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../widgets/desktop/desktop_app_bar.dart'; import '../../widgets/desktop/desktop_scaffold.dart'; import '../../widgets/desktop/primary_button.dart'; import '../../widgets/desktop/secondary_button.dart'; +import 'delete_password_warning_view.dart'; class ForgotPasswordDesktopView extends ConsumerStatefulWidget { const ForgotPasswordDesktopView({ - Key? key, - }) : super(key: key); + super.key, + }); static const String routeName = "/forgotPasswordDesktop"; @@ -60,14 +58,7 @@ class _ForgotPasswordDesktopViewState child: Column( mainAxisSize: MainAxisSize.min, children: [ - SvgPicture.file( - File( - ref.watch( - themeProvider.select( - (value) => value.assets.stackIcon, - ), - ), - ), + const AppIcon( width: 100, ), const SizedBox( diff --git a/lib/themes/theme_providers.dart b/lib/themes/theme_providers.dart index b09fc2c4e..103ffd217 100644 --- a/lib/themes/theme_providers.dart +++ b/lib/themes/theme_providers.dart @@ -10,10 +10,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../models/isar/stack_theme.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; import 'stack_colors.dart'; import 'theme_service.dart'; -import '../wallets/crypto_currency/crypto_currency.dart'; final applicationThemesDirectoryPathProvider = StateProvider((ref) => ""); diff --git a/lib/widgets/address_book_card.dart b/lib/widgets/address_book_card.dart index 0fc979b31..51a9fe134 100644 --- a/lib/widgets/address_book_card.dart +++ b/lib/widgets/address_book_card.dart @@ -8,33 +8,32 @@ * */ -import 'dart:io'; - import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + +import '../app_config.dart'; import '../models/isar/models/contact_entry.dart'; import '../pages/address_book_views/subviews/contact_popup.dart'; import '../providers/global/address_book_service_provider.dart'; -import '../app_config.dart'; import '../themes/stack_colors.dart'; -import '../themes/theme_providers.dart'; import '../utilities/assets.dart'; import '../utilities/constants.dart'; import '../utilities/text_styles.dart'; import '../utilities/util.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; +import 'app_icon.dart'; import 'conditional_parent.dart'; import 'expandable.dart'; import 'rounded_white_container.dart'; class AddressBookCard extends ConsumerStatefulWidget { const AddressBookCard({ - Key? key, + super.key, required this.contactId, this.indicatorDown, this.desktopSendFrom = true, - }) : super(key: key); + }); final String contactId; final ExpandableState? indicatorDown; @@ -104,15 +103,8 @@ class _AddressBookCardState extends ConsumerState { borderRadius: BorderRadius.circular(32), ), child: contact.customId == "default" - ? Center( - child: SvgPicture.file( - File( - ref.watch( - themeProvider.select( - (value) => value.assets.stackIcon, - ), - ), - ), + ? const Center( + child: AppIcon( width: 20, ), ) diff --git a/lib/widgets/app_icon.dart b/lib/widgets/app_icon.dart new file mode 100644 index 000000000..dbdeaaf3d --- /dev/null +++ b/lib/widgets/app_icon.dart @@ -0,0 +1,75 @@ +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_svg/flutter_svg.dart'; + +import '../app_config.dart'; +import '../themes/theme_providers.dart'; + +enum _SvgType { + file, + asset; +} + +final _pAppIcon = Provider.autoDispose<({_SvgType svgType, String svg})>((ref) { + if (AppConfig.appIconAsset != null) { + final brightness = ref.watch( + themeProvider.select( + (value) => value.brightness, + ), + ); + final String asset; + + switch (brightness) { + case Brightness.dark: + asset = AppConfig.appIconAsset!.dark; + break; + + case Brightness.light: + asset = AppConfig.appIconAsset!.light; + break; + } + + return (svgType: _SvgType.asset, svg: asset); + } else { + final file = ref.watch( + themeAssetsProvider.select( + (value) => value.stackIcon, + ), + ); + return (svgType: _SvgType.file, svg: file); + } +}); + +class AppIcon extends ConsumerWidget { + const AppIcon({ + super.key, + this.width, + this.height, + }); + + final double? width; + final double? height; + + @override + Widget build(BuildContext context, WidgetRef ref) { + final iconInfo = ref.watch(_pAppIcon); + switch (iconInfo.svgType) { + case _SvgType.file: + return SvgPicture.file( + File( + iconInfo.svg, + ), + width: width, + height: height, + ); + case _SvgType.asset: + return SvgPicture.asset( + iconInfo.svg, + width: width, + height: height, + ); + } + } +} diff --git a/lib/widgets/desktop/living_stack_icon.dart b/lib/widgets/desktop/living_stack_icon.dart index bab0a8196..aa1595b1f 100644 --- a/lib/widgets/desktop/living_stack_icon.dart +++ b/lib/widgets/desktop/living_stack_icon.dart @@ -8,18 +8,16 @@ * */ -import 'dart:io'; - import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:flutter_svg/flutter_svg.dart'; -import '../../themes/theme_providers.dart'; + +import '../app_icon.dart'; class LivingStackIcon extends ConsumerStatefulWidget { const LivingStackIcon({ - Key? key, + super.key, this.onPressed, - }) : super(key: key); + }); final VoidCallback? onPressed; @@ -59,15 +57,7 @@ class _LivingStackIconState extends ConsumerState { child: AnimatedScale( duration: const Duration(milliseconds: 200), scale: _hovering ? 1.2 : 1, - child: SvgPicture.file( - File( - ref.watch( - themeProvider.select( - (value) => value.assets.stackIcon, - ), - ), - ), - ), + child: const AppIcon(), ), ), ), diff --git a/pubspec.yaml b/pubspec.yaml index 99f8bb3e3..d7e07cc1a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -254,6 +254,7 @@ flutter: # - images/a_dot_burr.jpeg # - images/a_dot_ham.jpeg assets: + - assets/in_app_logo_icons/ - assets/images/ - assets/icon/ - google_fonts/ diff --git a/scripts/app_config/configure_stack_duo.sh b/scripts/app_config/configure_stack_duo.sh index d6e0f6919..138c2c432 100755 --- a/scripts/app_config/configure_stack_duo.sh +++ b/scripts/app_config/configure_stack_duo.sh @@ -35,6 +35,11 @@ const _separator = " "; const _suffix = "Duo"; const _appDataDirName = "stackduo"; +const ({String light, String dark})? _appIconAsset = ( + light: "assets/in_app_logo_icons/stack-duo-icon_light.svg", + dark: "assets/in_app_logo_icons/stack-duo-icon_dark.svg", +); + final List _supportedCoins = List.unmodifiable([ Bitcoin(CryptoCurrencyNetwork.main), Monero(CryptoCurrencyNetwork.main), diff --git a/scripts/app_config/configure_stack_wallet.sh b/scripts/app_config/configure_stack_wallet.sh index b6f7d066b..7588b269b 100755 --- a/scripts/app_config/configure_stack_wallet.sh +++ b/scripts/app_config/configure_stack_wallet.sh @@ -37,6 +37,8 @@ const _separator = " "; const _suffix = "Wallet"; const _appDataDirName = "stackwallet"; +const ({String light, String dark})? _appIconAsset = null; + final List _supportedCoins = List.unmodifiable([ Bitcoin(CryptoCurrencyNetwork.main), BitcoinFrost(CryptoCurrencyNetwork.main), diff --git a/scripts/app_config/shared/link_assets.sh b/scripts/app_config/shared/link_assets.sh index e718f0783..c443b1262 100755 --- a/scripts/app_config/shared/link_assets.sh +++ b/scripts/app_config/shared/link_assets.sh @@ -24,3 +24,6 @@ ln -s "${ASSET_SOURCES_DIR}/icon/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/icon" rm -f "${ASSETS_DIR}/lottie" ln -s "${ASSET_SOURCES_DIR}/lottie/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/lottie" + +rm -f "${ASSETS_DIR}/in_app_logo_icons" +ln -s "${ASSET_SOURCES_DIR}/in_app_logo_icons/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/in_app_logo_icons" From 79d88e14a4eb73d29c7f3a2cfdaaed2384968e01 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 15:40:56 -0600 Subject: [PATCH 120/318] added missing info from gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index aa47e6c48..ad0e23848 100644 --- a/.gitignore +++ b/.gitignore @@ -50,6 +50,7 @@ test/services/coins/particl/particl_wallet_test_parameters.dart /assets/default_themes /assets/icon /assets/lottie +/assets/in_app_logo_icons # other coverage From a976219417fb15785552effe15671589e3d01584 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 15:44:00 -0600 Subject: [PATCH 121/318] hide tokens when empty list on mobile wallet create view --- .../add_wallet_view/add_wallet_view.dart | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart index 6bed9892f..86c45d807 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart @@ -16,19 +16,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; + +import '../../../app_config.dart'; import '../../../db/isar/main_db.dart'; import '../../../models/add_wallet_list_entity/add_wallet_list_entity.dart'; import '../../../models/add_wallet_list_entity/sub_classes/coin_entity.dart'; import '../../../models/add_wallet_list_entity/sub_classes/eth_token_entity.dart'; import '../../../models/isar/models/ethereum/eth_contract.dart'; -import '../add_token_view/add_custom_token_view.dart'; -import '../add_token_view/sub_widgets/add_custom_token_selector.dart'; -import 'sub_widgets/add_wallet_text.dart'; -import 'sub_widgets/expanding_sub_list_item.dart'; -import 'sub_widgets/next_button.dart'; import '../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; import '../../../providers/providers.dart'; -import '../../../app_config.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/constants.dart'; @@ -46,6 +42,11 @@ import '../../../widgets/icon_widgets/x_icon.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_text_field.dart'; import '../../../widgets/textfield_icon_button.dart'; +import '../add_token_view/add_custom_token_view.dart'; +import '../add_token_view/sub_widgets/add_custom_token_selector.dart'; +import 'sub_widgets/add_wallet_text.dart'; +import 'sub_widgets/expanding_sub_list_item.dart'; +import 'sub_widgets/next_button.dart'; class AddWalletView extends ConsumerStatefulWidget { const AddWalletView({super.key}); @@ -422,11 +423,12 @@ class _AddWalletViewState extends ConsumerState { entities: filter(_searchTerm, coinEntities), initialState: ExpandableState.expanded, ), - ExpandingSubListItem( - title: "Tokens", - entities: filter(_searchTerm, tokenEntities), - initialState: ExpandableState.expanded, - ), + if (tokenEntities.isNotEmpty) + ExpandingSubListItem( + title: "Tokens", + entities: filter(_searchTerm, tokenEntities), + initialState: ExpandableState.expanded, + ), ], ), ), From 933bfd9efd61861f3626ce750f0b12773ac48934 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 17:13:41 -0600 Subject: [PATCH 122/318] android template files --- .gitignore | 10 ++++++ .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2607 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1736 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3455 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 5073 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 6677 -> 0 bytes .../platforms/android/platform_config.sh | 33 ++++++++++++++---- .../templates/android}/app/build.gradle | 0 .../app/src/debug/AndroidManifest.xml | 0 .../android}/app/src/main/AndroidManifest.xml | 0 .../cypherstack/stackwallet/MainActivity.kt | 0 .../app/src/main/profile/AndroidManifest.xml | 0 .../app/src/profile/AndroidManifest.xml | 0 13 files changed, 36 insertions(+), 7 deletions(-) delete mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename {android => scripts/app_config/templates/android}/app/build.gradle (100%) rename {android => scripts/app_config/templates/android}/app/src/debug/AndroidManifest.xml (100%) rename {android => scripts/app_config/templates/android}/app/src/main/AndroidManifest.xml (100%) rename {android => scripts/app_config/templates/android}/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt (100%) rename {android => scripts/app_config/templates/android}/app/src/main/profile/AndroidManifest.xml (100%) rename {android => scripts/app_config/templates/android}/app/src/profile/AndroidManifest.xml (100%) diff --git a/.gitignore b/.gitignore index ad0e23848..668aa494c 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,13 @@ flutter_libsparkmobile.dll secp256k1.dll /libisar.so /lib/app_config.g.dart + +## other generated project files + +/android/app/build.gradle +/android/app/src/debug/AndroidManifest.xml +/android/app/src/profile/AndroidManifest.xml +/android/app/src/main/AndroidManifest.xml +/android/app/src/main/profile/AndroidManifest.xml +/android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt +/android/app/src/main/res/**/ic_launcher.png diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 1fd042714c1fc8ed45dce516a0da56c6df8e4f67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2607 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 M=7#Yrw8z8$0OetFga7~l diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 6710b67f07c628f01b3cc8efcccc668c8baae561..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5073 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 CPlH7O diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 095c133e4bee7df8982236a6fa60490c1094df66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6677 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 Date: Thu, 23 May 2024 17:21:11 -0600 Subject: [PATCH 123/318] ios template files --- .gitignore | 4 ++++ .../platforms/ios/platform_config.sh | 18 ++++++++++++++++-- .../ios}/Runner.xcodeproj/project.pbxproj | 0 .../templates/ios}/Runner/Info.plist | 0 4 files changed, 20 insertions(+), 2 deletions(-) rename {ios => scripts/app_config/templates/ios}/Runner.xcodeproj/project.pbxproj (100%) rename {ios => scripts/app_config/templates/ios}/Runner/Info.plist (100%) diff --git a/.gitignore b/.gitignore index 668aa494c..336ba21ed 100644 --- a/.gitignore +++ b/.gitignore @@ -76,3 +76,7 @@ secp256k1.dll /android/app/src/main/profile/AndroidManifest.xml /android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt /android/app/src/main/res/**/ic_launcher.png + +/ios/Runner/Info.plist +/ios/Runner.xcodeproj/project.pbxproj +/ios/Runner/Assets.xcassets/AppIcon.appiconset \ No newline at end of file diff --git a/scripts/app_config/platforms/ios/platform_config.sh b/scripts/app_config/platforms/ios/platform_config.sh index 2dad97e5f..3041c1a86 100755 --- a/scripts/app_config/platforms/ios/platform_config.sh +++ b/scripts/app_config/platforms/ios/platform_config.sh @@ -2,6 +2,20 @@ set -x -e +F0="ios/Runner/Info.plist" +F1="ios/Runner.xcodeproj/project.pbxproj" + +TEMPLATES="${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates" + +for (( i=0; i<=1; i++ )); do + VAR="F${i}" + FILE="${APP_PROJECT_ROOT_DIR}/${!VAR}" + if [ -f "${FILE}" ]; then + rm "${FILE}" + fi + cp "${TEMPLATES}/${!VAR}" "${FILE}" +done + # Configure ios for Duo. -sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/ios/Runner/Info.plist" -sed -i '' "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/ios/Runner.xcodeproj/project.pbxproj" +sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F0}" +sed -i '' "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${F1}" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj similarity index 100% rename from ios/Runner.xcodeproj/project.pbxproj rename to scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj diff --git a/ios/Runner/Info.plist b/scripts/app_config/templates/ios/Runner/Info.plist similarity index 100% rename from ios/Runner/Info.plist rename to scripts/app_config/templates/ios/Runner/Info.plist From b89e07118c690bbf6bb66583fc5bfda36610fd1f Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 17:23:35 -0600 Subject: [PATCH 124/318] linux template files --- .gitignore | 5 ++++- .../platforms/linux/platform_config.sh | 18 ++++++++++++++++-- .../app_config/templates/linux}/CMakeLists.txt | 0 .../templates/linux}/my_application.cc | 0 4 files changed, 20 insertions(+), 3 deletions(-) rename {linux => scripts/app_config/templates/linux}/CMakeLists.txt (100%) rename {linux => scripts/app_config/templates/linux}/my_application.cc (100%) diff --git a/.gitignore b/.gitignore index 336ba21ed..916be96a3 100644 --- a/.gitignore +++ b/.gitignore @@ -79,4 +79,7 @@ secp256k1.dll /ios/Runner/Info.plist /ios/Runner.xcodeproj/project.pbxproj -/ios/Runner/Assets.xcassets/AppIcon.appiconset \ No newline at end of file +/ios/Runner/Assets.xcassets/AppIcon.appiconset + +/linux/CMakeLists.txt +/linux/my_application.cc \ No newline at end of file diff --git a/scripts/app_config/platforms/linux/platform_config.sh b/scripts/app_config/platforms/linux/platform_config.sh index 6219ae3da..c44466da0 100755 --- a/scripts/app_config/platforms/linux/platform_config.sh +++ b/scripts/app_config/platforms/linux/platform_config.sh @@ -2,6 +2,20 @@ set -x -e +F0="linux/CMakeLists.txt" +F1="linux/my_application.cc" + +TEMPLATES="${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates" + +for (( i=0; i<=1; i++ )); do + VAR="F${i}" + FILE="${APP_PROJECT_ROOT_DIR}/${!VAR}" + if [ -f "${FILE}" ]; then + rm "${FILE}" + fi + cp "${TEMPLATES}/${!VAR}" "${FILE}" +done + # Configure Linux for Duo. -sed -i "s/${APP_BASIC_NAME_PLACEHOLDER}/${NEW_BASIC_NAME}/g" "${APP_PROJECT_ROOT_DIR}/linux/CMakeLists.txt" -sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/linux/my_application.cc" +sed -i "s/${APP_BASIC_NAME_PLACEHOLDER}/${NEW_BASIC_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F0}" +sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F1}" diff --git a/linux/CMakeLists.txt b/scripts/app_config/templates/linux/CMakeLists.txt similarity index 100% rename from linux/CMakeLists.txt rename to scripts/app_config/templates/linux/CMakeLists.txt diff --git a/linux/my_application.cc b/scripts/app_config/templates/linux/my_application.cc similarity index 100% rename from linux/my_application.cc rename to scripts/app_config/templates/linux/my_application.cc From 9abb25cc815f74e64a5ab9f0b254168607a75373 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 17:28:59 -0600 Subject: [PATCH 125/318] macos template files --- .gitignore | 7 +++++- .../platforms/macos/platform_config.sh | 25 +++++++++++++++---- .../macos}/Runner.xcodeproj/project.pbxproj | 0 .../xcshareddata/xcschemes/Runner.xcscheme | 0 .../macos}/Runner/Configs/AppInfo.xcconfig | 0 5 files changed, 26 insertions(+), 6 deletions(-) rename {macos => scripts/app_config/templates/macos}/Runner.xcodeproj/project.pbxproj (100%) rename {macos => scripts/app_config/templates/macos}/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme (100%) rename {macos => scripts/app_config/templates/macos}/Runner/Configs/AppInfo.xcconfig (100%) diff --git a/.gitignore b/.gitignore index 916be96a3..84d09d3e0 100644 --- a/.gitignore +++ b/.gitignore @@ -82,4 +82,9 @@ secp256k1.dll /ios/Runner/Assets.xcassets/AppIcon.appiconset /linux/CMakeLists.txt -/linux/my_application.cc \ No newline at end of file +/linux/my_application.cc + +/macos/Runner/Configs/AppInfo.xcconfig +/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +/macos/Runner.xcodeproj/project.pbxproj +/macos/Runner/Assets.xcassets/AppIcon.appiconset \ No newline at end of file diff --git a/scripts/app_config/platforms/macos/platform_config.sh b/scripts/app_config/platforms/macos/platform_config.sh index 88becec76..8e31fa265 100755 --- a/scripts/app_config/platforms/macos/platform_config.sh +++ b/scripts/app_config/platforms/macos/platform_config.sh @@ -2,9 +2,24 @@ set -x -e +F0="macos/Runner.xcodeproj/project.pbxproj" +F1="macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme" +F2="macos/Runner/Configs/AppInfo.xcconfig" + +TEMPLATES="${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates" + +for (( i=0; i<=2; i++ )); do + VAR="F${i}" + FILE="${APP_PROJECT_ROOT_DIR}/${!VAR}" + if [ -f "${FILE}" ]; then + rm "${FILE}" + fi + cp "${TEMPLATES}/${!VAR}" "${FILE}" +done + # Configure macOS for Duo. -sed -i '' "s/${APP_ID_PLACEHOLDER_CAMEL}/${NEW_APP_ID_CAMEL}/g" "${APP_PROJECT_ROOT_DIR}/macos/Runner.xcodeproj/project.pbxproj" -sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/macos/Runner.xcodeproj/project.pbxproj" -sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme" -sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/macos/Runner/Configs/AppInfo.xcconfig" -sed -i '' "s/${APP_ID_PLACEHOLDER_SNAKE}/${NEW_APP_ID_SNAKE}/g" "${APP_PROJECT_ROOT_DIR}/macos/Runner/Configs/AppInfo.xcconfig" +sed -i '' "s/${APP_ID_PLACEHOLDER_CAMEL}/${NEW_APP_ID_CAMEL}/g" "${APP_PROJECT_ROOT_DIR}/${F0}" +sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F0}" +sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F1}" +sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F2}" +sed -i '' "s/${APP_ID_PLACEHOLDER_SNAKE}/${NEW_APP_ID_SNAKE}/g" "${APP_PROJECT_ROOT_DIR}/${F2}" diff --git a/macos/Runner.xcodeproj/project.pbxproj b/scripts/app_config/templates/macos/Runner.xcodeproj/project.pbxproj similarity index 100% rename from macos/Runner.xcodeproj/project.pbxproj rename to scripts/app_config/templates/macos/Runner.xcodeproj/project.pbxproj diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/scripts/app_config/templates/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme similarity index 100% rename from macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme rename to scripts/app_config/templates/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/scripts/app_config/templates/macos/Runner/Configs/AppInfo.xcconfig similarity index 100% rename from macos/Runner/Configs/AppInfo.xcconfig rename to scripts/app_config/templates/macos/Runner/Configs/AppInfo.xcconfig From 2519b6feafa9dca3c4a3d796864a990557414bb4 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 17:32:20 -0600 Subject: [PATCH 126/318] windows template files --- .gitignore | 7 ++++++- .../platforms/windows/platform_config.sh | 21 ++++++++++++++++--- .../templates/windows}/CMakeLists.txt | 0 .../templates/windows}/runner/Runner.rc | 0 .../templates/windows}/runner/main.cpp | 0 5 files changed, 24 insertions(+), 4 deletions(-) rename {windows => scripts/app_config/templates/windows}/CMakeLists.txt (100%) rename {windows => scripts/app_config/templates/windows}/runner/Runner.rc (100%) rename {windows => scripts/app_config/templates/windows}/runner/main.cpp (100%) diff --git a/.gitignore b/.gitignore index 84d09d3e0..047468371 100644 --- a/.gitignore +++ b/.gitignore @@ -87,4 +87,9 @@ secp256k1.dll /macos/Runner/Configs/AppInfo.xcconfig /macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme /macos/Runner.xcodeproj/project.pbxproj -/macos/Runner/Assets.xcassets/AppIcon.appiconset \ No newline at end of file +/macos/Runner/Assets.xcassets/AppIcon.appiconset + +/windows/runner/Runner.rc +/windows/runner/main.cpp +/windows/CMakeLists.txt +/windows/runner/resources/app_icon.ico \ No newline at end of file diff --git a/scripts/app_config/platforms/windows/platform_config.sh b/scripts/app_config/platforms/windows/platform_config.sh index ea9309a9c..14600ba25 100755 --- a/scripts/app_config/platforms/windows/platform_config.sh +++ b/scripts/app_config/platforms/windows/platform_config.sh @@ -2,7 +2,22 @@ set -x -e +F0="windows/runner/Runner.rc" +F1="windows/runner/main.cpp" +F2="windows/CMakeLists.txt" + +TEMPLATES="${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates" + +for (( i=0; i<=2; i++ )); do + VAR="F${i}" + FILE="${APP_PROJECT_ROOT_DIR}/${!VAR}" + if [ -f "${FILE}" ]; then + rm "${FILE}" + fi + cp "${TEMPLATES}/${!VAR}" "${FILE}" +done + # Configure Windows for Duo. -sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/windows/runner/Runner.rc" -sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/windows/runner/main.cpp" -sed -i "s/${APP_BASIC_NAME_PLACEHOLDER}/${NEW_BASIC_NAME}/g" "${APP_PROJECT_ROOT_DIR}/windows/CMakeLists.txt" +sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F0}" +sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F1}" +sed -i "s/${APP_BASIC_NAME_PLACEHOLDER}/${NEW_BASIC_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F2}" diff --git a/windows/CMakeLists.txt b/scripts/app_config/templates/windows/CMakeLists.txt similarity index 100% rename from windows/CMakeLists.txt rename to scripts/app_config/templates/windows/CMakeLists.txt diff --git a/windows/runner/Runner.rc b/scripts/app_config/templates/windows/runner/Runner.rc similarity index 100% rename from windows/runner/Runner.rc rename to scripts/app_config/templates/windows/runner/Runner.rc diff --git a/windows/runner/main.cpp b/scripts/app_config/templates/windows/runner/main.cpp similarity index 100% rename from windows/runner/main.cpp rename to scripts/app_config/templates/windows/runner/main.cpp From 8ae45aff6e04f0ee44d20d4d3bcf5562a3fc3b7f Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 17:40:00 -0600 Subject: [PATCH 127/318] move pubspec to templates --- .gitignore | 2 ++ pubspec.yaml => scripts/app_config/templates/pubspec.yaml | 0 scripts/build_app.sh | 4 ++++ 3 files changed, 6 insertions(+) rename pubspec.yaml => scripts/app_config/templates/pubspec.yaml (100%) diff --git a/.gitignore b/.gitignore index 047468371..0128e2978 100644 --- a/.gitignore +++ b/.gitignore @@ -69,6 +69,8 @@ secp256k1.dll ## other generated project files +pubspec.yaml + /android/app/build.gradle /android/app/src/debug/AndroidManifest.xml /android/app/src/profile/AndroidManifest.xml diff --git a/pubspec.yaml b/scripts/app_config/templates/pubspec.yaml similarity index 100% rename from pubspec.yaml rename to scripts/app_config/templates/pubspec.yaml diff --git a/scripts/build_app.sh b/scripts/build_app.sh index 9901b3cb7..454e4be49 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -79,6 +79,10 @@ fi # apply config project wide change changes if printf '%s\0' "${APP_NAMED_IDS[@]}" | grep -Fxqz -- "${APP_NAMED_ID}"; then + if [ -f "${APP_PROJECT_ROOT_DIR}/pubspec.yaml" ]; then + rm "${APP_PROJECT_ROOT_DIR}/pubspec.yaml" + fi + cp "${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates/pubspec.yaml" "${APP_PROJECT_ROOT_DIR}/pubspec.yaml" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/update_version.sh" -v "${APP_VERSION_STRING}" -b "${APP_BUILD_NUMBER}" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/link_assets.sh" "${APP_NAMED_ID}" # shellcheck disable=SC1090 From c70f63c005b2afd926478ac3c01d5658984c0f1c Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 17:40:49 -0600 Subject: [PATCH 128/318] rename template pubspec --- scripts/app_config/templates/{pubspec.yaml => pubspec.template} | 0 scripts/build_app.sh | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename scripts/app_config/templates/{pubspec.yaml => pubspec.template} (100%) diff --git a/scripts/app_config/templates/pubspec.yaml b/scripts/app_config/templates/pubspec.template similarity index 100% rename from scripts/app_config/templates/pubspec.yaml rename to scripts/app_config/templates/pubspec.template diff --git a/scripts/build_app.sh b/scripts/build_app.sh index 454e4be49..92a446b90 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -82,7 +82,7 @@ if printf '%s\0' "${APP_NAMED_IDS[@]}" | grep -Fxqz -- "${APP_NAMED_ID}"; then if [ -f "${APP_PROJECT_ROOT_DIR}/pubspec.yaml" ]; then rm "${APP_PROJECT_ROOT_DIR}/pubspec.yaml" fi - cp "${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates/pubspec.yaml" "${APP_PROJECT_ROOT_DIR}/pubspec.yaml" + cp "${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates/pubspec.template" "${APP_PROJECT_ROOT_DIR}/pubspec.yaml" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/update_version.sh" -v "${APP_VERSION_STRING}" -b "${APP_BUILD_NUMBER}" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/link_assets.sh" "${APP_NAMED_ID}" # shellcheck disable=SC1090 From dca3c8face769fdc1620a4b40120b566bfa2a58a Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 17:56:02 -0600 Subject: [PATCH 129/318] platform specific asset generation --- .../android/flutter_launcher_icons.yaml | 12 +++--------- .../platforms/ios/flutter_launcher_icons.yaml | 17 +++++++++++++++++ .../platforms/macos/flutter_launcher_icons.yaml | 15 +++++++++++++++ .../windows/flutter_launcher_icons.yaml | 17 +++++++++++++++++ scripts/app_config/shared/asset_generators.sh | 9 ++++++++- scripts/build_app.sh | 8 +++++--- 6 files changed, 65 insertions(+), 13 deletions(-) rename flutter_launcher_icons.yaml => scripts/app_config/platforms/android/flutter_launcher_icons.yaml (61%) create mode 100644 scripts/app_config/platforms/ios/flutter_launcher_icons.yaml create mode 100644 scripts/app_config/platforms/macos/flutter_launcher_icons.yaml create mode 100644 scripts/app_config/platforms/windows/flutter_launcher_icons.yaml diff --git a/flutter_launcher_icons.yaml b/scripts/app_config/platforms/android/flutter_launcher_icons.yaml similarity index 61% rename from flutter_launcher_icons.yaml rename to scripts/app_config/platforms/android/flutter_launcher_icons.yaml index 87eb4e11a..c47ed7cc4 100644 --- a/flutter_launcher_icons.yaml +++ b/scripts/app_config/platforms/android/flutter_launcher_icons.yaml @@ -9,19 +9,13 @@ flutter_launcher_icons: # adaptive_icon_foreground: "assets/icon/foreground.png" adaptive_icon_monochrome: "assets/icon/app_icon_alpha.png" - ios: true - image_path_ios: "assets/icon/icon.png" - remove_alpha_ios: true + ios: false web: generate: false - image_path: "assets/icon/icon.png" windows: - generate: true - image_path: "assets/icon/icon.png" - icon_size: 48 # min:48, max:256, default: 48 + generate: false macos: - generate: true - image_path: assets/icon/macos-icon.png + generate: false diff --git a/scripts/app_config/platforms/ios/flutter_launcher_icons.yaml b/scripts/app_config/platforms/ios/flutter_launcher_icons.yaml new file mode 100644 index 000000000..c7b437b93 --- /dev/null +++ b/scripts/app_config/platforms/ios/flutter_launcher_icons.yaml @@ -0,0 +1,17 @@ +# flutter pub run flutter_launcher_icons +flutter_launcher_icons: + + android: false + + ios: true + image_path_ios: "assets/icon/icon.png" + remove_alpha_ios: true + + web: + generate: false + + windows: + generate: false + + macos: + generate: false diff --git a/scripts/app_config/platforms/macos/flutter_launcher_icons.yaml b/scripts/app_config/platforms/macos/flutter_launcher_icons.yaml new file mode 100644 index 000000000..c485f1e4e --- /dev/null +++ b/scripts/app_config/platforms/macos/flutter_launcher_icons.yaml @@ -0,0 +1,15 @@ +# flutter pub run flutter_launcher_icons +flutter_launcher_icons: + android: false + + ios: false + + web: + generate: false + + windows: + generate: false + + macos: + generate: true + image_path: assets/icon/macos-icon.png diff --git a/scripts/app_config/platforms/windows/flutter_launcher_icons.yaml b/scripts/app_config/platforms/windows/flutter_launcher_icons.yaml new file mode 100644 index 000000000..62b1f8c18 --- /dev/null +++ b/scripts/app_config/platforms/windows/flutter_launcher_icons.yaml @@ -0,0 +1,17 @@ +# flutter pub run flutter_launcher_icons +flutter_launcher_icons: + + android: false + + ios: false + + web: + generate: false + + windows: + generate: true + image_path: "assets/icon/icon.png" + icon_size: 48 # min:48, max:256, default: 48 + + macos: + generate: false diff --git a/scripts/app_config/shared/asset_generators.sh b/scripts/app_config/shared/asset_generators.sh index a0dfc9ab3..a0150866a 100755 --- a/scripts/app_config/shared/asset_generators.sh +++ b/scripts/app_config/shared/asset_generators.sh @@ -2,10 +2,17 @@ set -x -e +if [ $# -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +APP_BUILD_PLATFORM=$1 + # run icon and image generators pushd "${APP_PROJECT_ROOT_DIR}" flutter pub get #native splash screen not used #dart run flutter_native_splash:create -dart run flutter_launcher_icons +dart run flutter_launcher_icons -f "${APP_PROJECT_ROOT_DIR}/scripts/app_config/platforms/${APP_BUILD_PLATFORM}/flutter_launcher_icons.yaml" popd \ No newline at end of file diff --git a/scripts/build_app.sh b/scripts/build_app.sh index 92a446b90..00c119123 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -88,14 +88,16 @@ if printf '%s\0' "${APP_NAMED_IDS[@]}" | grep -Fxqz -- "${APP_NAMED_ID}"; then # shellcheck disable=SC1090 source "${APP_PROJECT_ROOT_DIR}/scripts/app_config/configure_${APP_NAMED_ID}.sh" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/platforms/${APP_BUILD_PLATFORM}/platform_config.sh" + + if [[ "$APP_BUILD_PLATFORM" != "linux" ]]; then + # run icon and image generators after project config has completed for non linux + "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/asset_generators.sh" "${APP_BUILD_PLATFORM}" + fi else echo "Invalid app id: ${APP_NAMED_ID}" exit 1 fi -# run icon and image generators after project config has completed -"${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/asset_generators.sh" - if [ "$BUILD_CRYPTO_PLUGINS" -eq 0 ]; then if [[ "$APP_NAMED_ID" = "stack_wallet" ]]; then ./build_all.sh From 4b5f1c2bf735975fc6dd0818234acd96dacc39d5 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 18:50:05 -0600 Subject: [PATCH 130/318] bash spaghetti because flutter expects certain files to be in place not just for the platform we want to build --- .../platforms/android/platform_config.sh | 30 ++++----- .../platforms/ios/platform_config.sh | 16 ++--- .../platforms/linux/platform_config.sh | 16 ++--- .../platforms/macos/platform_config.sh | 23 +++---- .../platforms/windows/platform_config.sh | 19 ++---- .../templates/configure_template_files.sh | 66 +++++++++++++++++++ scripts/build_app.sh | 8 ++- 7 files changed, 110 insertions(+), 68 deletions(-) create mode 100755 scripts/app_config/templates/configure_template_files.sh diff --git a/scripts/app_config/platforms/android/platform_config.sh b/scripts/app_config/platforms/android/platform_config.sh index bad8fa5c0..e9dc04cc1 100755 --- a/scripts/app_config/platforms/android/platform_config.sh +++ b/scripts/app_config/platforms/android/platform_config.sh @@ -2,29 +2,21 @@ set -x -e -F0="android/app/build.gradle" -F1="android/app/src/debug/AndroidManifest.xml" -F2="android/app/src/profile/AndroidManifest.xml" -F3="android/app/src/main/AndroidManifest.xml" -F4="android/app/src/main/profile/AndroidManifest.xml" -F5="android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt" - -TEMPLATES="${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates" - for (( i=0; i<=5; i++ )); do - VAR="F${i}" + VAR="ANDROID_TF_${i}" FILE="${APP_PROJECT_ROOT_DIR}/${!VAR}" - if [ -f "${FILE}" ]; then + TEMPLATE="${TEMPLATES_DIR}/${!VAR}" + if cmp -s "${TEMPLATE}" "${FILE}"; then rm "${FILE}" + cp -rp "${TEMPLATE}" "${FILE}" fi - cp "${TEMPLATES}/${!VAR}" "${FILE}" done -sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${F0}" -sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${F1}" -sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${F2}" -sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${F3}" -sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F3}" -sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${F4}" -sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${F5}" +sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${ANDROID_TF_0}" +sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${ANDROID_TF_1}" +sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${ANDROID_TF_2}" +sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${ANDROID_TF_3}" +sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${ANDROID_TF_3}" +sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${ANDROID_TF_4}" +sed -i "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${ANDROID_TF_5}" diff --git a/scripts/app_config/platforms/ios/platform_config.sh b/scripts/app_config/platforms/ios/platform_config.sh index 3041c1a86..b60d3615c 100755 --- a/scripts/app_config/platforms/ios/platform_config.sh +++ b/scripts/app_config/platforms/ios/platform_config.sh @@ -2,20 +2,16 @@ set -x -e -F0="ios/Runner/Info.plist" -F1="ios/Runner.xcodeproj/project.pbxproj" - -TEMPLATES="${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates" - for (( i=0; i<=1; i++ )); do - VAR="F${i}" + VAR="IOS_TF_${i}" FILE="${APP_PROJECT_ROOT_DIR}/${!VAR}" - if [ -f "${FILE}" ]; then + TEMPLATE="${TEMPLATES_DIR}/${!VAR}" + if cmp -s "${TEMPLATE}" "${FILE}"; then rm "${FILE}" + cp -rp "${TEMPLATE}" "${FILE}" fi - cp "${TEMPLATES}/${!VAR}" "${FILE}" done # Configure ios for Duo. -sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F0}" -sed -i '' "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${F1}" +sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${IOS_TF_0}" +sed -i '' "s/${APP_ID_PLACEHOLDER}/${NEW_APP_ID}/g" "${APP_PROJECT_ROOT_DIR}/${IOS_TF_1}" diff --git a/scripts/app_config/platforms/linux/platform_config.sh b/scripts/app_config/platforms/linux/platform_config.sh index c44466da0..018f80def 100755 --- a/scripts/app_config/platforms/linux/platform_config.sh +++ b/scripts/app_config/platforms/linux/platform_config.sh @@ -2,20 +2,16 @@ set -x -e -F0="linux/CMakeLists.txt" -F1="linux/my_application.cc" - -TEMPLATES="${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates" - for (( i=0; i<=1; i++ )); do - VAR="F${i}" + VAR="LINUX_TF_${i}" FILE="${APP_PROJECT_ROOT_DIR}/${!VAR}" - if [ -f "${FILE}" ]; then + TEMPLATE="${TEMPLATES_DIR}/${!VAR}" + if cmp -s "${TEMPLATE}" "${FILE}"; then rm "${FILE}" + cp -rp "${TEMPLATE}" "${FILE}" fi - cp "${TEMPLATES}/${!VAR}" "${FILE}" done # Configure Linux for Duo. -sed -i "s/${APP_BASIC_NAME_PLACEHOLDER}/${NEW_BASIC_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F0}" -sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F1}" +sed -i "s/${APP_BASIC_NAME_PLACEHOLDER}/${NEW_BASIC_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${LINUX_TF_0}" +sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${LINUX_TF_1}" diff --git a/scripts/app_config/platforms/macos/platform_config.sh b/scripts/app_config/platforms/macos/platform_config.sh index 8e31fa265..c54ba32a6 100755 --- a/scripts/app_config/platforms/macos/platform_config.sh +++ b/scripts/app_config/platforms/macos/platform_config.sh @@ -2,24 +2,19 @@ set -x -e -F0="macos/Runner.xcodeproj/project.pbxproj" -F1="macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme" -F2="macos/Runner/Configs/AppInfo.xcconfig" - -TEMPLATES="${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates" - for (( i=0; i<=2; i++ )); do - VAR="F${i}" + VAR="MAC_TF_${i}" FILE="${APP_PROJECT_ROOT_DIR}/${!VAR}" - if [ -f "${FILE}" ]; then + TEMPLATE="${TEMPLATES_DIR}/${!VAR}" + if cmp -s "${TEMPLATE}" "${FILE}"; then rm "${FILE}" + cp -rp "${TEMPLATE}" "${FILE}" fi - cp "${TEMPLATES}/${!VAR}" "${FILE}" done # Configure macOS for Duo. -sed -i '' "s/${APP_ID_PLACEHOLDER_CAMEL}/${NEW_APP_ID_CAMEL}/g" "${APP_PROJECT_ROOT_DIR}/${F0}" -sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F0}" -sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F1}" -sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F2}" -sed -i '' "s/${APP_ID_PLACEHOLDER_SNAKE}/${NEW_APP_ID_SNAKE}/g" "${APP_PROJECT_ROOT_DIR}/${F2}" +sed -i '' "s/${APP_ID_PLACEHOLDER_CAMEL}/${NEW_APP_ID_CAMEL}/g" "${APP_PROJECT_ROOT_DIR}/${MAC_TF_0}" +sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${MAC_TF_0}" +sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${MAC_TF_1}" +sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${MAC_TF_2}" +sed -i '' "s/${APP_ID_PLACEHOLDER_SNAKE}/${NEW_APP_ID_SNAKE}/g" "${APP_PROJECT_ROOT_DIR}/${MAC_TF_2}" diff --git a/scripts/app_config/platforms/windows/platform_config.sh b/scripts/app_config/platforms/windows/platform_config.sh index 14600ba25..4a0158c80 100755 --- a/scripts/app_config/platforms/windows/platform_config.sh +++ b/scripts/app_config/platforms/windows/platform_config.sh @@ -2,22 +2,17 @@ set -x -e -F0="windows/runner/Runner.rc" -F1="windows/runner/main.cpp" -F2="windows/CMakeLists.txt" - -TEMPLATES="${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates" - for (( i=0; i<=2; i++ )); do - VAR="F${i}" + VAR="WIN_TF_${i}" FILE="${APP_PROJECT_ROOT_DIR}/${!VAR}" - if [ -f "${FILE}" ]; then + TEMPLATE="${TEMPLATES_DIR}/${!VAR}" + if cmp -s "${TEMPLATE}" "${FILE}"; then rm "${FILE}" + cp -rp "${TEMPLATE}" "${FILE}" fi - cp "${TEMPLATES}/${!VAR}" "${FILE}" done # Configure Windows for Duo. -sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F0}" -sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F1}" -sed -i "s/${APP_BASIC_NAME_PLACEHOLDER}/${NEW_BASIC_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${F2}" +sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${WIN_TF_0}" +sed -i "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${WIN_TF_1}" +sed -i "s/${APP_BASIC_NAME_PLACEHOLDER}/${NEW_BASIC_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${WIN_TF_2}" diff --git a/scripts/app_config/templates/configure_template_files.sh b/scripts/app_config/templates/configure_template_files.sh new file mode 100755 index 000000000..9acf5b6f4 --- /dev/null +++ b/scripts/app_config/templates/configure_template_files.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash + +set -x -e + +export TEMPLATES_DIR="${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates" + +export T_PUBSPEC="${TEMPLATES_DIR}/pubspec.template" +export ACTUAL_PUBSPEC="${APP_PROJECT_ROOT_DIR}/pubspec.yaml" + +export ANDROID_TF_0="android/app/build.gradle" +export ANDROID_TF_1="android/app/src/debug/AndroidManifest.xml" +export ANDROID_TF_2="android/app/src/profile/AndroidManifest.xml" +export ANDROID_TF_3="android/app/src/main/AndroidManifest.xml" +export ANDROID_TF_4="android/app/src/main/profile/AndroidManifest.xml" +export ANDROID_TF_5="android/app/src/main/kotlin/com/cypherstack/stackwallet/MainActivity.kt" +export IOS_TF_0="ios/Runner/Info.plist" +export IOS_TF_1="ios/Runner.xcodeproj/project.pbxproj" +export LINUX_TF_0="linux/CMakeLists.txt" +export LINUX_TF_1="linux/my_application.cc" +export MAC_TF_0="macos/Runner.xcodeproj/project.pbxproj" +export MAC_TF_1="macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme" +export MAC_TF_2="macos/Runner/Configs/AppInfo.xcconfig" +export WIN_TF_0="windows/runner/Runner.rc" +export WIN_TF_1="windows/runner/main.cpp" +export WIN_TF_2="windows/CMakeLists.txt" + +mkdir -p "${APP_PROJECT_ROOT_DIR}/android/app/src/debug" +mkdir -p "${APP_PROJECT_ROOT_DIR}/android/app/src/profile" +mkdir -p "${APP_PROJECT_ROOT_DIR}/android/app/src/main/profile" +mkdir -p "${APP_PROJECT_ROOT_DIR}/android/app/src/main/kotlin/com/cypherstack/stackwallet" +mkdir -p "${APP_PROJECT_ROOT_DIR}/ios/Runner" +mkdir -p "${APP_PROJECT_ROOT_DIR}/ios/Runner.xcodeproj" +mkdir -p "${APP_PROJECT_ROOT_DIR}/macos/Runner.xcodeproj" +mkdir -p "${APP_PROJECT_ROOT_DIR}/macos/Runner.xcodeproj/xcshareddata/xcschemes" +mkdir -p "${APP_PROJECT_ROOT_DIR}/macos/Runner/Configs" +mkdir -p "${APP_PROJECT_ROOT_DIR}/windows/runner" + +TEMPLATE_FILES=( + "${ANDROID_TF_0}" + "${ANDROID_TF_1}" + "${ANDROID_TF_2}" + "${ANDROID_TF_3}" + "${ANDROID_TF_4}" + "${ANDROID_TF_5}" + "${IOS_TF_0}" + "${IOS_TF_1}" + "${LINUX_TF_0}" + "${LINUX_TF_1}" + "${MAC_TF_0}" + "${MAC_TF_1}" + "${MAC_TF_2}" + "${WIN_TF_0}" + "${WIN_TF_1}" + "${WIN_TF_2}" +) + +if [ ! -f "${ACTUAL_PUBSPEC}" ]; then + cp "${T_PUBSPEC}" "${ACTUAL_PUBSPEC}" +fi + +for TF in "${TEMPLATE_FILES[@]}"; do + FILE="${APP_PROJECT_ROOT_DIR}/${TF}" + if [ ! -f "${FILE}" ]; then + cp -rp "${TEMPLATES_DIR}/${TF}" "${FILE}" + fi +done \ No newline at end of file diff --git a/scripts/build_app.sh b/scripts/build_app.sh index 00c119123..da193540d 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -69,6 +69,8 @@ fi confirmDisclaimer set -x +source "${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates/configure_template_files.sh" + # checks for the correct platform dir and pushes it for later if printf '%s\0' "${APP_PLATFORMS[@]}" | grep -Fxqz -- "${APP_BUILD_PLATFORM}"; then pushd "${APP_PROJECT_ROOT_DIR}/scripts/${APP_BUILD_PLATFORM}" @@ -79,10 +81,10 @@ fi # apply config project wide change changes if printf '%s\0' "${APP_NAMED_IDS[@]}" | grep -Fxqz -- "${APP_NAMED_ID}"; then - if [ -f "${APP_PROJECT_ROOT_DIR}/pubspec.yaml" ]; then - rm "${APP_PROJECT_ROOT_DIR}/pubspec.yaml" + if cmp -s "${ACTUAL_PUBSPEC}" "${T_PUBSPEC}"; then + rm "${ACTUAL_PUBSPEC}" + cp "${T_PUBSPEC}" "${ACTUAL_PUBSPEC}" fi - cp "${APP_PROJECT_ROOT_DIR}/scripts/app_config/templates/pubspec.template" "${APP_PROJECT_ROOT_DIR}/pubspec.yaml" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/update_version.sh" -v "${APP_VERSION_STRING}" -b "${APP_BUILD_NUMBER}" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/link_assets.sh" "${APP_NAMED_ID}" # shellcheck disable=SC1090 From e3e5bf63e3edbdb13fa834d138c1dd5f14537f03 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 23 May 2024 19:19:36 -0600 Subject: [PATCH 131/318] mac/ios asset tweaks --- .gitignore | 4 ++-- .../Icon-App-1024x1024@1x.png | Bin 64449 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 1011 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 1588 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 2245 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 1285 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 2167 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 3101 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 1588 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 2854 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 4360 -> 0 bytes .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 1888 -> 0 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 3566 -> 0 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 2132 -> 0 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 4064 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 4360 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 6669 -> 0 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 2607 -> 0 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 5223 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 2736 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 5557 -> 0 bytes .../Icon-App-83.5x83.5@2x.png | Bin 6110 -> 0 bytes .../AppIcon.appiconset/app_icon_1024.png | Bin 63944 -> 0 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 4698 -> 0 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 577 -> 0 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 8830 -> 0 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 1158 -> 0 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 16189 -> 0 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 2283 -> 0 bytes 29 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png delete mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png delete mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png delete mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png delete mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png delete mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png delete mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png delete mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png diff --git a/.gitignore b/.gitignore index 0128e2978..c68dd4e33 100644 --- a/.gitignore +++ b/.gitignore @@ -81,7 +81,7 @@ pubspec.yaml /ios/Runner/Info.plist /ios/Runner.xcodeproj/project.pbxproj -/ios/Runner/Assets.xcassets/AppIcon.appiconset +/ios/Runner/Assets.xcassets/AppIcon.appiconset/*.png /linux/CMakeLists.txt /linux/my_application.cc @@ -89,7 +89,7 @@ pubspec.yaml /macos/Runner/Configs/AppInfo.xcconfig /macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme /macos/Runner.xcodeproj/project.pbxproj -/macos/Runner/Assets.xcassets/AppIcon.appiconset +/macos/Runner/Assets.xcassets/AppIcon.appiconset/*.png /windows/runner/Runner.rc /windows/runner/main.cpp diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png deleted file mode 100644 index bf0e52d56cf8db54c7605e4d5bfdc64f8347f854..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64449 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­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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png deleted file mode 100644 index 7cf1c3f05f4c8f4826651597825a228139518147..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1588 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png deleted file mode 100644 index 7cf1c3f05f4c8f4826651597825a228139518147..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1588 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 Ef;+HN`2YX_ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png deleted file mode 100644 index 7e15811d5d6cfa58ce9fd5514fa536d4674b7ea0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4360 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png deleted file mode 100644 index 2c98de8025761e60c4291ce04868b0aec8ce3853..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1888 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png deleted file mode 100644 index 5335b173ba03fffa0cd07c165d89f1a65c294786..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2132 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png deleted file mode 100644 index 7e15811d5d6cfa58ce9fd5514fa536d4674b7ea0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4360 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index 734d479151b9212270fb4b78cf197034546e8fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6669 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png deleted file mode 100644 index 9b0dfe27bdc2ae36eddb6ef573d56707546cc946..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2607 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 R-yQ$}002ovPDHLkV1hL{1m*w$ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png deleted file mode 100644 index 750f49158e5e3b35e8a4f23c17ab842279c0cd07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5223 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png deleted file mode 100644 index 1beac09a1c043df1e5b0749bdc42e007508c24fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2736 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

    LGP3duKgQWA9x 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 r*X(<0U19A)0p$0xMj>S=Xp{Y^@wG96sL7V7G diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png deleted file mode 100644 index b332a550b4b6b534ab0b3d71b351a251e2e88211..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6110 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 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png deleted file mode 100644 index 9987503582cb9ca958259ed581224af17b9ced78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4698 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 iHw5(R?f*GE476 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png deleted file mode 100644 index 7d6531e398abfef5338bbc839b4226dc41667885..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)kGorKMFQDk{34 zpaEaLd=cEbb!*MRg9mdI6ckv28W}%-{%im=Y_FJ@*hV0~n1_ew9)93=(_#^yz;U6_x*NY;24`F5|0LuL54be(j;8q|^r#Z)as?{Q@@N+_`i5 z#l^)7IXOA?WMyR;VTS(r@q_Wup+oM!!moJY68S?MnKgLU!E-~D`eH-ljJ9q9deEj$k0(V2pgmrH)`;z^9og0|)^C8*SEWc{238 P00000NkvXXu0mjf)3geB diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png deleted file mode 100644 index e81fc06dcae8252b50dc2c07cddcda4a6cd02199..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8830 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 FV1ij`RlEQI From 1a078955c96d46ada3217a3b2503fd61203a71ca Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 24 May 2024 12:01:48 -0600 Subject: [PATCH 132/318] clean up git status and show for enabled coins only --- .../global_settings_view/about_view.dart | 399 +++------- .../settings_menu/desktop_about_view.dart | 685 ++++++------------ lib/utilities/git_status.dart | 206 ++++++ 3 files changed, 523 insertions(+), 767 deletions(-) create mode 100644 lib/utilities/git_status.dart diff --git a/lib/pages/settings_views/global_settings_view/about_view.dart b/lib/pages/settings_views/global_settings_view/about_view.dart index d7a7ec4c1..13005a8fb 100644 --- a/lib/pages/settings_views/global_settings_view/about_view.dart +++ b/lib/pages/settings_views/global_settings_view/about_view.dart @@ -8,142 +8,29 @@ * */ -import 'dart:convert'; - import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_libepiccash/git_versions.dart' as EPIC_VERSIONS; -import 'package:flutter_libmonero/git_versions.dart' as MONERO_VERSIONS; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:lelantus/git_versions.dart' as FIRO_VERSIONS; import 'package:package_info_plus/package_info_plus.dart'; -import '../../../networking/http.dart'; -import '../../../services/tor_service.dart'; +import 'package:url_launcher/url_launcher.dart'; + +import '../../../app_config.dart'; import '../../../themes/stack_colors.dart'; -import '../../../utilities/logger.dart'; -import '../../../utilities/prefs.dart'; +import '../../../utilities/git_status.dart'; import '../../../utilities/text_styles.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../widgets/background.dart'; import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../widgets/custom_buttons/blue_text_button.dart'; import '../../../widgets/rounded_white_container.dart'; -import 'package:url_launcher/url_launcher.dart'; - -const kGithubAPI = "https://api.github.com"; -const kGithubSearch = "/search/commits"; -const kGithubHead = "/repos"; - -enum CommitStatus { isHead, isOldCommit, notACommit, notLoaded } - -Future doesCommitExist( - String organization, - String project, - String commit, -) async { - Logging.instance.log("doesCommitExist", level: LogLevel.Info); - // final Client client = Client(); - HTTP client = HTTP(); - try { - final uri = Uri.parse( - "$kGithubAPI$kGithubHead/$organization/$project/commits/$commit"); - - final commitQuery = await client.get( - url: uri, - headers: {'Content-Type': 'application/json'}, - proxyInfo: Prefs.instance.useTor - ? TorService.sharedInstance.getProxyInfo() - : null, - ); - - final response = jsonDecode(commitQuery.body.toString()); - Logging.instance.log("doesCommitExist $project $commit", // $response", - level: LogLevel.Info); - bool isThereCommit; - try { - isThereCommit = response['sha'] == commit; - Logging.instance.log( - "$commit isThereCommit=$isThereCommit", - level: LogLevel.Info, - ); - return isThereCommit; - } catch (_) { - return false; - } - } catch (e, s) { - Logging.instance.log("$e $s", level: LogLevel.Error); - return false; - } -} - -Future isHeadCommit( - String organization, - String project, - String branch, - String commit, -) async { - Logging.instance.log("doesCommitExist", level: LogLevel.Info); - HTTP client = HTTP(); - try { - final uri = Uri.parse( - "$kGithubAPI$kGithubHead/$organization/$project/commits/$branch"); - - final commitQuery = await client.get( - url: uri, - headers: {'Content-Type': 'application/json'}, - proxyInfo: Prefs.instance.useTor - ? TorService.sharedInstance.getProxyInfo() - : null, - ); - - final response = jsonDecode(commitQuery.body.toString()); - Logging.instance.log( - "isHeadCommit $project $commit $branch", //$response", - level: LogLevel.Info, - ); - bool isHead; - try { - isHead = response['sha'] == commit; - Logging.instance.log( - "$commit isHead=$isHead", - level: LogLevel.Info, - ); - return isHead; - } catch (_) { - return false; - } - } catch (e, s) { - Logging.instance.log("$e $s", level: LogLevel.Error); - return false; - } -} class AboutView extends ConsumerWidget { - const AboutView({Key? key}) : super(key: key); + const AboutView({super.key}); static const String routeName = "/about"; @override Widget build(BuildContext context, WidgetRef ref) { - String firoCommit = FIRO_VERSIONS.getPluginVersion(); - String epicCashCommit = EPIC_VERSIONS.getPluginVersion(); - String moneroCommit = MONERO_VERSIONS.getPluginVersion(); - List futureFiroList = [ - doesCommitExist("cypherstack", "flutter_liblelantus", firoCommit), - isHeadCommit("cypherstack", "flutter_liblelantus", "main", firoCommit), - ]; - Future commitFiroFuture = Future.wait(futureFiroList); - List futureEpicList = [ - doesCommitExist("cypherstack", "flutter_libepiccash", epicCashCommit), - isHeadCommit( - "cypherstack", "flutter_libepiccash", "main", epicCashCommit), - ]; - Future commitEpicFuture = Future.wait(futureEpicList); - List futureMoneroList = [ - doesCommitExist("cypherstack", "flutter_libmonero", moneroCommit), - isHeadCommit("cypherstack", "flutter_libmonero", "main", moneroCommit), - ]; - Future commitMoneroFuture = Future.wait(futureMoneroList); - return Background( child: Scaffold( backgroundColor: Theme.of(context).extension()!.background, @@ -271,60 +158,24 @@ class AboutView extends ConsumerWidget { ); }, ), - const SizedBox( - height: 12, - ), - FutureBuilder( - future: commitFiroFuture, - builder: - (context, AsyncSnapshot snapshot) { - bool commitExists = false; - bool isHead = false; + if (AppConfig.coins.whereType().isNotEmpty) + const SizedBox( + height: 12, + ), + if (AppConfig.coins.whereType().isNotEmpty) + FutureBuilder( + future: GitStatus.getFiroCommitStatus(), + builder: ( + context, + AsyncSnapshot snapshot, + ) { CommitStatus stateOfCommit = CommitStatus.notLoaded; if (snapshot.connectionState == ConnectionState.done && snapshot.hasData) { - commitExists = snapshot.data![0] as bool; - isHead = snapshot.data![1] as bool; - if (commitExists && isHead) { - stateOfCommit = CommitStatus.isHead; - } else if (commitExists) { - stateOfCommit = CommitStatus.isOldCommit; - } else { - stateOfCommit = CommitStatus.notACommit; - } - } - TextStyle indicationStyle = - STextStyles.itemSubtitle(context); - switch (stateOfCommit) { - case CommitStatus.isHead: - indicationStyle = - STextStyles.itemSubtitle(context) - .copyWith( - color: Theme.of(context) - .extension()! - .accentColorGreen); - break; - case CommitStatus.isOldCommit: - indicationStyle = - STextStyles.itemSubtitle(context) - .copyWith( - color: Theme.of(context) - .extension()! - .accentColorYellow); - break; - case CommitStatus.notACommit: - indicationStyle = - STextStyles.itemSubtitle(context) - .copyWith( - color: Theme.of(context) - .extension()! - .accentColorRed); - break; - default: - break; + stateOfCommit = snapshot.data!; } return RoundedWhiteContainer( child: Column( @@ -339,68 +190,37 @@ class AboutView extends ConsumerWidget { height: 4, ), SelectableText( - firoCommit, - style: indicationStyle, + GitStatus.firoCommit, + style: GitStatus.styleForStatus( + stateOfCommit, + context, + ), ), ], ), ); - }), - const SizedBox( - height: 12, - ), - FutureBuilder( - future: commitEpicFuture, - builder: - (context, AsyncSnapshot snapshot) { - bool commitExists = false; - bool isHead = false; + }, + ), + if (AppConfig.coins.whereType().isNotEmpty) + const SizedBox( + height: 12, + ), + if (AppConfig.coins.whereType().isNotEmpty) + FutureBuilder( + future: GitStatus.getEpicCommitStatus(), + builder: ( + context, + AsyncSnapshot snapshot, + ) { CommitStatus stateOfCommit = CommitStatus.notLoaded; if (snapshot.connectionState == ConnectionState.done && snapshot.hasData) { - commitExists = snapshot.data![0] as bool; - isHead = snapshot.data![1] as bool; - if (commitExists && isHead) { - stateOfCommit = CommitStatus.isHead; - } else if (commitExists) { - stateOfCommit = CommitStatus.isOldCommit; - } else { - stateOfCommit = CommitStatus.notACommit; - } - } - TextStyle indicationStyle = - STextStyles.itemSubtitle(context); - switch (stateOfCommit) { - case CommitStatus.isHead: - indicationStyle = - STextStyles.itemSubtitle(context) - .copyWith( - color: Theme.of(context) - .extension()! - .accentColorGreen); - break; - case CommitStatus.isOldCommit: - indicationStyle = - STextStyles.itemSubtitle(context) - .copyWith( - color: Theme.of(context) - .extension()! - .accentColorYellow); - break; - case CommitStatus.notACommit: - indicationStyle = - STextStyles.itemSubtitle(context) - .copyWith( - color: Theme.of(context) - .extension()! - .accentColorRed); - break; - default: - break; + stateOfCommit = snapshot.data!; } + return RoundedWhiteContainer( child: Column( crossAxisAlignment: @@ -414,67 +234,35 @@ class AboutView extends ConsumerWidget { height: 4, ), SelectableText( - epicCashCommit, - style: indicationStyle, + GitStatus.epicCashCommit, + style: GitStatus.styleForStatus( + stateOfCommit, + context, + ), ), ], ), ); - }), - const SizedBox( - height: 12, - ), - FutureBuilder( - future: commitMoneroFuture, - builder: - (context, AsyncSnapshot snapshot) { - bool commitExists = false; - bool isHead = false; + }, + ), + if (AppConfig.coins.whereType().isNotEmpty) + const SizedBox( + height: 12, + ), + if (AppConfig.coins.whereType().isNotEmpty) + FutureBuilder( + future: GitStatus.getMoneroCommitStatus(), + builder: ( + context, + AsyncSnapshot snapshot, + ) { CommitStatus stateOfCommit = CommitStatus.notLoaded; if (snapshot.connectionState == ConnectionState.done && snapshot.hasData) { - commitExists = snapshot.data![0] as bool; - isHead = snapshot.data![1] as bool; - if (commitExists && isHead) { - stateOfCommit = CommitStatus.isHead; - } else if (commitExists) { - stateOfCommit = CommitStatus.isOldCommit; - } else { - stateOfCommit = CommitStatus.notACommit; - } - } - TextStyle indicationStyle = - STextStyles.itemSubtitle(context); - switch (stateOfCommit) { - case CommitStatus.isHead: - indicationStyle = - STextStyles.itemSubtitle(context) - .copyWith( - color: Theme.of(context) - .extension()! - .accentColorGreen); - break; - case CommitStatus.isOldCommit: - indicationStyle = - STextStyles.itemSubtitle(context) - .copyWith( - color: Theme.of(context) - .extension()! - .accentColorYellow); - break; - case CommitStatus.notACommit: - indicationStyle = - STextStyles.itemSubtitle(context) - .copyWith( - color: Theme.of(context) - .extension()! - .accentColorRed); - break; - default: - break; + stateOfCommit = snapshot.data!; } return RoundedWhiteContainer( child: Column( @@ -489,13 +277,17 @@ class AboutView extends ConsumerWidget { height: 4, ), SelectableText( - moneroCommit, - style: indicationStyle, + GitStatus.moneroCommit, + style: GitStatus.styleForStatus( + stateOfCommit, + context, + ), ), ], ), ); - }), + }, + ), const SizedBox( height: 12, ), @@ -522,32 +314,34 @@ class AboutView extends ConsumerWidget { ], ), ), - const SizedBox( - height: 12, - ), - RoundedWhiteContainer( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "Tezos functionality", - style: STextStyles.titleBold12(context), - ), - const SizedBox( - height: 4, - ), - CustomTextButton( - text: "Powered by TzKT API", - onTap: () { - launchUrl( - Uri.parse("https://tzkt.io"), - mode: LaunchMode.externalApplication, - ); - }, - ), - ], + if (AppConfig.coins.whereType().isNotEmpty) + const SizedBox( + height: 12, + ), + if (AppConfig.coins.whereType().isNotEmpty) + RoundedWhiteContainer( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Tezos functionality", + style: STextStyles.titleBold12(context), + ), + const SizedBox( + height: 4, + ), + CustomTextButton( + text: "Powered by TzKT API", + onTap: () { + launchUrl( + Uri.parse("https://tzkt.io"), + mode: LaunchMode.externalApplication, + ); + }, + ), + ], + ), ), - ), const SizedBox( height: 12, ), @@ -558,8 +352,9 @@ class AboutView extends ConsumerWidget { style: STextStyles.label(context), children: [ const TextSpan( - text: - "By using Stack Wallet, you agree to the "), + text: + "By using ${AppConfig.appName}, you agree to the ", + ), TextSpan( text: "Terms of service", style: STextStyles.richLink(context), @@ -567,7 +362,8 @@ class AboutView extends ConsumerWidget { ..onTap = () { launchUrl( Uri.parse( - "https://stackwallet.com/terms-of-service.html"), + "https://stackwallet.com/terms-of-service.html", + ), mode: LaunchMode.externalApplication, ); }, @@ -580,7 +376,8 @@ class AboutView extends ConsumerWidget { ..onTap = () { launchUrl( Uri.parse( - "https://stackwallet.com/privacy-policy.html"), + "https://stackwallet.com/privacy-policy.html", + ), mode: LaunchMode.externalApplication, ); }, diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index 243611f7a..883edd59b 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -8,105 +8,21 @@ * */ -import 'dart:convert'; - import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_libepiccash/git_versions.dart' as EPIC_VERSIONS; -import 'package:flutter_libmonero/git_versions.dart' as MONERO_VERSIONS; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:http/http.dart'; -import 'package:lelantus/git_versions.dart' as FIRO_VERSIONS; import 'package:package_info_plus/package_info_plus.dart'; +import 'package:url_launcher/url_launcher.dart'; + import '../../../app_config.dart'; import '../../../themes/stack_colors.dart'; -import '../../../utilities/logger.dart'; +import '../../../utilities/git_status.dart'; import '../../../utilities/text_styles.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../widgets/custom_buttons/blue_text_button.dart'; import '../../../widgets/desktop/desktop_app_bar.dart'; import '../../../widgets/desktop/desktop_scaffold.dart'; import '../../../widgets/rounded_white_container.dart'; -import 'package:url_launcher/url_launcher.dart'; - -const kGithubAPI = "https://api.github.com"; -const kGithubSearch = "/search/commits"; -const kGithubHead = "/repos"; - -enum CommitStatus { isHead, isOldCommit, notACommit, notLoaded } - -Future doesCommitExist( - String organization, - String project, - String commit, -) async { - Logging.instance.log("doesCommitExist", level: LogLevel.Info); - final Client client = Client(); - try { - final uri = Uri.parse( - "$kGithubAPI$kGithubHead/$organization/$project/commits/$commit", - ); - - final commitQuery = await client.get( - uri, - headers: {'Content-Type': 'application/json'}, - ); - - final response = jsonDecode(commitQuery.body.toString()); - Logging.instance.log( - "doesCommitExist $project $commit $response", - level: LogLevel.Info, - ); - bool isThereCommit; - try { - isThereCommit = response['sha'] == commit; - Logging.instance - .log("isThereCommit $isThereCommit", level: LogLevel.Info); - return isThereCommit; - } catch (e, s) { - return false; - } - } catch (e, s) { - Logging.instance.log("$e $s", level: LogLevel.Error); - return false; - } -} - -Future isHeadCommit( - String organization, - String project, - String branch, - String commit, -) async { - Logging.instance.log("doesCommitExist", level: LogLevel.Info); - final Client client = Client(); - try { - final uri = Uri.parse( - "$kGithubAPI$kGithubHead/$organization/$project/commits/$branch", - ); - - final commitQuery = await client.get( - uri, - headers: {'Content-Type': 'application/json'}, - ); - - final response = jsonDecode(commitQuery.body.toString()); - Logging.instance.log( - "isHeadCommit $project $commit $branch $response", - level: LogLevel.Info, - ); - bool isHead; - try { - isHead = response['sha'] == commit; - Logging.instance.log("isHead $isHead", level: LogLevel.Info); - return isHead; - } catch (e, s) { - return false; - } - } catch (e, s) { - Logging.instance.log("$e $s", level: LogLevel.Error); - return false; - } -} class DesktopAboutView extends ConsumerWidget { const DesktopAboutView({super.key}); @@ -115,30 +31,6 @@ class DesktopAboutView extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final String firoCommit = FIRO_VERSIONS.getPluginVersion(); - final String epicCashCommit = EPIC_VERSIONS.getPluginVersion(); - final String moneroCommit = MONERO_VERSIONS.getPluginVersion(); - final List> futureFiroList = [ - doesCommitExist("cypherstack", "flutter_liblelantus", firoCommit), - isHeadCommit("cypherstack", "flutter_liblelantus", "main", firoCommit), - ]; - final Future commitFiroFuture = Future.wait(futureFiroList); - final List> futureEpicList = [ - doesCommitExist("cypherstack", "flutter_libepiccash", epicCashCommit), - isHeadCommit( - "cypherstack", - "flutter_libepiccash", - "main", - epicCashCommit, - ), - ]; - final Future commitEpicFuture = Future.wait(futureEpicList); - final List> futureMoneroList = [ - doesCommitExist("cypherstack", "flutter_libmonero", moneroCommit), - isHeadCommit("cypherstack", "flutter_libmonero", "main", moneroCommit), - ]; - final Future commitMoneroFuture = Future.wait(futureMoneroList); - debugPrint("BUILD: $runtimeType"); return DesktopScaffold( background: Theme.of(context).extension()!.background, @@ -158,6 +50,7 @@ class DesktopAboutView extends ConsumerWidget { ), ), body: Column( + mainAxisSize: MainAxisSize.min, children: [ Padding( padding: const EdgeInsets.fromLTRB(24, 10, 24, 35), @@ -165,11 +58,10 @@ class DesktopAboutView extends ConsumerWidget { children: [ Expanded( child: RoundedWhiteContainer( - width: 929, - height: 451, child: Padding( padding: const EdgeInsets.only(left: 10, top: 10), child: Column( + mainAxisSize: MainAxisSize.min, // mainAxisAlignment: MainAxisAlignment.start, children: [ Row( @@ -253,6 +145,8 @@ class DesktopAboutView extends ConsumerWidget { padding: const EdgeInsets.only(right: 10, bottom: 10), child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, children: [ FutureBuilder( future: PackageInfo.fromPlatform(), @@ -273,12 +167,16 @@ class DesktopAboutView extends ConsumerWidget { } return Column( + mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.start, children: [ Row( children: [ Column( + mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -309,9 +207,10 @@ class DesktopAboutView extends ConsumerWidget { ], ), const SizedBox( - width: 400, + width: 64, ), Column( + mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -347,6 +246,7 @@ class DesktopAboutView extends ConsumerWidget { Row( children: [ Column( + mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -376,341 +276,187 @@ class DesktopAboutView extends ConsumerWidget { ), ], ), - const SizedBox( - width: 350, - ), - FutureBuilder( - future: commitFiroFuture, - builder: ( - context, - AsyncSnapshot snapshot, - ) { - bool commitExists = false; - bool isHead = false; - CommitStatus stateOfCommit = - CommitStatus.notLoaded; - - if (snapshot.connectionState == - ConnectionState.done && - snapshot.hasData) { - commitExists = - snapshot.data![0] as bool; - isHead = - snapshot.data![1] as bool; - if (commitExists && isHead) { - stateOfCommit = - CommitStatus.isHead; - } else if (commitExists) { - stateOfCommit = CommitStatus - .isOldCommit; - } else { - stateOfCommit = - CommitStatus.notACommit; - } - } - TextStyle indicationStyle = - STextStyles.itemSubtitle( - context, - ); - switch (stateOfCommit) { - case CommitStatus.isHead: - indicationStyle = - STextStyles - .itemSubtitle( - context, - ).copyWith( - color: Theme.of( - context, - ) - .extension< - StackColors>()! - .accentColorGreen, - ); - break; - case CommitStatus.isOldCommit: - indicationStyle = - STextStyles - .itemSubtitle( - context, - ).copyWith( - color: Theme.of( - context, - ) - .extension< - StackColors>()! - .accentColorYellow, - ); - break; - case CommitStatus.notACommit: - indicationStyle = - STextStyles - .itemSubtitle( - context, - ).copyWith( - color: Theme.of( - context, - ) - .extension< - StackColors>()! - .accentColorRed, - ); - break; - default: - break; - } - return Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - "Firo Build Commit", - style: STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of( - context, - ) - .extension< - StackColors>()! - .textDark, - ), - ), - const SizedBox( - height: 2, - ), - SelectableText( - firoCommit, - style: indicationStyle, - ), - ], - ); - }, - ), ], ), - const SizedBox(height: 35), - Row( + const SizedBox(height: 32), + Wrap( + spacing: 64, + runSpacing: 32, children: [ - FutureBuilder( - future: commitEpicFuture, - builder: ( - context, - AsyncSnapshot snapshot, - ) { - bool commitExists = false; - bool isHead = false; - CommitStatus stateOfCommit = - CommitStatus.notLoaded; - - if (snapshot.connectionState == - ConnectionState.done && - snapshot.hasData) { - commitExists = - snapshot.data![0] as bool; - isHead = - snapshot.data![1] as bool; - if (commitExists && isHead) { - stateOfCommit = - CommitStatus.isHead; - } else if (commitExists) { - stateOfCommit = CommitStatus - .isOldCommit; - } else { - stateOfCommit = - CommitStatus.notACommit; - } - } - TextStyle indicationStyle = - STextStyles.itemSubtitle( + if (AppConfig.coins + .whereType() + .isNotEmpty) + FutureBuilder( + future: GitStatus + .getFiroCommitStatus(), + builder: ( context, - ); - switch (stateOfCommit) { - case CommitStatus.isHead: - indicationStyle = - STextStyles - .itemSubtitle( - context, - ).copyWith( - color: Theme.of( - context, - ) - .extension< - StackColors>()! - .accentColorGreen, - ); - break; - case CommitStatus.isOldCommit: - indicationStyle = - STextStyles - .itemSubtitle( - context, - ).copyWith( - color: Theme.of( - context, - ) - .extension< - StackColors>()! - .accentColorYellow, - ); - break; - case CommitStatus.notACommit: - indicationStyle = - STextStyles - .itemSubtitle( - context, - ).copyWith( - color: Theme.of( - context, - ) - .extension< - StackColors>()! - .accentColorRed, - ); - break; - default: - break; - } - return Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - "Epic Cash Build Commit", - style: STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of( - context, - ) - .extension< - StackColors>()! - .textDark, - ), - ), - const SizedBox( - height: 2, - ), - SelectableText( - epicCashCommit, - style: indicationStyle, - ), - ], - ); - }, - ), - const SizedBox( - width: 105, - ), - FutureBuilder( - future: commitMoneroFuture, - builder: ( - context, - AsyncSnapshot snapshot, - ) { - bool commitExists = false; - bool isHead = false; - CommitStatus stateOfCommit = - CommitStatus.notLoaded; + AsyncSnapshot + snapshot, + ) { + CommitStatus stateOfCommit = + CommitStatus.notLoaded; - if (snapshot.connectionState == - ConnectionState.done && - snapshot.hasData) { - commitExists = - snapshot.data![0] as bool; - isHead = - snapshot.data![1] as bool; - if (commitExists && isHead) { + if (snapshot.connectionState == + ConnectionState + .done && + snapshot.hasData) { stateOfCommit = - CommitStatus.isHead; - } else if (commitExists) { - stateOfCommit = CommitStatus - .isOldCommit; - } else { - stateOfCommit = - CommitStatus.notACommit; + snapshot.data!; } - } - TextStyle indicationStyle = - STextStyles.itemSubtitle( - context, - ); - switch (stateOfCommit) { - case CommitStatus.isHead: - indicationStyle = - STextStyles - .itemSubtitle( - context, - ).copyWith( - color: Theme.of( - context, - ) - .extension< - StackColors>()! - .accentColorGreen, - ); - break; - case CommitStatus.isOldCommit: - indicationStyle = - STextStyles - .itemSubtitle( - context, - ).copyWith( - color: Theme.of( - context, - ) - .extension< - StackColors>()! - .accentColorYellow, - ); - break; - case CommitStatus.notACommit: - indicationStyle = - STextStyles - .itemSubtitle( - context, - ).copyWith( - color: Theme.of( - context, - ) - .extension< - StackColors>()! - .accentColorRed, - ); - break; - default: - break; - } - return Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - "Monero Build Commit", - style: STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of( + + return Column( + mainAxisSize: + MainAxisSize.min, + crossAxisAlignment: + CrossAxisAlignment + .start, + children: [ + Text( + "Firo Build Commit", + style: STextStyles + .desktopTextExtraExtraSmall( context, - ) - .extension< - StackColors>()! - .textDark, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .textDark, + ), ), - ), - const SizedBox( - height: 2, - ), - SelectableText( - moneroCommit, - style: indicationStyle, - ), - ], - ); - }, - ), + const SizedBox( + height: 2, + ), + SelectableText( + GitStatus.firoCommit, + style: GitStatus + .styleForStatus( + stateOfCommit, + context, + ), + ), + ], + ); + }, + ), + if (AppConfig.coins + .whereType() + .isNotEmpty) + FutureBuilder( + future: GitStatus + .getEpicCommitStatus(), + builder: ( + context, + AsyncSnapshot + snapshot, + ) { + CommitStatus stateOfCommit = + CommitStatus.notLoaded; + + if (snapshot.connectionState == + ConnectionState + .done && + snapshot.hasData) { + stateOfCommit = + snapshot.data!; + } + + return Column( + mainAxisSize: + MainAxisSize.min, + crossAxisAlignment: + CrossAxisAlignment + .start, + children: [ + Text( + "Epic Cash Build Commit", + style: STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .textDark, + ), + ), + const SizedBox( + height: 2, + ), + SelectableText( + GitStatus + .epicCashCommit, + style: GitStatus + .styleForStatus( + stateOfCommit, + context, + ), + ), + ], + ); + }, + ), + if (AppConfig.coins + .whereType() + .isNotEmpty) + FutureBuilder( + future: GitStatus + .getMoneroCommitStatus(), + builder: ( + context, + AsyncSnapshot + snapshot, + ) { + CommitStatus stateOfCommit = + CommitStatus.notLoaded; + + if (snapshot.connectionState == + ConnectionState + .done && + snapshot.hasData) { + stateOfCommit = + snapshot.data!; + } + return Column( + mainAxisSize: + MainAxisSize.min, + crossAxisAlignment: + CrossAxisAlignment + .start, + children: [ + Text( + "Monero Build Commit", + style: STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .textDark, + ), + ), + const SizedBox( + height: 2, + ), + SelectableText( + GitStatus.moneroCommit, + style: GitStatus + .styleForStatus( + stateOfCommit, + context, + ), + ), + ], + ); + }, + ), ], ), const SizedBox(height: 35), @@ -741,32 +487,39 @@ class DesktopAboutView extends ConsumerWidget { ), ], ), - const SizedBox(height: 25), - Row( - children: [ - Text( - "Tezos functionality:", - style: STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of(context) - .extension()! - .textDark, + if (AppConfig.coins + .whereType() + .isNotEmpty) + const SizedBox(height: 25), + if (AppConfig.coins + .whereType() + .isNotEmpty) + Row( + children: [ + Text( + "Tezos functionality:", + style: STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textDark, + ), ), - ), - CustomTextButton( - text: "Powered by TzKT API", - onTap: () { - launchUrl( - Uri.parse("https://tzkt.io"), - mode: LaunchMode - .externalApplication, - ); - }, - ), - ], - ), + CustomTextButton( + text: "Powered by TzKT API", + onTap: () { + launchUrl( + Uri.parse( + "https://tzkt.io"), + mode: LaunchMode + .externalApplication, + ); + }, + ), + ], + ), ], ); }, diff --git a/lib/utilities/git_status.dart b/lib/utilities/git_status.dart new file mode 100644 index 000000000..cf6eb193e --- /dev/null +++ b/lib/utilities/git_status.dart @@ -0,0 +1,206 @@ +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:flutter_libepiccash/git_versions.dart' as epic_versions; +import 'package:flutter_libmonero/git_versions.dart' as monero_versions; +import 'package:http/http.dart'; +import 'package:lelantus/git_versions.dart' as firo_versions; + +import '../../../themes/stack_colors.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/text_styles.dart'; + +const kGithubAPI = "https://api.github.com"; +const kGithubSearch = "/search/commits"; +const kGithubHead = "/repos"; + +enum CommitStatus { isHead, isOldCommit, notACommit, notLoaded } + +abstract class GitStatus { + static String get firoCommit => firo_versions.getPluginVersion(); + static String get epicCashCommit => epic_versions.getPluginVersion(); + static String get moneroCommit => monero_versions.getPluginVersion(); + + static CommitStatus? _cachedFiroStatus; + static Future getFiroCommitStatus() async { + if (_cachedFiroStatus != null) { + return _cachedFiroStatus!; + } + + final List results = await Future.wait([ + _doesCommitExist("cypherstack", "flutter_liblelantus", firoCommit), + _isHeadCommit("cypherstack", "flutter_liblelantus", "main", firoCommit), + ]); + + final commitExists = results[0]; + final commitIsHead = results[1]; + + if (commitExists && commitIsHead) { + _cachedFiroStatus = CommitStatus.isHead; + } else if (commitExists) { + _cachedFiroStatus = CommitStatus.isOldCommit; + } else { + _cachedFiroStatus = CommitStatus.notACommit; + } + + return _cachedFiroStatus!; + } + + static CommitStatus? _cachedEpicStatus; + static Future getEpicCommitStatus() async { + if (_cachedEpicStatus != null) { + return _cachedEpicStatus!; + } + + final List results = await Future.wait([ + _doesCommitExist("cypherstack", "flutter_libepiccash", epicCashCommit), + _isHeadCommit( + "cypherstack", + "flutter_libepiccash", + "main", + epicCashCommit, + ), + ]); + + final commitExists = results[0]; + final commitIsHead = results[1]; + + if (commitExists && commitIsHead) { + _cachedEpicStatus = CommitStatus.isHead; + } else if (commitExists) { + _cachedEpicStatus = CommitStatus.isOldCommit; + } else { + _cachedEpicStatus = CommitStatus.notACommit; + } + + return _cachedEpicStatus!; + } + + static CommitStatus? _cachedMoneroStatus; + static Future getMoneroCommitStatus() async { + if (_cachedMoneroStatus != null) { + return _cachedMoneroStatus!; + } + + final List results = await Future.wait([ + _doesCommitExist("cypherstack", "flutter_libmonero", moneroCommit), + _isHeadCommit("cypherstack", "flutter_libmonero", "main", moneroCommit), + ]); + + final commitExists = results[0]; + final commitIsHead = results[1]; + + if (commitExists && commitIsHead) { + _cachedMoneroStatus = CommitStatus.isHead; + } else if (commitExists) { + _cachedMoneroStatus = CommitStatus.isOldCommit; + } else { + _cachedMoneroStatus = CommitStatus.notACommit; + } + + return _cachedMoneroStatus!; + } + + static TextStyle styleForStatus(CommitStatus status, BuildContext context) { + final Color color; + switch (status) { + case CommitStatus.isHead: + color = Theme.of( + context, + ).extension()!.accentColorGreen; + break; + case CommitStatus.isOldCommit: + color = Theme.of( + context, + ).extension()!.accentColorYellow; + break; + case CommitStatus.notACommit: + color = Theme.of( + context, + ).extension()!.accentColorRed; + break; + default: + return STextStyles.itemSubtitle( + context, + ); + } + + return STextStyles.itemSubtitle( + context, + ).copyWith(color: color); + } + + static Future _doesCommitExist( + String organization, + String project, + String commit, + ) async { + Logging.instance.log("doesCommitExist", level: LogLevel.Info); + final Client client = Client(); + try { + final uri = Uri.parse( + "$kGithubAPI$kGithubHead/$organization/$project/commits/$commit", + ); + + final commitQuery = await client.get( + uri, + headers: {'Content-Type': 'application/json'}, + ); + + final response = jsonDecode(commitQuery.body.toString()); + Logging.instance.log( + "doesCommitExist $project $commit $response", + level: LogLevel.Info, + ); + bool isThereCommit; + try { + isThereCommit = response['sha'] == commit; + Logging.instance + .log("isThereCommit $isThereCommit", level: LogLevel.Info); + return isThereCommit; + } catch (e, s) { + return false; + } + } catch (e, s) { + Logging.instance.log("$e $s", level: LogLevel.Error); + return false; + } + } + + static Future _isHeadCommit( + String organization, + String project, + String branch, + String commit, + ) async { + Logging.instance.log("doesCommitExist", level: LogLevel.Info); + final Client client = Client(); + try { + final uri = Uri.parse( + "$kGithubAPI$kGithubHead/$organization/$project/commits/$branch", + ); + + final commitQuery = await client.get( + uri, + headers: {'Content-Type': 'application/json'}, + ); + + final response = jsonDecode(commitQuery.body.toString()); + Logging.instance.log( + "isHeadCommit $project $commit $branch $response", + level: LogLevel.Info, + ); + bool isHead; + try { + isHead = response['sha'] == commit; + Logging.instance.log("isHead $isHead", level: LogLevel.Info); + return isHead; + } catch (e, s) { + return false; + } + } catch (e, s) { + Logging.instance.log("$e $s", level: LogLevel.Error); + return false; + } + } +} From a3a1ddeeafec586ae9018367cad565b8c66433cc Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 24 May 2024 12:10:13 -0600 Subject: [PATCH 133/318] ignore unsupported coins from SWB files on restore --- .../helpers/restore_create_backup.dart | 123 ++++++++++++------ 1 file changed, 81 insertions(+), 42 deletions(-) diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart index fbe63d398..8a635e39a 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart @@ -46,7 +46,7 @@ import '../../../../../utilities/format.dart'; import '../../../../../utilities/logger.dart'; import '../../../../../utilities/prefs.dart'; import '../../../../../utilities/util.dart'; -import '../../../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../../wallets/crypto_currency/intermediate/frost_currency.dart'; import '../../../../../wallets/isar/models/frost_wallet_info.dart'; import '../../../../../wallets/isar/models/wallet_info.dart'; @@ -777,7 +777,11 @@ abstract class SWB { final coin = AppConfig.getCryptoCurrencyFor( walletbackup['coinName'] as String, - )!; + ); + + if (coin == null) { + continue; + } final walletName = walletbackup['name'] as String; final walletId = oldToNewWalletIdMap[walletbackup["id"] as String]!; @@ -963,14 +967,23 @@ abstract class SWB { // pre restore state has contact if (contact != null) { // ensure this contact's data matches the pre restore state - List addresses = []; - for (var address in (contact['addresses'] as List)) { + final List addresses = []; + for (final address in (contact['addresses'] as List)) { + final entry = ContactAddressEntry() + ..coinName = address['coin'] as String + ..address = address['address'] as String + ..label = address['label'] as String + ..other = address['other'] as String?; + + try { + entry.coin; + } catch (_) { + // coin not supported so ignore this entry + continue; + } + addresses.add( - ContactAddressEntry() - ..coinName = address['coin'] as String - ..address = address['address'] as String - ..label = address['label'] as String - ..other = address['other'] as String?, + entry, ); } await addressBookService.editContact( @@ -1013,19 +1026,20 @@ abstract class SWB { // node existed before restore attempt // revert to pre restore node await nodeService.edit( - node.copyWith( - host: nodeData['host'] as String, - port: nodeData['port'] as int, - name: nodeData['name'] as String, - useSSL: nodeData['useSSL'] == "false" ? false : true, - enabled: nodeData['enabled'] == "false" ? false : true, - coinName: nodeData['coinName'] as String, - loginName: nodeData['loginName'] as String?, - isFailover: nodeData['isFailover'] as bool, - isDown: nodeData['isDown'] as bool, - ), - nodeData['password'] as String?, - true); + node.copyWith( + host: nodeData['host'] as String, + port: nodeData['port'] as int, + name: nodeData['name'] as String, + useSSL: nodeData['useSSL'] == "false" ? false : true, + enabled: nodeData['enabled'] == "false" ? false : true, + coinName: nodeData['coinName'] as String, + loginName: nodeData['loginName'] as String?, + isFailover: nodeData['isFailover'] as bool, + isDown: nodeData['isDown'] as bool, + ), + nodeData['password'] as String?, + true, + ); } else { await nodeService.delete(node.id, true); } @@ -1036,10 +1050,17 @@ abstract class SWB { if (primaryNodes != null) { for (final node in primaryNodes) { try { - await nodeService.setPrimaryNodeFor( - coin: AppConfig.getCryptoCurrencyByPrettyName( + final CryptoCurrency coin; + try { + coin = AppConfig.getCryptoCurrencyByPrettyName( node['coinName'] as String, - ), + ); + } catch (_) { + continue; + } + + await nodeService.setPrimaryNodeFor( + coin: coin, node: nodeService.getNodeById(id: node['id'] as String)!, ); } catch (e, s) { @@ -1175,23 +1196,34 @@ abstract class SWB { for (final contact in addressBookEntries) { final List addresses = []; for (final address in (contact['addresses'] as List)) { + final entry = ContactAddressEntry() + ..coinName = address['coin'] as String + ..address = address['address'] as String + ..label = address['label'] as String + ..other = address['other'] as String?; + + try { + entry.coin; + } catch (_) { + // coin not supported so ignore this entry + continue; + } + addresses.add( - ContactAddressEntry() - ..coinName = address['coin'] as String - ..address = address['address'] as String - ..label = address['label'] as String - ..other = address['other'] as String?, + entry, + ); + } + if (addresses.isNotEmpty) { + await addressBookService.addContact( + ContactEntry( + emojiChar: contact['emoji'] as String?, + name: contact['name'] as String, + addresses: addresses, + isFavorite: contact['isFavorite'] as bool, + customId: contact['id'] as String, + ), ); } - await addressBookService.addContact( - ContactEntry( - emojiChar: contact['emoji'] as String?, - name: contact['name'] as String, - addresses: addresses, - isFavorite: contact['isFavorite'] as bool, - customId: contact['id'] as String, - ), - ); } } @@ -1225,11 +1257,18 @@ abstract class SWB { } if (primaryNodes != null) { for (final node in primaryNodes) { + final CryptoCurrency coin; + try { + coin = AppConfig.getCryptoCurrencyByPrettyName( + node['coinName'] as String, + ); + } catch (_) { + continue; + } + try { await nodeService.setPrimaryNodeFor( - coin: AppConfig.getCryptoCurrencyByPrettyName( - node['coinName'] as String, - ), + coin: coin, node: nodeService.getNodeById(id: node['id'] as String)!, ); } catch (e, s) { From f1b0e4e11938771663b7c6afee06044bba19a1fa Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 24 May 2024 13:40:20 -0600 Subject: [PATCH 134/318] only fetch prices for enabled coins --- lib/services/price.dart | 46 ++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/lib/services/price.dart b/lib/services/price.dart index 99be38ef0..83470c125 100644 --- a/lib/services/price.dart +++ b/lib/services/price.dart @@ -13,16 +13,40 @@ import 'dart:convert'; import 'package:decimal/decimal.dart'; import 'package:flutter/foundation.dart'; +import 'package:tuple/tuple.dart'; + import '../app_config.dart'; import '../db/hive/db.dart'; import '../networking/http.dart'; -import 'tor_service.dart'; import '../utilities/logger.dart'; import '../utilities/prefs.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; -import 'package:tuple/tuple.dart'; +import 'tor_service.dart'; class PriceAPI { + // coingecko coin ids + static const Map _coinToIdMap = { + Bitcoin: "bitcoin", + BitcoinFrost: "bitcoin", + Litecoin: "litecoin", + Bitcoincash: "bitcoin-cash", + Dogecoin: "dogecoin", + Epiccash: "epic-cash", + Ecash: "ecash", + Ethereum: "ethereum", + Firo: "zcoin", + Monero: "monero", + Particl: "particl", + Peercoin: "peercoin", + Solana: "solana", + Stellar: "stellar", + Tezos: "tezos", + Wownero: "wownero", + Namecoin: "namecoin", + Nano: "nano", + Banano: "banano", + }; + static const refreshInterval = 60; // initialize to older than current time minus at least refreshInterval @@ -83,6 +107,12 @@ class PriceAPI { return result; } + String get _coinIds => AppConfig.coins + .where((e) => e.network == CryptoCurrencyNetwork.main) + .map((e) => _coinToIdMap[e.runtimeType]) + .where((e) => e != null) + .join(","); + Future>> getPricesAnd24hChange({ required String baseCurrency, }) async { @@ -107,11 +137,10 @@ class PriceAPI { final Map> result = {}; try { final uri = Uri.parse( - "https://api.coingecko.com/api/v3/coins/markets?vs_currency" - "=${baseCurrency.toLowerCase()}" - "&ids=monero,bitcoin,litecoin,ecash,epic-cash,zcoin,dogecoin," - "bitcoin-cash,namecoin,wownero,ethereum,particl,nano,banano,stellar,tezos,solana" - "&order=market_cap_desc&per_page=50&page=1&sparkline=false"); + "https://api.coingecko.com/api/v3/coins/markets?vs_currency" + "=${baseCurrency.toLowerCase()}&ids=$_coinIds&order=market_cap_desc" + "&per_page=50&page=1&sparkline=false", + ); final coinGeckoResponse = await client.get( url: uri, @@ -191,7 +220,8 @@ class PriceAPI { }) async { final Map> tokenPrices = {}; - if (contractAddresses.isEmpty) return tokenPrices; + if (AppConfig.coins.whereType().isEmpty || + contractAddresses.isEmpty) return tokenPrices; final externalCalls = Prefs.instance.externalCalls; if ((!Logger.isTestEnv && !externalCalls) || From fc631bf866bfef4f35e2689e426b411e02014a5c Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 24 May 2024 13:56:14 -0600 Subject: [PATCH 135/318] add current commit of build to about --- lib/app_config.dart | 1 + .../global_settings_view/about_view.dart | 23 ++++++++++++ .../settings_menu/desktop_about_view.dart | 36 ++++++++++++++++++- lib/utilities/git_status.dart | 3 ++ scripts/app_config/configure_stack_duo.sh | 5 +++ scripts/app_config/configure_stack_wallet.sh | 5 ++- 6 files changed, 71 insertions(+), 2 deletions(-) diff --git a/lib/app_config.dart b/lib/app_config.dart index 3cd5897f5..4b7003177 100644 --- a/lib/app_config.dart +++ b/lib/app_config.dart @@ -10,6 +10,7 @@ abstract class AppConfig { static const suffix = _suffix; static String get appDefaultDataDirName => _appDataDirName; + static String get commitHash => _commitHash; static ({String light, String dark})? get appIconAsset => _appIconAsset; diff --git a/lib/pages/settings_views/global_settings_view/about_view.dart b/lib/pages/settings_views/global_settings_view/about_view.dart index 13005a8fb..f4c3eb7ec 100644 --- a/lib/pages/settings_views/global_settings_view/about_view.dart +++ b/lib/pages/settings_views/global_settings_view/about_view.dart @@ -134,6 +134,29 @@ class AboutView extends ConsumerWidget { const SizedBox( height: 12, ), + RoundedWhiteContainer( + child: Column( + crossAxisAlignment: + CrossAxisAlignment.stretch, + children: [ + Text( + "Build commit", + style: STextStyles.titleBold12(context), + ), + const SizedBox( + height: 4, + ), + SelectableText( + GitStatus.appCommitHash, + style: + STextStyles.itemSubtitle(context), + ), + ], + ), + ), + const SizedBox( + height: 12, + ), RoundedWhiteContainer( child: Column( crossAxisAlignment: diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index 883edd59b..7cd74d3af 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -207,7 +207,7 @@ class DesktopAboutView extends ConsumerWidget { ], ), const SizedBox( - width: 64, + width: 16, ), Column( mainAxisSize: MainAxisSize.min, @@ -240,6 +240,40 @@ class DesktopAboutView extends ConsumerWidget { ), ], ), + const SizedBox( + width: 16, + ), + Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Build commit", + style: STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .textDark, + ), + ), + const SizedBox( + height: 2, + ), + SelectableText( + GitStatus.appCommitHash, + style: + STextStyles.itemSubtitle( + context, + ), + ), + ], + ), ], ), const SizedBox(height: 32), diff --git a/lib/utilities/git_status.dart b/lib/utilities/git_status.dart index cf6eb193e..818660427 100644 --- a/lib/utilities/git_status.dart +++ b/lib/utilities/git_status.dart @@ -9,6 +9,7 @@ import 'package:lelantus/git_versions.dart' as firo_versions; import '../../../themes/stack_colors.dart'; import '../../../utilities/logger.dart'; import '../../../utilities/text_styles.dart'; +import '../app_config.dart'; const kGithubAPI = "https://api.github.com"; const kGithubSearch = "/search/commits"; @@ -21,6 +22,8 @@ abstract class GitStatus { static String get epicCashCommit => epic_versions.getPluginVersion(); static String get moneroCommit => monero_versions.getPluginVersion(); + static String get appCommitHash => AppConfig.commitHash; + static CommitStatus? _cachedFiroStatus; static Future getFiroCommitStatus() async { if (_cachedFiroStatus != null) { diff --git a/scripts/app_config/configure_stack_duo.sh b/scripts/app_config/configure_stack_duo.sh index 138c2c432..16b68a030 100755 --- a/scripts/app_config/configure_stack_duo.sh +++ b/scripts/app_config/configure_stack_duo.sh @@ -23,6 +23,10 @@ else sed -i "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" "${PUBSPEC_FILE}" fi +pushd "${APP_PROJECT_ROOT_DIR}" +BUILT_COMMIT_HASH=$(git log -1 --pretty=format:"%H") +popd + APP_CONFIG_DART_FILE="${APP_PROJECT_ROOT_DIR}/lib/app_config.g.dart" rm -f "$APP_CONFIG_DART_FILE" cat << EOF > "$APP_CONFIG_DART_FILE" @@ -34,6 +38,7 @@ const _prefix = "Stack"; const _separator = " "; const _suffix = "Duo"; const _appDataDirName = "stackduo"; +const _commitHash = "$BUILT_COMMIT_HASH"; const ({String light, String dark})? _appIconAsset = ( light: "assets/in_app_logo_icons/stack-duo-icon_light.svg", diff --git a/scripts/app_config/configure_stack_wallet.sh b/scripts/app_config/configure_stack_wallet.sh index 7588b269b..cd0b463b5 100755 --- a/scripts/app_config/configure_stack_wallet.sh +++ b/scripts/app_config/configure_stack_wallet.sh @@ -23,7 +23,9 @@ else sed -i "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" "${PUBSPEC_FILE}" fi - +pushd "${APP_PROJECT_ROOT_DIR}" +BUILT_COMMIT_HASH=$(git log -1 --pretty=format:"%H") +popd APP_CONFIG_DART_FILE="${APP_PROJECT_ROOT_DIR}/lib/app_config.g.dart" rm -f "$APP_CONFIG_DART_FILE" @@ -36,6 +38,7 @@ const _prefix = "Stack"; const _separator = " "; const _suffix = "Wallet"; const _appDataDirName = "stackwallet"; +const _commitHash = "$BUILT_COMMIT_HASH"; const ({String light, String dark})? _appIconAsset = null; From abbe772e437ad455139fa44764b9badc2490fb2e Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 24 May 2024 14:16:41 -0600 Subject: [PATCH 136/318] playstore icon --- .gitignore | 3 ++- .../stack_duo/app_icon-playstore.png | Bin 0 -> 12284 bytes .../stack_wallet}/app_icon-playstore.png | Bin scripts/build_app.sh | 6 ++++++ 4 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 asset_sources/other/playstore_icon/stack_duo/app_icon-playstore.png rename {android/app/src/main => asset_sources/other/playstore_icon/stack_wallet}/app_icon-playstore.png (100%) diff --git a/.gitignore b/.gitignore index c68dd4e33..0418c9d7f 100644 --- a/.gitignore +++ b/.gitignore @@ -66,6 +66,7 @@ flutter_libsparkmobile.dll secp256k1.dll /libisar.so /lib/app_config.g.dart +/android/app/src/main/app_icon-playstore.png ## other generated project files @@ -94,4 +95,4 @@ pubspec.yaml /windows/runner/Runner.rc /windows/runner/main.cpp /windows/CMakeLists.txt -/windows/runner/resources/app_icon.ico \ No newline at end of file +/windows/runner/resources/app_icon.ico diff --git a/asset_sources/other/playstore_icon/stack_duo/app_icon-playstore.png b/asset_sources/other/playstore_icon/stack_duo/app_icon-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..3078ee9e27480f786820d7ab3a5722c85e4ed735 GIT binary patch literal 12284 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 Z*qJWTyshl;9l%i` Date: Fri, 24 May 2024 14:20:53 -0600 Subject: [PATCH 137/318] imports cleanup --- lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart b/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart index 0ed7c55b7..3be7b8edb 100644 --- a/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart +++ b/lib/wallets/wallet/impl/sub_wallets/eth_token_wallet.dart @@ -2,6 +2,8 @@ import 'dart:convert'; import 'package:ethereum_addresses/ethereum_addresses.dart'; import 'package:isar/isar.dart'; +import 'package:web3dart/web3dart.dart' as web3dart; + import '../../../../dto/ethereum/eth_token_tx_dto.dart'; import '../../../../dto/ethereum/eth_token_tx_extra_dto.dart'; import '../../../../models/balance.dart'; @@ -19,9 +21,8 @@ import '../../../../utilities/extensions/extensions.dart'; import '../../../../utilities/logger.dart'; import '../../../isar/models/token_wallet_info.dart'; import '../../../models/tx_data.dart'; -import '../ethereum_wallet.dart'; import '../../wallet.dart'; -import 'package:web3dart/web3dart.dart' as web3dart; +import '../ethereum_wallet.dart'; class EthTokenWallet extends Wallet { @override From aaded93d1f1812a52fadd934e109a1d72cfc2d66 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 27 May 2024 10:12:36 -0600 Subject: [PATCH 138/318] desktop save logs implementation --- .../advanced_settings/debug_info_dialog.dart | 120 ++++++++++++++---- 1 file changed, 97 insertions(+), 23 deletions(-) diff --git a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/debug_info_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/debug_info_dialog.dart index 9ce77873e..177898180 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/debug_info_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/debug_info_dialog.dart @@ -10,16 +10,20 @@ import 'dart:async'; +import 'package:event_bus/event_bus.dart'; +import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../../models/isar/models/log.dart'; import '../../../../notifications/show_flush_bar.dart'; import '../../../../providers/global/debug_service_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; import '../../../../utilities/constants.dart'; -import '../../../../utilities/enums/log_level_enum.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/show_loading.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; import '../../../../widgets/desktop/desktop_dialog.dart'; @@ -28,6 +32,7 @@ import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/icon_widgets/x_icon.dart'; import '../../../../widgets/rounded_container.dart'; +import '../../../../widgets/stack_dialog.dart'; import '../../../../widgets/stack_text_field.dart'; import '../../../../widgets/textfield_icon_button.dart'; @@ -52,7 +57,8 @@ class _DebugInfoDialog extends ConsumerState { } return unfiltered .where( - (e) => (e.toString().toLowerCase().contains(filter.toLowerCase()))) + (e) => (e.toString().toLowerCase().contains(filter.toLowerCase())), + ) .toList(); } @@ -77,6 +83,29 @@ class _DebugInfoDialog extends ConsumerState { return null; } + bool _lock = false; + Future<(String?, bool)?> _saveFile() async { + final path = await FilePicker.platform.getDirectoryPath( + dialogTitle: "Choose Log Save Location", + lockParentWindow: true, + ); + + if (path == null) { + return null; + } + + bool logsSaved = true; + String? filename; + try { + filename = + await ref.read(debugServiceProvider).exportToFile(path, EventBus()); + } catch (e, s) { + logsSaved = false; + Logging.instance.log("$e $s", level: LogLevel.Error); + } + return (filename, logsSaved); + } + @override void initState() { searchDebugController = TextEditingController(); @@ -182,13 +211,16 @@ class _DebugInfoDialog extends ConsumerState { return [ SliverOverlapAbsorber( handle: NestedScrollView.sliverOverlapAbsorberHandleFor( - context), - sliver: SliverToBoxAdapter( + context, + ), + sliver: const SliverToBoxAdapter( child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 16, horizontal: 32), + padding: EdgeInsets.symmetric( + vertical: 16, + horizontal: 32, + ), child: Column( - children: const [], + children: [], ), ), ), @@ -198,11 +230,11 @@ class _DebugInfoDialog extends ConsumerState { body: Builder( builder: (context) { final logs = filtered( - ref.watch(debugServiceProvider - .select((value) => value.recentLogs)), - _searchTerm) - .reversed - .toList(growable: false); + ref.watch( + debugServiceProvider.select((value) => value.recentLogs), + ), + _searchTerm, + ).reversed.toList(growable: false); return CustomScrollView( reverse: true, // shrinkWrap: true, @@ -220,7 +252,8 @@ class _DebugInfoDialog extends ConsumerState { return Container( key: Key( - "log_${log.id}_${log.timestampInMillisUTC}"), + "log_${log.id}_${log.timestampInMillisUTC}", + ), decoration: BoxDecoration( color: Theme.of(context) .extension()! @@ -231,7 +264,8 @@ class _DebugInfoDialog extends ConsumerState { padding: const EdgeInsets.all(4), child: Padding( padding: const EdgeInsets.symmetric( - horizontal: 32), + horizontal: 32, + ), child: RoundedContainer( padding: const EdgeInsets.all(0), color: Theme.of(context) @@ -296,9 +330,10 @@ class _DebugInfoDialog extends ConsumerState { SelectableText( log.message, style: STextStyles.baseXS( - context) - .copyWith( - fontSize: 11.5), + context, + ).copyWith( + fontSize: 11.5, + ), ), ], ), @@ -333,12 +368,15 @@ class _DebugInfoDialog extends ConsumerState { await ref.read(debugServiceProvider).deleteAllLogs(); setState(() {}); - if (mounted) { + if (context.mounted) { Navigator.pop(context); - unawaited(showFloatingFlushBar( + unawaited( + showFloatingFlushBar( type: FlushBarType.info, context: context, - message: 'Logs cleared!')); + message: 'Logs cleared!', + ), + ); } }, ), @@ -349,11 +387,47 @@ class _DebugInfoDialog extends ConsumerState { Expanded( child: PrimaryButton( label: "Save logs to file", - onPressed: () { - // TODO: save file dialog + onPressed: () async { + if (_lock) { + return; + } + _lock = true; + try { + final results = await showLoading<(String?, bool)?>( + whileFuture: _saveFile(), + context: context, + message: "Generating logs file...", + ); + + if (results != null) { + if (results.$2) { + unawaited( + showDialog( + context: context, + builder: (context) => StackOkDialog( + title: "Logs saved to", + message: results.$1, + ), + ), + ); + } else { + unawaited( + showDialog( + context: context, + builder: (context) => StackOkDialog( + title: "Error Saving Logs", + message: results.$1, + ), + ), + ); + } + } + } finally { + _lock = false; + } }, ), - ) + ), ], ), ), From 15b39097bc30713f2d21f30778dc41c0f5a4bcd7 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 27 May 2024 11:23:56 -0600 Subject: [PATCH 139/318] update monero lib ref --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index 6e71b956c..81a4f74ea 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit 6e71b956c3801f65a662c7f140e871c246166db3 +Subproject commit 81a4f74ea068d3d1026c8e564ee9b0b28cee20c4 From aac27636ee5ae629e73b456601b201575a6cb86e Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 27 May 2024 11:24:11 -0600 Subject: [PATCH 140/318] some clean up and imports fixing from merge --- .../add_wallet_view/add_wallet_view.dart | 115 +++++++++--------- .../restore_options_view.dart | 64 +++++----- .../settings_menu/nodes_settings.dart | 3 +- lib/wallets/wallet/impl/monero_wallet.dart | 43 ++++--- lib/wallets/wallet/impl/wownero_wallet.dart | 62 ++++++---- pubspec.lock | 4 +- 6 files changed, 161 insertions(+), 130 deletions(-) diff --git a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart index 337447ba5..57f707700 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart @@ -9,7 +9,6 @@ */ import 'dart:async'; -import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -149,8 +148,10 @@ class _AddWalletViewState extends ConsumerState { if (contracts.isEmpty) { contracts.addAll(DefaultTokens.list); - MainDB.instance.putEthContracts(contracts).then((value) => - ref.read(priceAnd24hChangeNotifierProvider).updatePrice()); + MainDB.instance.putEthContracts(contracts).then( + (value) => + ref.read(priceAnd24hChangeNotifierProvider).updatePrice(), + ); } tokenEntities.addAll(contracts.map((e) => EthTokenEntity(e))); @@ -349,63 +350,63 @@ class _AddWalletViewState extends ConsumerState { height: 16, ), ClipRRect( - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius, - ), - child: Semantics( - label: - "Search Text Field. Inputs Text To Search In Wallets.", - excludeSemantics: true, - child: TextField( - autofocus: isDesktop, - autocorrect: !isDesktop, - enableSuggestions: !isDesktop, - controller: _searchFieldController, - focusNode: _searchFocusNode, - onChanged: (value) => - setState(() => _searchTerm = value), - style: STextStyles.field(context), - decoration: standardInputDecoration( - "Search", - _searchFocusNode, - context, - desktopMed: isDesktop, - ).copyWith( - prefixIcon: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 10, - vertical: 16, - ), - child: SvgPicture.asset( - Assets.svg.search, - width: 16, - height: 16, - ), + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), + child: Semantics( + label: + "Search Text Field. Inputs Text To Search In Wallets.", + excludeSemantics: true, + child: TextField( + autofocus: isDesktop, + autocorrect: !isDesktop, + enableSuggestions: !isDesktop, + controller: _searchFieldController, + focusNode: _searchFocusNode, + onChanged: (value) => + setState(() => _searchTerm = value), + style: STextStyles.field(context), + decoration: standardInputDecoration( + "Search", + _searchFocusNode, + context, + desktopMed: isDesktop, + ).copyWith( + prefixIcon: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 10, + vertical: 16, + ), + child: SvgPicture.asset( + Assets.svg.search, + width: 16, + height: 16, ), - suffixIcon: _searchFieldController.text.isNotEmpty - ? Padding( - padding: const EdgeInsets.only(right: 0), - child: UnconstrainedBox( - child: Row( - children: [ - TextFieldIconButton( - child: const XIcon(), - onTap: () async { - setState(() { - _searchFieldController.text = - ""; - _searchTerm = ""; - }); - }, - ), - ], - ), - ), - ) - : null, ), + suffixIcon: _searchFieldController.text.isNotEmpty + ? Padding( + padding: const EdgeInsets.only(right: 0), + child: UnconstrainedBox( + child: Row( + children: [ + TextFieldIconButton( + child: const XIcon(), + onTap: () async { + setState(() { + _searchFieldController.text = ""; + _searchTerm = ""; + }); + }, + ), + ], + ), + ), + ) + : null, ), - )), + ), + ), + ), const SizedBox( height: 10, ), diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart index 18af8ce55..e04ed9959 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart @@ -12,13 +12,8 @@ import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import '../../create_or_restore_wallet_view/sub_widgets/coin_image.dart'; -import 'sub_widgets/mobile_mnemonic_length_selector.dart'; -import 'sub_widgets/restore_from_date_picker.dart'; -import 'sub_widgets/restore_options_next_button.dart'; -import 'sub_widgets/restore_options_platform_layout.dart'; -import '../restore_wallet_view.dart'; -import '../sub_widgets/mnemonic_word_count_select_sheet.dart'; +import 'package:tuple/tuple.dart'; + import '../../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; import '../../../../providers/ui/verify_recovery_phrase/mnemonic_word_count_state_provider.dart'; import '../../../../themes/stack_colors.dart'; @@ -27,9 +22,6 @@ import '../../../../utilities/constants.dart'; import '../../../../utilities/format.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; -import '../../../../wallets/crypto_currency/coins/epiccash.dart'; -import '../../../../wallets/crypto_currency/coins/monero.dart'; -import '../../../../wallets/crypto_currency/coins/wownero.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../widgets/conditional_parent.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; @@ -39,7 +31,13 @@ import '../../../../widgets/desktop/desktop_scaffold.dart'; import '../../../../widgets/expandable.dart'; import '../../../../widgets/rounded_white_container.dart'; import '../../../../widgets/stack_text_field.dart'; -import 'package:tuple/tuple.dart'; +import '../../create_or_restore_wallet_view/sub_widgets/coin_image.dart'; +import '../restore_wallet_view.dart'; +import '../sub_widgets/mnemonic_word_count_select_sheet.dart'; +import 'sub_widgets/mobile_mnemonic_length_selector.dart'; +import 'sub_widgets/restore_from_date_picker.dart'; +import 'sub_widgets/restore_options_next_button.dart'; +import 'sub_widgets/restore_options_platform_layout.dart'; class RestoreOptionsView extends ConsumerStatefulWidget { const RestoreOptionsView({ @@ -220,8 +218,8 @@ class _RestoreOptionsViewState extends ConsumerState { height: isDesktop ? 40 : 24, ), if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25) || + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin is Epiccash || (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == @@ -237,9 +235,9 @@ class _RestoreOptionsViewState extends ConsumerState { : STextStyles.smallMed12(context), textAlign: TextAlign.left, ), - if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25) || + if ((coin is Monero && + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin is Epiccash || (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == @@ -247,9 +245,9 @@ class _RestoreOptionsViewState extends ConsumerState { SizedBox( height: isDesktop ? 16 : 8, ), - if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25) || + if ((coin is Monero && + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin is Epiccash || (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == @@ -259,8 +257,9 @@ class _RestoreOptionsViewState extends ConsumerState { onTap: chooseDate, controller: _dateController, ), - if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == 25) || + if ((coin is Monero && + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin is Epiccash || (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == @@ -272,8 +271,8 @@ class _RestoreOptionsViewState extends ConsumerState { controller: _dateController, ), if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25) || + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin is Epiccash || (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == @@ -281,9 +280,9 @@ class _RestoreOptionsViewState extends ConsumerState { const SizedBox( height: 8, ), - if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25) || + if ((coin is Monero && + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin is Epiccash || (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == @@ -304,9 +303,9 @@ class _RestoreOptionsViewState extends ConsumerState { ), ), ), - if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25) || + if ((coin is Monero && + ref.watch(mnemonicWordCountStateProvider.state).state == + 25) || coin is Epiccash || (coin is Wownero && ref.watch(mnemonicWordCountStateProvider.state).state == @@ -411,8 +410,8 @@ class _RestoreOptionsViewState extends ConsumerState { "Advanced", style: isDesktop ? STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark3, @@ -474,7 +473,8 @@ class _RestoreOptionsViewState extends ConsumerState { ), GestureDetector( key: const Key( - "mnemonicPassphraseFieldShowPasswordButtonKey"), + "mnemonicPassphraseFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; diff --git a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart index 366111014..517073f4c 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart @@ -13,10 +13,11 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + +import '../../../app_config.dart'; import '../../../pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart'; import '../../../providers/providers.dart'; import '../../../route_generator.dart'; -import '../../../app_config.dart'; import '../../../themes/coin_icon_provider.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; diff --git a/lib/wallets/wallet/impl/monero_wallet.dart b/lib/wallets/wallet/impl/monero_wallet.dart index cc1360292..757c553f1 100644 --- a/lib/wallets/wallet/impl/monero_wallet.dart +++ b/lib/wallets/wallet/impl/monero_wallet.dart @@ -19,15 +19,19 @@ import 'package:flutter_libmonero/core/wallet_creation_service.dart'; import 'package:flutter_libmonero/monero/monero.dart' as xmr_dart; import 'package:flutter_libmonero/view_model/send/output.dart' as monero_output; import 'package:isar/isar.dart'; +import 'package:mutex/mutex.dart'; import 'package:tuple/tuple.dart'; import '../../../db/hive/db.dart'; import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../../../services/event_bus/events/global/tor_status_changed_event.dart'; +import '../../../services/event_bus/global_event_bus.dart'; +import '../../../services/tor_service.dart'; import '../../../utilities/amount/amount.dart'; import '../../../utilities/enums/fee_rate_type_enum.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/coins/monero.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../models/tx_data.dart'; import '../intermediate/cryptonote_wallet.dart'; @@ -390,7 +394,8 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { // subtract a couple days to ensure we have a buffer for SWB final bufferedCreateHeight = xmr_dart.monero.getHeigthByDate( - date: DateTime.now().subtract(const Duration(days: 2))); + date: DateTime.now().subtract(const Duration(days: 2)), + ); await info.updateRestoreHeight( newRestoreHeight: bufferedCreateHeight, @@ -528,8 +533,9 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { CwBasedInterface.cwWalletBase?.close(); } catch (e, s) { Logging.instance.log( - "Exception rethrown from recoverFromMnemonic(): $e\n$s", - level: LogLevel.Error); + "Exception rethrown from recoverFromMnemonic(): $e\n$s", + level: LogLevel.Error, + ); rethrow; } }); @@ -586,8 +592,10 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { CwBasedInterface.cwWalletBase!.createTransaction(tmp); }); } catch (e, s) { - Logging.instance.log("Exception rethrown from prepareSend(): $e\n$s", - level: LogLevel.Warning); + Logging.instance.log( + "Exception rethrown from prepareSend(): $e\n$s", + level: LogLevel.Warning, + ); } final PendingMoneroTransaction pendingMoneroTransaction = @@ -605,8 +613,10 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { throw ArgumentError("Invalid fee rate argument provided!"); } } catch (e, s) { - Logging.instance.log("Exception rethrown from prepare send(): $e\n$s", - level: LogLevel.Info); + Logging.instance.log( + "Exception rethrown from prepare send(): $e\n$s", + level: LogLevel.Info, + ); if (e.toString().contains("Incorrect unlocked balance")) { throw Exception("Insufficient balance!"); @@ -624,17 +634,22 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { try { await txData.pendingMoneroTransaction!.commit(); Logging.instance.log( - "transaction ${txData.pendingMoneroTransaction!.id} has been sent", - level: LogLevel.Info); + "transaction ${txData.pendingMoneroTransaction!.id} has been sent", + level: LogLevel.Info, + ); return txData.copyWith(txid: txData.pendingMoneroTransaction!.id); } catch (e, s) { - Logging.instance.log("${info.name} monero confirmSend: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "${info.name} monero confirmSend: $e\n$s", + level: LogLevel.Error, + ); rethrow; } } catch (e, s) { - Logging.instance.log("Exception rethrown from confirmSend(): $e\n$s", - level: LogLevel.Info); + Logging.instance.log( + "Exception rethrown from confirmSend(): $e\n$s", + level: LogLevel.Info, + ); rethrow; } } diff --git a/lib/wallets/wallet/impl/wownero_wallet.dart b/lib/wallets/wallet/impl/wownero_wallet.dart index 95dceb31b..847b8b811 100644 --- a/lib/wallets/wallet/impl/wownero_wallet.dart +++ b/lib/wallets/wallet/impl/wownero_wallet.dart @@ -20,21 +20,24 @@ import 'package:flutter_libmonero/view_model/send/output.dart' as wownero_output; import 'package:flutter_libmonero/wownero/wownero.dart' as wow_dart; import 'package:isar/isar.dart'; +import 'package:mutex/mutex.dart'; +import 'package:tuple/tuple.dart'; + import '../../../db/hive/db.dart'; import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; import '../../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; +import '../../../services/event_bus/events/global/tor_status_changed_event.dart'; import '../../../services/event_bus/global_event_bus.dart'; +import '../../../services/tor_service.dart'; import '../../../utilities/amount/amount.dart'; import '../../../utilities/enums/fee_rate_type_enum.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/coins/wownero.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../models/tx_data.dart'; import '../intermediate/cryptonote_wallet.dart'; import '../wallet.dart'; import '../wallet_mixin_interfaces/cw_based_interface.dart'; -import 'package:tuple/tuple.dart'; class WowneroWallet extends CryptonoteWallet with CwBasedInterface { WowneroWallet(CryptoCurrencyNetwork network) : super(Wownero(network)) { @@ -524,16 +527,17 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { ); try { walletInfo = WalletInfo.external( - id: WalletBase.idFor(name, WalletType.wownero), - name: name, - type: WalletType.wownero, - isRecovery: false, - restoreHeight: credentials.height ?? 0, - date: DateTime.now(), - path: path, - dirPath: dirPath, - // TODO: find out what to put for address - address: ''); + id: WalletBase.idFor(name, WalletType.wownero), + name: name, + type: WalletType.wownero, + isRecovery: false, + restoreHeight: credentials.height ?? 0, + date: DateTime.now(), + path: path, + dirPath: dirPath, + // TODO: find out what to put for address + address: '', + ); credentials.walletInfo = walletInfo; final cwWalletCreationService = WalletCreationService( @@ -577,8 +581,9 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { CwBasedInterface.cwWalletBase?.close(); } catch (e, s) { Logging.instance.log( - "Exception rethrown from recoverFromMnemonic(): $e\n$s", - level: LogLevel.Error); + "Exception rethrown from recoverFromMnemonic(): $e\n$s", + level: LogLevel.Error, + ); rethrow; } }); @@ -636,8 +641,10 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { CwBasedInterface.cwWalletBase!.createTransaction(tmp); }); } catch (e, s) { - Logging.instance.log("Exception rethrown from prepareSend(): $e\n$s", - level: LogLevel.Warning); + Logging.instance.log( + "Exception rethrown from prepareSend(): $e\n$s", + level: LogLevel.Warning, + ); } final PendingWowneroTransaction pendingWowneroTransaction = @@ -655,8 +662,10 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { throw ArgumentError("Invalid fee rate argument provided!"); } } catch (e, s) { - Logging.instance.log("Exception rethrown from prepare send(): $e\n$s", - level: LogLevel.Info); + Logging.instance.log( + "Exception rethrown from prepare send(): $e\n$s", + level: LogLevel.Info, + ); if (e.toString().contains("Incorrect unlocked balance")) { throw Exception("Insufficient balance!"); @@ -674,17 +683,22 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { try { await txData.pendingWowneroTransaction!.commit(); Logging.instance.log( - "transaction ${txData.pendingWowneroTransaction!.id} has been sent", - level: LogLevel.Info); + "transaction ${txData.pendingWowneroTransaction!.id} has been sent", + level: LogLevel.Info, + ); return txData.copyWith(txid: txData.pendingWowneroTransaction!.id); } catch (e, s) { - Logging.instance.log("${info.name} wownero confirmSend: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "${info.name} wownero confirmSend: $e\n$s", + level: LogLevel.Error, + ); rethrow; } } catch (e, s) { - Logging.instance.log("Exception rethrown from confirmSend(): $e\n$s", - level: LogLevel.Info); + Logging.instance.log( + "Exception rethrown from confirmSend(): $e\n$s", + level: LogLevel.Info, + ); rethrow; } } diff --git a/pubspec.lock b/pubspec.lock index 9e5440f27..169fd94fb 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1742,8 +1742,8 @@ packages: dependency: "direct main" description: path: "." - ref: f31f8f857665d85338824ae171aba4c629c3ba6f - resolved-ref: f31f8f857665d85338824ae171aba4c629c3ba6f + ref: "13fa937ea9a9fc34caf047e068df9535f65c27ad" + resolved-ref: "13fa937ea9a9fc34caf047e068df9535f65c27ad" url: "https://github.com/cypherstack/tezart.git" source: git version: "2.0.5" From 5862ed1ed77f7b6ed60b553220bcdeb6f55595c8 Mon Sep 17 00:00:00 2001 From: Julian Date: Mon, 27 May 2024 13:03:41 -0600 Subject: [PATCH 141/318] update gitignore --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 7dcc2903e..365c35736 100644 --- a/.gitignore +++ b/.gitignore @@ -107,3 +107,7 @@ android/app/src/main/jniLibs/x86_64/libmonero_wallet2_api_c.so android/app/src/main/jniLibs/x86_64/libwownero_wallet2_api_c.so macos/monero_wallet2_api_c.dylib macos/wownero_wallet2_api_c.dylib +/macos/monero_libwallet2_api_c.dylib +/macos/wownero_libwallet2_api_c.dylib +/ios/monero_libwallet2_api_c.dylib +/ios/wownero_libwallet2_api_c.dylib From 88bda91d1b0ee2743d51687b4d8466c9e5763106 Mon Sep 17 00:00:00 2001 From: Julian Date: Mon, 27 May 2024 13:40:42 -0600 Subject: [PATCH 142/318] add package monero and do network check in validate address --- lib/wallets/crypto_currency/coins/monero.dart | 8 ++++++-- scripts/app_config/templates/pubspec.template | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/wallets/crypto_currency/coins/monero.dart b/lib/wallets/crypto_currency/coins/monero.dart index 8d55cff65..fa7e32886 100644 --- a/lib/wallets/crypto_currency/coins/monero.dart +++ b/lib/wallets/crypto_currency/coins/monero.dart @@ -1,4 +1,3 @@ -import 'package:cw_monero/api/wallet.dart' as monero_wallet; import 'package:monero/monero.dart' as monero; import '../../../models/node_model.dart'; @@ -46,7 +45,12 @@ class Monero extends CryptonoteCurrency { @override bool validateAddress(String address) { - return monero.Wallet_addressValid(address, 0); + switch (network) { + case CryptoCurrencyNetwork.main: + return monero.Wallet_addressValid(address, 0); + default: + throw Exception("Unsupported network: $network"); + } } @override diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index d7e07cc1a..a77535133 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -47,6 +47,11 @@ dependencies: cw_core: path: ./crypto_plugins/flutter_libmonero/cw_core + monero: + git: + url: https://git.mrcyjanek.net/mrcyjanek/monero.dart + ref: 6a17a405a1a260fa228b2f4fc94044088a4335ac + flutter_libepiccash: path: ./crypto_plugins/flutter_libepiccash From 1542bcb4d12b60c39b759027521c06c6d8a0d0b3 Mon Sep 17 00:00:00 2001 From: Julian Date: Mon, 27 May 2024 14:06:33 -0600 Subject: [PATCH 143/318] enable wownero wallet creation --- ios/Podfile.lock | 71 +------------------ .../create_wallet_button_group.dart | 64 ++++++++--------- macos/Podfile.lock | 2 +- pubspec.lock | 6 +- 4 files changed, 35 insertions(+), 108 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index fd6ae37e5..198e44f2d 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -9,63 +9,6 @@ PODS: - connectivity_plus (0.0.1): - Flutter - ReachabilitySwift - - cw_monero (0.0.2): - - cw_monero/Boost (= 0.0.2) - - cw_monero/Monero (= 0.0.2) - - cw_monero/OpenSSL (= 0.0.2) - - cw_monero/Sodium (= 0.0.2) - - cw_monero/Unbound (= 0.0.2) - - cw_shared_external - - Flutter - - cw_monero/Boost (0.0.2): - - cw_shared_external - - Flutter - - cw_monero/Monero (0.0.2): - - cw_shared_external - - Flutter - - cw_monero/OpenSSL (0.0.2): - - cw_shared_external - - Flutter - - cw_monero/Sodium (0.0.2): - - cw_shared_external - - Flutter - - cw_monero/Unbound (0.0.2): - - cw_shared_external - - Flutter - - cw_shared_external (0.0.1): - - cw_shared_external/Boost (= 0.0.1) - - cw_shared_external/OpenSSL (= 0.0.1) - - cw_shared_external/Sodium (= 0.0.1) - - Flutter - - cw_shared_external/Boost (0.0.1): - - Flutter - - cw_shared_external/OpenSSL (0.0.1): - - Flutter - - cw_shared_external/Sodium (0.0.1): - - Flutter - - cw_wownero (0.0.2): - - cw_shared_external - - cw_wownero/Boost (= 0.0.2) - - cw_wownero/OpenSSL (= 0.0.2) - - cw_wownero/Sodium (= 0.0.2) - - cw_wownero/Unbound (= 0.0.2) - - cw_wownero/Wownero (= 0.0.2) - - Flutter - - cw_wownero/Boost (0.0.2): - - cw_shared_external - - Flutter - - cw_wownero/OpenSSL (0.0.2): - - cw_shared_external - - Flutter - - cw_wownero/Sodium (0.0.2): - - cw_shared_external - - Flutter - - cw_wownero/Unbound (0.0.2): - - cw_shared_external - - Flutter - - cw_wownero/Wownero (0.0.2): - - cw_shared_external - - Flutter - device_info_plus (0.0.1): - Flutter - devicelocale (0.0.1): @@ -155,9 +98,6 @@ DEPENDENCIES: - barcode_scan2 (from `.symlinks/plugins/barcode_scan2/ios`) - coinlib_flutter (from `.symlinks/plugins/coinlib_flutter/darwin`) - connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`) - - cw_monero (from `.symlinks/plugins/cw_monero/ios`) - - cw_shared_external (from `.symlinks/plugins/cw_shared_external/ios`) - - cw_wownero (from `.symlinks/plugins/cw_wownero/ios`) - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - devicelocale (from `.symlinks/plugins/devicelocale/ios`) - file_picker (from `.symlinks/plugins/file_picker/ios`) @@ -199,12 +139,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/coinlib_flutter/darwin" connectivity_plus: :path: ".symlinks/plugins/connectivity_plus/ios" - cw_monero: - :path: ".symlinks/plugins/cw_monero/ios" - cw_shared_external: - :path: ".symlinks/plugins/cw_shared_external/ios" - cw_wownero: - :path: ".symlinks/plugins/cw_wownero/ios" device_info_plus: :path: ".symlinks/plugins/device_info_plus/ios" devicelocale: @@ -256,9 +190,6 @@ SPEC CHECKSUMS: barcode_scan2: 0af2bb63c81b4565aab6cd78278e4c0fa136dbb0 coinlib_flutter: 6abec900d67762a6e7ccfd567a3cd3ae00bbee35 connectivity_plus: 07c49e96d7fc92bc9920617b83238c4d178b446a - cw_monero: 9816991daff0e3ad0a8be140e31933b5526babd4 - cw_shared_external: 2972d872b8917603478117c9957dfca611845a92 - cw_wownero: ac53899fa5c6ff46b3fb490aa3b7ca36301fa832 device_info_plus: 7545d84d8d1b896cb16a4ff98c19f07ec4b298ea devicelocale: b22617f40038496deffba44747101255cee005b0 DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac @@ -272,7 +203,7 @@ SPEC CHECKSUMS: flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be frostdart: 4c72b69ccac2f13ede744107db046a125acce597 - integration_test: 13825b8a9334a850581300559b8839134b124670 + integration_test: ce0a3ffa1de96d1a89ca0ac26fca7ea18a749ef4 isar_flutter_libs: b69f437aeab9c521821c3f376198c4371fa21073 lelantus: 417f0221260013dfc052cae9cf4b741b6479edba local_auth: 1740f55d7af0a2e2a8684ce225fe79d8931e808c diff --git a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart index 1dabb24d3..895aeb533 100644 --- a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart +++ b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart @@ -8,16 +8,14 @@ * */ -import 'dart:io'; - import 'package:flutter/material.dart'; -import '../../name_your_wallet_view/name_your_wallet_view.dart'; +import 'package:tuple/tuple.dart'; + import '../../../../themes/stack_colors.dart'; import '../../../../utilities/enums/add_wallet_type_enum.dart'; import '../../../../utilities/text_styles.dart'; -import '../../../../wallets/crypto_currency/coins/wownero.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; -import 'package:tuple/tuple.dart'; +import '../../name_your_wallet_view/name_your_wallet_view.dart'; class CreateWalletButtonGroup extends StatelessWidget { const CreateWalletButtonGroup({ @@ -35,37 +33,35 @@ class CreateWalletButtonGroup extends StatelessWidget { crossAxisAlignment: isDesktop ? CrossAxisAlignment.center : CrossAxisAlignment.stretch, children: [ - if (Platform.isAndroid || coin is! Wownero) - ConstrainedBox( - constraints: BoxConstraints( - minHeight: isDesktop ? 70 : 0, - minWidth: isDesktop ? 480 : 0, - ), - child: TextButton( - style: Theme.of(context) - .extension()! - .getPrimaryEnabledButtonStyle(context), - onPressed: () { - Navigator.of(context).pushNamed( - NameYourWalletView.routeName, - arguments: Tuple2( - AddWalletType.New, - coin, - ), - ); - }, - child: Text( - "Create new wallet", - style: isDesktop - ? STextStyles.desktopButtonEnabled(context) - : STextStyles.button(context), - ), + ConstrainedBox( + constraints: BoxConstraints( + minHeight: isDesktop ? 70 : 0, + minWidth: isDesktop ? 480 : 0, + ), + child: TextButton( + style: Theme.of(context) + .extension()! + .getPrimaryEnabledButtonStyle(context), + onPressed: () { + Navigator.of(context).pushNamed( + NameYourWalletView.routeName, + arguments: Tuple2( + AddWalletType.New, + coin, + ), + ); + }, + child: Text( + "Create new wallet", + style: isDesktop + ? STextStyles.desktopButtonEnabled(context) + : STextStyles.button(context), ), ), - if (Platform.isAndroid || coin is! Wownero) - SizedBox( - height: isDesktop ? 16 : 12, - ), + ), + SizedBox( + height: isDesktop ? 16 : 12, + ), ConstrainedBox( constraints: BoxConstraints( minHeight: isDesktop ? 70 : 0, diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 57c4d3468..04bb85e54 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -141,4 +141,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367 -COCOAPODS: 1.14.3 +COCOAPODS: 1.15.2 diff --git a/pubspec.lock b/pubspec.lock index 169fd94fb..a9cfa08cf 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1181,10 +1181,10 @@ packages: dependency: "direct dev" description: name: mockito - sha256: "7d5b53bcd556c1bc7ffbe4e4d5a19c3e112b7e925e9e172dd7c6ad0630812616" + sha256: "6841eed20a7befac0ce07df8116c8b8233ed1f4486a7647c7fc5a02ae6163917" url: "https://pub.dev" source: hosted - version: "5.4.2" + version: "5.4.4" mocktail: dependency: transitive description: @@ -1194,7 +1194,7 @@ packages: source: hosted version: "0.2.0" monero: - dependency: transitive + dependency: "direct main" description: path: "." ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac" From 96966a78a178d3093d40b00d86496aea7c78881b Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 27 May 2024 14:15:25 -0600 Subject: [PATCH 144/318] update gitignore --- .gitignore | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index 365c35736..35282800f 100644 --- a/.gitignore +++ b/.gitignore @@ -99,6 +99,7 @@ pubspec.yaml # FVM Version Cache .fvm/ + android/app/src/main/jniLibs/arm64-v8a/libwownero_wallet2_api_c.so android/app/src/main/jniLibs/arm64-v8a/libmonero_wallet2_api_c.so android/app/src/main/jniLibs/armeabi-v7a/libmonero_wallet2_api_c.so @@ -111,3 +112,9 @@ macos/wownero_wallet2_api_c.dylib /macos/wownero_libwallet2_api_c.dylib /ios/monero_libwallet2_api_c.dylib /ios/wownero_libwallet2_api_c.dylib +/android/app/src/main/jniLibs/arm64-v8a/libmonero_libwallet2_api_c.so +/android/app/src/main/jniLibs/armeabi-v7a/libmonero_libwallet2_api_c.so +/android/app/src/main/jniLibs/x86_64/libmonero_libwallet2_api_c.so +/android/app/src/main/jniLibs/arm64-v8a/libwownero_libwallet2_api_c.so +/android/app/src/main/jniLibs/armeabi-v7a/libwownero_libwallet2_api_c.so +/android/app/src/main/jniLibs/x86_64/libwownero_libwallet2_api_c.so From 2ba0dc576e8a662a1c29359dfc8eb8a00649eb69 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 27 May 2024 14:15:45 -0600 Subject: [PATCH 145/318] fix variable read --- .../exchange_step_views/step_4_view.dart | 17 +++++++++-------- .../restore_from_file_view.dart | 11 ++++++----- .../sub_views/stack_restore_progress_view.dart | 17 +++++++++-------- .../exchange_steps/step_scaffold.dart | 2 +- .../forgotten_passphrase_restore_from_swb.dart | 7 ++++--- 5 files changed, 29 insertions(+), 25 deletions(-) diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index 3d0730ee4..4700d12b1 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -15,15 +15,11 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; +import 'package:tuple/tuple.dart'; + import '../../../app_config.dart'; import '../../../models/exchange/incomplete_exchange.dart'; import '../../../notifications/show_flush_bar.dart'; -import '../confirm_change_now_send.dart'; -import '../send_from_view.dart'; -import '../sub_widgets/step_row.dart'; -import '../../home_view/home_view.dart'; -import '../../send_view/sub_widgets/building_transaction_dialog.dart'; -import '../../wallet_view/wallet_view.dart'; import '../../../providers/providers.dart'; import '../../../route_generator.dart'; import '../../../themes/stack_colors.dart'; @@ -44,7 +40,12 @@ import '../../../widgets/desktop/secondary_button.dart'; import '../../../widgets/rounded_container.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_dialog.dart'; -import 'package:tuple/tuple.dart'; +import '../../home_view/home_view.dart'; +import '../../send_view/sub_widgets/building_transaction_dialog.dart'; +import '../../wallet_view/wallet_view.dart'; +import '../confirm_change_now_send.dart'; +import '../send_from_view.dart'; +import '../sub_widgets/step_row.dart'; class Step4View extends ConsumerStatefulWidget { const Step4View({ @@ -816,7 +817,7 @@ class _Step4ViewState extends ConsumerState { Builder( builder: (context) { String buttonTitle = - "Send from {$AppConfig.appName}"; + "Send from ${AppConfig.appName}"; final tuple = ref .read( diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart index 5a609acb4..d7a659ac2 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart @@ -15,11 +15,10 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:tuple/tuple.dart'; + import '../../../../app_config.dart'; import '../../../../notifications/show_flush_bar.dart'; -import 'helpers/restore_create_backup.dart'; -import 'helpers/swb_file_system.dart'; -import 'sub_views/stack_restore_progress_view.dart'; import '../../../../route_generator.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; @@ -36,7 +35,9 @@ import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/loading_indicator.dart'; import '../../../../widgets/stack_text_field.dart'; -import 'package:tuple/tuple.dart'; +import 'helpers/restore_create_backup.dart'; +import 'helpers/swb_file_system.dart'; +import 'sub_views/stack_restore_progress_view.dart'; class RestoreFromFileView extends ConsumerStatefulWidget { const RestoreFromFileView({Key? key}) : super(key: key); @@ -537,7 +538,7 @@ class _RestoreFromFileViewState extends ConsumerState { .all( 32), child: Text( - "Restore {$AppConfig.appName}", + "Restore ${AppConfig.appName}", style: STextStyles .desktopH3( context), diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart index 0cd60b29c..bc8d9a329 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart @@ -13,14 +13,8 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../../../app_config.dart'; -import '../../../../home_view/home_view.dart'; -import '../dialogs/cancel_stack_restore_dialog.dart'; -import '../helpers/restore_create_backup.dart'; -import '../restore_from_encrypted_string_view.dart'; -import '../stack_backup_view.dart'; -import '../sub_widgets/restoring_item_card.dart'; -import '../sub_widgets/restoring_wallet_card.dart'; import '../../../../../pages_desktop_specific/desktop_home_view.dart'; import '../../../../../pages_desktop_specific/desktop_menu.dart'; import '../../../../../providers/desktop/current_desktop_menu_item.dart'; @@ -40,6 +34,13 @@ import '../../../../../widgets/desktop/secondary_button.dart'; import '../../../../../widgets/icon_widgets/addressbook_icon.dart'; import '../../../../../widgets/loading_indicator.dart'; import '../../../../../widgets/rounded_container.dart'; +import '../../../../home_view/home_view.dart'; +import '../dialogs/cancel_stack_restore_dialog.dart'; +import '../helpers/restore_create_backup.dart'; +import '../restore_from_encrypted_string_view.dart'; +import '../stack_backup_view.dart'; +import '../sub_widgets/restoring_item_card.dart'; +import '../sub_widgets/restoring_wallet_card.dart'; class StackRestoreProgressView extends ConsumerStatefulWidget { const StackRestoreProgressView({ @@ -264,7 +265,7 @@ class _StackRestoreProgressViewState }, ), title: Text( - "Restoring {$AppConfig.appName}", + "Restoring ${AppConfig.appName}", style: STextStyles.navBarTitle(context), ), ), diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index 103280f88..3c0688166 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -319,7 +319,7 @@ class _StepScaffoldState extends ConsumerState { onPressed: onBack, ), secondChild: SecondaryButton( - label: "Send from {$AppConfig.appName}", + label: "Send from ${AppConfig.appName}", buttonHeight: ButtonHeight.l, onPressed: sendFromStack, ), diff --git a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart index b1efe30f1..bb2e6e816 100644 --- a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart +++ b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart @@ -15,13 +15,14 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:tuple/tuple.dart'; + import '../../app_config.dart'; import '../../db/hive/db.dart'; import '../../notifications/show_flush_bar.dart'; import '../../pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; import '../../pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart'; import '../../pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart'; -import 'create_password_view.dart'; import '../../providers/desktop/storage_crypto_handler_provider.dart'; import '../../providers/global/secure_store_provider.dart'; import '../../providers/global/wallets_provider.dart'; @@ -38,7 +39,7 @@ import '../../widgets/desktop/desktop_scaffold.dart'; import '../../widgets/desktop/primary_button.dart'; import '../../widgets/loading_indicator.dart'; import '../../widgets/stack_text_field.dart'; -import 'package:tuple/tuple.dart'; +import 'create_password_view.dart'; class ForgottenPassphraseRestoreFromSWB extends ConsumerStatefulWidget { const ForgottenPassphraseRestoreFromSWB({Key? key}) : super(key: key); @@ -155,7 +156,7 @@ class _ForgottenPassphraseRestoreFromSWBState mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - "Restoring {$AppConfig.appName}", + "Restoring ${AppConfig.appName}", style: STextStyles.desktopH3(context), ), ], From 8b523739d916e744be85164f0f3cb12032934dbf Mon Sep 17 00:00:00 2001 From: Julian Date: Mon, 27 May 2024 15:18:28 -0600 Subject: [PATCH 146/318] call correct dart exe on windows --- scripts/app_config/shared/asset_generators.sh | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/scripts/app_config/shared/asset_generators.sh b/scripts/app_config/shared/asset_generators.sh index a0150866a..50d035a65 100755 --- a/scripts/app_config/shared/asset_generators.sh +++ b/scripts/app_config/shared/asset_generators.sh @@ -11,8 +11,17 @@ APP_BUILD_PLATFORM=$1 # run icon and image generators pushd "${APP_PROJECT_ROOT_DIR}" -flutter pub get -#native splash screen not used -#dart run flutter_native_splash:create -dart run flutter_launcher_icons -f "${APP_PROJECT_ROOT_DIR}/scripts/app_config/platforms/${APP_BUILD_PLATFORM}/flutter_launcher_icons.yaml" +YAML_FILE="${APP_PROJECT_ROOT_DIR}/scripts/app_config/platforms/${APP_BUILD_PLATFORM}/flutter_launcher_icons.yaml" +if [[ "${APP_BUILD_PLATFORM}" = 'windows' ]]; then + cmd.exe /c flutter pub get + WIN_PATH_VERSION=$(wslpath -w ${YAML_FILE}) + cmd.exe /c dart run flutter_launcher_icons -f "${WIN_PATH_VERSION}" + #native splash screen not used + #cmd.exe /c dart run flutter_native_splash:create +else + flutter pub get + dart run flutter_launcher_icons -f "${YAML_FILE}" + #native splash screen not used + #dart run flutter_native_splash:create +fi popd \ No newline at end of file From 9006de0f0a233b885286e51e677bd3992b8b7bc5 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 27 May 2024 17:56:22 -0600 Subject: [PATCH 147/318] code style clean up and gen mocks --- lib/db/isar/main_db.dart | 8 +- lib/db/migrate_wallets_to_isar.dart | 3 +- lib/dto/ethereum/eth_token_tx_extra_dto.dart | 1 - lib/dto/ethereum/eth_tx_dto.dart | 1 - .../address_inscription_response.dart | 12 +- .../cached_electrumx_client.dart | 10 +- lib/electrumx_rpc/electrumx_client.dart | 2 - lib/main.dart | 75 +- .../sub_classes/eth_token_entity.dart | 1 - lib/models/balance.dart | 3 +- lib/models/buy/response_objects/fiat.dart | 11 +- lib/models/buy/simplex/simplex.dart | 32 +- lib/models/contact.dart | 6 +- lib/models/epicbox_config_model.dart | 12 +- lib/models/epicbox_server_model.dart | 2 +- .../change_now/estimated_exchange_amount.dart | 7 +- .../change_now/exchange_transaction.dart | 9 +- .../exchange_transaction_status.dart | 7 +- .../exchange/majestic_bank/mb_rate.dart | 7 +- .../exchange/response_objects/trade.dart | 7 +- .../exchange/simpleswap/sp_currency.dart | 6 +- lib/models/isar/exchange_cache/currency.dart | 10 +- lib/models/isar/exchange_cache/pair.dart | 10 +- .../models/blockchain_data/transaction.dart | 41 +- .../isar/models/blockchain_data/utxo.dart | 12 +- .../models/blockchain_data/v2/output_v2.dart | 4 +- lib/models/isar/ordinal.dart | 13 +- lib/models/lelantus_coin.dart | 2 +- lib/models/node_model.dart | 2 +- lib/models/paymint/transactions_model.dart | 83 +- lib/models/paymint/utxo_model.dart | 6 +- lib/models/paynym/paynym_account.dart | 12 +- lib/models/paynym/paynym_follow.dart | 10 +- lib/models/stack_restoring_ui_state.dart | 8 +- lib/notifications/notification_card.dart | 25 +- lib/pages/TermsOfServiceView.dart | 2 +- .../add_token_view/add_custom_token_view.dart | 28 +- .../edit_wallet_tokens_view.dart | 21 +- .../add_custom_token_selector.dart | 4 +- .../sub_widgets/add_token_list.dart | 4 +- .../sub_widgets/add_token_text.dart | 4 +- .../sub_widgets/add_wallet_entity_list.dart | 4 +- .../sub_widgets/expanding_sub_list_item.dart | 10 +- .../sub_widgets/next_button.dart | 4 +- .../create_or_restore_wallet_subtitle.dart | 4 +- .../create_wallet_button_group.dart | 3 +- .../select_new_frost_import_type_view.dart | 2 +- .../new/steps/frost_create_step_1b.dart | 2 +- .../new/steps/frost_create_step_4.dart | 2 +- .../reshare/frost_reshare_step_1c.dart | 2 +- .../name_your_wallet_view.dart | 2 +- .../new_wallet_recovery_phrase_view.dart | 39 +- .../sub_widgets/mnemonic_table.dart | 4 +- .../sub_widgets/mnemonic_table_item.dart | 4 +- .../recovery_phrase_explanation_dialog.dart | 2 +- .../confirm_recovery_dialog.dart | 7 +- .../mobile_mnemonic_length_selector.dart | 6 +- .../sub_widgets/restore_from_date_picker.dart | 4 +- .../restore_options_next_button.dart | 4 +- .../restore_options_platform_layout.dart | 4 +- .../restore_wallet_view.dart | 5 - .../mnemonic_word_count_select_sheet.dart | 16 +- .../sub_widgets/restore_failed_dialog.dart | 4 +- .../sub_widgets/restore_succeeded_dialog.dart | 2 +- .../sub_widgets/restoring_dialog.dart | 4 +- .../select_wallet_for_token_view.dart | 4 +- .../sub_widgets/word_table.dart | 4 +- .../sub_widgets/word_table_item.dart | 4 +- .../verify_mnemonic_passphrase_dialog.dart | 6 +- .../address_book_views/address_book_view.dart | 1 - .../subviews/add_address_book_entry_view.dart | 263 ++-- .../add_new_contact_address_view.dart | 28 +- .../subviews/address_book_filter_view.dart | 77 +- .../subviews/coin_select_sheet.dart | 2 +- .../subviews/contact_details_view.dart | 54 +- .../subviews/contact_popup.dart | 96 +- .../subviews/edit_contact_address_view.dart | 29 +- .../edit_contact_name_emoji_view.dart | 60 +- lib/pages/buy_view/buy_form.dart | 6 +- lib/pages/buy_view/buy_order_details.dart | 26 +- lib/pages/buy_view/buy_quote_preview.dart | 10 +- .../sub_widgets/buy_warning_popup.dart | 21 +- .../sub_widgets/fiat_selection_view.dart | 37 +- lib/pages/cashfusion/cashfusion_view.dart | 15 +- .../cashfusion/fusion_progress_view.dart | 4 +- .../fusion_rounds_selection_sheet.dart | 4 +- lib/pages/coin_control/coin_control_view.dart | 71 +- lib/pages/coin_control/utxo_card.dart | 146 +-- lib/pages/coin_control/utxo_details_view.dart | 2 +- .../exchange_view/choose_from_stack_view.dart | 2 +- .../confirm_change_now_send.dart | 89 +- .../exchange_view/edit_trade_note_view.dart | 6 +- .../exchange_currency_selection_view.dart | 2 +- lib/pages/exchange_view/exchange_form.dart | 51 +- .../exchange_loading_overlay.dart | 9 +- .../exchange_step_views/step_1_view.dart | 49 +- .../exchange_step_views/step_2_view.dart | 4 +- .../exchange_step_views/step_3_view.dart | 52 +- .../exchange_step_views/step_4_view.dart | 4 +- lib/pages/exchange_view/exchange_view.dart | 130 +- lib/pages/exchange_view/send_from_view.dart | 6 +- .../sub_widgets/exchange_provider_option.dart | 9 +- .../exchange_provider_options.dart | 4 +- .../sub_widgets/rate_type_toggle.dart | 4 +- .../sub_widgets/step_indicator.dart | 4 +- .../exchange_view/sub_widgets/step_row.dart | 51 +- .../wallet_initiated_exchange_view.dart | 2 +- lib/pages/generic/single_field_edit_view.dart | 4 +- lib/pages/home_view/home_view.dart | 34 +- .../sub_widgets/home_view_button_bar.dart | 2 +- lib/pages/intro_view.dart | 12 +- lib/pages/loading_view.dart | 2 +- .../manage_favorites_view.dart | 4 +- lib/pages/monkey/monkey_view.dart | 17 +- .../sub_widgets/fetch_monkey_dialog.dart | 4 +- .../notifications_view.dart | 6 +- lib/pages/ordinals/ordinal_details_view.dart | 16 +- lib/pages/ordinals/ordinals_filter_view.dart | 25 +- lib/pages/ordinals/ordinals_view.dart | 4 +- lib/pages/ordinals/widgets/ordinal_card.dart | 4 +- lib/pages/ordinals/widgets/ordinals_list.dart | 17 +- .../paynym/add_new_paynym_follow_view.dart | 26 +- .../dialogs/claiming_paynym_dialog.dart | 4 +- .../confirm_paynym_connect_dialog.dart | 2 +- .../paynym/dialogs/paynym_details_popup.dart | 2 +- lib/pages/paynym/dialogs/paynym_qr_popup.dart | 6 +- lib/pages/paynym/paynym_claim_view.dart | 6 +- lib/pages/paynym/paynym_home_view.dart | 83 +- .../subwidgets/desktop_paynym_details.dart | 6 +- .../subwidgets/featured_paynyms_widget.dart | 4 +- lib/pages/paynym/subwidgets/paynym_bot.dart | 4 +- lib/pages/paynym/subwidgets/paynym_card.dart | 4 +- .../paynym/subwidgets/paynym_card_button.dart | 4 +- .../subwidgets/paynym_followers_list.dart | 4 +- .../subwidgets/paynym_following_list.dart | 4 +- lib/pages/pinpad_views/create_pin_view.dart | 15 +- lib/pages/pinpad_views/lock_screen_view.dart | 59 +- .../receive_view/addresses/address_card.dart | 12 +- .../addresses/address_details_view.dart | 90 +- .../addresses/address_qr_popup.dart | 12 +- .../receive_view/addresses/address_tag.dart | 2 +- .../addresses/edit_address_label_view.dart | 10 +- .../addresses/wallet_addresses_view.dart | 51 +- .../generate_receiving_uri_qr_code_view.dart | 52 +- lib/pages/receive_view/receive_view.dart | 68 +- .../send_view/frost_ms/frost_send_view.dart | 30 +- lib/pages/send_view/frost_ms/recipient.dart | 21 +- .../send_steps/frost_send_step_1b.dart | 16 +- .../send_steps/frost_send_step_2.dart | 29 +- .../send_steps/frost_send_step_3.dart | 11 +- .../send_steps/frost_send_step_4.dart | 10 +- lib/pages/send_view/send_view.dart | 24 +- .../firo_balance_selection_sheet.dart | 36 +- .../sending_transaction_dialog.dart | 4 +- .../transaction_fee_selection_sheet.dart | 4 - lib/pages/send_view/token_send_view.dart | 1 - .../advanced_settings_view.dart | 36 +- .../advanced_views/debug_view.dart | 119 +- .../edit_coin_units_view.dart | 2 +- .../advanced_views/manage_explorer_view.dart | 60 +- .../appearance_settings_view.dart | 19 +- .../appearance_settings/manage_themes.dart | 6 +- .../install_theme_from_file_dialog.dart | 4 +- .../sub_widgets/stack_theme_card.dart | 14 +- .../sub_widgets/theme_option.dart | 4 +- .../sub_widgets/theme_options_widget.dart | 2 +- ...ystem_brightness_theme_selection_view.dart | 29 +- .../global_settings_view/currency_view.dart | 32 +- .../delete_account_view.dart | 16 +- .../global_settings_view.dart | 42 +- .../global_settings_view/hidden_settings.dart | 1 - .../global_settings_view/language_view.dart | 21 +- .../add_edit_node_view.dart | 64 +- .../manage_nodes_views/manage_nodes_view.dart | 13 +- .../change_pin_view/change_pin_view.dart | 15 +- .../security_views/security_view.dart | 4 +- .../stack_backup_views/auto_backup_view.dart | 30 +- .../create_auto_backup_view.dart | 1062 +++++++++-------- .../create_backup_information_view.dart | 2 +- .../create_backup_view.dart | 699 ++++++----- .../dialogs/cancel_stack_restore_dialog.dart | 13 +- .../edit_auto_backup_view.dart | 71 +- .../restore_from_encrypted_string_view.dart | 23 +- .../restore_from_file_view.dart | 886 +++++++------- .../stack_backup_views/stack_backup_view.dart | 4 +- .../backup_frequency_type_select_sheet.dart | 15 +- .../sub_views/recovery_phrase_view.dart | 4 +- .../stack_restore_progress_view.dart | 129 +- .../sub_widgets/restoring_item_card.dart | 4 +- .../sub_widgets/restoring_wallet_card.dart | 33 +- .../startup_preferences_view.dart | 93 +- .../startup_wallet_selection_view.dart | 2 +- .../global_settings_view/support_view.dart | 10 +- .../syncing_options_view.dart | 26 +- .../syncing_preferences_view.dart | 21 +- .../wallet_syncing_options_view.dart | 300 ++--- .../tor_settings/tor_settings_view.dart | 38 +- .../frost_ms/frost_ms_options_view.dart | 34 +- .../wallet_backup_view.dart | 52 +- .../sub_widgets/confirm_full_rescan.dart | 7 +- .../sub_widgets/rescanning_dialog.dart | 4 +- .../wallet_network_settings_view.dart | 2 +- .../wallet_settings_view.dart | 73 +- .../change_representative_view.dart | 57 +- .../delete_wallet_warning_view.dart | 10 +- .../rename_wallet_view.dart | 4 +- .../wallet_settings_wallet_settings_view.dart | 4 +- .../xpub_view.dart | 23 +- .../firo_rescan_recovery_error_dialog.dart | 22 +- lib/pages/stack_privacy_calls.dart | 47 +- lib/pages/token_view/my_tokens_view.dart | 4 +- .../sub_widgets/my_token_select_item.dart | 38 +- .../sub_widgets/my_tokens_list.dart | 15 +- .../sub_widgets/no_tokens_found.dart | 2 +- .../token_view/sub_widgets/token_summary.dart | 5 +- .../token_transaction_list_widget.dart | 6 +- .../token_contract_details_view.dart | 8 +- lib/pages/token_view/token_view.dart | 27 +- .../sub_widgets/no_transactions_found.dart | 2 +- .../sub_widgets/transactions_list.dart | 21 +- .../wallet_balance_toggle_sheet.dart | 3 +- .../sub_widgets/wallet_navigation_bar.dart | 2 - .../sub_widgets/wallet_refresh_button.dart | 105 +- .../all_transactions_view.dart | 141 ++- ...ancelling_transaction_progress_dialog.dart | 2 +- .../transaction_views/edit_note_view.dart | 14 +- .../transaction_details_view.dart | 19 +- .../transaction_search_filter_view.dart | 40 +- .../tx_v2/all_transactions_v2_view.dart | 10 +- .../tx_v2/transaction_v2_card.dart | 51 +- .../tx_v2/transaction_v2_details_view.dart | 8 +- .../tx_v2/transaction_v2_list.dart | 56 +- .../tx_v2/transaction_v2_list_item.dart | 21 +- lib/pages/wallet_view/wallet_view.dart | 3 - .../wallets_view/sub_widgets/all_wallets.dart | 2 +- .../sub_widgets/empty_wallets.dart | 8 +- .../sub_widgets/favorite_card.dart | 8 +- .../sub_widgets/favorite_wallets.dart | 29 +- .../sub_widgets/wallet_list_item.dart | 17 +- lib/pages/wallets_view/wallets_overview.dart | 9 +- lib/pages/wallets_view/wallets_view.dart | 7 +- .../desktop_address_book.dart | 1 - .../desktop_address_book_scaffold.dart | 6 +- .../subwidgets/desktop_address_card.dart | 11 +- .../subwidgets/desktop_contact_details.dart | 31 +- .../desktop_contact_options_menu_popup.dart | 35 +- .../desktop_wallet_addresses_view.dart | 10 +- .../sub_widgets/desktop_address_list.dart | 43 +- .../cashfusion/desktop_cashfusion_view.dart | 24 +- .../cashfusion/sub_widgets/fusion_dialog.dart | 6 +- .../sub_widgets/fusion_progress.dart | 58 +- .../desktop_coin_control_use_dialog.dart | 26 +- .../desktop_coin_control_view.dart | 18 +- .../coin_control/freeze_button.dart | 8 +- .../coin_control/utxo_row.dart | 4 +- .../desktop_buy/desktop_buy_view.dart | 2 +- .../desktop_all_trades_view.dart | 27 +- .../desktop_exchange_view.dart | 8 +- .../subwidgets/desktop_step_1.dart | 21 +- .../subwidgets/desktop_step_2.dart | 4 +- .../subwidgets/desktop_step_3.dart | 28 +- .../subwidgets/desktop_step_4.dart | 39 +- .../subwidgets/desktop_step_item.dart | 15 +- .../subwidgets/desktop_choose_from_stack.dart | 16 +- .../desktop_exchange_steps_indicator.dart | 3 +- .../subwidgets/desktop_trade_history.dart | 18 +- .../desktop_home_view.dart | 31 +- lib/pages_desktop_specific/desktop_menu.dart | 8 +- .../desktop_menu_item.dart | 38 +- .../lelantus_coins/lelantus_coins_view.dart | 4 +- .../my_stack_view/coin_wallets_table.dart | 4 +- .../desktop_favorite_wallets.dart | 8 +- .../desktop_expanding_wallet_card.dart | 4 +- .../exit_to_my_stack_button.dart | 4 +- .../my_stack_view/my_stack_view.dart | 2 +- .../my_stack_view/my_wallets.dart | 12 +- .../paynym/desktop_paynym_send_dialog.dart | 28 +- .../my_stack_view/wallet_summary_table.dart | 4 +- .../wallet_view/desktop_token_view.dart | 4 +- .../wallet_view/desktop_wallet_view.dart | 22 +- .../address_book_address_chooser.dart | 20 +- .../sub_widgets/contact_list_item.dart | 26 +- .../sub_widgets/delete_wallet_keys_popup.dart | 8 +- .../sub_widgets/desktop_auth_send.dart | 6 +- .../desktop_balance_toggle_button.dart | 8 +- .../desktop_delete_wallet_dialog.dart | 16 +- .../sub_widgets/desktop_fee_dropdown.dart | 77 +- .../sub_widgets/desktop_receive.dart | 14 +- .../wallet_view/sub_widgets/desktop_send.dart | 7 - .../sub_widgets/desktop_token_send.dart | 1 - .../sub_widgets/desktop_wallet_features.dart | 4 +- .../sub_widgets/desktop_wallet_summary.dart | 31 +- .../more_features/more_features_dialog.dart | 4 +- .../wallet_view/sub_widgets/my_wallet.dart | 1 - .../sub_widgets/network_info_button.dart | 4 +- .../qr_code_desktop_popup_content.dart | 4 +- .../unlock_wallet_keys_desktop.dart | 16 +- .../sub_widgets/wallet_keys_button.dart | 8 +- .../wallet_keys_desktop_popup.dart | 25 +- .../sub_widgets/wallet_options_button.dart | 41 +- .../desktop_notifications_view.dart | 2 +- .../desktop_ordinal_details_view.dart | 58 +- .../ordinals/desktop_ordinals_view.dart | 24 +- .../password/create_password_view.dart | 74 +- .../password/desktop_login_view.dart | 24 +- ...forgotten_passphrase_restore_from_swb.dart | 5 +- .../settings/desktop_settings_view.dart | 4 +- .../settings/settings_menu.dart | 13 +- .../advanced_settings/advanced_settings.dart | 159 +-- .../advanced_settings/debug_info_dialog.dart | 2 +- ...desktop_manage_block_explorers_dialog.dart | 18 +- .../stack_privacy_dialog.dart | 44 +- .../sub_widgets/desktop_install_theme.dart | 4 +- .../sub_widgets/desktop_manage_themes.dart | 2 +- .../sub_widgets/desktop_themes_gallery.dart | 8 +- .../create_auto_backup.dart | 190 +-- .../enable_backup_dialog.dart | 4 +- .../currency_settings/currency_settings.dart | 2 +- .../settings_menu/desktop_about_view.dart | 3 +- .../settings_menu/desktop_support_view.dart | 10 +- .../language_settings/language_dialog.dart | 41 +- .../language_settings/language_settings.dart | 8 +- .../settings_menu/security_settings.dart | 73 +- .../syncing_preferences_settings.dart | 79 +- .../tor_settings/tor_settings.dart | 31 +- .../settings/settings_menu_item.dart | 4 +- .../spark_coins/spark_coins_view.dart | 4 +- .../exchange_form_state_provider.dart | 1 - ...trade_sent_from_stack_lookup_provider.dart | 4 +- .../global/base_currencies_provider.dart | 2 +- .../global/secure_store_provider.dart | 7 +- .../stack_restoring_ui_state_provider.dart | 4 +- .../valid_contact_state_provider.dart | 7 +- .../ui/preview_tx_button_state_provider.dart | 1 - .../wallet_balance_toggle_state_provider.dart | 4 +- lib/route_generator.dart | 10 +- lib/services/auto_swb_service.dart | 35 +- .../coins/bitcoincash/cashtokens.dart | 57 +- lib/services/coins/tezos/api/tezos_api.dart | 16 +- .../coins/tezos/api/tezos_rpc_api.dart | 2 +- .../coins/tezos/api/tezos_transaction.dart | 2 +- lib/services/debug_service.dart | 9 +- lib/services/ethereum/ethereum_api.dart | 31 +- .../events/global/blocks_remaining_event.dart | 5 +- .../global/refresh_percent_changed_event.dart | 5 +- .../tor_connection_status_changed_event.dart | 5 +- .../global/updated_in_background_event.dart | 5 +- .../exchange/change_now/change_now_api.dart | 193 ++- .../exchange_data_loading_service.dart | 39 +- .../majestic_bank/majestic_bank_api.dart | 14 +- .../majestic_bank/majestic_bank_exchange.dart | 4 +- .../exchange/simpleswap/simpleswap_api.dart | 108 +- .../simpleswap/simpleswap_exchange.dart | 4 +- lib/services/litescribe_api.dart | 26 +- lib/services/nano_api.dart | 6 +- lib/services/notifications_api.dart | 18 +- .../trade_sent_from_stack_service.dart | 12 +- lib/services/trade_service.dart | 13 +- .../transaction_notification_tracker.dart | 60 +- lib/themes/coin_icon_provider.dart | 11 - lib/themes/stack_colors.dart | 15 +- lib/utilities/address_utils.dart | 8 +- lib/utilities/amount/amount.dart | 10 +- .../amount/amount_input_formatter.dart | 7 +- lib/utilities/amount/amount_unit.dart | 3 - lib/utilities/biometrics.dart | 35 +- lib/utilities/bip47_utils.dart | 6 +- .../electrum_connection_check.dart | 4 +- lib/utilities/desktop_password_service.dart | 10 +- lib/utilities/enums/fiat_enum.dart | 5 +- lib/utilities/eth_commons.dart | 1 - lib/utilities/extensions/impl/big_int.dart | 2 +- .../extensions/impl/contract_abi.dart | 16 +- .../flutter_secure_storage_interface.dart | 9 +- lib/utilities/format.dart | 4 +- lib/utilities/logger.dart | 6 +- lib/utilities/paynym_is_api.dart | 13 +- lib/utilities/stack_file_system.dart | 6 +- lib/utilities/test_epic_box_connection.dart | 8 +- lib/utilities/test_eth_node_connection.dart | 2 +- lib/utilities/test_node_connection.dart | 6 - .../test_stellar_node_connection.dart | 15 +- lib/utilities/util.dart | 4 +- lib/wallets/api/lelantus_ffi_wrapper.dart | 96 +- lib/wallets/api/tezos/tezos_api.dart | 10 +- lib/wallets/api/tezos/tezos_rpc_api.dart | 2 +- .../crypto_currency/coins/bitcoincash.dart | 7 +- lib/wallets/crypto_currency/coins/ecash.dart | 10 +- .../crypto_currency/coins/namecoin.dart | 8 +- .../crypto_currency/coins/particl.dart | 12 +- .../crypto_currency/coins/peercoin.dart | 8 +- lib/wallets/crypto_currency/coins/solana.dart | 4 +- .../crypto_currency/coins/stellar.dart | 3 +- lib/wallets/crypto_currency/coins/tezos.dart | 20 +- lib/wallets/isar/models/wallet_info.dart | 8 +- .../providers/eth/token_balance_provider.dart | 8 +- .../isar/providers/wallet_info_provider.dart | 10 +- lib/wallets/wallet/impl/banano_wallet.dart | 1 - .../wallet/impl/bitcoin_frost_wallet.dart | 1 - lib/wallets/wallet/impl/bitcoin_wallet.dart | 7 +- .../wallet/impl/bitcoincash_wallet.dart | 40 +- lib/wallets/wallet/impl/dogecoin_wallet.dart | 25 +- lib/wallets/wallet/impl/ecash_wallet.dart | 24 +- lib/wallets/wallet/impl/epiccash_wallet.dart | 52 +- lib/wallets/wallet/impl/ethereum_wallet.dart | 18 +- lib/wallets/wallet/impl/firo_wallet.dart | 42 +- lib/wallets/wallet/impl/litecoin_wallet.dart | 20 +- lib/wallets/wallet/impl/namecoin_wallet.dart | 25 +- lib/wallets/wallet/impl/nano_wallet.dart | 1 - lib/wallets/wallet/impl/particl_wallet.dart | 40 +- lib/wallets/wallet/impl/peercoin_wallet.dart | 1 - lib/wallets/wallet/impl/solana_wallet.dart | 60 +- lib/wallets/wallet/impl/stellar_wallet.dart | 40 +- lib/wallets/wallet/impl/tezos_wallet.dart | 1 - .../intermediate/cryptonote_wallet.dart | 2 +- lib/wallets/wallet/wallet.dart | 23 +- .../bcash_interface.dart | 7 +- .../cash_fusion_interface.dart | 228 ++-- .../cw_based_interface.dart | 13 +- .../lelantus_interface.dart | 6 +- .../ordinals_interface.dart | 13 +- .../paynym_interface.dart | 1 - .../spark_interface.dart | 4 +- lib/widgets/address_book_card.dart | 6 +- lib/widgets/animated_text.dart | 4 +- lib/widgets/animated_widgets/rotate_icon.dart | 4 +- .../animated_widgets/rotating_arrows.dart | 4 +- lib/widgets/app_bar_field.dart | 4 +- lib/widgets/background.dart | 4 +- lib/widgets/choose_coin_view.dart | 2 +- lib/widgets/conditional_parent.dart | 8 +- .../custom_buttons/app_bar_icon_button.dart | 105 +- .../custom_buttons/blue_text_button.dart | 8 +- .../draggable_switch_button.dart | 12 +- .../custom_buttons/dropdown_button.dart | 27 +- .../custom_buttons/favorite_toggle.dart | 4 +- .../paynym_follow_toggle_button.dart | 33 +- .../custom_buttons/simple_copy_button.dart | 4 +- lib/widgets/custom_loading_overlay.dart | 4 +- .../custom_page_view/custom_page_view.dart | 144 ++- .../custom_sliver_fill_viewport.dart | 52 +- .../custom_pin_put/custom_pin_put.dart | 4 +- lib/widgets/custom_pin_put/pin_keyboard.dart | 154 +-- lib/widgets/custom_tab_view.dart | 6 +- lib/widgets/desktop/custom_text_button.dart | 4 +- lib/widgets/desktop/delete_button.dart | 8 +- lib/widgets/desktop/desktop_app_bar.dart | 4 +- lib/widgets/desktop/desktop_dialog.dart | 4 +- .../desktop/desktop_dialog_close_button.dart | 4 +- lib/widgets/desktop/desktop_fee_dialog.dart | 8 +- lib/widgets/desktop/desktop_scaffold.dart | 8 +- lib/widgets/desktop/outline_blue_button.dart | 4 +- lib/widgets/desktop/paynym_search_button.dart | 4 +- lib/widgets/desktop/primary_button.dart | 4 +- lib/widgets/desktop/secondary_button.dart | 4 +- .../desktop/simple_desktop_dialog.dart | 6 +- lib/widgets/dialogs/basic_dialog.dart | 6 +- .../frost/frost_step_explanation_dialog.dart | 4 +- .../dialogs/frost/frost_step_qr_dialog.dart | 14 +- lib/widgets/emoji_select_sheet.dart | 19 +- lib/widgets/eth_wallet_radio.dart | 4 +- .../exchange/trocador/trocador_kyc_icon.dart | 4 +- .../trocador/trocador_kyc_info_button.dart | 4 +- lib/widgets/expandable.dart | 4 +- lib/widgets/expandable2.dart | 4 +- lib/widgets/fee_slider.dart | 1 - lib/widgets/frost_scaffold.dart | 2 +- lib/widgets/hover_text_field.dart | 4 +- .../icon_widgets/addressbook_icon.dart | 4 +- lib/widgets/icon_widgets/clipboard_icon.dart | 4 +- lib/widgets/icon_widgets/copy_icon.dart | 4 +- lib/widgets/icon_widgets/dice_icon.dart | 4 +- lib/widgets/icon_widgets/eth_token_icon.dart | 1 - lib/widgets/icon_widgets/pencil_icon.dart | 4 +- lib/widgets/icon_widgets/qrcode_icon.dart | 4 +- lib/widgets/icon_widgets/share_icon.dart | 4 +- .../icon_widgets/utxo_status_icon.dart | 4 +- lib/widgets/icon_widgets/x_icon.dart | 4 +- lib/widgets/loading_indicator.dart | 4 +- lib/widgets/master_wallet_card.dart | 4 +- lib/widgets/node_options_sheet.dart | 6 +- .../tor_has_been_add_dialog.dart | 6 +- lib/widgets/progress_bar.dart | 6 +- lib/widgets/rounded_container.dart | 4 +- lib/widgets/rounded_white_container.dart | 4 +- lib/widgets/shake/shake.dart | 4 +- lib/widgets/stack_dialog.dart | 16 +- lib/widgets/stack_text_field.dart | 7 +- lib/widgets/table_view/table_view.dart | 6 +- lib/widgets/table_view/table_view_cell.dart | 4 +- lib/widgets/table_view/table_view_row.dart | 4 +- lib/widgets/textfield_icon_button.dart | 6 +- .../textfields/exchange_textfield.dart | 13 +- lib/widgets/textfields/frost_step_field.dart | 4 +- lib/widgets/toggle.dart | 15 +- lib/widgets/trade_card.dart | 10 +- lib/widgets/transaction_card.dart | 56 +- lib/widgets/trocador_kyc_rating_info.dart | 10 +- lib/widgets/wallet_card.dart | 11 +- .../wallet_info_row/wallet_info_row.dart | 13 +- .../components/icons/buy_nav_icon.dart | 2 +- .../icons/coin_control_nav_icon.dart | 2 +- .../components/icons/exchange_nav_icon.dart | 2 +- .../components/icons/fusion_nav_icon.dart | 2 +- .../components/icons/ordinals_nav_icon.dart | 2 +- .../components/icons/paynym_nav_icon.dart | 2 +- .../components/icons/receive_nav_icon.dart | 2 +- .../components/icons/send_nav_icon.dart | 2 +- .../components/icons/whirlpool_nav_icon.dart | 2 +- .../wallet_navigation_bar_item.dart | 8 +- .../wallet_navigation_bar.dart | 6 +- test/address_utils_test.dart | 1 - test/cached_electrumx_test.dart | 1 - test/cached_electrumx_test.mocks.dart | 271 +++-- ...r_secure_storage_interface_test.mocks.dart | 4 +- test/global_events_test.dart | 1 - .../lelantus_coin_adapter_test.dart | 10 +- .../lelantus_coin_adapter_test.mocks.dart | 16 +- .../transactions_model_adapter_test.dart | 18 +- ...transactions_model_adapter_test.mocks.dart | 16 +- .../utxo_model_adapter_test.dart | 12 +- .../utxo_model_adapter_test.mocks.dart | 16 +- .../notification_card_test.mocks.dart | 4 +- .../pages/send_view/send_view_test.mocks.dart | 101 +- test/price_test.mocks.dart | 4 +- .../sample_data/transaction_data_samples.dart | 4 +- .../address_book_view_screen_test.dart | 2 +- .../address_book_view_screen_test.mocks.dart | 8 +- .../add_address_book_view_screen_test.dart | 2 +- ...d_address_book_view_screen_test.mocks.dart | 8 +- ...s_book_entry_details_view_screen_test.dart | 4 +- ..._entry_details_view_screen_test.mocks.dart | 18 +- ...t_address_book_entry_view_screen_test.dart | 2 +- ...ess_book_entry_view_screen_test.mocks.dart | 8 +- .../exchange/exchange_view_test.mocks.dart | 355 +++--- .../lockscreen_view_screen_test.dart | 11 +- .../lockscreen_view_screen_test.mocks.dart | 12 +- .../main_view_screen_testA_test.dart | 4 +- .../main_view_screen_testA_test.mocks.dart | 18 +- .../main_view_screen_testB_test.dart | 4 +- .../main_view_screen_testB_test.mocks.dart | 18 +- .../main_view_screen_testC_test.dart | 4 +- .../main_view_screen_testC_test.mocks.dart | 18 +- .../backup_key_warning_view_screen_test.dart | 2 +- ...up_key_warning_view_screen_test.mocks.dart | 8 +- .../create_pin_view_screen_test.dart | 4 +- .../create_pin_view_screen_test.mocks.dart | 12 +- .../name_your_wallet_view_screen_test.dart | 2 +- ...me_your_wallet_view_screen_test.mocks.dart | 8 +- .../restore_wallet_view_screen_test.dart | 4 +- ...restore_wallet_view_screen_test.mocks.dart | 12 +- .../add_custom_node_view_screen_test.dart | 2 +- ...dd_custom_node_view_screen_test.mocks.dart | 8 +- .../node_details_view_screen_test.dart | 2 +- .../node_details_view_screen_test.mocks.dart | 8 +- .../network_settings_view_screen_test.dart | 2 +- ...twork_settings_view_screen_test.mocks.dart | 8 +- .../change_pin_view_screen_test.dart | 2 +- .../change_pin_view_screen_test.mocks.dart | 8 +- .../rename_wallet_view_screen_test.dart | 2 +- .../rename_wallet_view_screen_test.mocks.dart | 8 +- ...llet_delete_mnemonic_view_screen_test.dart | 2 +- ...elete_mnemonic_view_screen_test.mocks.dart | 8 +- .../wallet_settings_view_screen_test.dart | 2 +- ...allet_settings_view_screen_test.mocks.dart | 71 +- .../settings_view_screen_test.dart | 2 +- .../settings_view_screen_test.mocks.dart | 8 +- .../transaction_details_view_screen_test.dart | 4 +- ...action_details_view_screen_test.mocks.dart | 18 +- ...ction_search_results_view_screen_test.dart | 2 +- ...search_results_view_screen_test.mocks.dart | 30 +- .../transaction_search_view_screen_test.dart | 2 +- ...saction_search_view_screen_test.mocks.dart | 8 +- .../send_view_screen_test.mocks.dart | 4 +- .../wallet_view/wallet_view_screen_test.dart | 2 +- .../wallet_view_screen_test.mocks.dart | 30 +- .../change_now/change_now_test.mocks.dart | 4 +- .../bitcoin/bitcoin_wallet_test.mocks.dart | 259 ++-- .../bitcoincash_wallet_test.mocks.dart | 259 ++-- .../coins/bitcoincash/cashtokens_test.dart | 8 +- .../dogecoin/dogecoin_wallet_test.mocks.dart | 259 ++-- .../sample_data/transaction_data_samples.dart | 2 +- .../namecoin/namecoin_wallet_test.mocks.dart | 259 ++-- .../particl/particl_wallet_test.mocks.dart | 259 ++-- test/utilities/amount/amount_unit_test.dart | 2 - test/widget_tests/address_book_card_test.dart | 1 - .../address_book_card_test.mocks.dart | 4 +- .../favorite_toggle_test.mocks.dart | 4 +- .../custom_loading_overlay_test.mocks.dart | 4 +- test/widget_tests/custom_pin_put_test.dart | 2 +- .../desktop/desktop_scaffold_test.mocks.dart | 4 +- test/widget_tests/managed_favorite_test.dart | 19 +- .../managed_favorite_test.mocks.dart | 117 +- test/widget_tests/node_card_test.dart | 1 - test/widget_tests/node_card_test.mocks.dart | 4 +- .../widget_tests/node_options_sheet_test.dart | 3 +- .../node_options_sheet_test.mocks.dart | 116 +- .../table_view/table_view_row_test.mocks.dart | 4 +- test/widget_tests/trade_card_test.mocks.dart | 95 +- .../transaction_card_test.mocks.dart | 404 ++++--- test/widget_tests/wallet_card_test.mocks.dart | 52 +- .../wallet_info_row_balance_future_test.dart | 15 +- ...et_info_row_balance_future_test.mocks.dart | 8 +- .../wallet_info_row/wallet_info_row_test.dart | 18 +- .../wallet_info_row_test.mocks.dart | 8 +- 605 files changed, 9126 insertions(+), 6975 deletions(-) diff --git a/lib/db/isar/main_db.dart b/lib/db/isar/main_db.dart index 931f18263..1ea6830c5 100644 --- a/lib/db/isar/main_db.dart +++ b/lib/db/isar/main_db.dart @@ -11,6 +11,8 @@ import 'package:decimal/decimal.dart'; import 'package:flutter_native_splash/cli_commands.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + import '../../exceptions/main_db/main_db_exception.dart'; import '../../models/isar/models/block_explorer.dart'; import '../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; @@ -26,7 +28,6 @@ import '../../wallets/isar/models/spark_coin.dart'; import '../../wallets/isar/models/token_wallet_info.dart'; import '../../wallets/isar/models/wallet_info.dart'; import '../../wallets/isar/models/wallet_info_meta.dart'; -import 'package:tuple/tuple.dart'; part '../queries/queries.dart'; @@ -149,8 +150,9 @@ class MainDB { } // tx block explorers - TransactionBlockExplorer? getTransactionBlockExplorer( - {required CryptoCurrency cryptoCurrency}) { + TransactionBlockExplorer? getTransactionBlockExplorer({ + required CryptoCurrency cryptoCurrency, + }) { return isar.transactionBlockExplorers .where() .tickerEqualTo(cryptoCurrency.ticker) diff --git a/lib/db/migrate_wallets_to_isar.dart b/lib/db/migrate_wallets_to_isar.dart index f957ff6e9..474924997 100644 --- a/lib/db/migrate_wallets_to_isar.dart +++ b/lib/db/migrate_wallets_to_isar.dart @@ -207,7 +207,8 @@ Future migrateWalletsToIsar({ } await _cleanupOnSuccess( - walletIds: newInfo.map((e) => e.$1.walletId).toList()); + walletIds: newInfo.map((e) => e.$1.walletId).toList(), + ); } Future _cleanupOnSuccess({required List walletIds}) async { diff --git a/lib/dto/ethereum/eth_token_tx_extra_dto.dart b/lib/dto/ethereum/eth_token_tx_extra_dto.dart index c902d2bba..401ea7122 100644 --- a/lib/dto/ethereum/eth_token_tx_extra_dto.dart +++ b/lib/dto/ethereum/eth_token_tx_extra_dto.dart @@ -11,7 +11,6 @@ import 'dart:convert'; import '../../utilities/amount/amount.dart'; -import '../../wallets/crypto_currency/coins/ethereum.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; class EthTokenTxExtraDTO { diff --git a/lib/dto/ethereum/eth_tx_dto.dart b/lib/dto/ethereum/eth_tx_dto.dart index 2f60e9792..10a46d740 100644 --- a/lib/dto/ethereum/eth_tx_dto.dart +++ b/lib/dto/ethereum/eth_tx_dto.dart @@ -11,7 +11,6 @@ import 'dart:convert'; import '../../utilities/amount/amount.dart'; -import '../../wallets/crypto_currency/coins/ethereum.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; class EthTxDTO { diff --git a/lib/dto/ordinals/address_inscription_response.dart b/lib/dto/ordinals/address_inscription_response.dart index fa3144b57..ba9ce0747 100644 --- a/lib/dto/ordinals/address_inscription_response.dart +++ b/lib/dto/ordinals/address_inscription_response.dart @@ -1,7 +1,8 @@ -import 'litescribe_response.dart'; import 'inscription_data.dart'; +import 'litescribe_response.dart'; -class AddressInscriptionResponse extends LitescribeResponse { +class AddressInscriptionResponse + extends LitescribeResponse { final int status; final String message; final AddressInscriptionResult result; @@ -16,7 +17,8 @@ class AddressInscriptionResponse extends LitescribeResponse), + result: AddressInscriptionResult.fromJson( + json['result'] as Map), ); } } @@ -32,7 +34,9 @@ class AddressInscriptionResult { factory AddressInscriptionResult.fromJson(Map json) { return AddressInscriptionResult( - list: (json['list'] as List).map((item) => InscriptionData.fromJson(item as Map)).toList(), + list: (json['list'] as List) + .map((item) => InscriptionData.fromJson(item as Map)) + .toList(), total: json['total'] as int, ); } diff --git a/lib/electrumx_rpc/cached_electrumx_client.dart b/lib/electrumx_rpc/cached_electrumx_client.dart index 569c092fa..fb4ff4a87 100644 --- a/lib/electrumx_rpc/cached_electrumx_client.dart +++ b/lib/electrumx_rpc/cached_electrumx_client.dart @@ -11,11 +11,12 @@ import 'dart:convert'; import 'dart:math'; +import 'package:string_validator/string_validator.dart'; + import '../db/hive/db.dart'; -import 'electrumx_client.dart'; import '../utilities/logger.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; -import 'package:string_validator/string_validator.dart'; +import 'electrumx_client.dart'; class CachedElectrumXClient { final ElectrumXClient electrumXClient; @@ -331,8 +332,9 @@ class CachedElectrumXClient { } /// Clear all cached transactions for the specified coin - Future clearSharedTransactionCache( - {required CryptoCurrency cryptoCurrency}) async { + Future clearSharedTransactionCache({ + required CryptoCurrency cryptoCurrency, + }) async { await DB.instance.clearSharedTransactionCache(currency: cryptoCurrency); await DB.instance.closeAnonymitySetCacheBox(currency: cryptoCurrency); } diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index c37547f92..afe44ec14 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -28,8 +28,6 @@ import '../services/event_bus/global_event_bus.dart'; import '../services/tor_service.dart'; import '../utilities/logger.dart'; import '../utilities/prefs.dart'; -import '../wallets/crypto_currency/coins/dogecoin.dart'; -import '../wallets/crypto_currency/coins/firo.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; import 'package:stream_channel/stream_channel.dart'; diff --git a/lib/main.dart b/lib/main.dart index c1b10e77b..52370d13d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -180,7 +180,8 @@ void main(List args) async { Hive.registerAdapter(UnspentCoinsInfoAdapter()); await Hive.initFlutter( - (await StackFileSystem.applicationHiveDirectory()).path); + (await StackFileSystem.applicationHiveDirectory()).path, + ); await Hive.openBox(DB.boxNameDBInfo); await Hive.openBox(DB.boxNamePrefs); @@ -202,8 +203,10 @@ void main(List args) async { // Desktop migrate handled elsewhere (currently desktop_login_view.dart) if (!Util.isDesktop) { - int dbVersion = DB.instance.get( - boxName: DB.boxNameDBInfo, key: "hive_data_version") as int? ?? + final int dbVersion = DB.instance.get( + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + ) as int? ?? 0; if (dbVersion < Constants.currentDataVersion) { try { @@ -215,8 +218,11 @@ void main(List args) async { ), ); } catch (e, s) { - Logging.instance.log("Cannot migrate mobile database\n$e $s", - level: LogLevel.Error, printFullLength: true); + Logging.instance.log( + "Cannot migrate mobile database\n$e $s", + level: LogLevel.Error, + printFullLength: true, + ); } } } @@ -262,7 +268,7 @@ void main(List args) async { /// MyApp initialises relevant services with a MultiProvider class MyApp extends StatelessWidget { - const MyApp({Key? key}) : super(key: key); + const MyApp({super.key}); @override Widget build(BuildContext context) { @@ -279,8 +285,8 @@ class MyApp extends StatelessWidget { class MaterialAppWithTheme extends ConsumerStatefulWidget { const MaterialAppWithTheme({ - Key? key, - }) : super(key: key); + super.key, + }); @override ConsumerState createState() => @@ -382,7 +388,8 @@ class _MaterialAppWithThemeState extends ConsumerState switch (ref.read(prefsChangeNotifierProvider).backupFrequencyType) { case BackupFrequencyType.everyTenMinutes: ref.read(autoSWBServiceProvider).startPeriodicBackupTimer( - duration: const Duration(minutes: 10)); + duration: const Duration(minutes: 10), + ); break; case BackupFrequencyType.everyAppStart: unawaited(ref.read(autoSWBServiceProvider).doBackup()); @@ -448,7 +455,8 @@ class _MaterialAppWithThemeState extends ConsumerState await loadingCompleter.future; await goToRestoreSWB( - ref.read(openedFromSWBFileStringStateProvider.state).state!); + ref.read(openedFromSWBFileStringStateProvider.state).state!, + ); ref.read(openedFromSWBFileStringStateProvider.state).state = null; } // ref.read(shouldShowLockscreenOnResumeStateProvider.state).state = false; @@ -511,7 +519,8 @@ class _MaterialAppWithThemeState extends ConsumerState if (ref.read(openedFromSWBFileStringStateProvider.state).state != null) { await goToRestoreSWB( - ref.read(openedFromSWBFileStringStateProvider.state).state!); + ref.read(openedFromSWBFileStringStateProvider.state).state!, + ); ref.read(openedFromSWBFileStringStateProvider.state).state = null; } } @@ -559,8 +568,9 @@ class _MaterialAppWithThemeState extends ConsumerState await resetOpenPath(); Logging.instance.log( - "This is the .swb content from intent: ${ref.read(openedFromSWBFileStringStateProvider.state).state}", - level: LogLevel.Info); + "This is the .swb content from intent: ${ref.read(openedFromSWBFileStringStateProvider.state).state}", + level: LogLevel.Info, + ); } /// should only be called on android currently @@ -575,27 +585,31 @@ class _MaterialAppWithThemeState extends ConsumerState .then((value) { if (value is! bool || value == false) { Navigator.of(navigatorKey.currentContext!).pushNamed( - RestoreFromEncryptedStringView.routeName, - arguments: encrypted); + RestoreFromEncryptedStringView.routeName, + arguments: encrypted, + ); } }); } else { - unawaited(Navigator.push( - navigatorKey.currentContext!, - RouteGenerator.getRoute( - shouldUseMaterialRoute: RouteGenerator.useMaterialPageRoute, - builder: (_) => LockscreenView( - showBackButton: true, - routeOnSuccess: RestoreFromEncryptedStringView.routeName, - routeOnSuccessArguments: encrypted, - biometricsCancelButtonString: "CANCEL", - biometricsLocalizedReason: - "Authenticate to restore ${AppConfig.appName} backup", - biometricsAuthenticationTitle: "Restore ${AppConfig.prefix} backup", + unawaited( + Navigator.push( + navigatorKey.currentContext!, + RouteGenerator.getRoute( + shouldUseMaterialRoute: RouteGenerator.useMaterialPageRoute, + builder: (_) => LockscreenView( + showBackButton: true, + routeOnSuccess: RestoreFromEncryptedStringView.routeName, + routeOnSuccessArguments: encrypted, + biometricsCancelButtonString: "CANCEL", + biometricsLocalizedReason: + "Authenticate to restore ${AppConfig.appName} backup", + biometricsAuthenticationTitle: + "Restore ${AppConfig.prefix} backup", + ), + settings: const RouteSettings(name: "/swbrestorelockscreen"), ), - settings: const RouteSettings(name: "/swbrestorelockscreen"), ), - )); + ); } } @@ -655,7 +669,8 @@ class _MaterialAppWithThemeState extends ConsumerState foregroundColor: MaterialStateProperty.all(colorScheme.buttonTextSecondary), backgroundColor: MaterialStateProperty.all( - colorScheme.buttonBackSecondary), + colorScheme.buttonBackSecondary, + ), shape: MaterialStateProperty.all( RoundedRectangleBorder( // 1000 to be relatively sure it keeps its pill shape diff --git a/lib/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart b/lib/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart index 5980b6503..ef0074dd4 100644 --- a/lib/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart +++ b/lib/models/add_wallet_list_entity/sub_classes/eth_token_entity.dart @@ -10,7 +10,6 @@ import '../add_wallet_list_entity.dart'; import '../../isar/models/ethereum/eth_contract.dart'; -import '../../../wallets/crypto_currency/coins/ethereum.dart'; import '../../../wallets/crypto_currency/crypto_currency.dart'; class EthTokenEntity extends AddWalletListEntity { diff --git a/lib/models/balance.dart b/lib/models/balance.dart index 66eb6ab92..968041254 100644 --- a/lib/models/balance.dart +++ b/lib/models/balance.dart @@ -72,7 +72,8 @@ class Balance { ), pendingSpendable: decoded["pendingSpendable"] is String ? Amount.fromSerializedJsonString( - decoded["pendingSpendable"] as String) + decoded["pendingSpendable"] as String, + ) : Amount( rawValue: BigInt.from(decoded["pendingSpendable"] as int), fractionDigits: deprecatedValue, diff --git a/lib/models/buy/response_objects/fiat.dart b/lib/models/buy/response_objects/fiat.dart index f8a425836..3b8579ffa 100644 --- a/lib/models/buy/response_objects/fiat.dart +++ b/lib/models/buy/response_objects/fiat.dart @@ -23,11 +23,12 @@ class Fiat { /// Fiat name final Decimal maxAmount; - Fiat( - {required this.ticker, - required this.name, - required this.minAmount, - required this.maxAmount}); + Fiat({ + required this.ticker, + required this.name, + required this.minAmount, + required this.maxAmount, + }); factory Fiat.fromJson(Map json) { try { diff --git a/lib/models/buy/simplex/simplex.dart b/lib/models/buy/simplex/simplex.dart index 15d71eeb6..a787d2747 100644 --- a/lib/models/buy/simplex/simplex.dart +++ b/lib/models/buy/simplex/simplex.dart @@ -9,6 +9,7 @@ */ import 'package:decimal/decimal.dart'; + import '../response_objects/crypto.dart'; import '../response_objects/fiat.dart'; import '../response_objects/order.dart'; @@ -20,7 +21,8 @@ class Simplex { SimplexQuote quote = SimplexQuote( crypto: Crypto.fromJson({'ticker': 'BTC', 'name': 'Bitcoin', 'image': ''}), fiat: Fiat.fromJson( - {'ticker': 'USD', 'name': 'United States Dollar', 'image': ''}), + {'ticker': 'USD', 'name': 'United States Dollar', 'image': ''}, + ), youPayFiatPrice: Decimal.parse("100"), youReceiveCryptoAmount: Decimal.parse("1.0238917"), id: "someID", @@ -28,20 +30,22 @@ class Simplex { buyWithFiat: true, ); SimplexOrder order = SimplexOrder( - quote: SimplexQuote( - crypto: - Crypto.fromJson({'ticker': 'BTC', 'name': 'Bitcoin', 'image': ''}), - fiat: Fiat.fromJson( - {'ticker': 'USD', 'name': 'United States Dollar', 'image': ''}), - youPayFiatPrice: Decimal.parse("100"), - youReceiveCryptoAmount: Decimal.parse("1.0238917"), - id: "someID", - receivingAddress: '', - buyWithFiat: true, + quote: SimplexQuote( + crypto: + Crypto.fromJson({'ticker': 'BTC', 'name': 'Bitcoin', 'image': ''}), + fiat: Fiat.fromJson( + {'ticker': 'USD', 'name': 'United States Dollar', 'image': ''}, ), - orderId: 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', - paymentId: 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', - userId: 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'); + youPayFiatPrice: Decimal.parse("100"), + youReceiveCryptoAmount: Decimal.parse("1.0238917"), + id: "someID", + receivingAddress: '', + buyWithFiat: true, + ), + orderId: 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', + paymentId: 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', + userId: 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', + ); void updateSupportedCryptos(List newCryptos) { supportedCryptos = newCryptos; diff --git a/lib/models/contact.dart b/lib/models/contact.dart index 46cea2a76..91ac1be5e 100644 --- a/lib/models/contact.dart +++ b/lib/models/contact.dart @@ -44,13 +44,13 @@ class Contact { List? addresses, bool? isFavorite, }) { - List _addresses = []; + final List _addresses = []; if (addresses == null) { - for (var e in this.addresses) { + for (final e in this.addresses) { _addresses.add(e.copyWith()); } } else { - for (var e in addresses) { + for (final e in addresses) { _addresses.add(e.copyWith()); } } diff --git a/lib/models/epicbox_config_model.dart b/lib/models/epicbox_config_model.dart index 55650f11e..4d22dadd7 100644 --- a/lib/models/epicbox_config_model.dart +++ b/lib/models/epicbox_config_model.dart @@ -11,6 +11,7 @@ import 'dart:convert'; import 'package:hive/hive.dart'; + import 'epicbox_server_model.dart'; part 'type_adaptors/epicbox_config_model.g.dart'; @@ -57,7 +58,7 @@ class EpicBoxConfigModel { } Map toMap() { - Map map = {}; + final Map map = {}; map['epicbox_domain'] = host; map['epicbox_port'] = port; map['epicbox_protocol_insecure'] = protocolInsecure; @@ -84,7 +85,7 @@ class EpicBoxConfigModel { } static EpicBoxConfigModel fromString(String epicBoxConfigString) { - dynamic _epicBox = json.decode(epicBoxConfigString); + final dynamic _epicBox = json.decode(epicBoxConfigString); // handle old epicbox config formats final oldDomain = _epicBox["domain"] ?? "empty"; @@ -117,8 +118,11 @@ class EpicBoxConfigModel { ); } - static EpicBoxConfigModel fromServer(EpicBoxServerModel server, - {bool? protocolInsecure, int? addressIndex}) { + static EpicBoxConfigModel fromServer( + EpicBoxServerModel server, { + bool? protocolInsecure, + int? addressIndex, + }) { return EpicBoxConfigModel( host: server.host, port: server.port ?? 443, diff --git a/lib/models/epicbox_server_model.dart b/lib/models/epicbox_server_model.dart index ec8f6cd8e..810168943 100644 --- a/lib/models/epicbox_server_model.dart +++ b/lib/models/epicbox_server_model.dart @@ -64,7 +64,7 @@ class EpicBoxServerModel { } Map toMap() { - Map map = {}; + final Map map = {}; map['id'] = id; map['host'] = host; map['port'] = port; diff --git a/lib/models/exchange/change_now/estimated_exchange_amount.dart b/lib/models/exchange/change_now/estimated_exchange_amount.dart index 8313e686b..550b39489 100644 --- a/lib/models/exchange/change_now/estimated_exchange_amount.dart +++ b/lib/models/exchange/change_now/estimated_exchange_amount.dart @@ -9,6 +9,7 @@ */ import 'package:decimal/decimal.dart'; + import '../../../utilities/logger.dart'; class EstimatedExchangeAmount { @@ -45,8 +46,10 @@ class EstimatedExchangeAmount { factory EstimatedExchangeAmount.fromJson(Map json) { try { return EstimatedExchangeAmount( - estimatedAmount: Decimal.parse(json["estimatedAmount"]?.toString() ?? - json["estimatedDeposit"].toString()), + estimatedAmount: Decimal.parse( + json["estimatedAmount"]?.toString() ?? + json["estimatedDeposit"].toString(), + ), transactionSpeedForecast: json["transactionSpeedForecast"] as String? ?? "", warningMessage: json["warningMessage"] as String?, diff --git a/lib/models/exchange/change_now/exchange_transaction.dart b/lib/models/exchange/change_now/exchange_transaction.dart index e19d1c9c8..6bd514546 100644 --- a/lib/models/exchange/change_now/exchange_transaction.dart +++ b/lib/models/exchange/change_now/exchange_transaction.dart @@ -10,13 +10,15 @@ import 'package:decimal/decimal.dart'; import 'package:hive/hive.dart'; -import 'exchange_transaction_status.dart'; import 'package:uuid/uuid.dart'; +import 'exchange_transaction_status.dart'; + part '../../type_adaptors/exchange_transaction.g.dart'; @Deprecated( - "Do not use. Migrated to Trade in db_version_migration to hive_data_version 2") + "Do not use. Migrated to Trade in db_version_migration to hive_data_version 2", +) // @HiveType(typeId: 13) class ExchangeTransaction { /// You can use it to get transaction status at the Transaction status API endpoint @@ -114,7 +116,8 @@ class ExchangeTransaction { statusString: json["statusString"] as String? ?? "", statusObject: json["statusObject"] is Map ? ExchangeTransactionStatus.fromJson( - json["statusObject"] as Map) + json["statusObject"] as Map, + ) : null, ); } catch (e) { diff --git a/lib/models/exchange/change_now/exchange_transaction_status.dart b/lib/models/exchange/change_now/exchange_transaction_status.dart index 679d1af13..3c3aebb7f 100644 --- a/lib/models/exchange/change_now/exchange_transaction_status.dart +++ b/lib/models/exchange/change_now/exchange_transaction_status.dart @@ -9,6 +9,7 @@ */ import 'package:hive/hive.dart'; + import '../../../utilities/logger.dart'; part '../../type_adaptors/exchange_transaction_status.g.dart'; @@ -38,7 +39,8 @@ ChangeNowTransactionStatus changeNowTransactionStatusFromStringIgnoreCase( } } throw ArgumentError( - "String value does not match any known ChangeNowTransactionStatus"); + "String value does not match any known ChangeNowTransactionStatus", + ); } @HiveType(typeId: 16) @@ -189,7 +191,8 @@ class ExchangeTransactionStatus { try { return ExchangeTransactionStatus( status: changeNowTransactionStatusFromStringIgnoreCase( - json["status"] as String), + json["status"] as String, + ), payinAddress: json["payinAddress"] as String? ?? "", payoutAddress: json["payoutAddress"] as String? ?? "", fromCurrency: json["fromCurrency"] as String? ?? "", diff --git a/lib/models/exchange/majestic_bank/mb_rate.dart b/lib/models/exchange/majestic_bank/mb_rate.dart index c4b5d2b8a..7602a1725 100644 --- a/lib/models/exchange/majestic_bank/mb_rate.dart +++ b/lib/models/exchange/majestic_bank/mb_rate.dart @@ -9,10 +9,15 @@ */ import 'package:decimal/decimal.dart'; + import 'mb_object.dart'; class MBRate extends MBObject { - MBRate({required this.fromCurrency, required this.toCurrency, required this.rate,}); + MBRate({ + required this.fromCurrency, + required this.toCurrency, + required this.rate, + }); final String fromCurrency; final String toCurrency; diff --git a/lib/models/exchange/response_objects/trade.dart b/lib/models/exchange/response_objects/trade.dart index 86adb0bee..03685a0ab 100644 --- a/lib/models/exchange/response_objects/trade.dart +++ b/lib/models/exchange/response_objects/trade.dart @@ -9,8 +9,9 @@ */ import 'package:hive/hive.dart'; -import '../change_now/exchange_transaction.dart'; + import '../../../services/exchange/change_now/change_now_exchange.dart'; +import '../change_now/exchange_transaction.dart'; part 'trade.g.dart'; @@ -213,7 +214,9 @@ class Trade { } factory Trade.fromExchangeTransaction( - ExchangeTransaction exTx, bool reversed) { + ExchangeTransaction exTx, + bool reversed, + ) { return Trade( uuid: exTx.uuid, tradeId: exTx.id, diff --git a/lib/models/exchange/simpleswap/sp_currency.dart b/lib/models/exchange/simpleswap/sp_currency.dart index 04a77de67..96905f44c 100644 --- a/lib/models/exchange/simpleswap/sp_currency.dart +++ b/lib/models/exchange/simpleswap/sp_currency.dart @@ -59,8 +59,10 @@ class SPCurrency { warningsTo: json["warnings_to"] as List, ); } catch (e, s) { - Logging.instance.log("SPCurrency.fromJson failed to parse: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "SPCurrency.fromJson failed to parse: $e\n$s", + level: LogLevel.Error, + ); rethrow; } } diff --git a/lib/models/isar/exchange_cache/currency.dart b/lib/models/isar/exchange_cache/currency.dart index 71c7890ce..29fed140d 100644 --- a/lib/models/isar/exchange_cache/currency.dart +++ b/lib/models/isar/exchange_cache/currency.dart @@ -23,10 +23,12 @@ class Currency { final String exchangeName; /// Currency ticker - @Index(composite: [ - CompositeIndex("exchangeName"), - CompositeIndex("name"), - ]) + @Index( + composite: [ + CompositeIndex("exchangeName"), + CompositeIndex("name"), + ], + ) final String ticker; /// Currency name diff --git a/lib/models/isar/exchange_cache/pair.dart b/lib/models/isar/exchange_cache/pair.dart index 4630a192e..923aeb26e 100644 --- a/lib/models/isar/exchange_cache/pair.dart +++ b/lib/models/isar/exchange_cache/pair.dart @@ -29,10 +29,12 @@ class Pair { @Index() final String exchangeName; - @Index(composite: [ - CompositeIndex("exchangeName"), - CompositeIndex("to"), - ]) + @Index( + composite: [ + CompositeIndex("exchangeName"), + CompositeIndex("to"), + ], + ) final String from; final String to; diff --git a/lib/models/isar/models/blockchain_data/transaction.dart b/lib/models/isar/models/blockchain_data/transaction.dart index 73d935681..d5b3572fe 100644 --- a/lib/models/isar/models/blockchain_data/transaction.dart +++ b/lib/models/isar/models/blockchain_data/transaction.dart @@ -12,11 +12,12 @@ import 'dart:convert'; import 'dart:math'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + +import '../../../../utilities/amount/amount.dart'; import 'address.dart'; import 'input.dart'; import 'output.dart'; -import '../../../../utilities/amount/amount.dart'; -import 'package:tuple/tuple.dart'; part 'transaction.g.dart'; @@ -65,24 +66,24 @@ class Transaction { }) { return Tuple2( Transaction( - walletId: walletId ?? this.walletId, - txid: txid ?? this.txid, - timestamp: timestamp ?? this.timestamp, - type: type ?? this.type, - subType: subType ?? this.subType, - amount: amount ?? this.amount, - amountString: amountString ?? this.amountString, - fee: fee ?? this.fee, - height: height ?? this.height, - isCancelled: isCancelled ?? this.isCancelled, - isLelantus: isLelantus ?? this.isLelantus, - slateId: slateId ?? this.slateId, - otherData: otherData ?? this.otherData, - nonce: nonce ?? this.nonce, - inputs: inputs ?? this.inputs, - outputs: outputs ?? this.outputs, - numberOfMessages: numberOfMessages ?? this.numberOfMessages) - ..id = id ?? this.id, + walletId: walletId ?? this.walletId, + txid: txid ?? this.txid, + timestamp: timestamp ?? this.timestamp, + type: type ?? this.type, + subType: subType ?? this.subType, + amount: amount ?? this.amount, + amountString: amountString ?? this.amountString, + fee: fee ?? this.fee, + height: height ?? this.height, + isCancelled: isCancelled ?? this.isCancelled, + isLelantus: isLelantus ?? this.isLelantus, + slateId: slateId ?? this.slateId, + otherData: otherData ?? this.otherData, + nonce: nonce ?? this.nonce, + inputs: inputs ?? this.inputs, + outputs: outputs ?? this.outputs, + numberOfMessages: numberOfMessages ?? this.numberOfMessages, + )..id = id ?? this.id, address ?? this.address.value, ); } diff --git a/lib/models/isar/models/blockchain_data/utxo.dart b/lib/models/isar/models/blockchain_data/utxo.dart index 3a87957f0..7bbf50896 100644 --- a/lib/models/isar/models/blockchain_data/utxo.dart +++ b/lib/models/isar/models/blockchain_data/utxo.dart @@ -38,10 +38,14 @@ class UTXO { @Index() late final String walletId; - @Index(unique: true, replace: true, composite: [ - CompositeIndex("walletId"), - CompositeIndex("vout"), - ]) + @Index( + unique: true, + replace: true, + composite: [ + CompositeIndex("walletId"), + CompositeIndex("vout"), + ], + ) late final String txid; late final int vout; diff --git a/lib/models/isar/models/blockchain_data/v2/output_v2.dart b/lib/models/isar/models/blockchain_data/v2/output_v2.dart index 45a8b1329..01bfcfb0e 100644 --- a/lib/models/isar/models/blockchain_data/v2/output_v2.dart +++ b/lib/models/isar/models/blockchain_data/v2/output_v2.dart @@ -54,7 +54,7 @@ class OutputV2 { bool isFullAmountNotSats = false, }) { try { - List addresses = []; + final List addresses = []; if (json["scriptPubKey"]?["addresses"] is List) { for (final e in json["scriptPubKey"]["addresses"] as List) { @@ -68,7 +68,7 @@ class OutputV2 { scriptPubKeyHex: json["scriptPubKey"]["hex"] as String, scriptPubKeyAsm: json["scriptPubKey"]["asm"] as String?, valueStringSats: parseOutputAmountString( - json["value"] != null ? json["value"].toString(): "0", + json["value"] != null ? json["value"].toString() : "0", decimalPlaces: decimalPlaces, isFullAmountNotSats: isFullAmountNotSats, ), diff --git a/lib/models/isar/ordinal.dart b/lib/models/isar/ordinal.dart index c5c3a23da..6ac3a2dad 100644 --- a/lib/models/isar/ordinal.dart +++ b/lib/models/isar/ordinal.dart @@ -1,4 +1,5 @@ import 'package:isar/isar.dart'; + import '../../db/isar/main_db.dart'; import '../../dto/ordinals/inscription_data.dart'; import 'models/isar_models.dart'; @@ -11,10 +12,14 @@ class Ordinal { final String walletId; - @Index(unique: true, replace: true, composite: [ - CompositeIndex("utxoTXID"), - CompositeIndex("utxoVOUT"), - ]) + @Index( + unique: true, + replace: true, + composite: [ + CompositeIndex("utxoTXID"), + CompositeIndex("utxoVOUT"), + ], + ) final String inscriptionId; final int inscriptionNumber; diff --git a/lib/models/lelantus_coin.dart b/lib/models/lelantus_coin.dart index 56557c1cd..6dbce0b4a 100644 --- a/lib/models/lelantus_coin.dart +++ b/lib/models/lelantus_coin.dart @@ -40,7 +40,7 @@ class LelantusCoin { @override String toString() { - String coin = + final String coin = "{index: $index, value: $value, publicCoin: $publicCoin, txId: $txId, anonymitySetId: $anonymitySetId, isUsed: $isUsed}"; return coin; } diff --git a/lib/models/node_model.dart b/lib/models/node_model.dart index 636be9aac..a07c9a2dd 100644 --- a/lib/models/node_model.dart +++ b/lib/models/node_model.dart @@ -86,7 +86,7 @@ class NodeModel { } Map toMap() { - Map map = {}; + final Map map = {}; map['host'] = host; map['port'] = port; map['name'] = name; diff --git a/lib/models/paymint/transactions_model.dart b/lib/models/paymint/transactions_model.dart index c00f31565..6cea6f1ce 100644 --- a/lib/models/paymint/transactions_model.dart +++ b/lib/models/paymint/transactions_model.dart @@ -34,29 +34,32 @@ class TransactionData { TransactionData({this.txChunks = const []}); factory TransactionData.fromJson(Map json) { - var dateTimeChunks = json['dateTimeChunks'] as List; - List chunksList = dateTimeChunks - .map((txChunk) => - TransactionChunk.fromJson(txChunk as Map)) + final dateTimeChunks = json['dateTimeChunks'] as List; + final List chunksList = dateTimeChunks + .map( + (txChunk) => + TransactionChunk.fromJson(txChunk as Map), + ) .toList(); return TransactionData(txChunks: chunksList); } factory TransactionData.fromMap(Map transactions) { - Map> chunks = {}; + final Map> chunks = {}; transactions.forEach((key, value) { - String date = extractDateFromTimestamp(value.timestamp); + final String date = extractDateFromTimestamp(value.timestamp); if (!chunks.containsKey(date)) { chunks[date] = []; } chunks[date]!.add(value); }); - List chunksList = []; + final List chunksList = []; chunks.forEach((key, value) { value.sort((a, b) => b.timestamp.compareTo(a.timestamp)); chunksList.add( - TransactionChunk(timestamp: value[0].timestamp, transactions: value)); + TransactionChunk(timestamp: value[0].timestamp, transactions: value), + ); }); chunksList.sort((a, b) => b.timestamp.compareTo(a.timestamp)); return TransactionData(txChunks: chunksList); @@ -64,9 +67,9 @@ class TransactionData { Transaction? findTransaction(String txid) { for (var i = 0; i < txChunks.length; i++) { - var txChunk = txChunks[i].transactions; + final txChunk = txChunks[i].transactions; for (var j = 0; j < txChunk.length; j++) { - var tx = txChunk[j]; + final tx = txChunk[j]; if (tx.txid == txid) { return tx; } @@ -76,11 +79,11 @@ class TransactionData { } Map getAllTransactions() { - Map transactions = {}; + final Map transactions = {}; for (var i = 0; i < txChunks.length; i++) { - var txChunk = txChunks[i].transactions; + final txChunk = txChunks[i].transactions; for (var j = 0; j < txChunk.length; j++) { - var tx = txChunk[j]; + final tx = txChunk[j]; transactions[tx.txid] = tx; } } @@ -98,14 +101,15 @@ class TransactionChunk { TransactionChunk({required this.timestamp, required this.transactions}); factory TransactionChunk.fromJson(Map json) { - var txArray = json['transactions'] as List; - List txList = txArray + final txArray = json['transactions'] as List; + final List txList = txArray .map((tx) => Transaction.fromJson(tx as Map)) .toList(); return TransactionChunk( - timestamp: int.parse(json['timestamp'].toString()), - transactions: txList); + timestamp: int.parse(json['timestamp'].toString()), + transactions: txList, + ); } @override @@ -191,15 +195,16 @@ class Transaction { }); factory Transaction.fromJson(Map json) { - var inputArray = json['inputs'] as List; - var outputArray = json['outputs'] as List; + final inputArray = json['inputs'] as List; + final outputArray = json['outputs'] as List; - List inputList = inputArray + final List inputList = inputArray .map((input) => Input.fromJson(Map.from(input as Map))) .toList(); - List outputList = outputArray - .map((output) => - Output.fromJson(Map.from(output as Map))) + final List outputList = outputArray + .map( + (output) => Output.fromJson(Map.from(output as Map)), + ) .toList(); return Transaction( @@ -304,7 +309,7 @@ class Transaction { @override String toString() { - String transaction = + final String transaction = "{txid: $txid, type: $txType, subType: $subType, value: $amount, fee: $fees, height: $height, confirm: $confirmedStatus, confirmations: $confirmations, address: $address, timestamp: $timestamp, worthNow: $worthNow, inputs: $inputs, slateid: $slateId, numberOfMessages: $numberOfMessages }"; return transaction; } @@ -344,7 +349,7 @@ class Input { }); factory Input.fromJson(Map json) { - bool iscoinBase = json['coinbase'] != null; + final bool iscoinBase = json['coinbase'] != null; return Input( txid: json['txid'] as String? ?? "", vout: json['vout'] as int? ?? -1, @@ -361,7 +366,7 @@ class Input { @override String toString() { - String transaction = "{txid: $txid}"; + final String transaction = "{txid: $txid}"; return transaction; } } @@ -383,12 +388,13 @@ class Output { // @HiveField(4) final int value; - Output( - {this.scriptpubkey, - this.scriptpubkeyAsm, - this.scriptpubkeyType, - required this.scriptpubkeyAddress, - required this.value}); + Output({ + this.scriptpubkey, + this.scriptpubkeyAsm, + this.scriptpubkeyType, + required this.scriptpubkeyAddress, + required this.value, + }); factory Output.fromJson(Map json) { // TODO determine if any of this code is needed. @@ -405,12 +411,13 @@ class Output { ); } catch (s, e) { return Output( - // Return output object with null values; allows wallet history to be built - scriptpubkey: "", - scriptpubkeyAsm: "", - scriptpubkeyType: "", - scriptpubkeyAddress: "", - value: _parse(0.toString())); + // Return output object with null values; allows wallet history to be built + scriptpubkey: "", + scriptpubkeyAsm: "", + scriptpubkeyType: "", + scriptpubkeyAddress: "", + value: _parse(0.toString()), + ); } } } diff --git a/lib/models/paymint/utxo_model.dart b/lib/models/paymint/utxo_model.dart index 07f2c0e69..5a8ccffaa 100644 --- a/lib/models/paymint/utxo_model.dart +++ b/lib/models/paymint/utxo_model.dart @@ -35,8 +35,8 @@ class UtxoData { }); factory UtxoData.fromJson(Map json) { - var outputList = json['outputArray'] as List; - List utxoList = outputList + final outputList = json['outputArray'] as List; + final List utxoList = outputList .map((output) => UtxoObject.fromJson(output as Map)) .toList(); final String totalUserCurr = json['total_user_currency'] as String? ?? ""; @@ -104,7 +104,7 @@ class UtxoObject { @override String toString() { - String utxo = + final String utxo = "{txid: $txid, vout: $vout, value: $value, fiat: $fiatWorth, blocked: $blocked, status: $status, is_coinbase: $isCoinbase}"; return utxo; diff --git a/lib/models/paynym/paynym_account.dart b/lib/models/paynym/paynym_account.dart index 184f8c8aa..4d44d43fc 100644 --- a/lib/models/paynym/paynym_account.dart +++ b/lib/models/paynym/paynym_account.dart @@ -44,12 +44,16 @@ class PaynymAccount { .map((e) => PaynymCode.fromMap(Map.from(e as Map))) .toList(), followers = (map["followers"] as List) - .map((e) => - PaynymAccountLite.fromMap(Map.from(e as Map))) + .map( + (e) => PaynymAccountLite.fromMap( + Map.from(e as Map)), + ) .toList(), following = (map["following"] as List) - .map((e) => - PaynymAccountLite.fromMap(Map.from(e as Map))) + .map( + (e) => PaynymAccountLite.fromMap( + Map.from(e as Map)), + ) .toList(); PaynymAccount copyWith({ diff --git a/lib/models/paynym/paynym_follow.dart b/lib/models/paynym/paynym_follow.dart index 73fbdb2e8..76c903bee 100644 --- a/lib/models/paynym/paynym_follow.dart +++ b/lib/models/paynym/paynym_follow.dart @@ -21,13 +21,13 @@ class PaynymFollow { token = map["token"] as String; Map toMap() => { - "follower": follower, - "following": following, - "token": token, - }; + "follower": follower, + "following": following, + "token": token, + }; @override String toString() { return toMap().toString(); } -} \ No newline at end of file +} diff --git a/lib/models/stack_restoring_ui_state.dart b/lib/models/stack_restoring_ui_state.dart index 6ee4e9e1b..39a8f4f4b 100644 --- a/lib/models/stack_restoring_ui_state.dart +++ b/lib/models/stack_restoring_ui_state.dart @@ -10,9 +10,10 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'wallet_restore_state.dart'; + import '../utilities/enums/stack_restoring_status.dart'; import '../wallets/wallet/wallet.dart'; +import 'wallet_restore_state.dart'; class StackRestoringUIState extends ChangeNotifier { bool _walletsWasSet = false; @@ -94,7 +95,7 @@ class StackRestoringUIState extends ChangeNotifier { } List get wallets { - List _wallets = []; + final List _wallets = []; for (final item in _walletStates.values) { if (item.wallet != null) { _wallets.add(item.wallet!); @@ -125,7 +126,8 @@ class StackRestoringUIState extends ChangeNotifier { } ChangeNotifierProvider getWalletRestoreStateProvider( - String walletId) { + String walletId, + ) { return _walletStateProviders[walletId]!; } diff --git a/lib/notifications/notification_card.dart b/lib/notifications/notification_card.dart index feb81ce54..217608225 100644 --- a/lib/notifications/notification_card.dart +++ b/lib/notifications/notification_card.dart @@ -13,6 +13,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../app_config.dart'; import '../models/isar/stack_theme.dart'; import '../models/notification_model.dart'; @@ -28,9 +29,9 @@ import '../widgets/rounded_white_container.dart'; class NotificationCard extends ConsumerWidget { const NotificationCard({ - Key? key, + super.key, required this.notification, - }) : super(key: key); + }); final NotificationModel notification; @@ -71,10 +72,11 @@ class NotificationCard extends ConsumerWidget { ? SvgPicture.file( File( coinIconPath( - ref.watch( - themeAssetsProvider, - ), - ref), + ref.watch( + themeAssetsProvider, + ), + ref, + ), ), width: isDesktop ? desktopIconSize : mobileIconSize, height: isDesktop ? desktopIconSize : mobileIconSize, @@ -89,10 +91,11 @@ class NotificationCard extends ConsumerWidget { child: SvgPicture.file( File( coinIconPath( - ref.watch( - themeAssetsProvider, - ), - ref), + ref.watch( + themeAssetsProvider, + ), + ref, + ), ), color: Theme.of(context) .extension()! @@ -123,7 +126,7 @@ class NotificationCard extends ConsumerWidget { .extension()! .accentColorGreen, ), - ) + ), ], ), child: Text( diff --git a/lib/pages/TermsOfServiceView.dart b/lib/pages/TermsOfServiceView.dart index 64258b24f..0cea952f7 100644 --- a/lib/pages/TermsOfServiceView.dart +++ b/lib/pages/TermsOfServiceView.dart @@ -11,7 +11,7 @@ import 'package:flutter/material.dart'; class TermsOfServiceView extends StatelessWidget { - const TermsOfServiceView({Key? key}) : super(key: key); + const TermsOfServiceView({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pages/add_wallet_views/add_token_view/add_custom_token_view.dart b/lib/pages/add_wallet_views/add_token_view/add_custom_token_view.dart index 155d741b7..210fc954f 100644 --- a/lib/pages/add_wallet_views/add_token_view/add_custom_token_view.dart +++ b/lib/pages/add_wallet_views/add_token_view/add_custom_token_view.dart @@ -13,6 +13,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../models/isar/models/ethereum/eth_contract.dart'; import '../../../services/ethereum/ethereum_api.dart'; import '../../../themes/stack_colors.dart'; @@ -29,8 +30,8 @@ import '../../../widgets/stack_dialog.dart'; class AddCustomTokenView extends ConsumerStatefulWidget { const AddCustomTokenView({ - Key? key, - }) : super(key: key); + super.key, + }); static const routeName = "/addCustomToken"; @@ -138,7 +139,8 @@ class _AddCustomTokenViewState extends ConsumerState { onPressed: () async { final response = await showLoading( whileFuture: EthereumAPI.getTokenContractInfoByAddress( - contractController.text), + contractController.text, + ), context: context, message: "Looking up contract", ); @@ -212,10 +214,12 @@ class _AddCustomTokenViewState extends ConsumerState { controller: decimalsController, style: STextStyles.field(context), inputFormatters: [ - TextInputFormatter.withFunction((oldValue, newValue) => - RegExp(r'^([0-9]*)$').hasMatch(newValue.text) - ? newValue - : oldValue), + TextInputFormatter.withFunction( + (oldValue, newValue) => + RegExp(r'^([0-9]*)$').hasMatch(newValue.text) + ? newValue + : oldValue, + ), ], keyboardType: const TextInputType.numberWithOptions( signed: false, @@ -253,10 +257,12 @@ class _AddCustomTokenViewState extends ConsumerState { controller: decimalsController, style: STextStyles.field(context), inputFormatters: [ - TextInputFormatter.withFunction((oldValue, newValue) => - RegExp(r'^([0-9]*)$').hasMatch(newValue.text) - ? newValue - : oldValue), + TextInputFormatter.withFunction( + (oldValue, newValue) => + RegExp(r'^([0-9]*)$').hasMatch(newValue.text) + ? newValue + : oldValue, + ), ], keyboardType: const TextInputType.numberWithOptions( signed: false, diff --git a/lib/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart b/lib/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart index 4a54b9b3d..46fa6f333 100644 --- a/lib/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart +++ b/lib/pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart @@ -14,14 +14,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; + import '../../../db/isar/main_db.dart'; import '../../../models/isar/models/ethereum/eth_contract.dart'; import '../../../notifications/show_flush_bar.dart'; -import 'add_custom_token_view.dart'; -import 'sub_widgets/add_token_list.dart'; -import 'sub_widgets/add_token_list_element.dart'; -import 'sub_widgets/add_token_text.dart'; -import '../../home_view/home_view.dart'; import '../../../pages_desktop_specific/desktop_home_view.dart'; import '../../../providers/global/price_provider.dart'; import '../../../providers/global/wallets_provider.dart'; @@ -46,14 +42,19 @@ import '../../../widgets/icon_widgets/x_icon.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_text_field.dart'; import '../../../widgets/textfield_icon_button.dart'; +import '../../home_view/home_view.dart'; +import 'add_custom_token_view.dart'; +import 'sub_widgets/add_token_list.dart'; +import 'sub_widgets/add_token_list_element.dart'; +import 'sub_widgets/add_token_text.dart'; class EditWalletTokensView extends ConsumerStatefulWidget { const EditWalletTokensView({ - Key? key, + super.key, required this.walletId, this.contractsToMarkSelected, this.isDesktopPopup = false, - }) : super(key: key); + }); final String walletId; final List? contractsToMarkSelected; @@ -178,7 +179,8 @@ class _EditWalletTokensViewState extends ConsumerState { if (contracts.isEmpty) { contracts.addAll(DefaultTokens.list); MainDB.instance.putEthContracts(contracts).then( - (_) => ref.read(priceAnd24hChangeNotifierProvider).updatePrice()); + (_) => ref.read(priceAnd24hChangeNotifierProvider).updatePrice(), + ); } tokenEntities.addAll(contracts.map((e) => AddTokenListElementData(e))); @@ -241,7 +243,8 @@ class _EditWalletTokensViewState extends ConsumerState { "Add custom token", style: STextStyles.desktopButtonSmallSecondaryEnabled( - context), + context, + ), ), ), ), diff --git a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_custom_token_selector.dart b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_custom_token_selector.dart index 0274a99f3..cf1b48e4f 100644 --- a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_custom_token_selector.dart +++ b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_custom_token_selector.dart @@ -18,9 +18,9 @@ import '../../../../utilities/util.dart'; class AddCustomTokenSelector extends StatelessWidget { const AddCustomTokenSelector({ - Key? key, + super.key, required this.addFunction, - }) : super(key: key); + }); final VoidCallback addFunction; diff --git a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list.dart b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list.dart index 19e4e833a..23bfb36c2 100644 --- a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list.dart +++ b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_list.dart @@ -15,11 +15,11 @@ import '../../../../widgets/conditional_parent.dart'; class AddTokenList extends StatelessWidget { const AddTokenList({ - Key? key, + super.key, required this.walletId, required this.items, required this.addFunction, - }) : super(key: key); + }); final String walletId; final List items; diff --git a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_text.dart b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_text.dart index d92e210f1..481c052cc 100644 --- a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_text.dart +++ b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_text.dart @@ -13,10 +13,10 @@ import '../../../../utilities/text_styles.dart'; class AddTokenText extends StatelessWidget { const AddTokenText({ - Key? key, + super.key, required this.isDesktop, this.walletName, - }) : super(key: key); + }); final String? walletName; final bool isDesktop; diff --git a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_entity_list.dart b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_entity_list.dart index 2be9e6e7f..5ec69997d 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_entity_list.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/add_wallet_entity_list.dart @@ -14,10 +14,10 @@ import 'coin_select_item.dart'; class AddWalletEntityList extends StatelessWidget { const AddWalletEntityList({ - Key? key, + super.key, required this.entities, this.trailing, - }) : super(key: key); + }); final List entities; final Widget? trailing; diff --git a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/expanding_sub_list_item.dart b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/expanding_sub_list_item.dart index 1affe8787..d934526b8 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/expanding_sub_list_item.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/expanding_sub_list_item.dart @@ -10,27 +10,27 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../../models/add_wallet_list_entity/add_wallet_list_entity.dart'; -import 'add_wallet_entity_list.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; import '../../../../widgets/animated_widgets/rotate_icon.dart'; import '../../../../widgets/expandable.dart'; +import 'add_wallet_entity_list.dart'; class ExpandingSubListItem extends StatefulWidget { const ExpandingSubListItem({ - Key? key, + super.key, required this.title, required this.entities, this.trailing, required this.initialState, double? animationDurationMultiplier, this.curve = Curves.easeInOutCubicEmphasized, - }) : animationDurationMultiplier = - animationDurationMultiplier ?? entities.length * 0.11, - super(key: key); + }) : animationDurationMultiplier = + animationDurationMultiplier ?? entities.length * 0.11; final String title; final List entities; diff --git a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/next_button.dart b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/next_button.dart index 56b5fa258..4447cc7a9 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/next_button.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/sub_widgets/next_button.dart @@ -19,9 +19,9 @@ import '../../../../utilities/text_styles.dart'; class AddWalletNextButton extends ConsumerWidget { const AddWalletNextButton({ - Key? key, + super.key, required this.isDesktop, - }) : super(key: key); + }); final bool isDesktop; diff --git a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_subtitle.dart b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_subtitle.dart index d66ded246..ddd106a50 100644 --- a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_subtitle.dart +++ b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_or_restore_wallet_subtitle.dart @@ -13,9 +13,9 @@ import '../../../../utilities/text_styles.dart'; class CreateRestoreWalletSubTitle extends StatelessWidget { const CreateRestoreWalletSubTitle({ - Key? key, + super.key, required this.isDesktop, - }) : super(key: key); + }); final bool isDesktop; diff --git a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart index 895aeb533..e042ddcdb 100644 --- a/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart +++ b/lib/pages/add_wallet_views/create_or_restore_wallet_view/sub_widgets/create_wallet_button_group.dart @@ -87,7 +87,8 @@ class CreateWalletButtonGroup extends StatelessWidget { : STextStyles.button(context).copyWith( color: Theme.of(context) .extension()! - .accentColorDark), + .accentColorDark, + ), ), ), ), diff --git a/lib/pages/add_wallet_views/frost_ms/new/select_new_frost_import_type_view.dart b/lib/pages/add_wallet_views/frost_ms/new/select_new_frost_import_type_view.dart index 3546dd964..d377eff72 100644 --- a/lib/pages/add_wallet_views/frost_ms/new/select_new_frost_import_type_view.dart +++ b/lib/pages/add_wallet_views/frost_ms/new/select_new_frost_import_type_view.dart @@ -167,7 +167,7 @@ class _SelectNewFrostImportTypeViewState FrostStepScaffold.routeName, ); }, - ) + ), ], ), ), diff --git a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1b.dart b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1b.dart index f38d05234..59597c659 100644 --- a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1b.dart +++ b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1b.dart @@ -176,7 +176,7 @@ class _FrostCreateStep1bState extends ConsumerState { .routeName, ); }, - ) + ), ], ), ); diff --git a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_4.dart b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_4.dart index b8f7aee88..0a4615280 100644 --- a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_4.dart +++ b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_4.dart @@ -70,7 +70,7 @@ class _FrostCreateStep4State extends ConsumerState { .routeName, ); }, - ) + ), ], ), ); diff --git a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart index 3514cc20d..962e207bf 100644 --- a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart +++ b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1c.dart @@ -222,7 +222,7 @@ class _FrostReshareStep1cState extends ConsumerState { _buttonLock = false; } }, - ) + ), ], ), ); diff --git a/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart b/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart index eb2797da6..f75328e6a 100644 --- a/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart +++ b/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart @@ -341,7 +341,7 @@ class _NameYourWalletViewState extends ConsumerState { }); } }, - ) + ), ], ), ), diff --git a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart index 510abe67d..ee80421dc 100644 --- a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart +++ b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/new_wallet_recovery_phrase_view.dart @@ -40,11 +40,11 @@ import 'sub_widgets/mnemonic_table.dart'; class NewWalletRecoveryPhraseView extends ConsumerStatefulWidget { const NewWalletRecoveryPhraseView({ - Key? key, + super.key, required this.wallet, required this.mnemonic, this.clipboardInterface = const ClipboardWrapper(), - }) : super(key: key); + }); static const routeName = "/newWalletRecoveryPhrase"; @@ -91,12 +91,14 @@ class _NewWalletRecoveryPhraseViewState Future _copy() async { final words = _mnemonic; await _clipboardInterface.setData(ClipboardData(text: words.join(" "))); - unawaited(showFloatingFlushBar( - type: FlushBarType.info, - message: "Copied to clipboard", - iconAsset: Assets.svg.copy, - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.info, + message: "Copied to clipboard", + iconAsset: Assets.svg.copy, + context: context, + ), + ); } @override @@ -238,7 +240,8 @@ class _NewWalletRecoveryPhraseViewState .background : Theme.of(context).extension()!.popupBG, borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius), + Constants.size.circularBorderRadius, + ), ), child: Padding( padding: isDesktop @@ -252,7 +255,8 @@ class _NewWalletRecoveryPhraseViewState : STextStyles.label(context).copyWith( color: Theme.of(context) .extension()! - .accentColorDark), + .accentColorDark, + ), ), ), ), @@ -300,8 +304,9 @@ class _NewWalletRecoveryPhraseViewState Text( "Copy to clipboard", style: STextStyles.desktopButtonSecondaryEnabled( - context), - ) + context, + ), + ), ], ), ), @@ -325,10 +330,12 @@ class _NewWalletRecoveryPhraseViewState .read(verifyMnemonicCorrectWordStateProvider.state) .update((state) => _mnemonic[next]); - unawaited(Navigator.of(context).pushNamed( - VerifyRecoveryPhraseView.routeName, - arguments: Tuple2(_wallet, _mnemonic), - )); + unawaited( + Navigator.of(context).pushNamed( + VerifyRecoveryPhraseView.routeName, + arguments: Tuple2(_wallet, _mnemonic), + ), + ); }, style: Theme.of(context) .extension()! diff --git a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart index 4f26fcffa..f3ccdc097 100644 --- a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart +++ b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart @@ -13,11 +13,11 @@ import 'mnemonic_table_item.dart'; class MnemonicTable extends StatelessWidget { const MnemonicTable({ - Key? key, + super.key, required this.words, required this.isDesktop, this.itemBorderColor, - }) : super(key: key); + }); final List words; final bool isDesktop; diff --git a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table_item.dart b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table_item.dart index c39c496d7..bb1806fad 100644 --- a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table_item.dart +++ b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table_item.dart @@ -15,12 +15,12 @@ import '../../../../widgets/rounded_white_container.dart'; class MnemonicTableItem extends StatelessWidget { const MnemonicTableItem({ - Key? key, + super.key, required this.number, required this.word, required this.isDesktop, this.borderColor, - }) : super(key: key); + }); final int number; final String word; diff --git a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/recovery_phrase_explanation_dialog.dart b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/recovery_phrase_explanation_dialog.dart index bb9626c67..22c2edb8e 100644 --- a/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/recovery_phrase_explanation_dialog.dart +++ b/lib/pages/add_wallet_views/new_wallet_recovery_phrase_warning_view/recovery_phrase_explanation_dialog.dart @@ -14,7 +14,7 @@ import '../../../widgets/desktop/secondary_button.dart'; import '../../../widgets/stack_dialog.dart'; class RecoveryPhraseExplanationDialog extends StatelessWidget { - const RecoveryPhraseExplanationDialog({Key? key}) : super(key: key); + const RecoveryPhraseExplanationDialog({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pages/add_wallet_views/restore_wallet_view/confirm_recovery_dialog.dart b/lib/pages/add_wallet_views/restore_wallet_view/confirm_recovery_dialog.dart index 70a519fad..fe11d3502 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/confirm_recovery_dialog.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/confirm_recovery_dialog.dart @@ -21,8 +21,7 @@ import '../../../widgets/desktop/secondary_button.dart'; import '../../../widgets/stack_dialog.dart'; class ConfirmRecoveryDialog extends StatelessWidget { - const ConfirmRecoveryDialog({Key? key, required this.onConfirm}) - : super(key: key); + const ConfirmRecoveryDialog({super.key, required this.onConfirm}); final VoidCallback onConfirm; @@ -85,10 +84,10 @@ class ConfirmRecoveryDialog extends StatelessWidget { onConfirm.call(); }, ), - ) + ), ], ), - ) + ), ], ), ); diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/mobile_mnemonic_length_selector.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/mobile_mnemonic_length_selector.dart index 7299ca476..af86c3261 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/mobile_mnemonic_length_selector.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/mobile_mnemonic_length_selector.dart @@ -20,9 +20,9 @@ import '../../../../../utilities/util.dart'; class MobileMnemonicLengthSelector extends ConsumerWidget { const MobileMnemonicLengthSelector({ - Key? key, + super.key, required this.chooseMnemonicLength, - }) : super(key: key); + }); final VoidCallback chooseMnemonicLength; @@ -66,7 +66,7 @@ class MobileMnemonicLengthSelector extends ConsumerWidget { ], ), ), - ) + ), ], ); } diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_from_date_picker.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_from_date_picker.dart index 58869bdf4..55aa6ff63 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_from_date_picker.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_from_date_picker.dart @@ -17,10 +17,10 @@ import '../../../../../utilities/util.dart'; class RestoreFromDatePicker extends StatefulWidget { const RestoreFromDatePicker({ - Key? key, + super.key, required this.onTap, required this.controller, - }) : super(key: key); + }); final VoidCallback onTap; final TextEditingController controller; diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_next_button.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_next_button.dart index 8ac5ed213..2ca2aeedd 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_next_button.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_next_button.dart @@ -14,10 +14,10 @@ import '../../../../../utilities/text_styles.dart'; class RestoreOptionsNextButton extends StatelessWidget { const RestoreOptionsNextButton({ - Key? key, + super.key, required this.isDesktop, this.onPressed, - }) : super(key: key); + }); final bool isDesktop; final VoidCallback? onPressed; diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_platform_layout.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_platform_layout.dart index 9f606eb66..14a7a204c 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_platform_layout.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/sub_widgets/restore_options_platform_layout.dart @@ -13,10 +13,10 @@ import '../../../../../themes/stack_colors.dart'; class RestoreOptionsPlatformLayout extends StatelessWidget { const RestoreOptionsPlatformLayout({ - Key? key, + super.key, required this.isDesktop, required this.child, - }) : super(key: key); + }); final bool isDesktop; final Widget child; diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart index 41eddad6d..9daf9d300 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart @@ -48,11 +48,6 @@ import '../../../utilities/enums/form_input_status_enum.dart'; import '../../../utilities/logger.dart'; import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; -import '../../../wallets/crypto_currency/coins/epiccash.dart'; -import '../../../wallets/crypto_currency/coins/ethereum.dart'; -import '../../../wallets/crypto_currency/coins/firo.dart'; -import '../../../wallets/crypto_currency/coins/monero.dart'; -import '../../../wallets/crypto_currency/coins/wownero.dart'; import '../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../wallets/isar/models/wallet_info.dart'; import '../../../wallets/wallet/impl/epiccash_wallet.dart'; diff --git a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/mnemonic_word_count_select_sheet.dart b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/mnemonic_word_count_select_sheet.dart index c1533bad4..933b72ba5 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/mnemonic_word_count_select_sheet.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/mnemonic_word_count_select_sheet.dart @@ -10,6 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../../providers/ui/verify_recovery_phrase/mnemonic_word_count_state_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/constants.dart'; @@ -17,9 +18,9 @@ import '../../../../utilities/text_styles.dart'; class MnemonicWordCountSelectSheet extends ConsumerWidget { const MnemonicWordCountSelectSheet({ - Key? key, + super.key, required this.lengthOptions, - }) : super(key: key); + }); final List lengthOptions; @@ -113,13 +114,16 @@ class MnemonicWordCountSelectSheet extends ConsumerWidget { .radioButtonIconEnabled, value: lengthOptions[i], groupValue: ref - .watch(mnemonicWordCountStateProvider - .state) + .watch( + mnemonicWordCountStateProvider.state, + ) .state, onChanged: (x) { ref - .read(mnemonicWordCountStateProvider - .state) + .read( + mnemonicWordCountStateProvider + .state, + ) .state = lengthOptions[i]; Navigator.of(context).pop(); }, diff --git a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_failed_dialog.dart b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_failed_dialog.dart index fc45b372a..1ae4a5efd 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_failed_dialog.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_failed_dialog.dart @@ -20,11 +20,11 @@ import '../../../../widgets/stack_dialog.dart'; class RestoreFailedDialog extends ConsumerStatefulWidget { const RestoreFailedDialog({ - Key? key, + super.key, required this.errorMessage, required this.walletName, required this.walletId, - }) : super(key: key); + }); final String errorMessage; final String walletName; diff --git a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_succeeded_dialog.dart b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_succeeded_dialog.dart index 4c5364e44..f290c6751 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_succeeded_dialog.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restore_succeeded_dialog.dart @@ -20,7 +20,7 @@ import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/stack_dialog.dart'; class RestoreSucceededDialog extends StatelessWidget { - const RestoreSucceededDialog({Key? key}) : super(key: key); + const RestoreSucceededDialog({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restoring_dialog.dart b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restoring_dialog.dart index 29a4dcf40..38004caad 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restoring_dialog.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/sub_widgets/restoring_dialog.dart @@ -20,9 +20,9 @@ import '../../../../widgets/stack_dialog.dart'; class RestoringDialog extends StatefulWidget { const RestoringDialog({ - Key? key, + super.key, required this.onCancel, - }) : super(key: key); + }); final Future Function() onCancel; diff --git a/lib/pages/add_wallet_views/select_wallet_for_token_view.dart b/lib/pages/add_wallet_views/select_wallet_for_token_view.dart index 648f6a0de..debe8731c 100644 --- a/lib/pages/add_wallet_views/select_wallet_for_token_view.dart +++ b/lib/pages/add_wallet_views/select_wallet_for_token_view.dart @@ -37,9 +37,9 @@ final newEthWalletTriggerTempUntilHiveCompletelyDeleted = class SelectWalletForTokenView extends ConsumerStatefulWidget { const SelectWalletForTokenView({ - Key? key, + super.key, required this.entity, - }) : super(key: key); + }); static const String routeName = "/selectWalletForTokenView"; diff --git a/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table.dart b/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table.dart index 8674f6b07..63c305a3b 100644 --- a/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table.dart +++ b/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table.dart @@ -14,10 +14,10 @@ import 'word_table_item.dart'; class WordTable extends ConsumerWidget { const WordTable({ - Key? key, + super.key, required this.words, required this.isDesktop, - }) : super(key: key); + }); final List words; final bool isDesktop; diff --git a/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table_item.dart b/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table_item.dart index 64135fe95..993f825dc 100644 --- a/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table_item.dart +++ b/lib/pages/add_wallet_views/verify_recovery_phrase_view/sub_widgets/word_table_item.dart @@ -17,11 +17,11 @@ import '../../../../utilities/text_styles.dart'; class WordTableItem extends ConsumerWidget { const WordTableItem({ - Key? key, + super.key, required this.number, required this.word, required this.isDesktop, - }) : super(key: key); + }); final int number; final String word; diff --git a/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_mnemonic_passphrase_dialog.dart b/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_mnemonic_passphrase_dialog.dart index 77b650c81..d21c71706 100644 --- a/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_mnemonic_passphrase_dialog.dart +++ b/lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_mnemonic_passphrase_dialog.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../../notifications/show_flush_bar.dart'; -import '../new_wallet_options/new_wallet_options_view.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/constants.dart'; @@ -15,6 +15,7 @@ import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/desktop/secondary_button.dart'; import '../../../widgets/stack_dialog.dart'; import '../../../widgets/stack_text_field.dart'; +import '../new_wallet_options/new_wallet_options_view.dart'; class VerifyMnemonicPassphraseDialog extends ConsumerStatefulWidget { const VerifyMnemonicPassphraseDialog({super.key}); @@ -154,7 +155,8 @@ class _VerifyMnemonicPassphraseDialogState ), GestureDetector( key: const Key( - "mnemonicPassphraseFieldShowPasswordButtonKey"), + "mnemonicPassphraseFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; diff --git a/lib/pages/address_book_views/address_book_view.dart b/lib/pages/address_book_views/address_book_view.dart index b9ed9560f..dc5cc6f99 100644 --- a/lib/pages/address_book_views/address_book_view.dart +++ b/lib/pages/address_book_views/address_book_view.dart @@ -20,7 +20,6 @@ import '../../providers/db/main_db_provider.dart'; import '../../providers/global/address_book_service_provider.dart'; import '../../providers/providers.dart'; import '../../providers/ui/address_book_providers/address_book_filter_provider.dart'; -import '../../app_config.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; import '../../utilities/constants.dart'; diff --git a/lib/pages/address_book_views/subviews/add_address_book_entry_view.dart b/lib/pages/address_book_views/subviews/add_address_book_entry_view.dart index bf1ee6b39..66b4b1aa9 100644 --- a/lib/pages/address_book_views/subviews/add_address_book_entry_view.dart +++ b/lib/pages/address_book_views/subviews/add_address_book_entry_view.dart @@ -12,8 +12,9 @@ import 'package:emojis/emoji.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:uuid/uuid.dart'; + import '../../../models/isar/models/contact_entry.dart'; -import 'new_contact_address_entry_form.dart'; import '../../../providers/global/address_book_service_provider.dart'; import '../../../providers/ui/address_book_providers/address_entry_data_provider.dart'; import '../../../providers/ui/address_book_providers/contact_name_is_not_empty_state_provider.dart'; @@ -37,14 +38,14 @@ import '../../../widgets/emoji_select_sheet.dart'; import '../../../widgets/icon_widgets/x_icon.dart'; import '../../../widgets/stack_text_field.dart'; import '../../../widgets/textfield_icon_button.dart'; -import 'package:uuid/uuid.dart'; +import 'new_contact_address_entry_form.dart'; class AddAddressBookEntryView extends ConsumerStatefulWidget { const AddAddressBookEntryView({ - Key? key, + super.key, this.barcodeScanner = const BarcodeScannerWrapper(), this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); static const String routeName = "/addAddressBookEntry"; @@ -129,64 +130,66 @@ class _AddAddressBookEntryViewState builder: (child) { return Background( child: Scaffold( - backgroundColor: - Theme.of(context).extension()!.background, - appBar: AppBar( - leading: AppBarBackButton( - onPressed: () async { - if (FocusScope.of(context).hasFocus) { - FocusScope.of(context).unfocus(); - await Future.delayed( - const Duration(milliseconds: 75)); - } - if (mounted) { - Navigator.of(context).pop(); - } - }, - ), - title: Text( - "New contact", - style: STextStyles.navBarTitle(context), - ), - actions: [ - Padding( - padding: const EdgeInsets.only( - top: 10, - bottom: 10, - right: 10, - ), - child: AspectRatio( - aspectRatio: 1, - child: AppBarIconButton( - key: const Key("addAddressBookEntryFavoriteButtonKey"), - size: 36, - shadows: const [], - color: Theme.of(context) - .extension()! - .background, - icon: SvgPicture.asset( - Assets.svg.star, - color: _isFavorite - ? Theme.of(context) - .extension()! - .favoriteStarActive - : Theme.of(context) - .extension()! - .favoriteStarInactive, - width: 20, - height: 20, - ), - onPressed: () { - setState(() { - _isFavorite = !_isFavorite; - }); - }, + backgroundColor: + Theme.of(context).extension()!.background, + appBar: AppBar( + leading: AppBarBackButton( + onPressed: () async { + if (FocusScope.of(context).hasFocus) { + FocusScope.of(context).unfocus(); + await Future.delayed( + const Duration(milliseconds: 75), + ); + } + if (mounted) { + Navigator.of(context).pop(); + } + }, + ), + title: Text( + "New contact", + style: STextStyles.navBarTitle(context), + ), + actions: [ + Padding( + padding: const EdgeInsets.only( + top: 10, + bottom: 10, + right: 10, + ), + child: AspectRatio( + aspectRatio: 1, + child: AppBarIconButton( + key: const Key("addAddressBookEntryFavoriteButtonKey"), + size: 36, + shadows: const [], + color: Theme.of(context) + .extension()! + .background, + icon: SvgPicture.asset( + Assets.svg.star, + color: _isFavorite + ? Theme.of(context) + .extension()! + .favoriteStarActive + : Theme.of(context) + .extension()! + .favoriteStarInactive, + width: 20, + height: 20, ), + onPressed: () { + setState(() { + _isFavorite = !_isFavorite; + }); + }, ), ), - ], - ), - body: child), + ), + ], + ), + body: child, + ), ); }, child: ConditionalParent( @@ -267,22 +270,23 @@ class _AddAddressBookEntryViewState } showDialog( - context: context, - builder: (context) { - return const DesktopDialog( - maxHeight: 700, - maxWidth: 600, - child: Padding( - padding: EdgeInsets.only( - left: 32, - right: 20, - top: 32, - bottom: 32, - ), - child: EmojiSelectSheet(), + context: context, + builder: (context) { + return const DesktopDialog( + maxHeight: 700, + maxWidth: 600, + child: Padding( + padding: EdgeInsets.only( + left: 32, + right: 20, + top: 32, + bottom: 32, ), - ); - }).then((value) { + child: EmojiSelectSheet(), + ), + ); + }, + ).then((value) { if (value is Emoji) { setState(() { _selectedEmoji = value; @@ -313,7 +317,8 @@ class _AddAddressBookEntryViewState _selectedEmoji!.char, style: STextStyles .pageTitleH1( - context), + context, + ), ), ), ), @@ -323,19 +328,21 @@ class _AddAddressBookEntryViewState height: 14, width: 14, decoration: BoxDecoration( - borderRadius: - BorderRadius.circular( - 14), - color: Theme.of(context) - .extension< - StackColors>()! - .accentColorDark), + borderRadius: + BorderRadius.circular( + 14, + ), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), child: Center( child: _selectedEmoji == null ? SvgPicture.asset( Assets.svg.plus, color: Theme.of( - context) + context, + ) .extension< StackColors>()! .textWhite, @@ -345,7 +352,8 @@ class _AddAddressBookEntryViewState : SvgPicture.asset( Assets.svg.thickX, color: Theme.of( - context) + context, + ) .extension< StackColors>()! .textWhite, @@ -354,7 +362,7 @@ class _AddAddressBookEntryViewState ), ), ), - ) + ), ], ), ), @@ -384,13 +392,15 @@ class _AddAddressBookEntryViewState STextStyles.fieldLabel(context), suffixIcon: ref .read( - contactNameIsNotEmptyStateProvider - .state) + contactNameIsNotEmptyStateProvider + .state, + ) .state ? Padding( padding: const EdgeInsets.only( - right: 0), + right: 0, + ), child: UnconstrainedBox( child: Row( children: [ @@ -412,8 +422,9 @@ class _AddAddressBookEntryViewState onChanged: (newValue) { ref .read( - contactNameIsNotEmptyStateProvider - .state) + contactNameIsNotEmptyStateProvider + .state, + ) .state = newValue.isNotEmpty; }, ), @@ -485,11 +496,12 @@ class _AddAddressBookEntryViewState height: 14, width: 14, decoration: BoxDecoration( - borderRadius: - BorderRadius.circular(14), - color: Theme.of(context) - .extension()! - .accentColorDark), + borderRadius: + BorderRadius.circular(14), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), child: Center( child: _selectedEmoji == null ? SvgPicture.asset( @@ -512,7 +524,7 @@ class _AddAddressBookEntryViewState ), ), ), - ) + ), ], ), ), @@ -537,12 +549,14 @@ class _AddAddressBookEntryViewState ).copyWith( suffixIcon: ref .read( - contactNameIsNotEmptyStateProvider - .state) + contactNameIsNotEmptyStateProvider + .state, + ) .state ? Padding( padding: const EdgeInsets.only( - right: 0), + right: 0, + ), child: UnconstrainedBox( child: Row( children: [ @@ -564,8 +578,9 @@ class _AddAddressBookEntryViewState onChanged: (newValue) { ref .read( - contactNameIsNotEmptyStateProvider - .state) + contactNameIsNotEmptyStateProvider + .state, + ) .state = newValue.isNotEmpty; }, ), @@ -659,17 +674,22 @@ class _AddAddressBookEntryViewState Expanded( child: Builder( builder: (context) { - bool nameExists = ref - .watch(contactNameIsNotEmptyStateProvider - .state) + final bool nameExists = ref + .watch( + contactNameIsNotEmptyStateProvider + .state, + ) .state; - bool validForms = ref.watch( - validContactStateProvider(forms + final bool validForms = ref.watch( + validContactStateProvider( + forms .map((e) => e.id) - .toList(growable: false))); + .toList(growable: false), + ), + ); - bool shouldEnableSave = + final bool shouldEnableSave = validForms && nameExists; return PrimaryButton( @@ -684,31 +704,38 @@ class _AddAddressBookEntryViewState FocusScope.of(context).unfocus(); await Future.delayed( const Duration( - milliseconds: 75), + milliseconds: 75, + ), ); } - List entries = - []; + final List + entries = []; for (int i = 0; i < forms.length; i++) { - entries.add(ref - .read( + entries.add( + ref + .read( addressEntryDataProvider( - forms[i].id)) - .buildAddressEntry()); + forms[i].id, + ), + ) + .buildAddressEntry(), + ); } - ContactEntry contact = ContactEntry( + final ContactEntry contact = + ContactEntry( emojiChar: _selectedEmoji?.char, name: nameController.text, addresses: entries, isFavorite: _isFavorite, - customId: const Uuid().v1(), + customId: const Uuid().v1(), ); if (await ref .read( - addressBookServiceProvider) + addressBookServiceProvider, + ) .addContact(contact)) { if (mounted) { Navigator.of(context).pop(); diff --git a/lib/pages/address_book_views/subviews/add_new_contact_address_view.dart b/lib/pages/address_book_views/subviews/add_new_contact_address_view.dart index 4a2c3c497..fc59eca68 100644 --- a/lib/pages/address_book_views/subviews/add_new_contact_address_view.dart +++ b/lib/pages/address_book_views/subviews/add_new_contact_address_view.dart @@ -11,8 +11,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../models/isar/models/contact_entry.dart'; -import 'new_contact_address_entry_form.dart'; import '../../../providers/global/address_book_service_provider.dart'; import '../../../providers/ui/address_book_providers/address_entry_data_provider.dart'; import '../../../providers/ui/address_book_providers/valid_contact_state_provider.dart'; @@ -27,14 +27,15 @@ import '../../../widgets/conditional_parent.dart'; import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/desktop/secondary_button.dart'; +import 'new_contact_address_entry_form.dart'; class AddNewContactAddressView extends ConsumerStatefulWidget { const AddNewContactAddressView({ - Key? key, + super.key, required this.contactId, this.barcodeScanner = const BarcodeScannerWrapper(), this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); static const String routeName = "/addNewContactAddress"; @@ -66,8 +67,10 @@ class _AddNewContactAddressViewState @override Widget build(BuildContext context) { - final contact = ref.watch(addressBookServiceProvider - .select((value) => value.getContactById(contactId))); + final contact = ref.watch( + addressBookServiceProvider + .select((value) => value.getContactById(contactId)), + ); final isDesktop = Util.isDesktop; @@ -188,7 +191,8 @@ class _AddNewContactAddressViewState if (!isDesktop && FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } if (mounted) { Navigator.of(context).pop(); @@ -211,14 +215,14 @@ class _AddNewContactAddressViewState const Duration(milliseconds: 75), ); } - List entries = + final List entries = contact.addresses.toList(); - entries.add(ref - .read(addressEntryDataProvider(0)) - .buildAddressEntry()); + entries.add( + ref.read(addressEntryDataProvider(0)).buildAddressEntry(), + ); - ContactEntry editedContact = + final ContactEntry editedContact = contact.copyWith(addresses: entries); if (await ref @@ -235,7 +239,7 @@ class _AddNewContactAddressViewState ), ), ], - ) + ), ], ), ); diff --git a/lib/pages/address_book_views/subviews/address_book_filter_view.dart b/lib/pages/address_book_views/subviews/address_book_filter_view.dart index 035628c80..124cf142f 100644 --- a/lib/pages/address_book_views/subviews/address_book_filter_view.dart +++ b/lib/pages/address_book_views/subviews/address_book_filter_view.dart @@ -10,9 +10,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + +import '../../../app_config.dart'; import '../../../providers/global/prefs_provider.dart'; import '../../../providers/ui/address_book_providers/address_book_filter_provider.dart'; -import '../../../app_config.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; @@ -82,42 +83,44 @@ class _AddressBookFilterViewState extends ConsumerState { ), body: Padding( padding: const EdgeInsets.all(12), - child: LayoutBuilder(builder: (builderContext, constraints) { - return SingleChildScrollView( - child: ConstrainedBox( - constraints: BoxConstraints( - minHeight: constraints.maxHeight, - ), - child: IntrinsicHeight( - child: Padding( - padding: const EdgeInsets.all(4), - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - RoundedWhiteContainer( - child: Text( - "Only selected cryptocurrency addresses will be displayed.", - style: STextStyles.itemSubtitle(context), + child: LayoutBuilder( + builder: (builderContext, constraints) { + return SingleChildScrollView( + child: ConstrainedBox( + constraints: BoxConstraints( + minHeight: constraints.maxHeight, + ), + child: IntrinsicHeight( + child: Padding( + padding: const EdgeInsets.all(4), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + RoundedWhiteContainer( + child: Text( + "Only selected cryptocurrency addresses will be displayed.", + style: STextStyles.itemSubtitle(context), + ), ), - ), - const SizedBox( - height: 12, - ), - Text( - "Select cryptocurrency", - style: STextStyles.smallMed12(context), - ), - const SizedBox( - height: 12, - ), - child, - ], + const SizedBox( + height: 12, + ), + Text( + "Select cryptocurrency", + style: STextStyles.smallMed12(context), + ), + const SizedBox( + height: 12, + ), + child, + ], + ), ), ), ), - ), - ); - }), + ); + }, + ), ), ), ); @@ -230,8 +233,10 @@ class _AddressBookFilterViewState extends ConsumerState { width: 20, child: Checkbox( value: ref - .watch(addressBookFilterProvider - .select((value) => value.coins)) + .watch( + addressBookFilterProvider + .select((value) => value.coins), + ) .contains(coin), onChanged: (value) { if (value is bool) { @@ -267,7 +272,7 @@ class _AddressBookFilterViewState extends ConsumerState { style: STextStyles.itemSubtitle(context), ), ], - ) + ), ], ), ), diff --git a/lib/pages/address_book_views/subviews/coin_select_sheet.dart b/lib/pages/address_book_views/subviews/coin_select_sheet.dart index d39f7b08c..7e2cd0710 100644 --- a/lib/pages/address_book_views/subviews/coin_select_sheet.dart +++ b/lib/pages/address_book_views/subviews/coin_select_sheet.dart @@ -79,7 +79,7 @@ class CoinSelectSheet extends StatelessWidget { Flexible( child: Consumer( builder: (_, ref, __) { - bool showTestNet = ref.watch( + final bool showTestNet = ref.watch( prefsChangeNotifierProvider .select((value) => value.showTestNetCoins), ); diff --git a/lib/pages/address_book_views/subviews/contact_details_view.dart b/lib/pages/address_book_views/subviews/contact_details_view.dart index 2d12334f0..b343c3092 100644 --- a/lib/pages/address_book_views/subviews/contact_details_view.dart +++ b/lib/pages/address_book_views/subviews/contact_details_view.dart @@ -15,11 +15,10 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + import '../../../models/isar/models/isar_models.dart'; import '../../../notifications/show_flush_bar.dart'; -import 'add_new_contact_address_view.dart'; -import 'edit_contact_address_view.dart'; -import 'edit_contact_name_emoji_view.dart'; import '../../../providers/db/main_db_provider.dart'; import '../../../providers/global/address_book_service_provider.dart'; import '../../../providers/ui/address_book_providers/address_entry_data_provider.dart'; @@ -36,7 +35,9 @@ import '../../../widgets/rounded_container.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_dialog.dart'; import '../../../widgets/transaction_card.dart'; -import 'package:tuple/tuple.dart'; +import 'add_new_contact_address_view.dart'; +import 'edit_contact_address_view.dart'; +import 'edit_contact_name_emoji_view.dart'; class ContactDetailsView extends ConsumerStatefulWidget { const ContactDetailsView({ @@ -73,8 +74,10 @@ class _ContactDetailsViewState extends ConsumerState { .transactions .where() .filter() - .anyOf(contact.addresses.map((e) => e.address), - (q, String e) => q.address((q) => q.valueEqualTo(e))) + .anyOf( + contact.addresses.map((e) => e.address), + (q, String e) => q.address((q) => q.valueEqualTo(e)), + ) .sortByTimestampDesc() .findAll(); @@ -107,8 +110,10 @@ class _ContactDetailsViewState extends ConsumerState { Widget build(BuildContext context) { debugPrint("BUILD: $runtimeType"); - final _contact = ref.watch(addressBookServiceProvider - .select((value) => value.getContactById(_contactId))); + final _contact = ref.watch( + addressBookServiceProvider + .select((value) => value.getContactById(_contactId)), + ); return Background( child: Scaffold( @@ -153,7 +158,8 @@ class _ContactDetailsViewState extends ConsumerState { final bool isFavorite = _contact.isFavorite; ref.read(addressBookServiceProvider).editContact( - _contact.copyWith(isFavorite: !isFavorite)); + _contact.copyWith(isFavorite: !isFavorite), + ); }, ), ), @@ -289,18 +295,21 @@ class _ContactDetailsViewState extends ConsumerState { .getSecondaryEnabledButtonStyle(context)! .copyWith( minimumSize: MaterialStateProperty.all( - const Size(46, 32)), + const Size(46, 32), + ), ), child: Padding( padding: const EdgeInsets.symmetric(horizontal: 12), child: Row( children: [ - SvgPicture.asset(Assets.svg.pencil, - width: 10, - height: 10, - color: Theme.of(context) - .extension()! - .accentColorDark), + SvgPicture.asset( + Assets.svg.pencil, + width: 10, + height: 10, + color: Theme.of(context) + .extension()! + .accentColorDark, + ), const SizedBox( width: 4, ), @@ -463,9 +472,10 @@ class _ContactDetailsViewState extends ConsumerState { ), FutureBuilder( future: _filteredTransactionsByContact(), - builder: (_, - AsyncSnapshot>> - snapshot) { + builder: ( + _, + AsyncSnapshot>> snapshot, + ) { if (snapshot.connectionState == ConnectionState.done && snapshot.hasData) { _cachedTransactions = snapshot.data!; @@ -478,7 +488,8 @@ class _ContactDetailsViewState extends ConsumerState { ..._cachedTransactions.map( (e) => TransactionCard( key: Key( - "contactDetailsTransaction_${e.item1}_${e.item2.txid}_cardKey"), + "contactDetailsTransaction_${e.item1}_${e.item2.txid}_cardKey", + ), transaction: e.item2, walletId: e.item1, ), @@ -508,7 +519,8 @@ class _ContactDetailsViewState extends ConsumerState { ..._cachedTransactions.map( (e) => TransactionCard( key: Key( - "contactDetailsTransaction_${e.item1}_${e.item2.txid}_cardKey"), + "contactDetailsTransaction_${e.item1}_${e.item2.txid}_cardKey", + ), transaction: e.item2, walletId: e.item1, ), diff --git a/lib/pages/address_book_views/subviews/contact_popup.dart b/lib/pages/address_book_views/subviews/contact_popup.dart index 5411736e0..80d814323 100644 --- a/lib/pages/address_book_views/subviews/contact_popup.dart +++ b/lib/pages/address_book_views/subviews/contact_popup.dart @@ -51,8 +51,10 @@ class ContactPopUp extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final maxHeight = MediaQuery.of(context).size.height * 0.6; - final contact = ref.watch(addressBookServiceProvider - .select((value) => value.getContactById(contactId))); + final contact = ref.watch( + addressBookServiceProvider + .select((value) => value.getContactById(contactId)), + ); final active = ref.read(currentWalletIdProvider); @@ -157,7 +159,8 @@ class ContactPopUp extends ConsumerWidget { style: Theme.of(context) .extension()! .getSecondaryEnabledButtonStyle( - context)! + context, + )! .copyWith( minimumSize: MaterialStateProperty.all< @@ -165,10 +168,14 @@ class ContactPopUp extends ConsumerWidget { ), child: Padding( padding: const EdgeInsets.symmetric( - horizontal: 18), - child: Text("Details", - style: STextStyles.buttonSmall( - context)), + horizontal: 18, + ), + child: Text( + "Details", + style: STextStyles.buttonSmall( + context, + ), + ), ), ), ], @@ -186,7 +193,8 @@ class ContactPopUp extends ConsumerWidget { if (addresses.isEmpty) Padding( padding: const EdgeInsets.symmetric( - horizontal: 20), + horizontal: 20, + ), child: RoundedWhiteContainer( child: Center( child: Text( @@ -237,14 +245,16 @@ class ContactPopUp extends ConsumerWidget { e.other!, style: STextStyles.itemSubtitle12( - context), + context, + ), ), if (contact.customId != "default") Text( "${e.label} (${e.coin.ticker})", style: STextStyles.itemSubtitle12( - context), + context, + ), ), const SizedBox( height: 2, @@ -252,8 +262,8 @@ class ContactPopUp extends ConsumerWidget { Text( e.address, style: STextStyles.itemSubtitle( - context) - .copyWith( + context, + ).copyWith( fontSize: 8, ), ), @@ -286,12 +296,13 @@ class ContactPopUp extends ConsumerWidget { .textFieldDefaultBG, padding: const EdgeInsets.all(6), child: SvgPicture.asset( - Assets.svg.copy, - width: 16, - height: 16, - color: Theme.of(context) - .extension()! - .accentColorDark), + Assets.svg.copy, + width: 16, + height: 16, + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ], @@ -310,12 +321,15 @@ class ContactPopUp extends ConsumerWidget { onTap: () { ref .read( - exchangeFromAddressBookAddressStateProvider - .state) + exchangeFromAddressBookAddressStateProvider + .state, + ) .state = e.address; Navigator.of(context).popUntil( - ModalRoute.withName( - Step2View.routeName)); + ModalRoute.withName( + Step2View.routeName, + ), + ); }, child: RoundedContainer( color: Theme.of(context) @@ -324,13 +338,13 @@ class ContactPopUp extends ConsumerWidget { padding: const EdgeInsets.all(6), child: SvgPicture.asset( - Assets.svg.chevronRight, - width: 16, - height: 16, - color: Theme.of(context) - .extension< - StackColors>()! - .accentColorDark), + Assets.svg.chevronRight, + width: 16, + height: 16, + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ], @@ -363,7 +377,8 @@ class ContactPopUp extends ConsumerWidget { arguments: Tuple3( active, ref.read( - pWalletCoin(active)), + pWalletCoin(active), + ), SendViewAutoFillData( address: address, contactLabel: @@ -381,18 +396,15 @@ class ContactPopUp extends ConsumerWidget { Util.isDesktop ? 4 : 6, ), child: SvgPicture.asset( - Assets - .svg.circleArrowUpRight, - width: Util.isDesktop - ? 12 - : 16, - height: Util.isDesktop - ? 12 - : 16, - color: Theme.of(context) - .extension< - StackColors>()! - .accentColorDark), + Assets.svg.circleArrowUpRight, + width: + Util.isDesktop ? 12 : 16, + height: + Util.isDesktop ? 12 : 16, + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ], diff --git a/lib/pages/address_book_views/subviews/edit_contact_address_view.dart b/lib/pages/address_book_views/subviews/edit_contact_address_view.dart index d9c6e584f..1d5ebd21c 100644 --- a/lib/pages/address_book_views/subviews/edit_contact_address_view.dart +++ b/lib/pages/address_book_views/subviews/edit_contact_address_view.dart @@ -8,13 +8,11 @@ * */ -import 'dart:convert'; - import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../models/isar/models/contact_entry.dart'; -import 'new_contact_address_entry_form.dart'; import '../../../providers/global/address_book_service_provider.dart'; import '../../../providers/ui/address_book_providers/address_entry_data_provider.dart'; import '../../../providers/ui/address_book_providers/valid_contact_state_provider.dart'; @@ -29,15 +27,16 @@ import '../../../widgets/conditional_parent.dart'; import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/desktop/secondary_button.dart'; +import 'new_contact_address_entry_form.dart'; class EditContactAddressView extends ConsumerStatefulWidget { const EditContactAddressView({ - Key? key, + super.key, required this.contactId, required this.addressEntry, this.barcodeScanner = const BarcodeScannerWrapper(), this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); static const String routeName = "/editContactAddress"; @@ -67,7 +66,7 @@ class _EditContactAddressViewState const Duration(milliseconds: 75), ); } - List entries = contact.addresses.toList(); + final List entries = contact.addresses.toList(); final entry = entries.firstWhere( (e) => @@ -79,12 +78,12 @@ class _EditContactAddressViewState final index = entries.indexOf(entry); entries.remove(entry); - ContactAddressEntry editedEntry = + final ContactAddressEntry editedEntry = ref.read(addressEntryDataProvider(0)).buildAddressEntry(); entries.insert(index, editedEntry); - ContactEntry editedContact = contact.copyWith(addresses: entries); + final ContactEntry editedContact = contact.copyWith(addresses: entries); if (await ref.read(addressBookServiceProvider).editContact(editedContact)) { if (mounted) { @@ -108,8 +107,10 @@ class _EditContactAddressViewState @override Widget build(BuildContext context) { - final contact = ref.watch(addressBookServiceProvider - .select((value) => value.getContactById(contactId))); + final contact = ref.watch( + addressBookServiceProvider + .select((value) => value.getContactById(contactId)), + ); final bool isDesktop = Util.isDesktop; @@ -239,9 +240,10 @@ class _EditContactAddressViewState //Deleting an entry directly from _addresses gives error // "Cannot remove from a fixed-length list", so we remove the // entry from a copy - var tempAddresses = List.from(_addresses); + final tempAddresses = + List.from(_addresses); tempAddresses.remove(entry); - ContactEntry editedContact = + final ContactEntry editedContact = contact.copyWith(addresses: tempAddresses); if (await ref .read(addressBookServiceProvider) @@ -272,7 +274,8 @@ class _EditContactAddressViewState if (!isDesktop && FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } if (mounted) { Navigator.of(context).pop(); diff --git a/lib/pages/address_book_views/subviews/edit_contact_name_emoji_view.dart b/lib/pages/address_book_views/subviews/edit_contact_name_emoji_view.dart index c1d8c139e..a552aca29 100644 --- a/lib/pages/address_book_views/subviews/edit_contact_name_emoji_view.dart +++ b/lib/pages/address_book_views/subviews/edit_contact_name_emoji_view.dart @@ -14,6 +14,7 @@ import 'package:emojis/emoji.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../providers/global/address_book_service_provider.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; @@ -33,9 +34,9 @@ import '../../../widgets/textfield_icon_button.dart'; class EditContactNameEmojiView extends ConsumerStatefulWidget { const EditContactNameEmojiView({ - Key? key, + super.key, required this.contactId, - }) : super(key: key); + }); static const String routeName = "/editContactNameEmoji"; @@ -82,8 +83,10 @@ class _EditContactNameEmojiViewState @override Widget build(BuildContext context) { - final contact = ref.watch(addressBookServiceProvider - .select((value) => value.getContactById(contactId))); + final contact = ref.watch( + addressBookServiceProvider + .select((value) => value.getContactById(contactId)), + ); final isDesktop = Util.isDesktop; final double emojiSize = isDesktop ? 56 : 48; @@ -152,23 +155,24 @@ class _EditContactNameEmojiViewState } if (isDesktop) { showDialog( - barrierColor: Colors.transparent, - context: context, - builder: (context) { - return const DesktopDialog( - maxHeight: 700, - maxWidth: 600, - child: Padding( - padding: EdgeInsets.only( - left: 32, - right: 20, - top: 32, - bottom: 32, - ), - child: EmojiSelectSheet(), + barrierColor: Colors.transparent, + context: context, + builder: (context) { + return const DesktopDialog( + maxHeight: 700, + maxWidth: 600, + child: Padding( + padding: EdgeInsets.only( + left: 32, + right: 20, + top: 32, + bottom: 32, ), - ); - }).then((value) { + child: EmojiSelectSheet(), + ), + ); + }, + ).then((value) { if (value is Emoji) { setState(() { _selectedEmoji = value; @@ -229,10 +233,11 @@ class _EditContactNameEmojiViewState height: 14, width: 14, decoration: BoxDecoration( - borderRadius: BorderRadius.circular(14), - color: Theme.of(context) - .extension()! - .accentColorDark), + borderRadius: BorderRadius.circular(14), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), child: Center( child: _selectedEmoji == null ? SvgPicture.asset( @@ -253,7 +258,7 @@ class _EditContactNameEmojiViewState ), ), ), - ) + ), ], ), ), @@ -362,7 +367,8 @@ class _EditContactNameEmojiViewState if (!isDesktop && FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } if (mounted) { Navigator.of(context).pop(); @@ -403,7 +409,7 @@ class _EditContactNameEmojiViewState ), ), ], - ) + ), ], ), ); diff --git a/lib/pages/buy_view/buy_form.dart b/lib/pages/buy_view/buy_form.dart index 1baf97db3..1b1239a27 100644 --- a/lib/pages/buy_view/buy_form.dart +++ b/lib/pages/buy_view/buy_form.dart @@ -439,7 +439,7 @@ class _BuyFormState extends ConsumerState { buyWithFiat: buyWithFiat, ); - BuyResponse quoteResponse = await _loadQuote(quote); + final BuyResponse quoteResponse = await _loadQuote(quote); shouldPop = true; if (mounted) { Navigator.of(context, rootNavigator: isDesktop).pop(); @@ -767,8 +767,8 @@ class _BuyFormState extends ConsumerState { Widget build(BuildContext context) { debugPrint("BUILD: $runtimeType"); - Locale locale = Localizations.localeOf(context); - var format = NumberFormat.simpleCurrency(locale: locale.toString()); + final Locale locale = Localizations.localeOf(context); + final format = NumberFormat.simpleCurrency(locale: locale.toString()); // See https://stackoverflow.com/a/67055685 return ConditionalParent( diff --git a/lib/pages/buy_view/buy_order_details.dart b/lib/pages/buy_view/buy_order_details.dart index 9c44f01db..4144a85ab 100644 --- a/lib/pages/buy_view/buy_order_details.dart +++ b/lib/pages/buy_view/buy_order_details.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../models/buy/response_objects/order.dart'; import '../../themes/stack_colors.dart'; import '../../themes/theme_providers.dart'; @@ -25,9 +26,9 @@ import '../../widgets/rounded_white_container.dart'; class BuyOrderDetailsView extends ConsumerStatefulWidget { const BuyOrderDetailsView({ - Key? key, + super.key, required this.order, - }) : super(key: key); + }); final SimplexOrder order; @@ -259,22 +260,25 @@ class _BuyOrderDetailsViewState extends ConsumerState { const SizedBox( height: 24, ), - Row(mainAxisAlignment: MainAxisAlignment.center, children: [ - Text( - "This information is not saved,\nscreenshot it now for your records", - style: STextStyles.label(context).copyWith( - color: Theme.of(context).extension()!.textDark, + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "This information is not saved,\nscreenshot it now for your records", + style: STextStyles.label(context).copyWith( + color: Theme.of(context).extension()!.textDark, + ), + textAlign: TextAlign.center, ), - textAlign: TextAlign.center, - ), - ]), + ], + ), const Spacer(), PrimaryButton( label: "Dismiss", onPressed: () { Navigator.of(context, rootNavigator: isDesktop).pop(); }, - ) + ), ], ), ); diff --git a/lib/pages/buy_view/buy_quote_preview.dart b/lib/pages/buy_view/buy_quote_preview.dart index ec65de1f5..7d736e3a6 100644 --- a/lib/pages/buy_view/buy_quote_preview.dart +++ b/lib/pages/buy_view/buy_quote_preview.dart @@ -29,9 +29,9 @@ import '../../widgets/rounded_white_container.dart'; class BuyQuotePreviewView extends ConsumerStatefulWidget { const BuyQuotePreviewView({ - Key? key, + super.key, required this.quote, - }) : super(key: key); + }); final SimplexQuote quote; @@ -56,8 +56,8 @@ class _BuyQuotePreviewViewState extends ConsumerState { @override Widget build(BuildContext context) { - Locale locale = Localizations.localeOf(context); - var format = NumberFormat.simpleCurrency(locale: locale.toString()); + final Locale locale = Localizations.localeOf(context); + final format = NumberFormat.simpleCurrency(locale: locale.toString()); // See https://stackoverflow.com/a/67055685 return ConditionalParent( @@ -240,7 +240,7 @@ class _BuyQuotePreviewViewState extends ConsumerState { PrimaryButton( label: "Buy", onPressed: _buyWarning, - ) + ), ], ), ); diff --git a/lib/pages/buy_view/sub_widgets/buy_warning_popup.dart b/lib/pages/buy_view/sub_widgets/buy_warning_popup.dart index c3e1dc4e9..7bab11198 100644 --- a/lib/pages/buy_view/sub_widgets/buy_warning_popup.dart +++ b/lib/pages/buy_view/sub_widgets/buy_warning_popup.dart @@ -13,9 +13,9 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../models/buy/response_objects/order.dart'; import '../../../models/buy/response_objects/quote.dart'; -import '../buy_order_details.dart'; import '../../../services/buy/buy_response.dart'; import '../../../services/buy/simplex/simplex_api.dart'; import '../../../themes/stack_colors.dart'; @@ -29,13 +29,14 @@ import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/desktop/secondary_button.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_dialog.dart'; +import '../buy_order_details.dart'; class BuyWarningPopup extends ConsumerStatefulWidget { const BuyWarningPopup({ - Key? key, + super.key, required this.quote, this.order, - }) : super(key: key); + }); final SimplexQuote quote; final SimplexOrder? order; @override @@ -123,7 +124,8 @@ class _BuyWarningPopupState extends ConsumerState { } Future onContinue() async { - BuyResponse orderResponse = await newOrder(widget.quote); + final BuyResponse orderResponse = + await newOrder(widget.quote); if (orderResponse.exception == null) { await redirect(orderResponse.value as SimplexOrder) .then((_response) async { @@ -175,7 +177,7 @@ class _BuyWarningPopupState extends ConsumerState { ), ), ], - ) + ), ], ), ), @@ -192,9 +194,10 @@ class _BuyWarningPopupState extends ConsumerState { child: Text( "Ok", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), onPressed: () { Navigator.of(context).pop(); @@ -274,7 +277,7 @@ class _BuyWarningPopupState extends ConsumerState { ), ), ], - ) + ), ], ), ), diff --git a/lib/pages/buy_view/sub_widgets/fiat_selection_view.dart b/lib/pages/buy_view/sub_widgets/fiat_selection_view.dart index 87671494e..4fee72444 100644 --- a/lib/pages/buy_view/sub_widgets/fiat_selection_view.dart +++ b/lib/pages/buy_view/sub_widgets/fiat_selection_view.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:intl/intl.dart'; + import '../../../models/buy/response_objects/fiat.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; @@ -28,9 +29,9 @@ import '../../../widgets/textfield_icon_button.dart'; class FiatSelectionView extends StatefulWidget { const FiatSelectionView({ - Key? key, + super.key, required this.fiats, - }) : super(key: key); + }); final List fiats; @@ -48,9 +49,11 @@ class _FiatSelectionViewState extends State { void filter(String text) { setState(() { _fiats = [ - ...fiats.where((e) => - e.name.toLowerCase().contains(text.toLowerCase()) || - e.ticker.toLowerCase().contains(text.toLowerCase())) + ...fiats.where( + (e) => + e.name.toLowerCase().contains(text.toLowerCase()) || + e.ticker.toLowerCase().contains(text.toLowerCase()), + ), ]; }); } @@ -61,10 +64,12 @@ class _FiatSelectionViewState extends State { fiats = [...widget.fiats]; fiats.sort( - (a, b) => a.ticker.toLowerCase().compareTo(b.ticker.toLowerCase())); - for (Fiats fiat in Fiats.values.reversed) { - int index = fiats.indexWhere((element) => - element.ticker.toLowerCase() == fiat.ticker.toLowerCase()); + (a, b) => a.ticker.toLowerCase().compareTo(b.ticker.toLowerCase()), + ); + for (final Fiats fiat in Fiats.values.reversed) { + final int index = fiats.indexWhere( + (element) => element.ticker.toLowerCase() == fiat.ticker.toLowerCase(), + ); if (index > 0) { final currency = fiats.removeAt(index); fiats.insert(0, currency); @@ -85,7 +90,7 @@ class _FiatSelectionViewState extends State { @override Widget build(BuildContext context) { - Locale locale = Localizations.localeOf(context); + final Locale locale = Localizations.localeOf(context); final format = NumberFormat.simpleCurrency(locale: locale.toString()); // See https://stackoverflow.com/a/67055685 @@ -104,7 +109,8 @@ class _FiatSelectionViewState extends State { if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 50)); + const Duration(milliseconds: 50), + ); } if (mounted) { Navigator.of(context).pop(); @@ -235,17 +241,20 @@ class _FiatSelectionViewState extends State { ), child: Text( format.simpleCurrencySymbol( - e.ticker.toUpperCase()), + e.ticker.toUpperCase(), + ), style: STextStyles.subtitle(context) .apply( fontSizeFactor: (1 / format .simpleCurrencySymbol( - e.ticker.toUpperCase()) + e.ticker.toUpperCase(), + ) .length * // Couldn't get pow() working here format .simpleCurrencySymbol( - e.ticker.toUpperCase()) + e.ticker.toUpperCase(), + ) .length), ), textAlign: TextAlign.center, diff --git a/lib/pages/cashfusion/cashfusion_view.dart b/lib/pages/cashfusion/cashfusion_view.dart index e8cfaff4d..46d8a2451 100644 --- a/lib/pages/cashfusion/cashfusion_view.dart +++ b/lib/pages/cashfusion/cashfusion_view.dart @@ -15,8 +15,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_native_splash/cli_commands.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'fusion_progress_view.dart'; -import 'fusion_rounds_selection_sheet.dart'; + import '../../providers/cash_fusion/fusion_progress_ui_state_provider.dart'; import '../../providers/global/prefs_provider.dart'; import '../../providers/global/wallets_provider.dart'; @@ -34,6 +33,8 @@ import '../../widgets/desktop/primary_button.dart'; import '../../widgets/rounded_container.dart'; import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_text_field.dart'; +import 'fusion_progress_view.dart'; +import 'fusion_rounds_selection_sheet.dart'; class CashFusionView extends ConsumerStatefulWidget { const CashFusionView({ @@ -73,7 +74,8 @@ class _CashFusionViewState extends ConsumerState { ); } catch (e) { if (!e.toString().contains( - "FusionProgressUIState was already set for ${widget.walletId}")) { + "FusionProgressUIState was already set for ${widget.walletId}", + )) { rethrow; } } @@ -273,7 +275,7 @@ class _CashFusionViewState extends ConsumerState { controller: portController, focusNode: portFocusNode, inputFormatters: [ - FilteringTextInputFormatter.digitsOnly + FilteringTextInputFormatter.digitsOnly, ], keyboardType: TextInputType.number, onChanged: (value) { @@ -408,7 +410,7 @@ class _CashFusionViewState extends ConsumerState { controller: fusionRoundController, focusNode: fusionRoundFocusNode, inputFormatters: [ - FilteringTextInputFormatter.digitsOnly + FilteringTextInputFormatter.digitsOnly, ], keyboardType: TextInputType.number, onChanged: (value) { @@ -424,7 +426,8 @@ class _CashFusionViewState extends ConsumerState { fusionRoundFocusNode, context, ).copyWith( - labelText: "Enter number of fusions.."), + labelText: "Enter number of fusions..", + ), ), ), const SizedBox( diff --git a/lib/pages/cashfusion/fusion_progress_view.dart b/lib/pages/cashfusion/fusion_progress_view.dart index 6f41f07b7..fd2921c7f 100644 --- a/lib/pages/cashfusion/fusion_progress_view.dart +++ b/lib/pages/cashfusion/fusion_progress_view.dart @@ -12,6 +12,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../pages_desktop_specific/cashfusion/sub_widgets/fusion_progress.dart'; import '../../providers/cash_fusion/fusion_progress_ui_state_provider.dart'; import '../../providers/global/prefs_provider.dart'; @@ -244,7 +245,8 @@ class _FusionProgressViewState extends ConsumerState { ); } catch (e) { if (!e.toString().contains( - "FusionProgressUIState was already set for ${widget.walletId}")) { + "FusionProgressUIState was already set for ${widget.walletId}", + )) { rethrow; } } diff --git a/lib/pages/cashfusion/fusion_rounds_selection_sheet.dart b/lib/pages/cashfusion/fusion_rounds_selection_sheet.dart index 1294c0096..3994efaa9 100644 --- a/lib/pages/cashfusion/fusion_rounds_selection_sheet.dart +++ b/lib/pages/cashfusion/fusion_rounds_selection_sheet.dart @@ -22,9 +22,9 @@ enum FusionOption { class FusionRoundCountSelectSheet extends HookWidget { const FusionRoundCountSelectSheet({ - Key? key, + super.key, required this.currentOption, - }) : super(key: key); + }); final FusionOption currentOption; diff --git a/lib/pages/coin_control/coin_control_view.dart b/lib/pages/coin_control/coin_control_view.dart index 4540b6d3f..f4347a586 100644 --- a/lib/pages/coin_control/coin_control_view.dart +++ b/lib/pages/coin_control/coin_control_view.dart @@ -14,10 +14,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + import '../../db/isar/main_db.dart'; import '../../models/isar/models/isar_models.dart'; -import 'utxo_card.dart'; -import 'utxo_details_view.dart'; import '../../providers/global/wallets_provider.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/amount/amount.dart'; @@ -39,7 +39,8 @@ import '../../widgets/icon_widgets/x_icon.dart'; import '../../widgets/rounded_container.dart'; import '../../widgets/rounded_white_container.dart'; import '../../widgets/toggle.dart'; -import 'package:tuple/tuple.dart'; +import 'utxo_card.dart'; +import 'utxo_details_view.dart'; enum CoinControlViewType { manage, @@ -148,7 +149,8 @@ class _CoinControlViewState extends ConsumerState { onWillPop: () async { unawaited(_refreshBalance()); Navigator.of(context).pop( - widget.type == CoinControlViewType.use ? _selectedAvailable : null); + widget.type == CoinControlViewType.use ? _selectedAvailable : null, + ); return false; }, child: Background( @@ -179,9 +181,10 @@ class _CoinControlViewState extends ConsumerState { onPressed: () { unawaited(_refreshBalance()); Navigator.of(context).pop( - widget.type == CoinControlViewType.use - ? _selectedAvailable - : null); + widget.type == CoinControlViewType.use + ? _selectedAvailable + : null, + ); }, ), title: _isSearching @@ -336,7 +339,8 @@ class _CoinControlViewState extends ConsumerState { return UtxoCard( key: Key( - "${utxo.walletId}_${utxo.id}_$isSelected"), + "${utxo.walletId}_${utxo.id}_$isSelected", + ), walletId: widget.walletId, utxo: utxo, canSelect: widget.type == @@ -398,7 +402,8 @@ class _CoinControlViewState extends ConsumerState { return UtxoCard( key: Key( - "${utxo.walletId}_${utxo.id}_$isSelected"), + "${utxo.walletId}_${utxo.id}_$isSelected", + ), walletId: widget.walletId, utxo: utxo, canSelect: widget.type == @@ -486,7 +491,8 @@ class _CoinControlViewState extends ConsumerState { entry.key, style: STextStyles.w600_14( - context), + context, + ), ), const SizedBox( height: 2, @@ -496,8 +502,8 @@ class _CoinControlViewState extends ConsumerState { "output${entry.value.length > 1 ? "s" : ""}", style: STextStyles.w500_12( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension< StackColors>()! @@ -538,7 +544,8 @@ class _CoinControlViewState extends ConsumerState { return UtxoCard( key: Key( - "${utxo.walletId}_${utxo.id}_$isSelected"), + "${utxo.walletId}_${utxo.id}_$isSelected", + ), walletId: widget.walletId, utxo: utxo, canSelect: widget.type == @@ -615,22 +622,26 @@ class _CoinControlViewState extends ConsumerState { label: _showBlocked ? "Unfreeze" : "Freeze", onPressed: () async { if (_showBlocked) { - await MainDB.instance.putUTXOs(_selectedBlocked - .map( - (e) => e.copyWith( - isBlocked: false, - ), - ) - .toList()); + await MainDB.instance.putUTXOs( + _selectedBlocked + .map( + (e) => e.copyWith( + isBlocked: false, + ), + ) + .toList(), + ); _selectedBlocked.clear(); } else { - await MainDB.instance.putUTXOs(_selectedAvailable - .map( - (e) => e.copyWith( - isBlocked: true, - ), - ) - .toList()); + await MainDB.instance.putUTXOs( + _selectedAvailable + .map( + (e) => e.copyWith( + isBlocked: true, + ), + ) + .toList(), + ); _selectedAvailable.clear(); } setState(() {}); @@ -689,7 +700,8 @@ class _CoinControlViewState extends ConsumerState { .format(selectedSum), style: widget.requestedTotal == null ? STextStyles.w600_14(context) - : STextStyles.w600_14(context).copyWith( + : STextStyles.w600_14(context) + .copyWith( color: selectedSum >= widget .requestedTotal! @@ -700,7 +712,8 @@ class _CoinControlViewState extends ConsumerState { : Theme.of(context) .extension< StackColors>()! - .accentColorRed), + .accentColorRed, + ), ); }, ), diff --git a/lib/pages/coin_control/utxo_card.dart b/lib/pages/coin_control/utxo_card.dart index 9dc2bd900..c0a8395aa 100644 --- a/lib/pages/coin_control/utxo_card.dart +++ b/lib/pages/coin_control/utxo_card.dart @@ -10,6 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../db/isar/main_db.dart'; import '../../models/isar/models/isar_models.dart'; import '../../providers/global/wallets_provider.dart'; @@ -90,83 +91,84 @@ class _UtxoCardState extends ConsumerState { ? Theme.of(context).extension()!.popupBG : Colors.transparent, child: StreamBuilder( - stream: stream, - builder: (context, snapshot) { - if (snapshot.hasData) { - utxo = snapshot.data!; - } - return Row( - children: [ - ConditionalParent( - condition: widget.canSelect, - builder: (child) => GestureDetector( - onTap: () { - _selected = !_selected; - widget.onSelectedChanged(_selected); - setState(() {}); - }, - child: child, - ), - child: UTXOStatusIcon( - blocked: utxo.isBlocked, - status: utxo.isConfirmed( - currentHeight, - ref - .watch(pWallets) - .getWallet(widget.walletId) - .cryptoCurrency - .minConfirms, - ) - ? UTXOStatusIconStatus.confirmed - : UTXOStatusIconStatus.unconfirmed, - background: - Theme.of(context).extension()!.popupBG, - selected: _selected, - width: 32, - height: 32, - ), + stream: stream, + builder: (context, snapshot) { + if (snapshot.hasData) { + utxo = snapshot.data!; + } + return Row( + children: [ + ConditionalParent( + condition: widget.canSelect, + builder: (child) => GestureDetector( + onTap: () { + _selected = !_selected; + widget.onSelectedChanged(_selected); + setState(() {}); + }, + child: child, ), - const SizedBox( - width: 10, + child: UTXOStatusIcon( + blocked: utxo.isBlocked, + status: utxo.isConfirmed( + currentHeight, + ref + .watch(pWallets) + .getWallet(widget.walletId) + .cryptoCurrency + .minConfirms, + ) + ? UTXOStatusIconStatus.confirmed + : UTXOStatusIconStatus.unconfirmed, + background: + Theme.of(context).extension()!.popupBG, + selected: _selected, + width: 32, + height: 32, ), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - Text( - ref.watch(pAmountFormatter(coin)).format( - utxo.value.toAmountAsRaw( - fractionDigits: coin.fractionDigits, - ), - ), - style: STextStyles.w600_14(context), - ), - const SizedBox( - height: 2, - ), - Row( - children: [ - Flexible( - child: Text( - utxo.name.isNotEmpty - ? utxo.name - : utxo.address ?? utxo.txid, - style: STextStyles.w500_12(context).copyWith( - color: Theme.of(context) - .extension()! - .textSubtitle1, - ), + ), + const SizedBox( + width: 10, + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Text( + ref.watch(pAmountFormatter(coin)).format( + utxo.value.toAmountAsRaw( + fractionDigits: coin.fractionDigits, ), ), - ], - ), - ], - ), + style: STextStyles.w600_14(context), + ), + const SizedBox( + height: 2, + ), + Row( + children: [ + Flexible( + child: Text( + utxo.name.isNotEmpty + ? utxo.name + : utxo.address ?? utxo.txid, + style: STextStyles.w500_12(context).copyWith( + color: Theme.of(context) + .extension()! + .textSubtitle1, + ), + ), + ), + ], + ), + ], ), - ], - ); - }), + ), + ], + ); + }, + ), ), ); } diff --git a/lib/pages/coin_control/utxo_details_view.dart b/lib/pages/coin_control/utxo_details_view.dart index f27db669e..54a6f6e5a 100644 --- a/lib/pages/coin_control/utxo_details_view.dart +++ b/lib/pages/coin_control/utxo_details_view.dart @@ -550,7 +550,7 @@ class _UtxoDetailsViewState extends ConsumerState { } class _Div extends StatelessWidget { - const _Div({Key? key}) : super(key: key); + const _Div({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pages/exchange_view/choose_from_stack_view.dart b/lib/pages/exchange_view/choose_from_stack_view.dart index 0e6cc8627..73d79f647 100644 --- a/lib/pages/exchange_view/choose_from_stack_view.dart +++ b/lib/pages/exchange_view/choose_from_stack_view.dart @@ -131,7 +131,7 @@ class _ChooseFromStackViewState extends ConsumerState { ), ], ), - ) + ), ], ), ), diff --git a/lib/pages/exchange_view/confirm_change_now_send.dart b/lib/pages/exchange_view/confirm_change_now_send.dart index 4e99f9bcf..09aac4df9 100644 --- a/lib/pages/exchange_view/confirm_change_now_send.dart +++ b/lib/pages/exchange_view/confirm_change_now_send.dart @@ -12,12 +12,11 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:uuid/uuid.dart'; + import '../../models/exchange/response_objects/trade.dart'; import '../../models/isar/models/isar_models.dart'; import '../../models/trade_wallet_lookup.dart'; -import '../pinpad_views/lock_screen_view.dart'; -import '../send_view/sub_widgets/sending_transaction_dialog.dart'; -import '../wallet_view/wallet_view.dart'; import '../../pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart'; import '../../providers/db/main_db_provider.dart'; import '../../providers/providers.dart'; @@ -42,7 +41,9 @@ import '../../widgets/desktop/secondary_button.dart'; import '../../widgets/rounded_container.dart'; import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_dialog.dart'; -import 'package:uuid/uuid.dart'; +import '../pinpad_views/lock_screen_view.dart'; +import '../send_view/sub_widgets/sending_transaction_dialog.dart'; +import '../wallet_view/wallet_view.dart'; class ConfirmChangeNowSendView extends ConsumerStatefulWidget { const ConfirmChangeNowSendView({ @@ -342,7 +343,7 @@ class _ConfirmChangeNowSendViewState Text( "Confirm ${ref.watch(pWalletCoin(walletId)).ticker} transaction", style: STextStyles.desktopH3(context), - ) + ), ], ), Padding( @@ -384,8 +385,11 @@ class _ConfirmChangeNowSendViewState children: [ Text( ref - .watch(pAmountFormatter( - ref.watch(pWalletCoin(walletId)))) + .watch( + pAmountFormatter( + ref.watch(pWalletCoin(walletId)), + ), + ) .format(widget.txData.fee!), style: STextStyles.desktopTextExtraExtraSmall(context) @@ -461,7 +465,7 @@ class _ConfirmChangeNowSendViewState ), ), ], - ) + ), ], ), ), @@ -574,41 +578,49 @@ class _ConfirmChangeNowSendViewState builder: (child) => Row( children: [ child, - Builder(builder: (context) { - final coin = ref.watch(pWalletCoin(walletId)); - final price = ref.watch( + Builder( + builder: (context) { + final coin = ref.watch(pWalletCoin(walletId)); + final price = ref.watch( priceAnd24hChangeNotifierProvider - .select((value) => value.getPrice(coin))); - final amountWithoutChange = - widget.txData.amountWithoutChange!; - final value = - (price.item1 * amountWithoutChange.decimal) - .toAmount(fractionDigits: 2); - final currency = ref.watch(prefsChangeNotifierProvider - .select((value) => value.currency)); - final locale = ref.watch( - localeServiceChangeNotifierProvider.select( - (value) => value.locale, - ), - ); + .select((value) => value.getPrice(coin)), + ); + final amountWithoutChange = + widget.txData.amountWithoutChange!; + final value = + (price.item1 * amountWithoutChange.decimal) + .toAmount(fractionDigits: 2); + final currency = ref.watch( + prefsChangeNotifierProvider + .select((value) => value.currency), + ); + final locale = ref.watch( + localeServiceChangeNotifierProvider.select( + (value) => value.locale, + ), + ); - return Text( - " | ${value.fiatString(locale: locale)} $currency", - style: - STextStyles.desktopTextExtraExtraSmall(context) - .copyWith( - color: Theme.of(context) - .extension()! - .textSubtitle2, - ), - ); - }) + return Text( + " | ${value.fiatString(locale: locale)} $currency", + style: STextStyles.desktopTextExtraExtraSmall( + context) + .copyWith( + color: Theme.of(context) + .extension()! + .textSubtitle2, + ), + ); + }, + ), ], ), child: Text( ref - .watch(pAmountFormatter( - ref.watch(pWalletCoin(walletId)))) + .watch( + pAmountFormatter( + ref.watch(pWalletCoin(walletId)), + ), + ) .format((widget.txData.amountWithoutChange!)), style: STextStyles.itemSubtitle12(context), textAlign: TextAlign.right, @@ -637,7 +649,8 @@ class _ConfirmChangeNowSendViewState Text( ref .watch( - pAmountFormatter(ref.read(pWalletCoin(walletId)))) + pAmountFormatter(ref.read(pWalletCoin(walletId))), + ) .format( widget.txData.fee!, ), diff --git a/lib/pages/exchange_view/edit_trade_note_view.dart b/lib/pages/exchange_view/edit_trade_note_view.dart index 9f6c795ec..db918be65 100644 --- a/lib/pages/exchange_view/edit_trade_note_view.dart +++ b/lib/pages/exchange_view/edit_trade_note_view.dart @@ -23,10 +23,10 @@ import '../../widgets/textfield_icon_button.dart'; class EditTradeNoteView extends ConsumerStatefulWidget { const EditTradeNoteView({ - Key? key, + super.key, required this.tradeId, required this.note, - }) : super(key: key); + }); static const String routeName = "/editTradeNote"; @@ -151,7 +151,7 @@ class _EditNoteViewState extends ConsumerState { "Save", style: STextStyles.button(context), ), - ) + ), ], ), ), diff --git a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart index ad13cebf4..109bee3ba 100644 --- a/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart +++ b/lib/pages/exchange_view/exchange_coin_selection/exchange_currency_selection_view.dart @@ -110,7 +110,7 @@ class _ExchangeCurrencySelectionViewState return await _getCurrencies(); } await ExchangeDataLoadingService.instance.initDB(); - List currencies = await ExchangeDataLoadingService + final List currencies = await ExchangeDataLoadingService .instance.isar.currencies .where() .filter() diff --git a/lib/pages/exchange_view/exchange_form.dart b/lib/pages/exchange_view/exchange_form.dart index 2783e9371..9d227f231 100644 --- a/lib/pages/exchange_view/exchange_form.dart +++ b/lib/pages/exchange_view/exchange_form.dart @@ -16,6 +16,9 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; +import 'package:uuid/uuid.dart'; + import '../../models/exchange/aggregate_currency.dart'; import '../../models/exchange/incomplete_exchange.dart'; import '../../models/exchange/response_objects/estimate.dart'; @@ -23,11 +26,6 @@ import '../../models/exchange/response_objects/range.dart'; import '../../models/isar/exchange_cache/currency.dart'; import '../../models/isar/exchange_cache/pair.dart'; import '../../models/isar/models/ethereum/eth_contract.dart'; -import 'exchange_coin_selection/exchange_currency_selection_view.dart'; -import 'exchange_step_views/step_1_view.dart'; -import 'exchange_step_views/step_2_view.dart'; -import 'sub_widgets/exchange_provider_options.dart'; -import 'sub_widgets/rate_type_toggle.dart'; import '../../pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart'; import '../../providers/providers.dart'; import '../../services/exchange/change_now/change_now_exchange.dart'; @@ -43,7 +41,6 @@ import '../../utilities/constants.dart'; import '../../utilities/enums/exchange_rate_type_enum.dart'; import '../../utilities/text_styles.dart'; import '../../utilities/util.dart'; -import '../../wallets/crypto_currency/coins/bitcoin.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import '../../widgets/conditional_parent.dart'; import '../../widgets/custom_loading_overlay.dart'; @@ -55,8 +52,11 @@ import '../../widgets/rounded_container.dart'; import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_dialog.dart'; import '../../widgets/textfields/exchange_textfield.dart'; -import 'package:tuple/tuple.dart'; -import 'package:uuid/uuid.dart'; +import 'exchange_coin_selection/exchange_currency_selection_view.dart'; +import 'exchange_step_views/step_1_view.dart'; +import 'exchange_step_views/step_2_view.dart'; +import 'sub_widgets/exchange_provider_options.dart'; +import 'sub_widgets/rate_type_toggle.dart'; class ExchangeForm extends ConsumerStatefulWidget { const ExchangeForm({ @@ -173,8 +173,9 @@ class _ExchangeFormState extends ConsumerState { .tryParse( value, locale: ref.read(localeServiceChangeNotifierProvider).locale, - coin: Bitcoin(CryptoCurrencyNetwork - .main), // dummy value (not used due to override) + coin: Bitcoin( + CryptoCurrencyNetwork.main, + ), // dummy value (not used due to override) overrideWithDecimalPlacesFromString: true, ) ?.decimal; @@ -184,15 +185,17 @@ class _ExchangeFormState extends ConsumerState { final rateType = ref.read(efRateTypeProvider); final currencies = await ExchangeDataLoadingService.instance.isar.currencies .filter() - .group((q) => rateType == ExchangeRateType.fixed - ? q - .rateTypeEqualTo(SupportedRateType.both) - .or() - .rateTypeEqualTo(SupportedRateType.fixed) - : q - .rateTypeEqualTo(SupportedRateType.both) - .or() - .rateTypeEqualTo(SupportedRateType.estimated)) + .group( + (q) => rateType == ExchangeRateType.fixed + ? q + .rateTypeEqualTo(SupportedRateType.both) + .or() + .rateTypeEqualTo(SupportedRateType.fixed) + : q + .rateTypeEqualTo(SupportedRateType.both) + .or() + .rateTypeEqualTo(SupportedRateType.estimated), + ) .and() .tickerEqualTo( currency.ticker, @@ -364,7 +367,8 @@ class _ExchangeFormState extends ConsumerState { ], ), ); - }) + }, + ) : await Navigator.of(context).push( MaterialPageRoute( builder: (_) => ExchangeCurrencySelectionView( @@ -489,7 +493,7 @@ class _ExchangeFormState extends ConsumerState { ), ), ], - ) + ), ], ), ); @@ -949,7 +953,8 @@ class _ExchangeFormState extends ConsumerState { ), ExchangeTextField( key: Key( - "exchangeTextFieldKeyFor1_${Theme.of(context).extension()!.themeId}"), + "exchangeTextFieldKeyFor1_${Theme.of(context).extension()!.themeId}", + ), focusNode: _receiveFocusNode, controller: _receiveController, textStyle: STextStyles.smallMed14(context).copyWith( @@ -1011,7 +1016,7 @@ class _ExchangeFormState extends ConsumerState { enabled: ref.watch(efCanExchangeProvider), onPressed: onExchangePressed, label: "Swap", - ) + ), ], ); } diff --git a/lib/pages/exchange_view/exchange_loading_overlay.dart b/lib/pages/exchange_view/exchange_loading_overlay.dart index b73d22527..5ccf12cf4 100644 --- a/lib/pages/exchange_view/exchange_loading_overlay.dart +++ b/lib/pages/exchange_view/exchange_loading_overlay.dart @@ -10,6 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../providers/exchange/changenow_initial_load_status.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/text_styles.dart'; @@ -18,9 +19,9 @@ import '../../widgets/stack_dialog.dart'; class ExchangeLoadingOverlayView extends ConsumerStatefulWidget { const ExchangeLoadingOverlayView({ - Key? key, + super.key, required this.unawaitedLoad, - }) : super(key: key); + }); final VoidCallback unawaitedLoad; @@ -80,7 +81,9 @@ class _ExchangeLoadingOverlayViewState .overlay .withOpacity(0.7), child: const CustomLoadingOverlay( - message: "Loading Exchange data", eventBus: null), + message: "Loading Exchange data", + eventBus: null, + ), ), if ((_statusEst == ChangeNowLoadStatus.failed || _statusFixed == ChangeNowLoadStatus.failed) && diff --git a/lib/pages/exchange_view/exchange_step_views/step_1_view.dart b/lib/pages/exchange_view/exchange_step_views/step_1_view.dart index c02647f6e..8e582dab9 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_1_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_1_view.dart @@ -9,9 +9,8 @@ */ import 'package:flutter/material.dart'; + import '../../../models/exchange/incomplete_exchange.dart'; -import 'step_2_view.dart'; -import '../sub_widgets/step_row.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/clipboard_interface.dart'; import '../../../utilities/enums/exchange_rate_type_enum.dart'; @@ -19,13 +18,15 @@ import '../../../utilities/text_styles.dart'; import '../../../widgets/background.dart'; import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../widgets/rounded_white_container.dart'; +import '../sub_widgets/step_row.dart'; +import 'step_2_view.dart'; class Step1View extends StatefulWidget { const Step1View({ - Key? key, + super.key, required this.model, this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); static const String routeName = "/exchangeStep1"; @@ -116,17 +117,19 @@ class _Step1ViewState extends State { "You send", style: STextStyles.itemSubtitle(context) .copyWith( - color: Theme.of(context) - .extension()! - .infoItemText), + color: Theme.of(context) + .extension()! + .infoItemText, + ), ), Text( "${model.sendAmount.toStringAsFixed(8)} ${model.sendTicker.toUpperCase()}", style: STextStyles.itemSubtitle12(context) .copyWith( - color: Theme.of(context) - .extension()! - .infoItemText), + color: Theme.of(context) + .extension()! + .infoItemText, + ), ), ], ), @@ -142,17 +145,19 @@ class _Step1ViewState extends State { "You receive", style: STextStyles.itemSubtitle(context) .copyWith( - color: Theme.of(context) - .extension()! - .infoItemText), + color: Theme.of(context) + .extension()! + .infoItemText, + ), ), Text( "~${model.receiveAmount.toStringAsFixed(8)} ${model.receiveTicker.toUpperCase()}", style: STextStyles.itemSubtitle12(context) .copyWith( - color: Theme.of(context) - .extension()! - .infoItemText), + color: Theme.of(context) + .extension()! + .infoItemText, + ), ), ], ), @@ -179,9 +184,10 @@ class _Step1ViewState extends State { model.rateInfo, style: STextStyles.itemSubtitle12(context) .copyWith( - color: Theme.of(context) - .extension()! - .infoItemText), + color: Theme.of(context) + .extension()! + .infoItemText, + ), ), ], ), @@ -193,8 +199,9 @@ class _Step1ViewState extends State { TextButton( onPressed: () { Navigator.of(context).pushNamed( - Step2View.routeName, - arguments: model); + Step2View.routeName, + arguments: model, + ); }, style: Theme.of(context) .extension()! diff --git a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart index 6071c4556..433984627 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_2_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_2_view.dart @@ -42,11 +42,11 @@ import 'step_3_view.dart'; class Step2View extends ConsumerStatefulWidget { const Step2View({ - Key? key, + super.key, required this.model, this.clipboard = const ClipboardWrapper(), this.barcodeScanner = const BarcodeScannerWrapper(), - }) : super(key: key); + }); static const String routeName = "/exchangeStep2"; diff --git a/lib/pages/exchange_view/exchange_step_views/step_3_view.dart b/lib/pages/exchange_view/exchange_step_views/step_3_view.dart index 2e6b2b237..93856486e 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_3_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_3_view.dart @@ -12,10 +12,9 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../models/exchange/incomplete_exchange.dart'; import '../../../models/exchange/response_objects/trade.dart'; -import 'step_4_view.dart'; -import '../sub_widgets/step_row.dart'; import '../../../providers/global/trades_service_provider.dart'; import '../../../providers/providers.dart'; import '../../../services/exchange/exchange_response.dart'; @@ -31,13 +30,15 @@ import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../widgets/custom_loading_overlay.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_dialog.dart'; +import '../sub_widgets/step_row.dart'; +import 'step_4_view.dart'; class Step3View extends ConsumerStatefulWidget { const Step3View({ - Key? key, + super.key, required this.model, this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); static const String routeName = "/exchangeStep3"; @@ -127,7 +128,7 @@ class _Step3ViewState extends ConsumerState { Text( "${model.sendAmount.toString()} ${model.sendTicker.toUpperCase()}", style: STextStyles.itemSubtitle12(context), - ) + ), ], ), ), @@ -145,7 +146,7 @@ class _Step3ViewState extends ConsumerState { Text( "${model.receiveAmount.toString()} ${model.receiveTicker.toUpperCase()}", style: STextStyles.itemSubtitle12(context), - ) + ), ], ), ), @@ -163,7 +164,7 @@ class _Step3ViewState extends ConsumerState { Text( model.rateInfo, style: STextStyles.itemSubtitle12(context), - ) + ), ], ), ), @@ -184,7 +185,7 @@ class _Step3ViewState extends ConsumerState { Text( model.recipientAddress!, style: STextStyles.itemSubtitle12(context), - ) + ), ], ), ), @@ -207,7 +208,7 @@ class _Step3ViewState extends ConsumerState { Text( model.refundAddress!, style: STextStyles.itemSubtitle12(context), - ) + ), ], ), ), @@ -321,22 +322,27 @@ class _Step3ViewState extends ConsumerState { Navigator.of(context).pop(); } - unawaited(NotificationApi.showNotification( - changeNowId: model.trade!.tradeId, - title: status, - body: "Trade ID ${model.trade!.tradeId}", - walletId: "", - iconAssetName: Assets.svg.arrowRotate, - date: model.trade!.timestamp, - shouldWatchForUpdates: true, - coinName: "coinName", - )); + unawaited( + NotificationApi.showNotification( + changeNowId: model.trade!.tradeId, + title: status, + body: + "Trade ID ${model.trade!.tradeId}", + walletId: "", + iconAssetName: Assets.svg.arrowRotate, + date: model.trade!.timestamp, + shouldWatchForUpdates: true, + coinName: "coinName", + ), + ); if (mounted) { - unawaited(Navigator.of(context).pushNamed( - Step4View.routeName, - arguments: model, - )); + unawaited( + Navigator.of(context).pushNamed( + Step4View.routeName, + arguments: model, + ), + ); } }, style: Theme.of(context) diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index 4700d12b1..d992451a7 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -49,10 +49,10 @@ import '../sub_widgets/step_row.dart'; class Step4View extends ConsumerStatefulWidget { const Step4View({ - Key? key, + super.key, required this.model, this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); static const String routeName = "/exchangeStep4"; diff --git a/lib/pages/exchange_view/exchange_view.dart b/lib/pages/exchange_view/exchange_view.dart index b5fe193bd..1c70a64d0 100644 --- a/lib/pages/exchange_view/exchange_view.dart +++ b/lib/pages/exchange_view/exchange_view.dart @@ -13,10 +13,10 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + import '../../db/isar/main_db.dart'; import '../../models/isar/models/blockchain_data/transaction.dart'; -import 'exchange_form.dart'; -import 'trade_details_view.dart'; import '../../providers/global/trades_service_provider.dart'; import '../../providers/providers.dart'; import '../../services/exchange/exchange_data_loading_service.dart'; @@ -26,10 +26,11 @@ import '../../utilities/text_styles.dart'; import '../../widgets/conditional_parent.dart'; import '../../widgets/custom_loading_overlay.dart'; import '../../widgets/trade_card.dart'; -import 'package:tuple/tuple.dart'; +import 'exchange_form.dart'; +import 'trade_details_view.dart'; class ExchangeView extends ConsumerStatefulWidget { - const ExchangeView({Key? key}) : super(key: key); + const ExchangeView({super.key}); @override ConsumerState createState() => _ExchangeViewState(); @@ -102,7 +103,7 @@ class _ExchangeViewState extends ConsumerState { subMessage: "This could take a few minutes", eventBus: null, ), - ) + ), ], ); }, @@ -124,7 +125,7 @@ class _ExchangeViewState extends ConsumerState { child: ExchangeForm(), ), ), - ) + ), ]; }, body: Builder( @@ -169,63 +170,78 @@ class _ExchangeViewState extends ConsumerState { ), if (hasHistory) SliverList( - delegate: SliverChildBuilderDelegate((context, index) { - return Padding( - padding: const EdgeInsets.all(4), - child: TradeCard( - key: Key("tradeCard_${trades[index].uuid}"), - trade: trades[index], - onTap: () async { - final String tradeId = trades[index].tradeId; + delegate: SliverChildBuilderDelegate( + (context, index) { + return Padding( + padding: const EdgeInsets.all(4), + child: TradeCard( + key: Key("tradeCard_${trades[index].uuid}"), + trade: trades[index], + onTap: () async { + final String tradeId = trades[index].tradeId; - final lookup = ref - .read(tradeSentFromStackLookupProvider) - .all; - - //todo: check if print needed - // debugPrint("ALL: $lookup"); - - final String? txid = ref - .read(tradeSentFromStackLookupProvider) - .getTxidForTradeId(tradeId); - final List? walletIds = ref - .read(tradeSentFromStackLookupProvider) - .getWalletIdsForTradeId(tradeId); - - if (txid != null && - walletIds != null && - walletIds.isNotEmpty) { - final wallet = ref - .read(pWallets) - .getWallet(walletIds.first); + final lookup = ref + .read(tradeSentFromStackLookupProvider) + .all; //todo: check if print needed - // debugPrint("name: ${manager.walletName}"); + // debugPrint("ALL: $lookup"); - final tx = await MainDB.instance - .getTransactions(walletIds.first) - .filter() - .txidEqualTo(txid) - .findFirst(); + final String? txid = ref + .read(tradeSentFromStackLookupProvider) + .getTxidForTradeId(tradeId); + final List? walletIds = ref + .read(tradeSentFromStackLookupProvider) + .getWalletIdsForTradeId(tradeId); - if (mounted) { - unawaited(Navigator.of(context).pushNamed( - TradeDetailsView.routeName, - arguments: Tuple4(tradeId, tx, - walletIds.first, wallet.info.name), - )); + if (txid != null && + walletIds != null && + walletIds.isNotEmpty) { + final wallet = ref + .read(pWallets) + .getWallet(walletIds.first); + + //todo: check if print needed + // debugPrint("name: ${manager.walletName}"); + + final tx = await MainDB.instance + .getTransactions(walletIds.first) + .filter() + .txidEqualTo(txid) + .findFirst(); + + if (mounted) { + unawaited( + Navigator.of(context).pushNamed( + TradeDetailsView.routeName, + arguments: Tuple4( + tradeId, + tx, + walletIds.first, + wallet.info.name, + ), + ), + ); + } + } else { + unawaited( + Navigator.of(context).pushNamed( + TradeDetailsView.routeName, + arguments: Tuple4( + tradeId, + null, + walletIds?.first, + null, + ), + ), + ); } - } else { - unawaited(Navigator.of(context).pushNamed( - TradeDetailsView.routeName, - arguments: Tuple4( - tradeId, null, walletIds?.first, null), - )); - } - }, - ), - ); - }, childCount: tradeCount), + }, + ), + ); + }, + childCount: tradeCount, + ), ), if (!hasHistory) SliverToBoxAdapter( diff --git a/lib/pages/exchange_view/send_from_view.dart b/lib/pages/exchange_view/send_from_view.dart index bf7e18df2..680330753 100644 --- a/lib/pages/exchange_view/send_from_view.dart +++ b/lib/pages/exchange_view/send_from_view.dart @@ -31,8 +31,6 @@ import '../../utilities/constants.dart'; import '../../utilities/enums/fee_rate_type_enum.dart'; import '../../utilities/text_styles.dart'; import '../../utilities/util.dart'; -import '../../wallets/crypto_currency/coins/firo.dart'; -import '../../wallets/crypto_currency/coins/stellar.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import '../../wallets/isar/providers/wallet_info_provider.dart'; import '../../wallets/models/tx_data.dart'; @@ -48,14 +46,14 @@ import '../../widgets/stack_dialog.dart'; class SendFromView extends ConsumerStatefulWidget { const SendFromView({ - Key? key, + super.key, required this.coin, required this.trade, required this.amount, required this.address, this.shouldPopRoot = false, this.fromDesktopStep4 = false, - }) : super(key: key); + }); static const String routeName = "/sendFrom"; diff --git a/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart b/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart index 29cbd7f7f..7ba126659 100644 --- a/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart +++ b/lib/pages/exchange_view/sub_widgets/exchange_provider_option.dart @@ -132,8 +132,9 @@ class _ExchangeOptionState extends ConsumerState { localeServiceChangeNotifierProvider .select((value) => value.locale), ), - coin: Bitcoin(CryptoCurrencyNetwork - .main), // some sane default + coin: Bitcoin( + CryptoCurrencyNetwork.main, + ), // some sane default maxDecimals: 8, // some sane default ); rateString = "1 ${sendCurrency.ticker.toUpperCase()} " @@ -222,14 +223,14 @@ class _ExchangeOptionState extends ConsumerState { class _ProviderOption extends ConsumerStatefulWidget { const _ProviderOption({ - Key? key, + super.key, required this.exchange, required this.estimate, required this.rateString, this.kycRating, this.loadingString = false, this.rateColor, - }) : super(key: key); + }); final Exchange exchange; final Estimate? estimate; diff --git a/lib/pages/exchange_view/sub_widgets/exchange_provider_options.dart b/lib/pages/exchange_view/sub_widgets/exchange_provider_options.dart index dd6afa8ed..436e724ea 100644 --- a/lib/pages/exchange_view/sub_widgets/exchange_provider_options.dart +++ b/lib/pages/exchange_view/sub_widgets/exchange_provider_options.dart @@ -24,10 +24,10 @@ import '../../../widgets/rounded_white_container.dart'; class ExchangeProviderOptions extends ConsumerStatefulWidget { const ExchangeProviderOptions({ - Key? key, + super.key, required this.fixedRate, required this.reversed, - }) : super(key: key); + }); final bool fixedRate; final bool reversed; diff --git a/lib/pages/exchange_view/sub_widgets/rate_type_toggle.dart b/lib/pages/exchange_view/sub_widgets/rate_type_toggle.dart index 6840fa139..3450c7ddd 100644 --- a/lib/pages/exchange_view/sub_widgets/rate_type_toggle.dart +++ b/lib/pages/exchange_view/sub_widgets/rate_type_toggle.dart @@ -20,9 +20,9 @@ import '../../../widgets/toggle.dart'; class RateTypeToggle extends ConsumerWidget { const RateTypeToggle({ - Key? key, + super.key, this.onChanged, - }) : super(key: key); + }); final void Function(ExchangeRateType)? onChanged; diff --git a/lib/pages/exchange_view/sub_widgets/step_indicator.dart b/lib/pages/exchange_view/sub_widgets/step_indicator.dart index d1d440190..e45609035 100644 --- a/lib/pages/exchange_view/sub_widgets/step_indicator.dart +++ b/lib/pages/exchange_view/sub_widgets/step_indicator.dart @@ -18,11 +18,11 @@ enum StepIndicatorStatus { current, completed, incomplete } class StepIndicator extends StatelessWidget { const StepIndicator({ - Key? key, + super.key, required this.step, required this.status, this.size = 16, - }) : super(key: key); + }); final int step; final StepIndicatorStatus status; diff --git a/lib/pages/exchange_view/sub_widgets/step_row.dart b/lib/pages/exchange_view/sub_widgets/step_row.dart index 95a8f4a17..d555438cb 100644 --- a/lib/pages/exchange_view/sub_widgets/step_row.dart +++ b/lib/pages/exchange_view/sub_widgets/step_row.dart @@ -9,18 +9,19 @@ */ import 'package:flutter/material.dart'; -import 'step_indicator.dart'; + import '../../../themes/stack_colors.dart'; +import 'step_indicator.dart'; class StepRow extends StatelessWidget { const StepRow({ - Key? key, + super.key, required this.count, required this.current, required this.width, this.indicatorSize = 16, this.minSpacing = 4, - }) : super(key: key); + }); final int count; final int current; @@ -53,23 +54,29 @@ class StepRow extends StatelessWidget { } List _buildList(double spacerWidth, BuildContext context) { - List list = []; + final List list = []; for (int i = 0; i < count - 1; i++) { - list.add(StepIndicator( - step: i + 1, - status: getStatus(i), - )); - list.add(_SpacerRow( - width: spacerWidth, - dotSize: 1.5, - spacing: 4, - color: getColor(i, context), - )); + list.add( + StepIndicator( + step: i + 1, + status: getStatus(i), + ), + ); + list.add( + _SpacerRow( + width: spacerWidth, + dotSize: 1.5, + spacing: 4, + color: getColor(i, context), + ), + ); } - list.add(StepIndicator( - step: count, - status: getStatus(count - 1), - )); + list.add( + StepIndicator( + step: count, + status: getStatus(count - 1), + ), + ); return list; } @@ -88,12 +95,12 @@ class StepRow extends StatelessWidget { class _SpacerRow extends StatelessWidget { const _SpacerRow({ - Key? key, + super.key, required this.width, required this.dotSize, required this.spacing, required this.color, - }) : super(key: key); + }); final Color color; final double width; @@ -128,10 +135,10 @@ class _SpacerRow extends StatelessWidget { class _SpacerDot extends StatelessWidget { const _SpacerDot({ - Key? key, + super.key, required this.color, this.size = 1.5, - }) : super(key: key); + }); final double size; final Color color; diff --git a/lib/pages/exchange_view/wallet_initiated_exchange_view.dart b/lib/pages/exchange_view/wallet_initiated_exchange_view.dart index ac81190bf..bfdb0e647 100644 --- a/lib/pages/exchange_view/wallet_initiated_exchange_view.dart +++ b/lib/pages/exchange_view/wallet_initiated_exchange_view.dart @@ -119,7 +119,7 @@ class _WalletInitiatedExchangeViewState subMessage: "This could take a few minutes", eventBus: null, ), - ) + ), ], ); }, diff --git a/lib/pages/generic/single_field_edit_view.dart b/lib/pages/generic/single_field_edit_view.dart index d78f6f599..b02490db4 100644 --- a/lib/pages/generic/single_field_edit_view.dart +++ b/lib/pages/generic/single_field_edit_view.dart @@ -26,10 +26,10 @@ import '../../widgets/textfield_icon_button.dart'; class SingleFieldEditView extends StatefulWidget { const SingleFieldEditView({ - Key? key, + super.key, required this.initialValue, required this.label, - }) : super(key: key); + }); static const String routeName = "/singleFieldEdit"; diff --git a/lib/pages/home_view/home_view.dart b/lib/pages/home_view/home_view.dart index 0173064c2..f5e43eac2 100644 --- a/lib/pages/home_view/home_view.dart +++ b/lib/pages/home_view/home_view.dart @@ -200,7 +200,7 @@ class _HomeViewState extends ConsumerState { Text( "My ${AppConfig.prefix}", style: STextStyles.navBarTitle(context), - ) + ), ], ), actions: [ @@ -232,8 +232,10 @@ class _HomeViewState extends ConsumerState { color: Theme.of(context) .extension()! .backgroundAppBar, - icon: ref.watch(notificationsProvider - .select((value) => value.hasUnreadNotifications)) + icon: ref.watch( + notificationsProvider + .select((value) => value.hasUnreadNotifications), + ) ? SvgPicture.file( File( ref.watch( @@ -244,8 +246,11 @@ class _HomeViewState extends ConsumerState { ), width: 20, height: 20, - color: ref.watch(notificationsProvider.select( - (value) => value.hasUnreadNotifications)) + color: ref.watch( + notificationsProvider.select( + (value) => value.hasUnreadNotifications, + ), + ) ? null : Theme.of(context) .extension()! @@ -255,8 +260,11 @@ class _HomeViewState extends ConsumerState { Assets.svg.bell, width: 20, height: 20, - color: ref.watch(notificationsProvider.select( - (value) => value.hasUnreadNotifications)) + color: ref.watch( + notificationsProvider.select( + (value) => value.hasUnreadNotifications, + ), + ) ? null : Theme.of(context) .extension()! @@ -274,14 +282,16 @@ class _HomeViewState extends ConsumerState { .state; if (unreadNotificationIds.isEmpty) return; - List> futures = []; + final List> futures = []; for (int i = 0; i < unreadNotificationIds.length - 1; i++) { - futures.add(ref - .read(notificationsProvider) - .markAsRead( - unreadNotificationIds.elementAt(i), false)); + futures.add( + ref.read(notificationsProvider).markAsRead( + unreadNotificationIds.elementAt(i), + false, + ), + ); } // wait for multiple to update if any diff --git a/lib/pages/home_view/sub_widgets/home_view_button_bar.dart b/lib/pages/home_view/sub_widgets/home_view_button_bar.dart index e51ecacb7..8744e1980 100644 --- a/lib/pages/home_view/sub_widgets/home_view_button_bar.dart +++ b/lib/pages/home_view/sub_widgets/home_view_button_bar.dart @@ -15,7 +15,7 @@ import '../../../themes/stack_colors.dart'; import '../../../utilities/text_styles.dart'; class HomeViewButtonBar extends ConsumerStatefulWidget { - const HomeViewButtonBar({Key? key}) : super(key: key); + const HomeViewButtonBar({super.key}); @override ConsumerState createState() => _HomeViewButtonBarState(); diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index 0f99aabae..b1666cd04 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -187,7 +187,7 @@ class _IntroViewState extends ConsumerState { } class AppNameText extends StatelessWidget { - const AppNameText({Key? key, required this.isDesktop}) : super(key: key); + const AppNameText({super.key, required this.isDesktop}); final bool isDesktop; @@ -209,7 +209,7 @@ class AppNameText extends StatelessWidget { } class IntroAboutText extends StatelessWidget { - const IntroAboutText({Key? key, required this.isDesktop}) : super(key: key); + const IntroAboutText({super.key, required this.isDesktop}); final bool isDesktop; @@ -228,8 +228,7 @@ class IntroAboutText extends StatelessWidget { } class PrivacyAndTOSText extends StatelessWidget { - const PrivacyAndTOSText({Key? key, required this.isDesktop}) - : super(key: key); + const PrivacyAndTOSText({super.key, required this.isDesktop}); final bool isDesktop; @@ -241,7 +240,8 @@ class PrivacyAndTOSText extends StatelessWidget { text: TextSpan( style: STextStyles.label(context).copyWith(fontSize: fontSize), children: [ - TextSpan(text: "By using ${AppConfig.appName}, you agree to the "), + const TextSpan( + text: "By using ${AppConfig.appName}, you agree to the "), TextSpan( text: "Terms of service", style: STextStyles.richLink(context).copyWith(fontSize: fontSize), @@ -272,7 +272,7 @@ class PrivacyAndTOSText extends StatelessWidget { } class GetStartedButton extends StatelessWidget { - const GetStartedButton({Key? key, required this.isDesktop}) : super(key: key); + const GetStartedButton({super.key, required this.isDesktop}); final bool isDesktop; diff --git a/lib/pages/loading_view.dart b/lib/pages/loading_view.dart index 67598d894..e347860ec 100644 --- a/lib/pages/loading_view.dart +++ b/lib/pages/loading_view.dart @@ -22,7 +22,7 @@ import '../widgets/conditional_parent.dart'; import '../widgets/rounded_container.dart'; class LoadingView extends ConsumerWidget { - const LoadingView({Key? key}) : super(key: key); + const LoadingView({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { diff --git a/lib/pages/manage_favorites_view/manage_favorites_view.dart b/lib/pages/manage_favorites_view/manage_favorites_view.dart index a6fe24401..a3673e95a 100644 --- a/lib/pages/manage_favorites_view/manage_favorites_view.dart +++ b/lib/pages/manage_favorites_view/manage_favorites_view.dart @@ -22,7 +22,7 @@ import '../../widgets/desktop/desktop_scaffold.dart'; import '../../widgets/managed_favorite.dart'; class ManageFavoritesView extends StatelessWidget { - const ManageFavoritesView({Key? key}) : super(key: key); + const ManageFavoritesView({super.key}); static const routeName = "/manageFavorites"; @@ -219,7 +219,7 @@ class ManageFavoritesView extends StatelessWidget { ), ); }, - ) + ), ], ), ), diff --git a/lib/pages/monkey/monkey_view.dart b/lib/pages/monkey/monkey_view.dart index d2da7026a..f8f9d3f4d 100644 --- a/lib/pages/monkey/monkey_view.dart +++ b/lib/pages/monkey/monkey_view.dart @@ -6,6 +6,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; + import '../../notifications/show_flush_bar.dart'; import '../../providers/global/wallets_provider.dart'; import '../../services/monkey_service.dart'; @@ -30,9 +31,9 @@ import '../../widgets/stack_dialog.dart'; class MonkeyView extends ConsumerStatefulWidget { const MonkeyView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/monkey"; static const double navBarHeight = 65.0; @@ -89,7 +90,7 @@ class _MonkeyViewState extends ConsumerState { filePath += isPNG ? ".png" : ".svg"; - File imgFile = File(filePath); + final File imgFile = File(filePath); if (imgFile.existsSync() && !overwrite) { throw Exception("File already exists"); @@ -249,7 +250,7 @@ class _MonkeyViewState extends ConsumerState { .extension()! .customTextButtonEnabledText, ), - ) + ), ], ), ), @@ -341,8 +342,9 @@ class _MonkeyViewState extends ConsumerState { whileFuture: Future.wait([ _saveMonKeyToFile( bytes: Uint8List.fromList( - (wallet as BananoWallet) - .getMonkeyImageBytes()!), + (wallet as BananoWallet) + .getMonkeyImageBytes()!, + ), ), Future.delayed( const Duration(seconds: 2), @@ -399,7 +401,8 @@ class _MonkeyViewState extends ConsumerState { ), ), Future.delayed( - const Duration(seconds: 2)), + const Duration(seconds: 2), + ), ]), context: context, rootNavigator: Util.isDesktop, diff --git a/lib/pages/monkey/sub_widgets/fetch_monkey_dialog.dart b/lib/pages/monkey/sub_widgets/fetch_monkey_dialog.dart index ba691645c..b3b5d7e6d 100644 --- a/lib/pages/monkey/sub_widgets/fetch_monkey_dialog.dart +++ b/lib/pages/monkey/sub_widgets/fetch_monkey_dialog.dart @@ -20,9 +20,9 @@ import '../../../widgets/stack_dialog.dart'; class FetchMonkeyDialog extends StatefulWidget { const FetchMonkeyDialog({ - Key? key, + super.key, required this.onCancel, - }) : super(key: key); + }); final Future Function() onCancel; diff --git a/lib/pages/notification_views/notifications_view.dart b/lib/pages/notification_views/notifications_view.dart index 03fbeb784..7a20efffd 100644 --- a/lib/pages/notification_views/notifications_view.dart +++ b/lib/pages/notification_views/notifications_view.dart @@ -21,9 +21,9 @@ import '../../widgets/rounded_white_container.dart'; class NotificationsView extends ConsumerStatefulWidget { const NotificationsView({ - Key? key, + super.key, this.walletId, - }) : super(key: key); + }); final String? walletId; @@ -112,7 +112,7 @@ class _NotificationsViewState extends ConsumerState { ), ), ), - ) + ), ], ), ), diff --git a/lib/pages/ordinals/ordinal_details_view.dart b/lib/pages/ordinals/ordinal_details_view.dart index 5fa7cfd25..02e0ee074 100644 --- a/lib/pages/ordinals/ordinal_details_view.dart +++ b/lib/pages/ordinals/ordinal_details_view.dart @@ -7,6 +7,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; + import '../../models/isar/models/blockchain_data/utxo.dart'; import '../../models/isar/ordinal.dart'; import '../../networking/http.dart'; @@ -145,10 +146,10 @@ class _OrdinalDetailsViewState extends ConsumerState { class _DetailsItemWCopy extends StatelessWidget { const _DetailsItemWCopy({ - Key? key, + super.key, required this.title, required this.data, - }) : super(key: key); + }); final String title; final String data; @@ -219,10 +220,10 @@ class _DetailsItemWCopy extends StatelessWidget { class _OrdinalImageGroup extends ConsumerWidget { const _OrdinalImageGroup({ - Key? key, + super.key, required this.walletId, required this.ordinal, - }) : super(key: key); + }); final String walletId; final Ordinal ordinal; @@ -230,7 +231,7 @@ class _OrdinalImageGroup extends ConsumerWidget { static const _spacing = 12.0; Future _savePngToFile(WidgetRef ref) async { - HTTP client = HTTP(); + final HTTP client = HTTP(); final response = await client.get( url: Uri.parse(ordinal.content), @@ -241,7 +242,8 @@ class _OrdinalImageGroup extends ConsumerWidget { if (response.code != 200) { throw Exception( - "OrdinalDetailsView _savePngToFile statusCode=${response.code} body=${response.bodyBytes}"); + "OrdinalDetailsView _savePngToFile statusCode=${response.code} body=${response.bodyBytes}", + ); } final bytes = response.bodyBytes; @@ -257,7 +259,7 @@ class _OrdinalImageGroup extends ConsumerWidget { final docPath = dir.path; final filePath = "$docPath/ordinal_${ordinal.inscriptionNumber}.png"; - File imgFile = File(filePath); + final File imgFile = File(filePath); if (imgFile.existsSync()) { throw Exception("File already exists"); diff --git a/lib/pages/ordinals/ordinals_filter_view.dart b/lib/pages/ordinals/ordinals_filter_view.dart index 5f598708f..4c7d0b398 100644 --- a/lib/pages/ordinals/ordinals_filter_view.dart +++ b/lib/pages/ordinals/ordinals_filter_view.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../themes/stack_colors.dart'; import '../../themes/theme_providers.dart'; import '../../utilities/assets.dart'; @@ -126,9 +127,10 @@ class _OrdinalsFilterViewState extends ConsumerState { return Text( isDateSelected ? "From..." : _fromDateString, style: STextStyles.fieldLabel(context).copyWith( - color: isDateSelected - ? Theme.of(context).extension()!.textSubtitle2 - : Theme.of(context).extension()!.accentColorDark), + color: isDateSelected + ? Theme.of(context).extension()!.textSubtitle2 + : Theme.of(context).extension()!.accentColorDark, + ), ); } @@ -137,9 +139,10 @@ class _OrdinalsFilterViewState extends ConsumerState { return Text( isDateSelected ? "To..." : _toDateString, style: STextStyles.fieldLabel(context).copyWith( - color: isDateSelected - ? Theme.of(context).extension()!.textSubtitle2 - : Theme.of(context).extension()!.accentColorDark), + color: isDateSelected + ? Theme.of(context).extension()!.textSubtitle2 + : Theme.of(context).extension()!.accentColorDark, + ), ); } @@ -182,7 +185,8 @@ class _OrdinalsFilterViewState extends ConsumerState { !_selectedFromDate!.isBefore(_selectedToDate!); if (flag) { _selectedToDate = DateTime.fromMillisecondsSinceEpoch( - _selectedFromDate!.millisecondsSinceEpoch); + _selectedFromDate!.millisecondsSinceEpoch, + ); } setState(() { @@ -236,7 +240,7 @@ class _OrdinalsFilterViewState extends ConsumerState { child: FittedBox( child: _dateFromText, ), - ) + ), ], ), ), @@ -272,7 +276,8 @@ class _OrdinalsFilterViewState extends ConsumerState { !_selectedToDate!.isAfter(_selectedFromDate!); if (flag) { _selectedFromDate = DateTime.fromMillisecondsSinceEpoch( - _selectedToDate!.millisecondsSinceEpoch); + _selectedToDate!.millisecondsSinceEpoch, + ); } setState(() { @@ -326,7 +331,7 @@ class _OrdinalsFilterViewState extends ConsumerState { child: FittedBox( child: _dateToText, ), - ) + ), ], ), ), diff --git a/lib/pages/ordinals/ordinals_view.dart b/lib/pages/ordinals/ordinals_view.dart index 844523110..17aaffb86 100644 --- a/lib/pages/ordinals/ordinals_view.dart +++ b/lib/pages/ordinals/ordinals_view.dart @@ -39,7 +39,7 @@ class _OrdinalsViewState extends ConsumerState { late final TextEditingController searchController; late final FocusNode searchFocus; - String _searchTerm = ""; + final String _searchTerm = ""; @override void initState() { @@ -91,7 +91,7 @@ class _OrdinalsViewState extends ConsumerState { Future.delayed(const Duration(seconds: 2)), (ref.read(pWallets).getWallet(widget.walletId) as OrdinalsInterface) - .refreshInscriptions() + .refreshInscriptions(), ]), context: context, message: "Refreshing...", diff --git a/lib/pages/ordinals/widgets/ordinal_card.dart b/lib/pages/ordinals/widgets/ordinal_card.dart index b5a561f48..31eeb5733 100644 --- a/lib/pages/ordinals/widgets/ordinal_card.dart +++ b/lib/pages/ordinals/widgets/ordinal_card.dart @@ -9,10 +9,10 @@ import '../../../widgets/rounded_white_container.dart'; class OrdinalCard extends StatelessWidget { const OrdinalCard({ - Key? key, + super.key, required this.walletId, required this.ordinal, - }) : super(key: key); + }); final String walletId; final Ordinal ordinal; diff --git a/lib/pages/ordinals/widgets/ordinals_list.dart b/lib/pages/ordinals/widgets/ordinals_list.dart index 0e9516127..ec67d7ef8 100644 --- a/lib/pages/ordinals/widgets/ordinals_list.dart +++ b/lib/pages/ordinals/widgets/ordinals_list.dart @@ -3,19 +3,20 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; + import '../../../models/isar/ordinal.dart'; -import 'ordinal_card.dart'; import '../../../providers/db/main_db_provider.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; import '../../../widgets/rounded_white_container.dart'; +import 'ordinal_card.dart'; class OrdinalsList extends ConsumerStatefulWidget { const OrdinalsList({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -74,7 +75,8 @@ class _OrdinalsListState extends ConsumerState { ? STextStyles.w500_14(context).copyWith( color: Theme.of(context) .extension()! - .textSubtitle1) + .textSubtitle1, + ) : STextStyles.label(context), ), ), @@ -88,13 +90,16 @@ class _OrdinalsListState extends ConsumerState { spacing: _spacing, runSpacing: _spacing, children: _data - .map((e) => SizedBox( + .map( + (e) => SizedBox( width: 220, height: 270, child: OrdinalCard( walletId: widget.walletId, ordinal: e, - ))) + ), + ), + ) .toList(), ); } else { diff --git a/lib/pages/paynym/add_new_paynym_follow_view.dart b/lib/pages/paynym/add_new_paynym_follow_view.dart index f02089c05..5f9e7bb71 100644 --- a/lib/pages/paynym/add_new_paynym_follow_view.dart +++ b/lib/pages/paynym/add_new_paynym_follow_view.dart @@ -13,9 +13,8 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../models/paynym/paynym_account.dart'; -import 'subwidgets/featured_paynyms_widget.dart'; -import 'subwidgets/paynym_card.dart'; import '../../providers/global/paynym_api_provider.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/barcode_scanner_interface.dart'; @@ -37,12 +36,14 @@ import '../../widgets/rounded_container.dart'; import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_text_field.dart'; import '../../widgets/textfield_icon_button.dart'; +import 'subwidgets/featured_paynyms_widget.dart'; +import 'subwidgets/paynym_card.dart'; class AddNewPaynymFollowView extends ConsumerStatefulWidget { const AddNewPaynymFollowView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -283,8 +284,8 @@ class _AddNewPaynymFollowViewState }); }, style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textFieldActiveText, @@ -324,7 +325,8 @@ class _AddNewPaynymFollowViewState ) : TextFieldIconButton( key: const Key( - "paynymPasteAddressFieldButtonKey"), + "paynymPasteAddressFieldButtonKey", + ), onTap: _paste, child: RoundedContainer( padding: @@ -337,7 +339,8 @@ class _AddNewPaynymFollowViewState ), TextFieldIconButton( key: const Key( - "paynymScanQrButtonKey"), + "paynymScanQrButtonKey", + ), onTap: _scanQr, child: RoundedContainer( padding: const EdgeInsets.all(8), @@ -346,7 +349,7 @@ class _AddNewPaynymFollowViewState .buttonBackSecondary, child: const QrCodeIcon(), ), - ) + ), ], ), ), @@ -398,7 +401,8 @@ class _AddNewPaynymFollowViewState ) : TextFieldIconButton( key: const Key( - "paynymPasteAddressFieldButtonKey"), + "paynymPasteAddressFieldButtonKey", + ), onTap: _paste, child: const ClipboardIcon(), ), @@ -406,7 +410,7 @@ class _AddNewPaynymFollowViewState key: const Key("paynymScanQrButtonKey"), onTap: _scanQr, child: const QrCodeIcon(), - ) + ), ], ), ), diff --git a/lib/pages/paynym/dialogs/claiming_paynym_dialog.dart b/lib/pages/paynym/dialogs/claiming_paynym_dialog.dart index 2adad5a69..d10ad52fd 100644 --- a/lib/pages/paynym/dialogs/claiming_paynym_dialog.dart +++ b/lib/pages/paynym/dialogs/claiming_paynym_dialog.dart @@ -20,8 +20,8 @@ import '../../../widgets/stack_dialog.dart'; class ClaimingPaynymDialog extends StatefulWidget { const ClaimingPaynymDialog({ - Key? key, - }) : super(key: key); + super.key, + }); @override State createState() => _RestoringDialogState(); diff --git a/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart b/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart index ee2504d35..5024775eb 100644 --- a/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart +++ b/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart @@ -122,7 +122,7 @@ class ConfirmPaynymConnectDialog extends ConsumerWidget { ), ], ), - ) + ), ], ), ); diff --git a/lib/pages/paynym/dialogs/paynym_details_popup.dart b/lib/pages/paynym/dialogs/paynym_details_popup.dart index aa4774646..832f97422 100644 --- a/lib/pages/paynym/dialogs/paynym_details_popup.dart +++ b/lib/pages/paynym/dialogs/paynym_details_popup.dart @@ -227,7 +227,7 @@ class _PaynymDetailsPopupState extends ConsumerState { .extension()! .accentColorGreen, ), - ) + ), ], ); } else { diff --git a/lib/pages/paynym/dialogs/paynym_qr_popup.dart b/lib/pages/paynym/dialogs/paynym_qr_popup.dart index 757761396..b3cb3a1d0 100644 --- a/lib/pages/paynym/dialogs/paynym_qr_popup.dart +++ b/lib/pages/paynym/dialogs/paynym_qr_popup.dart @@ -26,9 +26,9 @@ import '../../../widgets/desktop/desktop_dialog_close_button.dart'; class PaynymQrPopup extends StatelessWidget { const PaynymQrPopup({ - Key? key, + super.key, required this.paynymAccount, - }) : super(key: key); + }); final PaynymAccount paynymAccount; @@ -166,7 +166,7 @@ class PaynymQrPopup extends StatelessWidget { ), ], ), - ) + ), ], ), ); diff --git a/lib/pages/paynym/paynym_claim_view.dart b/lib/pages/paynym/paynym_claim_view.dart index 457179655..9bf9cb3cd 100644 --- a/lib/pages/paynym/paynym_claim_view.dart +++ b/lib/pages/paynym/paynym_claim_view.dart @@ -33,9 +33,9 @@ import '../../widgets/desktop/primary_button.dart'; class PaynymClaimView extends ConsumerStatefulWidget { const PaynymClaimView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -113,7 +113,7 @@ class _PaynymClaimViewState extends ConsumerState { Text( "PayNym", style: STextStyles.desktopH3(context), - ) + ), ], ), ) diff --git a/lib/pages/paynym/paynym_home_view.dart b/lib/pages/paynym/paynym_home_view.dart index be8e9db4c..8c3c6419d 100644 --- a/lib/pages/paynym/paynym_home_view.dart +++ b/lib/pages/paynym/paynym_home_view.dart @@ -15,13 +15,8 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:share_plus/share_plus.dart'; + import '../../notifications/show_flush_bar.dart'; -import 'add_new_paynym_follow_view.dart'; -import 'dialogs/paynym_qr_popup.dart'; -import 'subwidgets/desktop_paynym_details.dart'; -import 'subwidgets/paynym_bot.dart'; -import 'subwidgets/paynym_followers_list.dart'; -import 'subwidgets/paynym_following_list.dart'; import '../../providers/ui/selected_paynym_details_item_Provider.dart'; import '../../providers/wallet/my_paynym_account_state_provider.dart'; import '../../themes/stack_colors.dart'; @@ -41,12 +36,18 @@ import '../../widgets/icon_widgets/share_icon.dart'; import '../../widgets/rounded_container.dart'; import '../../widgets/rounded_white_container.dart'; import '../../widgets/toggle.dart'; +import 'add_new_paynym_follow_view.dart'; +import 'dialogs/paynym_qr_popup.dart'; +import 'subwidgets/desktop_paynym_details.dart'; +import 'subwidgets/paynym_bot.dart'; +import 'subwidgets/paynym_followers_list.dart'; +import 'subwidgets/paynym_following_list.dart'; class PaynymHomeView extends ConsumerStatefulWidget { const PaynymHomeView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -117,7 +118,7 @@ class _PaynymHomeViewState extends ConsumerState { Text( "PayNym", style: STextStyles.desktopH3(context), - ) + ), ], ), trailing: Padding( @@ -169,8 +170,8 @@ class _PaynymHomeViewState extends ConsumerState { "Follow", style: STextStyles.desktopButtonSecondaryEnabled( - context) - .copyWith( + context, + ).copyWith( fontSize: 16, ), ), @@ -267,9 +268,11 @@ class _PaynymHomeViewState extends ConsumerState { secretCount++; if (secretCount > 5) { debugPrint( - "My Account: ${ref.read(myPaynymAccountStateProvider.state).state}"); + "My Account: ${ref.read(myPaynymAccountStateProvider.state).state}", + ); debugPrint( - "My Account: ${ref.read(myPaynymAccountStateProvider.state).state!.following}"); + "My Account: ${ref.read(myPaynymAccountStateProvider.state).state!.following}", + ); secretCount = 0; } @@ -304,13 +307,14 @@ class _PaynymHomeViewState extends ConsumerState { ), Text( Format.shorten( - ref - .watch(myPaynymAccountStateProvider.state) - .state! - .nonSegwitPaymentCode - .code, - 12, - 5), + ref + .watch(myPaynymAccountStateProvider.state) + .state! + .nonSegwitPaymentCode + .code, + 12, + 5, + ), style: STextStyles.label(context).copyWith( fontSize: 14, ), @@ -380,12 +384,13 @@ class _PaynymHomeViewState extends ConsumerState { } await Share.share( - ref - .read(myPaynymAccountStateProvider.state) - .state! - .nonSegwitPaymentCode - .code, - sharePositionOrigin: sharePositionOrigin); + ref + .read(myPaynymAccountStateProvider.state) + .state! + .nonSegwitPaymentCode + .code, + sharePositionOrigin: sharePositionOrigin, + ); }, ), ), @@ -435,9 +440,11 @@ class _PaynymHomeViewState extends ConsumerState { secretCount++; if (secretCount > 5) { debugPrint( - "My Account: ${ref.read(myPaynymAccountStateProvider.state).state}"); + "My Account: ${ref.read(myPaynymAccountStateProvider.state).state}", + ); debugPrint( - "My Account: ${ref.read(myPaynymAccountStateProvider.state).state!.following}"); + "My Account: ${ref.read(myPaynymAccountStateProvider.state).state!.following}", + ); secretCount = 0; } @@ -475,13 +482,14 @@ class _PaynymHomeViewState extends ConsumerState { ), Text( Format.shorten( - ref - .watch(myPaynymAccountStateProvider.state) - .state! - .nonSegwitPaymentCode - .code, - 12, - 5), + ref + .watch(myPaynymAccountStateProvider.state) + .state! + .nonSegwitPaymentCode + .code, + 12, + 5, + ), style: STextStyles.desktopTextExtraExtraSmall(context), ), @@ -619,8 +627,9 @@ class _PaynymHomeViewState extends ConsumerState { child: DesktopPaynymDetails( walletId: widget.walletId, accountLite: ref - .watch(selectedPaynymDetailsItemProvider - .state) + .watch( + selectedPaynymDetailsItemProvider.state, + ) .state!, ), ), diff --git a/lib/pages/paynym/subwidgets/desktop_paynym_details.dart b/lib/pages/paynym/subwidgets/desktop_paynym_details.dart index bc2fef85f..c33d5ed24 100644 --- a/lib/pages/paynym/subwidgets/desktop_paynym_details.dart +++ b/lib/pages/paynym/subwidgets/desktop_paynym_details.dart @@ -41,10 +41,10 @@ import '../../../widgets/rounded_white_container.dart'; class DesktopPaynymDetails extends ConsumerStatefulWidget { const DesktopPaynymDetails({ - Key? key, + super.key, required this.walletId, required this.accountLite, - }) : super(key: key); + }); final String walletId; final PaynymAccountLite accountLite; @@ -216,7 +216,7 @@ class _PaynymDetailsPopupState extends ConsumerState { .extension()! .accentColorGreen, ), - ) + ), ], ); } else { diff --git a/lib/pages/paynym/subwidgets/featured_paynyms_widget.dart b/lib/pages/paynym/subwidgets/featured_paynyms_widget.dart index 645d8cf60..e67f312c9 100644 --- a/lib/pages/paynym/subwidgets/featured_paynyms_widget.dart +++ b/lib/pages/paynym/subwidgets/featured_paynyms_widget.dart @@ -18,9 +18,9 @@ import '../../../widgets/rounded_white_container.dart'; class FeaturedPaynymsWidget extends StatelessWidget { const FeaturedPaynymsWidget({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; diff --git a/lib/pages/paynym/subwidgets/paynym_bot.dart b/lib/pages/paynym/subwidgets/paynym_bot.dart index ab72dce24..1a6d6e469 100644 --- a/lib/pages/paynym/subwidgets/paynym_bot.dart +++ b/lib/pages/paynym/subwidgets/paynym_bot.dart @@ -17,10 +17,10 @@ import '../../../utilities/prefs.dart'; class PayNymBot extends StatelessWidget { const PayNymBot({ - Key? key, + super.key, required this.paymentCodeString, this.size = 60.0, - }) : super(key: key); + }); final String paymentCodeString; final double size; diff --git a/lib/pages/paynym/subwidgets/paynym_card.dart b/lib/pages/paynym/subwidgets/paynym_card.dart index 1a81202a6..32422a740 100644 --- a/lib/pages/paynym/subwidgets/paynym_card.dart +++ b/lib/pages/paynym/subwidgets/paynym_card.dart @@ -18,11 +18,11 @@ import '../../../widgets/custom_buttons/paynym_follow_toggle_button.dart'; class PaynymCard extends StatefulWidget { const PaynymCard({ - Key? key, + super.key, required this.walletId, required this.label, required this.paymentCodeString, - }) : super(key: key); + }); final String walletId; final String label; diff --git a/lib/pages/paynym/subwidgets/paynym_card_button.dart b/lib/pages/paynym/subwidgets/paynym_card_button.dart index 869d6244d..8f7026be3 100644 --- a/lib/pages/paynym/subwidgets/paynym_card_button.dart +++ b/lib/pages/paynym/subwidgets/paynym_card_button.dart @@ -23,10 +23,10 @@ import '../../../widgets/rounded_container.dart'; class PaynymCardButton extends ConsumerStatefulWidget { const PaynymCardButton({ - Key? key, + super.key, required this.walletId, required this.accountLite, - }) : super(key: key); + }); final String walletId; final PaynymAccountLite accountLite; diff --git a/lib/pages/paynym/subwidgets/paynym_followers_list.dart b/lib/pages/paynym/subwidgets/paynym_followers_list.dart index 55ac272f7..43fdf0223 100644 --- a/lib/pages/paynym/subwidgets/paynym_followers_list.dart +++ b/lib/pages/paynym/subwidgets/paynym_followers_list.dart @@ -27,9 +27,9 @@ import '../../../widgets/rounded_white_container.dart'; class PaynymFollowersList extends ConsumerStatefulWidget { const PaynymFollowersList({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; diff --git a/lib/pages/paynym/subwidgets/paynym_following_list.dart b/lib/pages/paynym/subwidgets/paynym_following_list.dart index 3536f5760..486e138e2 100644 --- a/lib/pages/paynym/subwidgets/paynym_following_list.dart +++ b/lib/pages/paynym/subwidgets/paynym_following_list.dart @@ -27,9 +27,9 @@ import '../../../widgets/rounded_white_container.dart'; class PaynymFollowingList extends ConsumerStatefulWidget { const PaynymFollowingList({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; diff --git a/lib/pages/pinpad_views/create_pin_view.dart b/lib/pages/pinpad_views/create_pin_view.dart index 05231181d..586e6c9fd 100644 --- a/lib/pages/pinpad_views/create_pin_view.dart +++ b/lib/pages/pinpad_views/create_pin_view.dart @@ -13,8 +13,8 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../notifications/show_flush_bar.dart'; -import '../home_view/home_view.dart'; import '../../providers/global/prefs_provider.dart'; import '../../providers/global/secure_store_provider.dart'; import '../../themes/stack_colors.dart'; @@ -25,13 +25,14 @@ import '../../utilities/text_styles.dart'; import '../../widgets/background.dart'; import '../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../widgets/custom_pin_put/custom_pin_put.dart'; +import '../home_view/home_view.dart'; class CreatePinView extends ConsumerStatefulWidget { const CreatePinView({ - Key? key, + super.key, this.popOnSuccess = false, this.biometrics = const Biometrics(), - }) : super(key: key); + }); static const String routeName = "/createPin"; @@ -265,8 +266,9 @@ class _CreatePinViewState extends ConsumerState { // if (!Platform.isLinux) // assert((await _secureStore.read(key: "stack_pin")) == // null); - assert(ref.read(prefsChangeNotifierProvider).hasPin == - false); + assert( + ref.read(prefsChangeNotifierProvider).hasPin == false, + ); await _secureStore.write(key: "stack_pin", value: pin); @@ -275,7 +277,8 @@ class _CreatePinViewState extends ConsumerState { ref.read(prefsChangeNotifierProvider).hasPin = true; await Future.delayed( - const Duration(milliseconds: 200)); + const Duration(milliseconds: 200), + ); if (mounted) { if (!widget.popOnSuccess) { diff --git a/lib/pages/pinpad_views/lock_screen_view.dart b/lib/pages/pinpad_views/lock_screen_view.dart index ec4f7af76..afb7c7a1d 100644 --- a/lib/pages/pinpad_views/lock_screen_view.dart +++ b/lib/pages/pinpad_views/lock_screen_view.dart @@ -12,9 +12,8 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../notifications/show_flush_bar.dart'; -import '../home_view/home_view.dart'; -import '../wallet_view/wallet_view.dart'; // import 'package:stackwallet/providers/global/has_authenticated_start_state_provider.dart'; import '../../providers/global/prefs_provider.dart'; import '../../providers/global/secure_store_provider.dart'; @@ -23,7 +22,6 @@ import '../../themes/stack_colors.dart'; // import 'package:stackwallet/providers/global/should_show_lockscreen_on_resume_state_provider.dart'; import '../../utilities/assets.dart'; import '../../utilities/biometrics.dart'; - import '../../utilities/flutter_secure_storage_interface.dart'; import '../../utilities/show_loading.dart'; import '../../utilities/text_styles.dart'; @@ -33,10 +31,12 @@ import '../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../widgets/custom_buttons/blue_text_button.dart'; import '../../widgets/custom_pin_put/custom_pin_put.dart'; import '../../widgets/shake/shake.dart'; +import '../home_view/home_view.dart'; +import '../wallet_view/wallet_view.dart'; class LockscreenView extends ConsumerStatefulWidget { const LockscreenView({ - Key? key, + super.key, required this.routeOnSuccess, required this.biometricsAuthenticationTitle, required this.biometricsLocalizedReason, @@ -48,7 +48,7 @@ class LockscreenView extends ConsumerStatefulWidget { this.biometrics = const Biometrics(), this.onSuccess, this.customKeyLabel = "Button", - }) : super(key: key); + }); static const String routeName = "/lockscreen"; @@ -151,9 +151,10 @@ class _LockscreenViewState extends ConsumerState { if (useBiometrics) { if (await biometrics.authenticate( - title: title, - localizedReason: localizedReason, - cancelButtonText: cancelButtonText)) { + title: title, + localizedReason: localizedReason, + cancelButtonText: cancelButtonText, + )) { // check if initial log in // if (widget.routeOnSuccess == "/mainview") { // await logIn(await walletsService.networkName, currentWalletName, @@ -227,7 +228,8 @@ class _LockscreenViewState extends ConsumerState { if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 70)); + const Duration(milliseconds: 70), + ); } if (mounted) { Navigator.of(context).pop(); @@ -360,16 +362,19 @@ class _LockscreenViewState extends ConsumerState { prettyTime += "${_timeout.inSeconds} seconds"; } - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: - "Incorrect PIN entered too many times. Please wait $prettyTime", - context: context, - iconAsset: Assets.svg.alertCircle, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: + "Incorrect PIN entered too many times. Please wait $prettyTime", + context: context, + iconAsset: Assets.svg.alertCircle, + ), + ); await Future.delayed( - const Duration(milliseconds: 100)); + const Duration(milliseconds: 100), + ); _pinTextController.text = ''; @@ -381,19 +386,23 @@ class _LockscreenViewState extends ConsumerState { if (storedPin == pin) { await Future.delayed( - const Duration(milliseconds: 200)); + const Duration(milliseconds: 200), + ); unawaited(_onUnlock()); } else { unawaited(_shakeController.shake()); - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "Incorrect PIN. Please try again", - context: context, - iconAsset: Assets.svg.alertCircle, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Incorrect PIN. Please try again", + context: context, + iconAsset: Assets.svg.alertCircle, + ), + ); await Future.delayed( - const Duration(milliseconds: 100)); + const Duration(milliseconds: 100), + ); _pinTextController.text = ''; } diff --git a/lib/pages/receive_view/addresses/address_card.dart b/lib/pages/receive_view/addresses/address_card.dart index 9cd6fbb2f..a13ec17a7 100644 --- a/lib/pages/receive_view/addresses/address_card.dart +++ b/lib/pages/receive_view/addresses/address_card.dart @@ -22,6 +22,7 @@ import 'package:isar/isar.dart'; import 'package:path_provider/path_provider.dart'; import 'package:qr_flutter/qr_flutter.dart'; import 'package:share_plus/share_plus.dart'; + import '../../../db/isar/main_db.dart'; import '../../../models/isar/models/isar_models.dart'; import '../../../notifications/show_flush_bar.dart'; @@ -84,7 +85,8 @@ class _AddressCardState extends ConsumerState { final dir = Directory("${Platform.environment['HOME']}"); if (!dir.existsSync()) { throw Exception( - "Home dir not found while trying to open filepicker on QR image save"); + "Home dir not found while trying to open filepicker on QR image save", + ); } final path = await FilePicker.platform.saveFile( fileName: "qrcode.png", @@ -127,8 +129,10 @@ class _AddressCardState extends ConsumerState { final file = await File("${tempDir.path}/qrcode.png").create(); await file.writeAsBytes(pngBytes); - await Share.shareFiles(["${tempDir.path}/qrcode.png"], - text: "Receive URI QR Code"); + await Share.shareFiles( + ["${tempDir.path}/qrcode.png"], + text: "Receive URI QR Code", + ); } } catch (e) { //todo: comeback to this @@ -362,7 +366,7 @@ class _AddressCardState extends ConsumerState { ), ), ], - ) + ), ], ), ); diff --git a/lib/pages/receive_view/addresses/address_details_view.dart b/lib/pages/receive_view/addresses/address_details_view.dart index 268a9bca7..120bfa48b 100644 --- a/lib/pages/receive_view/addresses/address_details_view.dart +++ b/lib/pages/receive_view/addresses/address_details_view.dart @@ -12,13 +12,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; import 'package:qr_flutter/qr_flutter.dart'; + import '../../../db/isar/main_db.dart'; import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../models/isar/models/isar_models.dart'; -import 'address_tag.dart'; -import '../../wallet_view/sub_widgets/no_transactions_found.dart'; -import '../../wallet_view/transaction_views/transaction_details_view.dart'; -import '../../wallet_view/transaction_views/tx_v2/transaction_v2_card.dart'; import '../../../providers/db/main_db_provider.dart'; import '../../../providers/global/wallets_provider.dart'; import '../../../themes/stack_colors.dart'; @@ -36,6 +33,10 @@ import '../../../widgets/desktop/desktop_dialog.dart'; import '../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/transaction_card.dart'; +import '../../wallet_view/sub_widgets/no_transactions_found.dart'; +import '../../wallet_view/transaction_views/transaction_details_view.dart'; +import '../../wallet_view/transaction_views/tx_v2/transaction_v2_card.dart'; +import 'address_tag.dart'; class AddressDetailsView extends ConsumerStatefulWidget { const AddressDetailsView({ @@ -212,8 +213,8 @@ class _AddressDetailsViewState extends ConsumerState { Text( "Address details", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textSubtitle1, @@ -244,8 +245,8 @@ class _AddressDetailsViewState extends ConsumerState { Text( "Transaction history", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textSubtitle1, @@ -476,10 +477,10 @@ class _AddressDetailsTxList extends StatelessWidget { class _AddressDetailsTxV2List extends ConsumerWidget { const _AddressDetailsTxV2List({ - Key? key, + super.key, required this.walletId, required this.address, - }) : super(key: key); + }); final String walletId; final Address address; @@ -491,37 +492,38 @@ class _AddressDetailsTxV2List extends ConsumerWidget { final query = ref.watch(mainDBProvider).isar.transactionV2s.buildQuery( - whereClauses: [ - IndexWhereClause.equalTo( - indexName: 'walletId', - value: [walletId], - ) - ], - filter: FilterGroup.and([ - if (walletTxFilter != null) walletTxFilter, - FilterGroup.or([ - ObjectFilter( - property: 'inputs', - filter: FilterCondition.contains( - property: "addresses", - value: address.value, - ), + whereClauses: [ + IndexWhereClause.equalTo( + indexName: 'walletId', + value: [walletId], ), - ObjectFilter( - property: 'outputs', - filter: FilterCondition.contains( - property: "addresses", - value: address.value, + ], + filter: FilterGroup.and([ + if (walletTxFilter != null) walletTxFilter, + FilterGroup.or([ + ObjectFilter( + property: 'inputs', + filter: FilterCondition.contains( + property: "addresses", + value: address.value, + ), ), - ) + ObjectFilter( + property: 'outputs', + filter: FilterCondition.contains( + property: "addresses", + value: address.value, + ), + ), + ]), ]), - ]), - sortBy: [ - const SortProperty( - property: "timestamp", - sort: Sort.desc, - ), - ]); + sortBy: [ + const SortProperty( + property: "timestamp", + sort: Sort.desc, + ), + ], + ); final count = query.countSync(); @@ -561,9 +563,9 @@ class _AddressDetailsTxV2List extends ConsumerWidget { class _Div extends StatelessWidget { const _Div({ - Key? key, + super.key, required this.height, - }) : super(key: key); + }); final double height; @@ -585,9 +587,9 @@ class _Div extends StatelessWidget { class _Tags extends StatelessWidget { const _Tags({ - Key? key, + super.key, required this.tags, - }) : super(key: key); + }); final List? tags; @@ -643,11 +645,11 @@ class _Tags extends StatelessWidget { class _Item extends StatelessWidget { const _Item({ - Key? key, + super.key, required this.title, required this.data, required this.button, - }) : super(key: key); + }); final String title; final String data; diff --git a/lib/pages/receive_view/addresses/address_qr_popup.dart b/lib/pages/receive_view/addresses/address_qr_popup.dart index 202876e26..7b25003b2 100644 --- a/lib/pages/receive_view/addresses/address_qr_popup.dart +++ b/lib/pages/receive_view/addresses/address_qr_popup.dart @@ -20,6 +20,7 @@ import 'package:flutter_svg/svg.dart'; import 'package:path_provider/path_provider.dart'; import 'package:qr_flutter/qr_flutter.dart'; import 'package:share_plus/share_plus.dart'; + import '../../../notifications/show_flush_bar.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/address_utils.dart'; @@ -66,7 +67,8 @@ class _AddressQrPopupState extends State { final dir = Directory("${Platform.environment['HOME']}"); if (!dir.existsSync()) { throw Exception( - "Home dir not found while trying to open filepicker on QR image save"); + "Home dir not found while trying to open filepicker on QR image save", + ); } final path = await FilePicker.platform.saveFile( fileName: "qrcode.png", @@ -105,8 +107,10 @@ class _AddressQrPopupState extends State { final file = await File("${tempDir.path}/qrcode.png").create(); await file.writeAsBytes(pngBytes); - await Share.shareFiles(["${tempDir.path}/qrcode.png"], - text: "Receive URI QR Code"); + await Share.shareFiles( + ["${tempDir.path}/qrcode.png"], + text: "Receive URI QR Code", + ); } } catch (e) { //todo: comeback to this @@ -194,7 +198,7 @@ class _AddressQrPopupState extends State { ), ), ], - ) + ), ], ), ); diff --git a/lib/pages/receive_view/addresses/address_tag.dart b/lib/pages/receive_view/addresses/address_tag.dart index c2258adda..1d7ebaf5b 100644 --- a/lib/pages/receive_view/addresses/address_tag.dart +++ b/lib/pages/receive_view/addresses/address_tag.dart @@ -15,7 +15,7 @@ import '../../../utilities/text_styles.dart'; import '../../../widgets/rounded_container.dart'; class AddressTag extends StatelessWidget { - const AddressTag({Key? key, required this.tag}) : super(key: key); + const AddressTag({super.key, required this.tag}); final String tag; diff --git a/lib/pages/receive_view/addresses/edit_address_label_view.dart b/lib/pages/receive_view/addresses/edit_address_label_view.dart index 61c639877..2e6052690 100644 --- a/lib/pages/receive_view/addresses/edit_address_label_view.dart +++ b/lib/pages/receive_view/addresses/edit_address_label_view.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; + import '../../../db/isar/main_db.dart'; import '../../../models/isar/models/address_label.dart'; import '../../../themes/stack_colors.dart'; @@ -28,9 +29,9 @@ import '../../../widgets/textfield_icon_button.dart'; class EditAddressLabelView extends ConsumerStatefulWidget { const EditAddressLabelView({ - Key? key, + super.key, required this.addressLabelId, - }) : super(key: key); + }); static const String routeName = "/editAddressLabel"; @@ -89,7 +90,8 @@ class _EditAddressLabelViewState extends ConsumerState { if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } if (mounted) { Navigator.of(context).pop(); @@ -241,7 +243,7 @@ class _EditAddressLabelViewState extends ConsumerState { "Save", style: STextStyles.button(context), ), - ) + ), ], ), ), diff --git a/lib/pages/receive_view/addresses/wallet_addresses_view.dart b/lib/pages/receive_view/addresses/wallet_addresses_view.dart index b0970395b..620bfe244 100644 --- a/lib/pages/receive_view/addresses/wallet_addresses_view.dart +++ b/lib/pages/receive_view/addresses/wallet_addresses_view.dart @@ -11,10 +11,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + import '../../../db/isar/main_db.dart'; import '../../../models/isar/models/isar_models.dart'; -import 'address_card.dart'; -import 'address_details_view.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; @@ -23,13 +23,14 @@ import '../../../widgets/background.dart'; import '../../../widgets/conditional_parent.dart'; import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../widgets/loading_indicator.dart'; -import 'package:tuple/tuple.dart'; +import 'address_card.dart'; +import 'address_details_view.dart'; class WalletAddressesView extends ConsumerStatefulWidget { const WalletAddressesView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/walletAddressesView"; @@ -53,14 +54,16 @@ class _WalletAddressesViewState extends ConsumerState { return MainDB.instance .getAddresses(widget.walletId) .filter() - .group((q) => q - .subTypeEqualTo(AddressSubType.change) - .or() - .subTypeEqualTo(AddressSubType.receiving) - .or() - .subTypeEqualTo(AddressSubType.paynymReceive) - .or() - .subTypeEqualTo(AddressSubType.paynymNotification)) + .group( + (q) => q + .subTypeEqualTo(AddressSubType.change) + .or() + .subTypeEqualTo(AddressSubType.receiving) + .or() + .subTypeEqualTo(AddressSubType.paynymReceive) + .or() + .subTypeEqualTo(AddressSubType.paynymNotification), + ) .and() .not() .typeEqualTo(AddressType.nonWallet) @@ -95,15 +98,19 @@ class _WalletAddressesViewState extends ConsumerState { .getAddresses(widget.walletId) .filter() .anyOf( - labels, (q, e) => q.valueEqualTo(e.addressString)) - .group((q) => q - .subTypeEqualTo(AddressSubType.change) - .or() - .subTypeEqualTo(AddressSubType.receiving) - .or() - .subTypeEqualTo(AddressSubType.paynymReceive) - .or() - .subTypeEqualTo(AddressSubType.paynymNotification)) + labels, + (q, e) => q.valueEqualTo(e.addressString), + ) + .group( + (q) => q + .subTypeEqualTo(AddressSubType.change) + .or() + .subTypeEqualTo(AddressSubType.receiving) + .or() + .subTypeEqualTo(AddressSubType.paynymReceive) + .or() + .subTypeEqualTo(AddressSubType.paynymNotification), + ) .and() .not() .typeEqualTo(AddressType.nonWallet) diff --git a/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart b/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart index 25c338b96..e7d6d7e5f 100644 --- a/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart +++ b/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart @@ -22,6 +22,7 @@ import 'package:flutter_svg/svg.dart'; import 'package:path_provider/path_provider.dart'; import 'package:qr_flutter/qr_flutter.dart'; import 'package:share_plus/share_plus.dart'; + import '../../notifications/show_flush_bar.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/address_utils.dart'; @@ -31,8 +32,6 @@ import '../../utilities/constants.dart'; import '../../utilities/logger.dart'; import '../../utilities/text_styles.dart'; import '../../utilities/util.dart'; -import '../../wallets/crypto_currency/coins/bitcoincash.dart'; -import '../../wallets/crypto_currency/coins/ecash.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import '../../widgets/background.dart'; import '../../widgets/conditional_parent.dart'; @@ -90,7 +89,8 @@ class _GenerateUriQrCodeViewState extends State { final dir = Directory("${Platform.environment['HOME']}"); if (!dir.existsSync()) { throw Exception( - "Home dir not found while trying to open filepicker on QR image save"); + "Home dir not found while trying to open filepicker on QR image save", + ); } final path = await FilePicker.platform.saveFile( fileName: "qrcode.png", @@ -129,8 +129,10 @@ class _GenerateUriQrCodeViewState extends State { final file = await File("${tempDir.path}/qrcode.png").create(); await file.writeAsBytes(pngBytes); - await Share.shareFiles(["${tempDir.path}/qrcode.png"], - text: "Receive URI QR Code"); + await Share.shareFiles( + ["${tempDir.path}/qrcode.png"], + text: "Receive URI QR Code", + ); } } catch (e) { //todo: comeback to this @@ -173,8 +175,10 @@ class _GenerateUriQrCodeViewState extends State { queryParams, ); - Logging.instance.log("Generated receiving QR code for: $uriString", - level: LogLevel.Info); + Logging.instance.log( + "Generated receiving QR code for: $uriString", + level: LogLevel.Info, + ); return uriString; } @@ -212,13 +216,14 @@ class _GenerateUriQrCodeViewState extends State { width: width + 20, height: width + 20, child: QrImageView( - data: uriString, - size: width, - backgroundColor: - Theme.of(context).extension()!.popupBG, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark), + data: uriString, + size: width, + backgroundColor: + Theme.of(context).extension()!.popupBG, + foregroundColor: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ), @@ -552,14 +557,15 @@ class _GenerateUriQrCodeViewState extends State { width: 234, height: 234, child: QrImageView( - data: _uriString, - size: 220, - backgroundColor: Theme.of(context) - .extension()! - .popupBG, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark), + data: _uriString, + size: 220, + backgroundColor: Theme.of(context) + .extension()! + .popupBG, + foregroundColor: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ), @@ -613,7 +619,7 @@ class _GenerateUriQrCodeViewState extends State { ), ), ], - ) + ), ], ), ), diff --git a/lib/pages/receive_view/receive_view.dart b/lib/pages/receive_view/receive_view.dart index e9e85e8d1..844950949 100644 --- a/lib/pages/receive_view/receive_view.dart +++ b/lib/pages/receive_view/receive_view.dart @@ -17,10 +17,9 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; import 'package:qr_flutter/qr_flutter.dart'; + import '../../models/isar/models/isar_models.dart'; import '../../notifications/show_flush_bar.dart'; -import 'addresses/wallet_addresses_view.dart'; -import 'generate_receiving_uri_qr_code_view.dart'; import '../../providers/db/main_db_provider.dart'; import '../../providers/providers.dart'; import '../../route_generator.dart'; @@ -46,6 +45,8 @@ import '../../widgets/custom_loading_overlay.dart'; import '../../widgets/desktop/primary_button.dart'; import '../../widgets/desktop/secondary_button.dart'; import '../../widgets/rounded_white_container.dart'; +import 'addresses/wallet_addresses_view.dart'; +import 'generate_receiving_uri_qr_code_view.dart'; class ReceiveView extends ConsumerStatefulWidget { const ReceiveView({ @@ -193,9 +194,11 @@ class _ReceiveViewState extends ConsumerState { if (_supportsSpark) { _walletAddressTypes.insert(0, AddressType.spark); } else { - _walletAddressTypes.addAll((wallet as Bip39HDWallet) - .supportedAddressTypes - .where((e) => e != coin.primaryAddressType)); + _walletAddressTypes.addAll( + (wallet as Bip39HDWallet) + .supportedAddressTypes + .where((e) => e != coin.primaryAddressType), + ); } } @@ -544,16 +547,16 @@ class _ReceiveViewState extends ConsumerState { ); }, ), - if (ref.watch(pWallets - .select((value) => value.getWallet(walletId))) - is MultiAddressInterface || + if (ref.watch( + pWallets.select((value) => value.getWallet(walletId)), + ) is MultiAddressInterface || _supportsSpark) const SizedBox( height: 12, ), - if (ref.watch(pWallets - .select((value) => value.getWallet(walletId))) - is MultiAddressInterface || + if (ref.watch( + pWallets.select((value) => value.getWallet(walletId)), + ) is MultiAddressInterface || _supportsSpark) SecondaryButton( label: "Generate new address", @@ -573,34 +576,37 @@ class _ReceiveViewState extends ConsumerState { child: Column( children: [ QrImageView( - data: AddressUtils.buildUriString( - coin, - address, - {}, - ), - size: MediaQuery.of(context).size.width / 2, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark), + data: AddressUtils.buildUriString( + coin, + address, + {}, + ), + size: MediaQuery.of(context).size.width / 2, + foregroundColor: Theme.of(context) + .extension()! + .accentColorDark, + ), const SizedBox( height: 20, ), CustomTextButton( text: "Advanced options", onTap: () async { - unawaited(Navigator.of(context).push( - RouteGenerator.getRoute( - shouldUseMaterialRoute: - RouteGenerator.useMaterialPageRoute, - builder: (_) => GenerateUriQrCodeView( - coin: coin, - receivingAddress: address, - ), - settings: const RouteSettings( - name: GenerateUriQrCodeView.routeName, + unawaited( + Navigator.of(context).push( + RouteGenerator.getRoute( + shouldUseMaterialRoute: + RouteGenerator.useMaterialPageRoute, + builder: (_) => GenerateUriQrCodeView( + coin: coin, + receivingAddress: address, + ), + settings: const RouteSettings( + name: GenerateUriQrCodeView.routeName, + ), ), ), - )); + ); }, ), ], diff --git a/lib/pages/send_view/frost_ms/frost_send_view.dart b/lib/pages/send_view/frost_ms/frost_send_view.dart index 260cf866c..a5851977c 100644 --- a/lib/pages/send_view/frost_ms/frost_send_view.dart +++ b/lib/pages/send_view/frost_ms/frost_send_view.dart @@ -14,10 +14,10 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:tuple/tuple.dart'; + import '../../../frost_route_generator.dart'; import '../../../models/isar/models/isar_models.dart'; -import '../../coin_control/coin_control_view.dart'; -import 'recipient.dart'; import '../../../providers/frost_wallet/frost_wallet_providers.dart'; import '../../../providers/providers.dart'; import '../../../themes/coin_icon_provider.dart'; @@ -46,7 +46,8 @@ import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_dialog.dart'; import '../../../widgets/stack_text_field.dart'; import '../../../widgets/textfield_icon_button.dart'; -import 'package:tuple/tuple.dart'; +import '../../coin_control/coin_control_view.dart'; +import 'recipient.dart'; class FrostSendView extends ConsumerStatefulWidget { const FrostSendView({ @@ -164,9 +165,10 @@ class _FrostSendViewState extends ConsumerState { child: Text( "Ok", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), onPressed: () { Navigator.of(context).pop(); @@ -346,9 +348,11 @@ class _FrostSendViewState extends ConsumerState { crossAxisAlignment: CrossAxisAlignment.end, children: [ Text( - ref.watch(pAmountFormatter(coin)).format(ref - .watch(pWalletBalance(walletId)) - .spendable), + ref.watch(pAmountFormatter(coin)).format( + ref + .watch(pWalletBalance(walletId)) + .spendable, + ), style: STextStyles.titleBold12(context).copyWith( fontSize: 10, @@ -358,7 +362,7 @@ class _FrostSendViewState extends ConsumerState { ], ), ), - ) + ), ], ), ), @@ -389,8 +393,10 @@ class _FrostSendViewState extends ConsumerState { ? null : () { ref - .read(pRecipient(recipientWidgetIndexes[i]) - .notifier) + .read( + pRecipient(recipientWidgetIndexes[i]) + .notifier, + ) .state = null; recipientWidgetIndexes.removeAt(i); setState(() {}); diff --git a/lib/pages/send_view/frost_ms/recipient.dart b/lib/pages/send_view/frost_ms/recipient.dart index 8bb6cbd12..6d9d9b7c4 100644 --- a/lib/pages/send_view/frost_ms/recipient.dart +++ b/lib/pages/send_view/frost_ms/recipient.dart @@ -2,6 +2,7 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../providers/global/locale_provider.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/address_utils.dart'; @@ -39,7 +40,8 @@ final pBarcodeScanner = final pRecipient = StateProvider.family<({String address, Amount? amount})?, int>( - (ref, index) => null); + (ref, index) => null, +); class Recipient extends ConsumerStatefulWidget { const Recipient({ @@ -233,7 +235,8 @@ class _RecipientState extends ConsumerState { semanticsLabel: "Clear Button. Clears The Address Field Input.", key: const Key( - "sendViewClearAddressFieldButtonKey"), + "sendViewClearAddressFieldButtonKey", + ), onTap: () { addressController.text = ""; @@ -249,7 +252,8 @@ class _RecipientState extends ConsumerState { semanticsLabel: "Paste Button. Pastes From Clipboard To Address Field Input.", key: const Key( - "sendViewPasteAddressFieldButtonKey"), + "sendViewPasteAddressFieldButtonKey", + ), onTap: () async { final ClipboardData? data = await ref .read(pClipboard) @@ -259,7 +263,9 @@ class _RecipientState extends ConsumerState { String content = data.text!.trim(); if (content.contains("\n")) { content = content.substring( - 0, content.indexOf("\n")); + 0, + content.indexOf("\n"), + ); } addressController.text = content.trim(); @@ -433,9 +439,10 @@ class _RecipientState extends ConsumerState { .watch(pAmountUnit(widget.coin)) .unitForCoin(widget.coin), style: STextStyles.smallMed14(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ), diff --git a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1b.dart b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1b.dart index 9cac2cabc..058b980c5 100644 --- a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1b.dart +++ b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1b.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; + import '../../../../frost_route_generator.dart'; import '../../../../models/isar/models/isar_models.dart'; import '../../../../providers/db/main_db_provider.dart'; @@ -73,13 +74,14 @@ class _FrostSendStep1bState extends ConsumerState { .getUTXOs(wallet.walletId) .filter() .anyOf( - data.inputs, - (q, e) => q - .txidEqualTo(Format.uint8listToString(e.hash)) - .and() - .valueEqualTo(e.value) - .and() - .voutEqualTo(e.vout)) + data.inputs, + (q, e) => q + .txidEqualTo(Format.uint8listToString(e.hash)) + .and() + .valueEqualTo(e.value) + .and() + .voutEqualTo(e.vout), + ) .findAll(); // TODO add more data from 'data' and display to user ? diff --git a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_2.dart b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_2.dart index db198831f..724e62092 100644 --- a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_2.dart +++ b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_2.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../../frost_route_generator.dart'; -import '../../../wallet_view/transaction_views/transaction_details_view.dart'; import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; import '../../../../providers/global/wallets_provider.dart'; import '../../../../services/frost.dart'; @@ -17,6 +17,7 @@ import '../../../../widgets/detail_item.dart'; import '../../../../widgets/dialogs/frost/frost_error_dialog.dart'; import '../../../../widgets/rounded_white_container.dart'; import '../../../../widgets/textfields/frost_step_field.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; class FrostSendStep2 extends ConsumerStatefulWidget { const FrostSendStep2({super.key}); @@ -209,18 +210,20 @@ class _FrostSendStep2State extends ConsumerState { const SizedBox( height: 12, ), - Builder(builder: (context) { - final count = countPreprocesses(); - final colors = Theme.of(context).extension()!; - return DetailItem( - title: "Required preprocesses", - detail: "$count of $threshold", - horizontal: true, - overrideDetailTextColor: count >= threshold - ? colors.accentColorGreen - : colors.accentColorRed, - ); - }), + Builder( + builder: (context) { + final count = countPreprocesses(); + final colors = Theme.of(context).extension()!; + return DetailItem( + title: "Required preprocesses", + detail: "$count of $threshold", + horizontal: true, + overrideDetailTextColor: count >= threshold + ? colors.accentColorGreen + : colors.accentColorRed, + ); + }, + ), const SizedBox( height: 12, ), diff --git a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_3.dart b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_3.dart index 6b3c40362..de0ade7df 100644 --- a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_3.dart +++ b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_3.dart @@ -1,8 +1,8 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as cl; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../../frost_route_generator.dart'; -import '../../../wallet_view/transaction_views/transaction_details_view.dart'; import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; import '../../../../providers/global/wallets_provider.dart'; import '../../../../services/frost.dart'; @@ -18,6 +18,7 @@ import '../../../../widgets/detail_item.dart'; import '../../../../widgets/dialogs/frost/frost_error_dialog.dart'; import '../../../../widgets/frost_step_user_steps.dart'; import '../../../../widgets/textfields/frost_step_field.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; class FrostSendStep3 extends ConsumerStatefulWidget { const FrostSendStep3({super.key}); @@ -64,7 +65,8 @@ class _FrostSendStep3State extends ConsumerState { participantsWithoutMe = frostInfo.participants .toSet() .intersection( - ref.read(pFrostSelectParticipantsUnordered.state).state!.toSet()) + ref.read(pFrostSelectParticipantsUnordered.state).state!.toSet(), + ) .toList(); participantsWithoutMe.remove(myName); @@ -181,8 +183,9 @@ class _FrostSendStep3State extends ConsumerState { final List shares = []; for (final participant in participantsAll) { if (participantsWithoutMe.contains(participant)) { - shares.add(sharesCollected[ - participantsWithoutMe.indexOf(participant)]); + shares.add( + sharesCollected[participantsWithoutMe.indexOf(participant)], + ); } else { shares.add(""); } diff --git a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_4.dart b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_4.dart index 59596e846..a560d7151 100644 --- a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_4.dart +++ b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_4.dart @@ -2,9 +2,8 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../../../frost_route_generator.dart'; -import '../../../wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; -import '../../../wallet_view/wallet_view.dart'; import '../../../../pages_desktop_specific/my_stack_view/my_stack_view.dart'; import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; import '../../../../providers/global/wallets_provider.dart'; @@ -22,6 +21,8 @@ import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/detail_item.dart'; import '../../../../widgets/expandable.dart'; import '../../../../widgets/stack_dialog.dart'; +import '../../../wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; +import '../../../wallet_view/wallet_view.dart'; class FrostSendStep4 extends ConsumerStatefulWidget { const FrostSendStep4({super.key}); @@ -165,8 +166,9 @@ class _FrostSendStep4State extends ConsumerState { DetailItem( title: "Total", detail: ref.watch(pAmountFormatter(cryptoCurrency)).format( - ref.watch(pFrostTxData)!.fee! + - recipients.map((e) => e.amount).reduce((v, e) => v += e)), + ref.watch(pFrostTxData)!.fee! + + recipients.map((e) => e.amount).reduce((v, e) => v += e), + ), horizontal: true, ), const SizedBox( diff --git a/lib/pages/send_view/send_view.dart b/lib/pages/send_view/send_view.dart index da10718c9..623962845 100644 --- a/lib/pages/send_view/send_view.dart +++ b/lib/pages/send_view/send_view.dart @@ -18,15 +18,11 @@ import 'package:flutter/services.dart'; import 'package:flutter_native_splash/cli_commands.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:tuple/tuple.dart'; + import '../../models/isar/models/isar_models.dart'; import '../../models/paynym/paynym_account_lite.dart'; import '../../models/send_view_auto_fill_data.dart'; -import '../address_book_views/address_book_view.dart'; -import '../coin_control/coin_control_view.dart'; -import 'confirm_transaction_view.dart'; -import 'sub_widgets/building_transaction_dialog.dart'; -import 'sub_widgets/firo_balance_selection_sheet.dart'; -import 'sub_widgets/transaction_fee_selection_sheet.dart'; import '../../providers/providers.dart'; import '../../providers/ui/fee_rate_type_state_provider.dart'; import '../../providers/ui/preview_tx_button_state_provider.dart'; @@ -48,12 +44,6 @@ import '../../utilities/logger.dart'; import '../../utilities/prefs.dart'; import '../../utilities/text_styles.dart'; import '../../utilities/util.dart'; -import '../../wallets/crypto_currency/coins/epiccash.dart'; -import '../../wallets/crypto_currency/coins/ethereum.dart'; -import '../../wallets/crypto_currency/coins/firo.dart'; -import '../../wallets/crypto_currency/coins/monero.dart'; -import '../../wallets/crypto_currency/coins/stellar.dart'; -import '../../wallets/crypto_currency/coins/tezos.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import '../../wallets/crypto_currency/intermediate/nano_currency.dart'; import '../../wallets/isar/providers/wallet_info_provider.dart'; @@ -75,7 +65,12 @@ import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_dialog.dart'; import '../../widgets/stack_text_field.dart'; import '../../widgets/textfield_icon_button.dart'; -import 'package:tuple/tuple.dart'; +import '../address_book_views/address_book_view.dart'; +import '../coin_control/coin_control_view.dart'; +import 'confirm_transaction_view.dart'; +import 'sub_widgets/building_transaction_dialog.dart'; +import 'sub_widgets/firo_balance_selection_sheet.dart'; +import 'sub_widgets/transaction_fee_selection_sheet.dart'; class SendView extends ConsumerStatefulWidget { const SendView({ @@ -1010,7 +1005,8 @@ class _SendViewState extends ConsumerState { if (ref.read(pSendAmount) == null) { setState(() { _calculateFeesFuture = calculateFees( - 0.toAmountAsRaw(fractionDigits: coin.fractionDigits)); + 0.toAmountAsRaw(fractionDigits: coin.fractionDigits), + ); }); } else { setState(() { diff --git a/lib/pages/send_view/sub_widgets/firo_balance_selection_sheet.dart b/lib/pages/send_view/sub_widgets/firo_balance_selection_sheet.dart index 3a890718b..912fad545 100644 --- a/lib/pages/send_view/sub_widgets/firo_balance_selection_sheet.dart +++ b/lib/pages/send_view/sub_widgets/firo_balance_selection_sheet.dart @@ -10,6 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../providers/providers.dart'; import '../../../providers/wallet/public_private_balance_state_provider.dart'; import '../../../themes/stack_colors.dart'; @@ -20,9 +21,9 @@ import '../../../wallets/wallet/impl/firo_wallet.dart'; class FiroBalanceSelectionSheet extends ConsumerStatefulWidget { const FiroBalanceSelectionSheet({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -125,12 +126,14 @@ class _FiroBalanceSelectionSheetState value: FiroType.spark, groupValue: ref .watch( - publicPrivateBalanceStateProvider.state) + publicPrivateBalanceStateProvider.state, + ) .state, onChanged: (x) { ref - .read(publicPrivateBalanceStateProvider - .state) + .read( + publicPrivateBalanceStateProvider.state, + ) .state = FiroType.spark; Navigator.of(context).pop(); @@ -168,7 +171,7 @@ class _FiroBalanceSelectionSheetState ), // ], // ), - ) + ), ], ), ), @@ -209,13 +212,16 @@ class _FiroBalanceSelectionSheetState .radioButtonIconEnabled, value: FiroType.lelantus, groupValue: ref - .watch(publicPrivateBalanceStateProvider - .state) + .watch( + publicPrivateBalanceStateProvider.state, + ) .state, onChanged: (x) { ref - .read(publicPrivateBalanceStateProvider - .state) + .read( + publicPrivateBalanceStateProvider + .state, + ) .state = FiroType.lelantus; Navigator.of(context).pop(); @@ -253,7 +259,7 @@ class _FiroBalanceSelectionSheetState ), // ], // ), - ) + ), ], ), ), @@ -288,12 +294,14 @@ class _FiroBalanceSelectionSheetState value: FiroType.public, groupValue: ref .watch( - publicPrivateBalanceStateProvider.state) + publicPrivateBalanceStateProvider.state, + ) .state, onChanged: (x) { ref - .read(publicPrivateBalanceStateProvider - .state) + .read( + publicPrivateBalanceStateProvider.state, + ) .state = FiroType.public; Navigator.of(context).pop(); }, diff --git a/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart b/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart index bd55b42b1..710cbfa1c 100644 --- a/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart +++ b/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart @@ -129,11 +129,11 @@ class ProgressAndSuccessController { class ProgressAndSuccess extends StatefulWidget { const ProgressAndSuccess({ - Key? key, + super.key, this.height = 24, this.width = 24, required this.controller, - }) : super(key: key); + }); final double height; final double width; diff --git a/lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart b/lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart index 1202138dd..a70098c03 100644 --- a/lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart +++ b/lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart @@ -22,10 +22,6 @@ import '../../../utilities/constants.dart'; import '../../../utilities/enums/fee_rate_type_enum.dart'; import '../../../utilities/logger.dart'; import '../../../utilities/text_styles.dart'; -import '../../../wallets/crypto_currency/coins/ethereum.dart'; -import '../../../wallets/crypto_currency/coins/firo.dart'; -import '../../../wallets/crypto_currency/coins/monero.dart'; -import '../../../wallets/crypto_currency/coins/wownero.dart'; import '../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; import '../../../wallets/isar/providers/wallet_info_provider.dart'; diff --git a/lib/pages/send_view/token_send_view.dart b/lib/pages/send_view/token_send_view.dart index 40d73c917..61ae1d1a9 100644 --- a/lib/pages/send_view/token_send_view.dart +++ b/lib/pages/send_view/token_send_view.dart @@ -39,7 +39,6 @@ import '../../utilities/logger.dart'; import '../../utilities/prefs.dart'; import '../../utilities/text_styles.dart'; import '../../utilities/util.dart'; -import '../../wallets/crypto_currency/coins/epiccash.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import '../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; import '../../wallets/isar/providers/eth/token_balance_provider.dart'; diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/advanced_settings_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/advanced_settings_view.dart index 7de750ae3..3d5413798 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/advanced_settings_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/advanced_settings_view.dart @@ -10,10 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'debug_view.dart'; -import 'manage_coin_units/manage_coin_units_view.dart'; -import 'manage_explorer_view.dart'; -import '../../../stack_privacy_calls.dart'; +import 'package:tuple/tuple.dart'; + import '../../../../providers/global/prefs_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/constants.dart'; @@ -23,12 +21,15 @@ import '../../../../widgets/choose_coin_view.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; import '../../../../widgets/rounded_white_container.dart'; -import 'package:tuple/tuple.dart'; +import '../../../stack_privacy_calls.dart'; +import 'debug_view.dart'; +import 'manage_coin_units/manage_coin_units_view.dart'; +import 'manage_explorer_view.dart'; class AdvancedSettingsView extends StatelessWidget { const AdvancedSettingsView({ - Key? key, - }) : super(key: key); + super.key, + }); static const String routeName = "/advancedSettings"; @@ -116,7 +117,8 @@ class AdvancedSettingsView extends StatelessWidget { child: DraggableSwitchButton( isOn: ref.watch( prefsChangeNotifierProvider.select( - (value) => value.showTestNetCoins), + (value) => value.showTestNetCoins, + ), ), onValueChanged: (newValue) { ref @@ -163,7 +165,8 @@ class AdvancedSettingsView extends StatelessWidget { child: DraggableSwitchButton( isOn: ref.watch( prefsChangeNotifierProvider.select( - (value) => value.enableCoinControl), + (value) => value.enableCoinControl, + ), ), onValueChanged: (newValue) { ref @@ -224,7 +227,7 @@ class AdvancedSettingsView extends StatelessWidget { : "\nIncognito", style: STextStyles.label(context) .copyWith(fontSize: 15.0), - ) + ), ], ), ), @@ -249,11 +252,14 @@ class AdvancedSettingsView extends StatelessWidget { ), ), onPressed: () { - Navigator.of(context).pushNamed(ChooseCoinView.routeName, - arguments: const Tuple3( - "Manage block explorers", - "block explorer", - ManageExplorerView.routeName)); + Navigator.of(context).pushNamed( + ChooseCoinView.routeName, + arguments: const Tuple3( + "Manage block explorers", + "block explorer", + ManageExplorerView.routeName, + ), + ); }, child: Padding( padding: const EdgeInsets.symmetric( diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/debug_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/debug_view.dart index 8bbaf9afd..518cf32da 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/debug_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/debug_view.dart @@ -23,9 +23,9 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:lelantus/git_versions.dart' as FIRO_VERSIONS; import 'package:package_info_plus/package_info_plus.dart'; + import '../../../../models/isar/models/log.dart'; import '../../../../notifications/show_flush_bar.dart'; -import '../stack_backup_views/helpers/swb_file_system.dart'; import '../../../../providers/global/debug_service_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; @@ -44,9 +44,10 @@ import '../../../../widgets/rounded_container.dart'; import '../../../../widgets/stack_dialog.dart'; import '../../../../widgets/stack_text_field.dart'; import '../../../../widgets/textfield_icon_button.dart'; +import '../stack_backup_views/helpers/swb_file_system.dart'; class DebugView extends ConsumerStatefulWidget { - const DebugView({Key? key}) : super(key: key); + const DebugView({super.key}); static const String routeName = "/debug"; @@ -68,7 +69,8 @@ class _DebugViewState extends ConsumerState { } return unfiltered .where( - (e) => (e.toString().toLowerCase().contains(filter.toLowerCase()))) + (e) => (e.toString().toLowerCase().contains(filter.toLowerCase())), + ) .toList(); } @@ -174,19 +176,21 @@ class _DebugViewState extends ConsumerState { Navigator.of(context).pop(); bool shouldPop = false; - unawaited(showDialog( - barrierDismissible: false, - context: context, - builder: (_) => WillPopScope( - onWillPop: () async { - return shouldPop; - }, - child: const CustomLoadingOverlay( - message: "Deleting logs...", - eventBus: null, + unawaited( + showDialog( + barrierDismissible: false, + context: context, + builder: (_) => WillPopScope( + onWillPop: () async { + return shouldPop; + }, + child: const CustomLoadingOverlay( + message: "Deleting logs...", + eventBus: null, + ), ), ), - )); + ); await ref .read(debugServiceProvider) @@ -196,10 +200,13 @@ class _DebugViewState extends ConsumerState { if (mounted) { Navigator.pop(context); - unawaited(showFloatingFlushBar( + unawaited( + showFloatingFlushBar( type: FlushBarType.info, context: context, - message: 'Logs cleared!')); + message: 'Logs cleared!', + ), + ); setState(() {}); } @@ -301,32 +308,34 @@ class _DebugViewState extends ConsumerState { final signature = packageInfo.buildSignature; final appName = packageInfo.appName; - String firoCommit = + final String firoCommit = FIRO_VERSIONS.getPluginVersion(); - String epicCashCommit = + final String epicCashCommit = EPIC_VERSIONS.getPluginVersion(); - String moneroCommit = + final String moneroCommit = MONERO_VERSIONS.getPluginVersion(); - DeviceInfoPlugin deviceInfoPlugin = + final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin(); final deviceInfo = await deviceInfoPlugin.deviceInfo; - var deviceInfoMap = deviceInfo.toMap(); + final deviceInfoMap = deviceInfo.toMap(); deviceInfoMap.remove("systemFeatures"); final logs = filtered( - ref.watch(debugServiceProvider - .select((value) => - value.recentLogs)), - _searchTerm) - .reversed - .toList(growable: false); - List errorLogs = []; - for (var log in logs) { + ref.watch( + debugServiceProvider.select( + (value) => value.recentLogs, + ), + ), + _searchTerm, + ).reversed.toList(growable: false); + final List errorLogs = []; + for (final log in logs) { if (log.logLevel == LogLevel.Error || log.logLevel == LogLevel.Fatal) { errorLogs.add( - "${log.logLevel}: ${log.message}"); + "${log.logLevel}: ${log.message}", + ); } } @@ -342,14 +351,16 @@ class _DebugViewState extends ConsumerState { "errorLogs": errorLogs, }; Logging.instance.log( - json.encode(finalDebugMap), - level: LogLevel.Info, - printFullLength: true); + json.encode(finalDebugMap), + level: LogLevel.Info, + printFullLength: true, + ); const ClipboardInterface clipboard = ClipboardWrapper(); await clipboard.setData( ClipboardData( - text: json.encode(finalDebugMap)), + text: json.encode(finalDebugMap), + ), ); } catch (e, s) { Logging.instance @@ -400,19 +411,22 @@ class _DebugViewState extends ConsumerState { if (path != null) { final eventBus = EventBus(); bool shouldPop = false; - unawaited(showDialog( - barrierDismissible: false, - context: context, - builder: (_) => WillPopScope( - onWillPop: () async { - return shouldPop; - }, - child: CustomLoadingOverlay( - message: "Generating Stack logs file", - eventBus: eventBus, + unawaited( + showDialog( + barrierDismissible: false, + context: context, + builder: (_) => WillPopScope( + onWillPop: () async { + return shouldPop; + }, + child: CustomLoadingOverlay( + message: + "Generating Stack logs file", + eventBus: eventBus, + ), ), ), - )); + ); bool logsSaved = true; String? filename; @@ -459,7 +473,7 @@ class _DebugViewState extends ConsumerState { }, ), ], - ) + ), ], ), ), @@ -470,11 +484,11 @@ class _DebugViewState extends ConsumerState { body: Builder( builder: (context) { final logs = filtered( - ref.watch(debugServiceProvider - .select((value) => value.recentLogs)), - _searchTerm) - .reversed - .toList(growable: false); + ref.watch( + debugServiceProvider.select((value) => value.recentLogs), + ), + _searchTerm, + ).reversed.toList(growable: false); return CustomScrollView( reverse: true, @@ -493,7 +507,8 @@ class _DebugViewState extends ConsumerState { return Container( key: Key( - "log_${log.id}_${log.timestampInMillisUTC}"), + "log_${log.id}_${log.timestampInMillisUTC}", + ), decoration: BoxDecoration( color: Theme.of(context) .extension()! diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart index 65cf6cbd6..08d801cc4 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/manage_coin_units/edit_coin_units_view.dart @@ -257,7 +257,7 @@ class _EditCoinUnitsViewState extends ConsumerState { ), ), ), - ) + ), ], ), SizedBox( diff --git a/lib/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart b/lib/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart index b688a1f6d..a50568e52 100644 --- a/lib/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart +++ b/lib/pages/settings_views/global_settings_view/advanced_views/manage_explorer_view.dart @@ -10,6 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../../themes/stack_colors.dart'; import '../../../../utilities/block_explorers.dart'; import '../../../../utilities/text_styles.dart'; @@ -39,10 +40,10 @@ class _ManageExplorerViewState extends ConsumerState { void initState() { super.initState(); textEditingController = TextEditingController( - text: - getBlockExplorerTransactionUrlFor(coin: widget.coin, txid: "[TXID]") - .toString() - .replaceAll("%5BTXID%5D", "[TXID]")); + text: getBlockExplorerTransactionUrlFor(coin: widget.coin, txid: "[TXID]") + .toString() + .replaceAll("%5BTXID%5D", "[TXID]"), + ); } @override @@ -72,32 +73,33 @@ class _ManageExplorerViewState extends ConsumerState { child: Column( children: [ Expanded( - child: Column( - children: [ - TextField( - controller: textEditingController, - decoration: const InputDecoration( - border: OutlineInputBorder(), - ), - ), - const SizedBox( - height: 8, - ), - RoundedWhiteContainer( - child: Center( - child: Text( - "Edit your block explorer above. Keep in mind that " - "every block explorer has a slightly different URL " - "scheme.\n\nPaste in your block explorer of choice," - " then edit in [TXID] where the transaction ID " - "should go, and Stack Wallet will auto fill the " - "transaction ID in that place of URL.", - style: STextStyles.itemSubtitle(context), + child: Column( + children: [ + TextField( + controller: textEditingController, + decoration: const InputDecoration( + border: OutlineInputBorder(), ), ), - ), - ], - )), + const SizedBox( + height: 8, + ), + RoundedWhiteContainer( + child: Center( + child: Text( + "Edit your block explorer above. Keep in mind that " + "every block explorer has a slightly different URL " + "scheme.\n\nPaste in your block explorer of choice," + " then edit in [TXID] where the transaction ID " + "should go, and Stack Wallet will auto fill the " + "transaction ID in that place of URL.", + style: STextStyles.itemSubtitle(context), + ), + ), + ), + ], + ), + ), Align( alignment: Alignment.bottomCenter, child: ConstrainedBox( @@ -129,7 +131,7 @@ class _ManageExplorerViewState extends ConsumerState { ), ), ), - ) + ), ], ), ), diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/appearance_settings_view.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/appearance_settings_view.dart index 6981508e6..fe17f8ffc 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/appearance_settings_view.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/appearance_settings_view.dart @@ -10,8 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'manage_themes.dart'; -import 'sub_widgets/theme_options_widget.dart'; + import '../../../../providers/providers.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/constants.dart'; @@ -21,9 +20,11 @@ import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/rounded_white_container.dart'; +import 'manage_themes.dart'; +import 'sub_widgets/theme_options_widget.dart'; class AppearanceSettingsView extends ConsumerWidget { - const AppearanceSettingsView({Key? key}) : super(key: key); + const AppearanceSettingsView({super.key}); static const String routeName = "/appearanceSettings"; @@ -89,17 +90,19 @@ class AppearanceSettingsView extends ConsumerWidget { child: DraggableSwitchButton( isOn: ref.watch( prefsChangeNotifierProvider.select( - (value) => - value.showFavoriteWallets), + (value) => + value.showFavoriteWallets, + ), ), onValueChanged: (newValue) { ref .read( - prefsChangeNotifierProvider) + prefsChangeNotifierProvider, + ) .showFavoriteWallets = newValue; }, ), - ) + ), ], ), ), @@ -145,7 +148,7 @@ class AppearanceSettingsView extends ConsumerWidget { ManageThemesView.routeName, ); }, - ) + ), ], ), ), diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart index bea81abba..4744d857f 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart @@ -33,7 +33,7 @@ import '../../../../widgets/rounded_white_container.dart'; import 'package:tuple/tuple.dart'; class ManageThemesView extends ConsumerStatefulWidget { - const ManageThemesView({Key? key}) : super(key: key); + const ManageThemesView({super.key}); static const String routeName = "/manageThemes"; @@ -220,9 +220,9 @@ class _ManageThemesViewState extends ConsumerState { class IncognitoInstalledThemes extends ConsumerStatefulWidget { const IncognitoInstalledThemes({ - Key? key, + super.key, required this.cardWidth, - }) : super(key: key); + }); final double cardWidth; diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/install_theme_from_file_dialog.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/install_theme_from_file_dialog.dart index 1574c3cfe..b95384ba1 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/install_theme_from_file_dialog.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/install_theme_from_file_dialog.dart @@ -27,7 +27,7 @@ import '../../../../../widgets/desktop/secondary_button.dart'; import '../../../../../widgets/stack_dialog.dart'; class InstallThemeFromFileDialog extends ConsumerStatefulWidget { - const InstallThemeFromFileDialog({Key? key}) : super(key: key); + const InstallThemeFromFileDialog({super.key}); @override ConsumerState createState() => @@ -189,7 +189,7 @@ class _InstallThemeFromFileDialogState ), ), ], - ) + ), ], ), ); diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/stack_theme_card.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/stack_theme_card.dart index 5b9c2fe90..3ab865653 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/stack_theme_card.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/stack_theme_card.dart @@ -15,6 +15,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; + import '../../../../../models/isar/stack_theme.dart'; import '../../../../../notifications/show_flush_bar.dart'; import '../../../../../providers/db/main_db_provider.dart'; @@ -34,9 +35,9 @@ import '../../../../../widgets/stack_dialog.dart'; class StackThemeCard extends ConsumerStatefulWidget { const StackThemeCard({ - Key? key, + super.key, required this.data, - }) : super(key: key); + }); final StackThemeMetaData data; @@ -130,7 +131,8 @@ class _StackThemeCardState extends ConsumerState { final themeDir = Directory("${themesDir.path}/${widget.data.id}"); int bytes = 0; if (await themeDir.exists()) { - await for (FileSystemEntity entity in themeDir.list(recursive: true)) { + await for (final FileSystemEntity entity + in themeDir.list(recursive: true)) { if (entity is File) { bytes += await entity.length(); } @@ -142,13 +144,13 @@ class _StackThemeCardState extends ConsumerState { if (bytes < 1024) { return '$bytes B'; } else if (bytes < 1048576) { - double kbSize = bytes / 1024; + final double kbSize = bytes / 1024; return '${kbSize.toStringAsFixed(2)} KB'; } else if (bytes < 1073741824) { - double mbSize = bytes / 1048576; + final double mbSize = bytes / 1048576; return '${mbSize.toStringAsFixed(2)} MB'; } else { - double gbSize = bytes / 1073741824; + final double gbSize = bytes / 1073741824; return '${gbSize.toStringAsFixed(2)} GB'; } } diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_option.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_option.dart index 57cf428d5..185163996 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_option.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_option.dart @@ -15,13 +15,13 @@ import '../../../../../utilities/text_styles.dart'; class ThemeOption extends StatelessWidget { const ThemeOption({ - Key? key, + super.key, required this.onPressed, required this.onChanged, required this.label, required this.value, required this.groupValue, - }) : super(key: key); + }); final VoidCallback onPressed; final void Function(Object?) onChanged; diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_options_widget.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_options_widget.dart index 8f3a78678..9435385fc 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_options_widget.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/sub_widgets/theme_options_widget.dart @@ -27,7 +27,7 @@ import '../../../../../widgets/custom_buttons/blue_text_button.dart'; import 'package:tuple/tuple.dart'; class ThemeOptionsWidget extends ConsumerStatefulWidget { - const ThemeOptionsWidget({Key? key}) : super(key: key); + const ThemeOptionsWidget({super.key}); @override ConsumerState createState() => _ThemeOptionsWidgetState(); diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings/system_brightness_theme_selection_view.dart b/lib/pages/settings_views/global_settings_view/appearance_settings/system_brightness_theme_selection_view.dart index 85154430e..becef5fb6 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings/system_brightness_theme_selection_view.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings/system_brightness_theme_selection_view.dart @@ -10,7 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'sub_widgets/theme_option.dart'; +import 'package:tuple/tuple.dart'; + import '../../../../providers/global/prefs_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../themes/theme_providers.dart'; @@ -19,10 +20,10 @@ import '../../../../utilities/text_styles.dart'; import '../../../../widgets/background.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/rounded_white_container.dart'; -import 'package:tuple/tuple.dart'; +import 'sub_widgets/theme_option.dart'; class SystemBrightnessThemeSelectionView extends ConsumerStatefulWidget { - const SystemBrightnessThemeSelectionView({Key? key}) : super(key: key); + const SystemBrightnessThemeSelectionView({super.key}); static const String routeName = "/chooseSystemTheme"; @@ -153,7 +154,8 @@ class _SystemBrightnessThemeSelectionViewState if (newValue == value && ref .read( - prefsChangeNotifierProvider) + prefsChangeNotifierProvider, + ) .systemBrightnessLightThemeId != value) { _setTheme( @@ -167,9 +169,11 @@ class _SystemBrightnessThemeSelectionViewState value: installedThemeIdNames[i ~/ 2].item1, groupValue: ref.watch( - prefsChangeNotifierProvider.select( - (value) => value - .systemBrightnessLightThemeId)), + prefsChangeNotifierProvider.select( + (value) => value + .systemBrightnessLightThemeId, + ), + ), ), ], ), @@ -215,7 +219,8 @@ class _SystemBrightnessThemeSelectionViewState if (newValue == value && ref .read( - prefsChangeNotifierProvider) + prefsChangeNotifierProvider, + ) .systemBrightnessDarkThemeId != value) { _setTheme( @@ -229,9 +234,11 @@ class _SystemBrightnessThemeSelectionViewState value: installedThemeIdNames[i ~/ 2].item1, groupValue: ref.watch( - prefsChangeNotifierProvider.select( - (value) => value - .systemBrightnessDarkThemeId)), + prefsChangeNotifierProvider.select( + (value) => value + .systemBrightnessDarkThemeId, + ), + ), ), ], ), diff --git a/lib/pages/settings_views/global_settings_view/currency_view.dart b/lib/pages/settings_views/global_settings_view/currency_view.dart index c9b618b1e..18c8a6a12 100644 --- a/lib/pages/settings_views/global_settings_view/currency_view.dart +++ b/lib/pages/settings_views/global_settings_view/currency_view.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../providers/global/base_currencies_provider.dart'; import '../../../providers/providers.dart'; import '../../../themes/stack_colors.dart'; @@ -30,7 +31,7 @@ import '../../../widgets/stack_text_field.dart'; import '../../../widgets/textfield_icon_button.dart'; class BaseCurrencySettingsView extends ConsumerStatefulWidget { - const BaseCurrencySettingsView({Key? key}) : super(key: key); + const BaseCurrencySettingsView({super.key}); static const String routeName = "/baseCurrencySettings"; @@ -155,7 +156,8 @@ class _CurrencyViewState extends ConsumerState { if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } if (mounted) { Navigator.of(context).pop(); @@ -329,7 +331,8 @@ class _CurrencyViewState extends ConsumerState { child: Padding( padding: const EdgeInsets.all(4), key: Key( - "currencySelect_${currenciesWithoutSelected[index]}"), + "currencySelect_${currenciesWithoutSelected[index]}", + ), child: RoundedContainer( padding: const EdgeInsets.all(0), color: currenciesWithoutSelected[index] == current @@ -385,29 +388,34 @@ class _CurrencyViewState extends ConsumerState { index] == current) ? const Key( - "selectedCurrencySettingsCurrencyText") + "selectedCurrencySettingsCurrencyText", + ) : null, style: STextStyles.largeMedium14( - context), + context, + ), ), const SizedBox( height: 2, ), Text( - ref.watch(baseCurrenciesProvider - .select((value) => - value.map))[ - currenciesWithoutSelected[ - index]] ?? + ref.watch( + baseCurrenciesProvider.select( + (value) => value.map, + ), + )[currenciesWithoutSelected[ + index]] ?? "", key: (currenciesWithoutSelected[ index] == current) ? const Key( - "selectedCurrencySettingsCurrencyTextDescription") + "selectedCurrencySettingsCurrencyTextDescription", + ) : null, style: STextStyles.itemSubtitle( - context), + context, + ), ), ], ), diff --git a/lib/pages/settings_views/global_settings_view/delete_account_view.dart b/lib/pages/settings_views/global_settings_view/delete_account_view.dart index 4294592a3..743488d4c 100644 --- a/lib/pages/settings_views/global_settings_view/delete_account_view.dart +++ b/lib/pages/settings_views/global_settings_view/delete_account_view.dart @@ -9,8 +9,8 @@ */ import 'package:flutter/material.dart'; + import '../../../db/hive/db.dart'; -import '../../intro_view.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; @@ -20,9 +20,10 @@ import '../../../widgets/desktop/desktop_scaffold.dart'; import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_dialog.dart'; +import '../../intro_view.dart'; class DeleteAccountView extends StatefulWidget { - const DeleteAccountView({Key? key}) : super(key: key); + const DeleteAccountView({super.key}); static const String routeName = "/deleteAccountView"; @@ -51,9 +52,9 @@ class _DeleteAccountViewState extends State { child: Text( "Cancel", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: + Theme.of(context).extension()!.accentColorDark, + ), ), ), rightButton: TextButton( @@ -91,7 +92,8 @@ class _DeleteAccountViewState extends State { if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } if (mounted) { Navigator.of(context).pop(); @@ -117,7 +119,7 @@ class _DeleteAccountViewState extends State { PrimaryButton( label: "Confirm", onPressed: onConfirmDeleteAccount, - ) + ), ], ), ), diff --git a/lib/pages/settings_views/global_settings_view/global_settings_view.dart b/lib/pages/settings_views/global_settings_view/global_settings_view.dart index c15d0f8d9..400bff87d 100644 --- a/lib/pages/settings_views/global_settings_view/global_settings_view.dart +++ b/lib/pages/settings_views/global_settings_view/global_settings_view.dart @@ -11,8 +11,17 @@ import 'dart:io'; import 'package:flutter/material.dart'; + +import '../../../route_generator.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/rounded_white_container.dart'; import '../../address_book_views/address_book_view.dart'; import '../../pinpad_views/lock_screen_view.dart'; +import '../sub_widgets/settings_list_button.dart'; import 'about_view.dart'; import 'advanced_views/advanced_settings_view.dart'; import 'appearance_settings/appearance_settings_view.dart'; @@ -26,19 +35,11 @@ import 'startup_preferences/startup_preferences_view.dart'; import 'support_view.dart'; import 'syncing_preferences_views/syncing_preferences_view.dart'; import 'tor_settings/tor_settings_view.dart'; -import '../sub_widgets/settings_list_button.dart'; -import '../../../route_generator.dart'; -import '../../../themes/stack_colors.dart'; -import '../../../utilities/assets.dart'; -import '../../../utilities/text_styles.dart'; -import '../../../widgets/background.dart'; -import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; -import '../../../widgets/rounded_white_container.dart'; class GlobalSettingsView extends StatelessWidget { const GlobalSettingsView({ - Key? key, - }) : super(key: key); + super.key, + }); static const String routeName = "/globalSettings"; @@ -116,7 +117,8 @@ class GlobalSettingsView extends StatelessWidget { "Stack backup", ), settings: const RouteSettings( - name: "/swblockscreen"), + name: "/swblockscreen", + ), ), ); }, @@ -142,7 +144,8 @@ class GlobalSettingsView extends StatelessWidget { title: "Currency", onPressed: () { Navigator.of(context).pushNamed( - BaseCurrencySettingsView.routeName); + BaseCurrencySettingsView.routeName, + ); }, ), const SizedBox( @@ -154,7 +157,8 @@ class GlobalSettingsView extends StatelessWidget { title: "Language", onPressed: () { Navigator.of(context).pushNamed( - LanguageSettingsView.routeName); + LanguageSettingsView.routeName, + ); }, ), const SizedBox( @@ -190,7 +194,8 @@ class GlobalSettingsView extends StatelessWidget { title: "Syncing preferences", onPressed: () { Navigator.of(context).pushNamed( - SyncingPreferencesView.routeName); + SyncingPreferencesView.routeName, + ); }, ), const SizedBox( @@ -202,7 +207,8 @@ class GlobalSettingsView extends StatelessWidget { title: "Startup", onPressed: () { Navigator.of(context).pushNamed( - StartupPreferencesView.routeName); + StartupPreferencesView.routeName, + ); }, ), const SizedBox( @@ -229,7 +235,8 @@ class GlobalSettingsView extends StatelessWidget { title: "Delete account", onPressed: () async { await Navigator.of(context).pushNamed( - DeleteAccountView.routeName); + DeleteAccountView.routeName, + ); }, ), const SizedBox( @@ -253,7 +260,8 @@ class GlobalSettingsView extends StatelessWidget { title: "Advanced", onPressed: () { Navigator.of(context).pushNamed( - AdvancedSettingsView.routeName); + AdvancedSettingsView.routeName, + ); }, ), const SizedBox( diff --git a/lib/pages/settings_views/global_settings_view/hidden_settings.dart b/lib/pages/settings_views/global_settings_view/hidden_settings.dart index c1370624e..973dab913 100644 --- a/lib/pages/settings_views/global_settings_view/hidden_settings.dart +++ b/lib/pages/settings_views/global_settings_view/hidden_settings.dart @@ -20,7 +20,6 @@ import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/constants.dart'; import '../../../utilities/text_styles.dart'; -import '../../../wallets/crypto_currency/coins/stellar.dart'; import '../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../widgets/background.dart'; import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; diff --git a/lib/pages/settings_views/global_settings_view/language_view.dart b/lib/pages/settings_views/global_settings_view/language_view.dart index 685736409..8f1ca3012 100644 --- a/lib/pages/settings_views/global_settings_view/language_view.dart +++ b/lib/pages/settings_views/global_settings_view/language_view.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../providers/providers.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; @@ -26,7 +27,7 @@ import '../../../widgets/stack_text_field.dart'; import '../../../widgets/textfield_icon_button.dart'; class LanguageSettingsView extends ConsumerStatefulWidget { - const LanguageSettingsView({Key? key}) : super(key: key); + const LanguageSettingsView({super.key}); static const String routeName = "/languageSettings"; @@ -82,7 +83,8 @@ class _LanguageViewState extends ConsumerState { List _filtered() { return listWithoutSelected .where( - (element) => element.toLowerCase().contains(filter.toLowerCase())) + (element) => element.toLowerCase().contains(filter.toLowerCase()), + ) .toList(); } @@ -225,7 +227,8 @@ class _LanguageViewState extends ConsumerState { child: Padding( padding: const EdgeInsets.all(4), key: Key( - "languageSelect_${listWithoutSelected[index]}"), + "languageSelect_${listWithoutSelected[index]}", + ), child: RoundedContainer( padding: const EdgeInsets.all(0), color: index == 0 @@ -275,10 +278,12 @@ class _LanguageViewState extends ConsumerState { listWithoutSelected[index], key: (index == 0) ? const Key( - "selectedLanguageSettingsLanguageText") + "selectedLanguageSettingsLanguageText", + ) : null, style: STextStyles.largeMedium14( - context), + context, + ), ), const SizedBox( height: 2, @@ -287,10 +292,12 @@ class _LanguageViewState extends ConsumerState { listWithoutSelected[index], key: (index == 0) ? const Key( - "selectedLanguageSettingsLanguageTextDescription") + "selectedLanguageSettingsLanguageTextDescription", + ) : null, style: STextStyles.itemSubtitle( - context), + context, + ), ), ], ), diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart index e5a1ad049..4ccaa47bf 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart @@ -14,6 +14,8 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:uuid/uuid.dart'; + import '../../../../models/node_model.dart'; import '../../../../notifications/show_flush_bar.dart'; import '../../../../providers/global/secure_store_provider.dart'; @@ -25,10 +27,6 @@ import '../../../../utilities/flutter_secure_storage_interface.dart'; import '../../../../utilities/test_node_connection.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; -import '../../../../wallets/crypto_currency/coins/epiccash.dart'; -import '../../../../wallets/crypto_currency/coins/ethereum.dart'; -import '../../../../wallets/crypto_currency/coins/monero.dart'; -import '../../../../wallets/crypto_currency/coins/wownero.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../wallets/crypto_currency/intermediate/cryptonote_currency.dart'; import '../../../../widgets/background.dart'; @@ -41,7 +39,6 @@ import '../../../../widgets/icon_widgets/x_icon.dart'; import '../../../../widgets/stack_dialog.dart'; import '../../../../widgets/stack_text_field.dart'; import '../../../../widgets/textfield_icon_button.dart'; -import 'package:uuid/uuid.dart'; // import 'package:web3dart/web3dart.dart'; enum AddEditNodeViewType { add, edit } @@ -187,9 +184,10 @@ class _AddEditNodeViewState extends ConsumerState { child: Text( "Cancel", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), rightButton: TextButton( @@ -232,7 +230,7 @@ class _AddEditNodeViewState extends ConsumerState { switch (viewType) { case AddEditNodeViewType.add: - NodeModel node = NodeModel( + final NodeModel node = NodeModel( host: address, port: formData.port!, name: formData.name!, @@ -257,7 +255,7 @@ class _AddEditNodeViewState extends ConsumerState { } break; case AddEditNodeViewType.edit: - NodeModel node = NodeModel( + final NodeModel node = NodeModel( host: address, port: formData.port!, name: formData.name!, @@ -315,8 +313,10 @@ class _AddEditNodeViewState extends ConsumerState { Widget build(BuildContext context) { final NodeModel? node = viewType == AddEditNodeViewType.edit && nodeId != null - ? ref.watch(nodeServiceChangeNotifierProvider - .select((value) => value.getNodeById(id: nodeId!))) + ? ref.watch( + nodeServiceChangeNotifierProvider + .select((value) => value.getNodeById(id: nodeId!)), + ) : null; return ConditionalParent( @@ -344,8 +344,10 @@ class _AddEditNodeViewState extends ConsumerState { actions: [ if (viewType == AddEditNodeViewType.edit && ref - .watch(nodeServiceChangeNotifierProvider - .select((value) => value.getNodesFor(coin))) + .watch( + nodeServiceChangeNotifierProvider + .select((value) => value.getNodesFor(coin)), + ) .length > 1) Padding( @@ -372,8 +374,10 @@ class _AddEditNodeViewState extends ConsumerState { height: 20, ), onPressed: () async { - Navigator.popUntil(context, - ModalRoute.withName(widget.routeOnSuccessOrDelete)); + Navigator.popUntil( + context, + ModalRoute.withName(widget.routeOnSuccessOrDelete), + ); await ref .read(nodeServiceChangeNotifierProvider) @@ -433,7 +437,7 @@ class _AddEditNodeViewState extends ConsumerState { Text( "Add new node", style: STextStyles.desktopH3(context), - ) + ), ], ), Padding( @@ -574,13 +578,13 @@ final nodeFormDataProvider = Provider((_) => NodeFormData()); class NodeForm extends ConsumerStatefulWidget { const NodeForm({ - Key? key, + super.key, this.node, required this.secureStore, required this.readOnly, required this.coin, this.onChanged, - }) : super(key: key); + }); final NodeModel? node; final SecureStorageInterface secureStore; @@ -1008,9 +1012,11 @@ class _NodeFormState extends ConsumerState { child: Checkbox( fillColor: !shouldBeReadOnly && enableSSLCheckbox ? null - : MaterialStateProperty.all(Theme.of(context) - .extension()! - .checkboxBGDisabled), + : MaterialStateProperty.all( + Theme.of(context) + .extension()! + .checkboxBGDisabled, + ), materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, value: _useSSL, @@ -1030,7 +1036,7 @@ class _NodeFormState extends ConsumerState { Text( "Use SSL", style: STextStyles.itemSubtitle12(context), - ) + ), ], ), ), @@ -1059,9 +1065,11 @@ class _NodeFormState extends ConsumerState { child: Checkbox( fillColor: !widget.readOnly ? null - : MaterialStateProperty.all(Theme.of(context) - .extension()! - .checkboxBGDisabled), + : MaterialStateProperty.all( + Theme.of(context) + .extension()! + .checkboxBGDisabled, + ), materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, value: _trusted, @@ -1081,7 +1089,7 @@ class _NodeFormState extends ConsumerState { Text( "Trusted", style: STextStyles.itemSubtitle12(context), - ) + ), ], ), ), @@ -1144,7 +1152,7 @@ class _NodeFormState extends ConsumerState { Text( "Use as failover", style: STextStyles.itemSubtitle12(context), - ) + ), ], ), ), diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart index dd6eed5ee..34b37b621 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart @@ -13,9 +13,9 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'coin_nodes_view.dart'; -import '../../../../providers/providers.dart'; + import '../../../../app_config.dart'; +import '../../../../providers/providers.dart'; import '../../../../themes/coin_icon_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/constants.dart'; @@ -24,6 +24,7 @@ import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../widgets/background.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/rounded_white_container.dart'; +import 'coin_nodes_view.dart'; class ManageNodesView extends ConsumerStatefulWidget { const ManageNodesView({ @@ -90,8 +91,10 @@ class _ManageNodesViewState extends ConsumerState { ...coins.map( (coin) { final count = ref - .watch(nodeServiceChangeNotifierProvider - .select((value) => value.getNodesFor(coin))) + .watch( + nodeServiceChangeNotifierProvider + .select((value) => value.getNodesFor(coin)), + ) .length; return Padding( @@ -141,7 +144,7 @@ class _ManageNodesViewState extends ConsumerState { style: STextStyles.label(context), ), ], - ) + ), ], ), ), diff --git a/lib/pages/settings_views/global_settings_view/security_views/change_pin_view/change_pin_view.dart b/lib/pages/settings_views/global_settings_view/security_views/change_pin_view/change_pin_view.dart index 8d442f17f..57fa710ad 100644 --- a/lib/pages/settings_views/global_settings_view/security_views/change_pin_view/change_pin_view.dart +++ b/lib/pages/settings_views/global_settings_view/security_views/change_pin_view/change_pin_view.dart @@ -10,8 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../../../notifications/show_flush_bar.dart'; -import '../security_view.dart'; import '../../../../../providers/global/prefs_provider.dart'; import '../../../../../providers/global/secure_store_provider.dart'; import '../../../../../themes/stack_colors.dart'; @@ -21,11 +21,12 @@ import '../../../../../utilities/text_styles.dart'; import '../../../../../widgets/background.dart'; import '../../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../../widgets/custom_pin_put/custom_pin_put.dart'; +import '../security_view.dart'; class ChangePinView extends ConsumerStatefulWidget { const ChangePinView({ - Key? key, - }) : super(key: key); + super.key, + }); static const String routeName = "/changePin"; @@ -207,8 +208,9 @@ class _ChangePinViewState extends ConsumerState { onSubmit: (String pin) async { if (_pinPutController1.text == _pinPutController2.text) { // This should never fail as we are overwriting the existing pin - assert((await _secureStore.read(key: "stack_pin")) != - null); + assert( + (await _secureStore.read(key: "stack_pin")) != null, + ); await _secureStore.write(key: "stack_pin", value: pin); showFloatingFlushBar( @@ -219,7 +221,8 @@ class _ChangePinViewState extends ConsumerState { ); await Future.delayed( - const Duration(milliseconds: 1200)); + const Duration(milliseconds: 1200), + ); if (mounted) { Navigator.of(context).popUntil( diff --git a/lib/pages/settings_views/global_settings_view/security_views/security_view.dart b/lib/pages/settings_views/global_settings_view/security_views/security_view.dart index ef911d4a0..ff35130fe 100644 --- a/lib/pages/settings_views/global_settings_view/security_views/security_view.dart +++ b/lib/pages/settings_views/global_settings_view/security_views/security_view.dart @@ -24,8 +24,8 @@ import '../../../../widgets/rounded_white_container.dart'; class SecurityView extends StatelessWidget { const SecurityView({ - Key? key, - }) : super(key: key); + super.key, + }); static const String routeName = "/security"; diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/auto_backup_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/auto_backup_view.dart index 4a6218d2f..fdfda272c 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/auto_backup_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/auto_backup_view.dart @@ -12,8 +12,8 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:intl/intl.dart'; -import 'create_auto_backup_view.dart'; -import 'edit_auto_backup_view.dart'; +import 'package:url_launcher/url_launcher.dart'; + import '../../../../providers/global/auto_swb_service_provider.dart'; import '../../../../providers/providers.dart'; import '../../../../themes/stack_colors.dart'; @@ -29,10 +29,11 @@ import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; import '../../../../widgets/rounded_white_container.dart'; import '../../../../widgets/stack_dialog.dart'; import '../../../../widgets/stack_text_field.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'create_auto_backup_view.dart'; +import 'edit_auto_backup_view.dart'; class AutoBackupView extends ConsumerStatefulWidget { - const AutoBackupView({Key? key}) : super(key: key); + const AutoBackupView({super.key}); static const String routeName = "/stackAutoBackup"; @@ -72,8 +73,8 @@ class _AutoBackupViewState extends ConsumerState { } else { // if greater than a week return the actual date return DateFormat.yMMMMd( - ref.read(localeServiceChangeNotifierProvider).locale) - .format(time); + ref.read(localeServiceChangeNotifierProvider).locale, + ).format(time); } if (value == 1) { @@ -200,7 +201,8 @@ class _AutoBackupViewState extends ConsumerState { fileLocationController.text = ref.read(prefsChangeNotifierProvider).autoBackupLocation ?? " "; frequencyController.text = Format.prettyFrequencyType( - ref.read(prefsChangeNotifierProvider).backupFrequencyType); + ref.read(prefsChangeNotifierProvider).backupFrequencyType, + ); fileLocationFocusNode = FocusNode(); passwordFocusNode = FocusNode(); @@ -225,8 +227,9 @@ class _AutoBackupViewState extends ConsumerState { Widget build(BuildContext context) { debugPrint("BUILD: $runtimeType"); - bool isEnabledAutoBackup = ref.watch(prefsChangeNotifierProvider - .select((value) => value.isAutoBackupEnabled)); + final bool isEnabledAutoBackup = ref.watch( + prefsChangeNotifierProvider.select((value) => value.isAutoBackupEnabled), + ); ref.listen( prefsChangeNotifierProvider @@ -312,8 +315,9 @@ class _AutoBackupViewState extends ConsumerState { style: STextStyles.label(context), children: [ const TextSpan( - text: - "Auto Backup is a custom Stack Wallet feature that offers a convenient backup of your data.\n\nTo ensure maximum security, we recommend using a unique password that you haven't used anywhere else on the internet before. Your password is not stored.\n\nFor more information, please see our website "), + text: + "Auto Backup is a custom Stack Wallet feature that offers a convenient backup of your data.\n\nTo ensure maximum security, we recommend using a unique password that you haven't used anywhere else on the internet before. Your password is not stored.\n\nFor more information, please see our website ", + ), TextSpan( text: "stackwallet.com.", style: STextStyles.richLink(context), @@ -346,7 +350,7 @@ class _AutoBackupViewState extends ConsumerState { Text( "Backed up ${prettySinceLastBackupString(ref.watch(prefsChangeNotifierProvider.select((value) => value.lastAutoBackup)))}", style: STextStyles.itemSubtitle(context), - ) + ), ], ), ), @@ -465,7 +469,7 @@ class _AutoBackupViewState extends ConsumerState { .pushNamed(EditAutoBackupView.routeName); }, ), - ) + ), ], ), ], diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/create_auto_backup_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/create_auto_backup_view.dart index f7a36bcba..1583950c5 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/create_auto_backup_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/create_auto_backup_view.dart @@ -16,11 +16,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stack_wallet_backup/stack_wallet_backup.dart'; +import 'package:zxcvbn/zxcvbn.dart'; + import '../../../../notifications/show_flush_bar.dart'; -import 'auto_backup_view.dart'; -import 'helpers/restore_create_backup.dart'; -import 'helpers/swb_file_system.dart'; -import 'sub_views/backup_frequency_type_select_sheet.dart'; import '../../../../providers/global/prefs_provider.dart'; import '../../../../providers/global/secure_store_provider.dart'; import '../../../../themes/stack_colors.dart'; @@ -36,12 +34,15 @@ import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/progress_bar.dart'; import '../../../../widgets/stack_dialog.dart'; import '../../../../widgets/stack_text_field.dart'; -import 'package:zxcvbn/zxcvbn.dart'; +import 'auto_backup_view.dart'; +import 'helpers/restore_create_backup.dart'; +import 'helpers/swb_file_system.dart'; +import 'sub_views/backup_frequency_type_select_sheet.dart'; class CreateAutoBackupView extends ConsumerStatefulWidget { const CreateAutoBackupView({ - Key? key, - }) : super(key: key); + super.key, + }); static const String routeName = "/createAutoBackup"; @@ -134,542 +135,563 @@ class _EnableAutoBackupViewState extends ConsumerState { ), body: Padding( padding: const EdgeInsets.all(16), - child: LayoutBuilder(builder: (context, constraints) { - return SingleChildScrollView( - child: ConstrainedBox( - constraints: BoxConstraints( - minHeight: constraints.maxHeight, - ), - child: IntrinsicHeight( - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - Text( - "Create your backup file", - style: STextStyles.smallMed12(context), - ), - const SizedBox( - height: 10, - ), - if (!Platform.isAndroid && !Platform.isIOS) - TextField( - autocorrect: Util.isDesktop ? false : true, - enableSuggestions: Util.isDesktop ? false : true, - onTap: Platform.isAndroid || Platform.isIOS - ? null - : () async { - try { - await stackFileSystem.prepareStorage(); - - if (mounted) { - await stackFileSystem.pickDir(context); - } - - if (mounted) { - setState(() { - fileLocationController.text = - stackFileSystem.dirPath ?? ""; - }); - } - } catch (e, s) { - Logging.instance - .log("$e\n$s", level: LogLevel.Error); - } - }, - controller: fileLocationController, - style: STextStyles.field(context), - decoration: InputDecoration( - hintText: "Save to...", - hintStyle: STextStyles.fieldLabel(context), - suffixIcon: UnconstrainedBox( - child: Row( - children: [ - const SizedBox( - width: 16, - ), - SvgPicture.asset( - Assets.svg.folder, - color: Theme.of(context) - .extension()! - .textDark3, - width: 16, - height: 16, - ), - const SizedBox( - width: 12, - ), - ], - ), - ), - ), - key: const Key( - "createBackupSaveToFileLocationTextFieldKey"), - readOnly: true, - toolbarOptions: const ToolbarOptions( - copy: true, - cut: false, - paste: false, - selectAll: false, - ), - onChanged: (newValue) {}, + child: LayoutBuilder( + builder: (context, constraints) { + return SingleChildScrollView( + child: ConstrainedBox( + constraints: BoxConstraints( + minHeight: constraints.maxHeight, + ), + child: IntrinsicHeight( + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Text( + "Create your backup file", + style: STextStyles.smallMed12(context), ), - if (!Platform.isAndroid && !Platform.isIOS) const SizedBox( height: 10, ), - ClipRRect( - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius, - ), - child: TextField( - key: const Key("createBackupPasswordFieldKey1"), - focusNode: passwordFocusNode, - controller: passwordController, - style: STextStyles.field(context), - obscureText: hidePassword, - enableSuggestions: false, - autocorrect: false, - decoration: standardInputDecoration( - "Create passphrase", - passwordFocusNode, - context, - ).copyWith( - suffixIcon: UnconstrainedBox( - child: Row( - children: [ - const SizedBox( - width: 16, - ), - GestureDetector( - key: const Key( - "createBackupPasswordFieldShowPasswordButtonKey"), - onTap: () async { - setState(() { - hidePassword = !hidePassword; - }); - }, - child: SvgPicture.asset( - hidePassword - ? Assets.svg.eye - : Assets.svg.eyeSlash, - color: Theme.of(context) - .extension()! - .textDark3, - width: 16, - height: 16, - ), - ), - const SizedBox( - width: 12, - ), - ], - ), - ), - ), - onChanged: (newValue) { - if (newValue.isEmpty) { - setState(() { - passwordFeedback = ""; - }); - return; - } - final result = zxcvbn.evaluate(newValue); - String suggestionsAndTips = ""; - for (var sug - in result.feedback.suggestions!.toSet()) { - suggestionsAndTips += "$sug\n"; - } - suggestionsAndTips += result.feedback.warning!; - String feedback = - // "Password Strength: ${((result.score! / 4.0) * 100).toInt()}%\n" - suggestionsAndTips; - - passwordStrength = result.score! / 4; - - // hack fix to format back string returned from zxcvbn - if (feedback.contains("phrasesNo need")) { - feedback = feedback.replaceFirst( - "phrasesNo need", "phrases\nNo need"); - } - - if (feedback.endsWith("\n")) { - feedback = - feedback.substring(0, feedback.length - 2); - } - - setState(() { - passwordFeedback = feedback; - }); - }, - ), - ), - if (passwordFocusNode.hasFocus || - passwordRepeatFocusNode.hasFocus || - passwordController.text.isNotEmpty) - Padding( - padding: EdgeInsets.only( - left: 12, - right: 12, - top: passwordFeedback.isNotEmpty ? 4 : 0, - ), - child: passwordFeedback.isNotEmpty - ? Text( - passwordFeedback, - style: STextStyles.infoSmall(context), - ) - : null, - ), - if (passwordFocusNode.hasFocus || - passwordRepeatFocusNode.hasFocus || - passwordController.text.isNotEmpty) - Padding( - padding: const EdgeInsets.only( - left: 12, - right: 12, - top: 10, - ), - child: ProgressBar( - key: const Key("createStackBackUpProgressBar"), - width: MediaQuery.of(context).size.width - 32 - 24, - height: 5, - fillColor: passwordStrength < 0.51 - ? Theme.of(context) - .extension()! - .accentColorRed - : passwordStrength < 1 - ? Theme.of(context) - .extension()! - .accentColorYellow - : Theme.of(context) - .extension()! - .accentColorGreen, - backgroundColor: Theme.of(context) - .extension()! - .buttonBackSecondary, - percent: passwordStrength < 0.25 - ? 0.03 - : passwordStrength, - ), - ), - const SizedBox( - height: 10, - ), - ClipRRect( - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius, - ), - child: TextField( - key: const Key("createBackupPasswordFieldKey2"), - focusNode: passwordRepeatFocusNode, - controller: passwordRepeatController, - style: STextStyles.field(context), - obscureText: hidePassword, - enableSuggestions: false, - autocorrect: false, - decoration: standardInputDecoration( - "Confirm passphrase", - passwordRepeatFocusNode, - context, - ).copyWith( - suffixIcon: UnconstrainedBox( - child: Row( - children: [ - const SizedBox( - width: 16, - ), - GestureDetector( - key: const Key( - "createBackupPasswordFieldShowPasswordButtonKey"), - onTap: () async { - setState(() { - hidePassword = !hidePassword; - }); - }, - child: SvgPicture.asset( - hidePassword - ? Assets.svg.eye - : Assets.svg.eyeSlash, - color: Theme.of(context) - .extension()! - .textDark3, - width: 16, - height: 16, - ), - ), - const SizedBox( - width: 12, - ), - ], - ), - ), - ), - onChanged: (newValue) { - setState(() {}); - // TODO: ? check if passwords match? - }, - ), - ), - const SizedBox( - height: 32, - ), - Text( - "Auto Backup frequency", - style: STextStyles.smallMed12(context), - ), - const SizedBox( - height: 10, - ), - Stack( - children: [ + if (!Platform.isAndroid && !Platform.isIOS) TextField( autocorrect: Util.isDesktop ? false : true, enableSuggestions: Util.isDesktop ? false : true, - readOnly: true, - textInputAction: TextInputAction.none, - ), - Positioned.fill( - child: RawMaterialButton( - splashColor: Theme.of(context) - .extension()! - .highlight, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius, - ), - ), - onPressed: () { - showModalBottomSheet( - backgroundColor: Colors.transparent, - context: context, - shape: const RoundedRectangleBorder( - borderRadius: BorderRadius.vertical( - top: Radius.circular(20), - ), - ), - builder: (_) => - const BackupFrequencyTypeSelectSheet(), - ); - }, - child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 12.0), + onTap: Platform.isAndroid || Platform.isIOS + ? null + : () async { + try { + await stackFileSystem.prepareStorage(); + + if (mounted) { + await stackFileSystem.pickDir(context); + } + + if (mounted) { + setState(() { + fileLocationController.text = + stackFileSystem.dirPath ?? ""; + }); + } + } catch (e, s) { + Logging.instance + .log("$e\n$s", level: LogLevel.Error); + } + }, + controller: fileLocationController, + style: STextStyles.field(context), + decoration: InputDecoration( + hintText: "Save to...", + hintStyle: STextStyles.fieldLabel(context), + suffixIcon: UnconstrainedBox( child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, children: [ - Text( - Format.prettyFrequencyType(ref.watch( - prefsChangeNotifierProvider.select( - (value) => - value.backupFrequencyType))), - style: - STextStyles.itemSubtitle12(context), + const SizedBox( + width: 16, ), - Padding( - padding: - const EdgeInsets.only(right: 4.0), - child: SvgPicture.asset( - Assets.svg.chevronDown, - color: Theme.of(context) - .extension()! - .textSubtitle2, - width: 12, - height: 6, - ), + SvgPicture.asset( + Assets.svg.folder, + color: Theme.of(context) + .extension()! + .textDark3, + width: 16, + height: 16, + ), + const SizedBox( + width: 12, ), ], ), ), ), - ) - ], - ), - const Spacer(), - const SizedBox( - height: 10, - ), - TextButton( - style: shouldEnableCreate - ? Theme.of(context) - .extension()! - .getPrimaryEnabledButtonStyle(context) - : Theme.of(context) - .extension()! - .getPrimaryDisabledButtonStyle(context), - onPressed: !shouldEnableCreate - ? null - : () async { - final String pathToSave = - fileLocationController.text; - final String passphrase = - passwordController.text; - final String repeatPassphrase = - passwordRepeatController.text; + key: const Key( + "createBackupSaveToFileLocationTextFieldKey", + ), + readOnly: true, + toolbarOptions: const ToolbarOptions( + copy: true, + cut: false, + paste: false, + selectAll: false, + ), + onChanged: (newValue) {}, + ), + if (!Platform.isAndroid && !Platform.isIOS) + const SizedBox( + height: 10, + ), + ClipRRect( + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), + child: TextField( + key: const Key("createBackupPasswordFieldKey1"), + focusNode: passwordFocusNode, + controller: passwordController, + style: STextStyles.field(context), + obscureText: hidePassword, + enableSuggestions: false, + autocorrect: false, + decoration: standardInputDecoration( + "Create passphrase", + passwordFocusNode, + context, + ).copyWith( + suffixIcon: UnconstrainedBox( + child: Row( + children: [ + const SizedBox( + width: 16, + ), + GestureDetector( + key: const Key( + "createBackupPasswordFieldShowPasswordButtonKey", + ), + onTap: () async { + setState(() { + hidePassword = !hidePassword; + }); + }, + child: SvgPicture.asset( + hidePassword + ? Assets.svg.eye + : Assets.svg.eyeSlash, + color: Theme.of(context) + .extension()! + .textDark3, + width: 16, + height: 16, + ), + ), + const SizedBox( + width: 12, + ), + ], + ), + ), + ), + onChanged: (newValue) { + if (newValue.isEmpty) { + setState(() { + passwordFeedback = ""; + }); + return; + } + final result = zxcvbn.evaluate(newValue); + String suggestionsAndTips = ""; + for (final sug + in result.feedback.suggestions!.toSet()) { + suggestionsAndTips += "$sug\n"; + } + suggestionsAndTips += result.feedback.warning!; + String feedback = + // "Password Strength: ${((result.score! / 4.0) * 100).toInt()}%\n" + suggestionsAndTips; - if (pathToSave.isEmpty) { - showFloatingFlushBar( - type: FlushBarType.warning, - message: "Directory not chosen", - context: context, - ); - return; - } - if (!(await Directory(pathToSave).exists())) { - showFloatingFlushBar( - type: FlushBarType.warning, - message: "Directory does not exist", - context: context, - ); - return; - } - if (passphrase.isEmpty) { - showFloatingFlushBar( - type: FlushBarType.warning, - message: "A passphrase is required", - context: context, - ); - return; - } - if (passphrase != repeatPassphrase) { - showFloatingFlushBar( - type: FlushBarType.warning, - message: "Passphrase does not match", - context: context, - ); - return; - } + passwordStrength = result.score! / 4; - showDialog( - context: context, - barrierDismissible: false, - builder: (_) => const StackDialog( - title: "Encrypting initial backup", - message: "This shouldn't take long", - ), + // hack fix to format back string returned from zxcvbn + if (feedback.contains("phrasesNo need")) { + feedback = feedback.replaceFirst( + "phrasesNo need", + "phrases\nNo need", ); + } - // make sure the dialog is able to be displayed for at least some time - final fut = Future.delayed( - const Duration(milliseconds: 300)); + if (feedback.endsWith("\n")) { + feedback = + feedback.substring(0, feedback.length - 2); + } - String adkString; - int adkVersion; - try { - final adk = - await compute(generateAdk, passphrase); - adkString = - Format.uint8listToString(adk.item2); - adkVersion = adk.item1; - } on Exception catch (e, s) { - String err = - getErrorMessageFromSWBException(e); - Logging.instance - .log("$err\n$s", level: LogLevel.Error); - // pop encryption progress dialog - Navigator.of(context).pop(); - showFloatingFlushBar( - type: FlushBarType.warning, - message: err, - context: context, - ); - return; - } catch (e, s) { - Logging.instance - .log("$e\n$s", level: LogLevel.Error); - // pop encryption progress dialog - Navigator.of(context).pop(); - showFloatingFlushBar( - type: FlushBarType.warning, - message: "$e", - context: context, - ); - return; - } - - await secureStore.write( - key: "auto_adk_string", value: adkString); - await secureStore.write( - key: "auto_adk_version_string", - value: adkVersion.toString()); - - final DateTime now = DateTime.now(); - final String fileToSave = - createAutoBackupFilename(pathToSave, now); - - final backup = await SWB.createStackWalletJSON( - secureStorage: secureStore, - ); - - bool result = - await SWB.encryptStackWalletWithADK( - fileToSave, - adkString, - jsonEncode(backup), - adkVersion, - ); - - // this future should already be complete unless there was an error encrypting - await Future.wait([fut]); - - if (mounted) { - // pop encryption progress dialog - Navigator.of(context).pop(); - - if (result) { - ref - .read(prefsChangeNotifierProvider) - .autoBackupLocation = pathToSave; - ref - .read(prefsChangeNotifierProvider) - .lastAutoBackup = now; - - ref - .read(prefsChangeNotifierProvider) - .isAutoBackupEnabled = true; - - await showDialog( - context: context, - barrierDismissible: false, - builder: (_) => Platform.isAndroid - ? StackOkDialog( - title: - "Stack Auto Backup enabled and saved to:", - message: fileToSave, - ) - : const StackOkDialog( - title: - "Stack Auto Backup enabled!"), - ); - if (mounted) { - passwordController.text = ""; - passwordRepeatController.text = ""; - - Navigator.of(context).popUntil( - ModalRoute.withName( - AutoBackupView.routeName)); - } - } else { - await showDialog( - context: context, - barrierDismissible: false, - builder: (_) => const StackOkDialog( - title: - "Failed to enable Auto Backup"), - ); - } - } - }, - child: Text( - "Enable Auto Backup", - style: STextStyles.button(context), + setState(() { + passwordFeedback = feedback; + }); + }, + ), ), - ), - ], + if (passwordFocusNode.hasFocus || + passwordRepeatFocusNode.hasFocus || + passwordController.text.isNotEmpty) + Padding( + padding: EdgeInsets.only( + left: 12, + right: 12, + top: passwordFeedback.isNotEmpty ? 4 : 0, + ), + child: passwordFeedback.isNotEmpty + ? Text( + passwordFeedback, + style: STextStyles.infoSmall(context), + ) + : null, + ), + if (passwordFocusNode.hasFocus || + passwordRepeatFocusNode.hasFocus || + passwordController.text.isNotEmpty) + Padding( + padding: const EdgeInsets.only( + left: 12, + right: 12, + top: 10, + ), + child: ProgressBar( + key: const Key("createStackBackUpProgressBar"), + width: + MediaQuery.of(context).size.width - 32 - 24, + height: 5, + fillColor: passwordStrength < 0.51 + ? Theme.of(context) + .extension()! + .accentColorRed + : passwordStrength < 1 + ? Theme.of(context) + .extension()! + .accentColorYellow + : Theme.of(context) + .extension()! + .accentColorGreen, + backgroundColor: Theme.of(context) + .extension()! + .buttonBackSecondary, + percent: passwordStrength < 0.25 + ? 0.03 + : passwordStrength, + ), + ), + const SizedBox( + height: 10, + ), + ClipRRect( + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), + child: TextField( + key: const Key("createBackupPasswordFieldKey2"), + focusNode: passwordRepeatFocusNode, + controller: passwordRepeatController, + style: STextStyles.field(context), + obscureText: hidePassword, + enableSuggestions: false, + autocorrect: false, + decoration: standardInputDecoration( + "Confirm passphrase", + passwordRepeatFocusNode, + context, + ).copyWith( + suffixIcon: UnconstrainedBox( + child: Row( + children: [ + const SizedBox( + width: 16, + ), + GestureDetector( + key: const Key( + "createBackupPasswordFieldShowPasswordButtonKey", + ), + onTap: () async { + setState(() { + hidePassword = !hidePassword; + }); + }, + child: SvgPicture.asset( + hidePassword + ? Assets.svg.eye + : Assets.svg.eyeSlash, + color: Theme.of(context) + .extension()! + .textDark3, + width: 16, + height: 16, + ), + ), + const SizedBox( + width: 12, + ), + ], + ), + ), + ), + onChanged: (newValue) { + setState(() {}); + // TODO: ? check if passwords match? + }, + ), + ), + const SizedBox( + height: 32, + ), + Text( + "Auto Backup frequency", + style: STextStyles.smallMed12(context), + ), + const SizedBox( + height: 10, + ), + Stack( + children: [ + TextField( + autocorrect: Util.isDesktop ? false : true, + enableSuggestions: Util.isDesktop ? false : true, + readOnly: true, + textInputAction: TextInputAction.none, + ), + Positioned.fill( + child: RawMaterialButton( + splashColor: Theme.of(context) + .extension()! + .highlight, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), + ), + onPressed: () { + showModalBottomSheet( + backgroundColor: Colors.transparent, + context: context, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.vertical( + top: Radius.circular(20), + ), + ), + builder: (_) => + const BackupFrequencyTypeSelectSheet(), + ); + }, + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 12.0, + ), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + Format.prettyFrequencyType( + ref.watch( + prefsChangeNotifierProvider.select( + (value) => + value.backupFrequencyType, + ), + ), + ), + style: + STextStyles.itemSubtitle12(context), + ), + Padding( + padding: + const EdgeInsets.only(right: 4.0), + child: SvgPicture.asset( + Assets.svg.chevronDown, + color: Theme.of(context) + .extension()! + .textSubtitle2, + width: 12, + height: 6, + ), + ), + ], + ), + ), + ), + ), + ], + ), + const Spacer(), + const SizedBox( + height: 10, + ), + TextButton( + style: shouldEnableCreate + ? Theme.of(context) + .extension()! + .getPrimaryEnabledButtonStyle(context) + : Theme.of(context) + .extension()! + .getPrimaryDisabledButtonStyle(context), + onPressed: !shouldEnableCreate + ? null + : () async { + final String pathToSave = + fileLocationController.text; + final String passphrase = + passwordController.text; + final String repeatPassphrase = + passwordRepeatController.text; + + if (pathToSave.isEmpty) { + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Directory not chosen", + context: context, + ); + return; + } + if (!(await Directory(pathToSave).exists())) { + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Directory does not exist", + context: context, + ); + return; + } + if (passphrase.isEmpty) { + showFloatingFlushBar( + type: FlushBarType.warning, + message: "A passphrase is required", + context: context, + ); + return; + } + if (passphrase != repeatPassphrase) { + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Passphrase does not match", + context: context, + ); + return; + } + + showDialog( + context: context, + barrierDismissible: false, + builder: (_) => const StackDialog( + title: "Encrypting initial backup", + message: "This shouldn't take long", + ), + ); + + // make sure the dialog is able to be displayed for at least some time + final fut = Future.delayed( + const Duration(milliseconds: 300), + ); + + String adkString; + int adkVersion; + try { + final adk = + await compute(generateAdk, passphrase); + adkString = + Format.uint8listToString(adk.item2); + adkVersion = adk.item1; + } on Exception catch (e, s) { + final String err = + getErrorMessageFromSWBException(e); + Logging.instance + .log("$err\n$s", level: LogLevel.Error); + // pop encryption progress dialog + Navigator.of(context).pop(); + showFloatingFlushBar( + type: FlushBarType.warning, + message: err, + context: context, + ); + return; + } catch (e, s) { + Logging.instance + .log("$e\n$s", level: LogLevel.Error); + // pop encryption progress dialog + Navigator.of(context).pop(); + showFloatingFlushBar( + type: FlushBarType.warning, + message: "$e", + context: context, + ); + return; + } + + await secureStore.write( + key: "auto_adk_string", + value: adkString, + ); + await secureStore.write( + key: "auto_adk_version_string", + value: adkVersion.toString(), + ); + + final DateTime now = DateTime.now(); + final String fileToSave = + createAutoBackupFilename(pathToSave, now); + + final backup = + await SWB.createStackWalletJSON( + secureStorage: secureStore, + ); + + final bool result = + await SWB.encryptStackWalletWithADK( + fileToSave, + adkString, + jsonEncode(backup), + adkVersion, + ); + + // this future should already be complete unless there was an error encrypting + await Future.wait([fut]); + + if (mounted) { + // pop encryption progress dialog + Navigator.of(context).pop(); + + if (result) { + ref + .read(prefsChangeNotifierProvider) + .autoBackupLocation = pathToSave; + ref + .read(prefsChangeNotifierProvider) + .lastAutoBackup = now; + + ref + .read(prefsChangeNotifierProvider) + .isAutoBackupEnabled = true; + + await showDialog( + context: context, + barrierDismissible: false, + builder: (_) => Platform.isAndroid + ? StackOkDialog( + title: + "Stack Auto Backup enabled and saved to:", + message: fileToSave, + ) + : const StackOkDialog( + title: + "Stack Auto Backup enabled!", + ), + ); + if (mounted) { + passwordController.text = ""; + passwordRepeatController.text = ""; + + Navigator.of(context).popUntil( + ModalRoute.withName( + AutoBackupView.routeName, + ), + ); + } + } else { + await showDialog( + context: context, + barrierDismissible: false, + builder: (_) => const StackOkDialog( + title: "Failed to enable Auto Backup", + ), + ); + } + } + }, + child: Text( + "Enable Auto Backup", + style: STextStyles.button(context), + ), + ), + ], + ), ), ), - ), - ); - }), + ); + }, + ), ), ), ); diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_information_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_information_view.dart index ebdf2cac3..8b1c72ebd 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_information_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_information_view.dart @@ -17,7 +17,7 @@ import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/rounded_white_container.dart'; class CreateBackupInfoView extends StatelessWidget { - const CreateBackupInfoView({Key? key}) : super(key: key); + const CreateBackupInfoView({super.key}); static const String routeName = "/createBackupInfo"; diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart index 118e128e8..e762d9f5b 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/create_backup_view.dart @@ -15,9 +15,9 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:zxcvbn/zxcvbn.dart'; + import '../../../../notifications/show_flush_bar.dart'; -import 'helpers/restore_create_backup.dart'; -import 'helpers/swb_file_system.dart'; import '../../../../providers/global/secure_store_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; @@ -34,10 +34,11 @@ import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/progress_bar.dart'; import '../../../../widgets/stack_dialog.dart'; import '../../../../widgets/stack_text_field.dart'; -import 'package:zxcvbn/zxcvbn.dart'; +import 'helpers/restore_create_backup.dart'; +import 'helpers/swb_file_system.dart'; class CreateBackupView extends StatefulWidget { - const CreateBackupView({Key? key}) : super(key: key); + const CreateBackupView({super.key}); static const String routeName = "/createBackup"; @@ -123,7 +124,8 @@ class _RestoreFromFileViewState extends State { if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } if (mounted) { Navigator.of(context).pop(); @@ -165,11 +167,11 @@ class _RestoreFromFileViewState extends State { padding: const EdgeInsets.only(bottom: 10), child: Text( "Choose file location", - style: STextStyles.desktopTextExtraExtraSmall(context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark3), + style: + STextStyles.desktopTextExtraExtraSmall(context).copyWith( + color: + Theme.of(context).extension()!.textDark3, + ), ), ), child, @@ -180,74 +182,76 @@ class _RestoreFromFileViewState extends State { crossAxisAlignment: CrossAxisAlignment.stretch, children: [ if (!Platform.isAndroid && !Platform.isIOS) - Consumer(builder: (context, ref, __) { - return Container( - color: Colors.transparent, - child: TextField( - autocorrect: Util.isDesktop ? false : true, - enableSuggestions: Util.isDesktop ? false : true, - onTap: Platform.isAndroid || Platform.isIOS - ? null - : () async { - try { - await stackFileSystem.prepareStorage(); + Consumer( + builder: (context, ref, __) { + return Container( + color: Colors.transparent, + child: TextField( + autocorrect: Util.isDesktop ? false : true, + enableSuggestions: Util.isDesktop ? false : true, + onTap: Platform.isAndroid || Platform.isIOS + ? null + : () async { + try { + await stackFileSystem.prepareStorage(); - if (mounted) { - await stackFileSystem.pickDir(context); - } + if (mounted) { + await stackFileSystem.pickDir(context); + } - if (mounted) { - setState(() { - fileLocationController.text = - stackFileSystem.dirPath ?? ""; - }); + if (mounted) { + setState(() { + fileLocationController.text = + stackFileSystem.dirPath ?? ""; + }); + } + } catch (e, s) { + Logging.instance + .log("$e\n$s", level: LogLevel.Error); } - } catch (e, s) { - Logging.instance - .log("$e\n$s", level: LogLevel.Error); - } - }, - controller: fileLocationController, - style: STextStyles.field(context), - decoration: InputDecoration( - hintText: "Save to...", - hintStyle: STextStyles.fieldLabel(context), - suffixIcon: UnconstrainedBox( - child: Row( - children: [ - const SizedBox( - width: 16, - ), - SvgPicture.asset( - Assets.svg.folder, - color: Theme.of(context) - .extension()! - .textDark3, - width: 16, - height: 16, - ), - const SizedBox( - width: 12, - ), - ], + }, + controller: fileLocationController, + style: STextStyles.field(context), + decoration: InputDecoration( + hintText: "Save to...", + hintStyle: STextStyles.fieldLabel(context), + suffixIcon: UnconstrainedBox( + child: Row( + children: [ + const SizedBox( + width: 16, + ), + SvgPicture.asset( + Assets.svg.folder, + color: Theme.of(context) + .extension()! + .textDark3, + width: 16, + height: 16, + ), + const SizedBox( + width: 12, + ), + ], + ), ), ), + key: const Key( + "createBackupSaveToFileLocationTextFieldKey"), + readOnly: true, + toolbarOptions: const ToolbarOptions( + copy: true, + cut: false, + paste: false, + selectAll: false, + ), + onChanged: (newValue) { + // ref.read(addressEntryDataProvider(widget.id)).address = newValue; + }, ), - key: - const Key("createBackupSaveToFileLocationTextFieldKey"), - readOnly: true, - toolbarOptions: const ToolbarOptions( - copy: true, - cut: false, - paste: false, - selectAll: false, - ), - onChanged: (newValue) { - // ref.read(addressEntryDataProvider(widget.id)).address = newValue; - }, - ), - ); - }), + ); + }, + ), if (!Platform.isAndroid && !Platform.isIOS) SizedBox( height: !isDesktop ? 8 : 24, @@ -257,11 +261,11 @@ class _RestoreFromFileViewState extends State { padding: const EdgeInsets.only(bottom: 10.0), child: Text( "Create a passphrase", - style: STextStyles.desktopTextExtraExtraSmall(context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark3), + style: + STextStyles.desktopTextExtraExtraSmall(context).copyWith( + color: + Theme.of(context).extension()!.textDark3, + ), textAlign: TextAlign.left, ), ), @@ -292,7 +296,8 @@ class _RestoreFromFileViewState extends State { ), GestureDetector( key: const Key( - "createBackupPasswordFieldShowPasswordButtonKey"), + "createBackupPasswordFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; @@ -323,7 +328,7 @@ class _RestoreFromFileViewState extends State { } final result = zxcvbn.evaluate(newValue); String suggestionsAndTips = ""; - for (var sug in result.feedback.suggestions!.toSet()) { + for (final sug in result.feedback.suggestions!.toSet()) { suggestionsAndTips += "$sug\n"; } suggestionsAndTips += result.feedback.warning!; @@ -336,7 +341,9 @@ class _RestoreFromFileViewState extends State { // hack fix to format back string returned from zxcvbn if (feedback.contains("phrasesNo need")) { feedback = feedback.replaceFirst( - "phrasesNo need", "phrases\nNo need"); + "phrasesNo need", + "phrases\nNo need", + ); } if (feedback.endsWith("\n")) { @@ -425,7 +432,8 @@ class _RestoreFromFileViewState extends State { ), GestureDetector( key: const Key( - "createBackupPasswordFieldShowPasswordButtonKey"), + "createBackupPasswordFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; @@ -458,247 +466,284 @@ class _RestoreFromFileViewState extends State { ), if (!isDesktop) const Spacer(), !isDesktop - ? Consumer(builder: (context, ref, __) { - return TextButton( - style: shouldEnableCreate - ? Theme.of(context) - .extension()! - .getPrimaryEnabledButtonStyle(context) - : Theme.of(context) - .extension()! - .getPrimaryDisabledButtonStyle(context), - onPressed: !shouldEnableCreate - ? null - : () async { - final String pathToSave = - fileLocationController.text; - final String passphrase = passwordController.text; - final String repeatPassphrase = - passwordRepeatController.text; + ? Consumer( + builder: (context, ref, __) { + return TextButton( + style: shouldEnableCreate + ? Theme.of(context) + .extension()! + .getPrimaryEnabledButtonStyle(context) + : Theme.of(context) + .extension()! + .getPrimaryDisabledButtonStyle(context), + onPressed: !shouldEnableCreate + ? null + : () async { + final String pathToSave = + fileLocationController.text; + final String passphrase = + passwordController.text; + final String repeatPassphrase = + passwordRepeatController.text; - if (pathToSave.isEmpty) { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "Directory not chosen", - context: context, - )); - return; - } - if (!(await Directory(pathToSave).exists())) { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "Directory does not exist", - context: context, - )); - return; - } - if (passphrase.isEmpty) { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "A passphrase is required", - context: context, - )); - return; - } - if (passphrase != repeatPassphrase) { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "Passphrase does not match", - context: context, - )); - return; - } - - unawaited(showDialog( - context: context, - barrierDismissible: false, - builder: (_) => const StackDialog( - title: "Encrypting backup", - message: "This shouldn't take long", - ), - )); - // make sure the dialog is able to be displayed for at least 1 second - await Future.delayed( - const Duration(seconds: 1)); - - final DateTime now = DateTime.now(); - final String fileToSave = - "$pathToSave/stackbackup_${now.year}_${now.month}_${now.day}_${now.hour}_${now.minute}_${now.second}.swb"; - - final backup = await SWB.createStackWalletJSON( - secureStorage: ref.read(secureStoreProvider)); - - bool result = - await SWB.encryptStackWalletWithPassphrase( - fileToSave, - passphrase, - jsonEncode(backup), - ); - - if (mounted) { - // pop encryption progress dialog - if (!isDesktop) Navigator.of(context).pop(); - - if (result) { - await showDialog( - context: context, - barrierDismissible: false, - builder: (_) => Platform.isAndroid - ? StackOkDialog( - title: "Backup saved to:", - message: fileToSave, - ) - : const StackOkDialog( - title: "Backup creation succeeded"), - ); - passwordController.text = ""; - passwordRepeatController.text = ""; - setState(() {}); - } else { - await showDialog( - context: context, - barrierDismissible: false, - builder: (_) => const StackOkDialog( - title: "Backup creation failed"), - ); - } - } - }, - child: Text( - "Create backup", - style: STextStyles.button(context), - ), - ); - }) - : Row( - children: [ - Consumer(builder: (context, ref, __) { - return PrimaryButton( - width: 183, - buttonHeight: ButtonHeight.m, - label: "Create backup", - enabled: shouldEnableCreate, - onPressed: !shouldEnableCreate - ? null - : () async { - final String pathToSave = - fileLocationController.text; - final String passphrase = - passwordController.text; - final String repeatPassphrase = - passwordRepeatController.text; - - if (pathToSave.isEmpty) { - unawaited(showFloatingFlushBar( + if (pathToSave.isEmpty) { + unawaited( + showFloatingFlushBar( type: FlushBarType.warning, message: "Directory not chosen", context: context, - )); - return; - } - if (!(await Directory(pathToSave).exists())) { - unawaited(showFloatingFlushBar( + ), + ); + return; + } + if (!(await Directory(pathToSave).exists())) { + unawaited( + showFloatingFlushBar( type: FlushBarType.warning, message: "Directory does not exist", context: context, - )); - return; - } - if (passphrase.isEmpty) { - unawaited(showFloatingFlushBar( + ), + ); + return; + } + if (passphrase.isEmpty) { + unawaited( + showFloatingFlushBar( type: FlushBarType.warning, message: "A passphrase is required", context: context, - )); - return; - } - if (passphrase != repeatPassphrase) { - unawaited(showFloatingFlushBar( + ), + ); + return; + } + if (passphrase != repeatPassphrase) { + unawaited( + showFloatingFlushBar( type: FlushBarType.warning, message: "Passphrase does not match", context: context, - )); - return; - } - - unawaited( - showDialog( - context: context, - barrierDismissible: false, - builder: (_) { - if (Util.isDesktop) { - return DesktopDialog( - maxHeight: double.infinity, - maxWidth: 450, - child: Padding( - padding: const EdgeInsets.all( - 32, - ), - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - "Encrypting initial backup", - style: - STextStyles.desktopH3( - context), - ), - const SizedBox( - height: 40, - ), - Text( - "This shouldn't take long", - style: STextStyles - .desktopTextExtraExtraSmall( - context), - ), - ], - ), - ), - ); - } else { - return const StackDialog( - title: "Encrypting initial backup", - message: "This shouldn't take long", - ); - } - }, ), ); + return; + } - await Future.delayed( - const Duration(seconds: 1)); + unawaited( + showDialog( + context: context, + barrierDismissible: false, + builder: (_) => const StackDialog( + title: "Encrypting backup", + message: "This shouldn't take long", + ), + ), + ); + // make sure the dialog is able to be displayed for at least 1 second + await Future.delayed( + const Duration(seconds: 1), + ); - // make sure the dialog is able to be displayed for at least 1 second - final fut = Future.delayed( - const Duration(seconds: 1)); + final DateTime now = DateTime.now(); + final String fileToSave = + "$pathToSave/stackbackup_${now.year}_${now.month}_${now.day}_${now.hour}_${now.minute}_${now.second}.swb"; - final DateTime now = DateTime.now(); - final String fileToSave = - "$pathToSave/stackbackup_${now.year}_${now.month}_${now.day}_${now.hour}_${now.minute}_${now.second}.swb"; + final backup = await SWB.createStackWalletJSON( + secureStorage: ref.read(secureStoreProvider), + ); - final backup = - await SWB.createStackWalletJSON( - secureStorage: - ref.read(secureStoreProvider)); + final bool result = + await SWB.encryptStackWalletWithPassphrase( + fileToSave, + passphrase, + jsonEncode(backup), + ); - bool result = await SWB - .encryptStackWalletWithPassphrase( - fileToSave, - passphrase, - jsonEncode(backup), - ); + if (mounted) { + // pop encryption progress dialog + if (!isDesktop) Navigator.of(context).pop(); - await Future.wait([fut]); + if (result) { + await showDialog( + context: context, + barrierDismissible: false, + builder: (_) => Platform.isAndroid + ? StackOkDialog( + title: "Backup saved to:", + message: fileToSave, + ) + : const StackOkDialog( + title: + "Backup creation succeeded", + ), + ); + passwordController.text = ""; + passwordRepeatController.text = ""; + setState(() {}); + } else { + await showDialog( + context: context, + barrierDismissible: false, + builder: (_) => const StackOkDialog( + title: "Backup creation failed", + ), + ); + } + } + }, + child: Text( + "Create backup", + style: STextStyles.button(context), + ), + ); + }, + ) + : Row( + children: [ + Consumer( + builder: (context, ref, __) { + return PrimaryButton( + width: 183, + buttonHeight: ButtonHeight.m, + label: "Create backup", + enabled: shouldEnableCreate, + onPressed: !shouldEnableCreate + ? null + : () async { + final String pathToSave = + fileLocationController.text; + final String passphrase = + passwordController.text; + final String repeatPassphrase = + passwordRepeatController.text; - if (mounted) { - // pop encryption progress dialog - if (!isDesktop) Navigator.of(context).pop(); + if (pathToSave.isEmpty) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Directory not chosen", + context: context, + ), + ); + return; + } + if (!(await Directory(pathToSave) + .exists())) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Directory does not exist", + context: context, + ), + ); + return; + } + if (passphrase.isEmpty) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "A passphrase is required", + context: context, + ), + ); + return; + } + if (passphrase != repeatPassphrase) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Passphrase does not match", + context: context, + ), + ); + return; + } - if (result) { - await showDialog( + unawaited( + showDialog( + context: context, + barrierDismissible: false, + builder: (_) { + if (Util.isDesktop) { + return DesktopDialog( + maxHeight: double.infinity, + maxWidth: 450, + child: Padding( + padding: const EdgeInsets.all( + 32, + ), + child: Column( + mainAxisSize: + MainAxisSize.min, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Encrypting initial backup", + style: + STextStyles.desktopH3( + context, + ), + ), + const SizedBox( + height: 40, + ), + Text( + "This shouldn't take long", + style: STextStyles + .desktopTextExtraExtraSmall( + context, + ), + ), + ], + ), + ), + ); + } else { + return const StackDialog( + title: + "Encrypting initial backup", + message: + "This shouldn't take long", + ); + } + }, + ), + ); + + await Future.delayed( + const Duration(seconds: 1), + ); + + // make sure the dialog is able to be displayed for at least 1 second + final fut = Future.delayed( + const Duration(seconds: 1), + ); + + final DateTime now = DateTime.now(); + final String fileToSave = + "$pathToSave/stackbackup_${now.year}_${now.month}_${now.day}_${now.hour}_${now.minute}_${now.second}.swb"; + + final backup = + await SWB.createStackWalletJSON( + secureStorage: + ref.read(secureStoreProvider), + ); + + final bool result = await SWB + .encryptStackWalletWithPassphrase( + fileToSave, + passphrase, + jsonEncode(backup), + ); + + await Future.wait([fut]); + + if (mounted) { + // pop encryption progress dialog + if (!isDesktop) + Navigator.of(context).pop(); + + if (result) { + await showDialog( context: context, barrierDismissible: false, builder: (context) { @@ -726,7 +771,8 @@ class _RestoreFromFileViewState extends State { .start, children: [ const SizedBox( - height: 26), + height: 26, + ), Text( "Stack backup saved to: \n", style: STextStyles @@ -736,7 +782,8 @@ class _RestoreFromFileViewState extends State { fileToSave, style: STextStyles .desktopTextExtraExtraSmall( - context), + context, + ), ), const SizedBox( height: 40, @@ -754,40 +801,46 @@ class _RestoreFromFileViewState extends State { onPressed: () { int count = 0; Navigator.of( - context) - .popUntil((_) => - count++ >= - 2); + context, + ).popUntil( + (_) => + count++ >= + 2, + ); }, ), ), ], - ) + ), ], ), ), ); } else { return const StackOkDialog( - title: - "Backup creation succeeded"); + title: + "Backup creation succeeded", + ); } - }); - passwordController.text = ""; - passwordRepeatController.text = ""; - setState(() {}); - } else { - await showDialog( - context: context, - barrierDismissible: false, - builder: (_) => const StackOkDialog( - title: "Backup creation failed"), - ); + }, + ); + passwordController.text = ""; + passwordRepeatController.text = ""; + setState(() {}); + } else { + await showDialog( + context: context, + barrierDismissible: false, + builder: (_) => const StackOkDialog( + title: "Backup creation failed", + ), + ); + } } - } - }, - ); - }), + }, + ); + }, + ), const SizedBox( width: 16, ), diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/dialogs/cancel_stack_restore_dialog.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/dialogs/cancel_stack_restore_dialog.dart index 17c24aed0..f48c0017c 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/dialogs/cancel_stack_restore_dialog.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/dialogs/cancel_stack_restore_dialog.dart @@ -9,6 +9,7 @@ */ import 'package:flutter/material.dart'; + import '../../../../../themes/stack_colors.dart'; import '../../../../../utilities/text_styles.dart'; import '../../../../../utilities/util.dart'; @@ -20,8 +21,8 @@ import '../../../../../widgets/stack_dialog.dart'; class CancelStackRestoreDialog extends StatelessWidget { const CancelStackRestoreDialog({ - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context) { @@ -68,7 +69,11 @@ class CancelStackRestoreDialog extends StatelessWidget { maxWidth: 600, child: Padding( padding: const EdgeInsets.only( - top: 20, left: 32, right: 32, bottom: 20), + top: 20, + left: 32, + right: 32, + bottom: 20, + ), child: Column( children: [ Text( @@ -111,7 +116,7 @@ class CancelStackRestoreDialog extends StatelessWidget { onPressed: () { Navigator.of(context).pop(true); }, - ) + ), ], ), ], diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart index 107cefb70..5d495b3d9 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/edit_auto_backup_view.dart @@ -18,11 +18,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stack_wallet_backup/stack_wallet_backup.dart'; +import 'package:zxcvbn/zxcvbn.dart'; + import '../../../../notifications/show_flush_bar.dart'; -import 'auto_backup_view.dart'; -import 'helpers/restore_create_backup.dart'; -import 'helpers/swb_file_system.dart'; -import 'sub_views/backup_frequency_type_select_sheet.dart'; import '../../../../providers/global/prefs_provider.dart'; import '../../../../providers/global/secure_store_provider.dart'; import '../../../../themes/stack_colors.dart'; @@ -42,12 +40,15 @@ import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/progress_bar.dart'; import '../../../../widgets/stack_dialog.dart'; import '../../../../widgets/stack_text_field.dart'; -import 'package:zxcvbn/zxcvbn.dart'; +import 'auto_backup_view.dart'; +import 'helpers/restore_create_backup.dart'; +import 'helpers/swb_file_system.dart'; +import 'sub_views/backup_frequency_type_select_sheet.dart'; class EditAutoBackupView extends ConsumerStatefulWidget { const EditAutoBackupView({ - Key? key, - }) : super(key: key); + super.key, + }); static const String routeName = "/editAutoBackup"; @@ -156,7 +157,7 @@ class _EditAutoBackupViewState extends ConsumerState { adkString = Format.uint8listToString(adk.item2); adkVersion = adk.item1; } on Exception catch (e, s) { - String err = getErrorMessageFromSWBException(e); + final String err = getErrorMessageFromSWBException(e); Logging.instance.log("$err\n$s", level: LogLevel.Error); // pop encryption progress dialog Navigator.of(context).pop(); @@ -184,7 +185,9 @@ class _EditAutoBackupViewState extends ConsumerState { await secureStore.write(key: "auto_adk_string", value: adkString); await secureStore.write( - key: "auto_adk_version_string", value: adkVersion.toString()); + key: "auto_adk_version_string", + value: adkVersion.toString(), + ); final DateTime now = DateTime.now(); final String fileToSave = createAutoBackupFilename(pathToSave, now); @@ -193,7 +196,7 @@ class _EditAutoBackupViewState extends ConsumerState { secureStorage: ref.read(secureStoreProvider), ); - bool result = await SWB.encryptStackWalletWithADK( + final bool result = await SWB.encryptStackWalletWithADK( fileToSave, adkString, jsonEncode(backup), @@ -311,18 +314,20 @@ class _EditAutoBackupViewState extends ConsumerState { ), body: Padding( padding: const EdgeInsets.all(16), - child: LayoutBuilder(builder: (context, constraints) { - return SingleChildScrollView( - child: ConstrainedBox( - constraints: BoxConstraints( - minHeight: constraints.maxHeight, + child: LayoutBuilder( + builder: (context, constraints) { + return SingleChildScrollView( + child: ConstrainedBox( + constraints: BoxConstraints( + minHeight: constraints.maxHeight, + ), + child: IntrinsicHeight( + child: child, + ), ), - child: IntrinsicHeight( - child: child, - ), - ), - ); - }), + ); + }, + ), ), ), ), @@ -448,7 +453,8 @@ class _EditAutoBackupViewState extends ConsumerState { ), GestureDetector( key: const Key( - "createBackupPasswordFieldShowPasswordButtonKey"), + "createBackupPasswordFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; @@ -479,7 +485,7 @@ class _EditAutoBackupViewState extends ConsumerState { } final result = zxcvbn.evaluate(newValue); String suggestionsAndTips = ""; - for (var sug in result.feedback.suggestions!.toSet()) { + for (final sug in result.feedback.suggestions!.toSet()) { suggestionsAndTips += "$sug\n"; } suggestionsAndTips += result.feedback.warning!; @@ -492,7 +498,9 @@ class _EditAutoBackupViewState extends ConsumerState { // hack fix to format back string returned from zxcvbn if (feedback.contains("phrasesNo need")) { feedback = feedback.replaceFirst( - "phrasesNo need", "phrases\nNo need"); + "phrasesNo need", + "phrases\nNo need", + ); } if (feedback.endsWith("\n")) { @@ -580,7 +588,8 @@ class _EditAutoBackupViewState extends ConsumerState { ), GestureDetector( key: const Key( - "createBackupPasswordFieldShowPasswordButtonKey"), + "createBackupPasswordFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; @@ -735,9 +744,13 @@ class _EditAutoBackupViewState extends ConsumerState { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - Format.prettyFrequencyType(ref.watch( + Format.prettyFrequencyType( + ref.watch( prefsChangeNotifierProvider.select( - (value) => value.backupFrequencyType))), + (value) => value.backupFrequencyType, + ), + ), + ), style: STextStyles.itemSubtitle12(context), ), Padding( @@ -755,7 +768,7 @@ class _EditAutoBackupViewState extends ConsumerState { ), ), ), - ) + ), ], ), if (!isDesktop) const Spacer(), @@ -799,7 +812,7 @@ class _EditAutoBackupViewState extends ConsumerState { "Save", style: STextStyles.button(context), ), - ) + ), ], ), ); diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart index 3bbb3cd5e..881319202 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_encrypted_string_view.dart @@ -12,10 +12,9 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:tuple/tuple.dart'; + import '../../../../notifications/show_flush_bar.dart'; -import '../../../home_view/home_view.dart'; -import 'helpers/restore_create_backup.dart'; -import 'sub_views/stack_restore_progress_view.dart'; import '../../../../route_generator.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; @@ -25,13 +24,15 @@ import '../../../../widgets/background.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/loading_indicator.dart'; import '../../../../widgets/stack_text_field.dart'; -import 'package:tuple/tuple.dart'; +import '../../../home_view/home_view.dart'; +import 'helpers/restore_create_backup.dart'; +import 'sub_views/stack_restore_progress_view.dart'; class RestoreFromEncryptedStringView extends ConsumerStatefulWidget { const RestoreFromEncryptedStringView({ - Key? key, + super.key, required this.encrypted, - }) : super(key: key); + }); static const String routeName = "/restoreFromEncryptedString"; @@ -131,7 +132,8 @@ class _RestoreFromEncryptedStringViewState ), GestureDetector( key: const Key( - "restoreFromFilePasswordFieldShowPasswordButtonKey"), + "restoreFromFilePasswordFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; @@ -181,7 +183,8 @@ class _RestoreFromEncryptedStringViewState if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } bool shouldPop = false; @@ -205,8 +208,8 @@ class _RestoreFromEncryptedStringViewState "Decrypting Stack backup file", style: STextStyles.pageTitleH2( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension< StackColors>()! diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart index d7a659ac2..0f9cc5b39 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/restore_from_file_view.dart @@ -40,7 +40,7 @@ import 'helpers/swb_file_system.dart'; import 'sub_views/stack_restore_progress_view.dart'; class RestoreFromFileView extends ConsumerStatefulWidget { - const RestoreFromFileView({Key? key}) : super(key: key); + const RestoreFromFileView({super.key}); static const String routeName = "/restoreFromFile"; @@ -85,113 +85,190 @@ class _RestoreFromFileViewState extends ConsumerState { final isDesktop = Util.isDesktop; return ConditionalParent( - condition: !isDesktop, - builder: (child) { - return Background( - child: Scaffold( - backgroundColor: - Theme.of(context).extension()!.background, - appBar: AppBar( - leading: AppBarBackButton( - onPressed: () async { - if (FocusScope.of(context).hasFocus) { - FocusScope.of(context).unfocus(); - await Future.delayed( - const Duration(milliseconds: 75)); - } - if (mounted) { - Navigator.of(context).pop(); - } - }, - ), - title: Text( - "Restore from file", - style: STextStyles.navBarTitle(context), - ), - ), - body: Padding( - padding: const EdgeInsets.all(16), - child: LayoutBuilder( - builder: (context, constraints) { - return SingleChildScrollView( - child: ConstrainedBox( - constraints: BoxConstraints( - minHeight: constraints.maxHeight, - ), - child: IntrinsicHeight( - child: child, - ), - ), + condition: !isDesktop, + builder: (child) { + return Background( + child: Scaffold( + backgroundColor: + Theme.of(context).extension()!.background, + appBar: AppBar( + leading: AppBarBackButton( + onPressed: () async { + if (FocusScope.of(context).hasFocus) { + FocusScope.of(context).unfocus(); + await Future.delayed( + const Duration(milliseconds: 75), ); - }, - ), - ), - ), - ); - }, - child: ConditionalParent( - condition: isDesktop, - builder: (child) { - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 10.0), - child: Text( - "Choose file location", - style: STextStyles.desktopTextExtraExtraSmall(context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark3), - textAlign: TextAlign.left, - ), - ), - child, - ], - ); - }, - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - TextField( - autocorrect: Util.isDesktop ? false : true, - enableSuggestions: Util.isDesktop ? false : true, - onTap: () async { - try { - await stackFileSystem.prepareStorage(); - if (mounted) { - await stackFileSystem.openFile(context); - } - - if (mounted) { - setState(() { - fileLocationController.text = - stackFileSystem.filePath ?? ""; - }); - } - } catch (e, s) { - Logging.instance.log("$e\n$s", level: LogLevel.Error); + } + if (mounted) { + Navigator.of(context).pop(); } }, - controller: fileLocationController, + ), + title: Text( + "Restore from file", + style: STextStyles.navBarTitle(context), + ), + ), + body: Padding( + padding: const EdgeInsets.all(16), + child: LayoutBuilder( + builder: (context, constraints) { + return SingleChildScrollView( + child: ConstrainedBox( + constraints: BoxConstraints( + minHeight: constraints.maxHeight, + ), + child: IntrinsicHeight( + child: child, + ), + ), + ); + }, + ), + ), + ), + ); + }, + child: ConditionalParent( + condition: isDesktop, + builder: (child) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 10.0), + child: Text( + "Choose file location", + style: + STextStyles.desktopTextExtraExtraSmall(context).copyWith( + color: + Theme.of(context).extension()!.textDark3, + ), + textAlign: TextAlign.left, + ), + ), + child, + ], + ); + }, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + TextField( + autocorrect: Util.isDesktop ? false : true, + enableSuggestions: Util.isDesktop ? false : true, + onTap: () async { + try { + await stackFileSystem.prepareStorage(); + if (mounted) { + await stackFileSystem.openFile(context); + } + + if (mounted) { + setState(() { + fileLocationController.text = + stackFileSystem.filePath ?? ""; + }); + } + } catch (e, s) { + Logging.instance.log("$e\n$s", level: LogLevel.Error); + } + }, + controller: fileLocationController, + style: STextStyles.field(context), + decoration: InputDecoration( + hintText: "Choose file...", + hintStyle: STextStyles.fieldLabel(context), + suffixIcon: UnconstrainedBox( + child: Row( + children: [ + const SizedBox( + width: 16, + ), + SvgPicture.asset( + Assets.svg.folder, + color: Theme.of(context) + .extension()! + .textDark3, + width: 16, + height: 16, + ), + const SizedBox( + width: 12, + ), + ], + ), + ), + ), + key: const Key("restoreFromFileLocationTextFieldKey"), + readOnly: true, + toolbarOptions: const ToolbarOptions( + copy: true, + cut: false, + paste: false, + selectAll: false, + ), + onChanged: (newValue) {}, + ), + SizedBox( + height: !isDesktop ? 8 : 24, + ), + if (isDesktop) + Padding( + padding: const EdgeInsets.only(bottom: 10.0), + child: Text( + "Enter passphrase", + style: + STextStyles.desktopTextExtraExtraSmall(context).copyWith( + color: + Theme.of(context).extension()!.textDark3, + ), + textAlign: TextAlign.left, + ), + ), + ClipRRect( + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), + child: TextField( + key: const Key("restoreFromFilePasswordFieldKey"), + focusNode: passwordFocusNode, + controller: passwordController, style: STextStyles.field(context), - decoration: InputDecoration( - hintText: "Choose file...", - hintStyle: STextStyles.fieldLabel(context), + obscureText: hidePassword, + enableSuggestions: false, + autocorrect: false, + decoration: standardInputDecoration( + "Enter passphrase", + passwordFocusNode, + context, + ).copyWith( + labelStyle: + isDesktop ? STextStyles.fieldLabel(context) : null, suffixIcon: UnconstrainedBox( child: Row( children: [ const SizedBox( width: 16, ), - SvgPicture.asset( - Assets.svg.folder, - color: Theme.of(context) - .extension()! - .textDark3, - width: 16, - height: 16, + GestureDetector( + key: const Key( + "restoreFromFilePasswordFieldShowPasswordButtonKey", + ), + onTap: () async { + setState(() { + hidePassword = !hidePassword; + }); + }, + child: SvgPicture.asset( + hidePassword ? Assets.svg.eye : Assets.svg.eyeSlash, + color: Theme.of(context) + .extension()! + .textDark3, + width: 16, + height: 16, + ), ), const SizedBox( width: 12, @@ -200,396 +277,319 @@ class _RestoreFromFileViewState extends ConsumerState { ), ), ), - key: const Key("restoreFromFileLocationTextFieldKey"), - readOnly: true, - toolbarOptions: const ToolbarOptions( - copy: true, - cut: false, - paste: false, - selectAll: false, - ), - onChanged: (newValue) {}, + onChanged: (newValue) { + setState(() {}); + }, ), - SizedBox( - height: !isDesktop ? 8 : 24, - ), - if (isDesktop) - Padding( - padding: const EdgeInsets.only(bottom: 10.0), - child: Text( - "Enter passphrase", - style: STextStyles.desktopTextExtraExtraSmall(context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark3), - textAlign: TextAlign.left, - ), - ), - ClipRRect( - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius, - ), - child: TextField( - key: const Key("restoreFromFilePasswordFieldKey"), - focusNode: passwordFocusNode, - controller: passwordController, - style: STextStyles.field(context), - obscureText: hidePassword, - enableSuggestions: false, - autocorrect: false, - decoration: standardInputDecoration( - "Enter passphrase", - passwordFocusNode, - context, - ).copyWith( - labelStyle: - isDesktop ? STextStyles.fieldLabel(context) : null, - suffixIcon: UnconstrainedBox( - child: Row( - children: [ - const SizedBox( - width: 16, - ), - GestureDetector( - key: const Key( - "restoreFromFilePasswordFieldShowPasswordButtonKey"), - onTap: () async { - setState(() { - hidePassword = !hidePassword; - }); - }, - child: SvgPicture.asset( - hidePassword - ? Assets.svg.eye - : Assets.svg.eyeSlash, - color: Theme.of(context) - .extension()! - .textDark3, - width: 16, - height: 16, - ), - ), - const SizedBox( - width: 12, - ), - ], - ), - ), - ), - onChanged: (newValue) { - setState(() {}); - }, - ), - ), - const SizedBox( - height: 16, - ), - if (!isDesktop) const Spacer(), - !isDesktop - ? TextButton( - style: passwordController.text.isEmpty || - fileLocationController.text.isEmpty - ? Theme.of(context) - .extension()! - .getPrimaryDisabledButtonStyle(context) - : Theme.of(context) - .extension()! - .getPrimaryEnabledButtonStyle(context), - onPressed: passwordController.text.isEmpty || - fileLocationController.text.isEmpty - ? null - : () async { - final String fileToRestore = - fileLocationController.text; - final String passphrase = passwordController.text; + ), + const SizedBox( + height: 16, + ), + if (!isDesktop) const Spacer(), + !isDesktop + ? TextButton( + style: passwordController.text.isEmpty || + fileLocationController.text.isEmpty + ? Theme.of(context) + .extension()! + .getPrimaryDisabledButtonStyle(context) + : Theme.of(context) + .extension()! + .getPrimaryEnabledButtonStyle(context), + onPressed: passwordController.text.isEmpty || + fileLocationController.text.isEmpty + ? null + : () async { + final String fileToRestore = + fileLocationController.text; + final String passphrase = passwordController.text; - if (FocusScope.of(context).hasFocus) { - FocusScope.of(context).unfocus(); - await Future.delayed( - const Duration(milliseconds: 75)); - } + if (FocusScope.of(context).hasFocus) { + FocusScope.of(context).unfocus(); + await Future.delayed( + const Duration(milliseconds: 75), + ); + } - if (!(await File(fileToRestore).exists())) { + if (!(await File(fileToRestore).exists())) { + await showFloatingFlushBar( + type: FlushBarType.warning, + message: "Backup file does not exist", + context: context, + ); + return; + } + + bool shouldPop = false; + unawaited( + showDialog( + barrierDismissible: false, + context: context, + builder: (_) => WillPopScope( + onWillPop: () async { + return shouldPop; + }, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.stretch, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Material( + color: Colors.transparent, + child: Center( + child: Text( + "Decrypting Stack backup file", + style: STextStyles.pageTitleH2( + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textWhite, + ), + ), + ), + ), + const SizedBox( + height: 64, + ), + const Center( + child: LoadingIndicator( + width: 100, + ), + ), + ], + ), + ), + ), + ); + + final String? jsonString = await compute( + SWB.decryptStackWalletWithPassphrase, + Tuple2(fileToRestore, passphrase), + debugLabel: "stack wallet decryption compute", + ); + + if (mounted) { + // pop LoadingIndicator + shouldPop = true; + Navigator.of(context).pop(); + + passwordController.text = ""; + + if (jsonString == null) { await showFloatingFlushBar( type: FlushBarType.warning, - message: "Backup file does not exist", + message: "Failed to decrypt backup file", context: context, ); return; } - bool shouldPop = false; - unawaited( - showDialog( - barrierDismissible: false, - context: context, - builder: (_) => WillPopScope( - onWillPop: () async { - return shouldPop; - }, - child: Column( - crossAxisAlignment: - CrossAxisAlignment.stretch, - mainAxisAlignment: - MainAxisAlignment.center, - children: [ - Material( - color: Colors.transparent, - child: Center( - child: Text( - "Decrypting Stack backup file", - style: STextStyles.pageTitleH2( - context) - .copyWith( - color: Theme.of(context) - .extension()! - .textWhite, - ), - ), - ), - ), - const SizedBox( - height: 64, - ), - const Center( - child: LoadingIndicator( - width: 100, - ), - ), - ], - ), + await Navigator.of(context).push( + RouteGenerator.getRoute( + builder: (_) => StackRestoreProgressView( + jsonString: jsonString, + shouldPushToHome: true, ), ), ); + } + }, + child: Text( + "Restore", + style: STextStyles.button(context), + ), + ) + : Row( + children: [ + PrimaryButton( + width: 183, + buttonHeight: ButtonHeight.m, + label: "Restore", + enabled: !(passwordController.text.isEmpty || + fileLocationController.text.isEmpty), + onPressed: passwordController.text.isEmpty || + fileLocationController.text.isEmpty + ? null + : () async { + final String fileToRestore = + fileLocationController.text; + final String passphrase = + passwordController.text; - final String? jsonString = await compute( - SWB.decryptStackWalletWithPassphrase, - Tuple2(fileToRestore, passphrase), - debugLabel: "stack wallet decryption compute", - ); + if (FocusScope.of(context).hasFocus) { + FocusScope.of(context).unfocus(); + await Future.delayed( + const Duration(milliseconds: 75), + ); + } - if (mounted) { - // pop LoadingIndicator - shouldPop = true; - Navigator.of(context).pop(); - - passwordController.text = ""; - - if (jsonString == null) { + if (!(await File(fileToRestore).exists())) { await showFloatingFlushBar( type: FlushBarType.warning, - message: "Failed to decrypt backup file", + message: "Backup file does not exist", context: context, ); return; } - await Navigator.of(context).push( - RouteGenerator.getRoute( - builder: (_) => StackRestoreProgressView( - jsonString: jsonString, - shouldPushToHome: true, + bool shouldPop = false; + unawaited( + showDialog( + barrierDismissible: false, + context: context, + builder: (_) => WillPopScope( + onWillPop: () async { + return shouldPop; + }, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.stretch, + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + Material( + color: Colors.transparent, + child: Center( + child: Text( + "Decrypting Stack backup file", + style: STextStyles.pageTitleH2( + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textWhite, + ), + ), + ), + ), + const SizedBox( + height: 64, + ), + const Center( + child: LoadingIndicator( + width: 100, + ), + ), + ], + ), ), ), ); - } - }, - child: Text( - "Restore", - style: STextStyles.button(context), - ), - ) - : Row( - children: [ - PrimaryButton( - width: 183, - buttonHeight: ButtonHeight.m, - label: "Restore", - enabled: !(passwordController.text.isEmpty || - fileLocationController.text.isEmpty), - onPressed: passwordController.text.isEmpty || - fileLocationController.text.isEmpty - ? null - : () async { - final String fileToRestore = - fileLocationController.text; - final String passphrase = - passwordController.text; - if (FocusScope.of(context).hasFocus) { - FocusScope.of(context).unfocus(); - await Future.delayed( - const Duration(milliseconds: 75)); - } + final String? jsonString = await compute( + SWB.decryptStackWalletWithPassphrase, + Tuple2(fileToRestore, passphrase), + debugLabel: "stack wallet decryption compute", + ); - if (!(await File(fileToRestore).exists())) { + if (mounted) { + // pop LoadingIndicator + shouldPop = true; + Navigator.of( + context, + rootNavigator: true, + ).pop(); + + passwordController.text = ""; + + if (jsonString == null) { await showFloatingFlushBar( type: FlushBarType.warning, - message: "Backup file does not exist", + message: "Failed to decrypt backup file", context: context, ); return; } - bool shouldPop = false; - unawaited( - showDialog( - barrierDismissible: false, - context: context, - builder: (_) => WillPopScope( - onWillPop: () async { - return shouldPop; - }, - child: Column( - crossAxisAlignment: - CrossAxisAlignment.stretch, - mainAxisAlignment: - MainAxisAlignment.center, - children: [ - Material( - color: Colors.transparent, - child: Center( - child: Text( - "Decrypting Stack backup file", - style: - STextStyles.pageTitleH2( - context) - .copyWith( - color: Theme.of(context) - .extension< - StackColors>()! - .textWhite, - ), + await showDialog( + context: context, + useSafeArea: false, + barrierDismissible: false, + builder: (context) { + return DesktopDialog( + maxHeight: 750, + maxWidth: 600, + child: LayoutBuilder( + builder: (context, constraints) { + return SingleChildScrollView( + child: ConstrainedBox( + constraints: BoxConstraints( + minHeight: + constraints.maxHeight, ), - ), - ), - const SizedBox( - height: 64, - ), - const Center( - child: LoadingIndicator( - width: 100, - ), - ), - ], - ), - ), - ), - ); - - final String? jsonString = await compute( - SWB.decryptStackWalletWithPassphrase, - Tuple2(fileToRestore, passphrase), - debugLabel: - "stack wallet decryption compute", - ); - - if (mounted) { - // pop LoadingIndicator - shouldPop = true; - Navigator.of( - context, - rootNavigator: true, - ).pop(); - - passwordController.text = ""; - - if (jsonString == null) { - await showFloatingFlushBar( - type: FlushBarType.warning, - message: - "Failed to decrypt backup file", - context: context, - ); - return; - } - - await showDialog( - context: context, - useSafeArea: false, - barrierDismissible: false, - builder: (context) { - return DesktopDialog( - maxHeight: 750, - maxWidth: 600, - child: LayoutBuilder( - builder: (context, constraints) { - return SingleChildScrollView( - child: ConstrainedBox( - constraints: BoxConstraints( - minHeight: - constraints.maxHeight, - ), - child: IntrinsicHeight( - child: Column( + child: IntrinsicHeight( + child: Column( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + Row( mainAxisAlignment: MainAxisAlignment - .start, + .spaceBetween, children: [ - Row( - mainAxisAlignment: - MainAxisAlignment - .spaceBetween, - children: [ - Padding( - padding: - const EdgeInsets - .all( - 32), - child: Text( - "Restore ${AppConfig.appName}", - style: STextStyles - .desktopH3( - context), - textAlign: - TextAlign - .center, - ), - ), - const DesktopDialogCloseButton(), - ], - ), Padding( padding: const EdgeInsets - .symmetric( - horizontal: - 32), - child: - StackRestoreProgressView( - jsonString: - jsonString, + .all( + 32, + ), + child: Text( + "Restore ${AppConfig.appName}", + style: STextStyles + .desktopH3( + context, + ), + textAlign: + TextAlign + .center, ), ), - const SizedBox( - height: 32, - ), + const DesktopDialogCloseButton(), ], ), - ), + Padding( + padding: + const EdgeInsets + .symmetric( + horizontal: 32, + ), + child: + StackRestoreProgressView( + jsonString: + jsonString, + ), + ), + const SizedBox( + height: 32, + ), + ], ), - ); - }, - ), - ); - }); - } - }, - ), - const SizedBox( - width: 16, - ), - SecondaryButton( - width: 183, - buttonHeight: ButtonHeight.m, - label: "Cancel", - onPressed: () {}, - ), - ], - ), - ], - ), - )); + ), + ), + ); + }, + ), + ); + }, + ); + } + }, + ), + const SizedBox( + width: 16, + ), + SecondaryButton( + width: 183, + buttonHeight: ButtonHeight.m, + label: "Cancel", + onPressed: () {}, + ), + ], + ), + ], + ), + ), + ); } } diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/stack_backup_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/stack_backup_view.dart index 2db8cbc9d..ac90e486a 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/stack_backup_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/stack_backup_view.dart @@ -23,8 +23,8 @@ import '../../../../widgets/rounded_white_container.dart'; class StackBackupView extends StatelessWidget { const StackBackupView({ - Key? key, - }) : super(key: key); + super.key, + }); static const String routeName = "/stackBackup"; diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/backup_frequency_type_select_sheet.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/backup_frequency_type_select_sheet.dart index 01203c0ae..d61c93c62 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/backup_frequency_type_select_sheet.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/backup_frequency_type_select_sheet.dart @@ -10,6 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../../../providers/global/prefs_provider.dart'; import '../../../../../themes/stack_colors.dart'; import '../../../../../utilities/constants.dart'; @@ -18,8 +19,8 @@ import '../../../../../utilities/text_styles.dart'; class BackupFrequencyTypeSelectSheet extends ConsumerWidget { const BackupFrequencyTypeSelectSheet({ - Key? key, - }) : super(key: key); + super.key, + }); String prettyFrequencyType(BackupFrequencyType type) { switch (type) { @@ -117,9 +118,10 @@ class BackupFrequencyTypeSelectSheet extends ConsumerWidget { .radioButtonIconEnabled, value: BackupFrequencyType.values[i], groupValue: ref.watch( - prefsChangeNotifierProvider.select( - (value) => - value.backupFrequencyType)), + prefsChangeNotifierProvider.select( + (value) => value.backupFrequencyType, + ), + ), onChanged: (x) { ref .read(prefsChangeNotifierProvider) @@ -137,7 +139,8 @@ class BackupFrequencyTypeSelectSheet extends ConsumerWidget { children: [ Text( prettyFrequencyType( - BackupFrequencyType.values[i]), + BackupFrequencyType.values[i], + ), style: STextStyles.titleBold12(context), textAlign: TextAlign.left, ), diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/recovery_phrase_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/recovery_phrase_view.dart index af533c9c4..dd1478b4a 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/recovery_phrase_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/recovery_phrase_view.dart @@ -21,11 +21,11 @@ import '../../../../../widgets/custom_buttons/app_bar_icon_button.dart'; class RecoverPhraseView extends StatelessWidget { const RecoverPhraseView({ - Key? key, + super.key, required this.walletName, required this.mnemonic, this.clipboardInterface = const ClipboardWrapper(), - }) : super(key: key); + }); static const String routeName = "/recoverPhrase"; diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart index bc8d9a329..b160eb2e1 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_views/stack_restore_progress_view.dart @@ -44,11 +44,11 @@ import '../sub_widgets/restoring_wallet_card.dart'; class StackRestoreProgressView extends ConsumerStatefulWidget { const StackRestoreProgressView({ - Key? key, + super.key, required this.jsonString, this.fromFile = false, this.shouldPushToHome = false, - }) : super(key: key); + }); final String jsonString; final bool fromFile; @@ -65,41 +65,43 @@ class _StackRestoreProgressViewState Future _cancel() async { bool shouldPop = false; - unawaited(showDialog( - barrierDismissible: false, - context: context, - builder: (_) => WillPopScope( - onWillPop: () async { - return shouldPop; - }, - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Material( - color: Colors.transparent, - child: Center( - child: Text( - "Cancelling restore. Please wait.", - style: STextStyles.pageTitleH2(context).copyWith( - color: - Theme.of(context).extension()!.textWhite, + unawaited( + showDialog( + barrierDismissible: false, + context: context, + builder: (_) => WillPopScope( + onWillPop: () async { + return shouldPop; + }, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Material( + color: Colors.transparent, + child: Center( + child: Text( + "Cancelling restore. Please wait.", + style: STextStyles.pageTitleH2(context).copyWith( + color: + Theme.of(context).extension()!.textWhite, + ), ), ), ), - ), - const SizedBox( - height: 64, - ), - const Center( - child: LoadingIndicator( - width: 100, + const SizedBox( + height: 64, ), - ), - ], + const Center( + child: LoadingIndicator( + width: 100, + ), + ), + ], + ), ), ), - )); + ); await SWB.cancelRestore(); shouldPop = true; @@ -108,9 +110,13 @@ class _StackRestoreProgressViewState if (mounted) { !isDesktop - ? Navigator.of(context).popUntil(ModalRoute.withName(widget.fromFile - ? RestoreFromEncryptedStringView.routeName - : StackBackupView.routeName)) + ? Navigator.of(context).popUntil( + ModalRoute.withName( + widget.fromFile + ? RestoreFromEncryptedStringView.routeName + : StackBackupView.routeName, + ), + ) : Navigator.of(context).popUntil((_) => count++ >= 2); } } @@ -219,9 +225,10 @@ class _StackRestoreProgressViewState void _addWalletsToHomeView() { ref.read(pWallets).loadAfterStackRestore( - ref.read(prefsChangeNotifierProvider), - ref.read(stackRestoringUIStateProvider).wallets, - Util.isDesktop); + ref.read(prefsChangeNotifierProvider), + ref.read(stackRestoringUIStateProvider).wallets, + Util.isDesktop, + ); } @override @@ -234,7 +241,7 @@ class _StackRestoreProgressViewState @override Widget build(BuildContext context) { - bool isDesktop = Util.isDesktop; + final bool isDesktop = Util.isDesktop; return ConditionalParent( condition: !isDesktop, @@ -250,7 +257,8 @@ class _StackRestoreProgressViewState if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } if (_success) { _addWalletsToHomeView(); @@ -300,8 +308,10 @@ class _StackRestoreProgressViewState ), Consumer( builder: (_, ref, __) { - final state = ref.watch(stackRestoringUIStateProvider - .select((value) => value.preferences)); + final state = ref.watch( + stackRestoringUIStateProvider + .select((value) => value.preferences), + ); return !isDesktop ? RestoringItemCard( left: SizedBox( @@ -387,8 +397,10 @@ class _StackRestoreProgressViewState ), Consumer( builder: (_, ref, __) { - final state = ref.watch(stackRestoringUIStateProvider - .select((value) => value.addressBook)); + final state = ref.watch( + stackRestoringUIStateProvider + .select((value) => value.addressBook), + ); return !isDesktop ? RestoringItemCard( left: SizedBox( @@ -472,8 +484,10 @@ class _StackRestoreProgressViewState ), Consumer( builder: (_, ref, __) { - final state = ref.watch(stackRestoringUIStateProvider - .select((value) => value.nodes)); + final state = ref.watch( + stackRestoringUIStateProvider + .select((value) => value.nodes), + ); return !isDesktop ? RestoringItemCard( left: SizedBox( @@ -550,7 +564,8 @@ class _StackRestoreProgressViewState style: STextStyles.errorSmall(context), ) : null, - )); + ), + ); }, ), const SizedBox( @@ -558,8 +573,10 @@ class _StackRestoreProgressViewState ), Consumer( builder: (_, ref, __) { - final state = ref.watch(stackRestoringUIStateProvider - .select((value) => value.trades)); + final state = ref.watch( + stackRestoringUIStateProvider + .select((value) => value.trades), + ); return !isDesktop ? RestoringItemCard( left: SizedBox( @@ -651,8 +668,10 @@ class _StackRestoreProgressViewState height: 8, ), ...ref - .watch(stackRestoringUIStateProvider - .select((value) => value.walletStateProviders)) + .watch( + stackRestoringUIStateProvider + .select((value) => value.walletStateProviders), + ) .values .map( (provider) => Padding( @@ -708,12 +727,13 @@ class _StackRestoreProgressViewState enabled: true, label: "Done", onPressed: () async { - DesktopMenuItemId keyID = + final DesktopMenuItemId keyID = DesktopMenuItemId.myStack; ref - .read(currentDesktopMenuItemProvider - .state) + .read( + currentDesktopMenuItemProvider.state, + ) .state = keyID; if (widget.shouldPushToHome) { @@ -728,7 +748,8 @@ class _StackRestoreProgressViewState Navigator.of(context, rootNavigator: true) .popUntil( ModalRoute.withName( - DesktopHomeView.routeName), + DesktopHomeView.routeName, + ), ); } }, diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart index 6e00445ff..0d4f66c70 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart @@ -15,7 +15,7 @@ import '../../../../../widgets/rounded_white_container.dart'; class RestoringItemCard extends StatelessWidget { const RestoringItemCard({ - Key? key, + super.key, required this.left, required this.right, required this.title, @@ -23,7 +23,7 @@ class RestoringItemCard extends StatelessWidget { this.leftSize = 32.0, this.button, this.onRightTapped, - }) : super(key: key); + }); final Widget left; final Widget right; diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_wallet_card.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_wallet_card.dart index 29bebd5f1..f38104ccd 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_wallet_card.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_wallet_card.dart @@ -13,9 +13,8 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../../../models/wallet_restore_state.dart'; -import '../sub_views/recovery_phrase_view.dart'; -import 'restoring_item_card.dart'; import '../../../../../providers/stack_restore/stack_restoring_ui_state_provider.dart'; import '../../../../../route_generator.dart'; import '../../../../../themes/coin_icon_provider.dart'; @@ -27,12 +26,14 @@ import '../../../../../utilities/text_styles.dart'; import '../../../../../utilities/util.dart'; import '../../../../../widgets/loading_indicator.dart'; import '../../../../../widgets/rounded_container.dart'; +import '../sub_views/recovery_phrase_view.dart'; +import 'restoring_item_card.dart'; class RestoringWalletCard extends ConsumerStatefulWidget { const RestoringWalletCard({ - Key? key, + super.key, required this.provider, - }) : super(key: key); + }); final ChangeNotifierProvider provider; @@ -106,8 +107,9 @@ class _RestoringWalletCardState extends ConsumerState { final wallet = ref.read(provider).wallet!; ref.read(stackRestoringUIStateProvider).update( - walletId: wallet.walletId, - restoringStatus: StackRestoringStatus.restoring); + walletId: wallet.walletId, + restoringStatus: StackRestoringStatus.restoring, + ); try { await wallet.recover(isRescan: true); @@ -191,9 +193,10 @@ class _RestoringWalletCardState extends ConsumerState { child: Text( "Show recovery phrase", style: STextStyles.infoSmall(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ), @@ -229,8 +232,9 @@ class _RestoringWalletCardState extends ConsumerState { final wallet = ref.read(provider).wallet!; ref.read(stackRestoringUIStateProvider).update( - walletId: wallet.walletId, - restoringStatus: StackRestoringStatus.restoring); + walletId: wallet.walletId, + restoringStatus: StackRestoringStatus.restoring, + ); try { // final mnemonicList = await manager.mnemonic; @@ -339,9 +343,10 @@ class _RestoringWalletCardState extends ConsumerState { child: Text( "Show recovery phrase", style: STextStyles.infoSmall(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ), diff --git a/lib/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart b/lib/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart index dad06ecb1..3970ff9c8 100644 --- a/lib/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart +++ b/lib/pages/settings_views/global_settings_view/startup_preferences/startup_preferences_view.dart @@ -13,8 +13,8 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../../../app_config.dart'; -import 'startup_wallet_selection_view.dart'; import '../../../../providers/providers.dart'; import '../../../../themes/coin_icon_provider.dart'; import '../../../../themes/stack_colors.dart'; @@ -24,9 +24,10 @@ import '../../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../../widgets/background.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/rounded_white_container.dart'; +import 'startup_wallet_selection_view.dart'; class StartupPreferencesView extends ConsumerStatefulWidget { - const StartupPreferencesView({Key? key}) : super(key: key); + const StartupPreferencesView({super.key}); static const String routeName = "/startupPreferences"; @@ -130,15 +131,19 @@ class _StartupPreferencesViewState value: false, groupValue: ref.watch( prefsChangeNotifierProvider - .select((value) => value - .gotoWalletOnStartup), + .select( + (value) => + value.gotoWalletOnStartup, + ), ), onChanged: (value) { if (value is bool) { ref - .read( - prefsChangeNotifierProvider) - .gotoWalletOnStartup = value; + .read( + prefsChangeNotifierProvider, + ) + .gotoWalletOnStartup = + value; } }, ), @@ -155,14 +160,16 @@ class _StartupPreferencesViewState "Home screen", style: STextStyles.titleBold12( - context), + context, + ), textAlign: TextAlign.left, ), Text( "${AppConfig.appName} home screen", style: STextStyles.itemSubtitle( - context), + context, + ), textAlign: TextAlign.left, ), ], @@ -208,15 +215,19 @@ class _StartupPreferencesViewState value: true, groupValue: ref.watch( prefsChangeNotifierProvider - .select((value) => value - .gotoWalletOnStartup), + .select( + (value) => + value.gotoWalletOnStartup, + ), ), onChanged: (value) { if (value is bool) { ref - .read( - prefsChangeNotifierProvider) - .gotoWalletOnStartup = value; + .read( + prefsChangeNotifierProvider, + ) + .gotoWalletOnStartup = + value; } }, ), @@ -233,15 +244,17 @@ class _StartupPreferencesViewState "Specific wallet", style: STextStyles.titleBold12( - context), + context, + ), textAlign: TextAlign.left, ), (safe && ref.watch( prefsChangeNotifierProvider - .select((value) => - value - .startupWalletId), + .select( + (value) => value + .startupWalletId, + ), ) != null) ? Padding( @@ -257,8 +270,11 @@ class _StartupPreferencesViewState ref.watch( pWalletCoin( ref.watch( - prefsChangeNotifierProvider.select((value) => - value.startupWalletId!), + prefsChangeNotifierProvider + .select( + (value) => + value.startupWalletId!, + ), ), ), ), @@ -273,15 +289,19 @@ class _StartupPreferencesViewState ref.watch( pWalletName( ref.watch( - prefsChangeNotifierProvider.select( - (value) => - value.startupWalletId!), + prefsChangeNotifierProvider + .select( + (value) => + value + .startupWalletId!, + ), ), ), ), style: STextStyles .itemSubtitle( - context), + context, + ), ), ], ), @@ -290,7 +310,8 @@ class _StartupPreferencesViewState "Select a specific wallet to load into on startup", style: STextStyles .itemSubtitle( - context), + context, + ), textAlign: TextAlign.left, ), @@ -303,13 +324,19 @@ class _StartupPreferencesViewState ), ), ), - if (!ref.watch(prefsChangeNotifierProvider.select( - (value) => value.gotoWalletOnStartup))) + if (!ref.watch( + prefsChangeNotifierProvider.select( + (value) => value.gotoWalletOnStartup, + ), + )) const SizedBox( height: 12, ), - if (ref.watch(prefsChangeNotifierProvider.select( - (value) => value.gotoWalletOnStartup))) + if (ref.watch( + prefsChangeNotifierProvider.select( + (value) => value.gotoWalletOnStartup, + ), + )) Container( color: Colors.transparent, child: Padding( @@ -341,8 +368,9 @@ class _StartupPreferencesViewState ), onPressed: () { Navigator.of(context).pushNamed( - StartupWalletSelectionView - .routeName); + StartupWalletSelectionView + .routeName, + ); }, child: Column( crossAxisAlignment: @@ -351,7 +379,8 @@ class _StartupPreferencesViewState Text( "Select wallet...", style: STextStyles.link2( - context), + context, + ), textAlign: TextAlign.left, ), ], diff --git a/lib/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart b/lib/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart index 0be056535..7c073c5ce 100644 --- a/lib/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart +++ b/lib/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart @@ -26,7 +26,7 @@ import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; import '../../../../widgets/rounded_white_container.dart'; class StartupWalletSelectionView extends ConsumerStatefulWidget { - const StartupWalletSelectionView({Key? key}) : super(key: key); + const StartupWalletSelectionView({super.key}); static const String routeName = "/startupWalletSelection"; @override diff --git a/lib/pages/settings_views/global_settings_view/support_view.dart b/lib/pages/settings_views/global_settings_view/support_view.dart index 8c3d14f32..8c348d99a 100644 --- a/lib/pages/settings_views/global_settings_view/support_view.dart +++ b/lib/pages/settings_views/global_settings_view/support_view.dart @@ -24,8 +24,8 @@ import 'package:url_launcher/url_launcher.dart'; class SupportView extends StatelessWidget { const SupportView({ - Key? key, - }) : super(key: key); + super.key, + }); static const String routeName = "/support"; @@ -131,13 +131,13 @@ class SupportView extends StatelessWidget { class AboutItem extends StatelessWidget { const AboutItem({ - Key? key, + super.key, required this.linkUrl, required this.label, required this.buttonText, required this.iconAsset, required this.isDesktop, - }) : super(key: key); + }); final String linkUrl; final String label; @@ -218,7 +218,7 @@ class AboutItem extends StatelessWidget { Text( buttonText, style: STextStyles.desktopTextExtraExtraSmall(context), - ) + ), // BlueTextButton( // text: buttonText, // onTap: () { diff --git a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart index d20e9dcbc..b036f89f8 100644 --- a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart +++ b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart @@ -10,7 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'wallet_syncing_options_view.dart'; + import '../../../../providers/providers.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/constants.dart'; @@ -23,9 +23,10 @@ import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/desktop/desktop_dialog.dart'; import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../../widgets/rounded_white_container.dart'; +import 'wallet_syncing_options_view.dart'; class SyncingOptionsView extends ConsumerWidget { - const SyncingOptionsView({Key? key}) : super(key: key); + const SyncingOptionsView({super.key}); static const String routeName = "/syncingOptions"; @@ -314,14 +315,18 @@ class SyncingOptionsView extends ConsumerWidget { ), ), ), - if (ref.watch(prefsChangeNotifierProvider - .select((value) => value.syncType)) != + if (ref.watch( + prefsChangeNotifierProvider + .select((value) => value.syncType), + ) != SyncingType.selectedWalletsAtStartup) const SizedBox( height: 12, ), - if (ref.watch(prefsChangeNotifierProvider - .select((value) => value.syncType)) == + if (ref.watch( + prefsChangeNotifierProvider + .select((value) => value.syncType), + ) == SyncingType.selectedWalletsAtStartup) Container( color: Colors.transparent, @@ -351,7 +356,8 @@ class SyncingOptionsView extends ConsumerWidget { onPressed: () { !isDesktop ? Navigator.of(context).pushNamed( - WalletSyncingOptionsView.routeName) + WalletSyncingOptionsView.routeName, + ) : showDialog( context: context, useSafeArea: false, @@ -370,7 +376,8 @@ class SyncingOptionsView extends ConsumerWidget { Padding( padding: const EdgeInsets.all( - 32), + 32, + ), child: Text( "Select wallets to sync", style: STextStyles @@ -389,7 +396,8 @@ class SyncingOptionsView extends ConsumerWidget { ], ), ); - }); + }, + ); }, child: Column( crossAxisAlignment: CrossAxisAlignment.start, diff --git a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_preferences_view.dart b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_preferences_view.dart index 58a768a70..988d951f1 100644 --- a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_preferences_view.dart +++ b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_preferences_view.dart @@ -10,7 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'syncing_options_view.dart'; + import '../../../../providers/providers.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/constants.dart'; @@ -20,9 +20,10 @@ import '../../../../widgets/background.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; import '../../../../widgets/rounded_white_container.dart'; +import 'syncing_options_view.dart'; class SyncingPreferencesView extends ConsumerWidget { - const SyncingPreferencesView({Key? key}) : super(key: key); + const SyncingPreferencesView({super.key}); static const String routeName = "/syncingPreferences"; @@ -96,13 +97,17 @@ class SyncingPreferencesView extends ConsumerWidget { textAlign: TextAlign.left, ), Text( - _currentTypeDescription(ref.watch( + _currentTypeDescription( + ref.watch( prefsChangeNotifierProvider.select( - (value) => value.syncType))), + (value) => value.syncType, + ), + ), + ), style: STextStyles.itemSubtitle(context), textAlign: TextAlign.left, - ) + ), ], ), const Spacer(), @@ -145,12 +150,14 @@ class SyncingPreferencesView extends ConsumerWidget { child: DraggableSwitchButton( isOn: ref.watch( prefsChangeNotifierProvider.select( - (value) => value.wifiOnly), + (value) => value.wifiOnly, + ), ), onValueChanged: (newValue) { ref .read( - prefsChangeNotifierProvider) + prefsChangeNotifierProvider, + ) .wifiOnly = newValue; }, ), diff --git a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart index 9b22c13ae..f974226b6 100644 --- a/lib/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart +++ b/lib/pages/settings_views/global_settings_view/syncing_preferences_views/wallet_syncing_options_view.dart @@ -13,6 +13,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../../providers/providers.dart'; import '../../../../themes/coin_icon_provider.dart'; import '../../../../themes/stack_colors.dart'; @@ -29,7 +30,7 @@ import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; import '../../../../widgets/rounded_white_container.dart'; class WalletSyncingOptionsView extends ConsumerWidget { - const WalletSyncingOptionsView({Key? key}) : super(key: key); + const WalletSyncingOptionsView({super.key}); static const String routeName = "/walletSyncingOptions"; @@ -78,160 +79,175 @@ class WalletSyncingOptionsView extends ConsumerWidget { child: child, ); }, - child: LayoutBuilder(builder: (context, constraints) { - return SingleChildScrollView( - child: ConstrainedBox( - constraints: BoxConstraints( - minHeight: constraints.maxHeight - 24, - ), - child: IntrinsicHeight( - child: Padding( - padding: const EdgeInsets.all(4), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - const SizedBox( - height: 4, - ), - Text( - "Choose the wallets to sync automatically at startup", - style: STextStyles.smallMed12(context), - ), - const SizedBox( - height: 12, - ), - RoundedWhiteContainer( - padding: const EdgeInsets.all(0), - borderColor: !isDesktop - ? Colors.transparent - : Theme.of(context) - .extension()! - .background, - child: Column( - children: [ - ...walletInfos.map( - (info) => Padding( - padding: const EdgeInsets.all(12), - child: Row( - key: Key( - "syncingPrefsSelectedWalletIdGroupKey_${info.walletId}"), - children: [ - Container( - decoration: BoxDecoration( - color: ref - .watch(pCoinColor(info.coin)) - .withOpacity(0.5), - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4), - child: SvgPicture.file( - File( - ref.watch( - coinIconProvider(info.coin), - ), + child: LayoutBuilder( + builder: (context, constraints) { + return SingleChildScrollView( + child: ConstrainedBox( + constraints: BoxConstraints( + minHeight: constraints.maxHeight - 24, + ), + child: IntrinsicHeight( + child: Padding( + padding: const EdgeInsets.all(4), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox( + height: 4, + ), + Text( + "Choose the wallets to sync automatically at startup", + style: STextStyles.smallMed12(context), + ), + const SizedBox( + height: 12, + ), + RoundedWhiteContainer( + padding: const EdgeInsets.all(0), + borderColor: !isDesktop + ? Colors.transparent + : Theme.of(context) + .extension()! + .background, + child: Column( + children: [ + ...walletInfos.map( + (info) => Padding( + padding: const EdgeInsets.all(12), + child: Row( + key: Key( + "syncingPrefsSelectedWalletIdGroupKey_${info.walletId}", + ), + children: [ + Container( + decoration: BoxDecoration( + color: ref + .watch(pCoinColor(info.coin)) + .withOpacity(0.5), + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4), + child: SvgPicture.file( + File( + ref.watch( + coinIconProvider(info.coin), + ), + ), + width: 20, + height: 20, ), - width: 20, - height: 20, ), ), - ), - const SizedBox( - width: 12, - ), - Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - info.name, - style: - STextStyles.titleBold12(context), - ), - const SizedBox( - height: 2, - ), - Text( - ref + const SizedBox( + width: 12, + ), + Column( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + info.name, + style: STextStyles.titleBold12( + context), + ), + const SizedBox( + height: 2, + ), + Text( + ref + .watch( + pAmountFormatter(info.coin), + ) + .format( + ref + .watch( + pWalletBalance( + info.walletId, + ), + ) + .total, + ), + style: STextStyles.itemSubtitle( + context), + ), + ], + ), + const Spacer(), + SizedBox( + height: 20, + width: 40, + child: DraggableSwitchButton( + isOn: ref .watch( - pAmountFormatter(info.coin)) - .format(ref - .watch(pWalletBalance( - info.walletId)) - .total), - style: - STextStyles.itemSubtitle(context), - ) - ], - ), - const Spacer(), - SizedBox( - height: 20, - width: 40, - child: DraggableSwitchButton( - isOn: ref - .watch(prefsChangeNotifierProvider - .select((value) => value - .walletIdsSyncOnStartup)) - .contains(info.walletId), - onValueChanged: (value) { - // final syncType = ref - // .read(prefsChangeNotifierProvider) - // .syncType; - final ids = ref - .read(prefsChangeNotifierProvider) - .walletIdsSyncOnStartup - .toList(); - if (value) { - ids.add(info.walletId); - } else { - ids.remove(info.walletId); - } + prefsChangeNotifierProvider + .select( + (value) => value + .walletIdsSyncOnStartup, + ), + ) + .contains(info.walletId), + onValueChanged: (value) { + // final syncType = ref + // .read(prefsChangeNotifierProvider) + // .syncType; + final ids = ref + .read( + prefsChangeNotifierProvider) + .walletIdsSyncOnStartup + .toList(); + if (value) { + ids.add(info.walletId); + } else { + ids.remove(info.walletId); + } - // final wallet = ref - // .read(pWallets) - // .getWallet(info.walletId); - // - // switch (syncType) { - // case SyncingType.currentWalletOnly: - // if (info.walletId == - // ref.read( - // currentWalletIdProvider)) { - // wallet.shouldAutoSync = value; - // } - // break; - // case SyncingType - // .selectedWalletsAtStartup: - // case SyncingType - // .allWalletsOnStartup: - // wallet.shouldAutoSync = value; - // break; - // } + // final wallet = ref + // .read(pWallets) + // .getWallet(info.walletId); + // + // switch (syncType) { + // case SyncingType.currentWalletOnly: + // if (info.walletId == + // ref.read( + // currentWalletIdProvider)) { + // wallet.shouldAutoSync = value; + // } + // break; + // case SyncingType + // .selectedWalletsAtStartup: + // case SyncingType + // .allWalletsOnStartup: + // wallet.shouldAutoSync = value; + // break; + // } - ref - .read(prefsChangeNotifierProvider) - .walletIdsSyncOnStartup = ids; - }, + ref + .read( + prefsChangeNotifierProvider) + .walletIdsSyncOnStartup = ids; + }, + ), ), - ), - ], + ], + ), ), ), - ), - ], + ], + ), ), - ), - ], + ], + ), ), ), ), - ), - ); - }), + ); + }, + ), ), ); } diff --git a/lib/pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart b/lib/pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart index 0d6acf41d..425a7accc 100644 --- a/lib/pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart +++ b/lib/pages/settings_views/global_settings_view/tor_settings/tor_settings_view.dart @@ -14,6 +14,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:lottie/lottie.dart'; + import '../../../../providers/global/prefs_provider.dart'; import '../../../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; import '../../../../services/tor_service.dart'; @@ -34,8 +35,8 @@ import '../../../../widgets/tor_subscription.dart'; class TorSettingsView extends ConsumerStatefulWidget { const TorSettingsView({ - Key? key, - }) : super(key: key); + super.key, + }); static const String routeName = "/torSettings"; @@ -563,24 +564,25 @@ class _UpperCaseTorTextState extends ConsumerState { @override Widget build(BuildContext context) { return TorSubscription( - onTorStatusChanged: (status) { - setState(() { - _status = status; - }); - }, - child: Text( - _label( + onTorStatusChanged: (status) { + setState(() { + _status = status; + }); + }, + child: Text( + _label( + _status, + ), + style: STextStyles.pageTitleH2( + context, + ).copyWith( + color: _color( _status, + Theme.of(context).extension()!, ), - style: STextStyles.pageTitleH2( - context, - ).copyWith( - color: _color( - _status, - Theme.of(context).extension()!, - ), - ), - )); + ), + ), + ); } } diff --git a/lib/pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart b/lib/pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart index a9bea43be..3404b395e 100644 --- a/lib/pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart @@ -10,10 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../../frost_route_generator.dart'; -import '../../sub_widgets/settings_list_button.dart'; -import 'frost_participants_view.dart'; -import 'initiate_resharing/initiate_resharing_view.dart'; import '../../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; import '../../../../providers/db/main_db_provider.dart'; import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; @@ -31,6 +29,9 @@ import '../../../../widgets/desktop/desktop_app_bar.dart'; import '../../../../widgets/desktop/desktop_scaffold.dart'; import '../../../../widgets/frost_scaffold.dart'; import '../../../../widgets/rounded_white_container.dart'; +import '../../sub_widgets/settings_list_button.dart'; +import 'frost_participants_view.dart'; +import 'initiate_resharing/initiate_resharing_view.dart'; class FrostMSWalletOptionsView extends ConsumerWidget { const FrostMSWalletOptionsView({ @@ -64,20 +65,21 @@ class FrostMSWalletOptionsView extends ConsumerWidget { condition: !Util.isDesktop, builder: (child) => Background( child: Scaffold( - backgroundColor: - Theme.of(context).extension()!.background, - appBar: AppBar( - leading: AppBarBackButton( - onPressed: () { - Navigator.of(context).pop(); - }, - ), - title: Text( - "FROST Multisig options", - style: STextStyles.navBarTitle(context), - ), + backgroundColor: + Theme.of(context).extension()!.background, + appBar: AppBar( + leading: AppBarBackButton( + onPressed: () { + Navigator.of(context).pop(); + }, ), - body: child), + title: Text( + "FROST Multisig options", + style: STextStyles.navBarTitle(context), + ), + ), + body: child, + ), ), child: Padding( padding: const EdgeInsets.only( diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart index 102de03f1..e2b861db1 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart @@ -15,10 +15,9 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; + import '../../../../app_config.dart'; import '../../../../notifications/show_flush_bar.dart'; -import '../../../add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; -import '../../../wallet_view/transaction_views/transaction_details_view.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/address_utils.dart'; import '../../../../utilities/assets.dart'; @@ -33,6 +32,8 @@ import '../../../../widgets/custom_buttons/simple_copy_button.dart'; import '../../../../widgets/detail_item.dart'; import '../../../../widgets/rounded_white_container.dart'; import '../../../../widgets/stack_dialog.dart'; +import '../../../add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; class WalletBackupView extends ConsumerWidget { const WalletBackupView({ @@ -94,12 +95,14 @@ class WalletBackupView extends ConsumerWidget { onPressed: () async { await clipboardInterface .setData(ClipboardData(text: mnemonic.join(" "))); - unawaited(showFloatingFlushBar( - type: FlushBarType.info, - message: "Copied to clipboard", - iconAsset: Assets.svg.copy, - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.info, + message: "Copied to clipboard", + iconAsset: Assets.svg.copy, + context: context, + ), + ); }, ), ), @@ -256,7 +259,8 @@ class WalletBackupView extends ConsumerWidget { color: Theme.of(context).extension()!.popupBG, borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius), + Constants.size.circularBorderRadius, + ), ), child: Padding( padding: const EdgeInsets.all(12), @@ -285,7 +289,8 @@ class WalletBackupView extends ConsumerWidget { .extension()! .getPrimaryEnabledButtonStyle(context), onPressed: () { - String data = AddressUtils.encodeQRSeedData(mnemonic); + final String data = + AddressUtils.encodeQRSeedData(mnemonic); showDialog( context: context, @@ -313,14 +318,15 @@ class WalletBackupView extends ConsumerWidget { width: width + 20, height: width + 20, child: QrImageView( - data: data, - size: width, - backgroundColor: Theme.of(context) - .extension()! - .popupBG, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark), + data: data, + size: width, + backgroundColor: Theme.of(context) + .extension()! + .popupBG, + foregroundColor: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ), @@ -338,14 +344,16 @@ class WalletBackupView extends ConsumerWidget { style: Theme.of(context) .extension()! .getSecondaryEnabledButtonStyle( - context), + context, + ), child: Text( "Cancel", style: STextStyles.button(context) .copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), ), diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/confirm_full_rescan.dart b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/confirm_full_rescan.dart index f5281435b..530233ec4 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/confirm_full_rescan.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/confirm_full_rescan.dart @@ -19,8 +19,7 @@ import '../../../../../widgets/desktop/secondary_button.dart'; import '../../../../../widgets/stack_dialog.dart'; class ConfirmFullRescanDialog extends StatelessWidget { - const ConfirmFullRescanDialog({Key? key, required this.onConfirm}) - : super(key: key); + const ConfirmFullRescanDialog({super.key, required this.onConfirm}); final VoidCallback onConfirm; @@ -87,10 +86,10 @@ class ConfirmFullRescanDialog extends StatelessWidget { ), ), ], - ) + ), ], ), - ) + ), ], ), ); diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/rescanning_dialog.dart b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/rescanning_dialog.dart index f243b977f..647eb2e33 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/rescanning_dialog.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/sub_widgets/rescanning_dialog.dart @@ -17,9 +17,9 @@ import '../../../../../widgets/stack_dialog.dart'; class RescanningDialog extends StatefulWidget { const RescanningDialog({ - Key? key, + super.key, // required this.onCancel, - }) : super(key: key); + }); // final VoidCallback onCancel; diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart index ff80ff3c4..da50b6208 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart @@ -216,7 +216,7 @@ class _WalletNetworkSettingsViewState } String _percentString(double value) { - double realPercent = (value * 10000).ceil().clamp(0, 10000) / 100.0; + final double realPercent = (value * 10000).ceil().clamp(0, 10000) / 100.0; if (realPercent > 99.99 && _currentSyncStatus == WalletSyncStatus.syncing) { return "99.99%"; } diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart index a0cb79f9d..1af5c6e6b 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart @@ -13,9 +13,33 @@ import 'dart:async'; import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:tuple/tuple.dart'; + import '../../../db/hive/db.dart'; import '../../../models/epicbox_config_model.dart'; import '../../../notifications/show_flush_bar.dart'; +import '../../../providers/global/wallets_provider.dart'; +import '../../../providers/ui/transaction_filter_provider.dart'; +import '../../../route_generator.dart'; +import '../../../services/event_bus/events/global/node_connection_status_changed_event.dart'; +import '../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import '../../../services/event_bus/global_event_bus.dart'; +import '../../../themes/stack_colors.dart'; +import '../../../utilities/assets.dart'; +import '../../../utilities/show_loading.dart'; +import '../../../utilities/text_styles.dart'; +import '../../../utilities/util.dart'; +import '../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../wallets/crypto_currency/intermediate/frost_currency.dart'; +import '../../../wallets/crypto_currency/intermediate/nano_currency.dart'; +import '../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; +import '../../../wallets/wallet/impl/epiccash_wallet.dart'; +import '../../../wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; +import '../../../widgets/background.dart'; +import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/rounded_white_container.dart'; +import '../../../widgets/stack_dialog.dart'; import '../../address_book_views/address_book_view.dart'; import '../../home_view/home_view.dart'; import '../../pinpad_views/lock_screen_view.dart'; @@ -28,30 +52,6 @@ import 'wallet_network_settings_view/wallet_network_settings_view.dart'; import 'wallet_settings_wallet_settings/change_representative_view.dart'; import 'wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart'; import 'wallet_settings_wallet_settings/xpub_view.dart'; -import '../../../providers/global/wallets_provider.dart'; -import '../../../providers/ui/transaction_filter_provider.dart'; -import '../../../route_generator.dart'; -import '../../../services/event_bus/events/global/node_connection_status_changed_event.dart'; -import '../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; -import '../../../services/event_bus/global_event_bus.dart'; -import '../../../themes/stack_colors.dart'; -import '../../../utilities/assets.dart'; -import '../../../utilities/show_loading.dart'; -import '../../../utilities/text_styles.dart'; -import '../../../utilities/util.dart'; -import '../../../wallets/crypto_currency/coins/firo.dart'; -import '../../../wallets/crypto_currency/crypto_currency.dart'; -import '../../../wallets/crypto_currency/intermediate/frost_currency.dart'; -import '../../../wallets/crypto_currency/intermediate/nano_currency.dart'; -import '../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; -import '../../../wallets/wallet/impl/epiccash_wallet.dart'; -import '../../../wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.dart'; -import '../../../widgets/background.dart'; -import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; -import '../../../widgets/desktop/secondary_button.dart'; -import '../../../widgets/rounded_white_container.dart'; -import '../../../widgets/stack_dialog.dart'; -import 'package:tuple/tuple.dart'; /// [eventBus] should only be set during testing class WalletSettingsView extends ConsumerStatefulWidget { @@ -325,8 +325,9 @@ class _WalletSettingsViewState extends ConsumerState { "View recovery phrase", ), settings: const RouteSettings( - name: - "/viewRecoverPhraseLockscreen"), + name: + "/viewRecoverPhraseLockscreen", + ), ), ); } @@ -357,7 +358,8 @@ class _WalletSettingsViewState extends ConsumerState { title: "Syncing preferences", onPressed: () { Navigator.of(context).pushNamed( - SyncingPreferencesView.routeName); + SyncingPreferencesView.routeName, + ); }, ), if (xPubEnabled) @@ -494,9 +496,10 @@ class _WalletSettingsViewState extends ConsumerState { child: Text( "Log out", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ); }, @@ -517,9 +520,9 @@ class _WalletSettingsViewState extends ConsumerState { class EpicBoxInfoForm extends ConsumerStatefulWidget { const EpicBoxInfoForm({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -603,9 +606,9 @@ class _EpiBoxInfoFormState extends ConsumerState { child: Text( "Save", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: + Theme.of(context).extension()!.accentColorDark, + ), ), ), ], diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart index 23a8c6cd8..cfca56bf2 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart @@ -14,6 +14,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../../notifications/show_flush_bar.dart'; import '../../../../providers/global/wallets_provider.dart'; import '../../../../themes/stack_colors.dart'; @@ -38,10 +39,10 @@ import '../../../../widgets/textfield_icon_button.dart'; class ChangeRepresentativeView extends ConsumerStatefulWidget { const ChangeRepresentativeView({ - Key? key, + super.key, required this.walletId, this.clipboardInterface = const ClipboardWrapper(), - }) : super(key: key); + }); final String walletId; final ClipboardInterface clipboardInterface; @@ -80,21 +81,22 @@ class _ChangeRepresentativeViewState final changeFuture = wallet.changeRepresentative; final result = await showLoading( - whileFuture: changeFuture(_textController.text), - context: context, - message: "Updating representative...", - rootNavigator: Util.isDesktop, - onException: (ex) { - String msg = ex.toString(); - while (msg.isNotEmpty && msg.startsWith("Exception:")) { - msg = msg.substring(10).trim(); - } - showFloatingFlushBar( - type: FlushBarType.warning, - message: msg, - context: context, - ); - }); + whileFuture: changeFuture(_textController.text), + context: context, + message: "Updating representative...", + rootNavigator: Util.isDesktop, + onException: (ex) { + String msg = ex.toString(); + while (msg.isNotEmpty && msg.startsWith("Exception:")) { + msg = msg.substring(10).trim(); + } + showFloatingFlushBar( + type: FlushBarType.warning, + message: msg, + context: context, + ); + }, + ); if (mounted) { if (result != null && result) { @@ -129,12 +131,14 @@ class _ChangeRepresentativeViewState await _clipboardInterface .setData(ClipboardData(text: representative ?? "")); if (mounted) { - unawaited(showFloatingFlushBar( - type: FlushBarType.info, - message: "Copied to clipboard", - iconAsset: Assets.svg.copy, - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.info, + message: "Copied to clipboard", + iconAsset: Assets.svg.copy, + context: context, + ), + ); } } @@ -284,7 +288,8 @@ class _ChangeRepresentativeViewState Text( "Current representative", style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), ), const SizedBox( height: 4, @@ -300,8 +305,8 @@ class _ChangeRepresentativeViewState representative!, style: isDesktop ? STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart index d03cfe534..b33c44c9c 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart @@ -10,7 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'delete_wallet_recovery_phrase_view.dart'; + import '../../../../providers/providers.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/text_styles.dart'; @@ -19,6 +19,7 @@ import '../../../../wallets/wallet/wallet_mixin_interfaces/mnemonic_interface.da import '../../../../widgets/background.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/rounded_container.dart'; +import 'delete_wallet_recovery_phrase_view.dart'; class DeleteWalletWarningView extends ConsumerWidget { const DeleteWalletWarningView({ @@ -87,9 +88,10 @@ class DeleteWalletWarningView extends ConsumerWidget { child: Text( "Cancel", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), const SizedBox( diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart index a0fb54eed..319cc067f 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart @@ -27,9 +27,9 @@ import '../../../../widgets/textfield_icon_button.dart'; class RenameWalletView extends ConsumerStatefulWidget { const RenameWalletView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/renameWallet"; diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart index 90e79b216..a3c3a2969 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart @@ -25,9 +25,9 @@ import '../../../../widgets/stack_dialog.dart'; class WalletSettingsWalletSettingsView extends ConsumerWidget { const WalletSettingsWalletSettingsView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/walletSettingsWalletSettings"; diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart index c07e6b162..ad245d321 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart @@ -15,6 +15,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:qr_flutter/qr_flutter.dart'; + import '../../../../notifications/show_flush_bar.dart'; import '../../../../providers/global/wallets_provider.dart'; import '../../../../themes/stack_colors.dart'; @@ -35,10 +36,10 @@ import '../../../../widgets/rounded_white_container.dart'; class XPubView extends ConsumerStatefulWidget { const XPubView({ - Key? key, + super.key, required this.walletId, this.clipboardInterface = const ClipboardWrapper(), - }) : super(key: key); + }); final String walletId; final ClipboardInterface clipboardInterface; @@ -73,12 +74,14 @@ class _XPubViewState extends ConsumerState { Future _copy() async { await _clipboardInterface.setData(ClipboardData(text: xpub!)); if (mounted) { - unawaited(showFloatingFlushBar( - type: FlushBarType.info, - message: "Copied to clipboard", - iconAsset: Assets.svg.copy, - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.info, + message: "Copied to clipboard", + iconAsset: Assets.svg.copy, + context: context, + ), + ); } } @@ -230,11 +233,11 @@ class _XPubViewState extends ConsumerState { class _XPub extends StatelessWidget { const _XPub({ - Key? key, + super.key, required this.xpub, required this.height, this.clipboardInterface = const ClipboardWrapper(), - }) : super(key: key); + }); final String xpub; final double height; diff --git a/lib/pages/special/firo_rescan_recovery_error_dialog.dart b/lib/pages/special/firo_rescan_recovery_error_dialog.dart index fa6b3ff1d..3a80b0b85 100644 --- a/lib/pages/special/firo_rescan_recovery_error_dialog.dart +++ b/lib/pages/special/firo_rescan_recovery_error_dialog.dart @@ -1,9 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import '../pinpad_views/lock_screen_view.dart'; -import '../settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart'; -import '../settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart'; + import '../../pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart'; import '../../pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart'; import '../../providers/global/wallets_provider.dart'; @@ -23,6 +21,9 @@ import '../../widgets/desktop/desktop_scaffold.dart'; import '../../widgets/desktop/primary_button.dart'; import '../../widgets/desktop/secondary_button.dart'; import '../../widgets/stack_dialog.dart'; +import '../pinpad_views/lock_screen_view.dart'; +import '../settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart'; +import '../settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart'; enum FiroRescanRecoveryErrorViewOption { retry, @@ -149,9 +150,10 @@ class _FiroRescanRecoveryErrorViewState child: Text( "Cancel", style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark), + color: Theme.of(context) + .extension()! + .accentColorDark, + ), ), ), rightButton: TextButton( @@ -179,7 +181,8 @@ class _FiroRescanRecoveryErrorViewState "Delete wallet", ), settings: const RouteSettings( - name: "/deleteWalletLockscreen"), + name: "/deleteWalletLockscreen", + ), ), ); }, @@ -249,7 +252,7 @@ class _FiroRescanRecoveryErrorViewState name: UnlockWalletKeysDesktop.routeName, arguments: widget.walletId, ), - ) + ), ]; }, ), @@ -281,7 +284,8 @@ class _FiroRescanRecoveryErrorViewState "View recovery phrase", ), settings: const RouteSettings( - name: "/viewRecoverPhraseLockscreen"), + name: "/viewRecoverPhraseLockscreen", + ), ), ); } diff --git a/lib/pages/stack_privacy_calls.dart b/lib/pages/stack_privacy_calls.dart index ad95b3903..52b5323c6 100644 --- a/lib/pages/stack_privacy_calls.dart +++ b/lib/pages/stack_privacy_calls.dart @@ -14,8 +14,8 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../db/hive/db.dart'; -import 'pinpad_views/create_pin_view.dart'; import '../pages_desktop_specific/password/create_password_view.dart'; import '../providers/global/prefs_provider.dart'; import '../providers/global/price_provider.dart'; @@ -32,12 +32,13 @@ import '../widgets/desktop/desktop_app_bar.dart'; import '../widgets/desktop/desktop_scaffold.dart'; import '../widgets/desktop/primary_button.dart'; import '../widgets/rounded_white_container.dart'; +import 'pinpad_views/create_pin_view.dart'; class StackPrivacyCalls extends ConsumerStatefulWidget { const StackPrivacyCalls({ - Key? key, + super.key, required this.isSettings, - }) : super(key: key); + }); final bool isSettings; @@ -154,7 +155,8 @@ class _StackPrivacyCalls extends ConsumerState { text: TextSpan( style: isDesktop ? STextStyles.desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.label(context).copyWith( fontSize: 12.0, ), @@ -162,18 +164,21 @@ class _StackPrivacyCalls extends ConsumerState { ? [ if (Constants.enableExchange) const TextSpan( - text: - "Exchange data preloaded for a seamless experience.\n\n"), - const TextSpan( text: - "CoinGecko enabled: (24 hour price change shown in-app, total wallet value shown in USD or other currency).\n\n"), + "Exchange data preloaded for a seamless experience.\n\n", + ), + const TextSpan( + text: + "CoinGecko enabled: (24 hour price change shown in-app, total wallet value shown in USD or other currency).\n\n", + ), TextSpan( text: "Recommended for most crypto users.", style: isDesktop ? STextStyles .desktopTextExtraExtraSmall600( - context) + context, + ) : TextStyle( color: Theme.of(context) .extension()! @@ -185,18 +190,21 @@ class _StackPrivacyCalls extends ConsumerState { : [ if (Constants.enableExchange) const TextSpan( - text: - "Exchange data not preloaded (slower experience).\n\n"), - const TextSpan( text: - "CoinGecko disabled (price changes not shown, no wallet value shown in other currencies).\n\n"), + "Exchange data not preloaded (slower experience).\n\n", + ), + const TextSpan( + text: + "CoinGecko disabled (price changes not shown, no wallet value shown in other currencies).\n\n", + ), TextSpan( text: "Recommended for the privacy conscious.", style: isDesktop ? STextStyles .desktopTextExtraExtraSmall600( - context) + context, + ) : TextStyle( color: Theme.of(context) .extension()! @@ -239,9 +247,10 @@ class _StackPrivacyCalls extends ConsumerState { DB.instance .put( - boxName: DB.boxNamePrefs, - key: "externalCalls", - value: isEasy) + boxName: DB.boxNamePrefs, + key: "externalCalls", + value: isEasy, + ) .then((_) { if (isEasy) { unawaited( @@ -290,10 +299,10 @@ class _StackPrivacyCalls extends ConsumerState { class PrivacyToggle extends ConsumerStatefulWidget { const PrivacyToggle({ - Key? key, + super.key, required this.externalCallsEnabled, this.onChanged, - }) : super(key: key); + }); final bool externalCallsEnabled; final void Function(bool)? onChanged; diff --git a/lib/pages/token_view/my_tokens_view.dart b/lib/pages/token_view/my_tokens_view.dart index a8b39c9d2..eef37ced9 100644 --- a/lib/pages/token_view/my_tokens_view.dart +++ b/lib/pages/token_view/my_tokens_view.dart @@ -30,9 +30,9 @@ import '../../widgets/textfield_icon_button.dart'; class MyTokensView extends ConsumerStatefulWidget { const MyTokensView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/myTokens"; final String walletId; diff --git a/lib/pages/token_view/sub_widgets/my_token_select_item.dart b/lib/pages/token_view/sub_widgets/my_token_select_item.dart index 8d8ef8711..4f1eec6d1 100644 --- a/lib/pages/token_view/sub_widgets/my_token_select_item.dart +++ b/lib/pages/token_view/sub_widgets/my_token_select_item.dart @@ -12,8 +12,8 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../models/isar/models/ethereum/eth_contract.dart'; -import '../token_view.dart'; import '../../../pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart'; import '../../../providers/db/main_db_provider.dart'; import '../../../providers/providers.dart'; @@ -24,7 +24,6 @@ import '../../../utilities/constants.dart'; import '../../../utilities/show_loading.dart'; import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; -import '../../../wallets/crypto_currency/coins/ethereum.dart'; import '../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; import '../../../wallets/isar/providers/eth/token_balance_provider.dart'; @@ -36,13 +35,14 @@ import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/dialogs/basic_dialog.dart'; import '../../../widgets/icon_widgets/eth_token_icon.dart'; import '../../../widgets/rounded_white_container.dart'; +import '../token_view.dart'; class MyTokenSelectItem extends ConsumerStatefulWidget { const MyTokenSelectItem({ - Key? key, + super.key, required this.walletId, required this.token, - }) : super(key: key); + }); final String walletId; final EthContract token; @@ -124,7 +124,9 @@ class _MyTokenSelectItemState extends ConsumerState { if (mounted) { final address = ref.read(pWalletReceivingAddress(widget.walletId)); await cachedBalance.fetchAndUpdateCachedBalance( - address, ref.read(mainDBProvider)); + address, + ref.read(mainDBProvider), + ); if (mounted) { setState(() {}); } @@ -180,16 +182,22 @@ class _MyTokenSelectItemState extends ConsumerState { const Spacer(), Text( ref - .watch(pAmountFormatter( - Ethereum(CryptoCurrencyNetwork.main))) + .watch( + pAmountFormatter( + Ethereum(CryptoCurrencyNetwork.main), + ), + ) .format( ref - .watch(pTokenBalance( - ( - walletId: widget.walletId, - contractAddress: widget.token.address + .watch( + pTokenBalance( + ( + walletId: widget.walletId, + contractAddress: + widget.token.address + ), ), - )) + ) .total, ethContract: widget.token, ), @@ -213,7 +221,8 @@ class _MyTokenSelectItemState extends ConsumerState { widget.token.symbol, style: isDesktop ? STextStyles.desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle(context), ), const Spacer(), @@ -233,7 +242,8 @@ class _MyTokenSelectItemState extends ConsumerState { )}", style: isDesktop ? STextStyles.desktopTextExtraExtraSmall( - context) + context, + ) : STextStyles.itemSubtitle(context), ), ], diff --git a/lib/pages/token_view/sub_widgets/my_tokens_list.dart b/lib/pages/token_view/sub_widgets/my_tokens_list.dart index d6c26529d..f6ef70c38 100644 --- a/lib/pages/token_view/sub_widgets/my_tokens_list.dart +++ b/lib/pages/token_view/sub_widgets/my_tokens_list.dart @@ -11,18 +11,19 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; + import '../../../db/isar/main_db.dart'; import '../../../models/isar/models/ethereum/eth_contract.dart'; -import 'my_token_select_item.dart'; import '../../../utilities/util.dart'; +import 'my_token_select_item.dart'; class MyTokensList extends StatelessWidget { const MyTokensList({ - Key? key, + super.key, required this.walletId, required this.searchTerm, required this.tokenContracts, - }) : super(key: key); + }); final String walletId; final String searchTerm; @@ -39,7 +40,9 @@ class MyTokensList extends StatelessWidget { .getEthContracts() .filter() .anyOf( - tokenContracts, (q, e) => q.addressEqualTo(e)) + tokenContracts, + (q, e) => q.addressEqualTo(e), + ) .and() .group( (q) => q @@ -57,7 +60,9 @@ class MyTokensList extends StatelessWidget { .getEthContracts() .filter() .anyOf( - tokenContracts, (q, e) => q.addressEqualTo(e)) + tokenContracts, + (q, e) => q.addressEqualTo(e), + ) .findAllSync(); } diff --git a/lib/pages/token_view/sub_widgets/no_tokens_found.dart b/lib/pages/token_view/sub_widgets/no_tokens_found.dart index 5b7853c39..30e7b6bfb 100644 --- a/lib/pages/token_view/sub_widgets/no_tokens_found.dart +++ b/lib/pages/token_view/sub_widgets/no_tokens_found.dart @@ -13,7 +13,7 @@ import '../../../utilities/text_styles.dart'; import '../../../widgets/rounded_white_container.dart'; class NoTokensFound extends StatelessWidget { - const NoTokensFound({Key? key}) : super(key: key); + const NoTokensFound({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pages/token_view/sub_widgets/token_summary.dart b/lib/pages/token_view/sub_widgets/token_summary.dart index 30f72920d..d20662eb4 100644 --- a/lib/pages/token_view/sub_widgets/token_summary.dart +++ b/lib/pages/token_view/sub_widgets/token_summary.dart @@ -31,7 +31,6 @@ import '../../../utilities/amount/amount_formatter.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/constants.dart'; import '../../../utilities/text_styles.dart'; -import '../../../wallets/crypto_currency/coins/ethereum.dart'; import '../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; import '../../../wallets/isar/providers/eth/token_balance_provider.dart'; @@ -361,9 +360,9 @@ class TokenOptionsButton extends StatelessWidget { class CoinTickerTag extends ConsumerWidget { const CoinTickerTag({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; diff --git a/lib/pages/token_view/sub_widgets/token_transaction_list_widget.dart b/lib/pages/token_view/sub_widgets/token_transaction_list_widget.dart index 45f0921f8..657a5283a 100644 --- a/lib/pages/token_view/sub_widgets/token_transaction_list_widget.dart +++ b/lib/pages/token_view/sub_widgets/token_transaction_list_widget.dart @@ -26,9 +26,9 @@ import '../../../widgets/loading_indicator.dart'; class TokenTransactionsList extends ConsumerStatefulWidget { const TokenTransactionsList({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -81,7 +81,7 @@ class _TransactionsListState extends ConsumerState { IndexWhereClause.equalTo( indexName: 'walletId', value: [widget.walletId], - ) + ), ], filter: ref.read(pCurrentTokenWallet)!.transactionFilterOperation, sortBy: [ diff --git a/lib/pages/token_view/token_contract_details_view.dart b/lib/pages/token_view/token_contract_details_view.dart index 4553ca537..08e82e0ae 100644 --- a/lib/pages/token_view/token_contract_details_view.dart +++ b/lib/pages/token_view/token_contract_details_view.dart @@ -24,10 +24,10 @@ import '../../widgets/rounded_white_container.dart'; class TokenContractDetailsView extends ConsumerStatefulWidget { const TokenContractDetailsView({ - Key? key, + super.key, required this.contractAddress, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/tokenContractDetailsView"; @@ -154,11 +154,11 @@ class _TokenContractDetailsViewState class _Item extends StatelessWidget { const _Item({ - Key? key, + super.key, required this.title, required this.data, required this.button, - }) : super(key: key); + }); final String title; final String data; diff --git a/lib/pages/token_view/token_view.dart b/lib/pages/token_view/token_view.dart index c8cbd0e87..b6acc49c5 100644 --- a/lib/pages/token_view/token_view.dart +++ b/lib/pages/token_view/token_view.dart @@ -12,10 +12,8 @@ import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'sub_widgets/token_summary.dart'; -import 'sub_widgets/token_transaction_list_widget.dart'; -import 'token_contract_details_view.dart'; -import '../wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; +import 'package:tuple/tuple.dart'; + import '../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; @@ -26,16 +24,19 @@ import '../../widgets/background.dart'; import '../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../widgets/custom_buttons/blue_text_button.dart'; import '../../widgets/icon_widgets/eth_token_icon.dart'; -import 'package:tuple/tuple.dart'; +import '../wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; +import 'sub_widgets/token_summary.dart'; +import 'sub_widgets/token_transaction_list_widget.dart'; +import 'token_contract_details_view.dart'; /// [eventBus] should only be set during testing class TokenView extends ConsumerStatefulWidget { const TokenView({ - Key? key, + super.key, required this.walletId, this.popPrevious = false, this.eventBus, - }) : super(key: key); + }); static const String routeName = "/token"; @@ -112,8 +113,10 @@ class _TokenViewState extends ConsumerState { ), Flexible( child: Text( - ref.watch(pCurrentTokenWallet - .select((value) => value!.tokenContract.name)), + ref.watch( + pCurrentTokenWallet + .select((value) => value!.tokenContract.name), + ), style: STextStyles.navBarTitle(context), overflow: TextOverflow.ellipsis, textAlign: TextAlign.center, @@ -141,8 +144,10 @@ class _TokenViewState extends ConsumerState { Navigator.of(context).pushNamed( TokenContractDetailsView.routeName, arguments: Tuple2( - ref.watch(pCurrentTokenWallet - .select((value) => value!.tokenContract.address)), + ref.watch( + pCurrentTokenWallet.select( + (value) => value!.tokenContract.address), + ), widget.walletId, ), ); diff --git a/lib/pages/wallet_view/sub_widgets/no_transactions_found.dart b/lib/pages/wallet_view/sub_widgets/no_transactions_found.dart index fff5ebf16..8be6fc5ad 100644 --- a/lib/pages/wallet_view/sub_widgets/no_transactions_found.dart +++ b/lib/pages/wallet_view/sub_widgets/no_transactions_found.dart @@ -13,7 +13,7 @@ import '../../../utilities/text_styles.dart'; import '../../../widgets/rounded_white_container.dart'; class NoTransActionsFound extends StatelessWidget { - const NoTransActionsFound({Key? key}) : super(key: key); + const NoTransActionsFound({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pages/wallet_view/sub_widgets/transactions_list.dart b/lib/pages/wallet_view/sub_widgets/transactions_list.dart index db97ebcea..8e2fb5cb6 100644 --- a/lib/pages/wallet_view/sub_widgets/transactions_list.dart +++ b/lib/pages/wallet_view/sub_widgets/transactions_list.dart @@ -13,10 +13,9 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + import '../../../models/isar/models/isar_models.dart'; -import '../../exchange_view/trade_details_view.dart'; -import 'no_transactions_found.dart'; -import '../wallet_view.dart'; import '../../../providers/db/main_db_provider.dart'; import '../../../providers/global/trades_service_provider.dart'; import '../../../providers/global/wallets_provider.dart'; @@ -32,7 +31,9 @@ import '../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../widgets/loading_indicator.dart'; import '../../../widgets/trade_card.dart'; import '../../../widgets/transaction_card.dart'; -import 'package:tuple/tuple.dart'; +import '../../exchange_view/trade_details_view.dart'; +import '../wallet_view.dart'; +import 'no_transactions_found.dart'; class TransactionsList extends ConsumerStatefulWidget { const TransactionsList({ @@ -106,10 +107,12 @@ class _TransactionsListState extends ConsumerState { ), TradeCard( // this may mess with combined firo transactions - key: Key(tx.txid + - tx.type.name + - tx.address.value.toString() + - trade.uuid), // + key: Key( + tx.txid + + tx.type.name + + tx.address.value.toString() + + trade.uuid, + ), // trade: trade, onTap: () async { final walletName = ref.read(pWalletName(widget.walletId)); @@ -184,7 +187,7 @@ class _TransactionsListState extends ConsumerState { ); } }, - ) + ), ], ), ); diff --git a/lib/pages/wallet_view/sub_widgets/wallet_balance_toggle_sheet.dart b/lib/pages/wallet_view/sub_widgets/wallet_balance_toggle_sheet.dart index d94e183ec..c2fc747ad 100644 --- a/lib/pages/wallet_view/sub_widgets/wallet_balance_toggle_sheet.dart +++ b/lib/pages/wallet_view/sub_widgets/wallet_balance_toggle_sheet.dart @@ -19,7 +19,6 @@ import '../../../utilities/amount/amount_formatter.dart'; import '../../../utilities/constants.dart'; import '../../../utilities/enums/wallet_balance_toggle_state.dart'; import '../../../utilities/text_styles.dart'; -import '../../../wallets/crypto_currency/coins/firo.dart'; import '../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../wallets/isar/providers/wallet_info_provider.dart'; @@ -360,7 +359,7 @@ class BalanceSelector extends ConsumerWidget { .extension()! .textSubtitle1, ), - ) + ), ], ), ], diff --git a/lib/pages/wallet_view/sub_widgets/wallet_navigation_bar.dart b/lib/pages/wallet_view/sub_widgets/wallet_navigation_bar.dart index 05e39c079..a022be588 100644 --- a/lib/pages/wallet_view/sub_widgets/wallet_navigation_bar.dart +++ b/lib/pages/wallet_view/sub_widgets/wallet_navigation_bar.dart @@ -7,5 +7,3 @@ * Generated by Cypher Stack on 2023-05-26 * */ - - diff --git a/lib/pages/wallet_view/sub_widgets/wallet_refresh_button.dart b/lib/pages/wallet_view/sub_widgets/wallet_refresh_button.dart index b9f8c4ca1..6e98f4a3f 100644 --- a/lib/pages/wallet_view/sub_widgets/wallet_refresh_button.dart +++ b/lib/pages/wallet_view/sub_widgets/wallet_refresh_button.dart @@ -13,6 +13,7 @@ import 'dart:async'; import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../providers/global/wallets_provider.dart'; import '../../../services/event_bus/events/global/wallet_sync_status_changed_event.dart'; import '../../../services/event_bus/global_event_bus.dart'; @@ -25,14 +26,14 @@ import '../../../widgets/animated_widgets/rotating_arrows.dart'; /// [eventBus] should only be set during testing class WalletRefreshButton extends ConsumerStatefulWidget { const WalletRefreshButton({ - Key? key, + super.key, required this.walletId, required this.initialSyncStatus, this.tokenContractAddress, this.onPressed, this.eventBus, this.overrideIconColor, - }) : super(key: key); + }); final String walletId; final WalletSyncStatus initialSyncStatus; @@ -99,59 +100,57 @@ class _RefreshButtonState extends ConsumerState { final isDesktop = Util.isDesktop; return SizedBox( - height: isDesktop ? 22 : 36, - width: isDesktop ? 22 : 36, - child: Semantics( - label: "Refresh Button. Refreshes The Values In Summary.", - excludeSemantics: true, - child: MaterialButton( - color: isDesktop - ? Theme.of(context) - .extension()! - .buttonBackSecondary - : null, - splashColor: Theme.of(context).extension()!.highlight, - onPressed: () { - if (widget.tokenContractAddress == null) { - final wallet = ref.read(pWallets).getWallet(widget.walletId); - final isRefreshing = wallet.refreshMutex.isLocked; - if (!isRefreshing) { - _spinController.repeat?.call(); - wallet.refresh().then((_) => _spinController.stop?.call()); - } - } else { - if (!ref.read(pCurrentTokenWallet)!.refreshMutex.isLocked) { - ref.read(pCurrentTokenWallet)!.refresh(); - } + height: isDesktop ? 22 : 36, + width: isDesktop ? 22 : 36, + child: Semantics( + label: "Refresh Button. Refreshes The Values In Summary.", + excludeSemantics: true, + child: MaterialButton( + color: isDesktop + ? Theme.of(context).extension()!.buttonBackSecondary + : null, + splashColor: Theme.of(context).extension()!.highlight, + onPressed: () { + if (widget.tokenContractAddress == null) { + final wallet = ref.read(pWallets).getWallet(widget.walletId); + final isRefreshing = wallet.refreshMutex.isLocked; + if (!isRefreshing) { + _spinController.repeat?.call(); + wallet.refresh().then((_) => _spinController.stop?.call()); } - }, - elevation: 0, - highlightElevation: 0, - hoverElevation: 0, - padding: EdgeInsets.zero, - materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius, - ), - ), - child: RotatingArrows( - spinByDefault: - widget.initialSyncStatus == WalletSyncStatus.syncing, - width: isDesktop ? 12 : 24, - height: isDesktop ? 12 : 24, - controller: _spinController, - color: widget.overrideIconColor != null - ? widget.overrideIconColor! - : isDesktop - ? Theme.of(context) - .extension()! - .textFieldDefaultSearchIconRight - : Theme.of(context) - .extension()! - .textFavoriteCard, + } else { + if (!ref.read(pCurrentTokenWallet)!.refreshMutex.isLocked) { + ref.read(pCurrentTokenWallet)!.refresh(); + } + } + }, + elevation: 0, + highlightElevation: 0, + hoverElevation: 0, + padding: EdgeInsets.zero, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, ), ), - )); + child: RotatingArrows( + spinByDefault: widget.initialSyncStatus == WalletSyncStatus.syncing, + width: isDesktop ? 12 : 24, + height: isDesktop ? 12 : 24, + controller: _spinController, + color: widget.overrideIconColor != null + ? widget.overrideIconColor! + : isDesktop + ? Theme.of(context) + .extension()! + .textFieldDefaultSearchIconRight + : Theme.of(context) + .extension()! + .textFavoriteCard, + ), + ), + ), + ); } } diff --git a/lib/pages/wallet_view/transaction_views/all_transactions_view.dart b/lib/pages/wallet_view/transaction_views/all_transactions_view.dart index e946cf6d5..232e3ee2c 100644 --- a/lib/pages/wallet_view/transaction_views/all_transactions_view.dart +++ b/lib/pages/wallet_view/transaction_views/all_transactions_view.dart @@ -14,14 +14,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + import '../../../models/isar/models/blockchain_data/transaction.dart'; import '../../../models/isar/models/contact_entry.dart'; import '../../../models/isar/models/transaction_note.dart'; import '../../../models/transaction_filter.dart'; import '../../../notifications/show_flush_bar.dart'; -import '../sub_widgets/tx_icon.dart'; -import 'transaction_details_view.dart'; -import 'transaction_search_filter_view.dart'; import '../../../providers/db/main_db_provider.dart'; import '../../../providers/global/address_book_service_provider.dart'; import '../../../providers/providers.dart'; @@ -34,7 +33,6 @@ import '../../../utilities/constants.dart'; import '../../../utilities/format.dart'; import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; -import '../../../wallets/crypto_currency/coins/epiccash.dart'; import '../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../widgets/conditional_parent.dart'; @@ -49,7 +47,9 @@ import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_text_field.dart'; import '../../../widgets/textfield_icon_button.dart'; import '../../../widgets/transaction_card.dart'; -import 'package:tuple/tuple.dart'; +import '../sub_widgets/tx_icon.dart'; +import 'transaction_details_view.dart'; +import 'transaction_search_filter_view.dart'; typedef _GroupedTransactions = ({ String label, @@ -94,8 +94,10 @@ class _TransactionDetailsViewState extends ConsumerState { } // TODO: optimise search+filter - List filter( - {required List transactions, TransactionFilter? filter}) { + List filter({ + required List transactions, + TransactionFilter? filter, + }) { if (filter == null) { return transactions; } @@ -147,8 +149,12 @@ class _TransactionDetailsViewState extends ConsumerState { }).toList(); } - bool _isKeywordMatch(Transaction tx, String keyword, - List contacts, List notes) { + bool _isKeywordMatch( + Transaction tx, + String keyword, + List contacts, + List notes, + ) { if (keyword.isEmpty) { return true; } @@ -157,11 +163,13 @@ class _TransactionDetailsViewState extends ConsumerState { // check if address book name contains contains |= contacts - .where((e) => - e.addresses - .where((a) => a.address == tx.address.value?.value) - .isNotEmpty && - e.name.toLowerCase().contains(keyword)) + .where( + (e) => + e.addresses + .where((a) => a.address == tx.address.value?.value) + .isNotEmpty && + e.name.toLowerCase().contains(keyword), + ) .isNotEmpty; // check if address contains @@ -218,9 +226,9 @@ class _TransactionDetailsViewState extends ConsumerState { List<_GroupedTransactions> groupTransactionsByMonth( List transactions, ) { - Map map = {}; + final Map map = {}; - for (var tx in transactions) { + for (final tx in transactions) { final date = DateTime.fromMillisecondsSinceEpoch(tx.timestamp * 1000); final monthYear = "${Constants.monthMap[date.month]} ${date.year}"; if (map[monthYear] == null) { @@ -285,7 +293,8 @@ class _TransactionDetailsViewState extends ConsumerState { if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } if (mounted) { Navigator.of(context).pop(); @@ -486,39 +495,45 @@ class _TransactionDetailsViewState extends ConsumerState { ref.watch(transactionFilterProvider.state).state; return FutureBuilder( - future: ref.watch(mainDBProvider).isar.transactions.buildQuery< - Transaction>( - whereClauses: [ - IndexWhereClause.equalTo( - indexName: 'walletId', - value: [widget.walletId], - ) - ], - // TODO: [prio=med] add filters to wallet or cryptocurrency class - // eth tokens should all be on v2 txn now so this should not be needed here - // filter: widget.contractAddress != null - // ? FilterGroup.and([ - // FilterCondition.equalTo( - // property: r"contractAddress", - // value: widget.contractAddress!, - // ), - // const FilterCondition.equalTo( - // property: r"subType", - // value: TransactionSubType.ethToken, - // ), - // ]) - // : null, - sortBy: [ - const SortProperty( - property: "timestamp", - sort: Sort.desc, - ), - ]).findAll(), + future: ref + .watch(mainDBProvider) + .isar + .transactions + .buildQuery( + whereClauses: [ + IndexWhereClause.equalTo( + indexName: 'walletId', + value: [widget.walletId], + ), + ], + // TODO: [prio=med] add filters to wallet or cryptocurrency class + // eth tokens should all be on v2 txn now so this should not be needed here + // filter: widget.contractAddress != null + // ? FilterGroup.and([ + // FilterCondition.equalTo( + // property: r"contractAddress", + // value: widget.contractAddress!, + // ), + // const FilterCondition.equalTo( + // property: r"subType", + // value: TransactionSubType.ethToken, + // ), + // ]) + // : null, + sortBy: [ + const SortProperty( + property: "timestamp", + sort: Sort.desc, + ), + ], + ).findAll(), builder: (_, AsyncSnapshot> snapshot) { if (snapshot.connectionState == ConnectionState.done && snapshot.hasData) { final filtered = filter( - transactions: snapshot.data!, filter: criteria); + transactions: snapshot.data!, + filter: criteria, + ); final searched = search(_searchString, filtered); searched.sort((a, b) { @@ -570,7 +585,8 @@ class _TransactionDetailsViewState extends ConsumerState { padding: const EdgeInsets.all(4), child: DesktopTransactionCardRow( key: Key( - "transactionCard_key_${month.transactions[index].txid}"), + "transactionCard_key_${month.transactions[index].txid}", + ), transaction: month.transactions[index], walletId: walletId, @@ -586,7 +602,8 @@ class _TransactionDetailsViewState extends ConsumerState { ...month.transactions.map( (tx) => TransactionCard( key: Key( - "transactionCard_key_${tx.txid}"), + "transactionCard_key_${tx.txid}", + ), transaction: tx, walletId: walletId, ), @@ -616,7 +633,7 @@ class _TransactionDetailsViewState extends ConsumerState { } class TransactionFilterOptionBar extends ConsumerStatefulWidget { - const TransactionFilterOptionBar({Key? key}) : super(key: key); + const TransactionFilterOptionBar({super.key}); @override ConsumerState createState() => @@ -774,10 +791,10 @@ class _TransactionFilterOptionBarState class TransactionFilterOptionBarItem extends StatelessWidget { const TransactionFilterOptionBarItem({ - Key? key, + super.key, required this.label, this.onPressed, - }) : super(key: key); + }); final String label; final void Function(String)? onPressed; @@ -789,9 +806,10 @@ class TransactionFilterOptionBarItem extends StatelessWidget { child: Container( height: 32, decoration: BoxDecoration( - color: - Theme.of(context).extension()!.buttonBackSecondary, - borderRadius: BorderRadius.circular(1000)), + color: + Theme.of(context).extension()!.buttonBackSecondary, + borderRadius: BorderRadius.circular(1000), + ), child: Padding( padding: const EdgeInsets.symmetric( horizontal: 14, @@ -894,7 +912,8 @@ class _DesktopTransactionCardRowState @override Widget build(BuildContext context) { final locale = ref.watch( - localeServiceChangeNotifierProvider.select((value) => value.locale)); + localeServiceChangeNotifierProvider.select((value) => value.locale), + ); final baseCurrency = ref .watch(prefsChangeNotifierProvider.select((value) => value.currency)); @@ -902,8 +921,10 @@ class _DesktopTransactionCardRowState final coin = ref.watch(pWalletCoin(walletId)); final price = ref - .watch(priceAnd24hChangeNotifierProvider - .select((value) => value.getPrice(coin))) + .watch( + priceAnd24hChangeNotifierProvider + .select((value) => value.getPrice(coin)), + ) .item1; late final String prefix; @@ -1028,8 +1049,10 @@ class _DesktopTransactionCardRowState }, ), ), - if (ref.watch(prefsChangeNotifierProvider - .select((value) => value.externalCalls))) + if (ref.watch( + prefsChangeNotifierProvider + .select((value) => value.externalCalls), + )) Expanded( flex: 4, child: Builder( diff --git a/lib/pages/wallet_view/transaction_views/dialogs/cancelling_transaction_progress_dialog.dart b/lib/pages/wallet_view/transaction_views/dialogs/cancelling_transaction_progress_dialog.dart index 0039dc5bb..f1824d17e 100644 --- a/lib/pages/wallet_view/transaction_views/dialogs/cancelling_transaction_progress_dialog.dart +++ b/lib/pages/wallet_view/transaction_views/dialogs/cancelling_transaction_progress_dialog.dart @@ -13,7 +13,7 @@ import '../../../../widgets/animated_widgets/rotating_arrows.dart'; import '../../../../widgets/stack_dialog.dart'; class CancellingTransactionProgressDialog extends StatefulWidget { - const CancellingTransactionProgressDialog({Key? key}) : super(key: key); + const CancellingTransactionProgressDialog({super.key}); @override State createState() => diff --git a/lib/pages/wallet_view/transaction_views/edit_note_view.dart b/lib/pages/wallet_view/transaction_views/edit_note_view.dart index ccae6c3fc..4d0c584eb 100644 --- a/lib/pages/wallet_view/transaction_views/edit_note_view.dart +++ b/lib/pages/wallet_view/transaction_views/edit_note_view.dart @@ -10,6 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../models/isar/models/transaction_note.dart'; import '../../../providers/db/main_db_provider.dart'; import '../../../providers/providers.dart'; @@ -28,10 +29,10 @@ import '../../../widgets/textfield_icon_button.dart'; class EditNoteView extends ConsumerStatefulWidget { const EditNoteView({ - Key? key, + super.key, required this.txid, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/editNote"; @@ -92,7 +93,8 @@ class _EditNoteViewState extends ConsumerState { if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } if (mounted) { Navigator.of(context).pop(); @@ -230,7 +232,7 @@ class _EditNoteViewState extends ConsumerState { "Save", style: STextStyles.button(context), ), - ) + ), ], ), ), @@ -241,9 +243,9 @@ class _EditNoteViewState extends ConsumerState { class MobileEditNoteScaffold extends StatelessWidget { const MobileEditNoteScaffold({ - Key? key, + super.key, required this.child, - }) : super(key: key); + }); final Widget child; diff --git a/lib/pages/wallet_view/transaction_views/transaction_details_view.dart b/lib/pages/wallet_view/transaction_views/transaction_details_view.dart index 38fffe56e..dad531969 100644 --- a/lib/pages/wallet_view/transaction_views/transaction_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/transaction_details_view.dart @@ -36,13 +36,6 @@ import '../../../utilities/format.dart'; import '../../../utilities/logger.dart'; import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; -import '../../../wallets/crypto_currency/coins/bitcoincash.dart'; -import '../../../wallets/crypto_currency/coins/ecash.dart'; -import '../../../wallets/crypto_currency/coins/epiccash.dart'; -import '../../../wallets/crypto_currency/coins/ethereum.dart'; -import '../../../wallets/crypto_currency/coins/firo.dart'; -import '../../../wallets/crypto_currency/coins/monero.dart'; -import '../../../wallets/crypto_currency/coins/wownero.dart'; import '../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../wallets/crypto_currency/intermediate/nano_currency.dart'; import '../../../wallets/isar/providers/wallet_info_provider.dart'; @@ -1071,7 +1064,7 @@ class _TransactionDetailsViewState : const EdgeInsets.all(12), child: Builder( builder: (context) { - String feeString = showFeePending + final String feeString = showFeePending ? _transaction.isConfirmed( currentHeight, minConfirms, @@ -1734,7 +1727,7 @@ class _TransactionDetailsViewState } class _Divider extends StatelessWidget { - const _Divider({Key? key}) : super(key: key); + const _Divider({super.key}); @override Widget build(BuildContext context) { @@ -1747,9 +1740,9 @@ class _Divider extends StatelessWidget { class IconCopyButton extends StatelessWidget { const IconCopyButton({ - Key? key, + super.key, required this.data, - }) : super(key: key); + }); final String data; @@ -1793,9 +1786,9 @@ class IconCopyButton extends StatelessWidget { class IconPencilButton extends StatelessWidget { const IconPencilButton({ - Key? key, + super.key, this.onPressed, - }) : super(key: key); + }); final VoidCallback? onPressed; diff --git a/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart b/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart index 5e4244177..2eebe5dbe 100644 --- a/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart +++ b/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart @@ -12,6 +12,7 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../models/transaction_filter.dart'; import '../../../providers/global/locale_provider.dart'; import '../../../providers/ui/transaction_filter_provider.dart'; @@ -117,9 +118,10 @@ class _TransactionSearchViewState return Text( isDateSelected ? "From..." : _fromDateString, style: STextStyles.fieldLabel(context).copyWith( - color: isDateSelected - ? Theme.of(context).extension()!.textSubtitle2 - : Theme.of(context).extension()!.accentColorDark), + color: isDateSelected + ? Theme.of(context).extension()!.textSubtitle2 + : Theme.of(context).extension()!.accentColorDark, + ), ); } @@ -128,9 +130,10 @@ class _TransactionSearchViewState return Text( isDateSelected ? "To..." : _toDateString, style: STextStyles.fieldLabel(context).copyWith( - color: isDateSelected - ? Theme.of(context).extension()!.textSubtitle2 - : Theme.of(context).extension()!.accentColorDark), + color: isDateSelected + ? Theme.of(context).extension()!.textSubtitle2 + : Theme.of(context).extension()!.accentColorDark, + ), ); } @@ -173,7 +176,8 @@ class _TransactionSearchViewState !_selectedFromDate!.isBefore(_selectedToDate!); if (flag) { _selectedToDate = DateTime.fromMillisecondsSinceEpoch( - _selectedFromDate!.millisecondsSinceEpoch); + _selectedFromDate!.millisecondsSinceEpoch, + ); } setState(() { @@ -227,7 +231,7 @@ class _TransactionSearchViewState child: FittedBox( child: _dateFromText, ), - ) + ), ], ), ), @@ -263,7 +267,8 @@ class _TransactionSearchViewState !_selectedToDate!.isAfter(_selectedFromDate!); if (flag) { _selectedFromDate = DateTime.fromMillisecondsSinceEpoch( - _selectedToDate!.millisecondsSinceEpoch); + _selectedToDate!.millisecondsSinceEpoch, + ); } setState(() { @@ -317,7 +322,7 @@ class _TransactionSearchViewState child: FittedBox( child: _dateToText, ), - ) + ), ], ), ), @@ -449,7 +454,8 @@ class _TransactionSearchViewState width: 20, child: Checkbox( key: const Key( - "transactionSearchViewSentCheckboxKey"), + "transactionSearchViewSentCheckboxKey", + ), materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, value: _isActiveSentCheckbox, @@ -481,7 +487,7 @@ class _TransactionSearchViewState ], ), ), - ) + ), ], ), ), @@ -508,7 +514,8 @@ class _TransactionSearchViewState width: 20, child: Checkbox( key: const Key( - "transactionSearchViewReceivedCheckboxKey"), + "transactionSearchViewReceivedCheckboxKey", + ), materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, value: _isActiveReceivedCheckbox, @@ -540,7 +547,7 @@ class _TransactionSearchViewState ], ), ), - ) + ), ], ), ), @@ -567,7 +574,8 @@ class _TransactionSearchViewState width: 20, child: Checkbox( key: const Key( - "transactionSearchViewSentCheckboxKey"), + "transactionSearchViewSentCheckboxKey", + ), materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, value: _isActiveTradeCheckbox, @@ -599,7 +607,7 @@ class _TransactionSearchViewState ], ), ), - ) + ), ], ), ), diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart index e8dfcbc42..24dd77005 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart @@ -625,7 +625,7 @@ class _AllTransactionsV2ViewState extends ConsumerState { } class TransactionFilterOptionBar extends ConsumerStatefulWidget { - const TransactionFilterOptionBar({Key? key}) : super(key: key); + const TransactionFilterOptionBar({super.key}); @override ConsumerState createState() => @@ -783,10 +783,10 @@ class _TransactionFilterOptionBarState class TransactionFilterOptionBarItem extends StatelessWidget { const TransactionFilterOptionBarItem({ - Key? key, + super.key, required this.label, this.onPressed, - }) : super(key: key); + }); final String label; final void Function(String)? onPressed; @@ -841,10 +841,10 @@ class TransactionFilterOptionBarItem extends StatelessWidget { class DesktopTransactionCardRow extends ConsumerStatefulWidget { const DesktopTransactionCardRow({ - Key? key, + super.key, required this.transaction, required this.walletId, - }) : super(key: key); + }); final TransactionV2 transaction; final String walletId; diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart index db18d772c..0cce71e0f 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_card.dart @@ -2,10 +2,9 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../../models/isar/models/isar_models.dart'; -import '../../sub_widgets/tx_icon.dart'; -import 'transaction_v2_details_view.dart'; import '../../../../providers/db/main_db_provider.dart'; import '../../../../providers/global/locale_provider.dart'; import '../../../../providers/global/prefs_provider.dart'; @@ -18,11 +17,12 @@ import '../../../../utilities/constants.dart'; import '../../../../utilities/format.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; -import '../../../../wallets/crypto_currency/coins/ethereum.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../sub_widgets/tx_icon.dart'; +import 'transaction_v2_details_view.dart'; class TransactionCardV2 extends ConsumerStatefulWidget { const TransactionCardV2({ @@ -98,15 +98,20 @@ class _TransactionCardStateV2 extends ConsumerState { @override Widget build(BuildContext context) { final locale = ref.watch( - localeServiceChangeNotifierProvider.select((value) => value.locale)); + localeServiceChangeNotifierProvider.select((value) => value.locale), + ); final baseCurrency = ref .watch(prefsChangeNotifierProvider.select((value) => value.currency)); final price = ref - .watch(priceAnd24hChangeNotifierProvider.select((value) => isTokenTx - ? value.getTokenPrice(tokenContract!.address) - : value.getPrice(coin))) + .watch( + priceAnd24hChangeNotifierProvider.select( + (value) => isTokenTx + ? value.getTokenPrice(tokenContract!.address) + : value.getPrice(coin), + ), + ) .item1; final currentHeight = ref.watch(pWalletChainHeight(walletId)); @@ -117,39 +122,45 @@ class _TransactionCardStateV2 extends ConsumerState { if (_transaction.subType == TransactionSubType.cashFusion) { amount = _transaction.getAmountReceivedInThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); } else { switch (_transaction.type) { case TransactionType.outgoing: amount = _transaction.getAmountSentFromThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); break; case TransactionType.incoming: case TransactionType.sentToSelf: if (_transaction.subType == TransactionSubType.sparkMint) { amount = _transaction.getAmountSparkSelfMinted( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); } else if (_transaction.subType == TransactionSubType.sparkSpend) { final changeAddress = (ref.watch(pWallets).getWallet(walletId) as SparkInterface) .sparkChangeAddress; amount = Amount( rawValue: _transaction.outputs - .where((e) => - e.walletOwns && !e.addresses.contains(changeAddress)) + .where( + (e) => e.walletOwns && !e.addresses.contains(changeAddress), + ) .fold(BigInt.zero, (p, e) => p + e.value), fractionDigits: coin.fractionDigits, ); } else { amount = _transaction.getAmountReceivedInThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); } break; case TransactionType.unknown: amount = _transaction.getAmountSentFromThisWallet( - fractionDigits: fractionDigits); + fractionDigits: fractionDigits, + ); break; } } @@ -262,13 +273,17 @@ class _TransactionCardStateV2 extends ConsumerState { ), ), ), - if (ref.watch(prefsChangeNotifierProvider - .select((value) => value.externalCalls))) + if (ref.watch( + prefsChangeNotifierProvider + .select((value) => value.externalCalls), + )) const SizedBox( width: 10, ), - if (ref.watch(prefsChangeNotifierProvider - .select((value) => value.externalCalls))) + if (ref.watch( + prefsChangeNotifierProvider + .select((value) => value.externalCalls), + )) Flexible( child: FittedBox( fit: BoxFit.scaleDown, diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart index 3ed6397d6..2780b4033 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart @@ -37,12 +37,6 @@ import '../../../../utilities/format.dart'; import '../../../../utilities/logger.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; -import '../../../../wallets/crypto_currency/coins/bitcoincash.dart'; -import '../../../../wallets/crypto_currency/coins/ecash.dart'; -import '../../../../wallets/crypto_currency/coins/epiccash.dart'; -import '../../../../wallets/crypto_currency/coins/firo.dart'; -import '../../../../wallets/crypto_currency/coins/monero.dart'; -import '../../../../wallets/crypto_currency/coins/wownero.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../wallets/crypto_currency/intermediate/nano_currency.dart'; import '../../../../wallets/isar/models/spark_coin.dart'; @@ -1276,7 +1270,7 @@ class _TransactionV2DetailsViewState : const EdgeInsets.all(12), child: Builder( builder: (context) { - String feeString = showFeePending + final String feeString = showFeePending ? _transaction.isConfirmed( currentHeight, minConfirms, diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart index 859285eac..b805cd819 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart @@ -13,12 +13,9 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; + import '../../../../models/isar/models/blockchain_data/transaction.dart'; import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import '../../sub_widgets/no_transactions_found.dart'; -import 'fusion_tx_group_card.dart'; -import 'transaction_v2_list_item.dart'; -import '../../wallet_view.dart'; import '../../../../providers/db/main_db_provider.dart'; import '../../../../providers/global/wallets_provider.dart'; import '../../../../themes/stack_colors.dart'; @@ -26,12 +23,16 @@ import '../../../../utilities/constants.dart'; import '../../../../utilities/util.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../widgets/loading_indicator.dart'; +import '../../sub_widgets/no_transactions_found.dart'; +import '../../wallet_view.dart'; +import 'fusion_tx_group_card.dart'; +import 'transaction_v2_list_item.dart'; class TransactionsV2List extends ConsumerStatefulWidget { const TransactionsV2List({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -72,27 +73,25 @@ class _TransactionsV2ListState extends ConsumerState { @override void initState() { coin = ref.read(pWallets).getWallet(widget.walletId).info.coin; - _query = ref - .read(mainDBProvider) - .isar - .transactionV2s - .buildQuery( - whereClauses: [ - IndexWhereClause.equalTo( - indexName: 'walletId', - value: [widget.walletId], - ) - ], - filter: ref - .read(pWallets) - .getWallet(widget.walletId) - .transactionFilterOperation, - sortBy: [ - const SortProperty( - property: "timestamp", - sort: Sort.desc, - ), - ]); + _query = + ref.read(mainDBProvider).isar.transactionV2s.buildQuery( + whereClauses: [ + IndexWhereClause.equalTo( + indexName: 'walletId', + value: [widget.walletId], + ), + ], + filter: ref + .read(pWallets) + .getWallet(widget.walletId) + .transactionFilterOperation, + sortBy: [ + const SortProperty( + property: "timestamp", + sort: Sort.desc, + ), + ], + ); _subscription = _query.watch().listen((event) { WidgetsBinding.instance.addPostFrameCallback((_) { @@ -158,7 +157,8 @@ class _TransactionsV2ListState extends ConsumerState { if (tx.subType == TransactionSubType.cashFusion) { if (fusions.isNotEmpty) { final prevTime = DateTime.fromMillisecondsSinceEpoch( - fusions.last.timestamp * 1000); + fusions.last.timestamp * 1000, + ); final thisTime = DateTime.fromMillisecondsSinceEpoch(tx.timestamp * 1000); diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart index ccaae32cc..f51c9f609 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart @@ -2,11 +2,10 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:tuple/tuple.dart'; + import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../../models/isar/models/isar_models.dart'; -import '../../../exchange_view/trade_details_view.dart'; -import 'fusion_tx_group_card.dart'; -import 'transaction_v2_card.dart'; import '../../../../providers/global/trades_service_provider.dart'; import '../../../../route_generator.dart'; import '../../../../themes/stack_colors.dart'; @@ -17,7 +16,9 @@ import '../../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../../widgets/desktop/desktop_dialog.dart'; import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../../widgets/trade_card.dart'; -import 'package:tuple/tuple.dart'; +import '../../../exchange_view/trade_details_view.dart'; +import 'fusion_tx_group_card.dart'; +import 'transaction_v2_card.dart'; class TxListItem extends ConsumerWidget { const TxListItem({ @@ -56,10 +57,12 @@ class TxListItem extends ConsumerWidget { transaction: _tx, ), TradeCard( - key: Key(_tx.txid + - _tx.type.name + - _tx.hashCode.toString() + - trade.uuid), // + key: Key( + _tx.txid + + _tx.type.name + + _tx.hashCode.toString() + + trade.uuid, + ), // trade: trade, onTap: () async { if (Util.isDesktop) { @@ -136,7 +139,7 @@ class TxListItem extends ConsumerWidget { ); } }, - ) + ), ], ), ); diff --git a/lib/pages/wallet_view/wallet_view.dart b/lib/pages/wallet_view/wallet_view.dart index 2f2eb334f..7147ca299 100644 --- a/lib/pages/wallet_view/wallet_view.dart +++ b/lib/pages/wallet_view/wallet_view.dart @@ -64,9 +64,6 @@ import '../../utilities/enums/sync_type_enum.dart'; import '../../utilities/logger.dart'; import '../../utilities/show_loading.dart'; import '../../utilities/text_styles.dart'; -import '../../wallets/crypto_currency/coins/banano.dart'; -import '../../wallets/crypto_currency/coins/bitcoin.dart'; -import '../../wallets/crypto_currency/coins/firo.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import '../../wallets/crypto_currency/intermediate/frost_currency.dart'; import '../../wallets/isar/providers/wallet_info_provider.dart'; diff --git a/lib/pages/wallets_view/sub_widgets/all_wallets.dart b/lib/pages/wallets_view/sub_widgets/all_wallets.dart index a69d2bd13..067fcdcb3 100644 --- a/lib/pages/wallets_view/sub_widgets/all_wallets.dart +++ b/lib/pages/wallets_view/sub_widgets/all_wallets.dart @@ -18,7 +18,7 @@ import '../../../wallets/isar/providers/all_wallets_info_provider.dart'; import '../../../widgets/custom_buttons/blue_text_button.dart'; class AllWallets extends StatelessWidget { - const AllWallets({Key? key}) : super(key: key); + const AllWallets({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pages/wallets_view/sub_widgets/empty_wallets.dart b/lib/pages/wallets_view/sub_widgets/empty_wallets.dart index 530c27e54..905ee350f 100644 --- a/lib/pages/wallets_view/sub_widgets/empty_wallets.dart +++ b/lib/pages/wallets_view/sub_widgets/empty_wallets.dart @@ -21,7 +21,7 @@ import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; class EmptyWallets extends ConsumerWidget { - const EmptyWallets({Key? key}) : super(key: key); + const EmptyWallets({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { @@ -83,9 +83,9 @@ class EmptyWallets extends ConsumerWidget { ), ), if (!isDesktop) - Row( + const Row( mainAxisAlignment: MainAxisAlignment.center, - children: const [ + children: [ AddWalletButton( isDesktop: false, ), @@ -103,7 +103,7 @@ class EmptyWallets extends ConsumerWidget { } class AddWalletButton extends ConsumerWidget { - const AddWalletButton({Key? key, required this.isDesktop}) : super(key: key); + const AddWalletButton({super.key, required this.isDesktop}); final bool isDesktop; diff --git a/lib/pages/wallets_view/sub_widgets/favorite_card.dart b/lib/pages/wallets_view/sub_widgets/favorite_card.dart index 6f3dd84bb..ab91cc759 100644 --- a/lib/pages/wallets_view/sub_widgets/favorite_card.dart +++ b/lib/pages/wallets_view/sub_widgets/favorite_card.dart @@ -274,9 +274,11 @@ class _FavoriteCardState extends ConsumerState { } class CardOverlayStack extends StatelessWidget { - const CardOverlayStack( - {Key? key, required this.background, required this.child}) - : super(key: key); + const CardOverlayStack({ + super.key, + required this.background, + required this.child, + }); final Widget background; final Widget child; diff --git a/lib/pages/wallets_view/sub_widgets/favorite_wallets.dart b/lib/pages/wallets_view/sub_widgets/favorite_wallets.dart index b46e84b87..de03c3fd7 100644 --- a/lib/pages/wallets_view/sub_widgets/favorite_wallets.dart +++ b/lib/pages/wallets_view/sub_widgets/favorite_wallets.dart @@ -13,18 +13,18 @@ import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import '../../manage_favorites_view/manage_favorites_view.dart'; -import 'favorite_card.dart'; + import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/constants.dart'; import '../../../utilities/text_styles.dart'; import '../../../wallets/isar/providers/favourite_wallets_provider.dart'; -import '../../../widgets/custom_page_view/custom_page_view.dart' - as cpv; +import '../../../widgets/custom_page_view/custom_page_view.dart' as cpv; +import '../../manage_favorites_view/manage_favorites_view.dart'; +import 'favorite_card.dart'; class FavoriteWallets extends ConsumerStatefulWidget { - const FavoriteWallets({Key? key}) : super(key: key); + const FavoriteWallets({super.key}); @override ConsumerState createState() => _FavoriteWalletsState(); @@ -55,9 +55,11 @@ class _FavoriteWalletsState extends ConsumerState { _pageController.addListener(() { if (_pageController.position.pixels > (cardWidth * (_favLength - 1))) { - _pageController.animateToPage(_favLength - 1, - duration: const Duration(milliseconds: 1), - curve: Curves.decelerate); + _pageController.animateToPage( + _favLength - 1, + duration: const Duration(milliseconds: 1), + curve: Curves.decelerate, + ); } }); super.initState(); @@ -76,7 +78,7 @@ class _FavoriteWalletsState extends ConsumerState { final favorites = ref.watch(pFavouriteWalletInfos(true)); _favLength = favorites.length; - bool hasFavorites = favorites.isNotEmpty; + final bool hasFavorites = favorites.isNotEmpty; final remaining = ((screenWidth - cardWidth) / cardWidth).ceil(); @@ -100,7 +102,8 @@ class _FavoriteWalletsState extends ConsumerState { TextButton( style: ButtonStyle( backgroundColor: MaterialStateProperty.all( - Theme.of(context).extension()!.background), + Theme.of(context).extension()!.background, + ), ), child: SvgPicture.asset( Assets.svg.ellipsis, @@ -135,7 +138,8 @@ class _FavoriteWalletsState extends ConsumerState { .extension()! .textFieldDefaultBG, borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius), + Constants.size.circularBorderRadius, + ), ), child: MaterialButton( splashColor: @@ -145,7 +149,8 @@ class _FavoriteWalletsState extends ConsumerState { materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius), + Constants.size.circularBorderRadius, + ), ), onPressed: () { Navigator.of(context) diff --git a/lib/pages/wallets_view/sub_widgets/wallet_list_item.dart b/lib/pages/wallets_view/sub_widgets/wallet_list_item.dart index d7ec6037b..5602d2419 100644 --- a/lib/pages/wallets_view/sub_widgets/wallet_list_item.dart +++ b/lib/pages/wallets_view/sub_widgets/wallet_list_item.dart @@ -14,8 +14,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import '../../wallet_view/wallet_view.dart'; -import '../wallets_overview.dart'; + import '../../../providers/providers.dart'; import '../../../themes/coin_icon_provider.dart'; import '../../../themes/stack_colors.dart'; @@ -24,11 +23,12 @@ import '../../../utilities/constants.dart'; import '../../../utilities/show_loading.dart'; import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; -import '../../../wallets/crypto_currency/coins/ethereum.dart'; import '../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; import '../../../widgets/dialogs/tor_warning_dialog.dart'; import '../../../widgets/rounded_white_container.dart'; +import '../../wallet_view/wallet_view.dart'; +import '../wallets_overview.dart'; class WalletListItem extends ConsumerWidget { const WalletListItem({ @@ -128,16 +128,19 @@ class WalletListItem extends ConsumerWidget { Expanded( child: Consumer( builder: (_, ref, __) { - final tuple = ref.watch(priceAnd24hChangeNotifierProvider - .select((value) => value.getPrice(coin))); + final tuple = ref.watch( + priceAnd24hChangeNotifierProvider + .select((value) => value.getPrice(coin)), + ); final calls = ref.watch(prefsChangeNotifierProvider).externalCalls; final priceString = tuple.item1.toAmount(fractionDigits: 2).fiatString( locale: ref.watch( - localeServiceChangeNotifierProvider - .select((value) => value.locale)), + localeServiceChangeNotifierProvider + .select((value) => value.locale), + ), ); final double percentChange = tuple.item2; diff --git a/lib/pages/wallets_view/wallets_overview.dart b/lib/pages/wallets_view/wallets_overview.dart index ebd4931f7..f557e6f7e 100644 --- a/lib/pages/wallets_view/wallets_overview.dart +++ b/lib/pages/wallets_view/wallets_overview.dart @@ -12,9 +12,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + import '../../models/add_wallet_list_entity/sub_classes/coin_entity.dart'; import '../../models/isar/models/ethereum/eth_contract.dart'; -import '../add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart'; import '../../pages_desktop_specific/my_stack_view/dialogs/desktop_expanding_wallet_card.dart'; import '../../providers/db/main_db_provider.dart'; import '../../providers/providers.dart'; @@ -23,7 +24,6 @@ import '../../utilities/assets.dart'; import '../../utilities/constants.dart'; import '../../utilities/text_styles.dart'; import '../../utilities/util.dart'; -import '../../wallets/crypto_currency/coins/ethereum.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import '../../wallets/isar/models/wallet_info.dart'; import '../../wallets/isar/providers/wallet_info_provider.dart'; @@ -37,7 +37,7 @@ import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_text_field.dart'; import '../../widgets/textfield_icon_button.dart'; import '../../widgets/wallet_card.dart'; -import 'package:tuple/tuple.dart'; +import '../add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart'; class WalletsOverview extends ConsumerStatefulWidget { const WalletsOverview({ @@ -296,7 +296,8 @@ class _EthWalletsOverviewState extends ConsumerState { if (isDesktop) { return DesktopExpandingWalletCard( key: Key( - "${element.item1.info.name}_${element.item2.map((e) => e.address).join()}"), + "${element.item1.info.name}_${element.item2.map((e) => e.address).join()}", + ), data: element, navigatorState: widget.navigatorState!, ); diff --git a/lib/pages/wallets_view/wallets_view.dart b/lib/pages/wallets_view/wallets_view.dart index 76298c595..236e79e4d 100644 --- a/lib/pages/wallets_view/wallets_view.dart +++ b/lib/pages/wallets_view/wallets_view.dart @@ -19,7 +19,7 @@ import '../../themes/theme_providers.dart'; import '../../wallets/isar/providers/all_wallets_info_provider.dart'; class WalletsView extends ConsumerWidget { - const WalletsView({Key? key}) : super(key: key); + const WalletsView({super.key}); static const routeName = "/wallets"; @@ -28,8 +28,9 @@ class WalletsView extends ConsumerWidget { debugPrint("BUILD: $runtimeType"); final hasWallets = ref.watch(pAllWalletsInfo).isNotEmpty; - final showFavorites = ref.watch(prefsChangeNotifierProvider - .select((value) => value.showFavoriteWallets)); + final showFavorites = ref.watch( + prefsChangeNotifierProvider.select((value) => value.showFavoriteWallets), + ); return SafeArea( child: hasWallets diff --git a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart index af09985df..c68b9c058 100644 --- a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart +++ b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart @@ -22,7 +22,6 @@ import '../../providers/db/main_db_provider.dart'; import '../../providers/global/address_book_service_provider.dart'; import '../../providers/providers.dart'; import '../../providers/ui/address_book_providers/address_book_filter_provider.dart'; -import '../../app_config.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; import '../../utilities/constants.dart'; diff --git a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_book_scaffold.dart b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_book_scaffold.dart index a7a47e979..ce435797f 100644 --- a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_book_scaffold.dart +++ b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_book_scaffold.dart @@ -12,7 +12,7 @@ import 'package:flutter/widgets.dart'; class DesktopAddressBookScaffold extends StatelessWidget { const DesktopAddressBookScaffold({ - Key? key, + super.key, required this.controlsLeft, required this.controlsRight, required this.filterItems, @@ -21,7 +21,7 @@ class DesktopAddressBookScaffold extends StatelessWidget { required this.favorites, required this.all, required this.details, - }) : super(key: key); + }); final Widget? controlsLeft; final Widget? controlsRight; @@ -115,7 +115,7 @@ class DesktopAddressBookScaffold extends StatelessWidget { ), ], ), - ) + ), ], ); } diff --git a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_card.dart b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_card.dart index 509653aba..b124fa025 100644 --- a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_card.dart +++ b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_address_card.dart @@ -14,6 +14,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../../models/isar/models/contact_entry.dart'; import '../../../notifications/show_flush_bar.dart'; import '../../../pages/address_book_views/subviews/edit_contact_address_view.dart'; @@ -22,7 +23,6 @@ import '../../../themes/coin_icon_provider.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/clipboard_interface.dart'; - import '../../../utilities/text_styles.dart'; import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../widgets/custom_buttons/blue_text_button.dart'; @@ -30,11 +30,11 @@ import '../../../widgets/desktop/desktop_dialog.dart'; class DesktopAddressCard extends ConsumerWidget { const DesktopAddressCard({ - Key? key, + super.key, required this.entry, required this.contactId, this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); final ContactAddressEntry entry; final String contactId; @@ -103,7 +103,8 @@ class DesktopAddressCard extends ConsumerWidget { text: "Edit", onTap: () async { ref.refresh( - addressEntryDataProviderFamilyRefresher); + addressEntryDataProviderFamilyRefresher, + ); ref.read(addressEntryDataProvider(0)).address = entry.address; ref.read(addressEntryDataProvider(0)).addressLabel = @@ -155,7 +156,7 @@ class DesktopAddressCard extends ConsumerWidget { }, ), ], - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_details.dart b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_details.dart index d38d171d3..f3037f527 100644 --- a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_details.dart +++ b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_details.dart @@ -63,12 +63,14 @@ class _DesktopContactDetailsState extends ConsumerState { .transactions .where() .filter() - .anyOf(contact.addresses.map((e) => e.address), - (q, String e) => q.address((q) => q.valueEqualTo(e))) + .anyOf( + contact.addresses.map((e) => e.address), + (q, String e) => q.address((q) => q.valueEqualTo(e)), + ) .sortByTimestampDesc() .findAll(); - List> result = []; + final List> result = []; for (final tx in transactions) { result.add(Tuple2(tx.walletId, tx)); @@ -85,8 +87,10 @@ class _DesktopContactDetailsState extends ConsumerState { // provider hack to prevent trying to update widget with deleted contact ContactEntry? _contact; try { - _contact = ref.watch(addressBookServiceProvider - .select((value) => value.getContactById(widget.contactId))); + _contact = ref.watch( + addressBookServiceProvider + .select((value) => value.getContactById(widget.contactId)), + ); } catch (_) { return Container(); } @@ -186,7 +190,8 @@ class _DesktopContactDetailsState extends ConsumerState { text: "Add new", onTap: () async { ref.refresh( - addressEntryDataProviderFamilyRefresher); + addressEntryDataProviderFamilyRefresher, + ); await showDialog( context: context, @@ -280,9 +285,11 @@ class _DesktopContactDetailsState extends ConsumerState { ), FutureBuilder( future: _filteredTransactionsByContact(), - builder: (_, - AsyncSnapshot>> - snapshot) { + builder: ( + _, + AsyncSnapshot>> + snapshot, + ) { if (snapshot.connectionState == ConnectionState.done && snapshot.hasData) { @@ -300,7 +307,8 @@ class _DesktopContactDetailsState extends ConsumerState { ..._cachedTransactions.map( (e) => TransactionCard( key: Key( - "contactDetailsTransaction_${e.item1}_${e.item2.txid}_cardKey"), + "contactDetailsTransaction_${e.item1}_${e.item2.txid}_cardKey", + ), transaction: e.item2, walletId: e.item1, ), @@ -334,7 +342,8 @@ class _DesktopContactDetailsState extends ConsumerState { ..._cachedTransactions.map( (e) => TransactionCard( key: Key( - "contactDetailsTransaction_${e.item1}_${e.item2.txid}_cardKey"), + "contactDetailsTransaction_${e.item1}_${e.item2.txid}_cardKey", + ), transaction: e.item2, walletId: e.item1, ), diff --git a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_options_menu_popup.dart b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_options_menu_popup.dart index 61b0de815..5601cf702 100644 --- a/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_options_menu_popup.dart +++ b/lib/pages_desktop_specific/address_book_view/subwidgets/desktop_contact_options_menu_popup.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../../notifications/show_flush_bar.dart'; import '../../../pages/address_book_views/subviews/edit_contact_name_emoji_view.dart'; import '../../../providers/global/address_book_service_provider.dart'; @@ -23,8 +24,7 @@ import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/desktop/secondary_button.dart'; class DesktopContactOptionsMenuPopup extends ConsumerStatefulWidget { - const DesktopContactOptionsMenuPopup({Key? key, required this.contactId}) - : super(key: key); + const DesktopContactOptionsMenuPopup({super.key, required this.contactId}); final String contactId; @@ -169,7 +169,7 @@ class _DesktopContactOptionsMenuPopupState ), ), ], - ) + ), ], ), ), @@ -256,20 +256,23 @@ class _DesktopContactOptionsMenuPopupState width: 12, ), Text( - ref.watch(addressBookServiceProvider.select( - (value) => value - .getContactById(widget.contactId) - .isFavorite)) + ref.watch( + addressBookServiceProvider.select( + (value) => value + .getContactById(widget.contactId) + .isFavorite, + ), + ) ? "Remove from favorites" : "Add to favorites", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, ), - ) + ), ], ), ), @@ -326,13 +329,13 @@ class _DesktopContactOptionsMenuPopupState Text( "Edit contact", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, ), - ) + ), ], ), ), @@ -389,13 +392,13 @@ class _DesktopContactOptionsMenuPopupState Text( "Delete contact", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, ), - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/addresses/desktop_wallet_addresses_view.dart b/lib/pages_desktop_specific/addresses/desktop_wallet_addresses_view.dart index cf6c7c424..9186b8f0b 100644 --- a/lib/pages_desktop_specific/addresses/desktop_wallet_addresses_view.dart +++ b/lib/pages_desktop_specific/addresses/desktop_wallet_addresses_view.dart @@ -12,9 +12,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; + import '../../models/isar/models/isar_models.dart'; import '../../pages/receive_view/addresses/address_details_view.dart'; -import 'sub_widgets/desktop_address_list.dart'; import '../../providers/db/main_db_provider.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; @@ -22,14 +22,15 @@ import '../../utilities/text_styles.dart'; import '../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../widgets/desktop/desktop_app_bar.dart'; import '../../widgets/desktop/desktop_scaffold.dart'; +import 'sub_widgets/desktop_address_list.dart'; final desktopSelectedAddressId = StateProvider.autoDispose((ref) => null); class DesktopWalletAddressesView extends ConsumerStatefulWidget { const DesktopWalletAddressesView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/desktopWalletAddressesView"; @@ -143,7 +144,8 @@ class _DesktopWalletAddressesViewState child: SingleChildScrollView( child: AddressDetailsView( key: Key( - "currentDesktopAddressDetails_key_${ref.watch(desktopSelectedAddressId.state).state}"), + "currentDesktopAddressDetails_key_${ref.watch(desktopSelectedAddressId.state).state}", + ), walletId: widget.walletId, addressId: ref .watch(desktopSelectedAddressId.state) diff --git a/lib/pages_desktop_specific/addresses/sub_widgets/desktop_address_list.dart b/lib/pages_desktop_specific/addresses/sub_widgets/desktop_address_list.dart index 3da33f220..9ac4fab33 100644 --- a/lib/pages_desktop_specific/addresses/sub_widgets/desktop_address_list.dart +++ b/lib/pages_desktop_specific/addresses/sub_widgets/desktop_address_list.dart @@ -12,9 +12,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; + import '../../../models/isar/models/isar_models.dart'; import '../../../pages/receive_view/addresses/address_card.dart'; -import '../desktop_wallet_addresses_view.dart'; import '../../../providers/db/main_db_provider.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; @@ -26,6 +26,7 @@ import '../../../widgets/icon_widgets/x_icon.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_text_field.dart'; import '../../../widgets/textfield_icon_button.dart'; +import '../desktop_wallet_addresses_view.dart'; class DesktopAddressList extends ConsumerStatefulWidget { const DesktopAddressList({ @@ -55,14 +56,16 @@ class _DesktopAddressListState extends ConsumerState { .read(mainDBProvider) .getAddresses(widget.walletId) .filter() - .group((q) => q - .subTypeEqualTo(AddressSubType.change) - .or() - .subTypeEqualTo(AddressSubType.receiving) - .or() - .subTypeEqualTo(AddressSubType.paynymReceive) - .or() - .subTypeEqualTo(AddressSubType.paynymNotification)) + .group( + (q) => q + .subTypeEqualTo(AddressSubType.change) + .or() + .subTypeEqualTo(AddressSubType.receiving) + .or() + .subTypeEqualTo(AddressSubType.paynymReceive) + .or() + .subTypeEqualTo(AddressSubType.paynymNotification), + ) .and() .not() .typeEqualTo(AddressType.nonWallet) @@ -99,15 +102,19 @@ class _DesktopAddressListState extends ConsumerState { .getAddresses(widget.walletId) .filter() .anyOf( - labels, (q, e) => q.valueEqualTo(e.addressString)) - .group((q) => q - .subTypeEqualTo(AddressSubType.change) - .or() - .subTypeEqualTo(AddressSubType.receiving) - .or() - .subTypeEqualTo(AddressSubType.paynymReceive) - .or() - .subTypeEqualTo(AddressSubType.paynymNotification)) + labels, + (q, e) => q.valueEqualTo(e.addressString), + ) + .group( + (q) => q + .subTypeEqualTo(AddressSubType.change) + .or() + .subTypeEqualTo(AddressSubType.receiving) + .or() + .subTypeEqualTo(AddressSubType.paynymReceive) + .or() + .subTypeEqualTo(AddressSubType.paynymNotification), + ) .and() .not() .typeEqualTo(AddressType.nonWallet) diff --git a/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart b/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart index 9d674c585..d35da1a31 100644 --- a/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart +++ b/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart @@ -17,8 +17,8 @@ import 'package:flutter/services.dart'; import 'package:flutter_native_splash/cli_commands.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../pages/cashfusion/fusion_rounds_selection_sheet.dart'; -import 'sub_widgets/fusion_dialog.dart'; import '../../providers/cash_fusion/fusion_progress_ui_state_provider.dart'; import '../../providers/global/prefs_provider.dart'; import '../../providers/global/wallets_provider.dart'; @@ -38,6 +38,7 @@ import '../../widgets/desktop/desktop_scaffold.dart'; import '../../widgets/desktop/primary_button.dart'; import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_text_field.dart'; +import 'sub_widgets/fusion_dialog.dart'; class DesktopCashFusionView extends ConsumerStatefulWidget { const DesktopCashFusionView({ @@ -77,7 +78,8 @@ class _DesktopCashFusion extends ConsumerState { ); } catch (e) { if (!e.toString().contains( - "FusionProgressUIState was already set for ${widget.walletId}")) { + "FusionProgressUIState was already set for ${widget.walletId}", + )) { rethrow; } } @@ -256,7 +258,8 @@ class _DesktopCashFusion extends ConsumerState { Text( "What is Fusion?", style: STextStyles.desktopH2( - context), + context, + ), ), DesktopDialogCloseButton( onPressedOverride: () => @@ -276,8 +279,8 @@ class _DesktopCashFusion extends ConsumerState { "companies to track your coins.", style: STextStyles.desktopTextMedium( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark3, @@ -337,7 +340,8 @@ class _DesktopCashFusion extends ConsumerState { Text( "Server settings", style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), ), CustomTextButton( text: "Default", @@ -396,7 +400,7 @@ class _DesktopCashFusion extends ConsumerState { controller: portController, focusNode: portFocusNode, inputFormatters: [ - FilteringTextInputFormatter.digitsOnly + FilteringTextInputFormatter.digitsOnly, ], onChanged: (value) { setState(() { @@ -544,7 +548,7 @@ class _DesktopCashFusion extends ConsumerState { controller: fusionRoundController, focusNode: fusionRoundFocusNode, inputFormatters: [ - FilteringTextInputFormatter.digitsOnly + FilteringTextInputFormatter.digitsOnly, ], onChanged: (value) { setState(() { @@ -562,8 +566,8 @@ class _DesktopCashFusion extends ConsumerState { context, desktopMed: true, ).copyWith( - labelText: - "Enter number of fusions.."), + labelText: "Enter number of fusions..", + ), ), ), ], diff --git a/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart b/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart index 437c61a55..51502bf81 100644 --- a/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart +++ b/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'fusion_progress.dart'; + import '../../../providers/cash_fusion/fusion_progress_ui_state_provider.dart'; import '../../../providers/global/prefs_provider.dart'; import '../../../providers/global/wallets_provider.dart'; @@ -18,6 +18,7 @@ import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/desktop/secondary_button.dart'; import '../../../widgets/rounded_container.dart'; import '../../../widgets/rounded_white_container.dart'; +import 'fusion_progress.dart'; enum CashFusionStatus { waiting, running, success, failed } @@ -303,7 +304,8 @@ class _FusionDialogViewState extends ConsumerState { ); } catch (e) { if (!e.toString().contains( - "FusionProgressUIState was already set for ${widget.walletId}")) { + "FusionProgressUIState was already set for ${widget.walletId}", + )) { rethrow; } } diff --git a/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_progress.dart b/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_progress.dart index 8487ce863..3e3f5b44e 100644 --- a/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_progress.dart +++ b/lib/pages_desktop_specific/cashfusion/sub_widgets/fusion_progress.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../../pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart'; -import 'fusion_dialog.dart'; import '../../../providers/cash_fusion/fusion_progress_ui_state_provider.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; @@ -10,6 +10,7 @@ import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; import '../../../widgets/conditional_parent.dart'; import '../../../widgets/rounded_container.dart'; +import 'fusion_dialog.dart'; class FusionProgress extends ConsumerWidget { const FusionProgress({super.key, required this.walletId}); @@ -22,42 +23,57 @@ class FusionProgress extends ConsumerWidget { crossAxisAlignment: CrossAxisAlignment.stretch, children: [ _ProgressItem( - iconAsset: Assets.svg.node, - label: "Connecting to server", - state: ref.watch(fusionProgressUIStateProvider(walletId) - .select((value) => value.connecting))), + iconAsset: Assets.svg.node, + label: "Connecting to server", + state: ref.watch( + fusionProgressUIStateProvider(walletId) + .select((value) => value.connecting), + ), + ), const SizedBox( height: 12, ), _ProgressItem( - iconAsset: Assets.svg.upFromLine, - label: "Allocating outputs", - state: ref.watch(fusionProgressUIStateProvider(walletId) - .select((value) => value.outputs))), + iconAsset: Assets.svg.upFromLine, + label: "Allocating outputs", + state: ref.watch( + fusionProgressUIStateProvider(walletId) + .select((value) => value.outputs), + ), + ), const SizedBox( height: 12, ), _ProgressItem( - iconAsset: Assets.svg.peers, - label: "Waiting for peers", - state: ref.watch(fusionProgressUIStateProvider(walletId) - .select((value) => value.peers))), + iconAsset: Assets.svg.peers, + label: "Waiting for peers", + state: ref.watch( + fusionProgressUIStateProvider(walletId) + .select((value) => value.peers), + ), + ), const SizedBox( height: 12, ), _ProgressItem( - iconAsset: Assets.svg.fusing, - label: "Fusing", - state: ref.watch(fusionProgressUIStateProvider(walletId) - .select((value) => value.fusing))), + iconAsset: Assets.svg.fusing, + label: "Fusing", + state: ref.watch( + fusionProgressUIStateProvider(walletId) + .select((value) => value.fusing), + ), + ), const SizedBox( height: 12, ), _ProgressItem( - iconAsset: Assets.svg.checkCircle, - label: "Complete", - state: ref.watch(fusionProgressUIStateProvider(walletId) - .select((value) => value.complete))), + iconAsset: Assets.svg.checkCircle, + label: "Complete", + state: ref.watch( + fusionProgressUIStateProvider(walletId) + .select((value) => value.complete), + ), + ), ], ); } diff --git a/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart b/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart index a76851278..dce4eeafc 100644 --- a/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart +++ b/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart @@ -14,9 +14,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; + import '../../db/isar/main_db.dart'; import '../../models/isar/models/blockchain_data/utxo.dart'; -import 'utxo_row.dart'; import '../../themes/coin_icon_provider.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/amount/amount.dart'; @@ -38,6 +38,7 @@ import '../../widgets/rounded_container.dart'; import '../../widgets/stack_text_field.dart'; import '../../widgets/textfield_icon_button.dart'; import '../../widgets/toggle.dart'; +import 'utxo_row.dart'; final desktopUseUTXOs = StateProvider((ref) => {}); @@ -295,7 +296,7 @@ class _DesktopCoinControlUseDialogState } }, displayPrefix: "Sort by", - ) + ), ], ), const SizedBox( @@ -320,7 +321,8 @@ class _DesktopCoinControlUseDialogState return UtxoRow( key: Key( - "${utxo.walletId}_${utxo.id}_${utxo.isBlocked}"), + "${utxo.walletId}_${utxo.id}_${utxo.isBlocked}", + ), data: data, compact: true, walletId: widget.walletId, @@ -391,7 +393,8 @@ class _DesktopCoinControlUseDialogState "output${entry.value.length > 1 ? "s" : ""}", style: STextStyles .desktopTextExtraExtraSmall( - context), + context, + ), ), ), RotateIcon( @@ -422,7 +425,8 @@ class _DesktopCoinControlUseDialogState return UtxoRow( key: Key( - "${utxo.walletId}_${utxo.id}_${utxo.isBlocked}"), + "${utxo.walletId}_${utxo.id}_${utxo.isBlocked}", + ), data: data, compact: true, compactWithBorder: false, @@ -477,8 +481,8 @@ class _DesktopCoinControlUseDialogState "Amount to send", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -512,8 +516,8 @@ class _DesktopCoinControlUseDialogState Text( "Selected amount", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -524,8 +528,8 @@ class _DesktopCoinControlUseDialogState coin.fractionDigits, )} ${coin.ticker}", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: widget.amountToSend == null ? Theme.of(context) .extension()! diff --git a/lib/pages_desktop_specific/coin_control/desktop_coin_control_view.dart b/lib/pages_desktop_specific/coin_control/desktop_coin_control_view.dart index 957cfacdb..653da8a68 100644 --- a/lib/pages_desktop_specific/coin_control/desktop_coin_control_view.dart +++ b/lib/pages_desktop_specific/coin_control/desktop_coin_control_view.dart @@ -14,10 +14,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; + import '../../db/isar/main_db.dart'; import '../../models/isar/models/blockchain_data/utxo.dart'; -import 'freeze_button.dart'; -import 'utxo_row.dart'; import '../../themes/coin_icon_provider.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; @@ -36,12 +35,14 @@ import '../../widgets/icon_widgets/x_icon.dart'; import '../../widgets/rounded_container.dart'; import '../../widgets/stack_text_field.dart'; import '../../widgets/textfield_icon_button.dart'; +import 'freeze_button.dart'; +import 'utxo_row.dart'; class DesktopCoinControlView extends ConsumerStatefulWidget { const DesktopCoinControlView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/desktopCoinControl"; @@ -308,7 +309,8 @@ class _DesktopCoinControlViewState return UtxoRow( key: Key( - "${utxo.walletId}_${utxo.id}_${utxo.isBlocked}"), + "${utxo.walletId}_${utxo.id}_${utxo.isBlocked}", + ), data: data, walletId: widget.walletId, onSelectionChanged: (value) { @@ -374,7 +376,8 @@ class _DesktopCoinControlViewState "output${entry.value.length > 1 ? "s" : ""}", style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), ), ), RotateIcon( @@ -404,7 +407,8 @@ class _DesktopCoinControlViewState return UtxoRow( key: Key( - "${utxo.walletId}_${utxo.id}_${utxo.isBlocked}"), + "${utxo.walletId}_${utxo.id}_${utxo.isBlocked}", + ), data: data, walletId: widget.walletId, raiseOnSelected: false, diff --git a/lib/pages_desktop_specific/coin_control/freeze_button.dart b/lib/pages_desktop_specific/coin_control/freeze_button.dart index 0f4d6d4e8..dddcc92fa 100644 --- a/lib/pages_desktop_specific/coin_control/freeze_button.dart +++ b/lib/pages_desktop_specific/coin_control/freeze_button.dart @@ -19,9 +19,9 @@ import '../../widgets/desktop/primary_button.dart'; class FreezeButton extends StatefulWidget { const FreezeButton({ - Key? key, + super.key, required this.selectedUTXOs, - }) : super(key: key); + }); final Set selectedUTXOs; @@ -51,7 +51,7 @@ class _FreezeButtonState extends State { } Future _onFreezeStateButtonPressed() async { - List utxosToUpdate = []; + final List utxosToUpdate = []; switch (_freezeLabelCache) { case "Freeze": for (final e in widget.selectedUTXOs) { @@ -95,7 +95,7 @@ class _FreezeButtonState extends State { @override void initState() { - List> streams = []; + final List> streams = []; for (final data in widget.selectedUTXOs) { final stream = MainDB.instance.watchUTXO(id: data.utxoId); diff --git a/lib/pages_desktop_specific/coin_control/utxo_row.dart b/lib/pages_desktop_specific/coin_control/utxo_row.dart index c414f1b4f..ca33fe8f2 100644 --- a/lib/pages_desktop_specific/coin_control/utxo_row.dart +++ b/lib/pages_desktop_specific/coin_control/utxo_row.dart @@ -48,14 +48,14 @@ class UtxoRowData { class UtxoRow extends ConsumerStatefulWidget { const UtxoRow({ - Key? key, + super.key, required this.data, required this.walletId, this.onSelectionChanged, this.compact = false, this.compactWithBorder = true, this.raiseOnSelected = true, - }) : super(key: key); + }); final String walletId; final UtxoRowData data; diff --git a/lib/pages_desktop_specific/desktop_buy/desktop_buy_view.dart b/lib/pages_desktop_specific/desktop_buy/desktop_buy_view.dart index f2d0e9bef..6c5d2dc2d 100644 --- a/lib/pages_desktop_specific/desktop_buy/desktop_buy_view.dart +++ b/lib/pages_desktop_specific/desktop_buy/desktop_buy_view.dart @@ -22,7 +22,7 @@ import '../../widgets/rounded_white_container.dart'; import '../../widgets/tor_subscription.dart'; class DesktopBuyView extends ConsumerStatefulWidget { - const DesktopBuyView({Key? key}) : super(key: key); + const DesktopBuyView({super.key}); static const String routeName = "/desktopBuyView"; diff --git a/lib/pages_desktop_specific/desktop_exchange/desktop_all_trades_view.dart b/lib/pages_desktop_specific/desktop_exchange/desktop_all_trades_view.dart index e4a6129bf..c487ff991 100644 --- a/lib/pages_desktop_specific/desktop_exchange/desktop_all_trades_view.dart +++ b/lib/pages_desktop_specific/desktop_exchange/desktop_all_trades_view.dart @@ -16,6 +16,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + import '../../db/isar/main_db.dart'; import '../../models/exchange/change_now/exchange_transaction_status.dart'; import '../../models/exchange/response_objects/trade.dart'; @@ -41,10 +43,9 @@ import '../../widgets/icon_widgets/x_icon.dart'; import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_text_field.dart'; import '../../widgets/textfield_icon_button.dart'; -import 'package:tuple/tuple.dart'; class DesktopAllTradesView extends ConsumerStatefulWidget { - const DesktopAllTradesView({Key? key}) : super(key: key); + const DesktopAllTradesView({super.key}); static const String routeName = "/desktopAllTrades"; @@ -60,10 +61,11 @@ class _DesktopAllTradesViewState extends ConsumerState { String _searchString = ""; List>> groupTransactionsByMonth( - List trades) { - Map> map = {}; + List trades, + ) { + final Map> map = {}; - for (var trade in trades) { + for (final trade in trades) { final date = trade.timestamp; final monthYear = "${Constants.monthMap[date.month]} ${date.year}"; if (map[monthYear] == null) { @@ -72,7 +74,7 @@ class _DesktopAllTradesViewState extends ConsumerState { map[monthYear]!.add(trade); } - List>> result = []; + final List>> result = []; map.forEach((key, value) { result.add(Tuple2(key, value)); }); @@ -214,7 +216,8 @@ class _DesktopAllTradesViewState extends ConsumerState { child: Consumer( builder: (_, ref, __) { List trades = ref.watch( - tradesServiceProvider.select((value) => value.trades)); + tradesServiceProvider.select((value) => value.trades), + ); if (_searchString.isNotEmpty) { final term = _searchString.toLowerCase(); @@ -261,7 +264,8 @@ class _DesktopAllTradesViewState extends ConsumerState { padding: const EdgeInsets.all(4), child: DesktopTradeRowCard( key: Key( - "transactionCard_key_${month.item2[index].tradeId}"), + "transactionCard_key_${month.item2[index].tradeId}", + ), tradeId: month.item2[index].tradeId, ), ), @@ -284,9 +288,9 @@ class _DesktopAllTradesViewState extends ConsumerState { class DesktopTradeRowCard extends ConsumerStatefulWidget { const DesktopTradeRowCard({ - Key? key, + super.key, required this.tradeId, - }) : super(key: key); + }); final String tradeId; @@ -563,7 +567,8 @@ class _DesktopTradeRowCardState extends ConsumerState { flex: 4, child: Text( Format.extractDateFrom( - trade.timestamp.millisecondsSinceEpoch ~/ 1000), + trade.timestamp.millisecondsSinceEpoch ~/ 1000, + ), style: STextStyles.desktopTextExtraExtraSmall(context), ), ), diff --git a/lib/pages_desktop_specific/desktop_exchange/desktop_exchange_view.dart b/lib/pages_desktop_specific/desktop_exchange/desktop_exchange_view.dart index 1476d5d72..d0d0fda65 100644 --- a/lib/pages_desktop_specific/desktop_exchange/desktop_exchange_view.dart +++ b/lib/pages_desktop_specific/desktop_exchange/desktop_exchange_view.dart @@ -26,7 +26,7 @@ import '../../widgets/desktop/desktop_scaffold.dart'; import '../../widgets/rounded_white_container.dart'; class DesktopExchangeView extends ConsumerStatefulWidget { - const DesktopExchangeView({Key? key}) : super(key: key); + const DesktopExchangeView({super.key}); static const String routeName = "/desktopExchange"; @@ -95,7 +95,7 @@ class _DesktopExchangeViewState extends ConsumerState { subMessage: "This could take a few minutes", eventBus: null, ), - ) + ), ], ); }, @@ -173,9 +173,9 @@ class _DesktopExchangeViewState extends ConsumerState { const SizedBox( width: 16, ), - Expanded( + const Expanded( child: Row( - children: const [ + children: [ Expanded( child: DesktopTradeHistory(), ), diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_1.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_1.dart index afa894500..6d9c61831 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_1.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_1.dart @@ -10,18 +10,19 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import '../step_scaffold.dart'; -import 'desktop_step_item.dart'; + import '../../../../providers/providers.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/enums/exchange_rate_type_enum.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../widgets/rounded_white_container.dart'; +import '../step_scaffold.dart'; +import 'desktop_step_item.dart'; class DesktopStep1 extends ConsumerWidget { const DesktopStep1({ - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, WidgetRef ref) { @@ -73,13 +74,17 @@ class DesktopStep1 extends ConsumerWidget { color: Theme.of(context).extension()!.background, ), DesktopStepItem( - label: ref.watch(desktopExchangeModelProvider - .select((value) => value!.rateType)) == + label: ref.watch( + desktopExchangeModelProvider + .select((value) => value!.rateType), + ) == ExchangeRateType.estimated ? "Estimated rate" : "Fixed rate", - value: ref.watch(desktopExchangeModelProvider - .select((value) => value!.rateInfo)), + value: ref.watch( + desktopExchangeModelProvider + .select((value) => value!.rateInfo), + ), ), ], ), diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart index a1ff7fb8d..64f4e4471 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_2.dart @@ -37,10 +37,10 @@ import '../step_scaffold.dart'; class DesktopStep2 extends ConsumerStatefulWidget { const DesktopStep2({ - Key? key, + super.key, required this.enableNextChanged, this.clipboard = const ClipboardWrapper(), - }) : super(key: key); + }); final ClipboardInterface clipboard; final void Function(bool) enableNextChanged; diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_3.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_3.dart index d60a552ce..8dfb82734 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_3.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_3.dart @@ -20,8 +20,8 @@ import '../../../../widgets/rounded_white_container.dart'; class DesktopStep3 extends ConsumerStatefulWidget { const DesktopStep3({ - Key? key, - }) : super(key: key); + super.key, + }); @override ConsumerState createState() => _DesktopStep3State(); @@ -71,13 +71,17 @@ class _DesktopStep3State extends ConsumerState { color: Theme.of(context).extension()!.background, ), DesktopStepItem( - label: ref.watch(desktopExchangeModelProvider - .select((value) => value!.rateType)) == + label: ref.watch( + desktopExchangeModelProvider + .select((value) => value!.rateType), + ) == ExchangeRateType.estimated ? "Estimated rate" : "Fixed rate", - value: ref.watch(desktopExchangeModelProvider - .select((value) => value!.rateInfo)), + value: ref.watch( + desktopExchangeModelProvider + .select((value) => value!.rateInfo), + ), ), Container( height: 1, @@ -87,8 +91,10 @@ class _DesktopStep3State extends ConsumerState { vertical: true, label: "Recipient ${ref.watch(desktopExchangeModelProvider.select((value) => value!.receiveTicker.toUpperCase()))} address", - value: ref.watch(desktopExchangeModelProvider - .select((value) => value!.recipientAddress)) ?? + value: ref.watch( + desktopExchangeModelProvider + .select((value) => value!.recipientAddress), + ) ?? "Error", ), Container( @@ -99,8 +105,10 @@ class _DesktopStep3State extends ConsumerState { vertical: true, label: "Refund ${ref.watch(desktopExchangeModelProvider.select((value) => value!.sendTicker.toUpperCase()))} address", - value: ref.watch(desktopExchangeModelProvider - .select((value) => value!.refundAddress)) ?? + value: ref.watch( + desktopExchangeModelProvider + .select((value) => value!.refundAddress), + ) ?? "Error", ), ], diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart index b831653a9..dd30adee2 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_4.dart @@ -12,19 +12,20 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../../app_config.dart'; -import '../step_scaffold.dart'; -import 'desktop_step_item.dart'; import '../../../../providers/providers.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../widgets/rounded_container.dart'; import '../../../../widgets/rounded_white_container.dart'; +import '../step_scaffold.dart'; +import 'desktop_step_item.dart'; class DesktopStep4 extends ConsumerStatefulWidget { const DesktopStep4({ - Key? key, - }) : super(key: key); + super.key, + }); @override ConsumerState createState() => _DesktopStep4State(); @@ -147,26 +148,34 @@ class _DesktopStep4State extends ConsumerState { vertical: true, label: "Send ${ref.watch(desktopExchangeModelProvider.select((value) => value!.sendTicker.toUpperCase()))} to this address", - value: ref.watch(desktopExchangeModelProvider - .select((value) => value!.trade?.payInAddress)) ?? + value: ref.watch( + desktopExchangeModelProvider + .select((value) => value!.trade?.payInAddress), + ) ?? "Error", ), Container( height: 1, color: Theme.of(context).extension()!.background, ), - if (ref.watch(desktopExchangeModelProvider - .select((value) => value!.trade?.payInExtraId)) != + if (ref.watch( + desktopExchangeModelProvider + .select((value) => value!.trade?.payInExtraId), + ) != null) DesktopStepItem( vertical: true, label: "Memo", - value: ref.watch(desktopExchangeModelProvider - .select((value) => value!.trade?.payInExtraId)) ?? + value: ref.watch( + desktopExchangeModelProvider + .select((value) => value!.trade?.payInExtraId), + ) ?? "Error", ), - if (ref.watch(desktopExchangeModelProvider - .select((value) => value!.trade?.payInExtraId)) != + if (ref.watch( + desktopExchangeModelProvider + .select((value) => value!.trade?.payInExtraId), + ) != null) Container( height: 1, @@ -183,8 +192,10 @@ class _DesktopStep4State extends ConsumerState { ), DesktopStepItem( label: "Trade ID", - value: ref.watch(desktopExchangeModelProvider - .select((value) => value!.trade?.tradeId)) ?? + value: ref.watch( + desktopExchangeModelProvider + .select((value) => value!.trade?.tradeId), + ) ?? "Error", ), Container( diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_item.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_item.dart index 6b169f573..352e353fb 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_item.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/subwidgets/desktop_step_item.dart @@ -9,18 +9,19 @@ */ import 'package:flutter/material.dart'; + import '../../../../themes/stack_colors.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../widgets/conditional_parent.dart'; class DesktopStepItem extends StatelessWidget { - const DesktopStepItem( - {Key? key, - required this.label, - required this.value, - this.padding = const EdgeInsets.all(16), - this.vertical = false}) - : super(key: key); + const DesktopStepItem({ + super.key, + required this.label, + required this.value, + this.padding = const EdgeInsets.all(16), + this.vertical = false, + }); final String label; final String value; diff --git a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart index bf9f9ffc6..bbe22138e 100644 --- a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart +++ b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_choose_from_stack.dart @@ -11,6 +11,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:tuple/tuple.dart'; + import '../../../providers/providers.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/amount/amount.dart'; @@ -18,7 +20,6 @@ import '../../../utilities/amount/amount_formatter.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/constants.dart'; import '../../../utilities/text_styles.dart'; -import '../../../wallets/crypto_currency/coins/firo.dart'; import '../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../widgets/custom_buttons/blue_text_button.dart'; @@ -28,7 +29,6 @@ import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_text_field.dart'; import '../../../widgets/textfield_icon_button.dart'; import '../../../widgets/wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart'; -import 'package:tuple/tuple.dart'; class DesktopChooseFromStack extends ConsumerStatefulWidget { const DesktopChooseFromStack({ @@ -194,8 +194,10 @@ class _DesktopChooseFromStackState height: 5, ), itemBuilder: (context, index) { - final wallet = ref.watch(pWallets - .select((value) => value.getWallet(walletIds[index]))); + final wallet = ref.watch( + pWallets + .select((value) => value.getWallet(walletIds[index])), + ); return RoundedWhiteContainer( borderColor: @@ -216,8 +218,8 @@ class _DesktopChooseFromStackState Text( wallet.info.name, style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -275,7 +277,7 @@ class _DesktopChooseFromStackState ), ), ], - ) + ), ], ); } diff --git a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_exchange_steps_indicator.dart b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_exchange_steps_indicator.dart index 6d2c677cb..c8d4ba9ff 100644 --- a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_exchange_steps_indicator.dart +++ b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_exchange_steps_indicator.dart @@ -14,8 +14,7 @@ import '../../../utilities/text_styles.dart'; import '../../../widgets/rounded_container.dart'; class DesktopExchangeStepsIndicator extends StatelessWidget { - const DesktopExchangeStepsIndicator({Key? key, required this.currentStep}) - : super(key: key); + const DesktopExchangeStepsIndicator({super.key, required this.currentStep}); final int currentStep; diff --git a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_trade_history.dart b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_trade_history.dart index 86240e37c..d589e2118 100644 --- a/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_trade_history.dart +++ b/lib/pages_desktop_specific/desktop_exchange/subwidgets/desktop_trade_history.dart @@ -13,6 +13,8 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; + +import '../../../db/isar/main_db.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; import '../../../pages/exchange_view/trade_details_view.dart'; import '../../../providers/exchange/trade_sent_from_stack_lookup_provider.dart'; @@ -27,10 +29,8 @@ import '../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/trade_card.dart'; -import '../../../db/isar/main_db.dart'; - class DesktopTradeHistory extends ConsumerStatefulWidget { - const DesktopTradeHistory({Key? key}) : super(key: key); + const DesktopTradeHistory({super.key}); @override ConsumerState createState() => @@ -154,7 +154,8 @@ class _DesktopTradeHistoryState extends ConsumerState { Text( "Trade details", style: STextStyles.desktopH3( - context), + context, + ), ), DesktopDialogCloseButton( onPressedOverride: @@ -173,8 +174,10 @@ class _DesktopTradeHistoryState extends ConsumerState { tradeId: tradeId, transactionIfSentFromStack: tx, walletName: ref.read( - pWalletName( - walletIds.first)), + pWalletName( + walletIds.first, + ), + ), walletId: walletIds.first, ), ), @@ -220,7 +223,8 @@ class _DesktopTradeHistoryState extends ConsumerState { Text( "Trade details", style: STextStyles.desktopH3( - context), + context, + ), ), DesktopDialogCloseButton( onPressedOverride: diff --git a/lib/pages_desktop_specific/desktop_home_view.dart b/lib/pages_desktop_specific/desktop_home_view.dart index 80ca02051..980b563a0 100644 --- a/lib/pages_desktop_specific/desktop_home_view.dart +++ b/lib/pages_desktop_specific/desktop_home_view.dart @@ -10,15 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'address_book_view/desktop_address_book.dart'; -import 'desktop_buy/desktop_buy_view.dart'; -import 'desktop_exchange/desktop_exchange_view.dart'; -import 'desktop_menu.dart'; -import 'my_stack_view/my_stack_view.dart'; -import 'notifications/desktop_notifications_view.dart'; -import 'settings/desktop_settings_view.dart'; -import 'settings/settings_menu/desktop_about_view.dart'; -import 'settings/settings_menu/desktop_support_view.dart'; + import '../providers/desktop/current_desktop_menu_item.dart'; import '../providers/global/active_wallet_provider.dart'; import '../providers/global/auto_swb_service_provider.dart'; @@ -31,9 +23,18 @@ import '../route_generator.dart'; import '../themes/stack_colors.dart'; import '../utilities/enums/backup_frequency_type.dart'; import '../widgets/background.dart'; +import 'address_book_view/desktop_address_book.dart'; +import 'desktop_buy/desktop_buy_view.dart'; +import 'desktop_exchange/desktop_exchange_view.dart'; +import 'desktop_menu.dart'; +import 'my_stack_view/my_stack_view.dart'; +import 'notifications/desktop_notifications_view.dart'; +import 'settings/desktop_settings_view.dart'; +import 'settings/settings_menu/desktop_about_view.dart'; +import 'settings/settings_menu/desktop_support_view.dart'; class DesktopHomeView extends ConsumerStatefulWidget { - const DesktopHomeView({Key? key}) : super(key: key); + const DesktopHomeView({super.key}); static const String routeName = "/desktopHome"; @@ -144,11 +145,13 @@ class _DesktopHomeViewState extends ConsumerState { ref.read(unreadNotificationsStateProvider.state).state; if (unreadNotificationIds.isNotEmpty) { - List> futures = []; + final List> futures = []; for (int i = 0; i < unreadNotificationIds.length - 1; i++) { - futures.add(ref - .read(notificationsProvider) - .markAsRead(unreadNotificationIds.elementAt(i), false)); + futures.add( + ref + .read(notificationsProvider) + .markAsRead(unreadNotificationIds.elementAt(i), false), + ); } // wait for multiple to update if any diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index 7ff4714a4..868454541 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -37,10 +37,10 @@ enum DesktopMenuItemId { class DesktopMenu extends ConsumerStatefulWidget { const DesktopMenu({ - Key? key, + super.key, this.onSelectionChanged, this.onSelectionWillChange, - }) : super(key: key); + }); final void Function(DesktopMenuItemId)? onSelectionChanged; final void Function(DesktopMenuItemId)? onSelectionWillChange; @@ -70,7 +70,7 @@ class _DesktopMenuState extends ConsumerState { void toggleMinimize() { final expanded = _width == expandedWidth; - for (var e in controllers) { + for (final e in controllers) { e.toggle?.call(); } @@ -102,7 +102,7 @@ class _DesktopMenuState extends ConsumerState { @override void dispose() { - for (var e in controllers) { + for (final e in controllers) { e.dispose(); } torButtonController.dispose(); diff --git a/lib/pages_desktop_specific/desktop_menu_item.dart b/lib/pages_desktop_specific/desktop_menu_item.dart index c7eee9020..1fde1281c 100644 --- a/lib/pages_desktop_specific/desktop_menu_item.dart +++ b/lib/pages_desktop_specific/desktop_menu_item.dart @@ -13,13 +13,14 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'desktop_menu.dart'; + import '../providers/desktop/current_desktop_menu_item.dart'; import '../providers/global/notifications_provider.dart'; import '../themes/stack_colors.dart'; import '../themes/theme_providers.dart'; import '../utilities/assets.dart'; import '../utilities/text_styles.dart'; +import 'desktop_menu.dart'; class DMIController { VoidCallback? toggle; @@ -29,7 +30,7 @@ class DMIController { } class DesktopMyStackIcon extends ConsumerWidget { - const DesktopMyStackIcon({Key? key}) : super(key: key); + const DesktopMyStackIcon({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { @@ -49,7 +50,7 @@ class DesktopMyStackIcon extends ConsumerWidget { } class DesktopExchangeIcon extends ConsumerWidget { - const DesktopExchangeIcon({Key? key}) : super(key: key); + const DesktopExchangeIcon({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { @@ -69,7 +70,7 @@ class DesktopExchangeIcon extends ConsumerWidget { } class DesktopBuyIcon extends ConsumerWidget { - const DesktopBuyIcon({Key? key}) : super(key: key); + const DesktopBuyIcon({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { @@ -89,12 +90,13 @@ class DesktopBuyIcon extends ConsumerWidget { } class DesktopNotificationsIcon extends ConsumerWidget { - const DesktopNotificationsIcon({Key? key}) : super(key: key); + const DesktopNotificationsIcon({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { - return ref.watch(notificationsProvider - .select((value) => value.hasUnreadNotifications)) + return ref.watch( + notificationsProvider.select((value) => value.hasUnreadNotifications), + ) ? SvgPicture.file( File( ref.watch( @@ -110,8 +112,10 @@ class DesktopNotificationsIcon extends ConsumerWidget { Assets.svg.bell, width: 20, height: 20, - color: ref.watch(notificationsProvider - .select((value) => value.hasUnreadNotifications)) + color: ref.watch( + notificationsProvider + .select((value) => value.hasUnreadNotifications), + ) ? null : DesktopMenuItemId.notifications == ref.watch(currentDesktopMenuItemProvider.state).state @@ -127,7 +131,7 @@ class DesktopNotificationsIcon extends ConsumerWidget { } class DesktopAddressBookIcon extends ConsumerWidget { - const DesktopAddressBookIcon({Key? key}) : super(key: key); + const DesktopAddressBookIcon({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { @@ -147,7 +151,7 @@ class DesktopAddressBookIcon extends ConsumerWidget { } class DesktopSettingsIcon extends ConsumerWidget { - const DesktopSettingsIcon({Key? key}) : super(key: key); + const DesktopSettingsIcon({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { @@ -167,7 +171,7 @@ class DesktopSettingsIcon extends ConsumerWidget { } class DesktopSupportIcon extends ConsumerWidget { - const DesktopSupportIcon({Key? key}) : super(key: key); + const DesktopSupportIcon({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { @@ -187,7 +191,7 @@ class DesktopSupportIcon extends ConsumerWidget { } class DesktopAboutIcon extends ConsumerWidget { - const DesktopAboutIcon({Key? key}) : super(key: key); + const DesktopAboutIcon({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { @@ -207,7 +211,7 @@ class DesktopAboutIcon extends ConsumerWidget { } class DesktopExitIcon extends ConsumerWidget { - const DesktopExitIcon({Key? key}) : super(key: key); + const DesktopExitIcon({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { @@ -225,7 +229,7 @@ class DesktopExitIcon extends ConsumerWidget { class DesktopMenuItem extends ConsumerStatefulWidget { const DesktopMenuItem({ - Key? key, + super.key, required this.icon, required this.label, required this.value, @@ -233,7 +237,7 @@ class DesktopMenuItem extends ConsumerStatefulWidget { required this.duration, this.labelLength = 125, this.controller, - }) : super(key: key); + }); final Widget icon; final String label; @@ -350,7 +354,7 @@ class _DesktopMenuItemState extends ConsumerState> ), ), ), - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/lelantus_coins/lelantus_coins_view.dart b/lib/pages_desktop_specific/lelantus_coins/lelantus_coins_view.dart index 12b118cba..61624a272 100644 --- a/lib/pages_desktop_specific/lelantus_coins/lelantus_coins_view.dart +++ b/lib/pages_desktop_specific/lelantus_coins/lelantus_coins_view.dart @@ -24,9 +24,9 @@ import '../../widgets/rounded_white_container.dart'; class LelantusCoinsView extends ConsumerStatefulWidget { const LelantusCoinsView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/lelantusCoinsView"; diff --git a/lib/pages_desktop_specific/my_stack_view/coin_wallets_table.dart b/lib/pages_desktop_specific/my_stack_view/coin_wallets_table.dart index 70c11546c..e440af8fe 100644 --- a/lib/pages_desktop_specific/my_stack_view/coin_wallets_table.dart +++ b/lib/pages_desktop_specific/my_stack_view/coin_wallets_table.dart @@ -117,9 +117,9 @@ class CoinWalletsTable extends ConsumerWidget { class WalletRowHoverOverlay extends StatefulWidget { const WalletRowHoverOverlay({ - Key? key, + super.key, required this.onPressed, - }) : super(key: key); + }); final VoidCallback onPressed; diff --git a/lib/pages_desktop_specific/my_stack_view/desktop_favorite_wallets.dart b/lib/pages_desktop_specific/my_stack_view/desktop_favorite_wallets.dart index 994a5f949..4ec2e43a4 100644 --- a/lib/pages_desktop_specific/my_stack_view/desktop_favorite_wallets.dart +++ b/lib/pages_desktop_specific/my_stack_view/desktop_favorite_wallets.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../pages/manage_favorites_view/manage_favorites_view.dart'; import '../../pages/wallets_view/sub_widgets/favorite_card.dart'; import '../../themes/stack_colors.dart'; @@ -21,7 +22,7 @@ import '../../wallets/isar/providers/favourite_wallets_provider.dart'; import '../../widgets/custom_buttons/blue_text_button.dart'; class DesktopFavoriteWallets extends ConsumerWidget { - const DesktopFavoriteWallets({Key? key}) : super(key: key); + const DesktopFavoriteWallets({super.key}); static const cardWidth = 220.0; static const cardHeight = 125.0; @@ -78,7 +79,7 @@ class DesktopFavoriteWallets extends ConsumerWidget { width: cardWidth, height: cardHeight, ); - }) + }), ], ), ) @@ -101,7 +102,8 @@ class DesktopFavoriteWallets extends ConsumerWidget { materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius), + Constants.size.circularBorderRadius, + ), ), onPressed: () { Navigator.of(context) diff --git a/lib/pages_desktop_specific/my_stack_view/dialogs/desktop_expanding_wallet_card.dart b/lib/pages_desktop_specific/my_stack_view/dialogs/desktop_expanding_wallet_card.dart index 22fe2250f..5246a6b16 100644 --- a/lib/pages_desktop_specific/my_stack_view/dialogs/desktop_expanding_wallet_card.dart +++ b/lib/pages_desktop_specific/my_stack_view/dialogs/desktop_expanding_wallet_card.dart @@ -27,10 +27,10 @@ import 'package:tuple/tuple.dart'; class DesktopExpandingWalletCard extends StatefulWidget { const DesktopExpandingWalletCard({ - Key? key, + super.key, required this.data, required this.navigatorState, - }) : super(key: key); + }); final Tuple2> data; final NavigatorState navigatorState; diff --git a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart index 57848404b..5c43cb131 100644 --- a/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart @@ -16,9 +16,9 @@ import '../../utilities/text_styles.dart'; class ExitToMyStackButton extends StatelessWidget { const ExitToMyStackButton({ - Key? key, + super.key, this.onPressed, - }) : super(key: key); + }); final VoidCallback? onPressed; diff --git a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart index e981979db..99a55c8dd 100644 --- a/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/my_stack_view.dart @@ -124,7 +124,7 @@ class _DesktopMyStackTitleState extends ConsumerState { Text( "My ${AppConfig.prefix}", style: STextStyles.desktopH3(context), - ) + ), ], ); } diff --git a/lib/pages_desktop_specific/my_stack_view/my_wallets.dart b/lib/pages_desktop_specific/my_stack_view/my_wallets.dart index 1e8789239..70a756452 100644 --- a/lib/pages_desktop_specific/my_stack_view/my_wallets.dart +++ b/lib/pages_desktop_specific/my_stack_view/my_wallets.dart @@ -10,16 +10,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../pages/add_wallet_views/add_wallet_view/add_wallet_view.dart'; -import 'desktop_favorite_wallets.dart'; -import 'wallet_summary_table.dart'; import '../../providers/providers.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/text_styles.dart'; import '../../widgets/custom_buttons/blue_text_button.dart'; +import 'desktop_favorite_wallets.dart'; +import 'wallet_summary_table.dart'; class MyWallets extends ConsumerStatefulWidget { - const MyWallets({Key? key}) : super(key: key); + const MyWallets({super.key}); @override ConsumerState createState() => _MyWalletsState(); @@ -28,8 +29,9 @@ class MyWallets extends ConsumerStatefulWidget { class _MyWalletsState extends ConsumerState { @override Widget build(BuildContext context) { - final showFavorites = ref.watch(prefsChangeNotifierProvider - .select((value) => value.showFavoriteWallets)); + final showFavorites = ref.watch( + prefsChangeNotifierProvider.select((value) => value.showFavoriteWallets), + ); return Padding( padding: const EdgeInsets.only( diff --git a/lib/pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart b/lib/pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart index 4aef6a2ba..023b9fb79 100644 --- a/lib/pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart @@ -13,9 +13,9 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../models/paynym/paynym_account_lite.dart'; import '../../../models/send_view_auto_fill_data.dart'; -import '../wallet_view/sub_widgets/desktop_send.dart'; import '../../../providers/global/locale_provider.dart'; import '../../../providers/global/prefs_provider.dart'; import '../../../providers/global/price_provider.dart'; @@ -30,16 +30,17 @@ import '../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../widgets/desktop/desktop_dialog.dart'; import '../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../widgets/rounded_white_container.dart'; +import '../wallet_view/sub_widgets/desktop_send.dart'; class DesktopPaynymSendDialog extends ConsumerStatefulWidget { const DesktopPaynymSendDialog({ - Key? key, + super.key, required this.walletId, this.autoFillData, this.clipboard = const ClipboardWrapper(), this.barcodeScanner = const BarcodeScannerWrapper(), this.accountLite, - }) : super(key: key); + }); final String walletId; final SendViewAutoFillData? autoFillData; @@ -57,7 +58,8 @@ class _DesktopPaynymSendDialogState @override Widget build(BuildContext context) { final String locale = ref.watch( - localeServiceChangeNotifierProvider.select((value) => value.locale)); + localeServiceChangeNotifierProvider.select((value) => value.locale), + ); final coin = ref.watch(pWalletCoin(widget.walletId)); @@ -126,9 +128,11 @@ class _DesktopPaynymSendDialogState crossAxisAlignment: CrossAxisAlignment.end, children: [ Text( - ref.watch(pAmountFormatter(coin)).format(ref - .watch(pWalletBalance(widget.walletId)) - .spendable), + ref.watch(pAmountFormatter(coin)).format( + ref + .watch(pWalletBalance(widget.walletId)) + .spendable, + ), style: STextStyles.titleBold12(context), textAlign: TextAlign.right, ), @@ -142,16 +146,18 @@ class _DesktopPaynymSendDialogState ), )).toAmount(fractionDigits: 2).fiatString( locale: locale, - )} ${ref.watch(prefsChangeNotifierProvider.select( - (value) => value.currency, - ))}", + )} ${ref.watch( + prefsChangeNotifierProvider.select( + (value) => value.currency, + ), + )}", style: STextStyles.baseXS(context).copyWith( color: Theme.of(context) .extension()! .textSubtitle1, ), textAlign: TextAlign.right, - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart b/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart index 762e0f58f..f38296cd5 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart @@ -186,7 +186,7 @@ class _DesktopWalletSummaryRowState .extension()! .textDark, ), - ) + ), ], ), ), @@ -218,7 +218,7 @@ class _DesktopWalletSummaryRowState } class TablePriceInfo extends ConsumerWidget { - const TablePriceInfo({Key? key, required this.coin}) : super(key: key); + const TablePriceInfo({super.key, required this.coin}); final CryptoCurrency coin; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart index 9f4c17780..e30245c4d 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_token_view.dart @@ -36,10 +36,10 @@ import '../../../widgets/rounded_white_container.dart'; /// [eventBus] should only be set during testing class DesktopTokenView extends ConsumerStatefulWidget { const DesktopTokenView({ - Key? key, + super.key, required this.walletId, this.eventBus, - }) : super(key: key); + }); static const String routeName = "/desktopTokenView"; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart index 58ae825ff..83dc57784 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart @@ -16,18 +16,13 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart'; import '../../../pages/token_view/my_tokens_view.dart'; import '../../../pages/wallet_view/sub_widgets/transactions_list.dart'; import '../../../pages/wallet_view/transaction_views/all_transactions_view.dart'; import '../../../pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; import '../../../pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart'; -import 'sub_widgets/desktop_wallet_features.dart'; -import 'sub_widgets/desktop_wallet_summary.dart'; -import 'sub_widgets/my_wallet.dart'; -import 'sub_widgets/network_info_button.dart'; -import 'sub_widgets/wallet_keys_button.dart'; -import 'sub_widgets/wallet_options_button.dart'; import '../../../providers/global/active_wallet_provider.dart'; import '../../../providers/global/auto_swb_service_provider.dart'; import '../../../providers/providers.dart'; @@ -48,14 +43,20 @@ import '../../../widgets/desktop/desktop_app_bar.dart'; import '../../../widgets/desktop/desktop_scaffold.dart'; import '../../../widgets/hover_text_field.dart'; import '../../../widgets/rounded_white_container.dart'; +import 'sub_widgets/desktop_wallet_features.dart'; +import 'sub_widgets/desktop_wallet_summary.dart'; +import 'sub_widgets/my_wallet.dart'; +import 'sub_widgets/network_info_button.dart'; +import 'sub_widgets/wallet_keys_button.dart'; +import 'sub_widgets/wallet_options_button.dart'; /// [eventBus] should only be set during testing class DesktopWalletView extends ConsumerStatefulWidget { const DesktopWalletView({ - Key? key, + super.key, required this.walletId, this.eventBus, - }) : super(key: key); + }); static const String routeName = "/desktopWalletView"; @@ -127,8 +128,9 @@ class _DesktopWalletViewState extends ConsumerState { eventBus = widget.eventBus != null ? widget.eventBus! : GlobalEventBus.instance; - WidgetsBinding.instance.addPostFrameCallback((_) => - ref.read(currentWalletIdProvider.notifier).state = wallet.walletId); + WidgetsBinding.instance.addPostFrameCallback( + (_) => ref.read(currentWalletIdProvider.notifier).state = wallet.walletId, + ); if (!wallet.shouldAutoSync) { // // enable auto sync if it wasn't enabled when loading wallet diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart index a3132262b..5e1252be4 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/address_book_address_chooser.dart @@ -11,8 +11,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../../../../models/isar/models/contact_entry.dart'; -import 'sub_widgets/contact_list_item.dart'; import '../../../../../providers/global/address_book_service_provider.dart'; import '../../../../../themes/stack_colors.dart'; import '../../../../../utilities/assets.dart'; @@ -23,6 +23,7 @@ import '../../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../../widgets/icon_widgets/x_icon.dart'; import '../../../../../widgets/stack_text_field.dart'; import '../../../../../widgets/textfield_icon_button.dart'; +import 'sub_widgets/contact_list_item.dart'; class AddressBookAddressChooser extends StatefulWidget { const AddressBookAddressChooser({ @@ -69,8 +70,9 @@ class _AddressBookAddressChooserState extends State { List filter(List contacts, String searchTerm) { if (widget.coin != null) { - contacts.removeWhere((e) => - e.addressesSorted.where((a) => a.coin == widget.coin!).isEmpty); + contacts.removeWhere( + (e) => e.addressesSorted.where((a) => a.coin == widget.coin!).isEmpty, + ); } contacts.retainWhere((e) => _matches(searchTerm, e)); @@ -202,8 +204,10 @@ class _AddressBookAddressChooserState extends State { child: Consumer( builder: (context, ref, _) { List contacts = ref - .watch(addressBookServiceProvider - .select((value) => value.contacts)) + .watch( + addressBookServiceProvider + .select((value) => value.contacts), + ) .toList(); contacts = filter(contacts, _searchTerm); @@ -227,7 +231,8 @@ class _AddressBookAddressChooserState extends State { if (index == 0) { return Padding( key: const Key( - "addressBookCAddressChooserFavoritesHeaderItemKey"), + "addressBookCAddressChooserFavoritesHeaderItemKey", + ), padding: const EdgeInsets.only( bottom: 10, ), @@ -247,7 +252,8 @@ class _AddressBookAddressChooserState extends State { } else if (index == favorites.length + 1) { return Padding( key: const Key( - "addressBookCAddressChooserAllContactsHeaderItemKey"), + "addressBookCAddressChooserAllContactsHeaderItemKey", + ), padding: const EdgeInsets.symmetric( vertical: 10, ), diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/sub_widgets/contact_list_item.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/sub_widgets/contact_list_item.dart index be7d7d138..bb7c00cea 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/sub_widgets/contact_list_item.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/address_book_address_chooser/sub_widgets/contact_list_item.dart @@ -10,6 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../../../../providers/global/address_book_service_provider.dart'; import '../../../../../../themes/stack_colors.dart'; import '../../../../../../utilities/text_styles.dart'; @@ -49,8 +50,10 @@ class _ContactListItemState extends ConsumerState { @override Widget build(BuildContext context) { - final contact = ref.watch(addressBookServiceProvider - .select((value) => value.getContactById(contactId))); + final contact = ref.watch( + addressBookServiceProvider + .select((value) => value.getContactById(contactId)), + ); // hack fix until we use a proper database (not Hive) int i = 0; @@ -79,12 +82,14 @@ class _ContactListItemState extends ConsumerState { children: [ // filter addresses by coin is provided before building address list ...contact.addressesSorted - .where((e) => - filterByCoin != null ? e.coin == filterByCoin! : true) + .where( + (e) => filterByCoin != null ? e.coin == filterByCoin! : true, + ) .map( (e) => Column( key: Key( - "contactAddress_${e.address}_${e.label}_${++i}_key"), + "contactAddress_${e.address}_${e.label}_${++i}_key", + ), mainAxisSize: MainAxisSize.min, children: [ Container( @@ -117,9 +122,9 @@ class _ContactListItemState extends ConsumerState { Text( "${contactId == "default" ? e.other! : e.label} (${e.coin.ticker})", style: STextStyles - .desktopTextExtraExtraSmall( - context) - .copyWith( + .desktopTextExtraExtraSmall( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -132,7 +137,8 @@ class _ContactListItemState extends ConsumerState { e.address, style: STextStyles .desktopTextExtraExtraSmall( - context), + context, + ), ), ), ], @@ -151,7 +157,7 @@ class _ContactListItemState extends ConsumerState { ), ], ), - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart index fd5349380..bd6dac13f 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/delete_wallet_keys_popup.dart @@ -30,11 +30,11 @@ import '../../../../widgets/desktop/secondary_button.dart'; class DeleteWalletKeysPopup extends ConsumerStatefulWidget { const DeleteWalletKeysPopup({ - Key? key, + super.key, required this.walletId, required this.words, this.clipboardInterface = const ClipboardWrapper(), - }) : super(key: key); + }); final String walletId; final List words; @@ -188,9 +188,9 @@ class _DeleteWalletKeysPopup extends ConsumerState { class ConfirmDelete extends ConsumerStatefulWidget { const ConfirmDelete({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart index f4dffdb00..c38b33a61 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_auth_send.dart @@ -13,6 +13,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../../../providers/desktop/storage_crypto_handler_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; @@ -170,7 +171,8 @@ class _DesktopAuthSendState extends ConsumerState { ), GestureDetector( key: const Key( - "restoreFromFilePasswordFieldShowPasswordButtonKey"), + "restoreFromFilePasswordFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; @@ -224,7 +226,7 @@ class _DesktopAuthSendState extends ConsumerState { ), ), ], - ) + ), ], ); } diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_balance_toggle_button.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_balance_toggle_button.dart index e873843b1..abe41055c 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_balance_toggle_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_balance_toggle_button.dart @@ -21,9 +21,9 @@ import '../../../../utilities/text_styles.dart'; class DesktopBalanceToggleButton extends ConsumerWidget { const DesktopBalanceToggleButton({ - Key? key, + super.key, this.onPressed, - }) : super(key: key); + }); final VoidCallback? onPressed; @@ -74,9 +74,9 @@ class DesktopBalanceToggleButton extends ConsumerWidget { class DesktopPrivateBalanceToggleButton extends ConsumerWidget { const DesktopPrivateBalanceToggleButton({ - Key? key, + super.key, this.onPressed, - }) : super(key: key); + }); final VoidCallback? onPressed; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart index ddad5fd55..e8c6f89e9 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_delete_wallet_dialog.dart @@ -13,8 +13,8 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../../notifications/show_flush_bar.dart'; -import 'desktop_attention_delete_wallet.dart'; import '../../../../providers/desktop/storage_crypto_handler_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; @@ -26,12 +26,13 @@ import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/loading_indicator.dart'; import '../../../../widgets/stack_text_field.dart'; +import 'desktop_attention_delete_wallet.dart'; class DesktopDeleteWalletDialog extends ConsumerStatefulWidget { const DesktopDeleteWalletDialog({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -54,10 +55,10 @@ class _DesktopDeleteWalletDialog unawaited( showDialog( context: context, - builder: (context) => Column( + builder: (context) => const Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, - children: const [ + children: [ LoadingIndicator( width: 200, height: 200, @@ -190,7 +191,8 @@ class _DesktopDeleteWalletDialog ), GestureDetector( key: const Key( - "desktopDeleteWalletShowPasswordButtonKey"), + "desktopDeleteWalletShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; @@ -252,7 +254,7 @@ class _DesktopDeleteWalletDialog : null, ), ], - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart index a592d60bb..3b25f0dad 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_fee_dropdown.dart @@ -13,6 +13,7 @@ import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../../models/models.dart'; import '../../../../pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart'; import '../../../../providers/global/wallets_provider.dart'; @@ -25,10 +26,6 @@ import '../../../../utilities/assets.dart'; import '../../../../utilities/constants.dart'; import '../../../../utilities/enums/fee_rate_type_enum.dart'; import '../../../../utilities/text_styles.dart'; -import '../../../../wallets/crypto_currency/coins/ethereum.dart'; -import '../../../../wallets/crypto_currency/coins/firo.dart'; -import '../../../../wallets/crypto_currency/coins/monero.dart'; -import '../../../../wallets/crypto_currency/coins/wownero.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; import '../../../../wallets/isar/providers/wallet_info_provider.dart'; @@ -76,9 +73,11 @@ class _DesktopFeeDropDownState extends ConsumerState { switch (feeRateType) { case FeeRateType.fast: if (ref - .read(widget.isToken - ? tokenFeeSessionCacheProvider - : feeSheetSessionCacheProvider) + .read( + widget.isToken + ? tokenFeeSessionCacheProvider + : feeSheetSessionCacheProvider, + ) .fast[amount] == null) { if (widget.isToken == false) { @@ -86,7 +85,9 @@ class _DesktopFeeDropDownState extends ConsumerState { if (coin is Monero || coin is Wownero) { final fee = await wallet.estimateFeeFor( - amount, MoneroTransactionPriority.fast.raw!); + amount, + MoneroTransactionPriority.fast.raw!, + ); ref.read(feeSheetSessionCacheProvider).fast[amount] = fee; } else if (coin is Firo) { final Amount fee; @@ -113,16 +114,20 @@ class _DesktopFeeDropDownState extends ConsumerState { } } return ref - .read(widget.isToken - ? tokenFeeSessionCacheProvider - : feeSheetSessionCacheProvider) + .read( + widget.isToken + ? tokenFeeSessionCacheProvider + : feeSheetSessionCacheProvider, + ) .fast[amount]!; case FeeRateType.average: if (ref - .read(widget.isToken - ? tokenFeeSessionCacheProvider - : feeSheetSessionCacheProvider) + .read( + widget.isToken + ? tokenFeeSessionCacheProvider + : feeSheetSessionCacheProvider, + ) .average[amount] == null) { if (widget.isToken == false) { @@ -130,7 +135,9 @@ class _DesktopFeeDropDownState extends ConsumerState { if (coin is Monero || coin is Wownero) { final fee = await wallet.estimateFeeFor( - amount, MoneroTransactionPriority.regular.raw!); + amount, + MoneroTransactionPriority.regular.raw!, + ); ref.read(feeSheetSessionCacheProvider).average[amount] = fee; } else if (coin is Firo) { final Amount fee; @@ -157,16 +164,20 @@ class _DesktopFeeDropDownState extends ConsumerState { } } return ref - .read(widget.isToken - ? tokenFeeSessionCacheProvider - : feeSheetSessionCacheProvider) + .read( + widget.isToken + ? tokenFeeSessionCacheProvider + : feeSheetSessionCacheProvider, + ) .average[amount]!; case FeeRateType.slow: if (ref - .read(widget.isToken - ? tokenFeeSessionCacheProvider - : feeSheetSessionCacheProvider) + .read( + widget.isToken + ? tokenFeeSessionCacheProvider + : feeSheetSessionCacheProvider, + ) .slow[amount] == null) { if (widget.isToken == false) { @@ -174,7 +185,9 @@ class _DesktopFeeDropDownState extends ConsumerState { if (coin is Monero || coin is Wownero) { final fee = await wallet.estimateFeeFor( - amount, MoneroTransactionPriority.slow.raw!); + amount, + MoneroTransactionPriority.slow.raw!, + ); ref.read(feeSheetSessionCacheProvider).slow[amount] = fee; } else if (coin is Firo) { final Amount fee; @@ -201,9 +214,11 @@ class _DesktopFeeDropDownState extends ConsumerState { } } return ref - .read(widget.isToken - ? tokenFeeSessionCacheProvider - : feeSheetSessionCacheProvider) + .read( + widget.isToken + ? tokenFeeSessionCacheProvider + : feeSheetSessionCacheProvider, + ) .slow[amount]!; default: return Amount.zero; @@ -295,13 +310,13 @@ final sendAmountProvider = class FeeDropDownChild extends ConsumerWidget { const FeeDropDownChild({ - Key? key, + super.key, required this.feeObject, required this.feeRateType, required this.walletId, required this.feeFor, required this.isSelected, - }) : super(key: key); + }); final FeeObject? feeObject; final FeeRateType feeRateType; @@ -322,10 +337,12 @@ class FeeDropDownChild extends ConsumerWidget { ]; String estimatedTimeToBeIncludedInNextBlock( - int targetBlockTime, int estimatedNumberOfBlocks) { - int time = targetBlockTime * estimatedNumberOfBlocks; + int targetBlockTime, + int estimatedNumberOfBlocks, + ) { + final int time = targetBlockTime * estimatedNumberOfBlocks; - int hours = (time / 3600).floor(); + final int hours = (time / 3600).floor(); if (hours > 1) { return "~$hours hours"; } else if (hours == 1) { diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart index 974e1f7f2..78031971e 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart @@ -17,6 +17,8 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; import 'package:qr_flutter/qr_flutter.dart'; +import 'package:tuple/tuple.dart'; + import '../../../../models/isar/models/isar_models.dart'; import '../../../../notifications/show_flush_bar.dart'; import '../../../../pages/receive_view/generate_receiving_uri_qr_code_view.dart'; @@ -41,7 +43,6 @@ import '../../../../widgets/custom_loading_overlay.dart'; import '../../../../widgets/desktop/desktop_dialog.dart'; import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/rounded_white_container.dart'; -import 'package:tuple/tuple.dart'; class DesktopReceive extends ConsumerStatefulWidget { const DesktopReceive({ @@ -345,8 +346,8 @@ class _DesktopReceiveState extends ConsumerState { _sparkAddress ?? "Error", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -370,7 +371,8 @@ class _DesktopReceiveState extends ConsumerState { onTap: () { clipboard.setData( ClipboardData( - text: ref.watch(pWalletReceivingAddress(walletId))), + text: ref.watch(pWalletReceivingAddress(walletId)), + ), ); showFloatingFlushBar( type: FlushBarType.info, @@ -435,8 +437,8 @@ class _DesktopReceiveState extends ConsumerState { child: Text( ref.watch(pWalletReceivingAddress(walletId)), style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart index afa38b49a..43f5eb557 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart @@ -46,13 +46,6 @@ import '../../../../utilities/logger.dart'; import '../../../../utilities/prefs.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; -import '../../../../wallets/crypto_currency/coins/epiccash.dart'; -import '../../../../wallets/crypto_currency/coins/ethereum.dart'; -import '../../../../wallets/crypto_currency/coins/firo.dart'; -import '../../../../wallets/crypto_currency/coins/monero.dart'; -import '../../../../wallets/crypto_currency/coins/stellar.dart'; -import '../../../../wallets/crypto_currency/coins/tezos.dart'; -import '../../../../wallets/crypto_currency/coins/wownero.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../wallets/crypto_currency/intermediate/nano_currency.dart'; import '../../../../wallets/isar/providers/wallet_info_provider.dart'; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart index 8272999c8..490465490 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_token_send.dart @@ -37,7 +37,6 @@ import '../../../../utilities/logger.dart'; import '../../../../utilities/prefs.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; -import '../../../../wallets/crypto_currency/coins/firo.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; import '../../../../wallets/isar/providers/eth/token_balance_provider.dart'; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart index 0f55a7c70..2fa0ee1eb 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart @@ -152,7 +152,7 @@ class _DesktopWalletFeaturesState extends ConsumerState { _attemptAnonymize(), ); }, - ) + ), ], ), ], @@ -261,7 +261,7 @@ class _DesktopWalletFeaturesState extends ConsumerState { ), ), ], - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart index ee2c69156..5f0e0f69b 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_summary.dart @@ -10,9 +10,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../../models/balance.dart'; import '../../../../pages/wallet_view/sub_widgets/wallet_refresh_button.dart'; -import 'desktop_balance_toggle_button.dart'; import '../../../../providers/providers.dart'; import '../../../../providers/wallet/public_private_balance_state_provider.dart'; import '../../../../providers/wallet/wallet_balance_toggle_state_provider.dart'; @@ -26,14 +26,15 @@ import '../../../../wallets/crypto_currency/coins/firo.dart'; import '../../../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; import '../../../../wallets/isar/providers/eth/token_balance_provider.dart'; import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import 'desktop_balance_toggle_button.dart'; class DesktopWalletSummary extends ConsumerStatefulWidget { const DesktopWalletSummary({ - Key? key, + super.key, required this.walletId, required this.initialSyncStatus, this.isToken = false, - }) : super(key: key); + }); final String walletId; final WalletSyncStatus initialSyncStatus; @@ -65,7 +66,8 @@ class _WDesktopWalletSummaryState extends ConsumerState { final coin = ref.watch(pWalletCoin(widget.walletId)); final isFiro = coin is Firo; final locale = ref.watch( - localeServiceChangeNotifierProvider.select((value) => value.locale)); + localeServiceChangeNotifierProvider.select((value) => value.locale), + ); final baseCurrency = ref .watch(prefsChangeNotifierProvider.select((value) => value.currency)); @@ -75,10 +77,14 @@ class _WDesktopWalletSummaryState extends ConsumerState { : null; final priceTuple = widget.isToken - ? ref.watch(priceAnd24hChangeNotifierProvider - .select((value) => value.getTokenPrice(tokenContract!.address))) - : ref.watch(priceAnd24hChangeNotifierProvider - .select((value) => value.getPrice(coin))); + ? ref.watch( + priceAnd24hChangeNotifierProvider + .select((value) => value.getTokenPrice(tokenContract!.address)), + ) + : ref.watch( + priceAnd24hChangeNotifierProvider + .select((value) => value.getPrice(coin)), + ); final _showAvailable = ref.watch(walletBalanceToggleStateProvider.state).state == @@ -103,9 +109,12 @@ class _WDesktopWalletSummaryState extends ConsumerState { break; } } else { - Balance balance = widget.isToken - ? ref.watch(pTokenBalance( - (walletId: walletId, contractAddress: tokenContract!.address))) + final Balance balance = widget.isToken + ? ref.watch( + pTokenBalance( + (walletId: walletId, contractAddress: tokenContract!.address), + ), + ) : ref.watch(pWalletBalance(walletId)); balanceToShow = _showAvailable ? balance.spendable : balance.total; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart index 29507d545..10366c646 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart @@ -28,7 +28,7 @@ import '../../../../../widgets/rounded_container.dart'; class MoreFeaturesDialog extends ConsumerStatefulWidget { const MoreFeaturesDialog({ - Key? key, + super.key, required this.walletId, required this.onPaynymPressed, required this.onCoinControlPressed, @@ -37,7 +37,7 @@ class MoreFeaturesDialog extends ConsumerStatefulWidget { required this.onOrdinalsPressed, required this.onMonkeyPressed, required this.onFusionPressed, - }) : super(key: key); + }); final String walletId; final VoidCallback? onPaynymPressed; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart index df81592c9..092f9884f 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/my_wallet.dart @@ -18,7 +18,6 @@ import 'desktop_receive.dart'; import 'desktop_send.dart'; import 'desktop_token_send.dart'; import '../../../../providers/global/wallets_provider.dart'; -import '../../../../wallets/crypto_currency/coins/ethereum.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../wallets/wallet/impl/bitcoin_frost_wallet.dart'; import '../../../../widgets/custom_tab_view.dart'; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/network_info_button.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/network_info_button.dart index 488f3ac4d..b84332c01 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/network_info_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/network_info_button.dart @@ -30,10 +30,10 @@ import 'package:tuple/tuple.dart'; class NetworkInfoButton extends ConsumerStatefulWidget { const NetworkInfoButton({ - Key? key, + super.key, required this.walletId, this.eventBus, - }) : super(key: key); + }); final String walletId; final EventBus? eventBus; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart index af3d18683..9fb269448 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart @@ -16,9 +16,9 @@ import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; class QRCodeDesktopPopupContent extends StatelessWidget { const QRCodeDesktopPopupContent({ - Key? key, + super.key, required this.value, - }) : super(key: key); + }); final String value; diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart index dddf74318..24dbe3150 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/unlock_wallet_keys_desktop.dart @@ -13,8 +13,8 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../../notifications/show_flush_bar.dart'; -import 'wallet_keys_desktop_popup.dart'; import '../../../../providers/desktop/storage_crypto_handler_provider.dart'; import '../../../../providers/providers.dart'; import '../../../../themes/stack_colors.dart'; @@ -29,12 +29,13 @@ import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/loading_indicator.dart'; import '../../../../widgets/stack_text_field.dart'; +import 'wallet_keys_desktop_popup.dart'; class UnlockWalletKeysDesktop extends ConsumerStatefulWidget { const UnlockWalletKeysDesktop({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -218,7 +219,8 @@ class _UnlockWalletKeysDesktopState children: [ GestureDetector( key: const Key( - "enterUnlockWalletKeysDesktopFieldShowPasswordButtonKey"), + "enterUnlockWalletKeysDesktopFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; @@ -305,7 +307,8 @@ class _UnlockWalletKeysDesktopState ); await Future.delayed( - const Duration(seconds: 1)); + const Duration(seconds: 1), + ); final verified = await ref .read(storageCryptoHandlerProvider) @@ -349,7 +352,8 @@ class _UnlockWalletKeysDesktopState Navigator.of(context, rootNavigator: true).pop(); await Future.delayed( - const Duration(milliseconds: 300)); + const Duration(milliseconds: 300), + ); unawaited( showFloatingFlushBar( diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_button.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_button.dart index 838e2c363..d58a66c4f 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_button.dart @@ -18,9 +18,9 @@ import '../../../../utilities/text_styles.dart'; class WalletKeysButton extends StatelessWidget { const WalletKeysButton({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; @@ -44,7 +44,7 @@ class WalletKeysButton extends StatelessWidget { name: UnlockWalletKeysDesktop.routeName, arguments: walletId, ), - ) + ), ]; }, ), @@ -71,7 +71,7 @@ class WalletKeysButton extends StatelessWidget { Text( "Wallet keys", style: STextStyles.desktopMenuItemSelected(context), - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_desktop_popup.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_desktop_popup.dart index 61bfcfebf..df9252fe5 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_desktop_popup.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_keys_desktop_popup.dart @@ -12,10 +12,10 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; + import '../../../../notifications/show_flush_bar.dart'; import '../../../../pages/add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; import '../../../../pages/wallet_view/transaction_views/transaction_details_view.dart'; -import 'qr_code_desktop_popup_content.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/address_utils.dart'; import '../../../../utilities/assets.dart'; @@ -26,14 +26,15 @@ import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/rounded_white_container.dart'; +import 'qr_code_desktop_popup_content.dart'; class WalletKeysDesktopPopup extends StatelessWidget { const WalletKeysDesktopPopup({ - Key? key, + super.key, required this.words, this.frostData, this.clipboardInterface = const ClipboardWrapper(), - }) : super(key: key); + }); final List words; final ({String keys, String config})? frostData; @@ -90,14 +91,17 @@ class WalletKeysDesktopPopup extends StatelessWidget { .extension()! .textFieldDefaultBG, padding: const EdgeInsets.symmetric( - horizontal: 12, vertical: 9), + horizontal: 12, + vertical: 9, + ), child: Row( children: [ Flexible( child: SelectableText( frostData!.keys, style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), textAlign: TextAlign.center, ), ), @@ -106,7 +110,7 @@ class WalletKeysDesktopPopup extends StatelessWidget { ), IconCopyButton( data: frostData!.keys, - ) + ), // TODO [prio=low: Add QR code button and dialog. ], ), @@ -133,14 +137,17 @@ class WalletKeysDesktopPopup extends StatelessWidget { .extension()! .textFieldDefaultBG, padding: const EdgeInsets.symmetric( - horizontal: 12, vertical: 9), + horizontal: 12, + vertical: 9, + ), child: Row( children: [ Flexible( child: SelectableText( frostData!.config, style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), textAlign: TextAlign.center, ), ), @@ -149,7 +156,7 @@ class WalletKeysDesktopPopup extends StatelessWidget { ), IconCopyButton( data: frostData!.config, - ) + ), // TODO [prio=low: Add QR code button and dialog. ], ), diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_options_button.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_options_button.dart index 23922cd2e..93a084c0e 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_options_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/wallet_options_button.dart @@ -14,13 +14,10 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../../pages/settings_views/wallet_settings_view/frost_ms/frost_ms_options_view.dart'; import '../../../../pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart'; import '../../../../pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart'; -import '../../../addresses/desktop_wallet_addresses_view.dart'; -import '../../../lelantus_coins/lelantus_coins_view.dart'; -import 'desktop_delete_wallet_dialog.dart'; -import '../../../spark_coins/spark_coins_view.dart'; import '../../../../route_generator.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; @@ -30,6 +27,10 @@ import '../../../../wallets/crypto_currency/coins/firo.dart'; import '../../../../wallets/crypto_currency/intermediate/frost_currency.dart'; import '../../../../wallets/crypto_currency/intermediate/nano_currency.dart'; import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../addresses/desktop_wallet_addresses_view.dart'; +import '../../../lelantus_coins/lelantus_coins_view.dart'; +import '../../../spark_coins/spark_coins_view.dart'; +import 'desktop_delete_wallet_dialog.dart'; enum _WalletOptions { addressList, @@ -327,8 +328,8 @@ class WalletOptionsPopupMenu extends ConsumerWidget { child: Text( _WalletOptions.addressList.prettyName, style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -364,8 +365,8 @@ class WalletOptionsPopupMenu extends ConsumerWidget { child: Text( _WalletOptions.changeRepresentative.prettyName, style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -401,8 +402,8 @@ class WalletOptionsPopupMenu extends ConsumerWidget { child: Text( _WalletOptions.lelantusCoins.prettyName, style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -438,8 +439,8 @@ class WalletOptionsPopupMenu extends ConsumerWidget { child: Text( _WalletOptions.sparkCoins.prettyName, style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -475,8 +476,8 @@ class WalletOptionsPopupMenu extends ConsumerWidget { child: Text( _WalletOptions.frostOptions.prettyName, style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -512,8 +513,8 @@ class WalletOptionsPopupMenu extends ConsumerWidget { child: Text( _WalletOptions.showXpub.prettyName, style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -547,8 +548,8 @@ class WalletOptionsPopupMenu extends ConsumerWidget { child: Text( _WalletOptions.deleteWallet.prettyName, style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark, @@ -571,10 +572,10 @@ class WalletOptionsPopupMenu extends ConsumerWidget { class TransparentButton extends StatelessWidget { const TransparentButton({ - Key? key, + super.key, required this.child, this.onPressed, - }) : super(key: key); + }); final Widget child; final VoidCallback? onPressed; diff --git a/lib/pages_desktop_specific/notifications/desktop_notifications_view.dart b/lib/pages_desktop_specific/notifications/desktop_notifications_view.dart index bc05bafa6..e4c04fa50 100644 --- a/lib/pages_desktop_specific/notifications/desktop_notifications_view.dart +++ b/lib/pages_desktop_specific/notifications/desktop_notifications_view.dart @@ -20,7 +20,7 @@ import '../../widgets/desktop/desktop_scaffold.dart'; import '../../widgets/rounded_white_container.dart'; class DesktopNotificationsView extends ConsumerStatefulWidget { - const DesktopNotificationsView({Key? key}) : super(key: key); + const DesktopNotificationsView({super.key}); static const String routeName = "/desktopNotifications"; diff --git a/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart b/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart index 83a865e1e..4aff4afb0 100644 --- a/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart +++ b/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart @@ -5,6 +5,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; + import '../../models/isar/models/blockchain_data/utxo.dart'; import '../../models/isar/ordinal.dart'; import '../../networking/http.dart'; @@ -29,10 +30,10 @@ import '../../widgets/rounded_white_container.dart'; class DesktopOrdinalDetailsView extends ConsumerStatefulWidget { const DesktopOrdinalDetailsView({ - Key? key, + super.key, required this.walletId, required this.ordinal, - }) : super(key: key); + }); final String walletId; final Ordinal ordinal; @@ -51,7 +52,7 @@ class _DesktopOrdinalDetailsViewState late final UTXO? utxo; Future _savePngToFile() async { - HTTP client = HTTP(); + final HTTP client = HTTP(); final response = await client.get( url: Uri.parse(widget.ordinal.content), @@ -62,7 +63,8 @@ class _DesktopOrdinalDetailsViewState if (response.code != 200) { throw Exception( - "DesktopOrdinalDetailsView _savePngToFile statusCode=${response.code} body=${response.bodyBytes}"); + "DesktopOrdinalDetailsView _savePngToFile statusCode=${response.code} body=${response.bodyBytes}", + ); } final bytes = response.bodyBytes; @@ -78,7 +80,7 @@ class _DesktopOrdinalDetailsViewState final docPath = dir.path; final filePath = "$docPath/ordinal_${widget.ordinal.inscriptionNumber}.png"; - File imgFile = File(filePath); + final File imgFile = File(filePath); if (imgFile.existsSync()) { throw Exception("File already exists"); @@ -284,24 +286,30 @@ class _DesktopOrdinalDetailsViewState // ), // // todo: add utxo status const _Divider(), - Consumer(builder: (context, ref, _) { - final coin = ref - .watch(pWallets) - .getWallet(widget.walletId) - .info - .coin; - return _DetailsItemWCopy( - title: "Amount", - data: utxo == null - ? "ERROR" - : ref.watch(pAmountFormatter(coin)).format( - Amount( - rawValue: BigInt.from(utxo!.value), - fractionDigits: coin.fractionDigits, + Consumer( + builder: (context, ref, _) { + final coin = ref + .watch(pWallets) + .getWallet(widget.walletId) + .info + .coin; + return _DetailsItemWCopy( + title: "Amount", + data: utxo == null + ? "ERROR" + : ref + .watch(pAmountFormatter(coin)) + .format( + Amount( + rawValue: + BigInt.from(utxo!.value), + fractionDigits: + coin.fractionDigits, + ), ), - ), - ); - }), + ); + }, + ), const _Divider(), _DetailsItemWCopy( title: "Owner address", @@ -328,7 +336,7 @@ class _DesktopOrdinalDetailsViewState } class _Divider extends StatelessWidget { - const _Divider({Key? key}) : super(key: key); + const _Divider({super.key}); @override Widget build(BuildContext context) { @@ -346,10 +354,10 @@ class _Divider extends StatelessWidget { class _DetailsItemWCopy extends StatelessWidget { const _DetailsItemWCopy({ - Key? key, + super.key, required this.title, required this.data, - }) : super(key: key); + }); final String title; final String data; diff --git a/lib/pages_desktop_specific/ordinals/desktop_ordinals_view.dart b/lib/pages_desktop_specific/ordinals/desktop_ordinals_view.dart index 3ab866f27..29291510e 100644 --- a/lib/pages_desktop_specific/ordinals/desktop_ordinals_view.dart +++ b/lib/pages_desktop_specific/ordinals/desktop_ordinals_view.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../pages/ordinals/widgets/ordinals_list.dart'; import '../../providers/providers.dart'; import '../../themes/stack_colors.dart'; @@ -41,7 +42,7 @@ class _DesktopOrdinals extends ConsumerState { late final TextEditingController searchController; late final FocusNode searchFocusNode; - String _searchTerm = ""; + final String _searchTerm = ""; @override void initState() { @@ -106,7 +107,7 @@ class _DesktopOrdinals extends ConsumerState { Text( "Ordinals", style: STextStyles.desktopH3(context), - ) + ), ], ), ), @@ -210,15 +211,16 @@ class _DesktopOrdinals extends ConsumerState { onPressed: () async { // show loading for a minimum of 2 seconds on refreshing await showLoading( - rootNavigator: true, - whileFuture: Future.wait([ - Future.delayed(const Duration(seconds: 2)), - (ref.read(pWallets).getWallet(widget.walletId) - as OrdinalsInterface) - .refreshInscriptions() - ]), - context: context, - message: "Refreshing..."); + rootNavigator: true, + whileFuture: Future.wait([ + Future.delayed(const Duration(seconds: 2)), + (ref.read(pWallets).getWallet(widget.walletId) + as OrdinalsInterface) + .refreshInscriptions(), + ]), + context: context, + message: "Refreshing...", + ); }, ), ], diff --git a/lib/pages_desktop_specific/password/create_password_view.dart b/lib/pages_desktop_specific/password/create_password_view.dart index 31f070982..5f318a1bc 100644 --- a/lib/pages_desktop_specific/password/create_password_view.dart +++ b/lib/pages_desktop_specific/password/create_password_view.dart @@ -13,9 +13,9 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:zxcvbn/zxcvbn.dart'; + import '../../notifications/show_flush_bar.dart'; -import '../desktop_home_view.dart'; -import 'forgotten_passphrase_restore_from_swb.dart'; import '../../providers/desktop/storage_crypto_handler_provider.dart'; import '../../providers/global/secure_store_provider.dart'; import '../../providers/providers.dart'; @@ -29,13 +29,14 @@ import '../../widgets/desktop/desktop_app_bar.dart'; import '../../widgets/desktop/desktop_scaffold.dart'; import '../../widgets/progress_bar.dart'; import '../../widgets/stack_text_field.dart'; -import 'package:zxcvbn/zxcvbn.dart'; +import '../desktop_home_view.dart'; +import 'forgotten_passphrase_restore_from_swb.dart'; class CreatePasswordView extends ConsumerStatefulWidget { const CreatePasswordView({ - Key? key, + super.key, this.restoreFromSWB = false, - }) : super(key: key); + }); static const String routeName = "/createPasswordDesktop"; final bool restoreFromSWB; @@ -77,20 +78,24 @@ class _CreatePasswordViewState extends ConsumerState { final String repeatPassphrase = passwordRepeatController.text; if (passphrase.isEmpty) { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "A password is required", - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "A password is required", + context: context, + ), + ); _nextLock = false; return; } if (passphrase != repeatPassphrase) { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "Password does not match", - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Password does not match", + context: context, + ), + ); _nextLock = false; return; } @@ -98,7 +103,8 @@ class _CreatePasswordViewState extends ConsumerState { try { if (await ref.read(storageCryptoHandlerProvider).hasPassword()) { throw Exception( - "Tried creating a new password and attempted to overwrite an existing entry!"); + "Tried creating a new password and attempted to overwrite an existing entry!", + ); } await ref.read(storageCryptoHandlerProvider).initFromNew(passphrase); @@ -110,11 +116,13 @@ class _CreatePasswordViewState extends ConsumerState { await ref.read(nodeServiceChangeNotifierProvider).updateDefaults(); } } catch (e) { - unawaited(showFloatingFlushBar( - type: FlushBarType.warning, - message: "Error: $e", - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Error: $e", + context: context, + ), + ); _nextLock = false; return; } @@ -136,11 +144,13 @@ class _CreatePasswordViewState extends ConsumerState { } if (!widget.restoreFromSWB && mounted) { - unawaited(showFloatingFlushBar( - type: FlushBarType.success, - message: "Your password is set up", - context: context, - )); + unawaited( + showFloatingFlushBar( + type: FlushBarType.success, + message: "Your password is set up", + context: context, + ), + ); } _nextLock = false; } @@ -231,7 +241,8 @@ class _CreatePasswordViewState extends ConsumerState { children: [ GestureDetector( key: const Key( - "createDesktopPasswordFieldShowPasswordButtonKey"), + "createDesktopPasswordFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; @@ -279,7 +290,7 @@ class _CreatePasswordViewState extends ConsumerState { } final result = zxcvbn.evaluate(newValue); String suggestionsAndTips = ""; - for (var sug + for (final sug in result.feedback.suggestions!.toSet()) { suggestionsAndTips += "$sug\n"; } @@ -293,7 +304,9 @@ class _CreatePasswordViewState extends ConsumerState { // hack fix to format back string returned from zxcvbn if (feedback.contains("phrasesNo need")) { feedback = feedback.replaceFirst( - "phrasesNo need", "phrases\nNo need"); + "phrasesNo need", + "phrases\nNo need", + ); } if (feedback.endsWith("\n")) { @@ -385,7 +398,8 @@ class _CreatePasswordViewState extends ConsumerState { children: [ GestureDetector( key: const Key( - "createDesktopPasswordFieldShowPasswordButtonKey2"), + "createDesktopPasswordFieldShowPasswordButtonKey2", + ), onTap: () async { setState(() { hidePassword = !hidePassword; diff --git a/lib/pages_desktop_specific/password/desktop_login_view.dart b/lib/pages_desktop_specific/password/desktop_login_view.dart index 62e3b70fe..54d00c789 100644 --- a/lib/pages_desktop_specific/password/desktop_login_view.dart +++ b/lib/pages_desktop_specific/password/desktop_login_view.dart @@ -63,8 +63,10 @@ class _DesktopLoginViewState extends ConsumerState { Future _checkDesktopMigrate() async { if (Util.isDesktop) { - int dbVersion = DB.instance.get( - boxName: DB.boxNameDBInfo, key: "hive_data_version") as int? ?? + final int dbVersion = DB.instance.get( + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + ) as int? ?? 0; if (dbVersion < Constants.currentDataVersion) { try { @@ -73,8 +75,11 @@ class _DesktopLoginViewState extends ConsumerState { secureStore: ref.read(secureStoreProvider), ); } catch (e, s) { - Logging.instance.log("Cannot migrate desktop database\n$e $s", - level: LogLevel.Error, printFullLength: true); + Logging.instance.log( + "Cannot migrate desktop database\n$e $s", + level: LogLevel.Error, + printFullLength: true, + ); } } } @@ -249,12 +254,16 @@ class _DesktopLoginViewState extends ConsumerState { hoverColor: Colors.transparent, enabledBorder: OutlineInputBorder( borderSide: const BorderSide( - color: Colors.transparent, width: 1), + color: Colors.transparent, + width: 1, + ), borderRadius: BorderRadius.circular(10), ), focusedBorder: OutlineInputBorder( borderSide: const BorderSide( - color: Colors.transparent, width: 1), + color: Colors.transparent, + width: 1, + ), borderRadius: BorderRadius.circular(10), ), contentPadding: const EdgeInsets.only( @@ -273,7 +282,8 @@ class _DesktopLoginViewState extends ConsumerState { ), GestureDetector( key: const Key( - "restoreFromFilePasswordFieldShowPasswordButtonKey"), + "restoreFromFilePasswordFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; diff --git a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart index bb2e6e816..173840528 100644 --- a/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart +++ b/lib/pages_desktop_specific/password/forgotten_passphrase_restore_from_swb.dart @@ -42,7 +42,7 @@ import '../../widgets/stack_text_field.dart'; import 'create_password_view.dart'; class ForgottenPassphraseRestoreFromSWB extends ConsumerStatefulWidget { - const ForgottenPassphraseRestoreFromSWB({Key? key}) : super(key: key); + const ForgottenPassphraseRestoreFromSWB({super.key}); static const String routeName = "/forgottenPassphraseRestoreFromSWB"; @@ -360,7 +360,8 @@ class _ForgottenPassphraseRestoreFromSWBState ), GestureDetector( key: const Key( - "restoreFromFilePasswordFieldShowPasswordButtonKey"), + "restoreFromFilePasswordFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; diff --git a/lib/pages_desktop_specific/settings/desktop_settings_view.dart b/lib/pages_desktop_specific/settings/desktop_settings_view.dart index 3ecf30375..7ab75026d 100644 --- a/lib/pages_desktop_specific/settings/desktop_settings_view.dart +++ b/lib/pages_desktop_specific/settings/desktop_settings_view.dart @@ -27,7 +27,7 @@ import '../../widgets/desktop/desktop_app_bar.dart'; import '../../widgets/desktop/desktop_scaffold.dart'; class DesktopSettingsView extends ConsumerStatefulWidget { - const DesktopSettingsView({Key? key}) : super(key: key); + const DesktopSettingsView({super.key}); static const String routeName = "/desktopSettings"; @@ -123,7 +123,7 @@ class _DesktopSettingsViewState extends ConsumerState { } class DesktopSettingsTitle extends StatelessWidget { - const DesktopSettingsTitle({Key? key}) : super(key: key); + const DesktopSettingsTitle({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pages_desktop_specific/settings/settings_menu.dart b/lib/pages_desktop_specific/settings/settings_menu.dart index d12cdea34..16b1a438b 100644 --- a/lib/pages_desktop_specific/settings/settings_menu.dart +++ b/lib/pages_desktop_specific/settings/settings_menu.dart @@ -11,16 +11,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'settings_menu_item.dart'; + import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; +import 'settings_menu_item.dart'; final selectedSettingsMenuItemStateProvider = StateProvider((_) => 0); class SettingsMenu extends ConsumerStatefulWidget { const SettingsMenu({ - Key? key, - }) : super(key: key); + super.key, + }); @override ConsumerState createState() => _SettingsMenuState(); @@ -65,8 +66,10 @@ class _SettingsMenuState extends ConsumerState { width: 11, height: 11, color: ref - .watch(selectedSettingsMenuItemStateProvider - .state) + .watch( + selectedSettingsMenuItemStateProvider + .state, + ) .state == i ? Theme.of(context) diff --git a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/advanced_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/advanced_settings.dart index 69661e04c..029c5e294 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/advanced_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/advanced_settings.dart @@ -11,10 +11,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../../pages/settings_views/global_settings_view/advanced_views/manage_coin_units/manage_coin_units_view.dart'; -import 'debug_info_dialog.dart'; -import 'desktop_manage_block_explorers_dialog.dart'; -import 'stack_privacy_dialog.dart'; import '../../../../providers/global/prefs_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; @@ -22,9 +20,12 @@ import '../../../../utilities/text_styles.dart'; import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/rounded_white_container.dart'; +import 'debug_info_dialog.dart'; +import 'desktop_manage_block_explorers_dialog.dart'; +import 'stack_privacy_dialog.dart'; class AdvancedSettings extends ConsumerStatefulWidget { - const AdvancedSettings({Key? key}) : super(key: key); + const AdvancedSettings({super.key}); static const String routeName = "/settingsMenuAdvanced"; @@ -73,7 +74,8 @@ class _AdvancedSettings extends ConsumerState { text: "\n\nConfigure these settings only if you know what you are doing!", style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), ), ], ), @@ -94,9 +96,10 @@ class _AdvancedSettings extends ConsumerState { "Toggle testnet coins", style: STextStyles.desktopTextExtraSmall(context) .copyWith( - color: Theme.of(context) - .extension()! - .textDark), + color: Theme.of(context) + .extension()! + .textDark, + ), textAlign: TextAlign.left, ), SizedBox( @@ -105,7 +108,8 @@ class _AdvancedSettings extends ConsumerState { child: DraggableSwitchButton( isOn: ref.watch( prefsChangeNotifierProvider.select( - (value) => value.showTestNetCoins), + (value) => value.showTestNetCoins, + ), ), onValueChanged: (newValue) { ref @@ -132,9 +136,10 @@ class _AdvancedSettings extends ConsumerState { "Enable coin control", style: STextStyles.desktopTextExtraSmall(context) .copyWith( - color: Theme.of(context) - .extension()! - .textDark), + color: Theme.of(context) + .extension()! + .textDark, + ), textAlign: TextAlign.left, ), SizedBox( @@ -143,7 +148,8 @@ class _AdvancedSettings extends ConsumerState { child: DraggableSwitchButton( isOn: ref.watch( prefsChangeNotifierProvider.select( - (value) => value.enableCoinControl), + (value) => value.enableCoinControl, + ), ), onValueChanged: (newValue) { ref @@ -163,56 +169,62 @@ class _AdvancedSettings extends ConsumerState { ), /// TODO: Make a dialog popup - Consumer(builder: (_, ref, __) { - final externalCalls = ref.watch( - prefsChangeNotifierProvider - .select((value) => value.externalCalls), - ); - return Padding( - padding: const EdgeInsets.all(10), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "Stack Experience", - style: STextStyles.desktopTextExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark), - textAlign: TextAlign.left, - ), - Text( - externalCalls ? "Easy crypto" : "Incognito", - style: - STextStyles.desktopTextExtraExtraSmall( - context), - ), - ], - ), - PrimaryButton( - label: "Change", - buttonHeight: ButtonHeight.xs, - width: 101, - onPressed: () async { - await showDialog( - context: context, - useSafeArea: false, - barrierDismissible: true, - builder: (context) { - return const StackPrivacyDialog(); - }, - ); - }, - ) - ], - ), - ); - }), + Consumer( + builder: (_, ref, __) { + final externalCalls = ref.watch( + prefsChangeNotifierProvider + .select((value) => value.externalCalls), + ); + return Padding( + padding: const EdgeInsets.all(10), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Stack Experience", + style: STextStyles.desktopTextExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textDark, + ), + textAlign: TextAlign.left, + ), + Text( + externalCalls + ? "Easy crypto" + : "Incognito", + style: STextStyles + .desktopTextExtraExtraSmall( + context, + ), + ), + ], + ), + PrimaryButton( + label: "Change", + buttonHeight: ButtonHeight.xs, + width: 101, + onPressed: () async { + await showDialog( + context: context, + useSafeArea: false, + barrierDismissible: true, + builder: (context) { + return const StackPrivacyDialog(); + }, + ); + }, + ), + ], + ), + ); + }, + ), ], ), const Padding( @@ -230,9 +242,10 @@ class _AdvancedSettings extends ConsumerState { "Block explorers", style: STextStyles.desktopTextExtraSmall(context) .copyWith( - color: Theme.of(context) - .extension()! - .textDark), + color: Theme.of(context) + .extension()! + .textDark, + ), textAlign: TextAlign.left, ), PrimaryButton( @@ -268,9 +281,10 @@ class _AdvancedSettings extends ConsumerState { "Units", style: STextStyles.desktopTextExtraSmall(context) .copyWith( - color: Theme.of(context) - .extension()! - .textDark), + color: Theme.of(context) + .extension()! + .textDark, + ), textAlign: TextAlign.left, ), PrimaryButton( @@ -306,9 +320,10 @@ class _AdvancedSettings extends ConsumerState { "Debug info", style: STextStyles.desktopTextExtraSmall(context) .copyWith( - color: Theme.of(context) - .extension()! - .textDark), + color: Theme.of(context) + .extension()! + .textDark, + ), textAlign: TextAlign.left, ), PrimaryButton( diff --git a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/debug_info_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/debug_info_dialog.dart index 177898180..dedfe999d 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/debug_info_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/debug_info_dialog.dart @@ -37,7 +37,7 @@ import '../../../../widgets/stack_text_field.dart'; import '../../../../widgets/textfield_icon_button.dart'; class DebugInfoDialog extends ConsumerStatefulWidget { - const DebugInfoDialog({Key? key}) : super(key: key); + const DebugInfoDialog({super.key}); @override ConsumerState createState() => _DebugInfoDialog(); diff --git a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart index 45eed9054..e69f90833 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/desktop_manage_block_explorers_dialog.dart @@ -13,8 +13,9 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import '../../../../providers/global/prefs_provider.dart'; + import '../../../../app_config.dart'; +import '../../../../providers/global/prefs_provider.dart'; import '../../../../themes/coin_icon_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; @@ -139,8 +140,7 @@ class DesktopManageBlockExplorersDialog extends ConsumerWidget { } class _DesktopEditBlockExplorerDialog extends ConsumerStatefulWidget { - const _DesktopEditBlockExplorerDialog({Key? key, required this.coin}) - : super(key: key); + const _DesktopEditBlockExplorerDialog({super.key, required this.coin}); final CryptoCurrency coin; @@ -157,10 +157,10 @@ class _DesktopEditBlockExplorerDialogState @override void initState() { _textEditingController = TextEditingController( - text: - getBlockExplorerTransactionUrlFor(coin: widget.coin, txid: "[TXID]") - .toString() - .replaceAll("%5BTXID%5D", "[TXID]")); + text: getBlockExplorerTransactionUrlFor(coin: widget.coin, txid: "[TXID]") + .toString() + .replaceAll("%5BTXID%5D", "[TXID]"), + ); _focusNode = FocusNode(); super.initState(); } @@ -268,10 +268,10 @@ class _DesktopEditBlockExplorerDialogState ), ), ], - ) + ), ], ), - ) + ), ], ), ); diff --git a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/stack_privacy_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/stack_privacy_dialog.dart index 8ebf89c70..20a9d9e62 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/stack_privacy_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/advanced_settings/stack_privacy_dialog.dart @@ -14,6 +14,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../../db/hive/db.dart'; import '../../../../providers/global/prefs_provider.dart'; import '../../../../providers/global/price_provider.dart'; @@ -31,7 +32,7 @@ import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/rounded_white_container.dart'; class StackPrivacyDialog extends ConsumerStatefulWidget { - const StackPrivacyDialog({Key? key}) : super(key: key); + const StackPrivacyDialog({super.key}); @override ConsumerState createState() => _StackPrivacyDialog(); @@ -80,7 +81,7 @@ class _StackPrivacyDialog extends ConsumerState { height: 35, ), Padding( - padding: EdgeInsets.symmetric(horizontal: 32), + padding: const EdgeInsets.symmetric(horizontal: 32), child: PrivacyToggle( externalCallsEnabled: isEasy, onChanged: (externalCalls) { @@ -110,16 +111,19 @@ class _StackPrivacyDialog extends ConsumerState { ? [ if (Constants.enableExchange) const TextSpan( - text: - "Exchange data preloaded for a seamless experience."), - const TextSpan( text: - "\n\nCoinGecko enabled: (24 hour price change shown in-app, total wallet value shown in USD or other currency)."), + "Exchange data preloaded for a seamless experience.", + ), + const TextSpan( + text: + "\n\nCoinGecko enabled: (24 hour price change shown in-app, total wallet value shown in USD or other currency).", + ), TextSpan( text: "\n\nRecommended for most crypto users.", style: isDesktop ? STextStyles.desktopTextExtraExtraSmall600( - context) + context, + ) : TextStyle( color: Theme.of(context) .extension()! @@ -130,17 +134,20 @@ class _StackPrivacyDialog extends ConsumerState { ] : [ const TextSpan( - text: - "Exchange data not preloaded (slower experience)."), + text: + "Exchange data not preloaded (slower experience).", + ), const TextSpan( - text: - "\n\nCoinGecko disabled (price changes not shown, no wallet value shown in other currencies)."), + text: + "\n\nCoinGecko disabled (price changes not shown, no wallet value shown in other currencies).", + ), TextSpan( text: "\n\nRecommended for the privacy conscious.", style: isDesktop ? STextStyles.desktopTextExtraExtraSmall600( - context) + context, + ) : TextStyle( color: Theme.of(context) .extension()! @@ -179,9 +186,10 @@ class _StackPrivacyDialog extends ConsumerState { DB.instance .put( - boxName: DB.boxNamePrefs, - key: "externalCalls", - value: isEasy) + boxName: DB.boxNamePrefs, + key: "externalCalls", + value: isEasy, + ) .then((_) { if (isEasy) { unawaited( @@ -197,7 +205,7 @@ class _StackPrivacyDialog extends ConsumerState { } }, ), - ) + ), ], ), ), @@ -209,10 +217,10 @@ class _StackPrivacyDialog extends ConsumerState { class PrivacyToggle extends ConsumerStatefulWidget { const PrivacyToggle({ - Key? key, + super.key, required this.externalCallsEnabled, this.onChanged, - }) : super(key: key); + }); final bool externalCallsEnabled; final void Function(bool)? onChanged; diff --git a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_install_theme.dart b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_install_theme.dart index 1126cbbfe..081540c3b 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_install_theme.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_install_theme.dart @@ -25,7 +25,7 @@ import '../../../../../widgets/desktop/primary_button.dart'; import '../../../../../widgets/rounded_container.dart'; class DesktopInstallTheme extends ConsumerStatefulWidget { - const DesktopInstallTheme({Key? key}) : super(key: key); + const DesktopInstallTheme({super.key}); @override ConsumerState createState() => @@ -228,7 +228,7 @@ class _DesktopInstallThemeState extends ConsumerState { ), ], ), - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_manage_themes.dart b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_manage_themes.dart index bf04e48f1..bf55fe744 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_manage_themes.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_manage_themes.dart @@ -20,7 +20,7 @@ import '../../../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../../../widgets/toggle.dart'; class DesktopManageThemesDialog extends ConsumerStatefulWidget { - const DesktopManageThemesDialog({Key? key}) : super(key: key); + const DesktopManageThemesDialog({super.key}); @override ConsumerState createState() => diff --git a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_themes_gallery.dart b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_themes_gallery.dart index 160fd67f5..4571973c4 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_themes_gallery.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings/sub_widgets/desktop_themes_gallery.dart @@ -12,6 +12,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../../../../pages/settings_views/global_settings_view/appearance_settings/manage_themes.dart'; import '../../../../../pages/settings_views/global_settings_view/appearance_settings/sub_widgets/stack_theme_card.dart'; import '../../../../../providers/global/prefs_provider.dart'; @@ -24,9 +25,9 @@ import '../../../../../widgets/rounded_white_container.dart'; class DesktopThemeGallery extends ConsumerStatefulWidget { const DesktopThemeGallery({ - Key? key, + super.key, required this.dialogWidth, - }) : super(key: key); + }); final double dialogWidth; @@ -90,7 +91,8 @@ class _DesktopThemeGalleryState extends ConsumerState { .map( (e) => SizedBox( key: Key( - "_DesktopThemeGalleryState_card_${e.id}_key"), + "_DesktopThemeGalleryState_card_${e.id}_key", + ), width: (widget.dialogWidth - 64 - 32) / 3, child: StackThemeCard( diff --git a/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/create_auto_backup.dart b/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/create_auto_backup.dart index 80b6faea3..e7225d628 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/create_auto_backup.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/create_auto_backup.dart @@ -18,6 +18,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stack_wallet_backup/stack_wallet_backup.dart'; +import 'package:zxcvbn/zxcvbn.dart'; + import '../../../../notifications/show_flush_bar.dart'; import '../../../../pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; import '../../../../pages/settings_views/global_settings_view/stack_backup_views/helpers/swb_file_system.dart'; @@ -39,12 +41,11 @@ import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/progress_bar.dart'; import '../../../../widgets/stack_dialog.dart'; import '../../../../widgets/stack_text_field.dart'; -import 'package:zxcvbn/zxcvbn.dart'; class CreateAutoBackup extends ConsumerStatefulWidget { const CreateAutoBackup({ - Key? key, - }) : super(key: key); + super.key, + }); @override ConsumerState createState() => _CreateAutoBackup(); @@ -175,72 +176,75 @@ class _CreateAutoBackup extends ConsumerState { crossAxisAlignment: CrossAxisAlignment.stretch, children: [ if (!Platform.isAndroid && !Platform.isIOS) - Consumer(builder: (context, ref, __) { - return Container( - color: Colors.transparent, - child: TextField( - autocorrect: false, - enableSuggestions: false, - onTap: Platform.isAndroid || Platform.isIOS - ? null - : () async { - try { - await stackFileSystem.prepareStorage(); + Consumer( + builder: (context, ref, __) { + return Container( + color: Colors.transparent, + child: TextField( + autocorrect: false, + enableSuggestions: false, + onTap: Platform.isAndroid || Platform.isIOS + ? null + : () async { + try { + await stackFileSystem.prepareStorage(); - if (mounted) { - await stackFileSystem.pickDir(context); - } + if (mounted) { + await stackFileSystem.pickDir(context); + } - if (mounted) { - setState(() { - fileLocationController.text = - stackFileSystem.dirPath ?? ""; - }); + if (mounted) { + setState(() { + fileLocationController.text = + stackFileSystem.dirPath ?? ""; + }); + } + } catch (e, s) { + Logging.instance + .log("$e\n$s", level: LogLevel.Error); } - } catch (e, s) { - Logging.instance - .log("$e\n$s", level: LogLevel.Error); - } - }, - controller: fileLocationController, - style: STextStyles.field(context), - decoration: InputDecoration( - hintText: "Save to...", - hintStyle: STextStyles.fieldLabel(context), - suffixIcon: UnconstrainedBox( - child: Row( - children: [ - const SizedBox( - width: 16, - ), - SvgPicture.asset( - Assets.svg.folder, - color: Theme.of(context) - .extension()! - .textDark3, - width: 16, - height: 16, - ), - const SizedBox( - width: 12, - ), - ], + }, + controller: fileLocationController, + style: STextStyles.field(context), + decoration: InputDecoration( + hintText: "Save to...", + hintStyle: STextStyles.fieldLabel(context), + suffixIcon: UnconstrainedBox( + child: Row( + children: [ + const SizedBox( + width: 16, + ), + SvgPicture.asset( + Assets.svg.folder, + color: Theme.of(context) + .extension()! + .textDark3, + width: 16, + height: 16, + ), + const SizedBox( + width: 12, + ), + ], + ), ), ), + key: const Key( + "createBackupSaveToFileLocationTextFieldKey", + ), + readOnly: true, + toolbarOptions: const ToolbarOptions( + copy: true, + cut: false, + paste: false, + selectAll: false, + ), + onChanged: (newValue) {}, ), - key: const Key( - "createBackupSaveToFileLocationTextFieldKey"), - readOnly: true, - toolbarOptions: const ToolbarOptions( - copy: true, - cut: false, - paste: false, - selectAll: false, - ), - onChanged: (newValue) {}, - ), - ); - }), + ); + }, + ), if (!Platform.isAndroid && !Platform.isIOS) const SizedBox( height: 24, @@ -250,11 +254,12 @@ class _CreateAutoBackup extends ConsumerState { padding: const EdgeInsets.only(bottom: 10.0), child: Text( "Create a passphrase", - style: STextStyles.desktopTextExtraSmall(context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark3), + style: + STextStyles.desktopTextExtraSmall(context).copyWith( + color: Theme.of(context) + .extension()! + .textDark3, + ), textAlign: TextAlign.left, ), ), @@ -285,7 +290,8 @@ class _CreateAutoBackup extends ConsumerState { ), GestureDetector( key: const Key( - "createBackupPasswordFieldShowPasswordButtonKey"), + "createBackupPasswordFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; @@ -318,7 +324,7 @@ class _CreateAutoBackup extends ConsumerState { } final result = zxcvbn.evaluate(newValue); String suggestionsAndTips = ""; - for (var sug in result.feedback.suggestions!.toSet()) { + for (final sug in result.feedback.suggestions!.toSet()) { suggestionsAndTips += "$sug\n"; } suggestionsAndTips += result.feedback.warning!; @@ -331,7 +337,9 @@ class _CreateAutoBackup extends ConsumerState { // hack fix to format back string returned from zxcvbn if (feedback.contains("phrasesNo need")) { feedback = feedback.replaceFirst( - "phrasesNo need", "phrases\nNo need"); + "phrasesNo need", + "phrases\nNo need", + ); } if (feedback.endsWith("\n")) { @@ -420,7 +428,8 @@ class _CreateAutoBackup extends ConsumerState { ), GestureDetector( key: const Key( - "createBackupPasswordFieldShowPasswordButtonKey"), + "createBackupPasswordFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = !hidePassword; @@ -502,7 +511,8 @@ class _CreateAutoBackup extends ConsumerState { child: Text( message, style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), ), ); }, @@ -646,7 +656,8 @@ class _CreateAutoBackup extends ConsumerState { Text( "Encrypting initial backup", style: STextStyles.desktopH3( - context), + context, + ), ), const SizedBox( height: 40, @@ -655,7 +666,8 @@ class _CreateAutoBackup extends ConsumerState { "This shouldn't take long", style: STextStyles .desktopTextExtraExtraSmall( - context), + context, + ), ), ], ), @@ -673,7 +685,8 @@ class _CreateAutoBackup extends ConsumerState { // make sure the dialog is able to be displayed for at least some time final fut = Future.delayed( - const Duration(milliseconds: 300)); + const Duration(milliseconds: 300), + ); String adkString; int adkVersion; @@ -683,7 +696,8 @@ class _CreateAutoBackup extends ConsumerState { adkString = Format.uint8listToString(adk.item2); adkVersion = adk.item1; } on Exception catch (e, s) { - String err = getErrorMessageFromSWBException(e); + final String err = + getErrorMessageFromSWBException(e); Logging.instance .log("$err\n$s", level: LogLevel.Error); // pop encryption progress dialog @@ -712,10 +726,13 @@ class _CreateAutoBackup extends ConsumerState { } await secureStore.write( - key: "auto_adk_string", value: adkString); + key: "auto_adk_string", + value: adkString, + ); await secureStore.write( - key: "auto_adk_version_string", - value: adkVersion.toString()); + key: "auto_adk_version_string", + value: adkVersion.toString(), + ); final DateTime now = DateTime.now(); final String fileToSave = @@ -725,7 +742,8 @@ class _CreateAutoBackup extends ConsumerState { secureStorage: secureStore, ); - bool result = await SWB.encryptStackWalletWithADK( + final bool result = + await SWB.encryptStackWalletWithADK( fileToSave, adkString, jsonEncode(backup), @@ -785,7 +803,8 @@ class _CreateAutoBackup extends ConsumerState { "Stack Auto Backup enabled!", style: STextStyles.desktopH3( - context), + context, + ), ), const DesktopDialogCloseButton(), ], @@ -808,7 +827,7 @@ class _CreateAutoBackup extends ConsumerState { ), ), ], - ) + ), ], ), ), @@ -831,13 +850,14 @@ class _CreateAutoBackup extends ConsumerState { context: context, barrierDismissible: false, builder: (_) => const StackOkDialog( - title: "Failed to enable Auto Backup"), + title: "Failed to enable Auto Backup", + ), ); } } }, ), - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/enable_backup_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/enable_backup_dialog.dart index fcd05c57b..dcc164c41 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/enable_backup_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/backup_and_restore/enable_backup_dialog.dart @@ -18,7 +18,7 @@ import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/desktop/secondary_button.dart'; class EnableBackupDialog extends StatelessWidget { - const EnableBackupDialog({Key? key}) : super(key: key); + const EnableBackupDialog({super.key}); @override Widget build(BuildContext context) { @@ -88,7 +88,7 @@ class EnableBackupDialog extends StatelessWidget { createAutoBackup(); }, ), - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/settings/settings_menu/currency_settings/currency_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/currency_settings/currency_settings.dart index c9faa8182..04d73fd35 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/currency_settings/currency_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/currency_settings/currency_settings.dart @@ -20,7 +20,7 @@ import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/rounded_white_container.dart'; class CurrencySettings extends ConsumerStatefulWidget { - const CurrencySettings({Key? key}) : super(key: key); + const CurrencySettings({super.key}); static const String routeName = "/settingsMenuCurrency"; diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart index 7cd74d3af..34c8a8dba 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_about_view.dart @@ -546,7 +546,8 @@ class DesktopAboutView extends ConsumerWidget { onTap: () { launchUrl( Uri.parse( - "https://tzkt.io"), + "https://tzkt.io", + ), mode: LaunchMode .externalApplication, ); diff --git a/lib/pages_desktop_specific/settings/settings_menu/desktop_support_view.dart b/lib/pages_desktop_specific/settings/settings_menu/desktop_support_view.dart index 2d9060e3a..cf211b27e 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/desktop_support_view.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/desktop_support_view.dart @@ -17,7 +17,7 @@ import '../../../widgets/desktop/desktop_app_bar.dart'; import '../../../widgets/desktop/desktop_scaffold.dart'; class DesktopSupportView extends ConsumerStatefulWidget { - const DesktopSupportView({Key? key}) : super(key: key); + const DesktopSupportView({super.key}); static const String routeName = "/desktopSupportView"; @@ -42,17 +42,17 @@ class _DesktopSupportView extends ConsumerState { Text( "Support", style: STextStyles.desktopH3(context), - ) + ), ], ), ), - body: Column( + body: const Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( - padding: const EdgeInsets.fromLTRB(24, 10, 0, 0), + padding: EdgeInsets.fromLTRB(24, 10, 0, 0), child: Row( - children: const [ + children: [ SizedBox( width: 576, child: SupportView(), diff --git a/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_dialog.dart b/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_dialog.dart index c24762da6..072906bff 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_dialog.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_dialog.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../../providers/global/prefs_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; @@ -27,7 +28,7 @@ import '../../../../widgets/stack_text_field.dart'; import '../../../../widgets/textfield_icon_button.dart'; class LanguageDialog extends ConsumerStatefulWidget { - const LanguageDialog({Key? key}) : super(key: key); + const LanguageDialog({super.key}); @override ConsumerState createState() => _LanguageDialog(); @@ -80,7 +81,8 @@ class _LanguageDialog extends ConsumerState { List _filtered() { return listWithoutSelected .where( - (element) => element.toLowerCase().contains(filter.toLowerCase())) + (element) => element.toLowerCase().contains(filter.toLowerCase()), + ) .toList(); } @@ -141,11 +143,12 @@ class _LanguageDialog extends ConsumerState { return [ SliverOverlapAbsorber( handle: NestedScrollView.sliverOverlapAbsorberHandleFor( - context), + context, + ), sliver: SliverToBoxAdapter( child: Padding( - padding: - EdgeInsets.symmetric(vertical: 16, horizontal: 32), + padding: const EdgeInsets.symmetric( + vertical: 16, horizontal: 32), child: Column( children: [ Padding( @@ -164,9 +167,11 @@ class _LanguageDialog extends ConsumerState { height: 2, ), textAlign: TextAlign.left, - decoration: standardInputDecoration("Search", - searchLanguageFocusNode, context) - .copyWith( + decoration: standardInputDecoration( + "Search", + searchLanguageFocusNode, + context, + ).copyWith( prefixIcon: Padding( padding: const EdgeInsets.symmetric( horizontal: 10, @@ -234,10 +239,12 @@ class _LanguageDialog extends ConsumerState { child: Padding( padding: const EdgeInsets.all(4), key: Key( - "desktopSelectLanguage_${listWithoutSelected[index]}"), + "desktopSelectLanguage_${listWithoutSelected[index]}", + ), child: Padding( padding: const EdgeInsets.symmetric( - horizontal: 32), + horizontal: 32, + ), child: RoundedContainer( padding: const EdgeInsets.all(0), color: index == 0 @@ -287,11 +294,13 @@ class _LanguageDialog extends ConsumerState { listWithoutSelected[index], key: (index == 0) ? const Key( - "desktopSettingsSelectedLanguageText") + "desktopSettingsSelectedLanguageText", + ) : null, style: STextStyles.largeMedium14( - context), + context, + ), ), const SizedBox( height: 2, @@ -300,11 +309,13 @@ class _LanguageDialog extends ConsumerState { listWithoutSelected[index], key: (index == 0) ? const Key( - "desktopSettingsSelectedLanguageTextDescription") + "desktopSettingsSelectedLanguageTextDescription", + ) : null, style: STextStyles.itemSubtitle( - context), + context, + ), ), ], ), @@ -347,7 +358,7 @@ class _LanguageDialog extends ConsumerState { label: "Save Changes", onPressed: () {}, ), - ) + ), ], ), ), diff --git a/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_settings.dart index 795fbbf8b..e02bf1263 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/language_settings/language_settings.dart @@ -11,14 +11,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'language_dialog.dart'; + import '../../../../utilities/assets.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/rounded_white_container.dart'; +import 'language_dialog.dart'; class LanguageOptionSettings extends ConsumerStatefulWidget { - const LanguageOptionSettings({Key? key}) : super(key: key); + const LanguageOptionSettings({super.key}); static const String routeName = "/settingsMenuLanguage"; @@ -78,7 +79,8 @@ class _LanguageOptionSettings extends ConsumerState { text: "\n\nSelect the language of your wallet. We use your system language by default.", style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), ), ], ), diff --git a/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart index 524686732..190740b3f 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart @@ -13,6 +13,8 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:zxcvbn/zxcvbn.dart'; + import '../../../app_config.dart'; import '../../../notifications/show_flush_bar.dart'; import '../../../providers/desktop/storage_crypto_handler_provider.dart'; @@ -24,7 +26,6 @@ import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/progress_bar.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_text_field.dart'; -import 'package:zxcvbn/zxcvbn.dart'; class SecuritySettings extends ConsumerStatefulWidget { const SecuritySettings({super.key}); @@ -204,11 +205,12 @@ class _SecuritySettings extends ConsumerState { "Current password", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark3), + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textDark3, + ), textAlign: TextAlign.left, ), const SizedBox(height: 10), @@ -218,7 +220,8 @@ class _SecuritySettings extends ConsumerState { ), child: TextField( key: const Key( - "desktopSecurityRestoreFromFilePasswordFieldKey"), + "desktopSecurityRestoreFromFilePasswordFieldKey", + ), focusNode: passwordCurrentFocusNode, controller: passwordCurrentController, style: STextStyles.field(context), @@ -240,7 +243,8 @@ class _SecuritySettings extends ConsumerState { ), GestureDetector( key: const Key( - "desktopSecurityRestoreFromFilePasswordFieldShowPasswordButtonKey"), + "desktopSecurityRestoreFromFilePasswordFieldShowPasswordButtonKey", + ), onTap: () async { setState(() { hidePassword = @@ -275,11 +279,12 @@ class _SecuritySettings extends ConsumerState { "New password", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark3), + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textDark3, + ), textAlign: TextAlign.left, ), const SizedBox(height: 10), @@ -289,7 +294,8 @@ class _SecuritySettings extends ConsumerState { ), child: TextField( key: const Key( - "desktopSecurityCreateNewPasswordFieldKey1"), + "desktopSecurityCreateNewPasswordFieldKey1", + ), focusNode: passwordFocusNode, controller: passwordController, style: STextStyles.field(context), @@ -311,7 +317,8 @@ class _SecuritySettings extends ConsumerState { ), GestureDetector( key: const Key( - "desktopSecurityCreateNewPasswordButtonKey1"), + "desktopSecurityCreateNewPasswordButtonKey1", + ), onTap: () async { setState(() { hidePassword = @@ -346,7 +353,7 @@ class _SecuritySettings extends ConsumerState { final result = zxcvbn.evaluate(newValue); String suggestionsAndTips = ""; - for (var sug in result + for (final sug in result .feedback.suggestions! .toSet()) { suggestionsAndTips += "$sug\n"; @@ -363,13 +370,16 @@ class _SecuritySettings extends ConsumerState { if (feedback .contains("phrasesNo need")) { feedback = feedback.replaceFirst( - "phrasesNo need", - "phrases\nNo need"); + "phrasesNo need", + "phrases\nNo need", + ); } if (feedback.endsWith("\n")) { feedback = feedback.substring( - 0, feedback.length - 2); + 0, + feedback.length - 2, + ); } setState(() { @@ -392,7 +402,8 @@ class _SecuritySettings extends ConsumerState { ? Text( passwordFeedback, style: STextStyles.infoSmall( - context), + context, + ), ) : null, ), @@ -407,7 +418,8 @@ class _SecuritySettings extends ConsumerState { ), child: ProgressBar( key: const Key( - "desktopSecurityCreateStackBackUpProgressBar"), + "desktopSecurityCreateStackBackUpProgressBar", + ), width: 450, height: 5, fillColor: passwordStrength < 0.51 @@ -434,11 +446,12 @@ class _SecuritySettings extends ConsumerState { "Confirm new password", style: STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( - color: Theme.of(context) - .extension()! - .textDark3), + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textDark3, + ), textAlign: TextAlign.left, ), const SizedBox(height: 10), @@ -448,7 +461,8 @@ class _SecuritySettings extends ConsumerState { ), child: TextField( key: const Key( - "desktopSecurityCreateNewPasswordFieldKey2"), + "desktopSecurityCreateNewPasswordFieldKey2", + ), focusNode: passwordRepeatFocusNode, controller: passwordRepeatController, style: STextStyles.field(context), @@ -470,7 +484,8 @@ class _SecuritySettings extends ConsumerState { ), GestureDetector( key: const Key( - "desktopSecurityCreateNewPasswordButtonKey2"), + "desktopSecurityCreateNewPasswordButtonKey2", + ), onTap: () async { setState(() { hidePassword = @@ -515,7 +530,7 @@ class _SecuritySettings extends ConsumerState { }); } }, - ) + ), ], ), ) diff --git a/lib/pages_desktop_specific/settings/settings_menu/syncing_preferences_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/syncing_preferences_settings.dart index d1b03d83e..a384ffacf 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/syncing_preferences_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/syncing_preferences_settings.dart @@ -11,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../../pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart'; import '../../../providers/global/prefs_provider.dart'; import '../../../themes/stack_colors.dart'; @@ -22,7 +23,7 @@ import '../../../widgets/rounded_container.dart'; import '../../../widgets/rounded_white_container.dart'; class SyncingPreferencesSettings extends ConsumerStatefulWidget { - const SyncingPreferencesSettings({Key? key}) : super(key: key); + const SyncingPreferencesSettings({super.key}); static const String routeName = "/settingsMenuSyncingPref"; @@ -80,14 +81,18 @@ class _SyncingPreferencesSettings child: Padding( padding: const EdgeInsets.all(8.0), child: Text( - _currentTypeDescription(ref.watch( + _currentTypeDescription( + ref.watch( prefsChangeNotifierProvider - .select((value) => value.syncType))), + .select((value) => value.syncType), + ), + ), style: STextStyles.desktopTextExtraSmall(context) .copyWith( - color: Theme.of(context) - .extension()! - .textDark2), + color: Theme.of(context) + .extension()! + .textDark2, + ), textAlign: TextAlign.left, ), ), @@ -112,7 +117,8 @@ class _SyncingPreferencesSettings text: "\n\nSet up your syncing preferences for all wallets in your Stack.", style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), ), ], ), @@ -124,46 +130,47 @@ class _SyncingPreferencesSettings crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( - padding: const EdgeInsets.all( - 10, - ), - child: changePrefs - ? SizedBox( - width: 512, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - const SyncingOptionsView(), - PrimaryButton( - width: 200, - buttonHeight: ButtonHeight.m, - enabled: true, - label: "Save", - onPressed: () { - setState(() { - changePrefs = false; - }); - }, - ), - ], - ), - ) - : Column( + padding: const EdgeInsets.all( + 10, + ), + child: changePrefs + ? SizedBox( + width: 512, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - const SizedBox(height: 10), + const SyncingOptionsView(), PrimaryButton( width: 200, buttonHeight: ButtonHeight.m, enabled: true, - label: "Change preferences", + label: "Save", onPressed: () { setState(() { - changePrefs = true; + changePrefs = false; }); }, ), ], - )), + ), + ) + : Column( + children: [ + const SizedBox(height: 10), + PrimaryButton( + width: 200, + buttonHeight: ButtonHeight.m, + enabled: true, + label: "Change preferences", + onPressed: () { + setState(() { + changePrefs = true; + }); + }, + ), + ], + ), + ), ], ), ], diff --git a/lib/pages_desktop_specific/settings/settings_menu/tor_settings/tor_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/tor_settings/tor_settings.dart index 4cbce2c5e..d01a5d678 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/tor_settings/tor_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/tor_settings/tor_settings.dart @@ -15,6 +15,7 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../../../providers/global/prefs_provider.dart'; import '../../../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; import '../../../../services/event_bus/global_event_bus.dart'; @@ -32,7 +33,7 @@ import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/rounded_white_container.dart'; class TorSettings extends ConsumerStatefulWidget { - const TorSettings({Key? key}) : super(key: key); + const TorSettings({super.key}); static const String routeName = "/torDesktopSettings"; @@ -198,7 +199,8 @@ class _TorSettingsState extends ConsumerState { text: "\nConnect to the Tor Network with one click.", style: STextStyles.desktopTextExtraExtraSmall( - context), + context, + ), ), TextSpan( text: "\tWhat is Tor?", @@ -233,7 +235,8 @@ class _TorSettingsState extends ConsumerState { "What is Tor?", style: STextStyles.desktopH2( - context), + context, + ), ), DesktopDialogCloseButton( onPressedOverride: () => @@ -250,9 +253,9 @@ class _TorSettingsState extends ConsumerState { " to remain anonymous by routing internet traffic through a series of layered nodes," " to obscure the origin and destination of data.", style: STextStyles - .desktopTextMedium( - context) - .copyWith( + .desktopTextMedium( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark3, @@ -295,9 +298,10 @@ class _TorSettingsState extends ConsumerState { style: STextStyles.desktopTextExtraExtraSmall(context) .copyWith( - color: Theme.of(context) - .extension()! - .textDark), + color: Theme.of(context) + .extension()! + .textDark, + ), ), const SizedBox( height: 8, @@ -337,7 +341,8 @@ class _TorSettingsState extends ConsumerState { "What is Tor killswitch?", style: STextStyles.desktopH2( - context), + context, + ), ), DesktopDialogCloseButton( onPressedOverride: () => @@ -354,9 +359,9 @@ class _TorSettingsState extends ConsumerState { " disconnecting your device from the Tor network if the" " connection is disrupted or compromised.", style: STextStyles - .desktopTextMedium( - context) - .copyWith( + .desktopTextMedium( + context, + ).copyWith( color: Theme.of(context) .extension()! .textDark3, diff --git a/lib/pages_desktop_specific/settings/settings_menu_item.dart b/lib/pages_desktop_specific/settings/settings_menu_item.dart index a1cc79d98..a6742fd48 100644 --- a/lib/pages_desktop_specific/settings/settings_menu_item.dart +++ b/lib/pages_desktop_specific/settings/settings_menu_item.dart @@ -14,13 +14,13 @@ import '../../utilities/text_styles.dart'; class SettingsMenuItem extends StatelessWidget { const SettingsMenuItem({ - Key? key, + super.key, required this.icon, required this.label, required this.value, required this.group, required this.onChanged, - }) : super(key: key); + }); final Widget icon; final String label; diff --git a/lib/pages_desktop_specific/spark_coins/spark_coins_view.dart b/lib/pages_desktop_specific/spark_coins/spark_coins_view.dart index 42053b155..43ba62a6a 100644 --- a/lib/pages_desktop_specific/spark_coins/spark_coins_view.dart +++ b/lib/pages_desktop_specific/spark_coins/spark_coins_view.dart @@ -24,9 +24,9 @@ import '../../widgets/rounded_white_container.dart'; class SparkCoinsView extends ConsumerStatefulWidget { const SparkCoinsView({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); static const String routeName = "/sparkCoinsView"; diff --git a/lib/providers/exchange/exchange_form_state_provider.dart b/lib/providers/exchange/exchange_form_state_provider.dart index ab1515653..433555230 100644 --- a/lib/providers/exchange/exchange_form_state_provider.dart +++ b/lib/providers/exchange/exchange_form_state_provider.dart @@ -20,7 +20,6 @@ import '../../utilities/amount/amount.dart'; import '../../utilities/amount/amount_unit.dart'; import '../../utilities/enums/exchange_rate_type_enum.dart'; -import '../../wallets/crypto_currency/coins/nano.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import 'package:tuple/tuple.dart'; diff --git a/lib/providers/exchange/trade_sent_from_stack_lookup_provider.dart b/lib/providers/exchange/trade_sent_from_stack_lookup_provider.dart index 5eb808e3c..fc717d104 100644 --- a/lib/providers/exchange/trade_sent_from_stack_lookup_provider.dart +++ b/lib/providers/exchange/trade_sent_from_stack_lookup_provider.dart @@ -9,8 +9,10 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../services/trade_sent_from_stack_service.dart'; final tradeSentFromStackLookupProvider = ChangeNotifierProvider( - (ref) => TradeSentFromStackService()); + (ref) => TradeSentFromStackService(), +); diff --git a/lib/providers/global/base_currencies_provider.dart b/lib/providers/global/base_currencies_provider.dart index 341ebf2c1..1709d86c1 100644 --- a/lib/providers/global/base_currencies_provider.dart +++ b/lib/providers/global/base_currencies_provider.dart @@ -31,7 +31,7 @@ class _BaseCurrencies extends ChangeNotifier { return; } - Map newMap = {}; + final Map newMap = {}; for (final entry in _kCurrencyMap.entries) { if (list.contains(entry.key.toLowerCase())) { diff --git a/lib/providers/global/secure_store_provider.dart b/lib/providers/global/secure_store_provider.dart index 284ee2745..d49d6c552 100644 --- a/lib/providers/global/secure_store_provider.dart +++ b/lib/providers/global/secure_store_provider.dart @@ -10,15 +10,18 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -import '../desktop/storage_crypto_handler_provider.dart'; + import '../../utilities/flutter_secure_storage_interface.dart'; import '../../utilities/util.dart'; +import '../desktop/storage_crypto_handler_provider.dart'; final secureStoreProvider = Provider((ref) { if (Util.isDesktop) { final handler = ref.read(storageCryptoHandlerProvider).handler; return SecureStorageWrapper( - store: DesktopSecureStore(handler), isDesktop: true); + store: DesktopSecureStore(handler), + isDesktop: true, + ); } else { return const SecureStorageWrapper( store: FlutterSecureStorage(), diff --git a/lib/providers/stack_restore/stack_restoring_ui_state_provider.dart b/lib/providers/stack_restore/stack_restoring_ui_state_provider.dart index a618d34e5..41f0fbe07 100644 --- a/lib/providers/stack_restore/stack_restoring_ui_state_provider.dart +++ b/lib/providers/stack_restore/stack_restoring_ui_state_provider.dart @@ -9,8 +9,10 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../models/stack_restoring_ui_state.dart'; final stackRestoringUIStateProvider = ChangeNotifierProvider( - (ref) => StackRestoringUIState()); + (ref) => StackRestoringUIState(), +); diff --git a/lib/providers/ui/address_book_providers/valid_contact_state_provider.dart b/lib/providers/ui/address_book_providers/valid_contact_state_provider.dart index 1bdba9729..7529484d1 100644 --- a/lib/providers/ui/address_book_providers/valid_contact_state_provider.dart +++ b/lib/providers/ui/address_book_providers/valid_contact_state_provider.dart @@ -9,6 +9,7 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; + import 'address_entry_data_provider.dart'; final validContactStateProvider = @@ -19,10 +20,12 @@ final validContactStateProvider = for (int i = 0; i < ids.length; i++) { final _valid = ref.watch( - addressEntryDataProvider(ids[i]).select((value) => value.isValid)); + addressEntryDataProvider(ids[i]).select((value) => value.isValid), + ); final _isEmpty = ref.watch( - addressEntryDataProvider(ids[i]).select((value) => value.isEmpty)); + addressEntryDataProvider(ids[i]).select((value) => value.isEmpty), + ); isValid = isValid && (_valid || _isEmpty); if (_valid) { diff --git a/lib/providers/ui/preview_tx_button_state_provider.dart b/lib/providers/ui/preview_tx_button_state_provider.dart index 283c7c2c8..89d960743 100644 --- a/lib/providers/ui/preview_tx_button_state_provider.dart +++ b/lib/providers/ui/preview_tx_button_state_provider.dart @@ -11,7 +11,6 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../wallet/public_private_balance_state_provider.dart'; import '../../utilities/amount/amount.dart'; -import '../../wallets/crypto_currency/coins/firo.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; final pSendAmount = StateProvider.autoDispose((_) => null); diff --git a/lib/providers/wallet/wallet_balance_toggle_state_provider.dart b/lib/providers/wallet/wallet_balance_toggle_state_provider.dart index 31860c052..eb9dada4f 100644 --- a/lib/providers/wallet/wallet_balance_toggle_state_provider.dart +++ b/lib/providers/wallet/wallet_balance_toggle_state_provider.dart @@ -9,8 +9,10 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../utilities/enums/wallet_balance_toggle_state.dart'; final walletBalanceToggleStateProvider = StateProvider.autoDispose( - (ref) => WalletBalanceToggleState.full); + (ref) => WalletBalanceToggleState.full, +); diff --git a/lib/route_generator.dart b/lib/route_generator.dart index dd22e8ccd..735b8681e 100644 --- a/lib/route_generator.dart +++ b/lib/route_generator.dart @@ -2458,11 +2458,11 @@ class RouteGenerator { return PageRouteBuilder( pageBuilder: (context, animation, secondaryAnimation) => viewToInsert, transitionsBuilder: (context, animation, secondaryAnimation, child) { - var begin = const Offset(0.0, 1.0); - var end = Offset.zero; - var curve = Curves.easeInOut; + final begin = const Offset(0.0, 1.0); + final end = Offset.zero; + final curve = Curves.easeInOut; - var tween = + final tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve)); return SlideTransition( @@ -2475,7 +2475,7 @@ class RouteGenerator { static Route _routeError(String message) { // Replace with robust ErrorView page - Widget errorView = Scaffold( + final Widget errorView = Scaffold( appBar: AppBar( backgroundColor: Colors.black, title: const Text('Navigation error'), diff --git a/lib/services/auto_swb_service.dart b/lib/services/auto_swb_service.dart index d1f5d5499..1113b30f1 100644 --- a/lib/services/auto_swb_service.dart +++ b/lib/services/auto_swb_service.dart @@ -13,11 +13,12 @@ import 'dart:convert'; import 'dart:io'; import 'package:flutter/foundation.dart'; +import 'package:tuple/tuple.dart'; + import '../pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart'; import '../utilities/flutter_secure_storage_interface.dart'; import '../utilities/logger.dart'; import '../utilities/prefs.dart'; -import 'package:tuple/tuple.dart'; enum AutoSWBStatus { idle, @@ -42,8 +43,9 @@ class AutoSWBService extends ChangeNotifier { Future doBackup() async { if (_status == AutoSWBStatus.backingUp) { Logging.instance.log( - "AutoSWBService attempted to run doBackup() while a backup is in progress!", - level: LogLevel.Warning); + "AutoSWBService attempted to run doBackup() while a backup is in progress!", + level: LogLevel.Warning, + ); return; } Logging.instance @@ -61,8 +63,9 @@ class AutoSWBService extends ChangeNotifier { final autoBackupDirectoryPath = Prefs.instance.autoBackupLocation; if (autoBackupDirectoryPath == null) { Logging.instance.log( - "AutoSWBService attempted to run doBackup() when no auto backup directory was set!", - level: LogLevel.Error); + "AutoSWBService attempted to run doBackup() when no auto backup directory was set!", + level: LogLevel.Error, + ); // set error backup status and notify listeners _status = AutoSWBStatus.error; notifyListeners(); @@ -70,7 +73,8 @@ class AutoSWBService extends ChangeNotifier { } final json = await SWB.createStackWalletJSON( - secureStorage: secureStorageInterface); + secureStorage: secureStorageInterface, + ); final jsonString = jsonEncode(json); final adkString = @@ -85,7 +89,11 @@ class AutoSWBService extends ChangeNotifier { createAutoBackupFilename(autoBackupDirectoryPath, now); final result = await SWB.encryptStackWalletWithADK( - fileToSave, adkString!, jsonString, adkVersion); + fileToSave, + adkString!, + jsonString, + adkVersion, + ); if (!result) { throw Exception("stack auto backup service failed to create a backup"); @@ -99,7 +107,7 @@ class AutoSWBService extends ChangeNotifier { Logging.instance .log("AutoSWBService.doBackup() succeeded", level: LogLevel.Info); } on Exception catch (e, s) { - String err = getErrorMessageFromSWBException(e); + final String err = getErrorMessageFromSWBException(e); Logging.instance.log("$err\n$s", level: LogLevel.Error); // set error backup status and notify listeners _status = AutoSWBStatus.error; @@ -124,13 +132,13 @@ class AutoSWBService extends ChangeNotifier { final List> files = []; for (final file in dir.listSync()) { - String fileName = file.uri.pathSegments.last; + final String fileName = file.uri.pathSegments.last; // check that its a swb auto backup file if (fileName.startsWith("stackautobackup_") && fileName.endsWith(".swb")) { // get date from filename - int a = fileName.indexOf("_") + 1; - int b = fileName.indexOf(".swb"); + final int a = fileName.indexOf("_") + 1; + final int b = fileName.indexOf(".swb"); final dateString = fileName.substring(a, b); // split date components @@ -148,8 +156,9 @@ class AutoSWBService extends ChangeNotifier { } // sort from newest to oldest - files.sort((a, b) => - b.item1.millisecondsSinceEpoch - a.item1.millisecondsSinceEpoch); + files.sort( + (a, b) => b.item1.millisecondsSinceEpoch - a.item1.millisecondsSinceEpoch, + ); // delete any older backups if there are more than the number we want to keep while (files.length > numberToKeep) { diff --git a/lib/services/coins/bitcoincash/cashtokens.dart b/lib/services/coins/bitcoincash/cashtokens.dart index d35d2838c..d9da0ed01 100644 --- a/lib/services/coins/bitcoincash/cashtokens.dart +++ b/lib/services/coins/bitcoincash/cashtokens.dart @@ -99,7 +99,7 @@ class TokenOutputData { return false; } - int s = bitfield![0] & 0xf0; + final int s = bitfield![0] & 0xf0; if (s >= 0x80 || s == 0x00) { return false; } @@ -122,43 +122,43 @@ class TokenOutputData { // and pack outputs. These are called by the wrap and unwrap functions. int deserialize(Uint8List buffer, {int cursor = 0, bool strict = false}) { try { - this.id = buffer.sublist(cursor, cursor + 32); + id = buffer.sublist(cursor, cursor + 32); cursor += 32; - this.bitfield = Uint8List.fromList([buffer[cursor]]); + bitfield = Uint8List.fromList([buffer[cursor]]); cursor += 1; - if (this.hasCommitmentLength()) { + if (hasCommitmentLength()) { // Read the first byte to determine the length of the commitment data - int commitmentLength = buffer[cursor]; + final int commitmentLength = buffer[cursor]; // Move cursor to the next byte cursor += 1; // Read 'commitmentLength' bytes for the commitment data - this.commitment = buffer.sublist(cursor, cursor + commitmentLength); + commitment = buffer.sublist(cursor, cursor + commitmentLength); // Adjust the cursor by the length of the commitment data cursor += commitmentLength; } else { - this.commitment = null; + commitment = null; } - if (this.hasAmount()) { + if (hasAmount()) { // Use readCompactSize that returns CompactSizeResult - CompactSizeResult result = + final CompactSizeResult result = readCompactSize(buffer, cursor, strict: strict); - this.amount = result.amount; + amount = result.amount; cursor += result.bytesRead; } else { - this.amount = 0; + amount = 0; } - if (!this.isValidBitfield() || - (this.hasAmount() && this.amount == 0) || - (this.amount! < 0 || this.amount! > (1 << 63) - 1) || - (this.hasCommitmentLength() && this.commitment!.isEmpty) || - (this.amount! == 0 && !this.hasNFT())) { + if (!isValidBitfield() || + (hasAmount() && amount == 0) || + (amount! < 0 || amount! > (1 << 63) - 1) || + (hasCommitmentLength() && commitment!.isEmpty) || + (amount! == 0 && !hasNFT())) { throw Exception('Unable to parse token data or token data is invalid'); } @@ -170,19 +170,19 @@ class TokenOutputData { // Serialize method Uint8List serialize() { - var buffer = BytesBuilder(); + final buffer = BytesBuilder(); // write ID and bitfield - buffer.add(this.id!); - buffer.addByte(this.bitfield![0]); + buffer.add(id!); + buffer.addByte(bitfield![0]); // Write optional fields - if (this.hasCommitmentLength()) { - buffer.add(this.commitment!); + if (hasCommitmentLength()) { + buffer.add(commitment!); } - if (this.hasAmount()) { - List compactSizeBytes = writeCompactSize(this.amount!); + if (hasAmount()) { + final List compactSizeBytes = writeCompactSize(amount!); buffer.add(compactSizeBytes); } @@ -195,7 +195,7 @@ final List PREFIX_BYTE = [0xef]; // This function wraps a "normal" output together with token data. ParsedOutput wrap_spk(TokenOutputData? token_data, Uint8List script_pub_key) { - ParsedOutput parsedOutput = ParsedOutput(); + final ParsedOutput parsedOutput = ParsedOutput(); if (token_data == null) { parsedOutput.script_pub_key = script_pub_key; @@ -220,7 +220,7 @@ ParsedOutput wrap_spk(TokenOutputData? token_data, Uint8List script_pub_key) { // Note that the data returend in both cases in of ParsedOutput type, which // holds both the script pub key and token data. ParsedOutput unwrap_spk(Uint8List wrapped_spk) { - ParsedOutput parsedOutput = ParsedOutput(); + final ParsedOutput parsedOutput = ParsedOutput(); if (wrapped_spk.isEmpty || wrapped_spk[0] != PREFIX_BYTE[0]) { parsedOutput.script_pub_key = wrapped_spk; @@ -228,14 +228,15 @@ ParsedOutput unwrap_spk(Uint8List wrapped_spk) { } int read_cursor = 1; // Start after the PREFIX_BYTE - TokenOutputData token_data = TokenOutputData(); + final TokenOutputData token_data = TokenOutputData(); Uint8List wrapped_spk_without_prefix_byte; try { // Deserialize updates read_cursor by the number of bytes read wrapped_spk_without_prefix_byte = wrapped_spk.sublist(read_cursor); - int bytesRead = token_data.deserialize(wrapped_spk_without_prefix_byte); + final int bytesRead = + token_data.deserialize(wrapped_spk_without_prefix_byte); read_cursor += bytesRead; parsedOutput.token_data = token_data; @@ -294,7 +295,7 @@ CompactSizeResult readCompactSize( } Uint8List writeCompactSize(int size) { - var buffer = ByteData(9); // Maximum needed size for compact size is 9 bytes + final buffer = ByteData(9); // Maximum needed size for compact size is 9 bytes if (size < 0) { throw Exception("attempt to write size < 0"); } else if (size < 253) { diff --git a/lib/services/coins/tezos/api/tezos_api.dart b/lib/services/coins/tezos/api/tezos_api.dart index bf102ef34..e646019ee 100644 --- a/lib/services/coins/tezos/api/tezos_api.dart +++ b/lib/services/coins/tezos/api/tezos_api.dart @@ -1,11 +1,11 @@ import 'dart:convert'; import '../../../../networking/http.dart'; -import 'tezos_account.dart'; -import 'tezos_transaction.dart'; -import '../../../tor_service.dart'; import '../../../../utilities/logger.dart'; import '../../../../utilities/prefs.dart'; +import '../../../tor_service.dart'; +import 'tezos_account.dart'; +import 'tezos_transaction.dart'; abstract final class TezosAPI { static final HTTP _client = HTTP(); @@ -33,8 +33,10 @@ abstract final class TezosAPI { } } - static Future getAccount(String address, - {String type = "user"}) async { + static Future getAccount( + String address, { + String type = "user", + }) async { try { final uriString = "$_baseURL/v1/accounts/$address?legacy=false"; final response = await _client.get( @@ -74,8 +76,8 @@ abstract final class TezosAPI { final result = jsonDecode(response.body) as List; - List txs = []; - for (var tx in result) { + final List txs = []; + for (final tx in result) { if (tx["type"] == "transaction") { final theTx = TezosTransaction( id: tx["id"] as int, diff --git a/lib/services/coins/tezos/api/tezos_rpc_api.dart b/lib/services/coins/tezos/api/tezos_rpc_api.dart index fe6f1ddea..59ca98045 100644 --- a/lib/services/coins/tezos/api/tezos_rpc_api.dart +++ b/lib/services/coins/tezos/api/tezos_rpc_api.dart @@ -13,7 +13,7 @@ abstract final class TezosRpcAPI { required String address, }) async { try { - String balanceCall = + final String balanceCall = "${nodeInfo.host}:${nodeInfo.port}/chains/main/blocks/head/context/contracts/$address/balance"; final response = await _client.get( diff --git a/lib/services/coins/tezos/api/tezos_transaction.dart b/lib/services/coins/tezos/api/tezos_transaction.dart index 3ffcd4adf..e1e6bc88b 100644 --- a/lib/services/coins/tezos/api/tezos_transaction.dart +++ b/lib/services/coins/tezos/api/tezos_transaction.dart @@ -40,4 +40,4 @@ class TezosTransaction { required this.senderAddress, required this.receiverAddress, }); -} \ No newline at end of file +} diff --git a/lib/services/debug_service.dart b/lib/services/debug_service.dart index a8d7dd963..189c4f19f 100644 --- a/lib/services/debug_service.dart +++ b/lib/services/debug_service.dart @@ -14,6 +14,7 @@ import 'dart:io'; import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:isar/isar.dart'; + import '../models/isar/models/log.dart'; import '../utilities/logger.dart'; @@ -44,7 +45,11 @@ class DebugService extends ChangeNotifier { // }); } - List get recentLogs => isar.logs.where().sortByTimestampInMillisUTCDesc().limit(100).findAllSync(); + List get recentLogs => isar.logs + .where() + .sortByTimestampInMillisUTCDesc() + .limit(100) + .findAllSync(); // Future updateRecentLogs() async { // int totalCount = await isar.logs.count(); @@ -95,7 +100,7 @@ class DebugService extends ChangeNotifier { final filename = "Stack_Wallet_logs_${now.year}_${now.month}_${now.day}_${now.hour}_${now.minute}_${now.second}.txt"; final filepath = "$directory/$filename"; - File file = await File(filepath).create(); + final File file = await File(filepath).create(); final sink = file.openWrite(); final logs = await isar.logs.where().anyTimestampInMillisUTC().findAll(); diff --git a/lib/services/ethereum/ethereum_api.dart b/lib/services/ethereum/ethereum_api.dart index d2ead5aeb..faacec22e 100644 --- a/lib/services/ethereum/ethereum_api.dart +++ b/lib/services/ethereum/ethereum_api.dart @@ -11,6 +11,8 @@ import 'dart:convert'; import 'package:http/http.dart'; +import 'package:tuple/tuple.dart'; + import '../../dto/ethereum/eth_token_tx_dto.dart'; import '../../dto/ethereum/eth_token_tx_extra_dto.dart'; import '../../dto/ethereum/eth_tx_dto.dart'; @@ -18,15 +20,13 @@ import '../../dto/ethereum/pending_eth_tx_dto.dart'; import '../../models/isar/models/ethereum/eth_contract.dart'; import '../../models/paymint/fee_object_model.dart'; import '../../networking/http.dart'; -import '../tor_service.dart'; import '../../utilities/amount/amount.dart'; import '../../utilities/eth_commons.dart'; import '../../utilities/extensions/extensions.dart'; import '../../utilities/logger.dart'; import '../../utilities/prefs.dart'; -import '../../wallets/crypto_currency/coins/ethereum.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; -import 'package:tuple/tuple.dart'; +import '../tor_service.dart'; class EthApiException implements Exception { EthApiException(this.message); @@ -117,7 +117,8 @@ abstract class EthereumAPI { } static Future> getEthTransactionByHash( - String txid) async { + String txid, + ) async { try { final response = await post( Uri.parse( @@ -600,16 +601,18 @@ abstract class EthereumAPI { final feesSlow = fees.slow.shift(9).toBigInt(); return FeeObject( - numberOfBlocksFast: fees.numberOfBlocksFast, - numberOfBlocksAverage: fees.numberOfBlocksAverage, - numberOfBlocksSlow: fees.numberOfBlocksSlow, - fast: feesFast.toInt(), - medium: feesStandard.toInt(), - slow: feesSlow.toInt()); + numberOfBlocksFast: fees.numberOfBlocksFast, + numberOfBlocksAverage: fees.numberOfBlocksAverage, + numberOfBlocksSlow: fees.numberOfBlocksSlow, + fast: feesFast.toInt(), + medium: feesStandard.toInt(), + slow: feesSlow.toInt(), + ); } static Future> getTokenContractInfoByAddress( - String contractAddress) async { + String contractAddress, + ) async { try { final response = await client.get( url: Uri.parse( @@ -648,7 +651,8 @@ abstract class EthereumAPI { ); } else { throw EthApiException( - "Unsupported token type found: ${map["type"]}"); + "Unsupported token type found: ${map["type"]}", + ); } return EthereumResponse( @@ -732,7 +736,8 @@ abstract class EthereumAPI { try { final response = await client.get( url: Uri.parse( - "$stackBaseServer/state?addrs=$contractAddress&parts=proxy"), + "$stackBaseServer/state?addrs=$contractAddress&parts=proxy", + ), proxyInfo: Prefs.instance.useTor ? TorService.sharedInstance.getProxyInfo() : null, diff --git a/lib/services/event_bus/events/global/blocks_remaining_event.dart b/lib/services/event_bus/events/global/blocks_remaining_event.dart index 9a9c71c81..008d39440 100644 --- a/lib/services/event_bus/events/global/blocks_remaining_event.dart +++ b/lib/services/event_bus/events/global/blocks_remaining_event.dart @@ -16,7 +16,8 @@ class BlocksRemainingEvent { BlocksRemainingEvent(this.blocksRemaining, this.walletId) { Logging.instance.log( - "RefreshPercentChangedEvent fired on $walletId with blocks remaining = $blocksRemaining", - level: LogLevel.Info); + "RefreshPercentChangedEvent fired on $walletId with blocks remaining = $blocksRemaining", + level: LogLevel.Info, + ); } } diff --git a/lib/services/event_bus/events/global/refresh_percent_changed_event.dart b/lib/services/event_bus/events/global/refresh_percent_changed_event.dart index bbe9027b1..7429b828e 100644 --- a/lib/services/event_bus/events/global/refresh_percent_changed_event.dart +++ b/lib/services/event_bus/events/global/refresh_percent_changed_event.dart @@ -16,7 +16,8 @@ class RefreshPercentChangedEvent { RefreshPercentChangedEvent(this.percent, this.walletId) { Logging.instance.log( - "RefreshPercentChangedEvent fired on $walletId with percent (range of 0.0-1.0)= $percent", - level: LogLevel.Info); + "RefreshPercentChangedEvent fired on $walletId with percent (range of 0.0-1.0)= $percent", + level: LogLevel.Info, + ); } } diff --git a/lib/services/event_bus/events/global/tor_connection_status_changed_event.dart b/lib/services/event_bus/events/global/tor_connection_status_changed_event.dart index 640bdc1fb..9087d37e2 100644 --- a/lib/services/event_bus/events/global/tor_connection_status_changed_event.dart +++ b/lib/services/event_bus/events/global/tor_connection_status_changed_event.dart @@ -17,7 +17,8 @@ class TorConnectionStatusChangedEvent { TorConnectionStatusChangedEvent(this.newStatus, this.message) { Logging.instance.log( - "TorSyncStatusChangedEvent fired with arg newStatus = $newStatus ($message)", - level: LogLevel.Info); + "TorSyncStatusChangedEvent fired with arg newStatus = $newStatus ($message)", + level: LogLevel.Info, + ); } } diff --git a/lib/services/event_bus/events/global/updated_in_background_event.dart b/lib/services/event_bus/events/global/updated_in_background_event.dart index c492a837f..582978357 100644 --- a/lib/services/event_bus/events/global/updated_in_background_event.dart +++ b/lib/services/event_bus/events/global/updated_in_background_event.dart @@ -16,7 +16,8 @@ class UpdatedInBackgroundEvent { UpdatedInBackgroundEvent(this.message, this.walletId) { Logging.instance.log( - "UpdatedInBackgroundEvent fired with message: $message", - level: LogLevel.Info); + "UpdatedInBackgroundEvent fired with message: $message", + level: LogLevel.Info, + ); } } diff --git a/lib/services/exchange/change_now/change_now_api.dart b/lib/services/exchange/change_now/change_now_api.dart index 4ee3e5502..2882f9d4d 100644 --- a/lib/services/exchange/change_now/change_now_api.dart +++ b/lib/services/exchange/change_now/change_now_api.dart @@ -12,6 +12,8 @@ import 'dart:convert'; import 'package:decimal/decimal.dart'; import 'package:flutter/foundation.dart'; +import 'package:tuple/tuple.dart'; + import '../../../exceptions/exchange/exchange_exception.dart'; import '../../../exceptions/exchange/pair_unavailable_exception.dart'; import '../../../exceptions/exchange/unsupported_currency_exception.dart'; @@ -26,12 +28,11 @@ import '../../../models/exchange/response_objects/range.dart'; import '../../../models/isar/exchange_cache/currency.dart'; import '../../../models/isar/exchange_cache/pair.dart'; import '../../../networking/http.dart'; -import 'change_now_exchange.dart'; -import '../exchange_response.dart'; -import '../../tor_service.dart'; import '../../../utilities/logger.dart'; import '../../../utilities/prefs.dart'; -import 'package:tuple/tuple.dart'; +import '../../tor_service.dart'; +import '../exchange_response.dart'; +import 'change_now_exchange.dart'; class ChangeNowAPI { static const String scheme = "https"; @@ -172,8 +173,10 @@ class ChangeNowAPI { ); return result; } catch (e, s) { - Logging.instance.log("getAvailableCurrencies exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableCurrencies exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( "Error: $jsonArray", @@ -182,8 +185,10 @@ class ChangeNowAPI { ); } } catch (e, s) { - Logging.instance.log("getAvailableCurrencies exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableCurrencies exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -197,7 +202,7 @@ class ChangeNowAPI { Tuple2, bool> args, ) { try { - List currencies = []; + final List currencies = []; for (final json in args.item1) { try { @@ -213,8 +218,11 @@ class ChangeNowAPI { ); } catch (_) { return ExchangeResponse( - exception: ExchangeException("Failed to serialize $json", - ExchangeExceptionType.serializeResponseError)); + exception: ExchangeException( + "Failed to serialize $json", + ExchangeExceptionType.serializeResponseError, + ), + ); } } @@ -255,8 +263,10 @@ class ChangeNowAPI { ); return result; } catch (e, s) { - Logging.instance.log("getAvailableCurrencies exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableCurrencies exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( "Error: $jsonArray", @@ -265,8 +275,10 @@ class ChangeNowAPI { ); } } catch (e, s) { - Logging.instance.log("getAvailableCurrencies exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableCurrencies exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -280,7 +292,7 @@ class ChangeNowAPI { List args, ) { try { - List currencies = []; + final List currencies = []; for (final json in args) { try { @@ -296,8 +308,11 @@ class ChangeNowAPI { ); } catch (_) { return ExchangeResponse( - exception: ExchangeException("Failed to serialize $json", - ExchangeExceptionType.serializeResponseError)); + exception: ExchangeException( + "Failed to serialize $json", + ExchangeExceptionType.serializeResponseError, + ), + ); } } @@ -342,7 +357,7 @@ class ChangeNowAPI { final jsonArray = response as List; - List currencies = []; + final List currencies = []; try { for (final json in jsonArray) { try { @@ -366,11 +381,16 @@ class ChangeNowAPI { } } } catch (e, s) { - Logging.instance.log("getPairedCurrencies exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getPairedCurrencies exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( - exception: ExchangeException("Error: $jsonArray", - ExchangeExceptionType.serializeResponseError)); + exception: ExchangeException( + "Error: $jsonArray", + ExchangeExceptionType.serializeResponseError, + ), + ); } return ExchangeResponse(value: currencies); } catch (e, s) { @@ -393,7 +413,9 @@ class ChangeNowAPI { required String toTicker, String? apiKey, }) async { - Map? params = {"api_key": apiKey ?? kChangeNowApiKey}; + final Map params = { + "api_key": apiKey ?? kChangeNowApiKey, + }; final uri = _buildUri("/min-amount/${fromTicker}_$toTicker", params); @@ -413,8 +435,10 @@ class ChangeNowAPI { ); } } catch (e, s) { - Logging.instance.log("getMinimalExchangeAmount exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getMinimalExchangeAmount exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -434,11 +458,14 @@ class ChangeNowAPI { required bool isFixedRate, String? apiKey, }) async { - Map? params = {"api_key": apiKey ?? kChangeNowApiKey}; + final Map params = { + "api_key": apiKey ?? kChangeNowApiKey, + }; final uri = _buildUri( - "/exchange-range${isFixedRate ? "/fixed-rate" : ""}/${fromTicker}_$toTicker", - params); + "/exchange-range${isFixedRate ? "/fixed-rate" : ""}/${fromTicker}_$toTicker", + params, + ); try { final jsonObject = await _makeGetRequest(uri); @@ -472,7 +499,7 @@ class ChangeNowAPI { required Decimal fromAmount, String? apiKey, }) async { - Map params = {"api_key": apiKey ?? kChangeNowApiKey}; + final Map params = {"api_key": apiKey ?? kChangeNowApiKey}; final uri = _buildUri( "/exchange-amount/${fromAmount.toString()}/${fromTicker}_$toTicker", @@ -524,8 +551,10 @@ class ChangeNowAPI { ); } } catch (e, s) { - Logging.instance.log("getEstimatedExchangeAmount exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getEstimatedExchangeAmount exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -545,7 +574,7 @@ class ChangeNowAPI { bool useRateId = true, String? apiKey, }) async { - Map params = { + final Map params = { "api_key": apiKey ?? kChangeNowApiKey, "useRateId": useRateId.toString(), }; @@ -608,8 +637,10 @@ class ChangeNowAPI { ); } } catch (e, s) { - Logging.instance.log("getEstimatedExchangeAmount exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getEstimatedExchangeAmount exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -685,7 +716,7 @@ class ChangeNowAPI { CNFlowType flow = CNFlowType.standard, String? apiKey, }) async { - Map? params = { + final Map params = { "fromCurrency": fromTicker, "toCurrency": toTicker, "flow": flow.value, @@ -732,8 +763,10 @@ class ChangeNowAPI { ); } } catch (e, s) { - Logging.instance.log("getEstimatedExchangeAmountV2 exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getEstimatedExchangeAmountV2 exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -751,7 +784,9 @@ class ChangeNowAPI { String? apiKey, }) async { final uri = _buildUri( - "/market-info/fixed-rate/${apiKey ?? kChangeNowApiKey}", null); + "/market-info/fixed-rate/${apiKey ?? kChangeNowApiKey}", + null, + ); try { // json array is expected here @@ -762,8 +797,10 @@ class ChangeNowAPI { await compute(_parseFixedRateMarketsJson, jsonArray as List); return result; } catch (e, s) { - Logging.instance.log("getAvailableFixedRateMarkets exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableFixedRateMarkets exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( "Error: $jsonArray", @@ -772,8 +809,10 @@ class ChangeNowAPI { ); } } catch (e, s) { - Logging.instance.log("getAvailableFixedRateMarkets exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableFixedRateMarkets exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -784,17 +823,22 @@ class ChangeNowAPI { } ExchangeResponse> _parseFixedRateMarketsJson( - List jsonArray) { + List jsonArray, + ) { try { - List markets = []; + final List markets = []; for (final json in jsonArray) { try { markets.add( - FixedRateMarket.fromMap(Map.from(json as Map))); + FixedRateMarket.fromMap(Map.from(json as Map)), + ); } catch (_) { return ExchangeResponse( - exception: ExchangeException("Failed to serialize $json", - ExchangeExceptionType.serializeResponseError)); + exception: ExchangeException( + "Failed to serialize $json", + ExchangeExceptionType.serializeResponseError, + ), + ); } } return ExchangeResponse(value: markets); @@ -842,7 +886,8 @@ class ChangeNowAPI { try { final value = ExchangeTransaction.fromJson( - Map.from(json as Map)); + Map.from(json as Map), + ); return ExchangeResponse(value: value); } catch (_) { return ExchangeResponse( @@ -854,8 +899,9 @@ class ChangeNowAPI { } } catch (e, s) { Logging.instance.log( - "createStandardExchangeTransaction exception: $e\n$s", - level: LogLevel.Error); + "createStandardExchangeTransaction exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -915,7 +961,8 @@ class ChangeNowAPI { try { final value = ExchangeTransaction.fromJson( - Map.from(json as Map)); + Map.from(json as Map), + ); return ExchangeResponse(value: value); } catch (_) { return ExchangeResponse( @@ -927,8 +974,9 @@ class ChangeNowAPI { } } catch (e, s) { Logging.instance.log( - "createFixedRateExchangeTransaction exception: $e\n$s", - level: LogLevel.Error); + "createFixedRateExchangeTransaction exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -951,7 +999,8 @@ class ChangeNowAPI { try { final value = ExchangeTransactionStatus.fromJson( - Map.from(json as Map)); + Map.from(json as Map), + ); return ExchangeResponse(value: value); } catch (_) { return ExchangeResponse( @@ -976,8 +1025,10 @@ class ChangeNowAPI { Future>> getAvailableFloatingRatePairs({ bool includePartners = false, }) async { - final uri = _buildUri("/market-info/available-pairs", - {"includePartners": includePartners.toString()}); + final uri = _buildUri( + "/market-info/available-pairs", + {"includePartners": includePartners.toString()}, + ); try { // json array is expected here @@ -985,11 +1036,15 @@ class ChangeNowAPI { try { final result = await compute( - _parseAvailableFloatingRatePairsJson, jsonArray as List); + _parseAvailableFloatingRatePairsJson, + jsonArray as List, + ); return result; } catch (e, s) { - Logging.instance.log("getAvailableFloatingRatePairs exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableFloatingRatePairs exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( "Error: $jsonArray", @@ -998,8 +1053,10 @@ class ChangeNowAPI { ); } } catch (e, s) { - Logging.instance.log("getAvailableFloatingRatePairs exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableFloatingRatePairs exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -1010,9 +1067,10 @@ class ChangeNowAPI { } ExchangeResponse> _parseAvailableFloatingRatePairsJson( - List jsonArray) { + List jsonArray, + ) { try { - List pairs = []; + final List pairs = []; for (final json in jsonArray) { try { final List stringPair = (json as String).split("_"); @@ -1026,8 +1084,11 @@ class ChangeNowAPI { ); } catch (_) { return ExchangeResponse( - exception: ExchangeException("Failed to serialize $json", - ExchangeExceptionType.serializeResponseError)); + exception: ExchangeException( + "Failed to serialize $json", + ExchangeExceptionType.serializeResponseError, + ), + ); } } return ExchangeResponse(value: pairs); diff --git a/lib/services/exchange/exchange_data_loading_service.dart b/lib/services/exchange/exchange_data_loading_service.dart index 40d1e16bf..e500ed5cf 100644 --- a/lib/services/exchange/exchange_data_loading_service.dart +++ b/lib/services/exchange/exchange_data_loading_service.dart @@ -10,19 +10,20 @@ import 'package:flutter/foundation.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + import '../../db/hive/db.dart'; import '../../models/exchange/active_pair.dart'; import '../../models/exchange/aggregate_currency.dart'; import '../../models/isar/exchange_cache/currency.dart'; import '../../models/isar/exchange_cache/pair.dart'; -import 'change_now/change_now_exchange.dart'; -import 'majestic_bank/majestic_bank_exchange.dart'; -import 'trocador/trocador_exchange.dart'; import '../../utilities/enums/exchange_rate_type_enum.dart'; import '../../utilities/logger.dart'; import '../../utilities/prefs.dart'; import '../../utilities/stack_file_system.dart'; -import 'package:tuple/tuple.dart'; +import 'change_now/change_now_exchange.dart'; +import 'majestic_bank/majestic_bank_exchange.dart'; +import 'trocador/trocador_exchange.dart'; class ExchangeDataLoadingService { ExchangeDataLoadingService._(); @@ -40,8 +41,9 @@ class ExchangeDataLoadingService { static int get currentCacheVersion => DB.instance.get( - boxName: DB.boxNameDBInfo, - key: "exchange_data_cache_version") as int? ?? + boxName: DB.boxNameDBInfo, + key: "exchange_data_cache_version", + ) as int? ?? 0; Future _updateCurrentCacheVersion(int version) async { @@ -102,15 +104,17 @@ class ExchangeDataLoadingService { ) async { final currencies = await ExchangeDataLoadingService.instance.isar.currencies .filter() - .group((q) => rateType == ExchangeRateType.fixed - ? q - .rateTypeEqualTo(SupportedRateType.both) - .or() - .rateTypeEqualTo(SupportedRateType.fixed) - : q - .rateTypeEqualTo(SupportedRateType.both) - .or() - .rateTypeEqualTo(SupportedRateType.estimated)) + .group( + (q) => rateType == ExchangeRateType.fixed + ? q + .rateTypeEqualTo(SupportedRateType.both) + .or() + .rateTypeEqualTo(SupportedRateType.fixed) + : q + .rateTypeEqualTo(SupportedRateType.both) + .or() + .rateTypeEqualTo(SupportedRateType.estimated), + ) .and() .tickerEqualTo( ticker, @@ -213,8 +217,9 @@ class ExchangeDataLoadingService { }); } else { Logging.instance.log( - "Failed to load changeNOW currencies: ${responseCurrencies.exception?.message}", - level: LogLevel.Error); + "Failed to load changeNOW currencies: ${responseCurrencies.exception?.message}", + level: LogLevel.Error, + ); return; } } diff --git a/lib/services/exchange/majestic_bank/majestic_bank_api.dart b/lib/services/exchange/majestic_bank/majestic_bank_api.dart index c69d6ebe7..0dc46343b 100644 --- a/lib/services/exchange/majestic_bank/majestic_bank_api.dart +++ b/lib/services/exchange/majestic_bank/majestic_bank_api.dart @@ -227,8 +227,9 @@ class MajesticBankAPI { return ExchangeResponse(value: result); } catch (e, s) { Logging.instance.log( - "calculateOrder $fromCurrency-$receiveCurrency exception: $e\n$s", - level: LogLevel.Error); + "calculateOrder $fromCurrency-$receiveCurrency exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -342,9 +343,12 @@ class MajesticBankAPI { Future> trackOrder({ required String orderId, }) async { - final uri = _buildUri(endpoint: "track", params: { - "trx": orderId, - }); + final uri = _buildUri( + endpoint: "track", + params: { + "trx": orderId, + }, + ); try { final jsonObject = await _makeGetRequest(uri); diff --git a/lib/services/exchange/majestic_bank/majestic_bank_exchange.dart b/lib/services/exchange/majestic_bank/majestic_bank_exchange.dart index 351608759..e23490e0a 100644 --- a/lib/services/exchange/majestic_bank/majestic_bank_exchange.dart +++ b/lib/services/exchange/majestic_bank/majestic_bank_exchange.dart @@ -153,7 +153,9 @@ class MajesticBankExchange extends Exchange { @override Future>> getPairedCurrencies( - String forCurrency, bool fixedRate) { + String forCurrency, + bool fixedRate, + ) { // TODO: change this if the api changes to allow getting by paired currency return getAllCurrencies(fixedRate); } diff --git a/lib/services/exchange/simpleswap/simpleswap_api.dart b/lib/services/exchange/simpleswap/simpleswap_api.dart index 509977bb1..0653ff7c6 100644 --- a/lib/services/exchange/simpleswap/simpleswap_api.dart +++ b/lib/services/exchange/simpleswap/simpleswap_api.dart @@ -12,6 +12,9 @@ import 'dart:convert'; import 'package:decimal/decimal.dart'; import 'package:flutter/foundation.dart'; +import 'package:tuple/tuple.dart'; +import 'package:uuid/uuid.dart'; + import '../../../exceptions/exchange/exchange_exception.dart'; import '../../../external_api_keys.dart'; import '../../../models/exchange/response_objects/fixed_rate_market.dart'; @@ -20,13 +23,11 @@ import '../../../models/exchange/response_objects/trade.dart'; import '../../../models/exchange/simpleswap/sp_currency.dart'; import '../../../models/isar/exchange_cache/pair.dart'; import '../../../networking/http.dart'; -import '../exchange_response.dart'; -import 'simpleswap_exchange.dart'; -import '../../tor_service.dart'; import '../../../utilities/logger.dart'; import '../../../utilities/prefs.dart'; -import 'package:tuple/tuple.dart'; -import 'package:uuid/uuid.dart'; +import '../../tor_service.dart'; +import '../exchange_response.dart'; +import 'simpleswap_exchange.dart'; class SimpleSwapAPI { static const String scheme = "https"; @@ -104,7 +105,7 @@ class SimpleSwapAPI { String? extraIdTo, String? apiKey, }) async { - Map body = { + final Map body = { "fixed": isFixedRate, "currency_from": currencyFrom, "currency_to": currencyTo, @@ -148,8 +149,10 @@ class SimpleSwapAPI { ); return ExchangeResponse(value: trade, exception: null); } catch (e, s) { - Logging.instance.log("getAvailableCurrencies exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableCurrencies exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -165,15 +168,19 @@ class SimpleSwapAPI { required bool fixedRate, }) async { final uri = _buildUri( - "/get_all_currencies", {"api_key": apiKey ?? kSimpleSwapApiKey}); + "/get_all_currencies", + {"api_key": apiKey ?? kSimpleSwapApiKey}, + ); try { final jsonArray = await _makeGetRequest(uri); return await compute(_parseAvailableCurrenciesJson, jsonArray as List); } catch (e, s) { - Logging.instance.log("getAvailableCurrencies exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableCurrencies exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -184,9 +191,10 @@ class SimpleSwapAPI { } ExchangeResponse> _parseAvailableCurrenciesJson( - List jsonArray) { + List jsonArray, + ) { try { - List currencies = []; + final List currencies = []; for (final json in jsonArray) { try { @@ -194,15 +202,20 @@ class SimpleSwapAPI { .add(SPCurrency.fromJson(Map.from(json as Map))); } catch (_) { return ExchangeResponse( - exception: ExchangeException("Failed to serialize $json", - ExchangeExceptionType.serializeResponseError)); + exception: ExchangeException( + "Failed to serialize $json", + ExchangeExceptionType.serializeResponseError, + ), + ); } } return ExchangeResponse(value: currencies); } catch (e, s) { - Logging.instance.log("_parseAvailableCurrenciesJson exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "_parseAvailableCurrenciesJson exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -228,8 +241,10 @@ class SimpleSwapAPI { final jsonObject = await _makeGetRequest(uri); return ExchangeResponse( - value: SPCurrency.fromJson( - Map.from(jsonObject as Map))); + value: SPCurrency.fromJson( + Map.from(jsonObject as Map), + ), + ); } catch (e, s) { Logging.instance .log("getCurrency exception: $e\n$s", level: LogLevel.Error); @@ -279,7 +294,7 @@ class SimpleSwapAPI { Tuple2, bool> args, ) { try { - List pairs = []; + final List pairs = []; for (final entry in args.item1.entries) { try { @@ -296,15 +311,20 @@ class SimpleSwapAPI { } } catch (_) { return ExchangeResponse( - exception: ExchangeException("Failed to serialize $json", - ExchangeExceptionType.serializeResponseError)); + exception: ExchangeException( + "Failed to serialize $json", + ExchangeExceptionType.serializeResponseError, + ), + ); } } return ExchangeResponse(value: pairs); } catch (e, s) { - Logging.instance.log("_parseAvailableCurrenciesJson exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "_parseAvailableCurrenciesJson exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -468,8 +488,10 @@ class SimpleSwapAPI { ); return result; } catch (e, s) { - Logging.instance.log("getAvailableFixedRateMarkets exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableFixedRateMarkets exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( "Error: $jsonArray", @@ -478,8 +500,10 @@ class SimpleSwapAPI { ); } } catch (e, s) { - Logging.instance.log("getAvailableFixedRateMarkets exception: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "getAvailableFixedRateMarkets exception: $e\n$s", + level: LogLevel.Error, + ); return ExchangeResponse( exception: ExchangeException( e.toString(), @@ -490,24 +514,30 @@ class SimpleSwapAPI { } ExchangeResponse> _parseFixedRateMarketsJson( - List jsonArray) { + List jsonArray, + ) { try { final List markets = []; for (final json in jsonArray) { try { final map = Map.from(json as Map); - markets.add(FixedRateMarket( - from: map["currency_from"] as String, - to: map["currency_to"] as String, - min: Decimal.parse(map["min"] as String), - max: Decimal.parse(map["max"] as String), - rate: Decimal.parse(map["rate"] as String), - minerFee: null, - )); + markets.add( + FixedRateMarket( + from: map["currency_from"] as String, + to: map["currency_to"] as String, + min: Decimal.parse(map["min"] as String), + max: Decimal.parse(map["max"] as String), + rate: Decimal.parse(map["rate"] as String), + minerFee: null, + ), + ); } catch (_) { return ExchangeResponse( - exception: ExchangeException("Failed to serialize $json", - ExchangeExceptionType.serializeResponseError)); + exception: ExchangeException( + "Failed to serialize $json", + ExchangeExceptionType.serializeResponseError, + ), + ); } } return ExchangeResponse(value: markets); diff --git a/lib/services/exchange/simpleswap/simpleswap_exchange.dart b/lib/services/exchange/simpleswap/simpleswap_exchange.dart index 13d8029d5..dae14cbf7 100644 --- a/lib/services/exchange/simpleswap/simpleswap_exchange.dart +++ b/lib/services/exchange/simpleswap/simpleswap_exchange.dart @@ -175,7 +175,9 @@ class SimpleSwapExchange extends Exchange { @override Future>> getPairedCurrencies( - String forCurrency, bool fixedRate) { + String forCurrency, + bool fixedRate, + ) { // TODO: implement getPairedCurrencies throw UnimplementedError(); } diff --git a/lib/services/litescribe_api.dart b/lib/services/litescribe_api.dart index a4d9a8a42..9a41f4f2b 100644 --- a/lib/services/litescribe_api.dart +++ b/lib/services/litescribe_api.dart @@ -3,8 +3,8 @@ import 'dart:convert'; import '../dto/ordinals/inscription_data.dart'; import '../dto/ordinals/litescribe_response.dart'; import '../networking/http.dart'; -import 'tor_service.dart'; import '../utilities/prefs.dart'; +import 'tor_service.dart'; class LitescribeAPI { static final LitescribeAPI _instance = LitescribeAPI._internal(); @@ -30,7 +30,8 @@ class LitescribeAPI { return LitescribeResponse(data: _validateJson(response.body)); } else { throw Exception( - 'LitescribeAPI _getResponse exception: Failed to load data'); + 'LitescribeAPI _getResponse exception: Failed to load data', + ); } } @@ -40,18 +41,23 @@ class LitescribeAPI { return parsed; } else { throw const FormatException( - 'LitescribeAPI _validateJson exception: Invalid JSON format'); + 'LitescribeAPI _validateJson exception: Invalid JSON format', + ); } } - Future> getInscriptionsByAddress(String address, - {int cursor = 0, int size = 1000}) async { + Future> getInscriptionsByAddress( + String address, { + int cursor = 0, + int size = 1000, + }) async { // size param determines how many inscriptions are returned per response // default of 1000 is used to cover most addresses (I assume) // if the total number of inscriptions at the address exceeds the length of the list of inscriptions returned, another call with a higher size is made final int defaultLimit = 1000; final response = await _getResponse( - '/address/inscriptions?address=$address&cursor=$cursor&size=$size'); + '/address/inscriptions?address=$address&cursor=$cursor&size=$size', + ); // Check if the number of returned inscriptions equals the limit final int total = response.data['result']['total'] as int; @@ -73,14 +79,16 @@ class LitescribeAPI { try { // Iterate through the list and create InscriptionData objects from each element final List inscriptions = (list as List) - .map((json) => - InscriptionData.fromJson(json as Map)) + .map( + (json) => InscriptionData.fromJson(json as Map), + ) .toList(); return inscriptions; } catch (e) { throw const FormatException( - 'LitescribeAPI getInscriptionsByAddress exception: AddressInscriptionResponse.fromJson failure'); + 'LitescribeAPI getInscriptionsByAddress exception: AddressInscriptionResponse.fromJson failure', + ); } } } diff --git a/lib/services/nano_api.dart b/lib/services/nano_api.dart index c364f1f4a..bc2e2b84d 100644 --- a/lib/services/nano_api.dart +++ b/lib/services/nano_api.dart @@ -18,7 +18,7 @@ class NanoAPI { NAccountInfo? accountInfo; Exception? exception; - HTTP client = HTTP(); + final HTTP client = HTTP(); try { final response = await client.post( @@ -65,7 +65,7 @@ class NanoAPI { required String privateKey, required String work, }) async { - Map block = { + final Map block = { "type": "state", "account": account, "previous": previousBlock, @@ -112,7 +112,7 @@ class NanoAPI { required Uri server, required Map block, }) async { - HTTP client = HTTP(); + final HTTP client = HTTP(); final response = await client.post( url: server, diff --git a/lib/services/notifications_api.dart b/lib/services/notifications_api.dart index f614952fc..a5a62c188 100644 --- a/lib/services/notifications_api.dart +++ b/lib/services/notifications_api.dart @@ -9,9 +9,10 @@ */ import 'package:flutter_local_notifications/flutter_local_notifications.dart'; + import '../models/notification_model.dart'; -import 'notifications_service.dart'; import '../utilities/prefs.dart'; +import 'notifications_service.dart'; class NotificationApi { static final _notifications = FlutterLocalNotificationsPlugin(); @@ -19,11 +20,13 @@ class NotificationApi { static Future _notificationDetails() async { return const NotificationDetails( - android: AndroidNotificationDetails('channel id', 'channel name', - channelDescription: 'channel description', - // importance: Importance.max, - priority: Priority.high, - ticker: 'ticker'), + android: AndroidNotificationDetails( + 'channel id', 'channel name', + channelDescription: 'channel description', + // importance: Importance.max, + priority: Priority.high, + ticker: 'ticker', + ), iOS: DarwinNotificationDetails(), macOS: DarwinNotificationDetails(), ); @@ -33,7 +36,8 @@ class NotificationApi { const android = AndroidInitializationSettings('app_icon_alpha'); const iOS = DarwinInitializationSettings(); const linux = LinuxInitializationSettings( - defaultActionName: "temporary_stack_wallet"); + defaultActionName: "temporary_stack_wallet", + ); const macOS = DarwinInitializationSettings(); const settings = InitializationSettings( android: android, diff --git a/lib/services/trade_sent_from_stack_service.dart b/lib/services/trade_sent_from_stack_service.dart index 84832a345..8c04f4714 100644 --- a/lib/services/trade_sent_from_stack_service.dart +++ b/lib/services/trade_sent_from_stack_service.dart @@ -9,6 +9,7 @@ */ import 'package:flutter/material.dart'; + import '../db/hive/db.dart'; import '../models/trade_wallet_lookup.dart'; @@ -56,9 +57,10 @@ class TradeSentFromStackService extends ChangeNotifier { required TradeWalletLookup tradeWalletLookup, }) async { await DB.instance.put( - boxName: DB.boxNameTradeLookup, - key: tradeWalletLookup.uuid, - value: tradeWalletLookup); + boxName: DB.boxNameTradeLookup, + key: tradeWalletLookup.uuid, + value: tradeWalletLookup, + ); notifyListeners(); } @@ -66,6 +68,8 @@ class TradeSentFromStackService extends ChangeNotifier { required TradeWalletLookup tradeWalletLookup, }) async { await DB.instance.delete( - key: tradeWalletLookup.uuid, boxName: DB.boxNameTradeLookup); + key: tradeWalletLookup.uuid, + boxName: DB.boxNameTradeLookup, + ); } } diff --git a/lib/services/trade_service.dart b/lib/services/trade_service.dart index 7fd3dcf05..6207b102e 100644 --- a/lib/services/trade_service.dart +++ b/lib/services/trade_service.dart @@ -9,15 +9,18 @@ */ import 'package:flutter/cupertino.dart'; + import '../db/hive/db.dart'; import '../models/exchange/response_objects/trade.dart'; class TradesService extends ChangeNotifier { List get trades { final list = DB.instance.values(boxName: DB.boxNameTradesV2); - list.sort((a, b) => - b.timestamp.millisecondsSinceEpoch - - a.timestamp.millisecondsSinceEpoch); + list.sort( + (a, b) => + b.timestamp.millisecondsSinceEpoch - + a.timestamp.millisecondsSinceEpoch, + ); return list; } @@ -61,7 +64,9 @@ class TradesService extends ChangeNotifier { required bool shouldNotifyListeners, }) async { await deleteByUuid( - uuid: trade.uuid, shouldNotifyListeners: shouldNotifyListeners); + uuid: trade.uuid, + shouldNotifyListeners: shouldNotifyListeners, + ); } Future deleteByUuid({ diff --git a/lib/services/transaction_notification_tracker.dart b/lib/services/transaction_notification_tracker.dart index 328ca8753..a100b476e 100644 --- a/lib/services/transaction_notification_tracker.dart +++ b/lib/services/transaction_notification_tracker.dart @@ -17,72 +17,92 @@ class TransactionNotificationTracker { List get pendings { final notifiedPendingTransactions = DB.instance.get( - boxName: walletId, key: "notifiedPendingTransactions") as Map? ?? + boxName: walletId, + key: "notifiedPendingTransactions", + ) as Map? ?? {}; return List.from(notifiedPendingTransactions.keys); } bool wasNotifiedPending(String txid) { final notifiedPendingTransactions = DB.instance.get( - boxName: walletId, key: "notifiedPendingTransactions") as Map? ?? + boxName: walletId, + key: "notifiedPendingTransactions", + ) as Map? ?? {}; return notifiedPendingTransactions[txid] as bool? ?? false; } Future addNotifiedPending(String txid) async { final notifiedPendingTransactions = DB.instance.get( - boxName: walletId, key: "notifiedPendingTransactions") as Map? ?? + boxName: walletId, + key: "notifiedPendingTransactions", + ) as Map? ?? {}; notifiedPendingTransactions[txid] = true; await DB.instance.put( - boxName: walletId, - key: "notifiedPendingTransactions", - value: notifiedPendingTransactions); + boxName: walletId, + key: "notifiedPendingTransactions", + value: notifiedPendingTransactions, + ); } List get confirmeds { final notifiedConfirmedTransactions = DB.instance.get( - boxName: walletId, key: "notifiedConfirmedTransactions") as Map? ?? + boxName: walletId, + key: "notifiedConfirmedTransactions", + ) as Map? ?? {}; return List.from(notifiedConfirmedTransactions.keys); } bool wasNotifiedConfirmed(String txid) { final notifiedConfirmedTransactions = DB.instance.get( - boxName: walletId, key: "notifiedConfirmedTransactions") as Map? ?? + boxName: walletId, + key: "notifiedConfirmedTransactions", + ) as Map? ?? {}; return notifiedConfirmedTransactions[txid] as bool? ?? false; } Future addNotifiedConfirmed(String txid) async { final notifiedConfirmedTransactions = DB.instance.get( - boxName: walletId, key: "notifiedConfirmedTransactions") as Map? ?? + boxName: walletId, + key: "notifiedConfirmedTransactions", + ) as Map? ?? {}; notifiedConfirmedTransactions[txid] = true; await DB.instance.put( - boxName: walletId, - key: "notifiedConfirmedTransactions", - value: notifiedConfirmedTransactions); + boxName: walletId, + key: "notifiedConfirmedTransactions", + value: notifiedConfirmedTransactions, + ); } Future deleteTransaction(String txid) async { final notifiedPendingTransactions = DB.instance.get( - boxName: walletId, key: "notifiedPendingTransactions") as Map? ?? + boxName: walletId, + key: "notifiedPendingTransactions", + ) as Map? ?? {}; final notifiedConfirmedTransactions = DB.instance.get( - boxName: walletId, key: "notifiedConfirmedTransactions") as Map? ?? + boxName: walletId, + key: "notifiedConfirmedTransactions", + ) as Map? ?? {}; notifiedPendingTransactions.remove(txid); notifiedConfirmedTransactions.remove(txid); await DB.instance.put( - boxName: walletId, - key: "notifiedConfirmedTransactions", - value: notifiedConfirmedTransactions); + boxName: walletId, + key: "notifiedConfirmedTransactions", + value: notifiedConfirmedTransactions, + ); await DB.instance.put( - boxName: walletId, - key: "notifiedPendingTransactions", - value: notifiedPendingTransactions); + boxName: walletId, + key: "notifiedPendingTransactions", + value: notifiedPendingTransactions, + ); } } diff --git a/lib/themes/coin_icon_provider.dart b/lib/themes/coin_icon_provider.dart index afb47672f..4a789ad76 100644 --- a/lib/themes/coin_icon_provider.dart +++ b/lib/themes/coin_icon_provider.dart @@ -11,17 +11,6 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../models/isar/stack_theme.dart'; import 'theme_providers.dart'; -import '../wallets/crypto_currency/coins/bitcoin.dart'; -import '../wallets/crypto_currency/coins/bitcoincash.dart'; -import '../wallets/crypto_currency/coins/dogecoin.dart'; -import '../wallets/crypto_currency/coins/epiccash.dart'; -import '../wallets/crypto_currency/coins/ethereum.dart'; -import '../wallets/crypto_currency/coins/firo.dart'; -import '../wallets/crypto_currency/coins/litecoin.dart'; -import '../wallets/crypto_currency/coins/monero.dart'; -import '../wallets/crypto_currency/coins/namecoin.dart'; -import '../wallets/crypto_currency/coins/particl.dart'; -import '../wallets/crypto_currency/coins/wownero.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; final coinIconProvider = Provider.family((ref, coin) { diff --git a/lib/themes/stack_colors.dart b/lib/themes/stack_colors.dart index 20b60e3b1..29804aa0c 100644 --- a/lib/themes/stack_colors.dart +++ b/lib/themes/stack_colors.dart @@ -9,6 +9,7 @@ */ import 'package:flutter/material.dart'; + import '../models/isar/stack_theme.dart'; class StackColors extends ThemeExtension { @@ -1429,18 +1430,20 @@ class StackColors extends ThemeExtension { t, )!, textFieldDefaultSearchIconRight: Color.lerp( - textFieldDefaultSearchIconRight, - other.textFieldDefaultSearchIconRight, - t)!, + textFieldDefaultSearchIconRight, + other.textFieldDefaultSearchIconRight, + t, + )!, textFieldErrorSearchIconRight: Color.lerp( textFieldErrorSearchIconRight, other.textFieldErrorSearchIconRight, t, )!, textFieldSuccessSearchIconRight: Color.lerp( - textFieldSuccessSearchIconRight, - other.textFieldSuccessSearchIconRight, - t)!, + textFieldSuccessSearchIconRight, + other.textFieldSuccessSearchIconRight, + t, + )!, settingsItem2ActiveBG: Color.lerp( settingsItem2ActiveBG, other.settingsItem2ActiveBG, diff --git a/lib/utilities/address_utils.dart b/lib/utilities/address_utils.dart index 2bb721fe0..97f2ec965 100644 --- a/lib/utilities/address_utils.dart +++ b/lib/utilities/address_utils.dart @@ -11,8 +11,6 @@ import 'dart:convert'; import 'logger.dart'; -import '../wallets/crypto_currency/coins/bitcoincash.dart'; -import '../wallets/crypto_currency/coins/ecash.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; class AddressUtils { @@ -217,8 +215,10 @@ class AddressUtils { try { result = Map.from(jsonDecode(data) as Map); } catch (e) { - Logging.instance.log("Exception caught in parseQRSeedData($data): $e", - level: LogLevel.Error); + Logging.instance.log( + "Exception caught in parseQRSeedData($data): $e", + level: LogLevel.Error, + ); } return result; } diff --git a/lib/utilities/amount/amount.dart b/lib/utilities/amount/amount.dart index e388020e1..a1a68576f 100644 --- a/lib/utilities/amount/amount.dart +++ b/lib/utilities/amount/amount.dart @@ -11,6 +11,7 @@ import 'dart:convert'; import 'package:decimal/decimal.dart'; + import '../util.dart'; class Amount { @@ -168,7 +169,8 @@ class Amount { Amount operator +(Amount other) { if (fractionDigits != other.fractionDigits) { throw ArgumentError( - "fractionDigits do not match: this=$this, other=$other"); + "fractionDigits do not match: this=$this, other=$other", + ); } return Amount( rawValue: raw + other.raw, @@ -179,7 +181,8 @@ class Amount { Amount operator -(Amount other) { if (fractionDigits != other.fractionDigits) { throw ArgumentError( - "fractionDigits do not match: this=$this, other=$other"); + "fractionDigits do not match: this=$this, other=$other", + ); } return Amount( rawValue: raw - other.raw, @@ -190,7 +193,8 @@ class Amount { Amount operator *(Amount other) { if (fractionDigits != other.fractionDigits) { throw ArgumentError( - "fractionDigits do not match: this=$this, other=$other"); + "fractionDigits do not match: this=$this, other=$other", + ); } return Amount( rawValue: raw * other.raw, diff --git a/lib/utilities/amount/amount_input_formatter.dart b/lib/utilities/amount/amount_input_formatter.dart index f09100ad7..2ecd9fe54 100644 --- a/lib/utilities/amount/amount_input_formatter.dart +++ b/lib/utilities/amount/amount_input_formatter.dart @@ -1,8 +1,9 @@ import 'dart:math'; import 'package:flutter/services.dart'; -import 'amount_unit.dart'; + import '../util.dart'; +import 'amount_unit.dart'; class AmountInputFormatter extends TextInputFormatter { final int decimals; @@ -17,7 +18,9 @@ class AmountInputFormatter extends TextInputFormatter { @override TextEditingValue formatEditUpdate( - TextEditingValue oldValue, TextEditingValue newValue) { + TextEditingValue oldValue, + TextEditingValue newValue, + ) { // get number symbols for decimal place and group separator final numberSymbols = Util.getSymbolsFor(locale: locale); diff --git a/lib/utilities/amount/amount_unit.dart b/lib/utilities/amount/amount_unit.dart index 9911e5961..a8cbfa701 100644 --- a/lib/utilities/amount/amount_unit.dart +++ b/lib/utilities/amount/amount_unit.dart @@ -14,9 +14,6 @@ import 'package:decimal/decimal.dart'; import '../../models/isar/models/ethereum/eth_contract.dart'; import 'amount.dart'; import '../util.dart'; -import '../../wallets/crypto_currency/coins/ethereum.dart'; -import '../../wallets/crypto_currency/coins/monero.dart'; -import '../../wallets/crypto_currency/coins/wownero.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import '../../wallets/crypto_currency/intermediate/nano_currency.dart'; diff --git a/lib/utilities/biometrics.dart b/lib/utilities/biometrics.dart index 8be9edb24..18e27cbfb 100644 --- a/lib/utilities/biometrics.dart +++ b/lib/utilities/biometrics.dart @@ -10,9 +10,9 @@ import 'dart:io'; -import 'package:flutter/cupertino.dart'; import 'package:local_auth/auth_strings.dart'; import 'package:local_auth/local_auth.dart'; + import 'logger.dart'; class Biometrics { @@ -28,14 +28,16 @@ class Biometrics { }) async { if (!(Platform.isIOS || Platform.isAndroid)) { Logging.instance.log( - "Tried to use Biometrics.authenticate() on a platform that is not Android or iOS! ...returning false.", - level: LogLevel.Error); + "Tried to use Biometrics.authenticate() on a platform that is not Android or iOS! ...returning false.", + level: LogLevel.Error, + ); return false; } if (integrationTestFlag) { Logging.instance.log( - "Tried to use Biometrics.authenticate() during integration testing. Returning false.", - level: LogLevel.Warning); + "Tried to use Biometrics.authenticate() during integration testing. Returning false.", + level: LogLevel.Warning, + ); return false; } @@ -49,7 +51,7 @@ class Biometrics { // debugPrint("isDeviceSupported: $isDeviceSupported"); if (canCheckBiometrics && isDeviceSupported) { - List availableSystems = + final List availableSystems = await localAuth.getAvailableBiometrics(); //todo: check if print needed @@ -59,7 +61,7 @@ class Biometrics { if (Platform.isIOS) { if (availableSystems.contains(BiometricType.face)) { try { - bool didAuthenticate = await localAuth.authenticate( + final bool didAuthenticate = await localAuth.authenticate( biometricOnly: true, localizedReason: localizedReason, stickyAuth: true, @@ -71,12 +73,13 @@ class Biometrics { } } catch (e) { Logging.instance.log( - "local_auth exception caught in Biometrics.authenticate(), e: $e", - level: LogLevel.Error); + "local_auth exception caught in Biometrics.authenticate(), e: $e", + level: LogLevel.Error, + ); } } else if (availableSystems.contains(BiometricType.fingerprint)) { try { - bool didAuthenticate = await localAuth.authenticate( + final bool didAuthenticate = await localAuth.authenticate( biometricOnly: true, localizedReason: localizedReason, stickyAuth: true, @@ -88,14 +91,15 @@ class Biometrics { } } catch (e) { Logging.instance.log( - "local_auth exception caught in Biometrics.authenticate(), e: $e", - level: LogLevel.Error); + "local_auth exception caught in Biometrics.authenticate(), e: $e", + level: LogLevel.Error, + ); } } } else if (Platform.isAndroid) { if (availableSystems.contains(BiometricType.fingerprint)) { try { - bool didAuthenticate = await localAuth.authenticate( + final bool didAuthenticate = await localAuth.authenticate( biometricOnly: true, localizedReason: localizedReason, stickyAuth: true, @@ -111,8 +115,9 @@ class Biometrics { } } catch (e) { Logging.instance.log( - "local_auth exception caught in Biometrics.authenticate(), e: $e", - level: LogLevel.Error); + "local_auth exception caught in Biometrics.authenticate(), e: $e", + level: LogLevel.Error, + ); } } } diff --git a/lib/utilities/bip47_utils.dart b/lib/utilities/bip47_utils.dart index 80b393dff..3d2cdfb41 100644 --- a/lib/utilities/bip47_utils.dart +++ b/lib/utilities/bip47_utils.dart @@ -11,6 +11,7 @@ import 'dart:typed_data'; import 'package:bip47/src/util.dart'; + import '../models/isar/models/blockchain_data/v2/output_v2.dart'; import '../models/isar/models/blockchain_data/v2/transaction_v2.dart'; @@ -19,7 +20,8 @@ abstract class Bip47Utils { static Uint8List? getBlindedPaymentCodeBytesFrom(TransactionV2 transaction) { for (int i = 0; i < transaction.outputs.length; i++) { final bytes = getBlindedPaymentCodeBytesFromOutput( - transaction.outputs.elementAt(i)); + transaction.outputs.elementAt(i), + ); if (bytes != null) { return bytes; } @@ -31,7 +33,7 @@ abstract class Bip47Utils { static Uint8List? getBlindedPaymentCodeBytesFromOutput(OutputV2 output) { Uint8List? blindedCodeBytes; - List? scriptChunks = output.scriptPubKeyAsm?.split(" "); + final List? scriptChunks = output.scriptPubKeyAsm?.split(" "); if (scriptChunks?.length == 2 && scriptChunks?[0] == "OP_RETURN") { final blindedPaymentCode = scriptChunks![1]; final bytes = blindedPaymentCode.fromHex; diff --git a/lib/utilities/connection_check/electrum_connection_check.dart b/lib/utilities/connection_check/electrum_connection_check.dart index a78075246..480434ce3 100644 --- a/lib/utilities/connection_check/electrum_connection_check.dart +++ b/lib/utilities/connection_check/electrum_connection_check.dart @@ -1,6 +1,7 @@ import 'dart:io'; import 'package:electrum_adapter/electrum_adapter.dart'; + import '../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; import '../../services/tor_service.dart'; import '../logger.dart'; @@ -33,7 +34,8 @@ Future checkElectrumServer({ } else { // ... But if the killswitch is set, then we throw an exception. throw Exception( - "Tor preference and killswitch set but Tor is not enabled, not connecting to Electrum adapter"); + "Tor preference and killswitch set but Tor is not enabled, not connecting to Electrum adapter", + ); // TODO [prio=low]: Try to start Tor. } } else { diff --git a/lib/utilities/desktop_password_service.dart b/lib/utilities/desktop_password_service.dart index e563d453e..323be414b 100644 --- a/lib/utilities/desktop_password_service.dart +++ b/lib/utilities/desktop_password_service.dart @@ -10,6 +10,7 @@ import 'package:hive/hive.dart'; import 'package:stack_wallet_backup/secure_storage.dart'; + import 'logger.dart'; const String kBoxNameDesktopData = "desktopData"; @@ -44,7 +45,8 @@ class DPS { StorageCryptoHandler get handler { if (_handler == null) { throw Exception( - "DPS: attempted to access handler without proper authentication"); + "DPS: attempted to access handler without proper authentication", + ); } return _handler!; } @@ -76,7 +78,8 @@ class DPS { Future initFromExisting(String passphrase) async { if (_handler != null) { throw Exception( - "DPS: attempted to re initialize with existing passphrase"); + "DPS: attempted to re initialize with existing passphrase", + ); } try { @@ -84,7 +87,8 @@ class DPS { if (keyBlob == null) { throw Exception( - "DPS: failed to find keyBlob while attempting to initialize with existing passphrase"); + "DPS: failed to find keyBlob while attempting to initialize with existing passphrase", + ); } final blobVersion = await _getStoredKeyBlobVersion(); _handler = await StorageCryptoHandler.fromExisting( diff --git a/lib/utilities/enums/fiat_enum.dart b/lib/utilities/enums/fiat_enum.dart index a563112cf..914a97da4 100644 --- a/lib/utilities/enums/fiat_enum.dart +++ b/lib/utilities/enums/fiat_enum.dart @@ -1161,6 +1161,9 @@ Fiats fiatFromTickerCaseInsensitive(String ticker) { return Fiats.ZWD; default: throw ArgumentError.value( - ticker, "name", "No Fiat enum value with that ticker"); + ticker, + "name", + "No Fiat enum value with that ticker", + ); } } diff --git a/lib/utilities/eth_commons.dart b/lib/utilities/eth_commons.dart index b7f936c58..c105412db 100644 --- a/lib/utilities/eth_commons.dart +++ b/lib/utilities/eth_commons.dart @@ -12,7 +12,6 @@ import 'package:bip32/bip32.dart' as bip32; import 'package:bip39/bip39.dart' as bip39; import 'package:decimal/decimal.dart'; import "package:hex/hex.dart"; -import '../wallets/crypto_currency/coins/ethereum.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; class GasTracker { diff --git a/lib/utilities/extensions/impl/big_int.dart b/lib/utilities/extensions/impl/big_int.dart index d0b84ff98..866c5103d 100644 --- a/lib/utilities/extensions/impl/big_int.dart +++ b/lib/utilities/extensions/impl/big_int.dart @@ -31,7 +31,7 @@ extension BigIntExtensions on BigInt { throw Exception("BigInt value is negative"); } BigInt number = this; - int bytes = (number.bitLength + 7) >> 3; + final int bytes = (number.bitLength + 7) >> 3; final b256 = BigInt.from(256); final result = Uint8List(bytes); for (int i = 0; i < bytes; i++) { diff --git a/lib/utilities/extensions/impl/contract_abi.dart b/lib/utilities/extensions/impl/contract_abi.dart index f34e33970..b067c552e 100644 --- a/lib/utilities/extensions/impl/contract_abi.dart +++ b/lib/utilities/extensions/impl/contract_abi.dart @@ -10,9 +10,10 @@ import 'dart:convert'; -import '../../logger.dart'; import 'package:web3dart/web3dart.dart'; +import '../../logger.dart'; + extension ContractAbiExtensions on ContractAbi { static ContractAbi fromJsonList({ required String name, @@ -112,12 +113,17 @@ extension ContractAbiExtensions on ContractAbi { } } - static CompositeFunctionParameter _parseTuple(String name, String typeName, - List> components) { + static CompositeFunctionParameter _parseTuple( + String name, + String typeName, + List> components, + ) { // The type will have the form tuple[3][]...[1], where the indices after the // tuple indicate that the type is part of an array. - assert(RegExp(r'^tuple(?:\[\d*\])*$').hasMatch(typeName), - '$typeName is an invalid tuple type'); + assert( + RegExp(r'^tuple(?:\[\d*\])*$').hasMatch(typeName), + '$typeName is an invalid tuple type', + ); final arrayLengths = []; var remainingName = typeName; diff --git a/lib/utilities/flutter_secure_storage_interface.dart b/lib/utilities/flutter_secure_storage_interface.dart index 26adefaaa..1c81119ab 100644 --- a/lib/utilities/flutter_secure_storage_interface.dart +++ b/lib/utilities/flutter_secure_storage_interface.dart @@ -11,6 +11,7 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:isar/isar.dart'; import 'package:stack_wallet_backup/secure_storage.dart'; + import '../models/isar/models/encrypted_string_value.dart'; import 'stack_file_system.dart'; @@ -140,9 +141,11 @@ class SecureStorageWrapper implements SecureStorageInterface { const SecureStorageWrapper({ required dynamic store, required bool isDesktop, - }) : assert(isDesktop - ? store is DesktopSecureStore - : store is FlutterSecureStorage), + }) : assert( + isDesktop + ? store is DesktopSecureStore + : store is FlutterSecureStorage, + ), _store = store, _isDesktop = isDesktop; diff --git a/lib/utilities/format.dart b/lib/utilities/format.dart index b11e98e1e..7a9fe1b69 100644 --- a/lib/utilities/format.dart +++ b/lib/utilities/format.dart @@ -113,7 +113,7 @@ abstract class Format { static String uint8listToString(Uint8List list) { String result = ""; - for (var n in list) { + for (final n in list) { result += (n.toRadixString(16).length == 1 ? "0" : "") + n.toRadixString(16); } @@ -121,7 +121,7 @@ abstract class Format { } static Uint8List stringToUint8List(String string) { - List list = []; + final List list = []; for (var leg = 0; leg < string.length; leg = leg + 2) { list.add(int.parse(string.substring(leg, leg + 2), radix: 16)); } diff --git a/lib/utilities/logger.dart b/lib/utilities/logger.dart index 9574db009..6af09473a 100644 --- a/lib/utilities/logger.dart +++ b/lib/utilities/logger.dart @@ -105,17 +105,17 @@ abstract class Logger { return; } final utcTime = withTimeStamp ? "${core.DateTime.now().toUtc()}: " : ""; - core.int defaultPrintLength = 1020 - utcTime.length; + final core.int defaultPrintLength = 1020 - utcTime.length; if (normalLength) { debugPrint("$utcTime$object"); } else if (object == null || object.toString().length <= defaultPrintLength) { debugPrint("$utcTime$object"); } else { - core.String log = object.toString(); + final core.String log = object.toString(); core.int start = 0; core.int endIndex = defaultPrintLength; - core.int logLength = log.length; + final core.int logLength = log.length; core.int tmpLogLength = log.length; while (endIndex < logLength) { debugPrint(utcTime + log.substring(start, endIndex)); diff --git a/lib/utilities/paynym_is_api.dart b/lib/utilities/paynym_is_api.dart index 1ed94d751..8b42e6143 100644 --- a/lib/utilities/paynym_is_api.dart +++ b/lib/utilities/paynym_is_api.dart @@ -10,6 +10,8 @@ import 'dart:convert'; +import 'package:tuple/tuple.dart'; + import '../models/paynym/created_paynym.dart'; import '../models/paynym/paynym_account.dart'; import '../models/paynym/paynym_claim.dart'; @@ -19,7 +21,6 @@ import '../models/paynym/paynym_unfollow.dart'; import '../networking/http.dart'; import '../services/tor_service.dart'; import 'prefs.dart'; -import 'package:tuple/tuple.dart'; // todo: better error message parsing (from response itself?) @@ -34,13 +35,13 @@ class PaynymIsApi { Map body, [ Map additionalHeaders = const {}, ]) async { - String url = baseURL + + final String url = baseURL + version + (endpoint.startsWith("/") ? endpoint : "/$endpoint"); final uri = Uri.parse(url); // Calculate the body length. - int contentLength = utf8.encode(jsonEncode(body)).length; + final int contentLength = utf8.encode(jsonEncode(body)).length; final headers = { 'Content-Type': 'application/json; charset=UTF-8', @@ -248,8 +249,10 @@ class PaynymIsApi { // | 200 | Nym found and returned | // | 404 | Nym not found | // | 400 | Bad request | - Future> nym(String code, - [bool compact = false]) async { + Future> nym( + String code, [ + bool compact = false, + ]) async { final Map requestBody = {"nym": code}; if (compact) { requestBody["compact"] = true; diff --git a/lib/utilities/stack_file_system.dart b/lib/utilities/stack_file_system.dart index b5f28e48a..3675813d9 100644 --- a/lib/utilities/stack_file_system.dart +++ b/lib/utilities/stack_file_system.dart @@ -42,7 +42,8 @@ abstract class StackFileSystem { appDirectory = Directory(_overrideDesktopDirPath!); } else { appDirectory = Directory( - "${Platform.environment['HOME']}/.${AppConfig.appDefaultDataDirName}"); + "${Platform.environment['HOME']}/.${AppConfig.appDefaultDataDirName}", + ); } } else if (Platform.isWindows) { if (_overrideDesktopDirPath != null) { @@ -56,7 +57,8 @@ abstract class StackFileSystem { } else { appDirectory = await getLibraryDirectory(); appDirectory = Directory( - "${appDirectory.path}/${AppConfig.appDefaultDataDirName}"); + "${appDirectory.path}/${AppConfig.appDefaultDataDirName}", + ); } } else if (Platform.isIOS) { // todo: check if we need different behaviour here diff --git a/lib/utilities/test_epic_box_connection.dart b/lib/utilities/test_epic_box_connection.dart index 471d6fcce..039fa7ec8 100644 --- a/lib/utilities/test_epic_box_connection.dart +++ b/lib/utilities/test_epic_box_connection.dart @@ -17,7 +17,7 @@ import 'logger.dart'; import 'prefs.dart'; Future _testEpicBoxNodeConnection(Uri uri) async { - HTTP client = HTTP(); + final HTTP client = HTTP(); try { final response = await client .get( @@ -27,8 +27,10 @@ Future _testEpicBoxNodeConnection(Uri uri) async { ? TorService.sharedInstance.getProxyInfo() : null, ) - .timeout(const Duration(milliseconds: 2000), - onTimeout: () async => Response(utf8.encode('Error'), 408)); + .timeout( + const Duration(milliseconds: 2000), + onTimeout: () async => Response(utf8.encode('Error'), 408), + ); final json = jsonDecode(response.body); diff --git a/lib/utilities/test_eth_node_connection.dart b/lib/utilities/test_eth_node_connection.dart index f90ae1353..be95a19ce 100644 --- a/lib/utilities/test_eth_node_connection.dart +++ b/lib/utilities/test_eth_node_connection.dart @@ -2,7 +2,7 @@ import 'package:http/http.dart'; import 'package:web3dart/web3dart.dart' as web3; Future testEthNodeConnection(String host) async { - web3.Web3Client client = web3.Web3Client(host, Client()); + final web3.Web3Client client = web3.Web3Client(host, Client()); try { await client.getBlockNumber(); return true; diff --git a/lib/utilities/test_node_connection.dart b/lib/utilities/test_node_connection.dart index c47fb49ac..7dd432140 100644 --- a/lib/utilities/test_node_connection.dart +++ b/lib/utilities/test_node_connection.dart @@ -13,12 +13,6 @@ import 'test_eth_node_connection.dart'; import 'test_monero_node_connection.dart'; import 'test_stellar_node_connection.dart'; import '../wallets/api/tezos/tezos_rpc_api.dart'; -import '../wallets/crypto_currency/coins/bitcoin_frost.dart'; -import '../wallets/crypto_currency/coins/epiccash.dart'; -import '../wallets/crypto_currency/coins/ethereum.dart'; -import '../wallets/crypto_currency/coins/solana.dart'; -import '../wallets/crypto_currency/coins/stellar.dart'; -import '../wallets/crypto_currency/coins/tezos.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; import '../wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../wallets/crypto_currency/intermediate/cryptonote_currency.dart'; diff --git a/lib/utilities/test_stellar_node_connection.dart b/lib/utilities/test_stellar_node_connection.dart index 7b580e85c..2fd2f9fcc 100644 --- a/lib/utilities/test_stellar_node_connection.dart +++ b/lib/utilities/test_stellar_node_connection.dart @@ -1,13 +1,14 @@ import 'dart:convert'; +import 'package:stellar_flutter_sdk/stellar_flutter_sdk.dart'; + import '../networking/http.dart' as http; import '../services/tor_service.dart'; import 'prefs.dart'; -import 'package:stellar_flutter_sdk/stellar_flutter_sdk.dart'; Future testStellarNodeConnection(String host, int port) async { - http.HTTP client = http.HTTP(); - Uri uri = Uri.parse("$host:$port"); + final http.HTTP client = http.HTTP(); + final Uri uri = Uri.parse("$host:$port"); final response = await client .get( @@ -17,12 +18,14 @@ Future testStellarNodeConnection(String host, int port) async { ? TorService.sharedInstance.getProxyInfo() : null, ) - .timeout(const Duration(milliseconds: 2000), - onTimeout: () async => http.Response(utf8.encode('Error'), 408)); + .timeout( + const Duration(milliseconds: 2000), + onTimeout: () async => http.Response(utf8.encode('Error'), 408), + ); if (response.code == 200) { //Get chain height for sdk - StellarSDK stellarSdk = StellarSDK(host); + final StellarSDK stellarSdk = StellarSDK(host); final height = await stellarSdk.ledgers .order(RequestBuilderOrder.DESC) .limit(1) diff --git a/lib/utilities/util.dart b/lib/utilities/util.dart index cdfc1bfb7..d573d9b90 100644 --- a/lib/utilities/util.dart +++ b/lib/utilities/util.dart @@ -54,14 +54,14 @@ abstract class Util { } static MaterialColor createMaterialColor(Color color) { - List strengths = [.05]; + final List strengths = [.05]; final swatch = {}; final int r = color.red, g = color.green, b = color.blue; for (int i = 1; i < 10; i++) { strengths.add(0.1 * i); } - for (var strength in strengths) { + for (final strength in strengths) { final double ds = 0.5 - strength; swatch[(strength * 1000).round()] = Color.fromRGBO( r + ((ds < 0 ? r : (255 - r)) * ds).round(), diff --git a/lib/wallets/api/lelantus_ffi_wrapper.dart b/lib/wallets/api/lelantus_ffi_wrapper.dart index e6037bedb..d43f504c4 100644 --- a/lib/wallets/api/lelantus_ffi_wrapper.dart +++ b/lib/wallets/api/lelantus_ffi_wrapper.dart @@ -2,6 +2,7 @@ import 'package:bip32/bip32.dart'; import 'package:bitcoindart/bitcoindart.dart' as bitcoindart; import 'package:flutter/foundation.dart'; import 'package:lelantus/lelantus.dart' as lelantus; + import '../../models/isar/models/isar_models.dart' as isar_models; import '../../models/isar/models/isar_models.dart'; import '../../models/lelantus_fee_data.dart'; @@ -70,8 +71,8 @@ abstract final class LelantusFfiWrapper { String partialDerivationPath, }) args, ) async { - List jindexes = []; - List lelantusCoins = []; + final List jindexes = []; + final List lelantusCoins = []; final List spendTxIds = []; int lastFoundIndex = 0; @@ -121,10 +122,12 @@ abstract final class LelantusFfiWrapper { ); final bool isUsed = args.usedSerialNumbers.contains(serialNumber); - lelantusCoins.removeWhere((e) => - e.txid == txId && - e.mintIndex == currentIndex && - e.anonymitySetId != setId); + lelantusCoins.removeWhere( + (e) => + e.txid == txId && + e.mintIndex == currentIndex && + e.anonymitySetId != setId, + ); lelantusCoins.add( isar_models.LelantusCoin( @@ -164,10 +167,12 @@ abstract final class LelantusFfiWrapper { ); final bool isUsed = args.usedSerialNumbers.contains(serialNumber); - lelantusCoins.removeWhere((e) => - e.txid == txId && - e.mintIndex == currentIndex && - e.anonymitySetId != setId); + lelantusCoins.removeWhere( + (e) => + e.txid == txId && + e.mintIndex == currentIndex && + e.anonymitySetId != setId, + ); lelantusCoins.add( isar_models.LelantusCoin( @@ -218,12 +223,13 @@ abstract final class LelantusFfiWrapper { } static Future _estimateJoinSplitFee( - ({ - int spendAmount, - bool subtractFeeFromAmount, - List lelantusEntries, - bool isTestNet, - }) data) async { + ({ + int spendAmount, + bool subtractFeeFromAmount, + List lelantusEntries, + bool isTestNet, + }) data, + ) async { debugPrint("estimateJoinSplit fee"); // for (int i = 0; i < lelantusEntries.length; i++) { // Logging.instance.log(lelantusEntries[i], addToDebugMessagesDB: false); @@ -232,8 +238,8 @@ abstract final class LelantusFfiWrapper { "${data.spendAmount} ${data.subtractFeeFromAmount}", ); - List changeToMint = List.empty(growable: true); - List spendCoinIndexes = List.empty(growable: true); + final List changeToMint = List.empty(growable: true); + final List spendCoinIndexes = List.empty(growable: true); // Logging.instance.log(lelantusEntries, addToDebugMessagesDB: false); final fee = lelantus.estimateFee( data.spendAmount, @@ -286,18 +292,19 @@ abstract final class LelantusFfiWrapper { } static Future _createJoinSplitTransaction( - ({ - TxData txData, - bool subtractFeeFromAmount, - int index, - List lelantusEntries, - int locktime, - Bip39HDCurrency cryptoCurrency, - List> anonymitySetsArg, - String partialDerivationPath, - String hexRootPrivateKey, - Uint8List chaincode, - }) arg) async { + ({ + TxData txData, + bool subtractFeeFromAmount, + int index, + List lelantusEntries, + int locktime, + Bip39HDCurrency cryptoCurrency, + List> anonymitySetsArg, + String partialDerivationPath, + String hexRootPrivateKey, + Uint8List chaincode, + }) arg, + ) async { final spendAmount = arg.txData.recipients!.first.amount.raw.toInt(); final address = arg.txData.recipients!.first.address; final isChange = arg.txData.recipients!.first.isChange; @@ -401,12 +408,13 @@ abstract final class LelantusFfiWrapper { if (!setIds.contains(anonymitySetId)) { setIds.add(anonymitySetId); final anonymitySet = arg.anonymitySetsArg.firstWhere( - (element) => element["setId"] == anonymitySetId, - orElse: () => {}); + (element) => element["setId"] == anonymitySetId, + orElse: () => {}, + ); if (anonymitySet.isNotEmpty) { anonymitySetHashes.add(anonymitySet['setHash'] as String); groupBlockHashes.add(anonymitySet['blockHash'] as String); - List list = []; + final List list = []; for (int i = 0; i < (anonymitySet['coins'] as List).length; i++) { list.add(anonymitySet['coins'][i][0] as String); } @@ -447,7 +455,8 @@ abstract final class LelantusFfiWrapper { final extTx = finalTx.buildIncomplete(); extTx.addInput( Format.stringToUint8List( - '0000000000000000000000000000000000000000000000000000000000000000'), + '0000000000000000000000000000000000000000000000000000000000000000', + ), 4294967295, 4294967295, Format.stringToUint8List("c9"), @@ -467,7 +476,7 @@ abstract final class LelantusFfiWrapper { txid: txId, raw: txHex, recipients: [ - (address: address, amount: amountAmount, isChange: isChange) + (address: address, amount: amountAmount, isChange: isChange), ], fee: Amount( rawValue: BigInt.from(fee), @@ -509,14 +518,15 @@ abstract final class LelantusFfiWrapper { // =========================================================================== static Future _getMintScriptWrapper( - ({ - int amount, - String privateKeyHex, - int index, - String seedId, - bool isTestNet - }) data) async { - String mintHex = lelantus.getMintScript( + ({ + int amount, + String privateKeyHex, + int index, + String seedId, + bool isTestNet + }) data, + ) async { + final String mintHex = lelantus.getMintScript( data.amount, data.privateKeyHex, data.index, diff --git a/lib/wallets/api/tezos/tezos_api.dart b/lib/wallets/api/tezos/tezos_api.dart index 754fc17aa..abe126ac3 100644 --- a/lib/wallets/api/tezos/tezos_api.dart +++ b/lib/wallets/api/tezos/tezos_api.dart @@ -33,8 +33,10 @@ abstract final class TezosAPI { } } - static Future getAccount(String address, - {String type = "user"}) async { + static Future getAccount( + String address, { + String type = "user", + }) async { try { final uriString = "$_baseURL/v1/accounts/$address?legacy=false"; final response = await _client.get( @@ -76,8 +78,8 @@ abstract final class TezosAPI { final result = jsonDecode(response.body) as List; - List txs = []; - for (var tx in result) { + final List txs = []; + for (final tx in result) { if (tx["type"] == "transaction") { final theTx = TezosTransaction( id: tx["id"] as int, diff --git a/lib/wallets/api/tezos/tezos_rpc_api.dart b/lib/wallets/api/tezos/tezos_rpc_api.dart index 201cd3b9b..1497a46c0 100644 --- a/lib/wallets/api/tezos/tezos_rpc_api.dart +++ b/lib/wallets/api/tezos/tezos_rpc_api.dart @@ -13,7 +13,7 @@ abstract final class TezosRpcAPI { required String address, }) async { try { - String balanceCall = + final String balanceCall = "${nodeInfo.host}:${nodeInfo.port}/chains/main/blocks/head/context/contracts/$address/balance"; final response = await _client.get( diff --git a/lib/wallets/crypto_currency/coins/bitcoincash.dart b/lib/wallets/crypto_currency/coins/bitcoincash.dart index e713dd417..25e18f6a3 100644 --- a/lib/wallets/crypto_currency/coins/bitcoincash.dart +++ b/lib/wallets/crypto_currency/coins/bitcoincash.dart @@ -4,6 +4,7 @@ import 'package:bech32/bech32.dart'; import 'package:bitbox/bitbox.dart' as bitbox; import 'package:bs58check/bs58check.dart' as bs58check; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/amount/amount.dart'; @@ -133,7 +134,8 @@ class Bitcoincash extends Bip39HDCurrency with ElectrumXCurrencyInterface { final addr = coinlib.Address.fromString(address, networkParams); return Bip39HDCurrency.convertBytesToScriptHash( - addr.program.script.compiled); + addr.program.script.compiled, + ); } catch (e) { rethrow; } @@ -159,7 +161,8 @@ class Bitcoincash extends Bip39HDCurrency with ElectrumXCurrencyInterface { break; default: throw Exception( - "DerivePathType $derivePathType not supported for coinType"); + "DerivePathType $derivePathType not supported for coinType", + ); } break; case 0xef: diff --git a/lib/wallets/crypto_currency/coins/ecash.dart b/lib/wallets/crypto_currency/coins/ecash.dart index bf173fe67..f20b9a52c 100644 --- a/lib/wallets/crypto_currency/coins/ecash.dart +++ b/lib/wallets/crypto_currency/coins/ecash.dart @@ -4,6 +4,7 @@ import 'package:bech32/bech32.dart'; import 'package:bitbox/bitbox.dart' as bitbox; import 'package:bs58check/bs58check.dart' as bs58check; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/amount/amount.dart'; @@ -128,7 +129,8 @@ class Ecash extends Bip39HDCurrency with ElectrumXCurrencyInterface { final addr = coinlib.Address.fromString(address, networkParams); return Bip39HDCurrency.convertBytesToScriptHash( - addr.program.script.compiled); + addr.program.script.compiled, + ); } catch (e) { rethrow; } @@ -153,12 +155,14 @@ class Ecash extends Bip39HDCurrency with ElectrumXCurrencyInterface { break; default: throw Exception( - "DerivePathType $derivePathType not supported for coinType"); + "DerivePathType $derivePathType not supported for coinType", + ); } break; case 0xef: // testnet wif throw Exception( - "DerivePathType $derivePathType not supported for coinType"); + "DerivePathType $derivePathType not supported for coinType", + ); default: throw Exception("Invalid ECash network wif used!"); } diff --git a/lib/wallets/crypto_currency/coins/namecoin.dart b/lib/wallets/crypto_currency/coins/namecoin.dart index 557644b84..daca04916 100644 --- a/lib/wallets/crypto_currency/coins/namecoin.dart +++ b/lib/wallets/crypto_currency/coins/namecoin.dart @@ -1,4 +1,5 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/amount/amount.dart'; @@ -130,9 +131,10 @@ class Namecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { } @override - ({coinlib.Address address, AddressType addressType}) getAddressForPublicKey( - {required coinlib.ECPublicKey publicKey, - required DerivePathType derivePathType}) { + ({coinlib.Address address, AddressType addressType}) getAddressForPublicKey({ + required coinlib.ECPublicKey publicKey, + required DerivePathType derivePathType, + }) { switch (derivePathType) { // case DerivePathType.bip16: diff --git a/lib/wallets/crypto_currency/coins/particl.dart b/lib/wallets/crypto_currency/coins/particl.dart index 9fb53ab1f..382602e7a 100644 --- a/lib/wallets/crypto_currency/coins/particl.dart +++ b/lib/wallets/crypto_currency/coins/particl.dart @@ -1,4 +1,5 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/amount/amount.dart'; @@ -51,11 +52,12 @@ class Particl extends Bip39HDCurrency with ElectrumXCurrencyInterface { @override // See https://github.com/cypherstack/stack_wallet/blob/d08b5c9b22b58db800ad07b2ceeb44c6d05f9cf3/lib/services/coins/particl/particl_wallet.dart#L68 - String constructDerivePath( - {required DerivePathType derivePathType, - int account = 0, - required int chain, - required int index}) { + String constructDerivePath({ + required DerivePathType derivePathType, + int account = 0, + required int chain, + required int index, + }) { String coinType; switch (networkParams.wifPrefix) { case 0x6c: // PART mainnet wif. diff --git a/lib/wallets/crypto_currency/coins/peercoin.dart b/lib/wallets/crypto_currency/coins/peercoin.dart index 3287b38ed..0edc1cbfa 100644 --- a/lib/wallets/crypto_currency/coins/peercoin.dart +++ b/lib/wallets/crypto_currency/coins/peercoin.dart @@ -1,5 +1,6 @@ import 'package:coinlib/src/network.dart'; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/amount/amount.dart'; @@ -142,9 +143,10 @@ class Peercoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { } @override - ({coinlib.Address address, AddressType addressType}) getAddressForPublicKey( - {required coinlib.ECPublicKey publicKey, - required DerivePathType derivePathType}) { + ({coinlib.Address address, AddressType addressType}) getAddressForPublicKey({ + required coinlib.ECPublicKey publicKey, + required DerivePathType derivePathType, + }) { switch (derivePathType) { // case DerivePathType.bip16: diff --git a/lib/wallets/crypto_currency/coins/solana.dart b/lib/wallets/crypto_currency/coins/solana.dart index 96ff3f2ae..7ae69ed43 100644 --- a/lib/wallets/crypto_currency/coins/solana.dart +++ b/lib/wallets/crypto_currency/coins/solana.dart @@ -1,4 +1,5 @@ import 'package:solana/solana.dart'; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/default_nodes.dart'; @@ -70,7 +71,8 @@ class Solana extends Bip39Currency { @override bool validateAddress(String address) { return isPointOnEd25519Curve( - Ed25519HDPublicKey.fromBase58(address).toByteArray()); + Ed25519HDPublicKey.fromBase58(address).toByteArray(), + ); } @override diff --git a/lib/wallets/crypto_currency/coins/stellar.dart b/lib/wallets/crypto_currency/coins/stellar.dart index dfcb37fce..e9749c515 100644 --- a/lib/wallets/crypto_currency/coins/stellar.dart +++ b/lib/wallets/crypto_currency/coins/stellar.dart @@ -120,7 +120,8 @@ class Stellar extends Bip39Currency { @override DerivePathType get primaryDerivePathType => throw UnsupportedError( - "$runtimeType does not use bitcoin style derivation paths",); + "$runtimeType does not use bitcoin style derivation paths", + ); @override Uri defaultBlockExplorer(String txid) { diff --git a/lib/wallets/crypto_currency/coins/tezos.dart b/lib/wallets/crypto_currency/coins/tezos.dart index 0cf344993..96f2acc0d 100644 --- a/lib/wallets/crypto_currency/coins/tezos.dart +++ b/lib/wallets/crypto_currency/coins/tezos.dart @@ -3,14 +3,15 @@ import 'dart:typed_data'; import 'package:bip39/bip39.dart' as bip39; import 'package:coinlib_flutter/coinlib_flutter.dart'; +import 'package:tezart/src/crypto/crypto.dart'; +import 'package:tezart/tezart.dart'; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/default_nodes.dart'; import '../../../utilities/enums/derive_path_type_enum.dart'; import '../crypto_currency.dart'; import '../intermediate/bip39_currency.dart'; -import 'package:tezart/src/crypto/crypto.dart'; -import 'package:tezart/tezart.dart'; class Tezos extends Bip39Currency { Tezos(super.network) { @@ -128,12 +129,15 @@ class Tezos extends Bip39Currency { // =========== Private ======================================================= static ({Uint8List privateKey, Uint8List chainCode}) _deriveRootNode( - Uint8List seed) { + Uint8List seed, + ) { return _deriveNode(seed, Uint8List.fromList(utf8.encode("ed25519 seed"))); } static ({Uint8List privateKey, Uint8List chainCode}) _deriveNode( - Uint8List msg, Uint8List key) { + Uint8List msg, + Uint8List key, + ) { final hMac = hmacSha512(key, msg); final privateKey = hMac.sublist(0, 32); final chainCode = hMac.sublist(32); @@ -141,11 +145,13 @@ class Tezos extends Bip39Currency { } static ({Uint8List privateKey, Uint8List chainCode}) _deriveChildNode( - ({Uint8List privateKey, Uint8List chainCode}) node, int index) { - Uint8List indexBuf = Uint8List(4); + ({Uint8List privateKey, Uint8List chainCode}) node, + int index, + ) { + final Uint8List indexBuf = Uint8List(4); ByteData.view(indexBuf.buffer).setUint32(0, index, Endian.big); - Uint8List message = Uint8List.fromList([ + final Uint8List message = Uint8List.fromList([ Uint8List(1)[0], ...node.privateKey, ...indexBuf, diff --git a/lib/wallets/isar/models/wallet_info.dart b/lib/wallets/isar/models/wallet_info.dart index 60a7a1b30..a84fe4348 100644 --- a/lib/wallets/isar/models/wallet_info.dart +++ b/lib/wallets/isar/models/wallet_info.dart @@ -81,7 +81,9 @@ class WalletInfo implements IsarId { return Balance.zeroFor(currency: coin); } else { return Balance.fromJson( - cachedBalanceSecondaryString!, coin.fractionDigits); + cachedBalanceSecondaryString!, + coin.fractionDigits, + ); } } @@ -92,7 +94,9 @@ class WalletInfo implements IsarId { return Balance.zeroFor(currency: coin); } else { return Balance.fromJson( - cachedBalanceTertiaryString!, coin.fractionDigits); + cachedBalanceTertiaryString!, + coin.fractionDigits, + ); } } diff --git a/lib/wallets/isar/providers/eth/token_balance_provider.dart b/lib/wallets/isar/providers/eth/token_balance_provider.dart index 741092387..9a4f054a9 100644 --- a/lib/wallets/isar/providers/eth/token_balance_provider.dart +++ b/lib/wallets/isar/providers/eth/token_balance_provider.dart @@ -1,5 +1,6 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; + import '../../../../models/balance.dart'; import '../../../../models/isar/models/isar_models.dart'; import '../../../../providers/db/main_db_provider.dart'; @@ -53,7 +54,10 @@ final pTokenWalletInfo = Provider.family( (ref, data) { - return ref.watch(_twiProvider(data).select( - (value) => (value.value as TokenWalletInfo).getCachedBalance())); + return ref.watch( + _twiProvider(data).select( + (value) => (value.value as TokenWalletInfo).getCachedBalance(), + ), + ); }, ); diff --git a/lib/wallets/isar/providers/wallet_info_provider.dart b/lib/wallets/isar/providers/wallet_info_provider.dart index a3ec30e49..b4247dc6f 100644 --- a/lib/wallets/isar/providers/wallet_info_provider.dart +++ b/lib/wallets/isar/providers/wallet_info_provider.dart @@ -1,5 +1,6 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; + import '../../../models/balance.dart'; import '../../../providers/db/main_db_provider.dart'; import '../../crypto_currency/crypto_currency.dart'; @@ -48,7 +49,8 @@ final pWalletBalanceSecondary = Provider.family( (ref, walletId) { return ref.watch( _wiProvider(walletId).select( - (value) => (value.value as WalletInfo).cachedBalanceSecondary), + (value) => (value.value as WalletInfo).cachedBalanceSecondary, + ), ); }, ); @@ -92,7 +94,8 @@ final pWalletReceivingAddress = Provider.family( (ref, walletId) { return ref.watch( _wiProvider(walletId).select( - (value) => (value.value as WalletInfo).cachedReceivingAddress), + (value) => (value.value as WalletInfo).cachedReceivingAddress, + ), ); }, ); @@ -101,7 +104,8 @@ final pWalletTokenAddresses = Provider.family, String>( (ref, walletId) { return ref.watch( _wiProvider(walletId).select( - (value) => (value.value as WalletInfo).tokenContractAddresses), + (value) => (value.value as WalletInfo).tokenContractAddresses, + ), ); }, ); diff --git a/lib/wallets/wallet/impl/banano_wallet.dart b/lib/wallets/wallet/impl/banano_wallet.dart index 044e31efd..6f6017322 100644 --- a/lib/wallets/wallet/impl/banano_wallet.dart +++ b/lib/wallets/wallet/impl/banano_wallet.dart @@ -1,4 +1,3 @@ -import '../../crypto_currency/coins/banano.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/intermediate/nano_currency.dart'; import '../../isar/models/wallet_info.dart'; diff --git a/lib/wallets/wallet/impl/bitcoin_frost_wallet.dart b/lib/wallets/wallet/impl/bitcoin_frost_wallet.dart index 953a1f0cf..d41d3d4c2 100644 --- a/lib/wallets/wallet/impl/bitcoin_frost_wallet.dart +++ b/lib/wallets/wallet/impl/bitcoin_frost_wallet.dart @@ -21,7 +21,6 @@ import '../../../services/frost.dart'; import '../../../utilities/amount/amount.dart'; import '../../../utilities/extensions/extensions.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/coins/bitcoin_frost.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/intermediate/frost_currency.dart'; import '../../isar/models/frost_wallet_info.dart'; diff --git a/lib/wallets/wallet/impl/bitcoin_wallet.dart b/lib/wallets/wallet/impl/bitcoin_wallet.dart index 207ca30fc..5487d8083 100644 --- a/lib/wallets/wallet/impl/bitcoin_wallet.dart +++ b/lib/wallets/wallet/impl/bitcoin_wallet.dart @@ -1,7 +1,7 @@ import 'package:isar/isar.dart'; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../utilities/amount/amount.dart'; -import '../../crypto_currency/coins/bitcoin.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/paynym_currency_interface.dart'; import '../intermediate/bip39_hd_wallet.dart'; @@ -48,8 +48,9 @@ class BitcoinWallet extends Bip39HDWallet Amount roughFeeEstimate(int inputCount, int outputCount, int feeRatePerKB) { return Amount( rawValue: BigInt.from( - ((42 + (272 * inputCount) + (128 * outputCount)) / 4).ceil() * - (feeRatePerKB / 1000).ceil()), + ((42 + (272 * inputCount) + (128 * outputCount)) / 4).ceil() * + (feeRatePerKB / 1000).ceil(), + ), fractionDigits: cryptoCurrency.fractionDigits, ); } diff --git a/lib/wallets/wallet/impl/bitcoincash_wallet.dart b/lib/wallets/wallet/impl/bitcoincash_wallet.dart index 45a81afd2..b00f650f2 100644 --- a/lib/wallets/wallet/impl/bitcoincash_wallet.dart +++ b/lib/wallets/wallet/impl/bitcoincash_wallet.dart @@ -1,18 +1,17 @@ import 'package:bitbox/bitbox.dart' as bitbox; import 'package:isar/isar.dart'; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../services/coins/bitcoincash/bch_utils.dart'; -import '../../../services/coins/bitcoincash/cashtokens.dart' - as cash_tokens; +import '../../../services/coins/bitcoincash/cashtokens.dart' as cash_tokens; import '../../../utilities/amount/amount.dart'; import '../../../utilities/enums/derive_path_type_enum.dart'; import '../../../utilities/extensions/extensions.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/coins/bitcoincash.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../intermediate/bip39_hd_wallet.dart'; @@ -76,10 +75,12 @@ class BitcoincashWallet .not() .typeEqualTo(AddressType.nonWallet) .and() - .group((q) => q - .subTypeEqualTo(AddressSubType.receiving) - .or() - .subTypeEqualTo(AddressSubType.change)) + .group( + (q) => q + .subTypeEqualTo(AddressSubType.receiving) + .or() + .subTypeEqualTo(AddressSubType.change), + ) .findAll(); return allAddresses; } @@ -100,14 +101,15 @@ class BitcoincashWallet @override Future updateTransactions() async { - List

    allAddressesOld = await fetchAddressesForElectrumXScan(); + final List
    allAddressesOld = + await fetchAddressesForElectrumXScan(); - Set receivingAddresses = allAddressesOld + final Set receivingAddresses = allAddressesOld .where((e) => e.subType == AddressSubType.receiving) .map((e) => convertAddressString(e.value)) .toSet(); - Set changeAddresses = allAddressesOld + final Set changeAddresses = allAddressesOld .where((e) => e.subType == AddressSubType.change) .map((e) => convertAddressString(e.value)) .toSet(); @@ -117,7 +119,7 @@ class BitcoincashWallet final List> allTxHashes = await fetchHistory(allAddressesSet); - List> allTransactions = []; + final List> allTransactions = []; for (final txHash in allTxHashes) { // final storedTx = await mainDB.isar.transactionV2s @@ -177,8 +179,9 @@ class BitcoincashWallet try { final prevOutJson = Map.from( - (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) - as Map); + (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) + as Map, + ); final prevOut = OutputV2.fromElectrumXJson( prevOutJson, decimalPlaces: cryptoCurrency.fractionDigits, @@ -194,8 +197,9 @@ class BitcoincashWallet addresses.addAll(prevOut.addresses); } catch (e, s) { Logging.instance.log( - "Error getting prevOutJson: $e\nStack trace: $s", - level: LogLevel.Warning); + "Error getting prevOutJson: $e\nStack trace: $s", + level: LogLevel.Warning, + ); } } @@ -360,8 +364,10 @@ class BitcoincashWallet @override Amount roughFeeEstimate(int inputCount, int outputCount, int feeRatePerKB) { return Amount( - rawValue: BigInt.from(((181 * inputCount) + (34 * outputCount) + 10) * - (feeRatePerKB / 1000).ceil()), + rawValue: BigInt.from( + ((181 * inputCount) + (34 * outputCount) + 10) * + (feeRatePerKB / 1000).ceil(), + ), fractionDigits: info.coin.fractionDigits, ); } diff --git a/lib/wallets/wallet/impl/dogecoin_wallet.dart b/lib/wallets/wallet/impl/dogecoin_wallet.dart index f91cda4e5..2c2dcd309 100644 --- a/lib/wallets/wallet/impl/dogecoin_wallet.dart +++ b/lib/wallets/wallet/impl/dogecoin_wallet.dart @@ -1,4 +1,5 @@ import 'package:isar/isar.dart'; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; @@ -7,7 +8,6 @@ import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../utilities/amount/amount.dart'; import '../../../utilities/extensions/extensions.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/coins/dogecoin.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../intermediate/bip39_hd_wallet.dart'; @@ -55,14 +55,15 @@ class DogecoinWallet @override Future updateTransactions() async { // Get all addresses. - List
    allAddressesOld = await fetchAddressesForElectrumXScan(); + final List
    allAddressesOld = + await fetchAddressesForElectrumXScan(); // Separate receiving and change addresses. - Set receivingAddresses = allAddressesOld + final Set receivingAddresses = allAddressesOld .where((e) => e.subType == AddressSubType.receiving) .map((e) => e.value) .toSet(); - Set changeAddresses = allAddressesOld + final Set changeAddresses = allAddressesOld .where((e) => e.subType == AddressSubType.change) .map((e) => e.value) .toSet(); @@ -75,7 +76,7 @@ class DogecoinWallet await fetchHistory(allAddressesSet); // Only parse new txs (not in db yet). - List> allTransactions = []; + final List> allTransactions = []; for (final txHash in allTxHashes) { // Check for duplicates by searching for tx by tx_hash in db. final storedTx = await mainDB.isar.transactionV2s @@ -136,8 +137,8 @@ class DogecoinWallet ); final prevOutJson = Map.from( - (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) - as Map); + (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) as Map, + ); final prevOut = OutputV2.fromElectrumXJson( prevOutJson, @@ -211,7 +212,7 @@ class DogecoinWallet .fold(BigInt.zero, (value, element) => value + element); TransactionType type; - TransactionSubType subType = TransactionSubType.none; + final TransactionSubType subType = TransactionSubType.none; // At least one input was owned by this wallet. if (wasSentFromThisWallet) { @@ -277,7 +278,7 @@ class DogecoinWallet // check for bip47 notification final outputs = jsonTX["vout"] as List; for (final output in outputs) { - List? scriptChunks = + final List? scriptChunks = (output['scriptPubKey']?['asm'] as String?)?.split(" "); if (scriptChunks?.length == 2 && scriptChunks?[0] == "OP_RETURN") { final blindedPaymentCode = scriptChunks![1]; @@ -300,8 +301,10 @@ class DogecoinWallet @override Amount roughFeeEstimate(int inputCount, int outputCount, int feeRatePerKB) { return Amount( - rawValue: BigInt.from(((181 * inputCount) + (34 * outputCount) + 10) * - (feeRatePerKB / 1000).ceil()), + rawValue: BigInt.from( + ((181 * inputCount) + (34 * outputCount) + 10) * + (feeRatePerKB / 1000).ceil(), + ), fractionDigits: cryptoCurrency.fractionDigits, ); } diff --git a/lib/wallets/wallet/impl/ecash_wallet.dart b/lib/wallets/wallet/impl/ecash_wallet.dart index 2a0eeb1e8..53c0f895b 100644 --- a/lib/wallets/wallet/impl/ecash_wallet.dart +++ b/lib/wallets/wallet/impl/ecash_wallet.dart @@ -1,18 +1,17 @@ import 'package:bitbox/bitbox.dart' as bitbox; import 'package:isar/isar.dart'; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../services/coins/bitcoincash/bch_utils.dart'; -import '../../../services/coins/bitcoincash/cashtokens.dart' - as cash_tokens; +import '../../../services/coins/bitcoincash/cashtokens.dart' as cash_tokens; import '../../../utilities/amount/amount.dart'; import '../../../utilities/enums/derive_path_type_enum.dart'; import '../../../utilities/extensions/extensions.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/coins/ecash.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../intermediate/bip39_hd_wallet.dart'; @@ -92,14 +91,15 @@ class EcashWallet extends Bip39HDWallet @override Future updateTransactions() async { - List
    allAddressesOld = await fetchAddressesForElectrumXScan(); + final List
    allAddressesOld = + await fetchAddressesForElectrumXScan(); - Set receivingAddresses = allAddressesOld + final Set receivingAddresses = allAddressesOld .where((e) => e.subType == AddressSubType.receiving) .map((e) => convertAddressString(e.value)) .toSet(); - Set changeAddresses = allAddressesOld + final Set changeAddresses = allAddressesOld .where((e) => e.subType == AddressSubType.change) .map((e) => convertAddressString(e.value)) .toSet(); @@ -109,7 +109,7 @@ class EcashWallet extends Bip39HDWallet final List> allTxHashes = await fetchHistory(allAddressesSet); - List> allTransactions = []; + final List> allTransactions = []; for (final txHash in allTxHashes) { final storedTx = await mainDB.isar.transactionV2s @@ -168,8 +168,8 @@ class EcashWallet extends Bip39HDWallet ); final prevOutJson = Map.from( - (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) - as Map); + (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) as Map, + ); final prevOut = OutputV2.fromElectrumXJson( prevOutJson, @@ -351,8 +351,10 @@ class EcashWallet extends Bip39HDWallet @override Amount roughFeeEstimate(int inputCount, int outputCount, int feeRatePerKB) { return Amount( - rawValue: BigInt.from(((181 * inputCount) + (34 * outputCount) + 10) * - (feeRatePerKB / 1000).ceil()), + rawValue: BigInt.from( + ((181 * inputCount) + (34 * outputCount) + 10) * + (feeRatePerKB / 1000).ceil(), + ), fractionDigits: info.coin.fractionDigits, ); } diff --git a/lib/wallets/wallet/impl/epiccash_wallet.dart b/lib/wallets/wallet/impl/epiccash_wallet.dart index 62b43ff1d..9df6a936a 100644 --- a/lib/wallets/wallet/impl/epiccash_wallet.dart +++ b/lib/wallets/wallet/impl/epiccash_wallet.dart @@ -9,6 +9,8 @@ import 'package:flutter_libepiccash/models/transaction.dart' as epic_models; import 'package:isar/isar.dart'; import 'package:mutex/mutex.dart'; import 'package:stack_wallet_backup/generate_password.dart'; +import 'package:web_socket_channel/web_socket_channel.dart'; + import '../../../models/balance.dart'; import '../../../models/epicbox_config_model.dart'; import '../../../models/isar/models/blockchain_data/address.dart'; @@ -30,12 +32,10 @@ import '../../../utilities/flutter_secure_storage_interface.dart'; import '../../../utilities/logger.dart'; import '../../../utilities/stack_file_system.dart'; import '../../../utilities/test_epic_box_connection.dart'; -import '../../crypto_currency/coins/epiccash.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../models/tx_data.dart'; import '../intermediate/bip39_wallet.dart'; import '../supporting/epiccash_wallet_info_extension.dart'; -import 'package:web_socket_channel/web_socket_channel.dart'; // // refactor of https://github.com/cypherstack/stack_wallet/blob/1d9fb4cd069f22492ece690ac788e05b8f8b1209/lib/services/coins/epiccash/epiccash_wallet.dart @@ -493,11 +493,17 @@ class EpiccashWallet extends Bip39Wallet { final EpicBoxConfigModel epicboxConfig = await getEpicBoxConfig(); await secureStorageInterface.write( - key: '${walletId}_config', value: stringConfig); + key: '${walletId}_config', + value: stringConfig, + ); await secureStorageInterface.write( - key: '${walletId}_password', value: password); + key: '${walletId}_password', + value: password, + ); await secureStorageInterface.write( - key: '${walletId}_epicboxConfig', value: epicboxConfig.toString()); + key: '${walletId}_epicboxConfig', + value: epicboxConfig.toString(), + ); final String name = walletId; @@ -523,7 +529,8 @@ class EpiccashWallet extends Bip39Wallet { // subtract a couple days to ensure we have a buffer for SWB final bufferedCreateHeight = _calculateRestoreHeightFrom( - date: DateTime.now().subtract(const Duration(days: 2))); + date: DateTime.now().subtract(const Duration(days: 2)), + ); final epicData = ExtraEpiccashWalletInfo( receivingIndex: 0, @@ -542,8 +549,9 @@ class EpiccashWallet extends Bip39Wallet { } else { try { Logging.instance.log( - "initializeExisting() ${cryptoCurrency.prettyName} wallet", - level: LogLevel.Info); + "initializeExisting() ${cryptoCurrency.prettyName} wallet", + level: LogLevel.Info, + ); final config = await _getRealConfig(); final password = @@ -554,7 +562,9 @@ class EpiccashWallet extends Bip39Wallet { password: password!, ); await secureStorageInterface.write( - key: '${walletId}_wallet', value: walletOpen); + key: '${walletId}_wallet', + value: walletOpen, + ); await updateNode(); } catch (e, s) { @@ -650,7 +660,8 @@ class EpiccashWallet extends Bip39Wallet { if (feeAmount > info.cachedBalance.spendable) { throw Exception( - "Epic cash prepare send fee is greater than available balance!"); + "Epic cash prepare send fee is greater than available balance!", + ); } if (info.cachedBalance.spendable == recipient.amount) { @@ -742,15 +753,17 @@ class EpiccashWallet extends Bip39Wallet { ); await _generateAndStoreReceivingAddressForIndex( - epicData.receivingIndex); + epicData.receivingIndex, + ); } }); unawaited(refresh()); } catch (e, s) { Logging.instance.log( - "Exception rethrown from electrumx_mixin recover(): $e\n$s", - level: LogLevel.Info); + "Exception rethrown from electrumx_mixin recover(): $e\n$s", + level: LogLevel.Info, + ); rethrow; } @@ -1117,12 +1130,13 @@ class EpiccashWallet extends Bip39Wallet { // this wasn't done before the refactor either so... // TODO: implement _getFees return FeeObject( - numberOfBlocksFast: 10, - numberOfBlocksAverage: 10, - numberOfBlocksSlow: 10, - fast: 1, - medium: 1, - slow: 1); + numberOfBlocksFast: 10, + numberOfBlocksAverage: 10, + numberOfBlocksSlow: 10, + fast: 1, + medium: 1, + slow: 1, + ); } @override diff --git a/lib/wallets/wallet/impl/ethereum_wallet.dart b/lib/wallets/wallet/impl/ethereum_wallet.dart index 05b075868..736f0fb05 100644 --- a/lib/wallets/wallet/impl/ethereum_wallet.dart +++ b/lib/wallets/wallet/impl/ethereum_wallet.dart @@ -5,6 +5,8 @@ import 'package:decimal/decimal.dart'; import 'package:ethereum_addresses/ethereum_addresses.dart'; import 'package:http/http.dart'; import 'package:isar/isar.dart'; +import 'package:web3dart/web3dart.dart' as web3; + import '../../../models/balance.dart'; import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; @@ -19,12 +21,10 @@ import '../../../utilities/amount/amount.dart'; import '../../../utilities/enums/fee_rate_type_enum.dart'; import '../../../utilities/eth_commons.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/coins/ethereum.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../models/tx_data.dart'; import '../intermediate/bip39_wallet.dart'; import '../wallet_mixin_interfaces/private_key_interface.dart'; -import 'package:web3dart/web3dart.dart' as web3; // Eth can not use tor with web3dart @@ -142,7 +142,7 @@ class EthereumWallet extends Bip39Wallet with PrivateKeyInterface { @override Future pingCheck() async { - web3.Web3Client client = getEthClient(); + final web3.Web3Client client = getEthClient(); try { await client.getBlockNumber(); return true; @@ -158,7 +158,7 @@ class EthereumWallet extends Bip39Wallet with PrivateKeyInterface { final addressHex = (await getCurrentReceivingAddress())!.value; final address = web3.EthereumAddress.fromHex(addressHex); - web3.EtherAmount ethBalance = await client.getBalance(address); + final web3.EtherAmount ethBalance = await client.getBalance(address); final balance = Balance( total: Amount( rawValue: ethBalance.getInWei, @@ -287,7 +287,7 @@ class EthereumWallet extends Bip39Wallet with PrivateKeyInterface { final List outputs = []; final List inputs = []; - OutputV2 output = OutputV2.isarCantDoRequiredInDefaultConstructor( + final OutputV2 output = OutputV2.isarCantDoRequiredInDefaultConstructor( scriptPubKeyHex: "00", valueStringSats: transactionAmount.raw.toString(), addresses: [ @@ -295,7 +295,7 @@ class EthereumWallet extends Bip39Wallet with PrivateKeyInterface { ], walletOwns: addressTo == thisAddress, ); - InputV2 input = InputV2.isarCantDoRequiredInDefaultConstructor( + final InputV2 input = InputV2.isarCantDoRequiredInDefaultConstructor( scriptSigHex: null, scriptSigAsm: null, sequence: null, @@ -413,8 +413,10 @@ class EthereumWallet extends Bip39Wallet with PrivateKeyInterface { // ); final nonce = txData.nonce ?? - await client.getTransactionCount(myWeb3Address, - atBlock: const web3.BlockNum.pending()); + await client.getTransactionCount( + myWeb3Address, + atBlock: const web3.BlockNum.pending(), + ); // final nResponse = await EthereumAPI.getAddressNonce(address: myAddress); // print("=============================================================="); diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index 0be178086..dce8cd9fa 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -5,6 +5,7 @@ import 'dart:math'; import 'package:decimal/decimal.dart'; import 'package:flutter_libsparkmobile/flutter_libsparkmobile.dart'; import 'package:isar/isar.dart'; + import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; @@ -13,7 +14,6 @@ import '../../../utilities/amount/amount.dart'; import '../../../utilities/extensions/extensions.dart'; import '../../../utilities/logger.dart'; import '../../../utilities/util.dart'; -import '../../crypto_currency/coins/firo.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../../isar/models/spark_coin.dart'; @@ -259,9 +259,9 @@ class FiroWallet extends Bip39HDWallet .toUint8ListFromHex .first; if (opByte == OP_SPARKMINT || opByte == OP_SPARKSMINT) { - final serCoin = base64Encode(output.scriptPubKeyHex - .substring(2, 488) - .toUint8ListFromHex); + final serCoin = base64Encode( + output.scriptPubKeyHex.substring(2, 488).toUint8ListFromHex, + ); final coin = sparkCoinsInvolved .where((e) => e.serializedCoinB64!.startsWith(serCoin)) .firstOrNull; @@ -384,8 +384,8 @@ class FiroWallet extends Bip39HDWallet ); final prevOutJson = Map.from( - (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) - as Map); + (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) as Map, + ); final prevOut = OutputV2.fromElectrumXJson( prevOutJson, @@ -604,7 +604,8 @@ class FiroWallet extends Bip39HDWallet if (isRescan) { // clear cache await electrumXCachedClient.clearSharedTransactionCache( - cryptoCurrency: info.coin); + cryptoCurrency: info.coin, + ); // clear blockchain info await mainDB.deleteWalletBlockchainData(walletId); } @@ -717,12 +718,16 @@ class FiroWallet extends Bip39HDWallet } // remove extra addresses to help minimize risk of creating a large gap - addressesToStore.removeWhere((e) => - e.subType == AddressSubType.change && - e.derivationIndex > highestChangeIndexWithHistory); - addressesToStore.removeWhere((e) => - e.subType == AddressSubType.receiving && - e.derivationIndex > highestReceivingIndexWithHistory); + addressesToStore.removeWhere( + (e) => + e.subType == AddressSubType.change && + e.derivationIndex > highestChangeIndexWithHistory, + ); + addressesToStore.removeWhere( + (e) => + e.subType == AddressSubType.receiving && + e.derivationIndex > highestReceivingIndexWithHistory, + ); await mainDB.updateOrPutAddresses(addressesToStore); @@ -774,8 +779,9 @@ class FiroWallet extends Bip39HDWallet unawaited(refresh()); } catch (e, s) { Logging.instance.log( - "Exception rethrown from electrumx_mixin recover(): $e\n$s", - level: LogLevel.Info); + "Exception rethrown from electrumx_mixin recover(): $e\n$s", + level: LogLevel.Info, + ); rethrow; } @@ -784,8 +790,10 @@ class FiroWallet extends Bip39HDWallet @override Amount roughFeeEstimate(int inputCount, int outputCount, int feeRatePerKB) { return Amount( - rawValue: BigInt.from(((181 * inputCount) + (34 * outputCount) + 10) * - (feeRatePerKB / 1000).ceil()), + rawValue: BigInt.from( + ((181 * inputCount) + (34 * outputCount) + 10) * + (feeRatePerKB / 1000).ceil(), + ), fractionDigits: cryptoCurrency.fractionDigits, ); } diff --git a/lib/wallets/wallet/impl/litecoin_wallet.dart b/lib/wallets/wallet/impl/litecoin_wallet.dart index 0cce6fd8d..97c9bd42c 100644 --- a/lib/wallets/wallet/impl/litecoin_wallet.dart +++ b/lib/wallets/wallet/impl/litecoin_wallet.dart @@ -1,4 +1,5 @@ import 'package:isar/isar.dart'; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; @@ -7,7 +8,6 @@ import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../models/isar/ordinal.dart'; import '../../../utilities/amount/amount.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/coins/litecoin.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../intermediate/bip39_hd_wallet.dart'; @@ -54,14 +54,15 @@ class LitecoinWallet @override Future updateTransactions() async { // Get all addresses. - List
    allAddressesOld = await fetchAddressesForElectrumXScan(); + final List
    allAddressesOld = + await fetchAddressesForElectrumXScan(); // Separate receiving and change addresses. - Set receivingAddresses = allAddressesOld + final Set receivingAddresses = allAddressesOld .where((e) => e.subType == AddressSubType.receiving) .map((e) => e.value) .toSet(); - Set changeAddresses = allAddressesOld + final Set changeAddresses = allAddressesOld .where((e) => e.subType == AddressSubType.change) .map((e) => e.value) .toSet(); @@ -78,7 +79,7 @@ class LitecoinWallet await fetchHistory(allAddressesSet); // Only parse new txs (not in db yet). - List> allTransactions = []; + final List> allTransactions = []; for (final txHash in allTxHashes) { // Check for duplicates by searching for tx by tx_hash in db. final storedTx = await mainDB.isar.transactionV2s @@ -141,8 +142,8 @@ class LitecoinWallet ); final prevOutJson = Map.from( - (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) - as Map); + (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) as Map, + ); final prevOut = OutputV2.fromElectrumXJson( prevOutJson, @@ -310,8 +311,9 @@ class LitecoinWallet Amount roughFeeEstimate(int inputCount, int outputCount, int feeRatePerKB) { return Amount( rawValue: BigInt.from( - ((42 + (272 * inputCount) + (128 * outputCount)) / 4).ceil() * - (feeRatePerKB / 1000).ceil()), + ((42 + (272 * inputCount) + (128 * outputCount)) / 4).ceil() * + (feeRatePerKB / 1000).ceil(), + ), fractionDigits: cryptoCurrency.fractionDigits, ); } diff --git a/lib/wallets/wallet/impl/namecoin_wallet.dart b/lib/wallets/wallet/impl/namecoin_wallet.dart index 48321a888..a401d6395 100644 --- a/lib/wallets/wallet/impl/namecoin_wallet.dart +++ b/lib/wallets/wallet/impl/namecoin_wallet.dart @@ -1,4 +1,5 @@ import 'package:isar/isar.dart'; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; @@ -6,14 +7,14 @@ import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../utilities/amount/amount.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/coins/namecoin.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../intermediate/bip39_hd_wallet.dart'; import '../wallet_mixin_interfaces/coin_control_interface.dart'; import '../wallet_mixin_interfaces/electrumx_interface.dart'; -class NamecoinWallet extends Bip39HDWallet +class NamecoinWallet + extends Bip39HDWallet with ElectrumXInterface, CoinControlInterface { @override int get isarTransactionVersion => 2; @@ -74,8 +75,9 @@ class NamecoinWallet extends Bip39HDWallet Amount roughFeeEstimate(int inputCount, int outputCount, int feeRatePerKB) { return Amount( rawValue: BigInt.from( - ((42 + (272 * inputCount) + (128 * outputCount)) / 4).ceil() * - (feeRatePerKB / 1000).ceil()), + ((42 + (272 * inputCount) + (128 * outputCount)) / 4).ceil() * + (feeRatePerKB / 1000).ceil(), + ), fractionDigits: cryptoCurrency.fractionDigits, ); } @@ -83,14 +85,15 @@ class NamecoinWallet extends Bip39HDWallet @override Future updateTransactions() async { // Get all addresses. - List
    allAddressesOld = await fetchAddressesForElectrumXScan(); + final List
    allAddressesOld = + await fetchAddressesForElectrumXScan(); // Separate receiving and change addresses. - Set receivingAddresses = allAddressesOld + final Set receivingAddresses = allAddressesOld .where((e) => e.subType == AddressSubType.receiving) .map((e) => e.value) .toSet(); - Set changeAddresses = allAddressesOld + final Set changeAddresses = allAddressesOld .where((e) => e.subType == AddressSubType.change) .map((e) => e.value) .toSet(); @@ -103,7 +106,7 @@ class NamecoinWallet extends Bip39HDWallet await fetchHistory(allAddressesSet); // Only parse new txs (not in db yet). - List> allTransactions = []; + final List> allTransactions = []; for (final txHash in allTxHashes) { // Check for duplicates by searching for tx by tx_hash in db. final storedTx = await mainDB.isar.transactionV2s @@ -164,8 +167,8 @@ class NamecoinWallet extends Bip39HDWallet ); final prevOutJson = Map.from( - (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) - as Map); + (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) as Map, + ); final prevOut = OutputV2.fromElectrumXJson( prevOutJson, @@ -239,7 +242,7 @@ class NamecoinWallet extends Bip39HDWallet .fold(BigInt.zero, (value, element) => value + element); TransactionType type; - TransactionSubType subType = TransactionSubType.none; + final TransactionSubType subType = TransactionSubType.none; // At least one input was owned by this wallet. if (wasSentFromThisWallet) { diff --git a/lib/wallets/wallet/impl/nano_wallet.dart b/lib/wallets/wallet/impl/nano_wallet.dart index e541ad1f7..db66769cf 100644 --- a/lib/wallets/wallet/impl/nano_wallet.dart +++ b/lib/wallets/wallet/impl/nano_wallet.dart @@ -1,4 +1,3 @@ -import '../../crypto_currency/coins/nano.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/intermediate/nano_currency.dart'; import '../intermediate/bip39_wallet.dart'; diff --git a/lib/wallets/wallet/impl/particl_wallet.dart b/lib/wallets/wallet/impl/particl_wallet.dart index 760c88e97..0ce72b393 100644 --- a/lib/wallets/wallet/impl/particl_wallet.dart +++ b/lib/wallets/wallet/impl/particl_wallet.dart @@ -2,6 +2,7 @@ import 'dart:typed_data'; import 'package:bitcoindart/bitcoindart.dart' as bitcoindart; import 'package:isar/isar.dart'; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; @@ -12,7 +13,6 @@ import '../../../utilities/amount/amount.dart'; import '../../../utilities/enums/derive_path_type_enum.dart'; import '../../../utilities/extensions/impl/uint8_list.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/coins/particl.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../../models/tx_data.dart'; @@ -120,8 +120,9 @@ class ParticlWallet Amount roughFeeEstimate(int inputCount, int outputCount, int feeRatePerKB) { return Amount( rawValue: BigInt.from( - ((42 + (272 * inputCount) + (128 * outputCount)) / 4).ceil() * - (feeRatePerKB / 1000).ceil()), + ((42 + (272 * inputCount) + (128 * outputCount)) / 4).ceil() * + (feeRatePerKB / 1000).ceil(), + ), fractionDigits: cryptoCurrency.fractionDigits, ); } @@ -129,14 +130,15 @@ class ParticlWallet @override Future updateTransactions() async { // Get all addresses. - List
    allAddressesOld = await fetchAddressesForElectrumXScan(); + final List
    allAddressesOld = + await fetchAddressesForElectrumXScan(); // Separate receiving and change addresses. - Set receivingAddresses = allAddressesOld + final Set receivingAddresses = allAddressesOld .where((e) => e.subType == AddressSubType.receiving) .map((e) => e.value) .toSet(); - Set changeAddresses = allAddressesOld + final Set changeAddresses = allAddressesOld .where((e) => e.subType == AddressSubType.change) .map((e) => e.value) .toSet(); @@ -149,7 +151,7 @@ class ParticlWallet await fetchHistory(allAddressesSet); // Only parse new txs (not in db yet). - List> allTransactions = []; + final List> allTransactions = []; for (final txHash in allTxHashes) { // Check for duplicates by searching for tx by tx_hash in db. final storedTx = await mainDB.isar.transactionV2s @@ -210,8 +212,8 @@ class ParticlWallet ); final prevOutJson = Map.from( - (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) - as Map); + (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) as Map, + ); final prevOut = _parseOutput( prevOutJson, @@ -285,7 +287,7 @@ class ParticlWallet .fold(BigInt.zero, (value, element) => value + element); TransactionType type; - TransactionSubType subType = TransactionSubType.none; + final TransactionSubType subType = TransactionSubType.none; // Particl has special outputs like confidential amounts. We can check // for them here. They're also checked in checkBlockUTXO. @@ -342,8 +344,10 @@ class ParticlWallet required TxData txData, required List utxoSigningData, }) async { - Logging.instance.log("Starting Particl buildTransaction ----------", - level: LogLevel.Info); + Logging.instance.log( + "Starting Particl buildTransaction ----------", + level: LogLevel.Info, + ); // TODO: use coinlib (For this we need coinlib to support particl) @@ -515,8 +519,10 @@ class ParticlWallet ); } } catch (e, s) { - Logging.instance.log("Caught exception while signing transaction: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "Caught exception while signing transaction: $e\n$s", + level: LogLevel.Error, + ); rethrow; } @@ -530,8 +536,10 @@ class ParticlWallet String hexString = builtTx.toHex(isParticl: true).toString(); if (hexString.length % 2 != 0) { // Ensure the string has an even length. - Logging.instance.log("Hex string has odd length, which is unexpected.", - level: LogLevel.Error); + Logging.instance.log( + "Hex string has odd length, which is unexpected.", + level: LogLevel.Error, + ); throw Exception("Invalid hex string length."); } // int maxStrips = 3; // Strip up to 3 0x00s (match previous particl_wallet). diff --git a/lib/wallets/wallet/impl/peercoin_wallet.dart b/lib/wallets/wallet/impl/peercoin_wallet.dart index b7297dd47..2567e841d 100644 --- a/lib/wallets/wallet/impl/peercoin_wallet.dart +++ b/lib/wallets/wallet/impl/peercoin_wallet.dart @@ -6,7 +6,6 @@ import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../utilities/amount/amount.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/coins/peercoin.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../intermediate/bip39_hd_wallet.dart'; diff --git a/lib/wallets/wallet/impl/solana_wallet.dart b/lib/wallets/wallet/impl/solana_wallet.dart index f194dcfee..55ecafade 100644 --- a/lib/wallets/wallet/impl/solana_wallet.dart +++ b/lib/wallets/wallet/impl/solana_wallet.dart @@ -7,9 +7,10 @@ import 'package:isar/isar.dart'; import 'package:socks5_proxy/socks_client.dart'; import 'package:solana/dto.dart'; import 'package:solana/solana.dart'; +import 'package:tuple/tuple.dart'; + import '../../../models/balance.dart'; -import '../../../models/isar/models/blockchain_data/transaction.dart' - as isar; +import '../../../models/isar/models/blockchain_data/transaction.dart' as isar; import '../../../models/isar/models/isar_models.dart'; import '../../../models/node_model.dart'; import '../../../models/paymint/fee_object_model.dart'; @@ -17,11 +18,9 @@ import '../../../services/node_service.dart'; import '../../../services/tor_service.dart'; import '../../../utilities/amount/amount.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/coins/solana.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../models/tx_data.dart'; import '../intermediate/bip39_wallet.dart'; -import 'package:tuple/tuple.dart'; class SolanaWallet extends Bip39Wallet { SolanaWallet(CryptoCurrencyNetwork network) : super(Solana(network)); @@ -63,13 +62,15 @@ class SolanaWallet extends Bip39Wallet { final latestBlockhash = await _rpcClient?.getLatestBlockhash(); final pubKey = (await _getKeyPair()).publicKey; - final compiledMessage = Message(instructions: [ - SystemInstruction.transfer( - fundingAccount: pubKey, - recipientAccount: pubKey, - lamports: transferAmount.raw.toInt(), - ) - ]).compile( + final compiledMessage = Message( + instructions: [ + SystemInstruction.transfer( + fundingAccount: pubKey, + recipientAccount: pubKey, + lamports: transferAmount.raw.toInt(), + ), + ], + ).compile( recentBlockhash: latestBlockhash!.value.blockhash, feePayer: pubKey, ); @@ -119,7 +120,8 @@ class SolanaWallet extends Bip39Wallet { final feeAmount = await _getEstimatedNetworkFee(sendAmount); if (feeAmount == null) { throw Exception( - "Failed to get fees, please check your node connection."); + "Failed to get fees, please check your node connection.", + ); } final address = await getCurrentReceivingAddress(); @@ -128,7 +130,8 @@ class SolanaWallet extends Bip39Wallet { final accInfo = await _rpcClient?.getAccountInfo(address!.value); final int minimumRent = await _rpcClient?.getMinimumBalanceForRentExemption( - accInfo!.value!.data.toString().length) ?? + accInfo!.value!.data.toString().length, + ) ?? 0; // TODO revisit null condition. if (minimumRent > ((await _getCurrentBalanceInLamports()) - @@ -167,11 +170,13 @@ class SolanaWallet extends Bip39Wallet { final message = Message( instructions: [ SystemInstruction.transfer( - fundingAccount: keyPair.publicKey, - recipientAccount: recipientPubKey, - lamports: txData.amount!.raw.toInt()), + fundingAccount: keyPair.publicKey, + recipientAccount: recipientPubKey, + lamports: txData.amount!.raw.toInt(), + ), ComputeBudgetInstruction.setComputeUnitPrice( - microLamports: txData.fee!.raw.toInt() - 5000), + microLamports: txData.fee!.raw.toInt() - 5000, + ), // 5000 lamports is the base fee for a transaction. This instruction adds the necessary fee on top of base fee if it is needed. ComputeBudgetInstruction.setComputeUnitLimit(units: 1000000), // 1000000 is the multiplication number to turn the compute unit price of microLamports to lamports. @@ -230,12 +235,13 @@ class SolanaWallet extends Bip39Wallet { } return FeeObject( - numberOfBlocksFast: 1, - numberOfBlocksAverage: 1, - numberOfBlocksSlow: 1, - fast: fee, - medium: fee, - slow: fee); + numberOfBlocksFast: 1, + numberOfBlocksAverage: 1, + numberOfBlocksSlow: 1, + fast: fee, + medium: fee, + slow: fee, + ); } @override @@ -292,7 +298,8 @@ class SolanaWallet extends Bip39Wallet { // TODO [prio=low]: handle null account info. final int minimumRent = await _rpcClient?.getMinimumBalanceForRentExemption( - accInfo!.value!.data.toString().length) ?? + accInfo!.value!.data.toString().length, + ) ?? 0; // TODO [prio=low]: revisit null condition. final spendableBalance = balance!.value - minimumRent; @@ -366,8 +373,9 @@ class SolanaWallet extends Bip39Wallet { _checkClient(); final transactionsList = await _rpcClient?.getTransactionsList( - (await _getKeyPair()).publicKey, - encoding: Encoding.jsonParsed); + (await _getKeyPair()).publicKey, + encoding: Encoding.jsonParsed, + ); final txsList = List>.empty(growable: true); diff --git a/lib/wallets/wallet/impl/stellar_wallet.dart b/lib/wallets/wallet/impl/stellar_wallet.dart index 3742bc992..09d5d48fa 100644 --- a/lib/wallets/wallet/impl/stellar_wallet.dart +++ b/lib/wallets/wallet/impl/stellar_wallet.dart @@ -5,6 +5,8 @@ import 'dart:io'; import 'package:isar/isar.dart'; import 'package:mutex/mutex.dart'; import 'package:socks5_proxy/socks.dart'; +import 'package:stellar_flutter_sdk/stellar_flutter_sdk.dart' as stellar; + import '../../../models/balance.dart'; import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; @@ -20,11 +22,9 @@ import '../../../utilities/amount/amount.dart'; import '../../../utilities/enums/fee_rate_type_enum.dart'; import '../../../utilities/logger.dart'; import '../../../utilities/test_stellar_node_connection.dart'; -import '../../crypto_currency/coins/stellar.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../models/tx_data.dart'; import '../intermediate/bip39_wallet.dart'; -import 'package:stellar_flutter_sdk/stellar_flutter_sdk.dart' as stellar; class StellarWallet extends Bip39Wallet { StellarWallet(CryptoCurrencyNetwork network) : super(Stellar(network)) { @@ -143,8 +143,9 @@ class StellarWallet extends Bip39Wallet { } } catch (e, s) { Logging.instance.log( - "Error getting account ${e.toString()} - ${s.toString()}", - level: LogLevel.Error); + "Error getting account ${e.toString()} - ${s.toString()}", + level: LogLevel.Error, + ); } return exists; } @@ -235,8 +236,10 @@ class StellarWallet extends Bip39Wallet { ), ); } catch (e, s) { - Logging.instance.log("$runtimeType prepareSend() failed: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "$runtimeType prepareSend() failed: $e\n$s", + level: LogLevel.Error, + ); rethrow; } } @@ -478,10 +481,12 @@ class StellarWallet extends Bip39Wallet { type = TransactionType.incoming; } final amount = Amount( - rawValue: BigInt.parse(float - .parse(por.amount!) - .toStringAsFixed(cryptoCurrency.fractionDigits) - .replaceAll(".", "")), + rawValue: BigInt.parse( + float + .parse(por.amount!) + .toStringAsFixed(cryptoCurrency.fractionDigits) + .replaceAll(".", ""), + ), fractionDigits: cryptoCurrency.fractionDigits, ); @@ -560,10 +565,12 @@ class StellarWallet extends Bip39Wallet { type = TransactionType.incoming; } final amount = Amount( - rawValue: BigInt.parse(float - .parse(caor.startingBalance!) - .toStringAsFixed(cryptoCurrency.fractionDigits) - .replaceAll(".", "")), + rawValue: BigInt.parse( + float + .parse(caor.startingBalance!) + .toStringAsFixed(cryptoCurrency.fractionDigits) + .replaceAll(".", ""), + ), fractionDigits: cryptoCurrency.fractionDigits, ); @@ -640,8 +647,9 @@ class StellarWallet extends Bip39Wallet { await mainDB.updateOrPutTransactionV2s(transactionList); } catch (e, s) { Logging.instance.log( - "Exception rethrown from updateTransactions(): $e\n$s", - level: LogLevel.Error); + "Exception rethrown from updateTransactions(): $e\n$s", + level: LogLevel.Error, + ); rethrow; } } diff --git a/lib/wallets/wallet/impl/tezos_wallet.dart b/lib/wallets/wallet/impl/tezos_wallet.dart index ead0247aa..f4c8c0ebe 100644 --- a/lib/wallets/wallet/impl/tezos_wallet.dart +++ b/lib/wallets/wallet/impl/tezos_wallet.dart @@ -14,7 +14,6 @@ import '../../../utilities/logger.dart'; import '../../api/tezos/tezos_account.dart'; import '../../api/tezos/tezos_api.dart'; import '../../api/tezos/tezos_rpc_api.dart'; -import '../../crypto_currency/coins/tezos.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../isar/models/wallet_info.dart'; import '../../models/tx_data.dart'; diff --git a/lib/wallets/wallet/intermediate/cryptonote_wallet.dart b/lib/wallets/wallet/intermediate/cryptonote_wallet.dart index 95790a169..aabee237b 100644 --- a/lib/wallets/wallet/intermediate/cryptonote_wallet.dart +++ b/lib/wallets/wallet/intermediate/cryptonote_wallet.dart @@ -7,7 +7,7 @@ import '../wallet_mixin_interfaces/mnemonic_interface.dart'; abstract class CryptonoteWallet extends Wallet with MnemonicInterface { - CryptonoteWallet(T currency) : super(currency); + CryptonoteWallet(super.currency); Completer? walletOpenCompleter; diff --git a/lib/wallets/wallet/wallet.dart b/lib/wallets/wallet/wallet.dart index 36d9130b3..8fa0b9ddf 100644 --- a/lib/wallets/wallet/wallet.dart +++ b/lib/wallets/wallet/wallet.dart @@ -3,6 +3,7 @@ import 'dart:async'; import 'package:isar/isar.dart'; import 'package:meta/meta.dart'; import 'package:mutex/mutex.dart'; + import '../../db/isar/main_db.dart'; import '../../models/isar/models/blockchain_data/address.dart'; import '../../models/isar/models/ethereum/eth_contract.dart'; @@ -20,25 +21,6 @@ import '../../utilities/flutter_secure_storage_interface.dart'; import '../../utilities/logger.dart'; import '../../utilities/paynym_is_api.dart'; import '../../utilities/prefs.dart'; -import '../crypto_currency/coins/banano.dart'; -import '../crypto_currency/coins/bitcoin.dart'; -import '../crypto_currency/coins/bitcoin_frost.dart'; -import '../crypto_currency/coins/bitcoincash.dart'; -import '../crypto_currency/coins/dogecoin.dart'; -import '../crypto_currency/coins/ecash.dart'; -import '../crypto_currency/coins/epiccash.dart'; -import '../crypto_currency/coins/ethereum.dart'; -import '../crypto_currency/coins/firo.dart'; -import '../crypto_currency/coins/litecoin.dart'; -import '../crypto_currency/coins/monero.dart'; -import '../crypto_currency/coins/namecoin.dart'; -import '../crypto_currency/coins/nano.dart'; -import '../crypto_currency/coins/particl.dart'; -import '../crypto_currency/coins/peercoin.dart'; -import '../crypto_currency/coins/solana.dart'; -import '../crypto_currency/coins/stellar.dart'; -import '../crypto_currency/coins/tezos.dart'; -import '../crypto_currency/coins/wownero.dart'; import '../crypto_currency/crypto_currency.dart'; import '../isar/models/wallet_info.dart'; import '../models/tx_data.dart'; @@ -122,7 +104,8 @@ abstract class Wallet { bool _isConnected = false; void xmrAndWowSyncSpecificFunctionThatShouldBeGottenRidOfInTheFuture( - bool flag) { + bool flag, + ) { _isConnected = flag; } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart index a7a75e397..9559fa848 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart @@ -1,6 +1,7 @@ import 'package:bitbox/bitbox.dart' as bitbox; import 'package:bitbox/src/utils/network.dart' as bitbox_utils; import 'package:isar/isar.dart'; + import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; @@ -112,8 +113,10 @@ mixin BCashInterface ); } } catch (e, s) { - Logging.instance.log("Caught exception while signing transaction: $e\n$s", - level: LogLevel.Error); + Logging.instance.log( + "Caught exception while signing transaction: $e\n$s", + level: LogLevel.Error, + ); rethrow; } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart index 4858c8bdc..c22064d03 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart @@ -5,6 +5,7 @@ import 'package:bitbox/bitbox.dart' as bitbox; import 'package:flutter/foundation.dart'; import 'package:fusiondart/fusiondart.dart' as fusion; import 'package:isar/isar.dart'; + import '../../../models/fusion_progress_ui_state.dart'; import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; @@ -13,8 +14,6 @@ import '../../../pages_desktop_specific/cashfusion/sub_widgets/fusion_dialog.dar import '../../../services/fusion_tor_service.dart'; import '../../../utilities/logger.dart'; import '../../../utilities/stack_file_system.dart'; -import '../../crypto_currency/coins/bitcoincash.dart'; -import '../../crypto_currency/coins/ecash.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'coin_control_interface.dart'; @@ -152,88 +151,113 @@ mixin CashFusionInterface switch (status) { case fusion.FusionStatus.connecting: _uiState?.setConnecting( - CashFusionState(status: CashFusionStatus.running, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.running, info: null), + shouldNotify: false, + ); _uiState?.setOutputs( - CashFusionState(status: CashFusionStatus.waiting, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.waiting, info: null), + shouldNotify: false, + ); _uiState?.setPeers( - CashFusionState(status: CashFusionStatus.waiting, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.waiting, info: null), + shouldNotify: false, + ); _uiState?.setFusing( - CashFusionState(status: CashFusionStatus.waiting, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.waiting, info: null), + shouldNotify: false, + ); _uiState?.setComplete( - CashFusionState(status: CashFusionStatus.waiting, info: null), - shouldNotify: true); + CashFusionState(status: CashFusionStatus.waiting, info: null), + shouldNotify: true, + ); break; case fusion.FusionStatus.setup: _uiState?.setConnecting( - CashFusionState(status: CashFusionStatus.success, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.success, info: null), + shouldNotify: false, + ); _uiState?.setOutputs( - CashFusionState(status: CashFusionStatus.running, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.running, info: null), + shouldNotify: false, + ); _uiState?.setPeers( - CashFusionState(status: CashFusionStatus.waiting, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.waiting, info: null), + shouldNotify: false, + ); _uiState?.setFusing( - CashFusionState(status: CashFusionStatus.waiting, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.waiting, info: null), + shouldNotify: false, + ); _uiState?.setComplete( - CashFusionState(status: CashFusionStatus.waiting, info: null), - shouldNotify: true); + CashFusionState(status: CashFusionStatus.waiting, info: null), + shouldNotify: true, + ); break; case fusion.FusionStatus.waiting: _uiState?.setConnecting( - CashFusionState(status: CashFusionStatus.success, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.success, info: null), + shouldNotify: false, + ); _uiState?.setOutputs( - CashFusionState(status: CashFusionStatus.success, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.success, info: null), + shouldNotify: false, + ); _uiState?.setPeers( - CashFusionState(status: CashFusionStatus.running, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.running, info: null), + shouldNotify: false, + ); _uiState?.setFusing( - CashFusionState(status: CashFusionStatus.waiting, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.waiting, info: null), + shouldNotify: false, + ); _uiState?.setComplete( - CashFusionState(status: CashFusionStatus.waiting, info: null), - shouldNotify: true); + CashFusionState(status: CashFusionStatus.waiting, info: null), + shouldNotify: true, + ); break; case fusion.FusionStatus.running: _uiState?.setConnecting( - CashFusionState(status: CashFusionStatus.success, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.success, info: null), + shouldNotify: false, + ); _uiState?.setOutputs( - CashFusionState(status: CashFusionStatus.success, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.success, info: null), + shouldNotify: false, + ); _uiState?.setPeers( - CashFusionState(status: CashFusionStatus.success, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.success, info: null), + shouldNotify: false, + ); _uiState?.setFusing( - CashFusionState(status: CashFusionStatus.running, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.running, info: null), + shouldNotify: false, + ); _uiState?.setComplete( - CashFusionState(status: CashFusionStatus.waiting, info: null), - shouldNotify: true); + CashFusionState(status: CashFusionStatus.waiting, info: null), + shouldNotify: true, + ); break; case fusion.FusionStatus.complete: _uiState?.setConnecting( - CashFusionState(status: CashFusionStatus.success, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.success, info: null), + shouldNotify: false, + ); _uiState?.setOutputs( - CashFusionState(status: CashFusionStatus.success, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.success, info: null), + shouldNotify: false, + ); _uiState?.setPeers( - CashFusionState(status: CashFusionStatus.success, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.success, info: null), + shouldNotify: false, + ); _uiState?.setFusing( - CashFusionState(status: CashFusionStatus.success, info: null), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.success, info: null), + shouldNotify: false, + ); _uiState?.setComplete( - CashFusionState(status: CashFusionStatus.success, info: null), - shouldNotify: true); + CashFusionState(status: CashFusionStatus.success, info: null), + shouldNotify: true, + ); break; case fusion.FusionStatus.failed: failCurrentUiState(info); @@ -243,24 +267,30 @@ mixin CashFusionInterface break; case fusion.FusionStatus.reset: _uiState?.setConnecting( - CashFusionState(status: CashFusionStatus.waiting, info: info), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.waiting, info: info), + shouldNotify: false, + ); _uiState?.setOutputs( - CashFusionState(status: CashFusionStatus.waiting, info: info), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.waiting, info: info), + shouldNotify: false, + ); _uiState?.setPeers( - CashFusionState(status: CashFusionStatus.waiting, info: info), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.waiting, info: info), + shouldNotify: false, + ); _uiState?.setFusing( - CashFusionState(status: CashFusionStatus.waiting, info: info), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.waiting, info: info), + shouldNotify: false, + ); _uiState?.setComplete( - CashFusionState(status: CashFusionStatus.waiting, info: info), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.waiting, info: info), + shouldNotify: false, + ); _uiState?.setFusionState( - CashFusionState(status: CashFusionStatus.waiting, info: info), - shouldNotify: false); + CashFusionState(status: CashFusionStatus.waiting, info: info), + shouldNotify: false, + ); _uiState?.setFailed(false, shouldNotify: true); break; @@ -271,32 +301,37 @@ mixin CashFusionInterface // Check each _uiState value to see if it is running. If so, set it to failed. if (_uiState?.connecting.status == CashFusionStatus.running) { _uiState?.setConnecting( - CashFusionState(status: CashFusionStatus.failed, info: info), - shouldNotify: true); + CashFusionState(status: CashFusionStatus.failed, info: info), + shouldNotify: true, + ); return; } if (_uiState?.outputs.status == CashFusionStatus.running) { _uiState?.setOutputs( - CashFusionState(status: CashFusionStatus.failed, info: info), - shouldNotify: true); + CashFusionState(status: CashFusionStatus.failed, info: info), + shouldNotify: true, + ); return; } if (_uiState?.peers.status == CashFusionStatus.running) { _uiState?.setPeers( - CashFusionState(status: CashFusionStatus.failed, info: info), - shouldNotify: true); + CashFusionState(status: CashFusionStatus.failed, info: info), + shouldNotify: true, + ); return; } if (_uiState?.fusing.status == CashFusionStatus.running) { _uiState?.setFusing( - CashFusionState(status: CashFusionStatus.failed, info: info), - shouldNotify: true); + CashFusionState(status: CashFusionStatus.failed, info: info), + shouldNotify: true, + ); return; } if (_uiState?.complete.status == CashFusionStatus.running) { _uiState?.setComplete( - CashFusionState(status: CashFusionStatus.failed, info: info), - shouldNotify: true); + CashFusionState(status: CashFusionStatus.failed, info: info), + shouldNotify: true, + ); return; } } @@ -329,10 +364,12 @@ mixin CashFusionInterface .and() .derivationPathIsNotNull() .and() - .group((q) => q - .subTypeEqualTo(AddressSubType.receiving) - .or() - .subTypeEqualTo(AddressSubType.change)) + .group( + (q) => q + .subTypeEqualTo(AddressSubType.receiving) + .or() + .subTypeEqualTo(AddressSubType.change), + ) .findAll()) .firstWhere((e) => e.publicKey.toString() == pubKey.toString()) .derivationPath! @@ -406,8 +443,11 @@ mixin CashFusionInterface .where((e) => e.otherData == kReservedFusionAddress) .toList(); - unusedReservedAddresses.addAll(await _reserveAddresses( - unusedChangeAddresses.where((e) => e.otherData == null))); + unusedReservedAddresses.addAll( + await _reserveAddresses( + unusedChangeAddresses.where((e) => e.otherData == null), + ), + ); // Return the list of unused reserved change addresses. return unusedReservedAddresses @@ -570,7 +610,7 @@ mixin CashFusionInterface ); // Use server host and port which ultimately come from text fields. - fusion.FusionParams serverParams = fusion.FusionParams( + final fusion.FusionParams serverParams = fusion.FusionParams( serverHost: fusionInfo.host, serverPort: fusionInfo.port, serverSsl: fusionInfo.ssl, @@ -682,13 +722,17 @@ mixin CashFusionInterface .getAddresses(walletId) .filter() .anyOf>( - possibleAddresses, (q, e) => q.valueEqualTo(e)) + QueryBuilder>( + possibleAddresses, + (q, e) => q.valueEqualTo(e), + ) .and() - .group((q) => q - .subTypeEqualTo(AddressSubType.change) - .or() - .subTypeEqualTo(AddressSubType.receiving)) + .group( + (q) => q + .subTypeEqualTo(AddressSubType.change) + .or() + .subTypeEqualTo(AddressSubType.receiving), + ) .and() .typeEqualTo(AddressType.p2pkh) .findFirst(); @@ -753,8 +797,9 @@ mixin CashFusionInterface if (coinList.isEmpty || e.toString().contains("Started with no coins")) { _updateStatus( - status: fusion.FusionStatus.failed, - info: "Started with no coins, stopping."); + status: fusion.FusionStatus.failed, + info: "Started with no coins, stopping.", + ); _stopRequested = true; _uiState?.setFailed(true, shouldNotify: true); } @@ -762,8 +807,9 @@ mixin CashFusionInterface // If we fail too many times in a row, stop trying. if (_failedFuseCount >= maxFailedFuseCount) { _updateStatus( - status: fusion.FusionStatus.failed, - info: "Failed $maxFailedFuseCount times in a row, stopping."); + status: fusion.FusionStatus.failed, + info: "Failed $maxFailedFuseCount times in a row, stopping.", + ); _stopRequested = true; _uiState?.setFailed(true, shouldNotify: true); } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart index 80a7f6d31..069571ead 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart @@ -11,6 +11,7 @@ import 'package:cw_core/wallet_type.dart'; import 'package:flutter_libmonero/core/key_service.dart'; import 'package:isar/isar.dart'; import 'package:mutex/mutex.dart'; + import '../../../models/balance.dart'; import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/paymint/fee_object_model.dart'; @@ -344,7 +345,7 @@ mixin CwBasedInterface on CryptonoteWallet if (entries != null) { for (final element in entries) { if (element.value.direction == TransactionDirection.incoming) { - int curAddressIndex = + final int curAddressIndex = element.value.additionalInfo!['addressIndex'] as int; if (curAddressIndex > highestIndex) { highestIndex = curAddressIndex; @@ -381,13 +382,15 @@ mixin CwBasedInterface on CryptonoteWallet } } on SocketException catch (se, s) { Logging.instance.log( - "SocketException caught in _checkReceivingAddressForTransactions(): $se\n$s", - level: LogLevel.Error); + "SocketException caught in _checkReceivingAddressForTransactions(): $se\n$s", + level: LogLevel.Error, + ); return; } catch (e, s) { Logging.instance.log( - "Exception rethrown from _checkReceivingAddressForTransactions(): $e\n$s", - level: LogLevel.Error); + "Exception rethrown from _checkReceivingAddressForTransactions(): $e\n$s", + level: LogLevel.Error, + ); rethrow; } } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart index 26410c526..9d536197a 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart @@ -718,7 +718,7 @@ mixin LelantusInterface ); Logging.instance.log(spendTxs, level: LogLevel.Info); - for (var element in spendTxs.entries) { + for (final element in spendTxs.entries) { final address = element.value.address.value ?? data[element.value.txid]?.item1 ?? element.key; @@ -840,7 +840,7 @@ mixin LelantusInterface amount += signingData[i].utxo.value; } - for (var mintsElement in txData.mintsMapLelantus!) { + for (final mintsElement in txData.mintsMapLelantus!) { Logging.instance.log("using $mintsElement", level: LogLevel.Info); final Uint8List mintu8 = Format.stringToUint8List(mintsElement['script'] as String); @@ -952,7 +952,7 @@ mixin LelantusInterface for (final value in data) { if (value.inputs.isNotEmpty) { - for (var element in value.inputs) { + for (final element in value.inputs) { if (lelantusCoins.any((e) => e.txid == value.txid) && spendableOutputs.firstWhere( (output) => output?.txid == element.txid, diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart index da0a36c70..4ca21ef1a 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart @@ -1,4 +1,5 @@ import 'package:isar/isar.dart'; + import '../../../dto/ordinals/inscription_data.dart'; import '../../../models/isar/models/blockchain_data/utxo.dart'; import '../../../models/isar/ordinal.dart'; @@ -37,7 +38,8 @@ mixin OrdinalsInterface .addressProperty() .findAll(); final inscriptions = await _getInscriptionDataFromAddresses( - uniqueAddresses.cast()); + uniqueAddresses.cast(), + ); final ords = inscriptions .map((e) => Ordinal.fromInscriptionData(e, walletId)) @@ -111,11 +113,12 @@ mixin OrdinalsInterface // ===================== Private ============================================= Future> _getInscriptionDataFromAddresses( - List addresses) async { - List allInscriptions = []; - for (String address in addresses) { + List addresses, + ) async { + final List allInscriptions = []; + for (final String address in addresses) { try { - var inscriptions = + final inscriptions = await _litescribeAPI.getInscriptionsByAddress(address); allInscriptions.addAll(inscriptions); } catch (e) { diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart index b2114b09b..b9759d474 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart @@ -24,7 +24,6 @@ import '../../../utilities/enums/derive_path_type_enum.dart'; import '../../../utilities/extensions/extensions.dart'; import '../../../utilities/format.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/coins/dogecoin.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/paynym_currency_interface.dart'; import '../../models/tx_data.dart'; diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index 08131fabf..591869cfe 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -6,6 +6,7 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_libsparkmobile/flutter_libsparkmobile.dart'; import 'package:isar/isar.dart'; + import '../../../models/balance.dart'; import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; @@ -626,7 +627,8 @@ mixin SparkInterface ); final spentCoinTagsFuture = electrumXCachedClient.getSparkUsedCoinsTags( - cryptoCurrency: info.coin); + cryptoCurrency: info.coin, + ); final futureResults = await Future.wait([ anonymitySetFuture, diff --git a/lib/widgets/address_book_card.dart b/lib/widgets/address_book_card.dart index 51a9fe134..9c9254080 100644 --- a/lib/widgets/address_book_card.dart +++ b/lib/widgets/address_book_card.dart @@ -61,8 +61,10 @@ class _AddressBookCardState extends ConsumerState { // provider hack to prevent trying to update widget with deleted contact ContactEntry? _contact; try { - _contact = ref.watch(addressBookServiceProvider - .select((value) => value.getContactById(contactId))); + _contact = ref.watch( + addressBookServiceProvider + .select((value) => value.getContactById(contactId)), + ); } catch (_) { return Container(); } diff --git a/lib/widgets/animated_text.dart b/lib/widgets/animated_text.dart index 136da21c6..428cb8544 100644 --- a/lib/widgets/animated_text.dart +++ b/lib/widgets/animated_text.dart @@ -14,11 +14,11 @@ import 'package:flutter/cupertino.dart'; class AnimatedText extends StatefulWidget { const AnimatedText({ - Key? key, + super.key, required this.stringsToLoopThrough, required this.style, this.duration = const Duration(milliseconds: 700), - }) : super(key: key); + }); final List stringsToLoopThrough; final TextStyle style; diff --git a/lib/widgets/animated_widgets/rotate_icon.dart b/lib/widgets/animated_widgets/rotate_icon.dart index 2b54b1367..92b428d9e 100644 --- a/lib/widgets/animated_widgets/rotate_icon.dart +++ b/lib/widgets/animated_widgets/rotate_icon.dart @@ -18,13 +18,13 @@ class RotateIconController { class RotateIcon extends StatefulWidget { const RotateIcon({ - Key? key, + super.key, required this.icon, required this.curve, this.controller, this.animationDurationMultiplier = 1.0, this.rotationPercent = 0.5, - }) : super(key: key); + }); final Widget icon; final Curve curve; diff --git a/lib/widgets/animated_widgets/rotating_arrows.dart b/lib/widgets/animated_widgets/rotating_arrows.dart index c0025a45a..3da54f63a 100644 --- a/lib/widgets/animated_widgets/rotating_arrows.dart +++ b/lib/widgets/animated_widgets/rotating_arrows.dart @@ -23,13 +23,13 @@ class RotatingArrowsController { class RotatingArrows extends StatefulWidget { const RotatingArrows({ - Key? key, + super.key, required this.height, required this.width, this.controller, this.color, this.spinByDefault = true, - }) : super(key: key); + }); final double height; final double width; diff --git a/lib/widgets/app_bar_field.dart b/lib/widgets/app_bar_field.dart index d48b20ee9..8499748a9 100644 --- a/lib/widgets/app_bar_field.dart +++ b/lib/widgets/app_bar_field.dart @@ -13,10 +13,10 @@ import '../utilities/text_styles.dart'; class AppBarSearchField extends StatefulWidget { const AppBarSearchField({ - Key? key, + super.key, required this.controller, this.focusNode, - }) : super(key: key); + }); final TextEditingController? controller; final FocusNode? focusNode; diff --git a/lib/widgets/background.dart b/lib/widgets/background.dart index 3d27b24b1..11290a9df 100644 --- a/lib/widgets/background.dart +++ b/lib/widgets/background.dart @@ -19,9 +19,9 @@ import 'conditional_parent.dart'; class Background extends ConsumerWidget { const Background({ - Key? key, + super.key, required this.child, - }) : super(key: key); + }); final Widget child; diff --git a/lib/widgets/choose_coin_view.dart b/lib/widgets/choose_coin_view.dart index b1238fb6a..b44f7152a 100644 --- a/lib/widgets/choose_coin_view.dart +++ b/lib/widgets/choose_coin_view.dart @@ -148,7 +148,7 @@ class _ChooseCoinViewState extends ConsumerState { style: STextStyles.titleBold12(context), ), ], - ) + ), ], ), ), diff --git a/lib/widgets/conditional_parent.dart b/lib/widgets/conditional_parent.dart index e664c581e..64a3f8876 100644 --- a/lib/widgets/conditional_parent.dart +++ b/lib/widgets/conditional_parent.dart @@ -12,11 +12,11 @@ import 'package:flutter/material.dart'; class ConditionalParent extends StatelessWidget { const ConditionalParent({ - Key? key, + super.key, required this.condition, required this.builder, required this.child, - }) : super(key: key); + }); final bool condition; final Widget Function(Widget) builder; @@ -34,12 +34,12 @@ class ConditionalParent extends StatelessWidget { class BranchedParent extends StatelessWidget { const BranchedParent({ - Key? key, + super.key, required this.condition, required this.conditionBranchBuilder, required this.otherBranchBuilder, required this.children, - }) : super(key: key); + }); final bool condition; final Widget Function(List) conditionBranchBuilder; diff --git a/lib/widgets/custom_buttons/app_bar_icon_button.dart b/lib/widgets/custom_buttons/app_bar_icon_button.dart index 5327d298f..5147f132d 100644 --- a/lib/widgets/custom_buttons/app_bar_icon_button.dart +++ b/lib/widgets/custom_buttons/app_bar_icon_button.dart @@ -10,13 +10,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; + import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; import '../../utilities/util.dart'; class AppBarIconButton extends StatelessWidget { const AppBarIconButton({ - Key? key, + super.key, required this.icon, required this.onPressed, this.color, @@ -24,7 +25,7 @@ class AppBarIconButton extends StatelessWidget { this.size = 36.0, this.shadows = const [], this.semanticsLabel = "Button", - }) : super(key: key); + }); final Widget icon; final VoidCallback? onPressed; @@ -37,40 +38,40 @@ class AppBarIconButton extends StatelessWidget { @override Widget build(BuildContext context) { return Container( - height: size, - width: size, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(1000), - color: - color ?? Theme.of(context).extension()!.background, - boxShadow: shadows, - ), - child: Semantics( - excludeSemantics: true, - label: semanticsLabel, - child: MaterialButton( - splashColor: Theme.of(context).extension()!.highlight, - padding: EdgeInsets.zero, - materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(1000), - ), - onPressed: onPressed, - child: icon, + height: size, + width: size, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(1000), + color: color ?? Theme.of(context).extension()!.background, + boxShadow: shadows, + ), + child: Semantics( + excludeSemantics: true, + label: semanticsLabel, + child: MaterialButton( + splashColor: Theme.of(context).extension()!.highlight, + padding: EdgeInsets.zero, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(1000), ), - )); + onPressed: onPressed, + child: icon, + ), + ), + ); } } class AppBarBackButton extends StatelessWidget { const AppBarBackButton({ - Key? key, + super.key, this.onPressed, this.isCompact = false, this.size, this.iconSize, this.semanticsLabel = "Back Button. Takes Back To Previous Page.", - }) : super(key: key); + }); final VoidCallback? onPressed; final bool isCompact; @@ -82,32 +83,32 @@ class AppBarBackButton extends StatelessWidget { Widget build(BuildContext context) { final isDesktop = Util.isDesktop; return Padding( - padding: isDesktop - ? const EdgeInsets.symmetric( - vertical: 20, - horizontal: 24, - ) - : const EdgeInsets.all(10), - child: AppBarIconButton( - semanticsLabel: semanticsLabel, - size: size ?? - (isDesktop - ? isCompact - ? 42 - : 56 - : 32), - color: isDesktop - ? Theme.of(context).extension()!.textFieldDefaultBG - : Theme.of(context).extension()!.background, - shadows: const [], - icon: SvgPicture.asset( - Assets.svg.arrowLeft, - width: iconSize ?? (isCompact ? 18 : 24), - height: iconSize ?? (isCompact ? 18 : 24), - color: - Theme.of(context).extension()!.topNavIconPrimary, - ), - onPressed: onPressed ?? Navigator.of(context).pop, - )); + padding: isDesktop + ? const EdgeInsets.symmetric( + vertical: 20, + horizontal: 24, + ) + : const EdgeInsets.all(10), + child: AppBarIconButton( + semanticsLabel: semanticsLabel, + size: size ?? + (isDesktop + ? isCompact + ? 42 + : 56 + : 32), + color: isDesktop + ? Theme.of(context).extension()!.textFieldDefaultBG + : Theme.of(context).extension()!.background, + shadows: const [], + icon: SvgPicture.asset( + Assets.svg.arrowLeft, + width: iconSize ?? (isCompact ? 18 : 24), + height: iconSize ?? (isCompact ? 18 : 24), + color: Theme.of(context).extension()!.topNavIconPrimary, + ), + onPressed: onPressed ?? Navigator.of(context).pop, + ), + ); } } diff --git a/lib/widgets/custom_buttons/blue_text_button.dart b/lib/widgets/custom_buttons/blue_text_button.dart index 8639fc1b1..eee64d8e0 100644 --- a/lib/widgets/custom_buttons/blue_text_button.dart +++ b/lib/widgets/custom_buttons/blue_text_button.dart @@ -18,14 +18,14 @@ import '../rounded_container.dart'; class _CustomTextButton extends StatefulWidget { const _CustomTextButton({ - Key? key, + super.key, required this.text, required this.enabledColor, required this.disabledColor, this.onTap, this.enabled = true, this.textSize, - }) : super(key: key); + }); final String text; final VoidCallback? onTap; @@ -128,12 +128,12 @@ class _CustomTextButtonState extends State<_CustomTextButton> class CustomTextButton extends StatelessWidget { const CustomTextButton({ - Key? key, + super.key, required this.text, this.onTap, this.enabled = true, this.textSize, - }) : super(key: key); + }); final String text; final VoidCallback? onTap; diff --git a/lib/widgets/custom_buttons/draggable_switch_button.dart b/lib/widgets/custom_buttons/draggable_switch_button.dart index 6d77e720c..47e706704 100644 --- a/lib/widgets/custom_buttons/draggable_switch_button.dart +++ b/lib/widgets/custom_buttons/draggable_switch_button.dart @@ -9,18 +9,19 @@ */ import 'package:flutter/material.dart'; + import '../../themes/stack_colors.dart'; class DraggableSwitchButton extends StatefulWidget { const DraggableSwitchButton({ - Key? key, + super.key, this.onItem, this.offItem, this.onValueChanged, required this.isOn, this.enabled = true, this.controller, - }) : super(key: key); + }); final Widget? onItem; final Widget? offItem; @@ -131,7 +132,7 @@ class DraggableSwitchButtonState extends State { .clamp(0.0, 1.0); }, onHorizontalDragEnd: (details) { - bool oldValue = _isOn; + final bool oldValue = _isOn; if (valueListener.value > 0.5) { valueListener.value = 1.0; _isOn = true; @@ -158,7 +159,10 @@ class DraggableSwitchButtonState extends State { constraint.maxHeight / 2, ), color: _colorFG( - _isOn, _enabled, valueListener.value), + _isOn, + _enabled, + valueListener.value, + ), ), ); }, diff --git a/lib/widgets/custom_buttons/dropdown_button.dart b/lib/widgets/custom_buttons/dropdown_button.dart index 6ee148a22..b2044376a 100644 --- a/lib/widgets/custom_buttons/dropdown_button.dart +++ b/lib/widgets/custom_buttons/dropdown_button.dart @@ -10,18 +10,19 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; import '../../utilities/constants.dart'; import '../../utilities/text_styles.dart'; import '../animated_widgets/rotate_icon.dart'; -import 'app_bar_icon_button.dart'; import '../desktop/secondary_button.dart'; import '../rounded_white_container.dart'; +import 'app_bar_icon_button.dart'; class JDropdownButton extends StatefulWidget { const JDropdownButton({ - Key? key, + super.key, this.label, required this.items, this.width, @@ -29,7 +30,7 @@ class JDropdownButton extends StatefulWidget { this.groupValue, this.redrawOnScreenSizeChanged = false, this.showIcon = false, - }) : super(key: key); + }); final String? label; final double? width; @@ -137,14 +138,14 @@ class _JDropdownButtonState extends State> { class JDropdownIconButton extends StatefulWidget { const JDropdownIconButton({ - Key? key, + super.key, required this.items, required this.displayPrefix, this.onSelectionChanged, this.groupValue, this.redrawOnScreenSizeChanged = false, this.mobileAppBar = false, - }) : super(key: key); + }); final String displayPrefix; final void Function(T?)? onSelectionChanged; @@ -275,12 +276,12 @@ class _JDropdownIconButtonState extends State> { // ============================================================================= class _JDropdownButtonMenu extends StatefulWidget { - const _JDropdownButtonMenu( - {Key? key, - required this.items, - required this.size, - required this.position}) - : super(key: key); + const _JDropdownButtonMenu({ + super.key, + required this.items, + required this.size, + required this.position, + }); final List<_JDropdownButtonItem> items; final Size size; @@ -335,13 +336,13 @@ class _JDropdownButtonMenuState extends State<_JDropdownButtonMenu> { class _JDropdownButtonItem extends StatelessWidget { const _JDropdownButtonItem({ - Key? key, + super.key, required this.value, required this.groupValue, required this.onSelected, this.height = 53, this.displayPrefix, - }) : super(key: key); + }); final T value; final T? groupValue; diff --git a/lib/widgets/custom_buttons/favorite_toggle.dart b/lib/widgets/custom_buttons/favorite_toggle.dart index 6014767c6..5d79cb0da 100644 --- a/lib/widgets/custom_buttons/favorite_toggle.dart +++ b/lib/widgets/custom_buttons/favorite_toggle.dart @@ -17,14 +17,14 @@ import '../../utilities/assets.dart'; class FavoriteToggle extends ConsumerStatefulWidget { const FavoriteToggle({ - Key? key, + super.key, this.backGround, this.borderRadius = BorderRadius.zero, this.initialState = false, this.on, this.off, required this.onChanged, - }) : super(key: key); + }); final Color? backGround; final Color? on; diff --git a/lib/widgets/custom_buttons/paynym_follow_toggle_button.dart b/lib/widgets/custom_buttons/paynym_follow_toggle_button.dart index ad5e80e30..5bc6143d1 100644 --- a/lib/widgets/custom_buttons/paynym_follow_toggle_button.dart +++ b/lib/widgets/custom_buttons/paynym_follow_toggle_button.dart @@ -13,6 +13,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../models/paynym/paynym_account_lite.dart'; import '../../models/paynym/paynym_response.dart'; import '../../notifications/show_flush_bar.dart'; @@ -35,11 +36,11 @@ enum PaynymFollowToggleButtonStyle { class PaynymFollowToggleButton extends ConsumerStatefulWidget { const PaynymFollowToggleButton({ - Key? key, + super.key, required this.walletId, required this.paymentCodeStringToFollow, this.style = PaynymFollowToggleButtonStyle.primary, - }) : super(key: key); + }); final String walletId; final String paymentCodeStringToFollow; @@ -83,8 +84,11 @@ class _PaynymFollowToggleButtonState // sign token with notification private key String signature = await wallet.signStringWithNotificationKey(token.value!); - var result = await ref.read(paynymAPIProvider).follow(token.value!, - signature, followedAccount.value!.nonSegwitPaymentCode.code); + var result = await ref.read(paynymAPIProvider).follow( + token.value!, + signature, + followedAccount.value!.nonSegwitPaymentCode.code, + ); int i = 0; for (; @@ -96,8 +100,11 @@ class _PaynymFollowToggleButtonState // sign token with notification private key signature = await wallet.signStringWithNotificationKey(token.value!); - result = await ref.read(paynymAPIProvider).follow(token.value!, signature, - followedAccount.value!.nonSegwitPaymentCode.code); + result = await ref.read(paynymAPIProvider).follow( + token.value!, + signature, + followedAccount.value!.nonSegwitPaymentCode.code, + ); await Future.delayed(const Duration(milliseconds: 200)); print("RRR result: $result"); @@ -181,8 +188,11 @@ class _PaynymFollowToggleButtonState // sign token with notification private key String signature = await wallet.signStringWithNotificationKey(token.value!); - var result = await ref.read(paynymAPIProvider).unfollow(token.value!, - signature, followedAccount.value!.nonSegwitPaymentCode.code); + var result = await ref.read(paynymAPIProvider).unfollow( + token.value!, + signature, + followedAccount.value!.nonSegwitPaymentCode.code, + ); int i = 0; for (; @@ -194,8 +204,11 @@ class _PaynymFollowToggleButtonState // sign token with notification private key signature = await wallet.signStringWithNotificationKey(token.value!); - result = await ref.read(paynymAPIProvider).unfollow(token.value!, - signature, followedAccount.value!.nonSegwitPaymentCode.code); + result = await ref.read(paynymAPIProvider).unfollow( + token.value!, + signature, + followedAccount.value!.nonSegwitPaymentCode.code, + ); await Future.delayed(const Duration(milliseconds: 200)); print("unfollow RRR result: $result"); } diff --git a/lib/widgets/custom_buttons/simple_copy_button.dart b/lib/widgets/custom_buttons/simple_copy_button.dart index e8bcc560c..794f0cdb1 100644 --- a/lib/widgets/custom_buttons/simple_copy_button.dart +++ b/lib/widgets/custom_buttons/simple_copy_button.dart @@ -20,9 +20,9 @@ import '../../utilities/text_styles.dart'; class SimpleCopyButton extends StatelessWidget { const SimpleCopyButton({ - Key? key, + super.key, required this.data, - }) : super(key: key); + }); final String data; diff --git a/lib/widgets/custom_loading_overlay.dart b/lib/widgets/custom_loading_overlay.dart index f5c326d01..45d02a5d1 100644 --- a/lib/widgets/custom_loading_overlay.dart +++ b/lib/widgets/custom_loading_overlay.dart @@ -21,13 +21,13 @@ import 'loading_indicator.dart'; class CustomLoadingOverlay extends ConsumerStatefulWidget { const CustomLoadingOverlay({ - Key? key, + super.key, required this.message, this.subMessage, required this.eventBus, this.textColor, this.actionButton, - }) : super(key: key); + }); final String message; final String? subMessage; diff --git a/lib/widgets/custom_page_view/custom_page_view.dart b/lib/widgets/custom_page_view/custom_page_view.dart index 5540820fe..6e26139d2 100644 --- a/lib/widgets/custom_page_view/custom_page_view.dart +++ b/lib/widgets/custom_page_view/custom_page_view.dart @@ -18,6 +18,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart' show precisionErrorTolerance; import 'package:flutter/gestures.dart' show DragStartBehavior; import 'package:flutter/rendering.dart'; + import 'custom_sliver_fill_viewport.dart'; /// A controller for [CustomPageView]. @@ -227,14 +228,19 @@ class PageController extends ScrollController { /// The returned [Future] resolves when the animation completes. /// /// The `duration` and `curve` arguments must not be null. - Future previousPage( - {required Duration duration, required Curve curve}) { + Future previousPage({ + required Duration duration, + required Curve curve, + }) { return animateToPage(page!.round() - 1, duration: duration, curve: curve); } @override - ScrollPosition createScrollPosition(ScrollPhysics physics, - ScrollContext context, ScrollPosition? oldPosition) { + ScrollPosition createScrollPosition( + ScrollPhysics physics, + ScrollContext context, + ScrollPosition? oldPosition, + ) { return _PagePosition( physics: physics, context: context, @@ -260,21 +266,14 @@ class PageController extends ScrollController { class PageMetrics extends FixedScrollMetrics { /// Creates an immutable snapshot of values associated with a [CustomPageView]. PageMetrics({ - required double? minScrollExtent, - required double? maxScrollExtent, - required double? pixels, - required double? viewportDimension, - required AxisDirection axisDirection, - required double devicePixelRatio, + required super.minScrollExtent, + required super.maxScrollExtent, + required super.pixels, + required super.viewportDimension, + required super.axisDirection, + required super.devicePixelRatio, required this.viewportFraction, - }) : super( - minScrollExtent: minScrollExtent, - maxScrollExtent: maxScrollExtent, - pixels: pixels, - viewportDimension: viewportDimension, - axisDirection: axisDirection, - devicePixelRatio: devicePixelRatio, - ); + }); @override PageMetrics copyWith({ @@ -315,21 +314,18 @@ class PageMetrics extends FixedScrollMetrics { class _PagePosition extends ScrollPositionWithSingleContext implements PageMetrics { _PagePosition({ - required ScrollPhysics physics, - required ScrollContext context, + required super.physics, + required super.context, this.initialPage = 0, bool keepPage = true, double viewportFraction = 1.0, - ScrollPosition? oldPosition, + super.oldPosition, }) : assert(viewportFraction > 0.0), _viewportFraction = viewportFraction, _pageToUseOnStartup = initialPage.toDouble(), super( - physics: physics, - context: context, initialPixels: null, keepScrollOffset: keepPage, - oldPosition: oldPosition, ); final int initialPage; @@ -405,14 +401,18 @@ class _PagePosition extends ScrollPositionWithSingleContext return !hasPixels || !hasContentDimensions ? null : _cachedPage ?? - getPageFromPixels(pixels.clamp(minScrollExtent, maxScrollExtent), - viewportDimension); + getPageFromPixels( + pixels.clamp(minScrollExtent, maxScrollExtent), + viewportDimension, + ); } @override void saveScrollOffset() { - PageStorage.of(context.storageContext).writeState(context.storageContext, - _cachedPage ?? getPageFromPixels(pixels, viewportDimension)); + PageStorage.of(context.storageContext).writeState( + context.storageContext, + _cachedPage ?? getPageFromPixels(pixels, viewportDimension), + ); } @override @@ -427,7 +427,8 @@ class _PagePosition extends ScrollPositionWithSingleContext @override void saveOffset() { context.saveOffset( - _cachedPage ?? getPageFromPixels(pixels, viewportDimension)); + _cachedPage ?? getPageFromPixels(pixels, viewportDimension), + ); } @override @@ -507,8 +508,8 @@ class _PagePosition extends ScrollPositionWithSingleContext class _ForceImplicitScrollPhysics extends ScrollPhysics { const _ForceImplicitScrollPhysics({ required this.allowImplicitScrolling, - ScrollPhysics? parent, - }) : super(parent: parent); + super.parent, + }); @override _ForceImplicitScrollPhysics applyTo(ScrollPhysics? ancestor) { @@ -533,7 +534,7 @@ class _ForceImplicitScrollPhysics extends ScrollPhysics { /// * [CustomPageView.physics], which can override the physics used by a page view. class PageScrollPhysics extends ScrollPhysics { /// Creates physics for a [CustomPageView]. - const PageScrollPhysics({ScrollPhysics? parent}) : super(parent: parent); + const PageScrollPhysics({super.parent}); @override PageScrollPhysics applyTo(ScrollPhysics? ancestor) { @@ -551,7 +552,10 @@ class PageScrollPhysics extends ScrollPhysics { } double _getTargetPixels( - ScrollMetrics position, Tolerance tolerance, double velocity) { + ScrollMetrics position, + Tolerance tolerance, + double velocity, + ) { double page = _getPage(position); if (velocity < -tolerance.velocity) { page -= 0.5; @@ -563,7 +567,9 @@ class PageScrollPhysics extends ScrollPhysics { @override Simulation? createBallisticSimulation( - ScrollMetrics position, double velocity) { + ScrollMetrics position, + double velocity, + ) { // If we're out of range and not headed back in range, defer to the parent // ballistics, which should put us back in range at a page boundary. if ((velocity <= 0.0 && position.pixels <= position.minScrollExtent) || @@ -573,8 +579,13 @@ class PageScrollPhysics extends ScrollPhysics { final Tolerance tolerance = this.tolerance; final double target = _getTargetPixels(position, tolerance, velocity); if (target != position.pixels) { - return ScrollSpringSimulation(spring, position.pixels, target, velocity, - tolerance: tolerance); + return ScrollSpringSimulation( + spring, + position.pixels, + target, + velocity, + tolerance: tolerance, + ); } return null; } @@ -641,7 +652,7 @@ class CustomPageView extends StatefulWidget { /// rather than into the contents of the [CustomPageView]. /// {@endtemplate} CustomPageView({ - Key? key, + super.key, this.scrollDirection = Axis.horizontal, this.reverse = false, PageController? controller, @@ -657,8 +668,7 @@ class CustomPageView extends StatefulWidget { this.scrollBehavior, this.padEnds = true, }) : controller = controller ?? _defaultPageController, - childrenDelegate = SliverChildListDelegate(children), - super(key: key); + childrenDelegate = SliverChildListDelegate(children); /// Creates a scrollable list that works page by page using widgets that are /// created on demand. @@ -684,7 +694,7 @@ class CustomPageView extends StatefulWidget { /// /// {@macro flutter.widgets.PageView.allowImplicitScrolling} CustomPageView.builder({ - Key? key, + super.key, this.scrollDirection = Axis.horizontal, this.reverse = false, PageController? controller, @@ -706,8 +716,7 @@ class CustomPageView extends StatefulWidget { itemBuilder, findChildIndexCallback: findChildIndexCallback, childCount: itemCount, - ), - super(key: key); + ); /// Creates a scrollable list that works page by page with a custom child /// model. @@ -794,7 +803,7 @@ class CustomPageView extends StatefulWidget { /// /// {@macro flutter.widgets.PageView.allowImplicitScrolling} CustomPageView.custom({ - Key? key, + super.key, this.scrollDirection = Axis.horizontal, this.reverse = false, PageController? controller, @@ -809,8 +818,7 @@ class CustomPageView extends StatefulWidget { this.scrollBehavior, this.viewportFractionalPadding = 0.25, this.padEnds = true, - }) : controller = controller ?? _defaultPageController, - super(key: key); + }) : controller = controller ?? _defaultPageController; final double viewportFractionalPadding; @@ -951,8 +959,10 @@ class _CustomPageViewState extends State { allowImplicitScrolling: widget.allowImplicitScrolling, ).applyTo( widget.pageSnapping - ? _kPagePhysics.applyTo(widget.physics ?? - widget.scrollBehavior?.getScrollPhysics(context)) + ? _kPagePhysics.applyTo( + widget.physics ?? + widget.scrollBehavior?.getScrollPhysics(context), + ) : widget.physics ?? widget.scrollBehavior?.getScrollPhysics(context), ); @@ -1008,17 +1018,35 @@ class _CustomPageViewState extends State { description .add(EnumProperty('scrollDirection', widget.scrollDirection)); description.add( - FlagProperty('reverse', value: widget.reverse, ifTrue: 'reversed')); - description.add(DiagnosticsProperty( - 'controller', widget.controller, - showName: false)); - description.add(DiagnosticsProperty( - 'physics', widget.physics, - showName: false)); - description.add(FlagProperty('pageSnapping', - value: widget.pageSnapping, ifFalse: 'snapping disabled')); - description.add(FlagProperty('allowImplicitScrolling', + FlagProperty('reverse', value: widget.reverse, ifTrue: 'reversed'), + ); + description.add( + DiagnosticsProperty( + 'controller', + widget.controller, + showName: false, + ), + ); + description.add( + DiagnosticsProperty( + 'physics', + widget.physics, + showName: false, + ), + ); + description.add( + FlagProperty( + 'pageSnapping', + value: widget.pageSnapping, + ifFalse: 'snapping disabled', + ), + ); + description.add( + FlagProperty( + 'allowImplicitScrolling', value: widget.allowImplicitScrolling, - ifTrue: 'allow implicit scrolling')); + ifTrue: 'allow implicit scrolling', + ), + ); } } diff --git a/lib/widgets/custom_page_view/custom_sliver_fill_viewport.dart b/lib/widgets/custom_page_view/custom_sliver_fill_viewport.dart index 94f6a2e35..54e99fa2b 100644 --- a/lib/widgets/custom_page_view/custom_sliver_fill_viewport.dart +++ b/lib/widgets/custom_page_view/custom_sliver_fill_viewport.dart @@ -34,15 +34,14 @@ import 'package:flutter/rendering.dart'; class CustomSliverFillViewport extends StatelessWidget { /// Creates a sliver whose box children that each fill the viewport. const CustomSliverFillViewport({ - Key? key, + super.key, required this.delegate, this.viewportFraction = 1.0, this.viewportFractionalPadding = 0.25, this.padEnds = true, }) : assert(viewportFraction > 0.0), assert(viewportFractionalPadding > 0.0), - assert(viewportFractionalPadding <= 0.25), - super(key: key); + assert(viewportFractionalPadding <= 0.25); /// The fraction of the viewport that each child should fill in the main axis. /// @@ -84,11 +83,10 @@ class CustomSliverFillViewport extends StatelessWidget { class _SliverFillViewportRenderObjectWidget extends SliverMultiBoxAdaptorWidget { const _SliverFillViewportRenderObjectWidget({ - Key? key, - required SliverChildDelegate delegate, + super.key, + required super.delegate, this.viewportFraction = 1.0, - }) : assert(viewportFraction > 0.0), - super(key: key, delegate: delegate); + }) : assert(viewportFraction > 0.0); final double viewportFraction; @@ -97,12 +95,16 @@ class _SliverFillViewportRenderObjectWidget final SliverMultiBoxAdaptorElement element = context as SliverMultiBoxAdaptorElement; return RenderSliverFillViewport( - childManager: element, viewportFraction: viewportFraction); + childManager: element, + viewportFraction: viewportFraction, + ); } @override void updateRenderObject( - BuildContext context, RenderSliverFillViewport renderObject) { + BuildContext context, + RenderSliverFillViewport renderObject, + ) { renderObject.viewportFraction = viewportFraction; } } @@ -123,7 +125,9 @@ class _SliverFractionalPadding extends SingleChildRenderObjectWidget { @override void updateRenderObject( - BuildContext context, _RenderSliverFractionalPadding renderObject) { + BuildContext context, + _RenderSliverFractionalPadding renderObject, + ) { renderObject.viewportFraction = viewportFraction; } } @@ -274,11 +278,11 @@ class _RenderSliverFractionalPadding extends RenderSliverEdgeInsetsPadding { class SliverFillRemaining extends StatelessWidget { /// Creates a sliver that fills the remaining space in the viewport. const SliverFillRemaining({ - Key? key, + super.key, this.child, this.hasScrollBody = true, this.fillOverscroll = false, - }) : super(key: key); + }); /// Box child widget that fills the remaining space in the viewport. /// @@ -336,22 +340,23 @@ class SliverFillRemaining extends StatelessWidget { class _SliverFillRemainingWithScrollable extends SingleChildRenderObjectWidget { const _SliverFillRemainingWithScrollable({ - Key? key, - Widget? child, - }) : super(key: key, child: child); + super.key, + super.child, + }); @override RenderSliverFillRemainingWithScrollable createRenderObject( - BuildContext context) => + BuildContext context, + ) => RenderSliverFillRemainingWithScrollable(); } class _SliverFillRemainingWithoutScrollable extends SingleChildRenderObjectWidget { const _SliverFillRemainingWithoutScrollable({ - Key? key, - Widget? child, - }) : super(key: key, child: child); + super.key, + super.child, + }); @override RenderSliverFillRemaining createRenderObject(BuildContext context) => @@ -360,12 +365,13 @@ class _SliverFillRemainingWithoutScrollable class _SliverFillRemainingAndOverscroll extends SingleChildRenderObjectWidget { const _SliverFillRemainingAndOverscroll({ - Key? key, - Widget? child, - }) : super(key: key, child: child); + super.key, + super.child, + }); @override RenderSliverFillRemainingAndOverscroll createRenderObject( - BuildContext context) => + BuildContext context, + ) => RenderSliverFillRemainingAndOverscroll(); } diff --git a/lib/widgets/custom_pin_put/custom_pin_put.dart b/lib/widgets/custom_pin_put/custom_pin_put.dart index 7d978076b..999775b07 100644 --- a/lib/widgets/custom_pin_put/custom_pin_put.dart +++ b/lib/widgets/custom_pin_put/custom_pin_put.dart @@ -15,7 +15,7 @@ import 'pin_keyboard.dart'; class CustomPinPut extends StatefulWidget { const CustomPinPut({ - Key? key, + super.key, required this.fieldsCount, required this.isRandom, this.height, @@ -64,7 +64,7 @@ class CustomPinPut extends StatefulWidget { this.autofillHints, this.customKey, this.onPinLengthChanged, - }) : super(key: key); + }); final void Function(int)? onPinLengthChanged; diff --git a/lib/widgets/custom_pin_put/pin_keyboard.dart b/lib/widgets/custom_pin_put/pin_keyboard.dart index 274287a17..9eb44ae4d 100644 --- a/lib/widgets/custom_pin_put/pin_keyboard.dart +++ b/lib/widgets/custom_pin_put/pin_keyboard.dart @@ -12,16 +12,17 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; import '../../utilities/text_styles.dart'; class NumberKey extends StatefulWidget { const NumberKey({ - Key? key, + super.key, required this.number, required this.onPressed, - }) : super(key: key); + }); final String number; final ValueSetter onPressed; @@ -94,9 +95,9 @@ class _NumberKeyState extends State { class BackspaceKey extends StatefulWidget { const BackspaceKey({ - Key? key, + super.key, required this.onPressed, - }) : super(key: key); + }); final VoidCallback onPressed; @@ -129,51 +130,51 @@ class _BackspaceKeyState extends State { shadows: const [], ), child: MaterialButton( - // splashColor: Theme.of(context).extension()!.highlight, - materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, - shape: const StadiumBorder(), - onPressed: () { - onPressed.call(); - setState(() { - _color = Theme.of(context) - .extension()! - .numpadBackDefault - .withOpacity(0.8); - }); + // splashColor: Theme.of(context).extension()!.highlight, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + shape: const StadiumBorder(), + onPressed: () { + onPressed.call(); + setState(() { + _color = Theme.of(context) + .extension()! + .numpadBackDefault + .withOpacity(0.8); + }); - Future.delayed(const Duration(milliseconds: 200), () { - if (mounted) { - setState(() { - _color = Theme.of(context) - .extension()! - .numpadBackDefault; - }); - } - }); - }, - child: Semantics( - label: "Backspace Button. Deletes The Last Digit.", - excludeSemantics: true, - child: Center( - child: SvgPicture.asset( - Assets.svg.delete, - width: 20, - height: 20, - color: Theme.of(context) + Future.delayed(const Duration(milliseconds: 200), () { + if (mounted) { + setState(() { + _color = Theme.of(context) .extension()! - .numpadTextDefault, - ), + .numpadBackDefault; + }); + } + }); + }, + child: Semantics( + label: "Backspace Button. Deletes The Last Digit.", + excludeSemantics: true, + child: Center( + child: SvgPicture.asset( + Assets.svg.delete, + width: 20, + height: 20, + color: + Theme.of(context).extension()!.numpadTextDefault, ), - )), + ), + ), + ), ); } } class SubmitKey extends StatelessWidget { const SubmitKey({ - Key? key, + super.key, required this.onPressed, - }) : super(key: key); + }); final VoidCallback onPressed; @@ -210,11 +211,11 @@ class SubmitKey extends StatelessWidget { class CustomKey extends StatelessWidget { const CustomKey({ - Key? key, + super.key, required this.onPressed, this.iconAssetName, this.semanticsLabel = "Button", - }) : super(key: key); + }); final VoidCallback onPressed; final String? iconAssetName; @@ -223,43 +224,44 @@ class CustomKey extends StatelessWidget { @override Widget build(BuildContext context) { return Container( - height: 72, - width: 72, - decoration: ShapeDecoration( + height: 72, + width: 72, + decoration: ShapeDecoration( + shape: const StadiumBorder(), + color: Theme.of(context).extension()!.numpadBackDefault, + shadows: const [], + ), + child: Semantics( + label: semanticsLabel, + excludeSemantics: true, + child: MaterialButton( + // splashColor: Theme.of(context).extension()!.highlight, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, shape: const StadiumBorder(), - color: Theme.of(context).extension()!.numpadBackDefault, - shadows: const [], - ), - child: Semantics( - label: semanticsLabel, - excludeSemantics: true, - child: MaterialButton( - // splashColor: Theme.of(context).extension()!.highlight, - materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, - shape: const StadiumBorder(), - onPressed: () { - onPressed.call(); - }, - child: Center( - child: iconAssetName == null - ? null - : SvgPicture.asset( - iconAssetName!, - width: 20, - height: 20, - color: Theme.of(context) - .extension()! - .numpadTextDefault, - ), - ), + onPressed: () { + onPressed.call(); + }, + child: Center( + child: iconAssetName == null + ? null + : SvgPicture.asset( + iconAssetName!, + width: 20, + height: 20, + color: Theme.of(context) + .extension()! + .numpadTextDefault, + ), ), - )); + ), + ), + ); } } class PinKeyboard extends ConsumerWidget { const PinKeyboard({ - Key? key, + super.key, required this.onNumberKeyPressed, required this.onBackPressed, required this.onSubmitPressed, @@ -268,7 +270,7 @@ class PinKeyboard extends ConsumerWidget { this.width = 264, this.height = 360, this.customKey, - }) : super(key: key); + }); final ValueSetter onNumberKeyPressed; final VoidCallback onBackPressed; @@ -411,7 +413,7 @@ class PinKeyboard extends ConsumerWidget { onPressed: _submitHandler, ), ], - ) + ), ], ), ); @@ -420,7 +422,7 @@ class PinKeyboard extends ConsumerWidget { class RandomKeyboard extends StatelessWidget { const RandomKeyboard({ - Key? key, + super.key, required this.onNumberKeyPressed, required this.onBackPressed, required this.onSubmitPressed, @@ -428,7 +430,7 @@ class RandomKeyboard extends StatelessWidget { this.width = 264, this.height = 360, this.customKey, - }) : super(key: key); + }); final ValueSetter onNumberKeyPressed; final VoidCallback onBackPressed; @@ -567,7 +569,7 @@ class RandomKeyboard extends StatelessWidget { onPressed: _submitHandler, ), ], - ) + ), ], ), ); diff --git a/lib/widgets/custom_tab_view.dart b/lib/widgets/custom_tab_view.dart index db69a47a5..181f67341 100644 --- a/lib/widgets/custom_tab_view.dart +++ b/lib/widgets/custom_tab_view.dart @@ -9,18 +9,18 @@ */ import 'package:flutter/material.dart'; + import '../themes/stack_colors.dart'; import '../utilities/text_styles.dart'; class CustomTabView extends StatefulWidget { const CustomTabView({ - Key? key, + super.key, required this.titles, required this.children, this.initialIndex = 0, this.childPadding, - }) : assert(titles.length == children.length), - super(key: key); + }) : assert(titles.length == children.length); final List titles; final List children; diff --git a/lib/widgets/desktop/custom_text_button.dart b/lib/widgets/desktop/custom_text_button.dart index a868ff9ff..e526ba9af 100644 --- a/lib/widgets/desktop/custom_text_button.dart +++ b/lib/widgets/desktop/custom_text_button.dart @@ -23,11 +23,11 @@ enum ButtonHeight { class CustomTextButtonBase extends StatelessWidget { const CustomTextButtonBase({ - Key? key, + super.key, this.width, this.height, this.textButton, - }) : super(key: key); + }); final double? width; final double? height; diff --git a/lib/widgets/desktop/delete_button.dart b/lib/widgets/desktop/delete_button.dart index 897a4f8fe..80eaa79b6 100644 --- a/lib/widgets/desktop/delete_button.dart +++ b/lib/widgets/desktop/delete_button.dart @@ -10,6 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; + import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; import '../../utilities/text_styles.dart'; @@ -18,14 +19,14 @@ import 'custom_text_button.dart'; class DeleteButton extends StatelessWidget { const DeleteButton({ - Key? key, + super.key, this.width, this.height, this.label, this.onPressed, this.enabled = true, this.desktopMed = false, - }) : super(key: key); + }); final double? width; final double? height; @@ -48,7 +49,8 @@ class DeleteButton extends StatelessWidget { return enabled ? STextStyles.desktopButtonSecondaryEnabled(context).copyWith( color: - Theme.of(context).extension()!.accentColorRed) + Theme.of(context).extension()!.accentColorRed, + ) : STextStyles.desktopButtonSecondaryDisabled(context); } } else { diff --git a/lib/widgets/desktop/desktop_app_bar.dart b/lib/widgets/desktop/desktop_app_bar.dart index 2c6b39763..2cb365153 100644 --- a/lib/widgets/desktop/desktop_app_bar.dart +++ b/lib/widgets/desktop/desktop_app_bar.dart @@ -16,7 +16,7 @@ const double kDesktopAppBarHeightCompact = 82.0; class DesktopAppBar extends StatelessWidget { const DesktopAppBar({ - Key? key, + super.key, this.leading, this.center, this.overlayCenter, @@ -24,7 +24,7 @@ class DesktopAppBar extends StatelessWidget { this.background = Colors.transparent, required this.isCompactHeight, this.useSpacers = true, - }) : super(key: key); + }); final Widget? leading; final Widget? center; diff --git a/lib/widgets/desktop/desktop_dialog.dart b/lib/widgets/desktop/desktop_dialog.dart index d01fb3d77..e550627df 100644 --- a/lib/widgets/desktop/desktop_dialog.dart +++ b/lib/widgets/desktop/desktop_dialog.dart @@ -13,11 +13,11 @@ import '../../themes/stack_colors.dart'; class DesktopDialog extends StatelessWidget { const DesktopDialog({ - Key? key, + super.key, this.child, this.maxWidth = 641, this.maxHeight = 474, - }) : super(key: key); + }); final Widget? child; final double maxWidth; diff --git a/lib/widgets/desktop/desktop_dialog_close_button.dart b/lib/widgets/desktop/desktop_dialog_close_button.dart index a9b258737..4ec2ee3d8 100644 --- a/lib/widgets/desktop/desktop_dialog_close_button.dart +++ b/lib/widgets/desktop/desktop_dialog_close_button.dart @@ -16,9 +16,9 @@ import '../custom_buttons/app_bar_icon_button.dart'; class DesktopDialogCloseButton extends StatelessWidget { const DesktopDialogCloseButton({ - Key? key, + super.key, this.onPressedOverride, - }) : super(key: key); + }); final VoidCallback? onPressedOverride; diff --git a/lib/widgets/desktop/desktop_fee_dialog.dart b/lib/widgets/desktop/desktop_fee_dialog.dart index 08597b9eb..90304e80c 100644 --- a/lib/widgets/desktop/desktop_fee_dialog.dart +++ b/lib/widgets/desktop/desktop_fee_dialog.dart @@ -11,10 +11,6 @@ import '../../utilities/amount/amount.dart'; import '../../utilities/amount/amount_formatter.dart'; import '../../utilities/enums/fee_rate_type_enum.dart'; import '../../utilities/text_styles.dart'; -import '../../wallets/crypto_currency/coins/ethereum.dart'; -import '../../wallets/crypto_currency/coins/firo.dart'; -import '../../wallets/crypto_currency/coins/monero.dart'; -import '../../wallets/crypto_currency/coins/wownero.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import '../../wallets/isar/providers/eth/current_token_wallet_provider.dart'; import '../../wallets/wallet/impl/firo_wallet.dart'; @@ -311,9 +307,9 @@ class _DesktopFeeItemState extends ConsumerState { int targetBlockTime, int estimatedNumberOfBlocks, ) { - int time = targetBlockTime * estimatedNumberOfBlocks; + final int time = targetBlockTime * estimatedNumberOfBlocks; - int hours = (time / 3600).floor(); + final int hours = (time / 3600).floor(); if (hours > 1) { return "~$hours hours"; } else if (hours == 1) { diff --git a/lib/widgets/desktop/desktop_scaffold.dart b/lib/widgets/desktop/desktop_scaffold.dart index f3913b094..25b18963b 100644 --- a/lib/widgets/desktop/desktop_scaffold.dart +++ b/lib/widgets/desktop/desktop_scaffold.dart @@ -14,11 +14,11 @@ import '../background.dart'; class DesktopScaffold extends StatelessWidget { const DesktopScaffold({ - Key? key, + super.key, this.background, this.appBar, this.body, - }) : super(key: key); + }); final Color? background; final Widget? appBar; @@ -47,12 +47,12 @@ class DesktopScaffold extends StatelessWidget { class MasterScaffold extends StatelessWidget { const MasterScaffold({ - Key? key, + super.key, required this.isDesktop, required this.appBar, required this.body, this.background, - }) : super(key: key); + }); final bool isDesktop; final Widget appBar; diff --git a/lib/widgets/desktop/outline_blue_button.dart b/lib/widgets/desktop/outline_blue_button.dart index 6073db347..e0b4c0a20 100644 --- a/lib/widgets/desktop/outline_blue_button.dart +++ b/lib/widgets/desktop/outline_blue_button.dart @@ -19,7 +19,7 @@ export 'custom_text_button.dart'; class OutlineBlueButton extends StatelessWidget { const OutlineBlueButton({ - Key? key, + super.key, this.width, this.height, this.label, @@ -28,7 +28,7 @@ class OutlineBlueButton extends StatelessWidget { this.enabled = true, this.buttonHeight, this.iconSpacing = 10, - }) : super(key: key); + }); final double? width; final double? height; diff --git a/lib/widgets/desktop/paynym_search_button.dart b/lib/widgets/desktop/paynym_search_button.dart index 48d8134a3..d1a757d98 100644 --- a/lib/widgets/desktop/paynym_search_button.dart +++ b/lib/widgets/desktop/paynym_search_button.dart @@ -16,9 +16,9 @@ import '../rounded_container.dart'; class PaynymSearchButton extends StatefulWidget { const PaynymSearchButton({ - Key? key, + super.key, required this.onPressed, - }) : super(key: key); + }); final VoidCallback onPressed; diff --git a/lib/widgets/desktop/primary_button.dart b/lib/widgets/desktop/primary_button.dart index e9d555700..c2f126998 100644 --- a/lib/widgets/desktop/primary_button.dart +++ b/lib/widgets/desktop/primary_button.dart @@ -19,7 +19,7 @@ export 'custom_text_button.dart'; class PrimaryButton extends StatelessWidget { const PrimaryButton({ - Key? key, + super.key, this.width, this.height, this.label, @@ -28,7 +28,7 @@ class PrimaryButton extends StatelessWidget { this.enabled = true, this.buttonHeight, this.iconSpacing = 10, - }) : super(key: key); + }); final double? width; final double? height; diff --git a/lib/widgets/desktop/secondary_button.dart b/lib/widgets/desktop/secondary_button.dart index eba9a59f3..f9e18ec0a 100644 --- a/lib/widgets/desktop/secondary_button.dart +++ b/lib/widgets/desktop/secondary_button.dart @@ -19,7 +19,7 @@ export 'custom_text_button.dart'; class SecondaryButton extends StatelessWidget { const SecondaryButton({ - Key? key, + super.key, this.width, this.height, this.label, @@ -30,7 +30,7 @@ class SecondaryButton extends StatelessWidget { this.buttonHeight, this.iconSpacing = 10, this.padding = EdgeInsets.zero, - }) : super(key: key); + }); final double? width; final double? height; diff --git a/lib/widgets/desktop/simple_desktop_dialog.dart b/lib/widgets/desktop/simple_desktop_dialog.dart index 4b342c060..80cad79b0 100644 --- a/lib/widgets/desktop/simple_desktop_dialog.dart +++ b/lib/widgets/desktop/simple_desktop_dialog.dart @@ -16,10 +16,10 @@ import 'primary_button.dart'; class SimpleDesktopDialog extends StatelessWidget { const SimpleDesktopDialog({ - Key? key, + super.key, required this.title, required this.message, - }) : super(key: key); + }); final String title; final String message; @@ -80,7 +80,7 @@ class SimpleDesktopDialog extends StatelessWidget { ), ], ), - ) + ), ], ), ); diff --git a/lib/widgets/dialogs/basic_dialog.dart b/lib/widgets/dialogs/basic_dialog.dart index fcb54d2eb..8071ec53c 100644 --- a/lib/widgets/dialogs/basic_dialog.dart +++ b/lib/widgets/dialogs/basic_dialog.dart @@ -17,7 +17,7 @@ import '../stack_dialog.dart'; class BasicDialog extends StatelessWidget { const BasicDialog({ - Key? key, + super.key, this.leftButton, this.rightButton, this.icon, @@ -27,7 +27,7 @@ class BasicDialog extends StatelessWidget { this.desktopWidth = 641, this.canPopWithBackButton = false, this.flex = false, - }) : super(key: key); + }); final Widget? leftButton; final Widget? rightButton; @@ -103,7 +103,7 @@ class BasicDialog extends StatelessWidget { : const Spacer(), ], ), - ) + ), ], ), ); diff --git a/lib/widgets/dialogs/frost/frost_step_explanation_dialog.dart b/lib/widgets/dialogs/frost/frost_step_explanation_dialog.dart index fc8be900c..2b3dffa81 100644 --- a/lib/widgets/dialogs/frost/frost_step_explanation_dialog.dart +++ b/lib/widgets/dialogs/frost/frost_step_explanation_dialog.dart @@ -9,6 +9,7 @@ */ import 'package:flutter/material.dart'; + import '../../../utilities/text_styles.dart'; import '../../desktop/secondary_button.dart'; import '../../stack_dialog.dart'; @@ -16,7 +17,8 @@ import '../../stack_dialog.dart'; class FrostStepExplanationDialog extends StatelessWidget { final String title; final String body; - const FrostStepExplanationDialog({super.key, required this.title, required this.body}); + const FrostStepExplanationDialog( + {super.key, required this.title, required this.body}); @override Widget build(BuildContext context) { diff --git a/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart b/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart index 2de302720..c19eb2b2c 100644 --- a/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart +++ b/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart @@ -9,6 +9,7 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:path_provider/path_provider.dart'; import 'package:qr_flutter/qr_flutter.dart'; import 'package:share_plus/share_plus.dart'; + import '../../../notifications/show_flush_bar.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; @@ -16,9 +17,9 @@ import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; import '../../conditional_parent.dart'; import '../../desktop/secondary_button.dart'; -import '../simple_mobile_dialog.dart'; import '../../rounded_container.dart'; import '../../rounded_white_container.dart'; +import '../simple_mobile_dialog.dart'; class FrostStepQrDialog extends StatefulWidget { const FrostStepQrDialog({ @@ -52,7 +53,8 @@ class _FrostStepQrDialogState extends State { final dir = Directory("${Platform.environment['HOME']}"); if (!dir.existsSync()) { throw Exception( - "Home dir not found while trying to open filepicker on QR image save"); + "Home dir not found while trying to open filepicker on QR image save", + ); } final path = await FilePicker.platform.saveFile( fileName: "qrcode.png", @@ -91,8 +93,10 @@ class _FrostStepQrDialogState extends State { final file = await File("${tempDir.path}/qrcode.png").create(); await file.writeAsBytes(pngBytes); - await Share.shareFiles(["${tempDir.path}/qrcode.png"], - text: "Receive URI QR Code"); + await Share.shareFiles( + ["${tempDir.path}/qrcode.png"], + text: "Receive URI QR Code", + ); } } catch (e) { //todo: comeback to this @@ -111,7 +115,7 @@ class _FrostStepQrDialogState extends State { key: _qrKey, child: RoundedWhiteContainer( boxShadow: [ - Theme.of(context).extension()!.standardBoxShadow + Theme.of(context).extension()!.standardBoxShadow, ], child: Column( mainAxisSize: MainAxisSize.min, diff --git a/lib/widgets/emoji_select_sheet.dart b/lib/widgets/emoji_select_sheet.dart index b4330a232..608aa30a3 100644 --- a/lib/widgets/emoji_select_sheet.dart +++ b/lib/widgets/emoji_select_sheet.dart @@ -12,6 +12,7 @@ import 'package:emojis/emoji.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../themes/stack_colors.dart'; import '../utilities/assets.dart'; import '../utilities/constants.dart'; @@ -25,8 +26,8 @@ import 'textfield_icon_button.dart'; class EmojiSelectSheet extends ConsumerStatefulWidget { const EmojiSelectSheet({ - Key? key, - }) : super(key: key); + super.key, + }); final double horizontalPadding = 24; final double emojiSize = 24; @@ -55,11 +56,13 @@ class _EmojiSelectSheetState extends ConsumerState { text = text.toLowerCase(); return Emoji.all() - .where((e) => e.keywords - .where( - (e) => e.contains(text), - ) - .isNotEmpty) + .where( + (e) => e.keywords + .where( + (e) => e.contains(text), + ) + .isNotEmpty, + ) .toList(growable: false); } @@ -239,7 +242,7 @@ class _EmojiSelectSheetState extends ConsumerState { ); }, ), - ) + ), ], ), ), diff --git a/lib/widgets/eth_wallet_radio.dart b/lib/widgets/eth_wallet_radio.dart index a164d85ba..fe1da6efa 100644 --- a/lib/widgets/eth_wallet_radio.dart +++ b/lib/widgets/eth_wallet_radio.dart @@ -18,10 +18,10 @@ import 'wallet_info_row/sub_widgets/wallet_info_row_coin_icon.dart'; class EthWalletRadio extends ConsumerStatefulWidget { const EthWalletRadio({ - Key? key, + super.key, required this.walletId, this.selectedWalletId, - }) : super(key: key); + }); final String walletId; final String? selectedWalletId; diff --git a/lib/widgets/exchange/trocador/trocador_kyc_icon.dart b/lib/widgets/exchange/trocador/trocador_kyc_icon.dart index dc7b75a26..17161cac8 100644 --- a/lib/widgets/exchange/trocador/trocador_kyc_icon.dart +++ b/lib/widgets/exchange/trocador/trocador_kyc_icon.dart @@ -16,11 +16,11 @@ import 'trocador_rating_type_enum.dart'; class TrocadorKYCIcon extends StatelessWidget { const TrocadorKYCIcon({ - Key? key, + super.key, required this.kycType, this.width = 18, this.height = 18, - }) : super(key: key); + }); final TrocadorKYCType kycType; final double width; diff --git a/lib/widgets/exchange/trocador/trocador_kyc_info_button.dart b/lib/widgets/exchange/trocador/trocador_kyc_info_button.dart index 91fc2f732..2c1c288ce 100644 --- a/lib/widgets/exchange/trocador/trocador_kyc_info_button.dart +++ b/lib/widgets/exchange/trocador/trocador_kyc_info_button.dart @@ -15,9 +15,9 @@ import '../../trocador_kyc_rating_info.dart'; class TrocadorKYCInfoButton extends StatelessWidget { const TrocadorKYCInfoButton({ - Key? key, + super.key, required this.kycType, - }) : super(key: key); + }); final TrocadorKYCType kycType; diff --git a/lib/widgets/expandable.dart b/lib/widgets/expandable.dart index 2d84e29a7..2a3060d1b 100644 --- a/lib/widgets/expandable.dart +++ b/lib/widgets/expandable.dart @@ -22,7 +22,7 @@ class ExpandableController { class Expandable extends StatefulWidget { const Expandable({ - Key? key, + super.key, required this.header, required this.body, this.animationController, @@ -34,7 +34,7 @@ class Expandable extends StatefulWidget { this.expandOverride, this.curve = Curves.easeInOut, this.initialState = ExpandableState.collapsed, - }) : super(key: key); + }); final Widget header; final Widget body; diff --git a/lib/widgets/expandable2.dart b/lib/widgets/expandable2.dart index c806217df..b8dad923a 100644 --- a/lib/widgets/expandable2.dart +++ b/lib/widgets/expandable2.dart @@ -24,7 +24,7 @@ class Expandable2Controller { class Expandable2 extends StatefulWidget { const Expandable2({ - Key? key, + super.key, required this.header, required this.children, this.background = Colors.white, @@ -36,7 +36,7 @@ class Expandable2 extends StatefulWidget { this.onExpandChanged, this.controller, this.expandOverride, - }) : super(key: key); + }); final Widget header; final List children; diff --git a/lib/widgets/fee_slider.dart b/lib/widgets/fee_slider.dart index 806e9306f..aff7fc131 100644 --- a/lib/widgets/fee_slider.dart +++ b/lib/widgets/fee_slider.dart @@ -2,7 +2,6 @@ import 'dart:math'; import 'package:flutter/material.dart'; import '../utilities/text_styles.dart'; -import '../wallets/crypto_currency/coins/dogecoin.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; class FeeSlider extends StatefulWidget { diff --git a/lib/widgets/frost_scaffold.dart b/lib/widgets/frost_scaffold.dart index 6ce59ce1d..9a527eb57 100644 --- a/lib/widgets/frost_scaffold.dart +++ b/lib/widgets/frost_scaffold.dart @@ -186,7 +186,7 @@ class _FrostScaffoldState extends ConsumerState { width: 500, child: child, ), - ) + ), ], ), child: ConditionalParent( diff --git a/lib/widgets/hover_text_field.dart b/lib/widgets/hover_text_field.dart index 9ade4d63d..f4b9528ff 100644 --- a/lib/widgets/hover_text_field.dart +++ b/lib/widgets/hover_text_field.dart @@ -22,9 +22,9 @@ import '../utilities/util.dart'; class DesktopWalletNameField extends ConsumerStatefulWidget { const DesktopWalletNameField({ - Key? key, + super.key, required this.walletId, - }) : super(key: key); + }); final String walletId; diff --git a/lib/widgets/icon_widgets/addressbook_icon.dart b/lib/widgets/icon_widgets/addressbook_icon.dart index f373c9dbf..62b54d333 100644 --- a/lib/widgets/icon_widgets/addressbook_icon.dart +++ b/lib/widgets/icon_widgets/addressbook_icon.dart @@ -15,11 +15,11 @@ import '../../utilities/assets.dart'; class AddressBookIcon extends StatelessWidget { const AddressBookIcon({ - Key? key, + super.key, this.width = 16, this.height = 16, this.color, - }) : super(key: key); + }); final double width; final double height; diff --git a/lib/widgets/icon_widgets/clipboard_icon.dart b/lib/widgets/icon_widgets/clipboard_icon.dart index 062b3c70d..b8701d707 100644 --- a/lib/widgets/icon_widgets/clipboard_icon.dart +++ b/lib/widgets/icon_widgets/clipboard_icon.dart @@ -15,11 +15,11 @@ import '../../utilities/assets.dart'; class ClipboardIcon extends StatelessWidget { const ClipboardIcon({ - Key? key, + super.key, this.width = 18, this.height = 18, this.color, - }) : super(key: key); + }); final double width; final double height; diff --git a/lib/widgets/icon_widgets/copy_icon.dart b/lib/widgets/icon_widgets/copy_icon.dart index 7d5bd4af9..ceb5074ce 100644 --- a/lib/widgets/icon_widgets/copy_icon.dart +++ b/lib/widgets/icon_widgets/copy_icon.dart @@ -15,11 +15,11 @@ import '../../utilities/assets.dart'; class CopyIcon extends StatelessWidget { const CopyIcon({ - Key? key, + super.key, this.width = 18, this.height = 18, this.color, - }) : super(key: key); + }); final double width; final double height; diff --git a/lib/widgets/icon_widgets/dice_icon.dart b/lib/widgets/icon_widgets/dice_icon.dart index 27b88a684..1d688a2b9 100644 --- a/lib/widgets/icon_widgets/dice_icon.dart +++ b/lib/widgets/icon_widgets/dice_icon.dart @@ -15,11 +15,11 @@ import '../../utilities/assets.dart'; class DiceIcon extends StatelessWidget { const DiceIcon({ - Key? key, + super.key, this.width = 17, this.height = 17, this.color, - }) : super(key: key); + }); final double width; final double height; diff --git a/lib/widgets/icon_widgets/eth_token_icon.dart b/lib/widgets/icon_widgets/eth_token_icon.dart index 2e0e83a2a..5908270f6 100644 --- a/lib/widgets/icon_widgets/eth_token_icon.dart +++ b/lib/widgets/icon_widgets/eth_token_icon.dart @@ -15,7 +15,6 @@ import 'package:isar/isar.dart'; import '../../models/isar/exchange_cache/currency.dart'; import '../../services/exchange/exchange_data_loading_service.dart'; import '../../themes/coin_icon_provider.dart'; -import '../../wallets/crypto_currency/coins/ethereum.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; class EthTokenIcon extends ConsumerStatefulWidget { diff --git a/lib/widgets/icon_widgets/pencil_icon.dart b/lib/widgets/icon_widgets/pencil_icon.dart index 1389207a2..0cf1b30e8 100644 --- a/lib/widgets/icon_widgets/pencil_icon.dart +++ b/lib/widgets/icon_widgets/pencil_icon.dart @@ -15,11 +15,11 @@ import '../../utilities/assets.dart'; class PencilIcon extends StatelessWidget { const PencilIcon({ - Key? key, + super.key, this.width = 18, this.height = 18, this.color, - }) : super(key: key); + }); final double width; final double height; diff --git a/lib/widgets/icon_widgets/qrcode_icon.dart b/lib/widgets/icon_widgets/qrcode_icon.dart index cc84ff39a..fa3a28749 100644 --- a/lib/widgets/icon_widgets/qrcode_icon.dart +++ b/lib/widgets/icon_widgets/qrcode_icon.dart @@ -15,11 +15,11 @@ import '../../utilities/assets.dart'; class QrCodeIcon extends StatelessWidget { const QrCodeIcon({ - Key? key, + super.key, this.width = 17, this.height = 17, this.color, - }) : super(key: key); + }); final double width; final double height; diff --git a/lib/widgets/icon_widgets/share_icon.dart b/lib/widgets/icon_widgets/share_icon.dart index 449f04ae1..2e6efac3c 100644 --- a/lib/widgets/icon_widgets/share_icon.dart +++ b/lib/widgets/icon_widgets/share_icon.dart @@ -15,11 +15,11 @@ import '../../utilities/assets.dart'; class ShareIcon extends StatelessWidget { const ShareIcon({ - Key? key, + super.key, this.width = 18, this.height = 18, this.color, - }) : super(key: key); + }); final double width; final double height; diff --git a/lib/widgets/icon_widgets/utxo_status_icon.dart b/lib/widgets/icon_widgets/utxo_status_icon.dart index 3c78308df..30a39b1fc 100644 --- a/lib/widgets/icon_widgets/utxo_status_icon.dart +++ b/lib/widgets/icon_widgets/utxo_status_icon.dart @@ -22,14 +22,14 @@ enum UTXOStatusIconStatus { class UTXOStatusIcon extends StatelessWidget { const UTXOStatusIcon({ - Key? key, + super.key, required this.width, required this.height, required this.blocked, required this.selected, required this.status, required this.background, - }) : super(key: key); + }); final double width; final double height; diff --git a/lib/widgets/icon_widgets/x_icon.dart b/lib/widgets/icon_widgets/x_icon.dart index 03a536e51..b77a967d2 100644 --- a/lib/widgets/icon_widgets/x_icon.dart +++ b/lib/widgets/icon_widgets/x_icon.dart @@ -15,11 +15,11 @@ import '../../utilities/assets.dart'; class XIcon extends StatelessWidget { const XIcon({ - Key? key, + super.key, this.width = 18, this.height = 18, this.color, - }) : super(key: key); + }); final double width; final double height; diff --git a/lib/widgets/loading_indicator.dart b/lib/widgets/loading_indicator.dart index e42216fae..1e9db2809 100644 --- a/lib/widgets/loading_indicator.dart +++ b/lib/widgets/loading_indicator.dart @@ -18,10 +18,10 @@ import '../utilities/assets.dart'; class LoadingIndicator extends ConsumerWidget { const LoadingIndicator({ - Key? key, + super.key, this.width, this.height, - }) : super(key: key); + }); final double? width; final double? height; diff --git a/lib/widgets/master_wallet_card.dart b/lib/widgets/master_wallet_card.dart index 3eb07a6db..33427a752 100644 --- a/lib/widgets/master_wallet_card.dart +++ b/lib/widgets/master_wallet_card.dart @@ -24,10 +24,10 @@ import 'wallet_info_row/wallet_info_row.dart'; class MasterWalletCard extends ConsumerStatefulWidget { const MasterWalletCard({ - Key? key, + super.key, required this.walletId, this.popPrevious = false, - }) : super(key: key); + }); final String walletId; final bool popPrevious; diff --git a/lib/widgets/node_options_sheet.dart b/lib/widgets/node_options_sheet.dart index 37316dd05..82137ac80 100644 --- a/lib/widgets/node_options_sheet.dart +++ b/lib/widgets/node_options_sheet.dart @@ -14,6 +14,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:solana/solana.dart'; +import 'package:tuple/tuple.dart'; + import '../models/node_model.dart'; import '../notifications/show_flush_bar.dart'; import '../pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; @@ -34,7 +36,6 @@ import '../utilities/test_monero_node_connection.dart'; import '../utilities/text_styles.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; import 'rounded_white_container.dart'; -import 'package:tuple/tuple.dart'; class NodeOptionsSheet extends ConsumerWidget { const NodeOptionsSheet({ @@ -228,7 +229,8 @@ class NodeOptionsSheet extends ConsumerWidget { final status = ref .watch( nodeServiceChangeNotifierProvider.select( - (value) => value.getPrimaryNodeFor(currency: coin)), + (value) => value.getPrimaryNodeFor(currency: coin), + ), ) ?.id != nodeId diff --git a/lib/widgets/onetime_popups/tor_has_been_add_dialog.dart b/lib/widgets/onetime_popups/tor_has_been_add_dialog.dart index 0c189cf63..ab03f5ae0 100644 --- a/lib/widgets/onetime_popups/tor_has_been_add_dialog.dart +++ b/lib/widgets/onetime_popups/tor_has_been_add_dialog.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:hive_flutter/hive_flutter.dart'; + import '../../db/hive/db.dart'; import '../../utilities/assets.dart'; import '../../utilities/text_styles.dart'; @@ -14,7 +15,8 @@ const _kOneTimeTorHasBeenAddedDialogWasShown = "oneTimeTorHasBeenAddedDialogWasShown"; Future showOneTimeTorHasBeenAddedDialogIfRequired( - BuildContext context) async { + BuildContext context, +) async { final box = await Hive.openBox(DB.boxNameOneTimeDialogsShown); if (!box.get( @@ -102,7 +104,7 @@ class _TorHasBeenAddedDialogState extends State<_TorHasBeenAddedDialog> { ), ], ), - ) + ), ], ), ), diff --git a/lib/widgets/progress_bar.dart b/lib/widgets/progress_bar.dart index a58c42c69..212167dae 100644 --- a/lib/widgets/progress_bar.dart +++ b/lib/widgets/progress_bar.dart @@ -12,13 +12,13 @@ import 'package:flutter/cupertino.dart'; class ProgressBar extends StatelessWidget { const ProgressBar({ - Key? key, + super.key, required this.width, required this.height, required this.fillColor, required this.backgroundColor, required this.percent, - }) : super(key: key); + }); final double width; final double height; @@ -49,7 +49,7 @@ class ProgressBar extends StatelessWidget { color: fillColor, borderRadius: BorderRadius.circular(height / 2), ), - ) + ), ], ), ), diff --git a/lib/widgets/rounded_container.dart b/lib/widgets/rounded_container.dart index d75dc6966..fa8bc3f27 100644 --- a/lib/widgets/rounded_container.dart +++ b/lib/widgets/rounded_container.dart @@ -14,7 +14,7 @@ import 'conditional_parent.dart'; class RoundedContainer extends StatelessWidget { const RoundedContainer({ - Key? key, + super.key, this.child, required this.color, this.padding = const EdgeInsets.all(12), @@ -25,7 +25,7 @@ class RoundedContainer extends StatelessWidget { this.hoverColor, this.boxShadow, this.onPressed, - }) : super(key: key); + }); final Widget? child; final Color color; diff --git a/lib/widgets/rounded_white_container.dart b/lib/widgets/rounded_white_container.dart index 0097397e8..a24059c8c 100644 --- a/lib/widgets/rounded_white_container.dart +++ b/lib/widgets/rounded_white_container.dart @@ -14,7 +14,7 @@ import 'rounded_container.dart'; class RoundedWhiteContainer extends StatelessWidget { const RoundedWhiteContainer({ - Key? key, + super.key, this.child, this.padding = const EdgeInsets.all(12), this.radiusMultiplier = 1.0, @@ -24,7 +24,7 @@ class RoundedWhiteContainer extends StatelessWidget { this.hoverColor, this.boxShadow, this.onPressed, - }) : super(key: key); + }); final Widget? child; final EdgeInsets padding; diff --git a/lib/widgets/shake/shake.dart b/lib/widgets/shake/shake.dart index c19241ee1..798368368 100644 --- a/lib/widgets/shake/shake.dart +++ b/lib/widgets/shake/shake.dart @@ -12,12 +12,12 @@ import 'package:flutter/cupertino.dart'; class Shake extends StatefulWidget { const Shake({ - Key? key, + super.key, required this.child, required this.animationRange, required this.controller, required this.animationDuration, - }) : super(key: key); + }); final Widget child; final double animationRange; diff --git a/lib/widgets/stack_dialog.dart b/lib/widgets/stack_dialog.dart index 58fb69ea2..147e83bbd 100644 --- a/lib/widgets/stack_dialog.dart +++ b/lib/widgets/stack_dialog.dart @@ -15,11 +15,11 @@ import '../utilities/util.dart'; class StackDialogBase extends StatelessWidget { const StackDialogBase({ - Key? key, + super.key, this.child, this.padding = const EdgeInsets.all(24), this.keyboardPaddingAmount = 0, - }) : super(key: key); + }); final EdgeInsets padding; final Widget? child; @@ -67,13 +67,13 @@ class StackDialogBase extends StatelessWidget { class StackDialog extends StatelessWidget { const StackDialog({ - Key? key, + super.key, this.leftButton, this.rightButton, this.icon, required this.title, this.message, - }) : super(key: key); + }); final Widget? leftButton; final Widget? rightButton; @@ -132,7 +132,7 @@ class StackDialog extends StatelessWidget { ? const Spacer() : Expanded(child: rightButton!), ], - ) + ), ], ), ); @@ -141,14 +141,14 @@ class StackDialog extends StatelessWidget { class StackOkDialog extends StatelessWidget { const StackOkDialog({ - Key? key, + super.key, this.leftButton, this.onOkPressed, this.icon, required this.title, this.message, this.desktopPopRootNavigator = false, - }) : super(key: key); + }); final bool desktopPopRootNavigator; final Widget? leftButton; @@ -228,7 +228,7 @@ class StackOkDialog extends StatelessWidget { ), ), ], - ) + ), ], ), ); diff --git a/lib/widgets/stack_text_field.dart b/lib/widgets/stack_text_field.dart index 359f5c0d3..c64c6a5e8 100644 --- a/lib/widgets/stack_text_field.dart +++ b/lib/widgets/stack_text_field.dart @@ -9,6 +9,7 @@ */ import 'package:flutter/material.dart'; + import '../themes/stack_colors.dart'; import '../utilities/text_styles.dart'; import '../utilities/util.dart'; @@ -31,7 +32,8 @@ InputDecoration standardInputDecoration( ? STextStyles.desktopTextExtraSmall(context).copyWith( color: Theme.of(context) .extension()! - .textFieldDefaultText) + .textFieldDefaultText, + ) : STextStyles.desktopTextFieldLabel(context) : STextStyles.fieldLabel(context), hintStyle: isDesktop @@ -39,7 +41,8 @@ InputDecoration standardInputDecoration( ? STextStyles.desktopTextExtraSmall(context).copyWith( color: Theme.of(context) .extension()! - .textFieldDefaultText) + .textFieldDefaultText, + ) : STextStyles.desktopTextFieldLabel(context) : STextStyles.fieldLabel(context), enabledBorder: InputBorder.none, diff --git a/lib/widgets/table_view/table_view.dart b/lib/widgets/table_view/table_view.dart index 4fedb067a..ee208716a 100644 --- a/lib/widgets/table_view/table_view.dart +++ b/lib/widgets/table_view/table_view.dart @@ -12,11 +12,11 @@ import 'package:flutter/material.dart'; class TableView extends StatelessWidget { const TableView({ - Key? key, + super.key, required this.rows, this.rowSpacing = 10.0, this.shrinkWrap = false, - }) : super(key: key); + }); final List rows; final double rowSpacing; @@ -42,7 +42,7 @@ class TableView extends StatelessWidget { ), rows[i], ], - ) + ), ], ); } diff --git a/lib/widgets/table_view/table_view_cell.dart b/lib/widgets/table_view/table_view_cell.dart index fb87ce86d..d0543a2c2 100644 --- a/lib/widgets/table_view/table_view_cell.dart +++ b/lib/widgets/table_view/table_view_cell.dart @@ -12,10 +12,10 @@ import 'package:flutter/material.dart'; class TableViewCell extends StatelessWidget { const TableViewCell({ - Key? key, + super.key, required this.flex, required this.child, - }) : super(key: key); + }); final int flex; final Widget child; diff --git a/lib/widgets/table_view/table_view_row.dart b/lib/widgets/table_view/table_view_row.dart index 3f8bd826d..6d2ddb6c3 100644 --- a/lib/widgets/table_view/table_view_row.dart +++ b/lib/widgets/table_view/table_view_row.dart @@ -15,7 +15,7 @@ import 'table_view_cell.dart'; class TableViewRow extends StatefulWidget { const TableViewRow({ - Key? key, + super.key, required this.cells, required this.expandingChild, this.decoration, @@ -24,7 +24,7 @@ class TableViewRow extends StatefulWidget { this.padding = const EdgeInsets.all(0), this.spacing = 0.0, this.crossAxisAlignment = CrossAxisAlignment.center, - }) : super(key: key); + }); final List cells; final Widget? expandingChild; diff --git a/lib/widgets/textfield_icon_button.dart b/lib/widgets/textfield_icon_button.dart index b600e98cc..8faea5495 100644 --- a/lib/widgets/textfield_icon_button.dart +++ b/lib/widgets/textfield_icon_button.dart @@ -12,14 +12,14 @@ import 'package:flutter/material.dart'; class TextFieldIconButton extends StatefulWidget { const TextFieldIconButton({ - Key? key, + super.key, this.width = 40, this.height = 40, this.onTap, required this.child, this.color = Colors.transparent, this.semanticsLabel = "Button", - }) : super(key: key); + }); final double width; final double height; @@ -66,7 +66,7 @@ class _TextFieldIconButtonState extends State { ), ), ), - ) + ), ), ); } diff --git a/lib/widgets/textfields/exchange_textfield.dart b/lib/widgets/textfields/exchange_textfield.dart index 0266d6637..3f6dfc3ca 100644 --- a/lib/widgets/textfields/exchange_textfield.dart +++ b/lib/widgets/textfields/exchange_textfield.dart @@ -25,7 +25,7 @@ import '../loading_indicator.dart'; class ExchangeTextField extends ConsumerStatefulWidget { const ExchangeTextField({ - Key? key, + super.key, this.borderRadius = 0, this.background, required this.controller, @@ -40,7 +40,7 @@ class ExchangeTextField extends ConsumerStatefulWidget { required this.isWalletCoin, this.currency, this.readOnly = false, - }) : super(key: key); + }); final double borderRadius; final Color? background; @@ -136,8 +136,10 @@ class _ExchangeTextFieldState extends ConsumerState { inputFormatters: [ AmountInputFormatter( decimals: 8, // todo change this - locale: ref.watch(localeServiceChangeNotifierProvider - .select((value) => value.locale)), + locale: ref.watch( + localeServiceChangeNotifierProvider + .select((value) => value.locale), + ), ), // // regex to validate a crypto amount with 8 decimal places // TextInputFormatter.withFunction((oldValue, newValue) => @@ -176,7 +178,8 @@ class _ExchangeTextFieldState extends ConsumerState { child: Builder( builder: (context) { if (AppConfig.isStackCoin( - widget.currency?.ticker)) { + widget.currency?.ticker, + )) { return Center( child: CoinIconForTicker( size: 18, diff --git a/lib/widgets/textfields/frost_step_field.dart b/lib/widgets/textfields/frost_step_field.dart index 8ce64b089..f805dc64a 100644 --- a/lib/widgets/textfields/frost_step_field.dart +++ b/lib/widgets/textfields/frost_step_field.dart @@ -1,6 +1,7 @@ import 'package:barcode_scan2/barcode_scan2.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; + import '../../themes/stack_colors.dart'; import '../../utilities/constants.dart'; import '../../utilities/logger.dart'; @@ -154,7 +155,8 @@ class _FrostStepFieldState extends State { if (FocusScope.of(context).hasFocus) { FocusScope.of(context).unfocus(); await Future.delayed( - const Duration(milliseconds: 75)); + const Duration(milliseconds: 75), + ); } final qrResult = await BarcodeScanner.scan(); diff --git a/lib/widgets/toggle.dart b/lib/widgets/toggle.dart index dec082d5f..eec7cec4c 100644 --- a/lib/widgets/toggle.dart +++ b/lib/widgets/toggle.dart @@ -10,13 +10,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; + import '../themes/stack_colors.dart'; import '../utilities/text_styles.dart'; import '../utilities/util.dart'; class Toggle extends StatefulWidget { const Toggle({ - Key? key, + super.key, this.onIcon, this.onText, this.offIcon, @@ -28,7 +29,7 @@ class Toggle extends StatefulWidget { required this.onColor, required this.offColor, this.decoration, - }) : super(key: key); + }); final String? onIcon; final String? onText; @@ -142,7 +143,7 @@ class ToggleState extends State { .clamp(0.0, 1.0); }, onHorizontalDragEnd: (details) { - bool oldValue = _isOn; + final bool oldValue = _isOn; if (valueListener.value > 0.5) { valueListener.value = 1.0; _isOn = true; @@ -225,8 +226,8 @@ class ToggleState extends State { widget.onText ?? "", style: isDesktop ? STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: !_isOn ? Theme.of(context) .extension()! @@ -284,8 +285,8 @@ class ToggleState extends State { widget.offText ?? "", style: isDesktop ? STextStyles.desktopTextExtraExtraSmall( - context) - .copyWith( + context, + ).copyWith( color: _isOn ? Theme.of(context) .extension()! diff --git a/lib/widgets/trade_card.dart b/lib/widgets/trade_card.dart index 5305ad584..28a05f9ae 100644 --- a/lib/widgets/trade_card.dart +++ b/lib/widgets/trade_card.dart @@ -14,6 +14,7 @@ import 'package:decimal/decimal.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../models/exchange/change_now/exchange_transaction_status.dart'; import '../models/exchange/response_objects/trade.dart'; import '../models/isar/stack_theme.dart'; @@ -26,10 +27,10 @@ import 'rounded_white_container.dart'; class TradeCard extends ConsumerWidget { const TradeCard({ - Key? key, + super.key, required this.trade, required this.onTap, - }) : super(key: key); + }); final Trade trade; final VoidCallback onTap; @@ -139,7 +140,8 @@ class TradeCard extends ConsumerWidget { ), Text( Format.extractDateFrom( - trade.timestamp.millisecondsSinceEpoch ~/ 1000), + trade.timestamp.millisecondsSinceEpoch ~/ 1000, + ), style: STextStyles.label(context), ), if (isDesktop) @@ -151,7 +153,7 @@ class TradeCard extends ConsumerWidget { ), ], ), - ) + ), ], ), ), diff --git a/lib/widgets/transaction_card.dart b/lib/widgets/transaction_card.dart index 323fb7ebe..b83b09696 100644 --- a/lib/widgets/transaction_card.dart +++ b/lib/widgets/transaction_card.dart @@ -12,6 +12,8 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:tuple/tuple.dart'; + import '../models/isar/models/isar_models.dart'; import '../notifications/show_flush_bar.dart'; import '../pages/wallet_view/sub_widgets/tx_icon.dart'; @@ -25,18 +27,15 @@ import '../utilities/constants.dart'; import '../utilities/format.dart'; import '../utilities/text_styles.dart'; import '../utilities/util.dart'; -import '../wallets/crypto_currency/coins/epiccash.dart'; -import '../wallets/crypto_currency/coins/ethereum.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; import 'desktop/desktop_dialog.dart'; -import 'package:tuple/tuple.dart'; class TransactionCard extends ConsumerStatefulWidget { const TransactionCard({ - Key? key, + super.key, required this.transaction, required this.walletId, - }) : super(key: key); + }); final Transaction transaction; final String walletId; @@ -141,19 +140,26 @@ class _TransactionCardState extends ConsumerState { @override Widget build(BuildContext context) { final locale = ref.watch( - localeServiceChangeNotifierProvider.select((value) => value.locale)); + localeServiceChangeNotifierProvider.select((value) => value.locale), + ); final baseCurrency = ref .watch(prefsChangeNotifierProvider.select((value) => value.currency)); final price = ref - .watch(priceAnd24hChangeNotifierProvider.select((value) => isTokenTx - ? value.getTokenPrice(_transaction.otherData!) - : value.getPrice(coin))) + .watch( + priceAnd24hChangeNotifierProvider.select( + (value) => isTokenTx + ? value.getTokenPrice(_transaction.otherData!) + : value.getPrice(coin), + ), + ) .item1; - final currentHeight = ref.watch(pWallets - .select((value) => value.getWallet(walletId).info.cachedChainHeight)); + final currentHeight = ref.watch( + pWallets + .select((value) => value.getWallet(walletId).info.cachedChainHeight), + ); return Material( color: Theme.of(context).extension()!.popupBG, @@ -172,13 +178,15 @@ class _TransactionCardState extends ConsumerState { ), onPressed: () async { if (coin is Epiccash && _transaction.slateId == null) { - unawaited(showFloatingFlushBar( - context: context, - message: - "Restored Epic funds from your Seed have no Data.\nUse Stack Backup to keep your transaction history.", - type: FlushBarType.warning, - duration: const Duration(seconds: 5), - )); + unawaited( + showFloatingFlushBar( + context: context, + message: + "Restored Epic funds from your Seed have no Data.\nUse Stack Backup to keep your transaction history.", + type: FlushBarType.warning, + duration: const Duration(seconds: 5), + ), + ); return; } if (Util.isDesktop) { @@ -280,13 +288,17 @@ class _TransactionCardState extends ConsumerState { ), ), ), - if (ref.watch(prefsChangeNotifierProvider - .select((value) => value.externalCalls))) + if (ref.watch( + prefsChangeNotifierProvider + .select((value) => value.externalCalls), + )) const SizedBox( width: 10, ), - if (ref.watch(prefsChangeNotifierProvider - .select((value) => value.externalCalls))) + if (ref.watch( + prefsChangeNotifierProvider + .select((value) => value.externalCalls), + )) Flexible( child: FittedBox( fit: BoxFit.scaleDown, diff --git a/lib/widgets/trocador_kyc_rating_info.dart b/lib/widgets/trocador_kyc_rating_info.dart index 9c5b04c9f..826c1bc5c 100644 --- a/lib/widgets/trocador_kyc_rating_info.dart +++ b/lib/widgets/trocador_kyc_rating_info.dart @@ -20,7 +20,7 @@ import 'exchange/trocador/trocador_rating_type_enum.dart'; import 'stack_dialog.dart'; class TrocadorKYCRatingInfo extends StatelessWidget { - const TrocadorKYCRatingInfo({Key? key}) : super(key: key); + const TrocadorKYCRatingInfo({super.key}); @override Widget build(BuildContext context) { @@ -71,7 +71,7 @@ class TrocadorKYCRatingInfo extends StatelessWidget { ), ], ), - ) + ), ], ), ), @@ -138,7 +138,7 @@ class TrocadorKYCRatingInfo extends StatelessWidget { label: "Close", onPressed: Navigator.of(context).pop, ), - ) + ), ], ), ), @@ -151,10 +151,10 @@ class TrocadorKYCRatingInfo extends StatelessWidget { class _Rating extends StatelessWidget { const _Rating({ - Key? key, + super.key, required this.kycType, required this.text, - }) : super(key: key); + }); final TrocadorKYCType kycType; final String text; diff --git a/lib/widgets/wallet_card.dart b/lib/widgets/wallet_card.dart index 98c5fbeac..a2185186c 100644 --- a/lib/widgets/wallet_card.dart +++ b/lib/widgets/wallet_card.dart @@ -12,6 +12,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../models/isar/models/ethereum/eth_contract.dart'; import '../pages/token_view/token_view.dart'; import '../pages/wallet_view/wallet_view.dart'; @@ -36,12 +37,12 @@ import 'wallet_info_row/wallet_info_row.dart'; class SimpleWalletCard extends ConsumerWidget { const SimpleWalletCard({ - Key? key, + super.key, required this.walletId, this.contractAddress, this.popPrevious = false, this.desktopNavigatorState, - }) : super(key: key); + }); final String walletId; final String? contractAddress; @@ -131,7 +132,11 @@ class SimpleWalletCard extends ConsumerWidget { final success = await showLoading( whileFuture: _loadTokenWallet( - desktopNavigatorState?.context ?? context, ref, wallet, contract), + desktopNavigatorState?.context ?? context, + ref, + wallet, + contract, + ), context: desktopNavigatorState?.context ?? context, opaqueBG: true, message: "Loading ${contract.name}", diff --git a/lib/widgets/wallet_info_row/wallet_info_row.dart b/lib/widgets/wallet_info_row/wallet_info_row.dart index 3510e389f..2cc35b7aa 100644 --- a/lib/widgets/wallet_info_row/wallet_info_row.dart +++ b/lib/widgets/wallet_info_row/wallet_info_row.dart @@ -10,6 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + import '../../models/isar/models/ethereum/eth_contract.dart'; import '../../pages/token_view/sub_widgets/token_summary.dart'; import '../../providers/db/main_db_provider.dart'; @@ -23,12 +24,12 @@ import 'sub_widgets/wallet_info_row_coin_icon.dart'; class WalletInfoRow extends ConsumerWidget { const WalletInfoRow({ - Key? key, + super.key, required this.walletId, this.onPressedDesktop, this.contractAddress, this.padding = const EdgeInsets.all(0), - }) : super(key: key); + }); final String walletId; final String? contractAddress; @@ -41,8 +42,10 @@ class WalletInfoRow extends ConsumerWidget { EthContract? contract; if (contractAddress != null) { - contract = ref.watch(mainDBProvider - .select((value) => value.getEthContractSync(contractAddress!))); + contract = ref.watch( + mainDBProvider + .select((value) => value.getEthContractSync(contractAddress!)), + ); } if (Util.isDesktop) { @@ -114,7 +117,7 @@ class WalletInfoRow extends ConsumerWidget { ), ], ), - ) + ), ], ), ), diff --git a/lib/widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart index 586fae900..70e34a109 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart @@ -16,7 +16,7 @@ import 'package:flutter_svg/flutter_svg.dart'; import '../../../../themes/theme_providers.dart'; class BuyNavIcon extends ConsumerWidget { - const BuyNavIcon({Key? key}) : super(key: key); + const BuyNavIcon({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { diff --git a/lib/widgets/wallet_navigation_bar/components/icons/coin_control_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/coin_control_nav_icon.dart index 94c5bae23..fde47bcfa 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/coin_control_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/coin_control_nav_icon.dart @@ -14,7 +14,7 @@ import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; class CoinControlNavIcon extends StatelessWidget { - const CoinControlNavIcon({Key? key}) : super(key: key); + const CoinControlNavIcon({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart index 25e4c0122..f17aabbda 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart @@ -16,7 +16,7 @@ import 'package:flutter_svg/flutter_svg.dart'; import '../../../../themes/theme_providers.dart'; class ExchangeNavIcon extends ConsumerWidget { - const ExchangeNavIcon({Key? key}) : super(key: key); + const ExchangeNavIcon({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { diff --git a/lib/widgets/wallet_navigation_bar/components/icons/fusion_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/fusion_nav_icon.dart index 07b0b16bc..7d46653da 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/fusion_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/fusion_nav_icon.dart @@ -14,7 +14,7 @@ import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; class FusionNavIcon extends StatelessWidget { - const FusionNavIcon({Key? key}) : super(key: key); + const FusionNavIcon({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/widgets/wallet_navigation_bar/components/icons/ordinals_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/ordinals_nav_icon.dart index 98bfecb4f..e347b372a 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/ordinals_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/ordinals_nav_icon.dart @@ -14,7 +14,7 @@ import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; class OrdinalsNavIcon extends StatelessWidget { - const OrdinalsNavIcon({Key? key}) : super(key: key); + const OrdinalsNavIcon({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/widgets/wallet_navigation_bar/components/icons/paynym_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/paynym_nav_icon.dart index 9f11d4136..5236bfec8 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/paynym_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/paynym_nav_icon.dart @@ -14,7 +14,7 @@ import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; class PaynymNavIcon extends StatelessWidget { - const PaynymNavIcon({Key? key}) : super(key: key); + const PaynymNavIcon({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/widgets/wallet_navigation_bar/components/icons/receive_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/receive_nav_icon.dart index 96be35a96..bfd10f900 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/receive_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/receive_nav_icon.dart @@ -14,7 +14,7 @@ import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; class ReceiveNavIcon extends StatelessWidget { - const ReceiveNavIcon({Key? key}) : super(key: key); + const ReceiveNavIcon({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/widgets/wallet_navigation_bar/components/icons/send_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/send_nav_icon.dart index 3d388f3a2..64d0f861f 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/send_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/send_nav_icon.dart @@ -14,7 +14,7 @@ import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; class SendNavIcon extends StatelessWidget { - const SendNavIcon({Key? key}) : super(key: key); + const SendNavIcon({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/widgets/wallet_navigation_bar/components/icons/whirlpool_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/whirlpool_nav_icon.dart index 02c9aaf80..579ea148d 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/whirlpool_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/whirlpool_nav_icon.dart @@ -14,7 +14,7 @@ import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; class WhirlpoolNavIcon extends StatelessWidget { - const WhirlpoolNavIcon({Key? key}) : super(key: key); + const WhirlpoolNavIcon({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart b/lib/widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart index 6cf3c2601..3f5bddc08 100644 --- a/lib/widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart +++ b/lib/widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart @@ -33,10 +33,10 @@ class WalletNavigationBarItemData { class WalletNavigationBarItem extends ConsumerWidget { const WalletNavigationBarItem({ - Key? key, + super.key, required this.data, required this.disableDuration, - }) : super(key: key); + }); final WalletNavigationBarItemData data; final Duration disableDuration; @@ -95,9 +95,9 @@ class WalletNavigationBarItem extends ConsumerWidget { class WalletNavigationBarMoreItem extends ConsumerWidget { const WalletNavigationBarMoreItem({ - Key? key, + super.key, required this.data, - }) : super(key: key); + }); final WalletNavigationBarItemData data; diff --git a/lib/widgets/wallet_navigation_bar/wallet_navigation_bar.dart b/lib/widgets/wallet_navigation_bar/wallet_navigation_bar.dart index b272048c3..8c93a1c74 100644 --- a/lib/widgets/wallet_navigation_bar/wallet_navigation_bar.dart +++ b/lib/widgets/wallet_navigation_bar/wallet_navigation_bar.dart @@ -21,10 +21,10 @@ final walletNavBarMore = StateProvider.autoDispose((ref) => false); class WalletNavigationBar extends ConsumerStatefulWidget { const WalletNavigationBar({ - Key? key, + super.key, required this.items, required this.moreItems, - }) : super(key: key); + }); final List items; final List moreItems; @@ -131,7 +131,7 @@ class _WalletNavigationBarState extends ConsumerState { boxShadow: [ Theme.of(context) .extension()! - .standardBoxShadow + .standardBoxShadow, ], borderRadius: BorderRadius.circular( 1000, diff --git a/test/address_utils_test.dart b/test/address_utils_test.dart index 42ab1a45b..560962256 100644 --- a/test/address_utils_test.dart +++ b/test/address_utils_test.dart @@ -1,6 +1,5 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:stackwallet/utilities/address_utils.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; void main() { diff --git a/test/cached_electrumx_test.dart b/test/cached_electrumx_test.dart index 5f0ae68f1..26213175f 100644 --- a/test/cached_electrumx_test.dart +++ b/test/cached_electrumx_test.dart @@ -5,7 +5,6 @@ import 'package:mockito/mockito.dart'; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart'; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart'; import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'cached_electrumx_test.mocks.dart'; diff --git a/test/cached_electrumx_test.mocks.dart b/test/cached_electrumx_test.mocks.dart index b00b89db4..5ae1523da 100644 --- a/test/cached_electrumx_test.mocks.dart +++ b/test/cached_electrumx_test.mocks.dart @@ -1,18 +1,19 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/cached_electrumx_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i6; -import 'dart:ui' as _i11; +import 'dart:async' as _i7; +import 'dart:ui' as _i12; import 'package:decimal/decimal.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i6; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i5; -import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i10; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i9; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i8; -import 'package:stackwallet/utilities/prefs.dart' as _i7; +import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i11; +import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i10; +import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i9; +import 'package:stackwallet/utilities/prefs.dart' as _i8; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' as _i2; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart' @@ -22,6 +23,8 @@ import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_i // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -119,7 +122,10 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { @override String get host => (super.noSuchMethod( Invocation.getter(#host), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.getter(#host), + ), ) as String); @override int get port => (super.noSuchMethod( @@ -132,16 +138,16 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { returnValue: false, ) as bool); @override - _i6.Future closeAdapter() => (super.noSuchMethod( + _i7.Future closeAdapter() => (super.noSuchMethod( Invocation.method( #closeAdapter, [], ), - returnValue: _i6.Future.value(), - returnValueForMissingStub: _i6.Future.value(), - ) as _i6.Future); + returnValue: _i7.Future.value(), + returnValueForMissingStub: _i7.Future.value(), + ) as _i7.Future); @override - _i6.Future request({ + _i7.Future request({ required String? command, List? args = const [], String? requestID, @@ -160,10 +166,10 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { #requestTimeout: requestTimeout, }, ), - returnValue: _i6.Future.value(), - ) as _i6.Future); + returnValue: _i7.Future.value(), + ) as _i7.Future); @override - _i6.Future> batchRequest({ + _i7.Future> batchRequest({ required String? command, required List? args, Duration? requestTimeout = const Duration(seconds: 60), @@ -180,10 +186,10 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { #retries: retries, }, ), - returnValue: _i6.Future>.value([]), - ) as _i6.Future>); + returnValue: _i7.Future>.value([]), + ) as _i7.Future>); @override - _i6.Future ping({ + _i7.Future ping({ String? requestID, int? retryCount = 1, }) => @@ -196,10 +202,10 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { #retryCount: retryCount, }, ), - returnValue: _i6.Future.value(false), - ) as _i6.Future); + returnValue: _i7.Future.value(false), + ) as _i7.Future); @override - _i6.Future> getBlockHeadTip({String? requestID}) => + _i7.Future> getBlockHeadTip({String? requestID}) => (super.noSuchMethod( Invocation.method( #getBlockHeadTip, @@ -207,10 +213,10 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i6.Future>.value({}), - ) as _i6.Future>); + _i7.Future>.value({}), + ) as _i7.Future>); @override - _i6.Future> getServerFeatures({String? requestID}) => + _i7.Future> getServerFeatures({String? requestID}) => (super.noSuchMethod( Invocation.method( #getServerFeatures, @@ -218,10 +224,10 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i6.Future>.value({}), - ) as _i6.Future>); + _i7.Future>.value({}), + ) as _i7.Future>); @override - _i6.Future broadcastTransaction({ + _i7.Future broadcastTransaction({ required String? rawTx, String? requestID, }) => @@ -234,10 +240,20 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i6.Future.value(''), - ) as _i6.Future); + returnValue: _i7.Future.value(_i6.dummyValue( + this, + Invocation.method( + #broadcastTransaction, + [], + { + #rawTx: rawTx, + #requestID: requestID, + }, + ), + )), + ) as _i7.Future); @override - _i6.Future> getBalance({ + _i7.Future> getBalance({ required String? scripthash, String? requestID, }) => @@ -251,10 +267,10 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { }, ), returnValue: - _i6.Future>.value({}), - ) as _i6.Future>); + _i7.Future>.value({}), + ) as _i7.Future>); @override - _i6.Future>> getHistory({ + _i7.Future>> getHistory({ required String? scripthash, String? requestID, }) => @@ -267,11 +283,11 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i6.Future>>.value( + returnValue: _i7.Future>>.value( >[]), - ) as _i6.Future>>); + ) as _i7.Future>>); @override - _i6.Future>>> getBatchHistory( + _i7.Future>>> getBatchHistory( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -279,11 +295,11 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { [], {#args: args}, ), - returnValue: _i6.Future>>>.value( + returnValue: _i7.Future>>>.value( >>[]), - ) as _i6.Future>>>); + ) as _i7.Future>>>); @override - _i6.Future>> getUTXOs({ + _i7.Future>> getUTXOs({ required String? scripthash, String? requestID, }) => @@ -296,11 +312,11 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i6.Future>>.value( + returnValue: _i7.Future>>.value( >[]), - ) as _i6.Future>>); + ) as _i7.Future>>); @override - _i6.Future>>> getBatchUTXOs( + _i7.Future>>> getBatchUTXOs( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -308,11 +324,11 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { [], {#args: args}, ), - returnValue: _i6.Future>>>.value( + returnValue: _i7.Future>>>.value( >>[]), - ) as _i6.Future>>>); + ) as _i7.Future>>>); @override - _i6.Future> getTransaction({ + _i7.Future> getTransaction({ required String? txHash, bool? verbose = true, String? requestID, @@ -328,10 +344,10 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { }, ), returnValue: - _i6.Future>.value({}), - ) as _i6.Future>); + _i7.Future>.value({}), + ) as _i7.Future>); @override - _i6.Future> getLelantusAnonymitySet({ + _i7.Future> getLelantusAnonymitySet({ String? groupId = r'1', String? blockhash = r'', String? requestID, @@ -347,10 +363,10 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { }, ), returnValue: - _i6.Future>.value({}), - ) as _i6.Future>); + _i7.Future>.value({}), + ) as _i7.Future>); @override - _i6.Future getLelantusMintData({ + _i7.Future getLelantusMintData({ dynamic mints, String? requestID, }) => @@ -363,10 +379,10 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i6.Future.value(), - ) as _i6.Future); + returnValue: _i7.Future.value(), + ) as _i7.Future); @override - _i6.Future> getLelantusUsedCoinSerials({ + _i7.Future> getLelantusUsedCoinSerials({ String? requestID, required int? startNumber, }) => @@ -380,20 +396,20 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { }, ), returnValue: - _i6.Future>.value({}), - ) as _i6.Future>); + _i7.Future>.value({}), + ) as _i7.Future>); @override - _i6.Future getLelantusLatestCoinId({String? requestID}) => + _i7.Future getLelantusLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getLelantusLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i6.Future.value(0), - ) as _i6.Future); + returnValue: _i7.Future.value(0), + ) as _i7.Future); @override - _i6.Future> getSparkAnonymitySet({ + _i7.Future> getSparkAnonymitySet({ String? coinGroupId = r'1', String? startBlockHash = r'', String? requestID, @@ -409,10 +425,10 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { }, ), returnValue: - _i6.Future>.value({}), - ) as _i6.Future>); + _i7.Future>.value({}), + ) as _i7.Future>); @override - _i6.Future> getSparkUsedCoinsTags({ + _i7.Future> getSparkUsedCoinsTags({ String? requestID, required int? startNumber, }) => @@ -425,10 +441,10 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { #startNumber: startNumber, }, ), - returnValue: _i6.Future>.value({}), - ) as _i6.Future>); + returnValue: _i7.Future>.value({}), + ) as _i7.Future>); @override - _i6.Future>> getSparkMintMetaData({ + _i7.Future>> getSparkMintMetaData({ String? requestID, required List? sparkCoinHashes, }) => @@ -441,21 +457,21 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { #sparkCoinHashes: sparkCoinHashes, }, ), - returnValue: _i6.Future>>.value( + returnValue: _i7.Future>>.value( >[]), - ) as _i6.Future>>); + ) as _i7.Future>>); @override - _i6.Future getSparkLatestCoinId({String? requestID}) => + _i7.Future getSparkLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getSparkLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i6.Future.value(0), - ) as _i6.Future); + returnValue: _i7.Future.value(0), + ) as _i7.Future); @override - _i6.Future> getFeeRate({String? requestID}) => + _i7.Future> getFeeRate({String? requestID}) => (super.noSuchMethod( Invocation.method( #getFeeRate, @@ -463,10 +479,10 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i6.Future>.value({}), - ) as _i6.Future>); + _i7.Future>.value({}), + ) as _i7.Future>); @override - _i6.Future<_i3.Decimal> estimateFee({ + _i7.Future<_i3.Decimal> estimateFee({ String? requestID, required int? blocks, }) => @@ -479,7 +495,7 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { #blocks: blocks, }, ), - returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( + returnValue: _i7.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #estimateFee, @@ -490,15 +506,15 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { }, ), )), - ) as _i6.Future<_i3.Decimal>); + ) as _i7.Future<_i3.Decimal>); @override - _i6.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( + _i7.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( Invocation.method( #relayFee, [], {#requestID: requestID}, ), - returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( + returnValue: _i7.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #relayFee, @@ -506,13 +522,13 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { {#requestID: requestID}, ), )), - ) as _i6.Future<_i3.Decimal>); + ) as _i7.Future<_i3.Decimal>); } /// A class which mocks [Prefs]. /// /// See the documentation for Mockito's code generation for more information. -class MockPrefs extends _i1.Mock implements _i7.Prefs { +class MockPrefs extends _i1.Mock implements _i8.Prefs { MockPrefs() { _i1.throwOnMissingStub(this); } @@ -568,12 +584,12 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { returnValueForMissingStub: null, ); @override - _i8.SyncingType get syncType => (super.noSuchMethod( + _i9.SyncingType get syncType => (super.noSuchMethod( Invocation.getter(#syncType), - returnValue: _i8.SyncingType.currentWalletOnly, - ) as _i8.SyncingType); + returnValue: _i9.SyncingType.currentWalletOnly, + ) as _i9.SyncingType); @override - set syncType(_i8.SyncingType? syncType) => super.noSuchMethod( + set syncType(_i9.SyncingType? syncType) => super.noSuchMethod( Invocation.setter( #syncType, syncType, @@ -609,7 +625,10 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { @override String get language => (super.noSuchMethod( Invocation.getter(#language), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.getter(#language), + ), ) as String); @override set language(String? newLanguage) => super.noSuchMethod( @@ -622,7 +641,10 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { @override String get currency => (super.noSuchMethod( Invocation.getter(#currency), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.getter(#currency), + ), ) as String); @override set currency(String? newCurrency) => super.noSuchMethod( @@ -732,12 +754,12 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { returnValueForMissingStub: null, ); @override - _i9.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( + _i10.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( Invocation.getter(#backupFrequencyType), - returnValue: _i9.BackupFrequencyType.everyTenMinutes, - ) as _i9.BackupFrequencyType); + returnValue: _i10.BackupFrequencyType.everyTenMinutes, + ) as _i10.BackupFrequencyType); @override - set backupFrequencyType(_i9.BackupFrequencyType? backupFrequencyType) => + set backupFrequencyType(_i10.BackupFrequencyType? backupFrequencyType) => super.noSuchMethod( Invocation.setter( #backupFrequencyType, @@ -831,7 +853,10 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { @override String get themeId => (super.noSuchMethod( Invocation.getter(#themeId), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.getter(#themeId), + ), ) as String); @override set themeId(String? themeId) => super.noSuchMethod( @@ -844,7 +869,10 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { @override String get systemBrightnessLightThemeId => (super.noSuchMethod( Invocation.getter(#systemBrightnessLightThemeId), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.getter(#systemBrightnessLightThemeId), + ), ) as String); @override set systemBrightnessLightThemeId(String? systemBrightnessLightThemeId) => @@ -858,7 +886,10 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { @override String get systemBrightnessDarkThemeId => (super.noSuchMethod( Invocation.getter(#systemBrightnessDarkThemeId), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.getter(#systemBrightnessDarkThemeId), + ), ) as String); @override set systemBrightnessDarkThemeId(String? systemBrightnessDarkThemeId) => @@ -888,61 +919,61 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { returnValue: false, ) as bool); @override - _i6.Future init() => (super.noSuchMethod( + _i7.Future init() => (super.noSuchMethod( Invocation.method( #init, [], ), - returnValue: _i6.Future.value(), - returnValueForMissingStub: _i6.Future.value(), - ) as _i6.Future); + returnValue: _i7.Future.value(), + returnValueForMissingStub: _i7.Future.value(), + ) as _i7.Future); @override - _i6.Future incrementCurrentNotificationIndex() => (super.noSuchMethod( + _i7.Future incrementCurrentNotificationIndex() => (super.noSuchMethod( Invocation.method( #incrementCurrentNotificationIndex, [], ), - returnValue: _i6.Future.value(), - returnValueForMissingStub: _i6.Future.value(), - ) as _i6.Future); + returnValue: _i7.Future.value(), + returnValueForMissingStub: _i7.Future.value(), + ) as _i7.Future); @override - _i6.Future isExternalCallsSet() => (super.noSuchMethod( + _i7.Future isExternalCallsSet() => (super.noSuchMethod( Invocation.method( #isExternalCallsSet, [], ), - returnValue: _i6.Future.value(false), - ) as _i6.Future); + returnValue: _i7.Future.value(false), + ) as _i7.Future); @override - _i6.Future saveUserID(String? userId) => (super.noSuchMethod( + _i7.Future saveUserID(String? userId) => (super.noSuchMethod( Invocation.method( #saveUserID, [userId], ), - returnValue: _i6.Future.value(), - returnValueForMissingStub: _i6.Future.value(), - ) as _i6.Future); + returnValue: _i7.Future.value(), + returnValueForMissingStub: _i7.Future.value(), + ) as _i7.Future); @override - _i6.Future saveSignupEpoch(int? signupEpoch) => (super.noSuchMethod( + _i7.Future saveSignupEpoch(int? signupEpoch) => (super.noSuchMethod( Invocation.method( #saveSignupEpoch, [signupEpoch], ), - returnValue: _i6.Future.value(), - returnValueForMissingStub: _i6.Future.value(), - ) as _i6.Future); + returnValue: _i7.Future.value(), + returnValueForMissingStub: _i7.Future.value(), + ) as _i7.Future); @override - _i10.AmountUnit amountUnit(_i2.CryptoCurrency? coin) => (super.noSuchMethod( + _i11.AmountUnit amountUnit(_i2.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #amountUnit, [coin], ), - returnValue: _i10.AmountUnit.normal, - ) as _i10.AmountUnit); + returnValue: _i11.AmountUnit.normal, + ) as _i11.AmountUnit); @override void updateAmountUnit({ required _i2.CryptoCurrency? coin, - required _i10.AmountUnit? amountUnit, + required _i11.AmountUnit? amountUnit, }) => super.noSuchMethod( Invocation.method( @@ -1010,7 +1041,7 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { returnValueForMissingStub: null, ); @override - void addListener(_i11.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i12.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -1018,7 +1049,7 @@ class MockPrefs extends _i1.Mock implements _i7.Prefs { returnValueForMissingStub: null, ); @override - void removeListener(_i11.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i12.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/flutter_secure_storage_interface_test.mocks.dart b/test/flutter_secure_storage_interface_test.mocks.dart index e1541d3a2..8779d5147 100644 --- a/test/flutter_secure_storage_interface_test.mocks.dart +++ b/test/flutter_secure_storage_interface_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/flutter_secure_storage_interface_test.dart. // Do not manually edit this file. @@ -12,6 +12,8 @@ import 'package:mockito/mockito.dart' as _i1; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors diff --git a/test/global_events_test.dart b/test/global_events_test.dart index c7d68bdcc..fc65d41f9 100644 --- a/test/global_events_test.dart +++ b/test/global_events_test.dart @@ -4,7 +4,6 @@ import 'package:stackwallet/services/event_bus/events/global/refresh_percent_cha import 'package:stackwallet/services/event_bus/events/global/updated_in_background_event.dart'; import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; import 'package:stackwallet/services/event_bus/global_event_bus.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; void main() { diff --git a/test/models/type_adapter_tests/lelantus_coin_adapter_test.dart b/test/models/type_adapter_tests/lelantus_coin_adapter_test.dart index 44c2a1a70..cae7ca876 100644 --- a/test/models/type_adapter_tests/lelantus_coin_adapter_test.dart +++ b/test/models/type_adapter_tests/lelantus_coin_adapter_test.dart @@ -10,11 +10,11 @@ import 'lelantus_coin_adapter_test.mocks.dart'; @GenerateMocks([BinaryReader, BinaryWriter]) void main() { test("read", () { - LelantusCoinAdapter adapter = LelantusCoinAdapter(); + final LelantusCoinAdapter adapter = LelantusCoinAdapter(); final reader = MockBinaryReader(); - List readByteResponses = [6, 0, 1, 2, 3, 4, 5]; - List readResponses = [ + final List readByteResponses = [6, 0, 1, 2, 3, 4, 5]; + final List readResponses = [ 1, 1000, "kjhxzcfg8u7ty23w8gbdsf87cfgsdf3", @@ -35,8 +35,8 @@ void main() { }); test("write", () { - LelantusCoinAdapter adapter = LelantusCoinAdapter(); - LelantusCoin obj = + final LelantusCoinAdapter adapter = LelantusCoinAdapter(); + final LelantusCoin obj = LelantusCoin(1, 100, "some public coin", "some txid", 1, true); final writer = MockBinaryWriter(); diff --git a/test/models/type_adapter_tests/lelantus_coin_adapter_test.mocks.dart b/test/models/type_adapter_tests/lelantus_coin_adapter_test.mocks.dart index 0ca7abc8d..13aeb65c7 100644 --- a/test/models/type_adapter_tests/lelantus_coin_adapter_test.mocks.dart +++ b/test/models/type_adapter_tests/lelantus_coin_adapter_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/models/type_adapter_tests/lelantus_coin_adapter_test.dart. // Do not manually edit this file. @@ -9,11 +9,14 @@ import 'dart:typed_data' as _i4; import 'package:hive/hive.dart' as _i3; import 'package:hive/src/object/hive_object.dart' as _i1; import 'package:mockito/mockito.dart' as _i2; +import 'package:mockito/src/dummies.dart' as _i6; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -143,7 +146,16 @@ class MockBinaryReader extends _i2.Mock implements _i3.BinaryReader { decoder, ], ), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.method( + #readString, + [ + byteCount, + decoder, + ], + ), + ), ) as String); @override _i4.Uint8List readByteList([int? length]) => (super.noSuchMethod( diff --git a/test/models/type_adapter_tests/transactions_model_adapter_test.dart b/test/models/type_adapter_tests/transactions_model_adapter_test.dart index a7c9d0441..265cdc159 100644 --- a/test/models/type_adapter_tests/transactions_model_adapter_test.dart +++ b/test/models/type_adapter_tests/transactions_model_adapter_test.dart @@ -14,7 +14,7 @@ void main() { final adapter = TransactionDataAdapter(); final reader = MockBinaryReader(); - List readeByteResponses = [1, 0]; + final List readeByteResponses = [1, 0]; when(reader.readByte()).thenAnswer((_) => readeByteResponses.removeAt(0)); @@ -100,11 +100,11 @@ void main() { final adapter = TransactionChunkAdapter(); final reader = MockBinaryReader(); - List readByteResponses = [2, 0, 1]; + final List readByteResponses = [2, 0, 1]; when(reader.readByte()).thenAnswer((_) => readByteResponses.removeAt(0)); - List readResponses = [ + final List readResponses = [ 3426523234, [], ]; @@ -195,14 +195,14 @@ void main() { final adapter = TransactionAdapter(); final reader = MockBinaryReader(); - List readByteResponses = [20]; + final List readByteResponses = [20]; for (int i = 0; i < 20; i++) { readByteResponses.add(i); } when(reader.readByte()).thenAnswer((_) => readByteResponses.removeAt(0)); - List readResponses = [ + final List readResponses = [ "some txid", true, 872346534, @@ -425,14 +425,14 @@ void main() { final adapter = InputAdapter(); final reader = MockBinaryReader(); - List readByteResponses = [9]; + final List readByteResponses = [9]; for (int i = 0; i < 9; i++) { readByteResponses.add(i); } when(reader.readByte()).thenAnswer((_) => readByteResponses.removeAt(0)); - List readResponses = [ + final List readResponses = [ "some txid", 1, Output(scriptpubkeyAddress: "adr", value: 1), @@ -565,14 +565,14 @@ void main() { final adapter = OutputAdapter(); final reader = MockBinaryReader(); - List readByteResponses = [5]; + final List readByteResponses = [5]; for (int i = 0; i < 5; i++) { readByteResponses.add(i); } when(reader.readByte()).thenAnswer((_) => readByteResponses.removeAt(0)); - List readResponses = [ + final List readResponses = [ "some scriptpubkey", "some scriptpubkey asm", "some scriptpubkey type", diff --git a/test/models/type_adapter_tests/transactions_model_adapter_test.mocks.dart b/test/models/type_adapter_tests/transactions_model_adapter_test.mocks.dart index 3d5db62f2..53dd08255 100644 --- a/test/models/type_adapter_tests/transactions_model_adapter_test.mocks.dart +++ b/test/models/type_adapter_tests/transactions_model_adapter_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/models/type_adapter_tests/transactions_model_adapter_test.dart. // Do not manually edit this file. @@ -9,11 +9,14 @@ import 'dart:typed_data' as _i4; import 'package:hive/hive.dart' as _i3; import 'package:hive/src/object/hive_object.dart' as _i1; import 'package:mockito/mockito.dart' as _i2; +import 'package:mockito/src/dummies.dart' as _i6; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -143,7 +146,16 @@ class MockBinaryReader extends _i2.Mock implements _i3.BinaryReader { decoder, ], ), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.method( + #readString, + [ + byteCount, + decoder, + ], + ), + ), ) as String); @override _i4.Uint8List readByteList([int? length]) => (super.noSuchMethod( diff --git a/test/models/type_adapter_tests/utxo_model_adapter_test.dart b/test/models/type_adapter_tests/utxo_model_adapter_test.dart index 9dfd5b0ba..5849c61bd 100644 --- a/test/models/type_adapter_tests/utxo_model_adapter_test.dart +++ b/test/models/type_adapter_tests/utxo_model_adapter_test.dart @@ -14,12 +14,12 @@ void main() { final adapter = UtxoDataAdapter(); final reader = MockBinaryReader(); - List readByteResponses = [5]; + final List readByteResponses = [5]; for (int i = 0; i < 5; i++) { readByteResponses.add(i); } - List readResponses = [ + final List readResponses = [ "100", 100000000, "10", @@ -135,12 +135,12 @@ void main() { final adapter = UtxoObjectAdapter(); final reader = MockBinaryReader(); - List readByteResponses = [8]; + final List readByteResponses = [8]; for (int i = 0; i < 8; i++) { readByteResponses.add(i); } - List readResponses = [ + final List readResponses = [ "100", 1, Status( @@ -286,12 +286,12 @@ void main() { final adapter = StatusAdapter(); final reader = MockBinaryReader(); - List readByteResponses = [5]; + final List readByteResponses = [5]; for (int i = 0; i < 5; i++) { readByteResponses.add(i); } - List readResponses = [ + final List readResponses = [ true, "some blockhash", 4587364, diff --git a/test/models/type_adapter_tests/utxo_model_adapter_test.mocks.dart b/test/models/type_adapter_tests/utxo_model_adapter_test.mocks.dart index f326e8cbc..f2750cf2a 100644 --- a/test/models/type_adapter_tests/utxo_model_adapter_test.mocks.dart +++ b/test/models/type_adapter_tests/utxo_model_adapter_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/models/type_adapter_tests/utxo_model_adapter_test.dart. // Do not manually edit this file. @@ -9,11 +9,14 @@ import 'dart:typed_data' as _i4; import 'package:hive/hive.dart' as _i3; import 'package:hive/src/object/hive_object.dart' as _i1; import 'package:mockito/mockito.dart' as _i2; +import 'package:mockito/src/dummies.dart' as _i6; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -143,7 +146,16 @@ class MockBinaryReader extends _i2.Mock implements _i3.BinaryReader { decoder, ], ), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.method( + #readString, + [ + byteCount, + decoder, + ], + ), + ), ) as String); @override _i4.Uint8List readByteList([int? length]) => (super.noSuchMethod( diff --git a/test/notifications/notification_card_test.mocks.dart b/test/notifications/notification_card_test.mocks.dart index e325b3056..52f5ee6db 100644 --- a/test/notifications/notification_card_test.mocks.dart +++ b/test/notifications/notification_card_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/notifications/notification_card_test.dart. // Do not manually edit this file. @@ -16,6 +16,8 @@ import 'package:stackwallet/themes/theme_service.dart' as _i4; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors diff --git a/test/pages/send_view/send_view_test.mocks.dart b/test/pages/send_view/send_view_test.mocks.dart index bf71bbcf2..6a0bc127f 100644 --- a/test/pages/send_view/send_view_test.mocks.dart +++ b/test/pages/send_view/send_view_test.mocks.dart @@ -1,24 +1,25 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/pages/send_view/send_view_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i10; -import 'dart:typed_data' as _i18; +import 'dart:typed_data' as _i19; import 'dart:ui' as _i14; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i16; import 'package:stackwallet/db/isar/main_db.dart' as _i3; -import 'package:stackwallet/models/isar/stack_theme.dart' as _i17; +import 'package:stackwallet/models/isar/stack_theme.dart' as _i18; import 'package:stackwallet/models/node_model.dart' as _i13; import 'package:stackwallet/networking/http.dart' as _i7; import 'package:stackwallet/services/locale_service.dart' as _i15; import 'package:stackwallet/services/node_service.dart' as _i2; import 'package:stackwallet/services/wallets.dart' as _i9; -import 'package:stackwallet/themes/theme_service.dart' as _i16; -import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i21; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i20; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i19; +import 'package:stackwallet/themes/theme_service.dart' as _i17; +import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i22; +import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i21; +import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i20; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i6; import 'package:stackwallet/utilities/prefs.dart' as _i12; @@ -33,6 +34,8 @@ import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_i // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -439,7 +442,10 @@ class MockLocaleService extends _i1.Mock implements _i15.LocaleService { @override String get locale => (super.noSuchMethod( Invocation.getter(#locale), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#locale), + ), ) as String); @override bool get hasListeners => (super.noSuchMethod( @@ -493,7 +499,7 @@ class MockLocaleService extends _i1.Mock implements _i15.LocaleService { /// A class which mocks [ThemeService]. /// /// See the documentation for Mockito's code generation for more information. -class MockThemeService extends _i1.Mock implements _i16.ThemeService { +class MockThemeService extends _i1.Mock implements _i17.ThemeService { MockThemeService() { _i1.throwOnMissingStub(this); } @@ -523,10 +529,10 @@ class MockThemeService extends _i1.Mock implements _i16.ThemeService { ), ) as _i3.MainDB); @override - List<_i17.StackTheme> get installedThemes => (super.noSuchMethod( + List<_i18.StackTheme> get installedThemes => (super.noSuchMethod( Invocation.getter(#installedThemes), - returnValue: <_i17.StackTheme>[], - ) as List<_i17.StackTheme>); + returnValue: <_i18.StackTheme>[], + ) as List<_i18.StackTheme>); @override void init(_i3.MainDB? db) => super.noSuchMethod( Invocation.method( @@ -536,7 +542,7 @@ class MockThemeService extends _i1.Mock implements _i16.ThemeService { returnValueForMissingStub: null, ); @override - _i10.Future install({required _i18.Uint8List? themeArchiveData}) => + _i10.Future install({required _i19.Uint8List? themeArchiveData}) => (super.noSuchMethod( Invocation.method( #install, @@ -576,33 +582,33 @@ class MockThemeService extends _i1.Mock implements _i16.ThemeService { returnValue: _i10.Future.value(false), ) as _i10.Future); @override - _i10.Future> fetchThemes() => + _i10.Future> fetchThemes() => (super.noSuchMethod( Invocation.method( #fetchThemes, [], ), - returnValue: _i10.Future>.value( - <_i16.StackThemeMetaData>[]), - ) as _i10.Future>); + returnValue: _i10.Future>.value( + <_i17.StackThemeMetaData>[]), + ) as _i10.Future>); @override - _i10.Future<_i18.Uint8List> fetchTheme( - {required _i16.StackThemeMetaData? themeMetaData}) => + _i10.Future<_i19.Uint8List> fetchTheme( + {required _i17.StackThemeMetaData? themeMetaData}) => (super.noSuchMethod( Invocation.method( #fetchTheme, [], {#themeMetaData: themeMetaData}, ), - returnValue: _i10.Future<_i18.Uint8List>.value(_i18.Uint8List(0)), - ) as _i10.Future<_i18.Uint8List>); + returnValue: _i10.Future<_i19.Uint8List>.value(_i19.Uint8List(0)), + ) as _i10.Future<_i19.Uint8List>); @override - _i17.StackTheme? getTheme({required String? themeId}) => + _i18.StackTheme? getTheme({required String? themeId}) => (super.noSuchMethod(Invocation.method( #getTheme, [], {#themeId: themeId}, - )) as _i17.StackTheme?); + )) as _i18.StackTheme?); } /// A class which mocks [Prefs]. @@ -664,12 +670,12 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - _i19.SyncingType get syncType => (super.noSuchMethod( + _i20.SyncingType get syncType => (super.noSuchMethod( Invocation.getter(#syncType), - returnValue: _i19.SyncingType.currentWalletOnly, - ) as _i19.SyncingType); + returnValue: _i20.SyncingType.currentWalletOnly, + ) as _i20.SyncingType); @override - set syncType(_i19.SyncingType? syncType) => super.noSuchMethod( + set syncType(_i20.SyncingType? syncType) => super.noSuchMethod( Invocation.setter( #syncType, syncType, @@ -705,7 +711,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get language => (super.noSuchMethod( Invocation.getter(#language), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#language), + ), ) as String); @override set language(String? newLanguage) => super.noSuchMethod( @@ -718,7 +727,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get currency => (super.noSuchMethod( Invocation.getter(#currency), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#currency), + ), ) as String); @override set currency(String? newCurrency) => super.noSuchMethod( @@ -828,12 +840,12 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - _i20.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( + _i21.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( Invocation.getter(#backupFrequencyType), - returnValue: _i20.BackupFrequencyType.everyTenMinutes, - ) as _i20.BackupFrequencyType); + returnValue: _i21.BackupFrequencyType.everyTenMinutes, + ) as _i21.BackupFrequencyType); @override - set backupFrequencyType(_i20.BackupFrequencyType? backupFrequencyType) => + set backupFrequencyType(_i21.BackupFrequencyType? backupFrequencyType) => super.noSuchMethod( Invocation.setter( #backupFrequencyType, @@ -927,7 +939,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get themeId => (super.noSuchMethod( Invocation.getter(#themeId), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#themeId), + ), ) as String); @override set themeId(String? themeId) => super.noSuchMethod( @@ -940,7 +955,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get systemBrightnessLightThemeId => (super.noSuchMethod( Invocation.getter(#systemBrightnessLightThemeId), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#systemBrightnessLightThemeId), + ), ) as String); @override set systemBrightnessLightThemeId(String? systemBrightnessLightThemeId) => @@ -954,7 +972,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get systemBrightnessDarkThemeId => (super.noSuchMethod( Invocation.getter(#systemBrightnessDarkThemeId), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#systemBrightnessDarkThemeId), + ), ) as String); @override set systemBrightnessDarkThemeId(String? systemBrightnessDarkThemeId) => @@ -1028,17 +1049,17 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - _i21.AmountUnit amountUnit(_i4.CryptoCurrency? coin) => (super.noSuchMethod( + _i22.AmountUnit amountUnit(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #amountUnit, [coin], ), - returnValue: _i21.AmountUnit.normal, - ) as _i21.AmountUnit); + returnValue: _i22.AmountUnit.normal, + ) as _i22.AmountUnit); @override void updateAmountUnit({ required _i4.CryptoCurrency? coin, - required _i21.AmountUnit? amountUnit, + required _i22.AmountUnit? amountUnit, }) => super.noSuchMethod( Invocation.method( diff --git a/test/price_test.mocks.dart b/test/price_test.mocks.dart index 59b90851e..8ba8c6d26 100644 --- a/test/price_test.mocks.dart +++ b/test/price_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/price_test.dart. // Do not manually edit this file. @@ -14,6 +14,8 @@ import 'package:stackwallet/networking/http.dart' as _i2; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors diff --git a/test/sample_data/transaction_data_samples.dart b/test/sample_data/transaction_data_samples.dart index ed248a0ea..42962888b 100644 --- a/test/sample_data/transaction_data_samples.dart +++ b/test/sample_data/transaction_data_samples.dart @@ -2526,9 +2526,9 @@ final jsonTransactions = [ ]; Map get transactionDataMap { - Map result = {}; + final Map result = {}; for (final tx in jsonTransactions) { - String? bob = tx["txid"] as String?; + final String? bob = tx["txid"] as String?; result[bob] = tx; } return result; diff --git a/test/screen_tests/address_book_view/address_book_view_screen_test.dart b/test/screen_tests/address_book_view/address_book_view_screen_test.dart index dffa8f69d..ad7aff7c1 100644 --- a/test/screen_tests/address_book_view/address_book_view_screen_test.dart +++ b/test/screen_tests/address_book_view/address_book_view_screen_test.dart @@ -13,7 +13,7 @@ import 'package:stackwallet/services/address_book_service.dart'; // import 'address_book_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("AddressBookView builds correctly", (tester) async { diff --git a/test/screen_tests/address_book_view/address_book_view_screen_test.mocks.dart b/test/screen_tests/address_book_view/address_book_view_screen_test.mocks.dart index b359426c3..b7a88864d 100644 --- a/test/screen_tests/address_book_view/address_book_view_screen_test.mocks.dart +++ b/test/screen_tests/address_book_view/address_book_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/address_book_view/address_book_view_screen_test.dart. // Do not manually edit this file. @@ -14,6 +14,8 @@ import 'package:stackwallet/services/address_book_service.dart' as _i3; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -36,6 +38,10 @@ class _FakeContactEntry_0 extends _i1.SmartFake implements _i2.ContactEntry { /// See the documentation for Mockito's code generation for more information. class MockAddressBookService extends _i1.Mock implements _i3.AddressBookService { + MockAddressBookService() { + _i1.throwOnMissingStub(this); + } + @override List<_i2.ContactEntry> get contacts => (super.noSuchMethod( Invocation.getter(#contacts), diff --git a/test/screen_tests/address_book_view/subviews/add_address_book_view_screen_test.dart b/test/screen_tests/address_book_view/subviews/add_address_book_view_screen_test.dart index 5967b7f3f..437d941a0 100644 --- a/test/screen_tests/address_book_view/subviews/add_address_book_view_screen_test.dart +++ b/test/screen_tests/address_book_view/subviews/add_address_book_view_screen_test.dart @@ -21,7 +21,7 @@ import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; @GenerateMocks([ BarcodeScannerWrapper ], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("AddAddressBookEntryView builds correctly", (tester) async { diff --git a/test/screen_tests/address_book_view/subviews/add_address_book_view_screen_test.mocks.dart b/test/screen_tests/address_book_view/subviews/add_address_book_view_screen_test.mocks.dart index 4926f74fb..63bbc41c5 100644 --- a/test/screen_tests/address_book_view/subviews/add_address_book_view_screen_test.mocks.dart +++ b/test/screen_tests/address_book_view/subviews/add_address_book_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/address_book_view/subviews/add_address_book_view_screen_test.dart. // Do not manually edit this file. @@ -16,6 +16,8 @@ import 'package:stackwallet/utilities/barcode_scanner_interface.dart' as _i4; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -77,6 +79,10 @@ class MockBarcodeScannerWrapper extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockAddressBookService extends _i1.Mock implements _i6.AddressBookService { + MockAddressBookService() { + _i1.throwOnMissingStub(this); + } + @override List<_i3.ContactEntry> get contacts => (super.noSuchMethod( Invocation.getter(#contacts), diff --git a/test/screen_tests/address_book_view/subviews/address_book_entry_details_view_screen_test.dart b/test/screen_tests/address_book_view/subviews/address_book_entry_details_view_screen_test.dart index 40379c4f4..1d39a09ef 100644 --- a/test/screen_tests/address_book_view/subviews/address_book_entry_details_view_screen_test.dart +++ b/test/screen_tests/address_book_view/subviews/address_book_entry_details_view_screen_test.dart @@ -23,8 +23,8 @@ import 'package:stackwallet/services/locale_service.dart'; // import 'address_book_entry_details_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), - MockSpec(returnNullOnMissingStub: true), + MockSpec(), + MockSpec(), ]) void main() { // testWidgets("AddressBookDetailsView builds correctly", (tester) async { diff --git a/test/screen_tests/address_book_view/subviews/address_book_entry_details_view_screen_test.mocks.dart b/test/screen_tests/address_book_view/subviews/address_book_entry_details_view_screen_test.mocks.dart index b16ab6149..97a359919 100644 --- a/test/screen_tests/address_book_view/subviews/address_book_entry_details_view_screen_test.mocks.dart +++ b/test/screen_tests/address_book_view/subviews/address_book_entry_details_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/address_book_view/subviews/address_book_entry_details_view_screen_test.dart. // Do not manually edit this file. @@ -7,6 +7,7 @@ import 'dart:async' as _i4; import 'dart:ui' as _i5; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i7; import 'package:stackwallet/models/isar/models/contact_entry.dart' as _i2; import 'package:stackwallet/services/address_book_service.dart' as _i3; import 'package:stackwallet/services/locale_service.dart' as _i6; @@ -15,6 +16,8 @@ import 'package:stackwallet/services/locale_service.dart' as _i6; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -37,6 +40,10 @@ class _FakeContactEntry_0 extends _i1.SmartFake implements _i2.ContactEntry { /// See the documentation for Mockito's code generation for more information. class MockAddressBookService extends _i1.Mock implements _i3.AddressBookService { + MockAddressBookService() { + _i1.throwOnMissingStub(this); + } + @override List<_i2.ContactEntry> get contacts => (super.noSuchMethod( Invocation.getter(#contacts), @@ -150,10 +157,17 @@ class MockAddressBookService extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. class MockLocaleService extends _i1.Mock implements _i6.LocaleService { + MockLocaleService() { + _i1.throwOnMissingStub(this); + } + @override String get locale => (super.noSuchMethod( Invocation.getter(#locale), - returnValue: '', + returnValue: _i7.dummyValue( + this, + Invocation.getter(#locale), + ), ) as String); @override bool get hasListeners => (super.noSuchMethod( diff --git a/test/screen_tests/address_book_view/subviews/edit_address_book_entry_view_screen_test.dart b/test/screen_tests/address_book_view/subviews/edit_address_book_entry_view_screen_test.dart index db0e02703..bb93f1a2c 100644 --- a/test/screen_tests/address_book_view/subviews/edit_address_book_entry_view_screen_test.dart +++ b/test/screen_tests/address_book_view/subviews/edit_address_book_entry_view_screen_test.dart @@ -20,7 +20,7 @@ import 'package:stackwallet/services/address_book_service.dart'; // import 'edit_address_book_entry_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("EditAddressBookEntryView builds correctly", (tester) async { diff --git a/test/screen_tests/address_book_view/subviews/edit_address_book_entry_view_screen_test.mocks.dart b/test/screen_tests/address_book_view/subviews/edit_address_book_entry_view_screen_test.mocks.dart index 1f3ee97fa..1f195d5c3 100644 --- a/test/screen_tests/address_book_view/subviews/edit_address_book_entry_view_screen_test.mocks.dart +++ b/test/screen_tests/address_book_view/subviews/edit_address_book_entry_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/address_book_view/subviews/edit_address_book_entry_view_screen_test.dart. // Do not manually edit this file. @@ -14,6 +14,8 @@ import 'package:stackwallet/services/address_book_service.dart' as _i3; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -36,6 +38,10 @@ class _FakeContactEntry_0 extends _i1.SmartFake implements _i2.ContactEntry { /// See the documentation for Mockito's code generation for more information. class MockAddressBookService extends _i1.Mock implements _i3.AddressBookService { + MockAddressBookService() { + _i1.throwOnMissingStub(this); + } + @override List<_i2.ContactEntry> get contacts => (super.noSuchMethod( Invocation.getter(#contacts), diff --git a/test/screen_tests/exchange/exchange_view_test.mocks.dart b/test/screen_tests/exchange/exchange_view_test.mocks.dart index 2691281c4..f00e95494 100644 --- a/test/screen_tests/exchange/exchange_view_test.mocks.dart +++ b/test/screen_tests/exchange/exchange_view_test.mocks.dart @@ -1,41 +1,42 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/exchange/exchange_view_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i8; -import 'dart:ui' as _i11; +import 'dart:async' as _i9; +import 'dart:ui' as _i12; -import 'package:decimal/decimal.dart' as _i17; +import 'package:decimal/decimal.dart' as _i18; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i7; import 'package:stackwallet/models/exchange/change_now/cn_exchange_estimate.dart' - as _i20; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction.dart' - as _i22; -import 'package:stackwallet/models/exchange/change_now/exchange_transaction_status.dart' - as _i23; -import 'package:stackwallet/models/exchange/response_objects/estimate.dart' - as _i19; -import 'package:stackwallet/models/exchange/response_objects/fixed_rate_market.dart' as _i21; +import 'package:stackwallet/models/exchange/change_now/exchange_transaction.dart' + as _i23; +import 'package:stackwallet/models/exchange/change_now/exchange_transaction_status.dart' + as _i24; +import 'package:stackwallet/models/exchange/response_objects/estimate.dart' + as _i20; +import 'package:stackwallet/models/exchange/response_objects/fixed_rate_market.dart' + as _i22; import 'package:stackwallet/models/exchange/response_objects/range.dart' - as _i18; + as _i19; import 'package:stackwallet/models/exchange/response_objects/trade.dart' - as _i13; -import 'package:stackwallet/models/isar/exchange_cache/currency.dart' as _i16; -import 'package:stackwallet/models/isar/exchange_cache/pair.dart' as _i24; + as _i14; +import 'package:stackwallet/models/isar/exchange_cache/currency.dart' as _i17; +import 'package:stackwallet/models/isar/exchange_cache/pair.dart' as _i25; import 'package:stackwallet/networking/http.dart' as _i3; import 'package:stackwallet/services/exchange/change_now/change_now_api.dart' - as _i15; + as _i16; import 'package:stackwallet/services/exchange/exchange_response.dart' as _i4; -import 'package:stackwallet/services/trade_notes_service.dart' as _i14; -import 'package:stackwallet/services/trade_service.dart' as _i12; -import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i9; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i7; +import 'package:stackwallet/services/trade_notes_service.dart' as _i15; +import 'package:stackwallet/services/trade_service.dart' as _i13; +import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i10; +import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i8; import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i6; import 'package:stackwallet/utilities/prefs.dart' as _i5; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' - as _i10; + as _i11; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart' as _i2; @@ -43,6 +44,8 @@ import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_i // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -181,7 +184,10 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { @override String get language => (super.noSuchMethod( Invocation.getter(#language), - returnValue: '', + returnValue: _i7.dummyValue( + this, + Invocation.getter(#language), + ), ) as String); @override set language(String? newLanguage) => super.noSuchMethod( @@ -194,7 +200,10 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { @override String get currency => (super.noSuchMethod( Invocation.getter(#currency), - returnValue: '', + returnValue: _i7.dummyValue( + this, + Invocation.getter(#currency), + ), ) as String); @override set currency(String? newCurrency) => super.noSuchMethod( @@ -304,12 +313,12 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { returnValueForMissingStub: null, ); @override - _i7.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( + _i8.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( Invocation.getter(#backupFrequencyType), - returnValue: _i7.BackupFrequencyType.everyTenMinutes, - ) as _i7.BackupFrequencyType); + returnValue: _i8.BackupFrequencyType.everyTenMinutes, + ) as _i8.BackupFrequencyType); @override - set backupFrequencyType(_i7.BackupFrequencyType? backupFrequencyType) => + set backupFrequencyType(_i8.BackupFrequencyType? backupFrequencyType) => super.noSuchMethod( Invocation.setter( #backupFrequencyType, @@ -403,7 +412,10 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { @override String get themeId => (super.noSuchMethod( Invocation.getter(#themeId), - returnValue: '', + returnValue: _i7.dummyValue( + this, + Invocation.getter(#themeId), + ), ) as String); @override set themeId(String? themeId) => super.noSuchMethod( @@ -416,7 +428,10 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { @override String get systemBrightnessLightThemeId => (super.noSuchMethod( Invocation.getter(#systemBrightnessLightThemeId), - returnValue: '', + returnValue: _i7.dummyValue( + this, + Invocation.getter(#systemBrightnessLightThemeId), + ), ) as String); @override set systemBrightnessLightThemeId(String? systemBrightnessLightThemeId) => @@ -430,7 +445,10 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { @override String get systemBrightnessDarkThemeId => (super.noSuchMethod( Invocation.getter(#systemBrightnessDarkThemeId), - returnValue: '', + returnValue: _i7.dummyValue( + this, + Invocation.getter(#systemBrightnessDarkThemeId), + ), ) as String); @override set systemBrightnessDarkThemeId(String? systemBrightnessDarkThemeId) => @@ -460,61 +478,61 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { returnValue: false, ) as bool); @override - _i8.Future init() => (super.noSuchMethod( + _i9.Future init() => (super.noSuchMethod( Invocation.method( #init, [], ), - returnValue: _i8.Future.value(), - returnValueForMissingStub: _i8.Future.value(), - ) as _i8.Future); + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); @override - _i8.Future incrementCurrentNotificationIndex() => (super.noSuchMethod( + _i9.Future incrementCurrentNotificationIndex() => (super.noSuchMethod( Invocation.method( #incrementCurrentNotificationIndex, [], ), - returnValue: _i8.Future.value(), - returnValueForMissingStub: _i8.Future.value(), - ) as _i8.Future); + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); @override - _i8.Future isExternalCallsSet() => (super.noSuchMethod( + _i9.Future isExternalCallsSet() => (super.noSuchMethod( Invocation.method( #isExternalCallsSet, [], ), - returnValue: _i8.Future.value(false), - ) as _i8.Future); + returnValue: _i9.Future.value(false), + ) as _i9.Future); @override - _i8.Future saveUserID(String? userId) => (super.noSuchMethod( + _i9.Future saveUserID(String? userId) => (super.noSuchMethod( Invocation.method( #saveUserID, [userId], ), - returnValue: _i8.Future.value(), - returnValueForMissingStub: _i8.Future.value(), - ) as _i8.Future); + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); @override - _i8.Future saveSignupEpoch(int? signupEpoch) => (super.noSuchMethod( + _i9.Future saveSignupEpoch(int? signupEpoch) => (super.noSuchMethod( Invocation.method( #saveSignupEpoch, [signupEpoch], ), - returnValue: _i8.Future.value(), - returnValueForMissingStub: _i8.Future.value(), - ) as _i8.Future); + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); @override - _i9.AmountUnit amountUnit(_i10.CryptoCurrency? coin) => (super.noSuchMethod( + _i10.AmountUnit amountUnit(_i11.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #amountUnit, [coin], ), - returnValue: _i9.AmountUnit.normal, - ) as _i9.AmountUnit); + returnValue: _i10.AmountUnit.normal, + ) as _i10.AmountUnit); @override void updateAmountUnit({ - required _i10.CryptoCurrency? coin, - required _i9.AmountUnit? amountUnit, + required _i11.CryptoCurrency? coin, + required _i10.AmountUnit? amountUnit, }) => super.noSuchMethod( Invocation.method( @@ -528,7 +546,7 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { returnValueForMissingStub: null, ); @override - int maxDecimals(_i10.CryptoCurrency? coin) => (super.noSuchMethod( + int maxDecimals(_i11.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #maxDecimals, [coin], @@ -537,7 +555,7 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { ) as int); @override void updateMaxDecimals({ - required _i10.CryptoCurrency? coin, + required _i11.CryptoCurrency? coin, required int? maxDecimals, }) => super.noSuchMethod( @@ -552,7 +570,7 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { returnValueForMissingStub: null, ); @override - _i2.FusionInfo getFusionServerInfo(_i10.CryptoCurrency? coin) => + _i2.FusionInfo getFusionServerInfo(_i11.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #getFusionServerInfo, @@ -568,7 +586,7 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { ) as _i2.FusionInfo); @override void setFusionServerInfo( - _i10.CryptoCurrency? coin, + _i11.CryptoCurrency? coin, _i2.FusionInfo? fusionServerInfo, ) => super.noSuchMethod( @@ -582,7 +600,7 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { returnValueForMissingStub: null, ); @override - void addListener(_i11.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i12.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -590,7 +608,7 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { returnValueForMissingStub: null, ); @override - void removeListener(_i11.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i12.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -618,29 +636,29 @@ class MockPrefs extends _i1.Mock implements _i5.Prefs { /// A class which mocks [TradesService]. /// /// See the documentation for Mockito's code generation for more information. -class MockTradesService extends _i1.Mock implements _i12.TradesService { +class MockTradesService extends _i1.Mock implements _i13.TradesService { MockTradesService() { _i1.throwOnMissingStub(this); } @override - List<_i13.Trade> get trades => (super.noSuchMethod( + List<_i14.Trade> get trades => (super.noSuchMethod( Invocation.getter(#trades), - returnValue: <_i13.Trade>[], - ) as List<_i13.Trade>); + returnValue: <_i14.Trade>[], + ) as List<_i14.Trade>); @override bool get hasListeners => (super.noSuchMethod( Invocation.getter(#hasListeners), returnValue: false, ) as bool); @override - _i13.Trade? get(String? tradeId) => (super.noSuchMethod(Invocation.method( + _i14.Trade? get(String? tradeId) => (super.noSuchMethod(Invocation.method( #get, [tradeId], - )) as _i13.Trade?); + )) as _i14.Trade?); @override - _i8.Future add({ - required _i13.Trade? trade, + _i9.Future add({ + required _i14.Trade? trade, required bool? shouldNotifyListeners, }) => (super.noSuchMethod( @@ -652,12 +670,12 @@ class MockTradesService extends _i1.Mock implements _i12.TradesService { #shouldNotifyListeners: shouldNotifyListeners, }, ), - returnValue: _i8.Future.value(), - returnValueForMissingStub: _i8.Future.value(), - ) as _i8.Future); + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); @override - _i8.Future edit({ - required _i13.Trade? trade, + _i9.Future edit({ + required _i14.Trade? trade, required bool? shouldNotifyListeners, }) => (super.noSuchMethod( @@ -669,12 +687,12 @@ class MockTradesService extends _i1.Mock implements _i12.TradesService { #shouldNotifyListeners: shouldNotifyListeners, }, ), - returnValue: _i8.Future.value(), - returnValueForMissingStub: _i8.Future.value(), - ) as _i8.Future); + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); @override - _i8.Future delete({ - required _i13.Trade? trade, + _i9.Future delete({ + required _i14.Trade? trade, required bool? shouldNotifyListeners, }) => (super.noSuchMethod( @@ -686,11 +704,11 @@ class MockTradesService extends _i1.Mock implements _i12.TradesService { #shouldNotifyListeners: shouldNotifyListeners, }, ), - returnValue: _i8.Future.value(), - returnValueForMissingStub: _i8.Future.value(), - ) as _i8.Future); + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); @override - _i8.Future deleteByUuid({ + _i9.Future deleteByUuid({ required String? uuid, required bool? shouldNotifyListeners, }) => @@ -703,11 +721,11 @@ class MockTradesService extends _i1.Mock implements _i12.TradesService { #shouldNotifyListeners: shouldNotifyListeners, }, ), - returnValue: _i8.Future.value(), - returnValueForMissingStub: _i8.Future.value(), - ) as _i8.Future); + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); @override - void addListener(_i11.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i12.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -715,7 +733,7 @@ class MockTradesService extends _i1.Mock implements _i12.TradesService { returnValueForMissingStub: null, ); @override - void removeListener(_i11.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i12.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -743,7 +761,7 @@ class MockTradesService extends _i1.Mock implements _i12.TradesService { /// A class which mocks [TradeNotesService]. /// /// See the documentation for Mockito's code generation for more information. -class MockTradeNotesService extends _i1.Mock implements _i14.TradeNotesService { +class MockTradeNotesService extends _i1.Mock implements _i15.TradeNotesService { MockTradeNotesService() { _i1.throwOnMissingStub(this); } @@ -765,10 +783,17 @@ class MockTradeNotesService extends _i1.Mock implements _i14.TradeNotesService { [], {#tradeId: tradeId}, ), - returnValue: '', + returnValue: _i7.dummyValue( + this, + Invocation.method( + #getNote, + [], + {#tradeId: tradeId}, + ), + ), ) as String); @override - _i8.Future set({ + _i9.Future set({ required String? tradeId, required String? note, }) => @@ -781,21 +806,21 @@ class MockTradeNotesService extends _i1.Mock implements _i14.TradeNotesService { #note: note, }, ), - returnValue: _i8.Future.value(), - returnValueForMissingStub: _i8.Future.value(), - ) as _i8.Future); + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); @override - _i8.Future delete({required String? tradeId}) => (super.noSuchMethod( + _i9.Future delete({required String? tradeId}) => (super.noSuchMethod( Invocation.method( #delete, [], {#tradeId: tradeId}, ), - returnValue: _i8.Future.value(), - returnValueForMissingStub: _i8.Future.value(), - ) as _i8.Future); + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); @override - void addListener(_i11.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i12.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -803,7 +828,7 @@ class MockTradeNotesService extends _i1.Mock implements _i14.TradeNotesService { returnValueForMissingStub: null, ); @override - void removeListener(_i11.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i12.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -831,7 +856,7 @@ class MockTradeNotesService extends _i1.Mock implements _i14.TradeNotesService { /// A class which mocks [ChangeNowAPI]. /// /// See the documentation for Mockito's code generation for more information. -class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { +class MockChangeNowAPI extends _i1.Mock implements _i16.ChangeNowAPI { MockChangeNowAPI() { _i1.throwOnMissingStub(this); } @@ -845,7 +870,7 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { ), ) as _i3.HTTP); @override - _i8.Future<_i4.ExchangeResponse>> getAvailableCurrencies({ + _i9.Future<_i4.ExchangeResponse>> getAvailableCurrencies({ bool? fixedRate, bool? active, }) => @@ -859,8 +884,8 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { }, ), returnValue: - _i8.Future<_i4.ExchangeResponse>>.value( - _FakeExchangeResponse_2>( + _i9.Future<_i4.ExchangeResponse>>.value( + _FakeExchangeResponse_2>( this, Invocation.method( #getAvailableCurrencies, @@ -871,26 +896,26 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { }, ), )), - ) as _i8.Future<_i4.ExchangeResponse>>); + ) as _i9.Future<_i4.ExchangeResponse>>); @override - _i8.Future<_i4.ExchangeResponse>> getCurrenciesV2() => + _i9.Future<_i4.ExchangeResponse>> getCurrenciesV2() => (super.noSuchMethod( Invocation.method( #getCurrenciesV2, [], ), returnValue: - _i8.Future<_i4.ExchangeResponse>>.value( - _FakeExchangeResponse_2>( + _i9.Future<_i4.ExchangeResponse>>.value( + _FakeExchangeResponse_2>( this, Invocation.method( #getCurrenciesV2, [], ), )), - ) as _i8.Future<_i4.ExchangeResponse>>); + ) as _i9.Future<_i4.ExchangeResponse>>); @override - _i8.Future<_i4.ExchangeResponse>> getPairedCurrencies({ + _i9.Future<_i4.ExchangeResponse>> getPairedCurrencies({ required String? ticker, bool? fixedRate, }) => @@ -904,8 +929,8 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { }, ), returnValue: - _i8.Future<_i4.ExchangeResponse>>.value( - _FakeExchangeResponse_2>( + _i9.Future<_i4.ExchangeResponse>>.value( + _FakeExchangeResponse_2>( this, Invocation.method( #getPairedCurrencies, @@ -916,9 +941,9 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { }, ), )), - ) as _i8.Future<_i4.ExchangeResponse>>); + ) as _i9.Future<_i4.ExchangeResponse>>); @override - _i8.Future<_i4.ExchangeResponse<_i17.Decimal>> getMinimalExchangeAmount({ + _i9.Future<_i4.ExchangeResponse<_i18.Decimal>> getMinimalExchangeAmount({ required String? fromTicker, required String? toTicker, String? apiKey, @@ -933,8 +958,8 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { #apiKey: apiKey, }, ), - returnValue: _i8.Future<_i4.ExchangeResponse<_i17.Decimal>>.value( - _FakeExchangeResponse_2<_i17.Decimal>( + returnValue: _i9.Future<_i4.ExchangeResponse<_i18.Decimal>>.value( + _FakeExchangeResponse_2<_i18.Decimal>( this, Invocation.method( #getMinimalExchangeAmount, @@ -946,9 +971,9 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { }, ), )), - ) as _i8.Future<_i4.ExchangeResponse<_i17.Decimal>>); + ) as _i9.Future<_i4.ExchangeResponse<_i18.Decimal>>); @override - _i8.Future<_i4.ExchangeResponse<_i18.Range>> getRange({ + _i9.Future<_i4.ExchangeResponse<_i19.Range>> getRange({ required String? fromTicker, required String? toTicker, required bool? isFixedRate, @@ -965,8 +990,8 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { #apiKey: apiKey, }, ), - returnValue: _i8.Future<_i4.ExchangeResponse<_i18.Range>>.value( - _FakeExchangeResponse_2<_i18.Range>( + returnValue: _i9.Future<_i4.ExchangeResponse<_i19.Range>>.value( + _FakeExchangeResponse_2<_i19.Range>( this, Invocation.method( #getRange, @@ -979,12 +1004,12 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { }, ), )), - ) as _i8.Future<_i4.ExchangeResponse<_i18.Range>>); + ) as _i9.Future<_i4.ExchangeResponse<_i19.Range>>); @override - _i8.Future<_i4.ExchangeResponse<_i19.Estimate>> getEstimatedExchangeAmount({ + _i9.Future<_i4.ExchangeResponse<_i20.Estimate>> getEstimatedExchangeAmount({ required String? fromTicker, required String? toTicker, - required _i17.Decimal? fromAmount, + required _i18.Decimal? fromAmount, String? apiKey, }) => (super.noSuchMethod( @@ -998,8 +1023,8 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { #apiKey: apiKey, }, ), - returnValue: _i8.Future<_i4.ExchangeResponse<_i19.Estimate>>.value( - _FakeExchangeResponse_2<_i19.Estimate>( + returnValue: _i9.Future<_i4.ExchangeResponse<_i20.Estimate>>.value( + _FakeExchangeResponse_2<_i20.Estimate>( this, Invocation.method( #getEstimatedExchangeAmount, @@ -1012,13 +1037,13 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { }, ), )), - ) as _i8.Future<_i4.ExchangeResponse<_i19.Estimate>>); + ) as _i9.Future<_i4.ExchangeResponse<_i20.Estimate>>); @override - _i8.Future<_i4.ExchangeResponse<_i19.Estimate>> + _i9.Future<_i4.ExchangeResponse<_i20.Estimate>> getEstimatedExchangeAmountFixedRate({ required String? fromTicker, required String? toTicker, - required _i17.Decimal? fromAmount, + required _i18.Decimal? fromAmount, required bool? reversed, bool? useRateId = true, String? apiKey, @@ -1036,8 +1061,8 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { #apiKey: apiKey, }, ), - returnValue: _i8.Future<_i4.ExchangeResponse<_i19.Estimate>>.value( - _FakeExchangeResponse_2<_i19.Estimate>( + returnValue: _i9.Future<_i4.ExchangeResponse<_i20.Estimate>>.value( + _FakeExchangeResponse_2<_i20.Estimate>( this, Invocation.method( #getEstimatedExchangeAmountFixedRate, @@ -1052,17 +1077,17 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { }, ), )), - ) as _i8.Future<_i4.ExchangeResponse<_i19.Estimate>>); + ) as _i9.Future<_i4.ExchangeResponse<_i20.Estimate>>); @override - _i8.Future<_i4.ExchangeResponse<_i20.CNExchangeEstimate>> + _i9.Future<_i4.ExchangeResponse<_i21.CNExchangeEstimate>> getEstimatedExchangeAmountV2({ required String? fromTicker, required String? toTicker, - required _i20.CNEstimateType? fromOrTo, - required _i17.Decimal? amount, + required _i21.CNEstimateType? fromOrTo, + required _i18.Decimal? amount, String? fromNetwork, String? toNetwork, - _i20.CNFlowType? flow = _i20.CNFlowType.standard, + _i21.CNFlowType? flow = _i21.CNFlowType.standard, String? apiKey, }) => (super.noSuchMethod( @@ -1081,8 +1106,8 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { }, ), returnValue: - _i8.Future<_i4.ExchangeResponse<_i20.CNExchangeEstimate>>.value( - _FakeExchangeResponse_2<_i20.CNExchangeEstimate>( + _i9.Future<_i4.ExchangeResponse<_i21.CNExchangeEstimate>>.value( + _FakeExchangeResponse_2<_i21.CNExchangeEstimate>( this, Invocation.method( #getEstimatedExchangeAmountV2, @@ -1099,18 +1124,18 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { }, ), )), - ) as _i8.Future<_i4.ExchangeResponse<_i20.CNExchangeEstimate>>); + ) as _i9.Future<_i4.ExchangeResponse<_i21.CNExchangeEstimate>>); @override - _i8.Future<_i4.ExchangeResponse>> + _i9.Future<_i4.ExchangeResponse>> getAvailableFixedRateMarkets({String? apiKey}) => (super.noSuchMethod( Invocation.method( #getAvailableFixedRateMarkets, [], {#apiKey: apiKey}, ), - returnValue: _i8 - .Future<_i4.ExchangeResponse>>.value( - _FakeExchangeResponse_2>( + returnValue: _i9 + .Future<_i4.ExchangeResponse>>.value( + _FakeExchangeResponse_2>( this, Invocation.method( #getAvailableFixedRateMarkets, @@ -1118,14 +1143,14 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { {#apiKey: apiKey}, ), )), - ) as _i8.Future<_i4.ExchangeResponse>>); + ) as _i9.Future<_i4.ExchangeResponse>>); @override - _i8.Future<_i4.ExchangeResponse<_i22.ExchangeTransaction>> + _i9.Future<_i4.ExchangeResponse<_i23.ExchangeTransaction>> createStandardExchangeTransaction({ required String? fromTicker, required String? toTicker, required String? receivingAddress, - required _i17.Decimal? amount, + required _i18.Decimal? amount, String? extraId = r'', String? userId = r'', String? contactEmail = r'', @@ -1150,9 +1175,9 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { #apiKey: apiKey, }, ), - returnValue: _i8 - .Future<_i4.ExchangeResponse<_i22.ExchangeTransaction>>.value( - _FakeExchangeResponse_2<_i22.ExchangeTransaction>( + returnValue: _i9 + .Future<_i4.ExchangeResponse<_i23.ExchangeTransaction>>.value( + _FakeExchangeResponse_2<_i23.ExchangeTransaction>( this, Invocation.method( #createStandardExchangeTransaction, @@ -1171,14 +1196,14 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { }, ), )), - ) as _i8.Future<_i4.ExchangeResponse<_i22.ExchangeTransaction>>); + ) as _i9.Future<_i4.ExchangeResponse<_i23.ExchangeTransaction>>); @override - _i8.Future<_i4.ExchangeResponse<_i22.ExchangeTransaction>> + _i9.Future<_i4.ExchangeResponse<_i23.ExchangeTransaction>> createFixedRateExchangeTransaction({ required String? fromTicker, required String? toTicker, required String? receivingAddress, - required _i17.Decimal? amount, + required _i18.Decimal? amount, required String? rateId, required bool? reversed, String? extraId = r'', @@ -1207,9 +1232,9 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { #apiKey: apiKey, }, ), - returnValue: _i8 - .Future<_i4.ExchangeResponse<_i22.ExchangeTransaction>>.value( - _FakeExchangeResponse_2<_i22.ExchangeTransaction>( + returnValue: _i9 + .Future<_i4.ExchangeResponse<_i23.ExchangeTransaction>>.value( + _FakeExchangeResponse_2<_i23.ExchangeTransaction>( this, Invocation.method( #createFixedRateExchangeTransaction, @@ -1230,11 +1255,11 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { }, ), )), - ) as _i8.Future<_i4.ExchangeResponse<_i22.ExchangeTransaction>>); + ) as _i9.Future<_i4.ExchangeResponse<_i23.ExchangeTransaction>>); @override - _i8.Future< + _i9.Future< _i4 - .ExchangeResponse<_i23.ExchangeTransactionStatus>> getTransactionStatus({ + .ExchangeResponse<_i24.ExchangeTransactionStatus>> getTransactionStatus({ required String? id, String? apiKey, }) => @@ -1247,9 +1272,9 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { #apiKey: apiKey, }, ), - returnValue: _i8 - .Future<_i4.ExchangeResponse<_i23.ExchangeTransactionStatus>>.value( - _FakeExchangeResponse_2<_i23.ExchangeTransactionStatus>( + returnValue: _i9 + .Future<_i4.ExchangeResponse<_i24.ExchangeTransactionStatus>>.value( + _FakeExchangeResponse_2<_i24.ExchangeTransactionStatus>( this, Invocation.method( #getTransactionStatus, @@ -1260,9 +1285,9 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { }, ), )), - ) as _i8.Future<_i4.ExchangeResponse<_i23.ExchangeTransactionStatus>>); + ) as _i9.Future<_i4.ExchangeResponse<_i24.ExchangeTransactionStatus>>); @override - _i8.Future<_i4.ExchangeResponse>> + _i9.Future<_i4.ExchangeResponse>> getAvailableFloatingRatePairs({bool? includePartners = false}) => (super.noSuchMethod( Invocation.method( @@ -1271,8 +1296,8 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { {#includePartners: includePartners}, ), returnValue: - _i8.Future<_i4.ExchangeResponse>>.value( - _FakeExchangeResponse_2>( + _i9.Future<_i4.ExchangeResponse>>.value( + _FakeExchangeResponse_2>( this, Invocation.method( #getAvailableFloatingRatePairs, @@ -1280,5 +1305,5 @@ class MockChangeNowAPI extends _i1.Mock implements _i15.ChangeNowAPI { {#includePartners: includePartners}, ), )), - ) as _i8.Future<_i4.ExchangeResponse>>); + ) as _i9.Future<_i4.ExchangeResponse>>); } diff --git a/test/screen_tests/lockscreen_view_screen_test.dart b/test/screen_tests/lockscreen_view_screen_test.dart index c52838459..8019ad22d 100644 --- a/test/screen_tests/lockscreen_view_screen_test.dart +++ b/test/screen_tests/lockscreen_view_screen_test.dart @@ -5,10 +5,13 @@ import 'package:mockito/annotations.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/wallets_service.dart'; -@GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), - MockSpec(returnNullOnMissingStub: true), -]) +@GenerateMocks( + [], + customMocks: [ + MockSpec(), + MockSpec(), + ], +) void main() { testWidgets("LockscreenView builds correctly", (tester) async { // final navigator = mockingjay.MockNavigator(); diff --git a/test/screen_tests/lockscreen_view_screen_test.mocks.dart b/test/screen_tests/lockscreen_view_screen_test.mocks.dart index a76f5c498..2a0844351 100644 --- a/test/screen_tests/lockscreen_view_screen_test.mocks.dart +++ b/test/screen_tests/lockscreen_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/lockscreen_view_screen_test.dart. // Do not manually edit this file. @@ -19,6 +19,8 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -41,6 +43,10 @@ class _FakeSecureStorageInterface_0 extends _i1.SmartFake /// /// See the documentation for Mockito's code generation for more information. class MockWalletsService extends _i1.Mock implements _i3.WalletsService { + MockWalletsService() { + _i1.throwOnMissingStub(this); + } + @override _i4.Future> get walletNames => (super.noSuchMethod( @@ -91,6 +97,10 @@ class MockWalletsService extends _i1.Mock implements _i3.WalletsService { /// /// See the documentation for Mockito's code generation for more information. class MockNodeService extends _i1.Mock implements _i6.NodeService { + MockNodeService() { + _i1.throwOnMissingStub(this); + } + @override _i2.SecureStorageInterface get secureStorageInterface => (super.noSuchMethod( Invocation.getter(#secureStorageInterface), diff --git a/test/screen_tests/main_view_tests/main_view_screen_testA_test.dart b/test/screen_tests/main_view_tests/main_view_screen_testA_test.dart index f38c3735d..2ae8ea4dd 100644 --- a/test/screen_tests/main_view_tests/main_view_screen_testA_test.dart +++ b/test/screen_tests/main_view_tests/main_view_screen_testA_test.dart @@ -14,8 +14,8 @@ import 'package:stackwallet/services/wallets_service.dart'; // import 'main_view_screen_testA_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), - MockSpec(returnNullOnMissingStub: true), + MockSpec(), + MockSpec(), ]) void main() { // testWidgets("tap receive", (tester) async { diff --git a/test/screen_tests/main_view_tests/main_view_screen_testA_test.mocks.dart b/test/screen_tests/main_view_tests/main_view_screen_testA_test.mocks.dart index e9b29b616..9860ea5e7 100644 --- a/test/screen_tests/main_view_tests/main_view_screen_testA_test.mocks.dart +++ b/test/screen_tests/main_view_tests/main_view_screen_testA_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/main_view_tests/main_view_screen_testA_test.dart. // Do not manually edit this file. @@ -7,6 +7,7 @@ import 'dart:async' as _i3; import 'dart:ui' as _i4; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i6; import 'package:stackwallet/services/locale_service.dart' as _i5; import 'package:stackwallet/services/wallets_service.dart' as _i2; @@ -14,6 +15,8 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -25,6 +28,10 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; /// /// See the documentation for Mockito's code generation for more information. class MockWalletsService extends _i1.Mock implements _i2.WalletsService { + MockWalletsService() { + _i1.throwOnMissingStub(this); + } + @override _i3.Future> get walletNames => (super.noSuchMethod( @@ -75,10 +82,17 @@ class MockWalletsService extends _i1.Mock implements _i2.WalletsService { /// /// See the documentation for Mockito's code generation for more information. class MockLocaleService extends _i1.Mock implements _i5.LocaleService { + MockLocaleService() { + _i1.throwOnMissingStub(this); + } + @override String get locale => (super.noSuchMethod( Invocation.getter(#locale), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.getter(#locale), + ), ) as String); @override bool get hasListeners => (super.noSuchMethod( diff --git a/test/screen_tests/main_view_tests/main_view_screen_testB_test.dart b/test/screen_tests/main_view_tests/main_view_screen_testB_test.dart index a14410d2d..59f049955 100644 --- a/test/screen_tests/main_view_tests/main_view_screen_testB_test.dart +++ b/test/screen_tests/main_view_tests/main_view_screen_testB_test.dart @@ -16,8 +16,8 @@ import 'package:stackwallet/services/wallets_service.dart'; // import 'main_view_screen_testB_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), - MockSpec(returnNullOnMissingStub: true), + MockSpec(), + MockSpec(), ]) void main() { // testWidgets("tap refresh", (tester) async { diff --git a/test/screen_tests/main_view_tests/main_view_screen_testB_test.mocks.dart b/test/screen_tests/main_view_tests/main_view_screen_testB_test.mocks.dart index 75731831b..2cc8ad83e 100644 --- a/test/screen_tests/main_view_tests/main_view_screen_testB_test.mocks.dart +++ b/test/screen_tests/main_view_tests/main_view_screen_testB_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/main_view_tests/main_view_screen_testB_test.dart. // Do not manually edit this file. @@ -7,6 +7,7 @@ import 'dart:async' as _i3; import 'dart:ui' as _i4; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i6; import 'package:stackwallet/services/locale_service.dart' as _i5; import 'package:stackwallet/services/wallets_service.dart' as _i2; @@ -14,6 +15,8 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -25,6 +28,10 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; /// /// See the documentation for Mockito's code generation for more information. class MockWalletsService extends _i1.Mock implements _i2.WalletsService { + MockWalletsService() { + _i1.throwOnMissingStub(this); + } + @override _i3.Future> get walletNames => (super.noSuchMethod( @@ -75,10 +82,17 @@ class MockWalletsService extends _i1.Mock implements _i2.WalletsService { /// /// See the documentation for Mockito's code generation for more information. class MockLocaleService extends _i1.Mock implements _i5.LocaleService { + MockLocaleService() { + _i1.throwOnMissingStub(this); + } + @override String get locale => (super.noSuchMethod( Invocation.getter(#locale), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.getter(#locale), + ), ) as String); @override bool get hasListeners => (super.noSuchMethod( diff --git a/test/screen_tests/main_view_tests/main_view_screen_testC_test.dart b/test/screen_tests/main_view_tests/main_view_screen_testC_test.dart index 9e10391e8..191974b1c 100644 --- a/test/screen_tests/main_view_tests/main_view_screen_testC_test.dart +++ b/test/screen_tests/main_view_tests/main_view_screen_testC_test.dart @@ -14,8 +14,8 @@ import 'package:stackwallet/services/wallets_service.dart'; // import 'main_view_screen_testC_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), - MockSpec(returnNullOnMissingStub: true), + MockSpec(), + MockSpec(), ]) void main() { // testWidgets("tap send", (tester) async { diff --git a/test/screen_tests/main_view_tests/main_view_screen_testC_test.mocks.dart b/test/screen_tests/main_view_tests/main_view_screen_testC_test.mocks.dart index 01b3907bc..2da39262c 100644 --- a/test/screen_tests/main_view_tests/main_view_screen_testC_test.mocks.dart +++ b/test/screen_tests/main_view_tests/main_view_screen_testC_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/main_view_tests/main_view_screen_testC_test.dart. // Do not manually edit this file. @@ -7,6 +7,7 @@ import 'dart:async' as _i3; import 'dart:ui' as _i4; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i6; import 'package:stackwallet/services/locale_service.dart' as _i5; import 'package:stackwallet/services/wallets_service.dart' as _i2; @@ -14,6 +15,8 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -25,6 +28,10 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; /// /// See the documentation for Mockito's code generation for more information. class MockWalletsService extends _i1.Mock implements _i2.WalletsService { + MockWalletsService() { + _i1.throwOnMissingStub(this); + } + @override _i3.Future> get walletNames => (super.noSuchMethod( @@ -75,10 +82,17 @@ class MockWalletsService extends _i1.Mock implements _i2.WalletsService { /// /// See the documentation for Mockito's code generation for more information. class MockLocaleService extends _i1.Mock implements _i5.LocaleService { + MockLocaleService() { + _i1.throwOnMissingStub(this); + } + @override String get locale => (super.noSuchMethod( Invocation.getter(#locale), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.getter(#locale), + ), ) as String); @override bool get hasListeners => (super.noSuchMethod( diff --git a/test/screen_tests/onboarding/backup_key_warning_view_screen_test.dart b/test/screen_tests/onboarding/backup_key_warning_view_screen_test.dart index ec6e105ba..023d6758a 100644 --- a/test/screen_tests/onboarding/backup_key_warning_view_screen_test.dart +++ b/test/screen_tests/onboarding/backup_key_warning_view_screen_test.dart @@ -12,7 +12,7 @@ import 'package:stackwallet/services/wallets_service.dart'; // import 'backup_key_warning_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("BackupKeyWarningView builds correctly", (tester) async { diff --git a/test/screen_tests/onboarding/backup_key_warning_view_screen_test.mocks.dart b/test/screen_tests/onboarding/backup_key_warning_view_screen_test.mocks.dart index fe6e52860..7544b767c 100644 --- a/test/screen_tests/onboarding/backup_key_warning_view_screen_test.mocks.dart +++ b/test/screen_tests/onboarding/backup_key_warning_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/onboarding/backup_key_warning_view_screen_test.dart. // Do not manually edit this file. @@ -13,6 +13,8 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -24,6 +26,10 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; /// /// See the documentation for Mockito's code generation for more information. class MockWalletsService extends _i1.Mock implements _i2.WalletsService { + MockWalletsService() { + _i1.throwOnMissingStub(this); + } + @override _i3.Future> get walletNames => (super.noSuchMethod( diff --git a/test/screen_tests/onboarding/create_pin_view_screen_test.dart b/test/screen_tests/onboarding/create_pin_view_screen_test.dart index d7b0ce28f..fcd0aa2c5 100644 --- a/test/screen_tests/onboarding/create_pin_view_screen_test.dart +++ b/test/screen_tests/onboarding/create_pin_view_screen_test.dart @@ -18,8 +18,8 @@ import 'package:stackwallet/services/wallets_service.dart'; // import 'create_pin_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), - MockSpec(returnNullOnMissingStub: true), + MockSpec(), + MockSpec(), ]) void main() { // testWidgets("CreatePinView builds correctly", (tester) async { diff --git a/test/screen_tests/onboarding/create_pin_view_screen_test.mocks.dart b/test/screen_tests/onboarding/create_pin_view_screen_test.mocks.dart index 3f7fd0767..5aed33644 100644 --- a/test/screen_tests/onboarding/create_pin_view_screen_test.mocks.dart +++ b/test/screen_tests/onboarding/create_pin_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/onboarding/create_pin_view_screen_test.dart. // Do not manually edit this file. @@ -19,6 +19,8 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -41,6 +43,10 @@ class _FakeSecureStorageInterface_0 extends _i1.SmartFake /// /// See the documentation for Mockito's code generation for more information. class MockWalletsService extends _i1.Mock implements _i3.WalletsService { + MockWalletsService() { + _i1.throwOnMissingStub(this); + } + @override _i4.Future> get walletNames => (super.noSuchMethod( @@ -91,6 +97,10 @@ class MockWalletsService extends _i1.Mock implements _i3.WalletsService { /// /// See the documentation for Mockito's code generation for more information. class MockNodeService extends _i1.Mock implements _i6.NodeService { + MockNodeService() { + _i1.throwOnMissingStub(this); + } + @override _i2.SecureStorageInterface get secureStorageInterface => (super.noSuchMethod( Invocation.getter(#secureStorageInterface), diff --git a/test/screen_tests/onboarding/name_your_wallet_view_screen_test.dart b/test/screen_tests/onboarding/name_your_wallet_view_screen_test.dart index ee75e1260..44dbe8baf 100644 --- a/test/screen_tests/onboarding/name_your_wallet_view_screen_test.dart +++ b/test/screen_tests/onboarding/name_your_wallet_view_screen_test.dart @@ -12,7 +12,7 @@ import 'package:stackwallet/services/wallets_service.dart'; // import 'name_your_wallet_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("NameYourWalletView builds correctly with testnet option", diff --git a/test/screen_tests/onboarding/name_your_wallet_view_screen_test.mocks.dart b/test/screen_tests/onboarding/name_your_wallet_view_screen_test.mocks.dart index 35f9c5505..ea7cadff1 100644 --- a/test/screen_tests/onboarding/name_your_wallet_view_screen_test.mocks.dart +++ b/test/screen_tests/onboarding/name_your_wallet_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/onboarding/name_your_wallet_view_screen_test.dart. // Do not manually edit this file. @@ -13,6 +13,8 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -24,6 +26,10 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; /// /// See the documentation for Mockito's code generation for more information. class MockWalletsService extends _i1.Mock implements _i2.WalletsService { + MockWalletsService() { + _i1.throwOnMissingStub(this); + } + @override _i3.Future> get walletNames => (super.noSuchMethod( diff --git a/test/screen_tests/onboarding/restore_wallet_view_screen_test.dart b/test/screen_tests/onboarding/restore_wallet_view_screen_test.dart index f0f00fb85..a38774977 100644 --- a/test/screen_tests/onboarding/restore_wallet_view_screen_test.dart +++ b/test/screen_tests/onboarding/restore_wallet_view_screen_test.dart @@ -24,8 +24,8 @@ import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; @GenerateMocks([ BarcodeScannerWrapper ], customMocks: [ - MockSpec(returnNullOnMissingStub: true), - MockSpec(returnNullOnMissingStub: true), + MockSpec(), + MockSpec(), ]) void main() { // testWidgets("RestoreWalletView builds correctly", (tester) async { diff --git a/test/screen_tests/onboarding/restore_wallet_view_screen_test.mocks.dart b/test/screen_tests/onboarding/restore_wallet_view_screen_test.mocks.dart index 58c717a5b..7ce8c0b95 100644 --- a/test/screen_tests/onboarding/restore_wallet_view_screen_test.mocks.dart +++ b/test/screen_tests/onboarding/restore_wallet_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/onboarding/restore_wallet_view_screen_test.dart. // Do not manually edit this file. @@ -21,6 +21,8 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -82,6 +84,10 @@ class MockBarcodeScannerWrapper extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. class MockWalletsService extends _i1.Mock implements _i6.WalletsService { + MockWalletsService() { + _i1.throwOnMissingStub(this); + } + @override _i5.Future> get walletNames => (super.noSuchMethod( @@ -132,6 +138,10 @@ class MockWalletsService extends _i1.Mock implements _i6.WalletsService { /// /// See the documentation for Mockito's code generation for more information. class MockNodeService extends _i1.Mock implements _i8.NodeService { + MockNodeService() { + _i1.throwOnMissingStub(this); + } + @override _i3.SecureStorageInterface get secureStorageInterface => (super.noSuchMethod( Invocation.getter(#secureStorageInterface), diff --git a/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/add_custom_node_view_screen_test.dart b/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/add_custom_node_view_screen_test.dart index 5db5f662e..524971fcb 100644 --- a/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/add_custom_node_view_screen_test.dart +++ b/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/add_custom_node_view_screen_test.dart @@ -15,7 +15,7 @@ import 'package:stackwallet/services/node_service.dart'; // import 'add_custom_node_view_screen_test.mocks.dart'; // @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("AddCustomNodeView builds correctly", (tester) async { diff --git a/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/add_custom_node_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/add_custom_node_view_screen_test.mocks.dart index ab3c043d3..6216d4e86 100644 --- a/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/add_custom_node_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/add_custom_node_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/add_custom_node_view_screen_test.dart. // Do not manually edit this file. @@ -18,6 +18,8 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -40,6 +42,10 @@ class _FakeSecureStorageInterface_0 extends _i1.SmartFake /// /// See the documentation for Mockito's code generation for more information. class MockNodeService extends _i1.Mock implements _i3.NodeService { + MockNodeService() { + _i1.throwOnMissingStub(this); + } + @override _i2.SecureStorageInterface get secureStorageInterface => (super.noSuchMethod( Invocation.getter(#secureStorageInterface), diff --git a/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/node_details_view_screen_test.dart b/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/node_details_view_screen_test.dart index 02309a56d..6637999f8 100644 --- a/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/node_details_view_screen_test.dart +++ b/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/node_details_view_screen_test.dart @@ -17,7 +17,7 @@ import 'package:stackwallet/services/node_service.dart'; // import 'node_details_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("NodeDetailsView non-editing builds correctly", (tester) async { diff --git a/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/node_details_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/node_details_view_screen_test.mocks.dart index f203b112b..f1948fa9a 100644 --- a/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/node_details_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/node_details_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/settings_view/settings_subviews/network_settings_subviews/node_details_view_screen_test.dart. // Do not manually edit this file. @@ -18,6 +18,8 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -40,6 +42,10 @@ class _FakeSecureStorageInterface_0 extends _i1.SmartFake /// /// See the documentation for Mockito's code generation for more information. class MockNodeService extends _i1.Mock implements _i3.NodeService { + MockNodeService() { + _i1.throwOnMissingStub(this); + } + @override _i2.SecureStorageInterface get secureStorageInterface => (super.noSuchMethod( Invocation.getter(#secureStorageInterface), diff --git a/test/screen_tests/settings_view/settings_subviews/network_settings_view_screen_test.dart b/test/screen_tests/settings_view/settings_subviews/network_settings_view_screen_test.dart index a466a5dfc..67d5398ab 100644 --- a/test/screen_tests/settings_view/settings_subviews/network_settings_view_screen_test.dart +++ b/test/screen_tests/settings_view/settings_subviews/network_settings_view_screen_test.dart @@ -13,7 +13,7 @@ import 'package:stackwallet/services/node_service.dart'; // import 'network_settings_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("NetworkSettingsView builds correctly", (tester) async { diff --git a/test/screen_tests/settings_view/settings_subviews/network_settings_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_subviews/network_settings_view_screen_test.mocks.dart index 217f88d9f..4adf647f0 100644 --- a/test/screen_tests/settings_view/settings_subviews/network_settings_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_subviews/network_settings_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/settings_view/settings_subviews/network_settings_view_screen_test.dart. // Do not manually edit this file. @@ -18,6 +18,8 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -40,6 +42,10 @@ class _FakeSecureStorageInterface_0 extends _i1.SmartFake /// /// See the documentation for Mockito's code generation for more information. class MockNodeService extends _i1.Mock implements _i3.NodeService { + MockNodeService() { + _i1.throwOnMissingStub(this); + } + @override _i2.SecureStorageInterface get secureStorageInterface => (super.noSuchMethod( Invocation.getter(#secureStorageInterface), diff --git a/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/change_pin_view_screen_test.dart b/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/change_pin_view_screen_test.dart index 8cf9cc7bb..3c7332e9a 100644 --- a/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/change_pin_view_screen_test.dart +++ b/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/change_pin_view_screen_test.dart @@ -15,7 +15,7 @@ import 'package:stackwallet/services/wallets_service.dart'; // import 'change_pin_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("ChangePinView builds correctly", (tester) async { diff --git a/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/change_pin_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/change_pin_view_screen_test.mocks.dart index 764ed5967..b9014e5fe 100644 --- a/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/change_pin_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/change_pin_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/change_pin_view_screen_test.dart. // Do not manually edit this file. @@ -13,6 +13,8 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -24,6 +26,10 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; /// /// See the documentation for Mockito's code generation for more information. class MockWalletsService extends _i1.Mock implements _i2.WalletsService { + MockWalletsService() { + _i1.throwOnMissingStub(this); + } + @override _i3.Future> get walletNames => (super.noSuchMethod( diff --git a/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/rename_wallet_view_screen_test.dart b/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/rename_wallet_view_screen_test.dart index 59a45306a..5216180ac 100644 --- a/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/rename_wallet_view_screen_test.dart +++ b/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/rename_wallet_view_screen_test.dart @@ -14,7 +14,7 @@ import 'package:stackwallet/services/wallets_service.dart'; // import 'rename_wallet_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("RenameWalletView builds correctly", (tester) async { diff --git a/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/rename_wallet_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/rename_wallet_view_screen_test.mocks.dart index 7db7d3109..e35762cce 100644 --- a/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/rename_wallet_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/rename_wallet_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/rename_wallet_view_screen_test.dart. // Do not manually edit this file. @@ -13,6 +13,8 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -24,6 +26,10 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; /// /// See the documentation for Mockito's code generation for more information. class MockWalletsService extends _i1.Mock implements _i2.WalletsService { + MockWalletsService() { + _i1.throwOnMissingStub(this); + } + @override _i3.Future> get walletNames => (super.noSuchMethod( diff --git a/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/wallet_delete_mnemonic_view_screen_test.dart b/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/wallet_delete_mnemonic_view_screen_test.dart index 86a674aec..802e8a522 100644 --- a/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/wallet_delete_mnemonic_view_screen_test.dart +++ b/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/wallet_delete_mnemonic_view_screen_test.dart @@ -20,7 +20,7 @@ import 'package:stackwallet/services/wallets_service.dart'; // import 'wallet_delete_mnemonic_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("WalletDeleteMnemonicView builds correctly", (tester) async { diff --git a/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/wallet_delete_mnemonic_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/wallet_delete_mnemonic_view_screen_test.mocks.dart index 42b82db3b..7855c17d8 100644 --- a/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/wallet_delete_mnemonic_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/wallet_delete_mnemonic_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/settings_view/settings_subviews/wallet_settings_subviews/wallet_delete_mnemonic_view_screen_test.dart. // Do not manually edit this file. @@ -13,6 +13,8 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -24,6 +26,10 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; /// /// See the documentation for Mockito's code generation for more information. class MockWalletsService extends _i1.Mock implements _i2.WalletsService { + MockWalletsService() { + _i1.throwOnMissingStub(this); + } + @override _i3.Future> get walletNames => (super.noSuchMethod( diff --git a/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.dart b/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.dart index 7f6c150bc..c23cc32e0 100644 --- a/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.dart +++ b/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.dart @@ -24,7 +24,7 @@ import 'package:stackwallet/utilities/biometrics.dart'; LocalAuthentication, Biometrics, ], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("WalletSettingsView builds correctly", (tester) async { diff --git a/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart index 63c207931..446894293 100644 --- a/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart @@ -1,18 +1,19 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i4; -import 'dart:ui' as _i10; +import 'dart:ui' as _i11; -import 'package:local_auth/auth_strings.dart' as _i7; -import 'package:local_auth/local_auth.dart' as _i6; +import 'package:local_auth/auth_strings.dart' as _i8; +import 'package:local_auth/local_auth.dart' as _i7; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i6; import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i3; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i2; -import 'package:stackwallet/services/wallets_service.dart' as _i9; -import 'package:stackwallet/utilities/biometrics.dart' as _i8; +import 'package:stackwallet/services/wallets_service.dart' as _i10; +import 'package:stackwallet/utilities/biometrics.dart' as _i9; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' as _i5; @@ -20,6 +21,8 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -101,7 +104,13 @@ class MockCachedElectrumXClient extends _i1.Mock #base64ToHex, [source], ), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.method( + #base64ToHex, + [source], + ), + ), ) as String); @override String base64ToReverseHex(String? source) => (super.noSuchMethod( @@ -109,7 +118,13 @@ class MockCachedElectrumXClient extends _i1.Mock #base64ToReverseHex, [source], ), - returnValue: '', + returnValue: _i6.dummyValue( + this, + Invocation.method( + #base64ToReverseHex, + [source], + ), + ), ) as String); @override _i4.Future> getTransaction({ @@ -175,7 +190,7 @@ class MockCachedElectrumXClient extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. class MockLocalAuthentication extends _i1.Mock - implements _i6.LocalAuthentication { + implements _i7.LocalAuthentication { MockLocalAuthentication() { _i1.throwOnMissingStub(this); } @@ -190,9 +205,9 @@ class MockLocalAuthentication extends _i1.Mock required String? localizedReason, bool? useErrorDialogs = true, bool? stickyAuth = false, - _i7.AndroidAuthMessages? androidAuthStrings = - const _i7.AndroidAuthMessages(), - _i7.IOSAuthMessages? iOSAuthStrings = const _i7.IOSAuthMessages(), + _i8.AndroidAuthMessages? androidAuthStrings = + const _i8.AndroidAuthMessages(), + _i8.IOSAuthMessages? iOSAuthStrings = const _i8.IOSAuthMessages(), bool? sensitiveTransaction = true, }) => (super.noSuchMethod( @@ -215,9 +230,9 @@ class MockLocalAuthentication extends _i1.Mock required String? localizedReason, bool? useErrorDialogs = true, bool? stickyAuth = false, - _i7.AndroidAuthMessages? androidAuthStrings = - const _i7.AndroidAuthMessages(), - _i7.IOSAuthMessages? iOSAuthStrings = const _i7.IOSAuthMessages(), + _i8.AndroidAuthMessages? androidAuthStrings = + const _i8.AndroidAuthMessages(), + _i8.IOSAuthMessages? iOSAuthStrings = const _i8.IOSAuthMessages(), bool? sensitiveTransaction = true, bool? biometricOnly = false, }) => @@ -254,21 +269,21 @@ class MockLocalAuthentication extends _i1.Mock returnValue: _i4.Future.value(false), ) as _i4.Future); @override - _i4.Future> getAvailableBiometrics() => + _i4.Future> getAvailableBiometrics() => (super.noSuchMethod( Invocation.method( #getAvailableBiometrics, [], ), returnValue: - _i4.Future>.value(<_i6.BiometricType>[]), - ) as _i4.Future>); + _i4.Future>.value(<_i7.BiometricType>[]), + ) as _i4.Future>); } /// A class which mocks [Biometrics]. /// /// See the documentation for Mockito's code generation for more information. -class MockBiometrics extends _i1.Mock implements _i8.Biometrics { +class MockBiometrics extends _i1.Mock implements _i9.Biometrics { MockBiometrics() { _i1.throwOnMissingStub(this); } @@ -296,21 +311,25 @@ class MockBiometrics extends _i1.Mock implements _i8.Biometrics { /// A class which mocks [WalletsService]. /// /// See the documentation for Mockito's code generation for more information. -class MockWalletsService extends _i1.Mock implements _i9.WalletsService { +class MockWalletsService extends _i1.Mock implements _i10.WalletsService { + MockWalletsService() { + _i1.throwOnMissingStub(this); + } + @override - _i4.Future> get walletNames => + _i4.Future> get walletNames => (super.noSuchMethod( Invocation.getter(#walletNames), - returnValue: _i4.Future>.value( - {}), - ) as _i4.Future>); + returnValue: _i4.Future>.value( + {}), + ) as _i4.Future>); @override bool get hasListeners => (super.noSuchMethod( Invocation.getter(#hasListeners), returnValue: false, ) as bool); @override - void addListener(_i10.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i11.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -318,7 +337,7 @@ class MockWalletsService extends _i1.Mock implements _i9.WalletsService { returnValueForMissingStub: null, ); @override - void removeListener(_i10.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i11.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/screen_tests/settings_view/settings_view_screen_test.dart b/test/screen_tests/settings_view/settings_view_screen_test.dart index 10e05b8f9..5cfe925b3 100644 --- a/test/screen_tests/settings_view/settings_view_screen_test.dart +++ b/test/screen_tests/settings_view/settings_view_screen_test.dart @@ -16,7 +16,7 @@ import 'package:stackwallet/services/wallets_service.dart'; // import 'settings_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("SettingsView builds correctly", (tester) async { diff --git a/test/screen_tests/settings_view/settings_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_view_screen_test.mocks.dart index a4edcd6ab..21c907eb7 100644 --- a/test/screen_tests/settings_view/settings_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/settings_view/settings_view_screen_test.dart. // Do not manually edit this file. @@ -13,6 +13,8 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -24,6 +26,10 @@ import 'package:stackwallet/services/wallets_service.dart' as _i2; /// /// See the documentation for Mockito's code generation for more information. class MockWalletsService extends _i1.Mock implements _i2.WalletsService { + MockWalletsService() { + _i1.throwOnMissingStub(this); + } + @override _i3.Future> get walletNames => (super.noSuchMethod( diff --git a/test/screen_tests/transaction_subviews/transaction_details_view_screen_test.dart b/test/screen_tests/transaction_subviews/transaction_details_view_screen_test.dart index 41bb64552..868698391 100644 --- a/test/screen_tests/transaction_subviews/transaction_details_view_screen_test.dart +++ b/test/screen_tests/transaction_subviews/transaction_details_view_screen_test.dart @@ -15,8 +15,8 @@ import 'package:stackwallet/services/locale_service.dart'; // import 'transaction_details_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), - MockSpec(returnNullOnMissingStub: true), + MockSpec(), + MockSpec(), ]) void main() { // final transactionA = Transaction( diff --git a/test/screen_tests/transaction_subviews/transaction_details_view_screen_test.mocks.dart b/test/screen_tests/transaction_subviews/transaction_details_view_screen_test.mocks.dart index 7d62e5a47..7c8355a96 100644 --- a/test/screen_tests/transaction_subviews/transaction_details_view_screen_test.mocks.dart +++ b/test/screen_tests/transaction_subviews/transaction_details_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/transaction_subviews/transaction_details_view_screen_test.dart. // Do not manually edit this file. @@ -7,6 +7,7 @@ import 'dart:async' as _i4; import 'dart:ui' as _i5; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i7; import 'package:stackwallet/models/isar/models/contact_entry.dart' as _i2; import 'package:stackwallet/services/address_book_service.dart' as _i3; import 'package:stackwallet/services/locale_service.dart' as _i6; @@ -15,6 +16,8 @@ import 'package:stackwallet/services/locale_service.dart' as _i6; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -37,6 +40,10 @@ class _FakeContactEntry_0 extends _i1.SmartFake implements _i2.ContactEntry { /// See the documentation for Mockito's code generation for more information. class MockAddressBookService extends _i1.Mock implements _i3.AddressBookService { + MockAddressBookService() { + _i1.throwOnMissingStub(this); + } + @override List<_i2.ContactEntry> get contacts => (super.noSuchMethod( Invocation.getter(#contacts), @@ -150,10 +157,17 @@ class MockAddressBookService extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. class MockLocaleService extends _i1.Mock implements _i6.LocaleService { + MockLocaleService() { + _i1.throwOnMissingStub(this); + } + @override String get locale => (super.noSuchMethod( Invocation.getter(#locale), - returnValue: '', + returnValue: _i7.dummyValue( + this, + Invocation.getter(#locale), + ), ) as String); @override bool get hasListeners => (super.noSuchMethod( diff --git a/test/screen_tests/transaction_subviews/transaction_search_results_view_screen_test.dart b/test/screen_tests/transaction_subviews/transaction_search_results_view_screen_test.dart index d3d676211..8a50045a6 100644 --- a/test/screen_tests/transaction_subviews/transaction_search_results_view_screen_test.dart +++ b/test/screen_tests/transaction_subviews/transaction_search_results_view_screen_test.dart @@ -16,7 +16,7 @@ import 'package:stackwallet/services/locale_service.dart'; // import 'transaction_search_results_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets( diff --git a/test/screen_tests/transaction_subviews/transaction_search_results_view_screen_test.mocks.dart b/test/screen_tests/transaction_subviews/transaction_search_results_view_screen_test.mocks.dart index 46f63781d..c4aad0a14 100644 --- a/test/screen_tests/transaction_subviews/transaction_search_results_view_screen_test.mocks.dart +++ b/test/screen_tests/transaction_subviews/transaction_search_results_view_screen_test.mocks.dart @@ -1,18 +1,21 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/transaction_subviews/transaction_search_results_view_screen_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i3; -import 'dart:ui' as _i4; +import 'dart:async' as _i4; +import 'dart:ui' as _i5; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i3; import 'package:stackwallet/services/locale_service.dart' as _i2; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -24,10 +27,17 @@ import 'package:stackwallet/services/locale_service.dart' as _i2; /// /// See the documentation for Mockito's code generation for more information. class MockLocaleService extends _i1.Mock implements _i2.LocaleService { + MockLocaleService() { + _i1.throwOnMissingStub(this); + } + @override String get locale => (super.noSuchMethod( Invocation.getter(#locale), - returnValue: '', + returnValue: _i3.dummyValue( + this, + Invocation.getter(#locale), + ), ) as String); @override bool get hasListeners => (super.noSuchMethod( @@ -35,17 +45,17 @@ class MockLocaleService extends _i1.Mock implements _i2.LocaleService { returnValue: false, ) as bool); @override - _i3.Future loadLocale({bool? notify = true}) => (super.noSuchMethod( + _i4.Future loadLocale({bool? notify = true}) => (super.noSuchMethod( Invocation.method( #loadLocale, [], {#notify: notify}, ), - returnValue: _i3.Future.value(), - returnValueForMissingStub: _i3.Future.value(), - ) as _i3.Future); + returnValue: _i4.Future.value(), + returnValueForMissingStub: _i4.Future.value(), + ) as _i4.Future); @override - void addListener(_i4.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i5.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -53,7 +63,7 @@ class MockLocaleService extends _i1.Mock implements _i2.LocaleService { returnValueForMissingStub: null, ); @override - void removeListener(_i4.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i5.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/screen_tests/transaction_subviews/transaction_search_view_screen_test.dart b/test/screen_tests/transaction_subviews/transaction_search_view_screen_test.dart index fb4280932..080a1ffbd 100644 --- a/test/screen_tests/transaction_subviews/transaction_search_view_screen_test.dart +++ b/test/screen_tests/transaction_subviews/transaction_search_view_screen_test.dart @@ -14,7 +14,7 @@ import 'package:stackwallet/services/address_book_service.dart'; // import 'transaction_search_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("TransactionSearchView builds correctly", (tester) async { diff --git a/test/screen_tests/transaction_subviews/transaction_search_view_screen_test.mocks.dart b/test/screen_tests/transaction_subviews/transaction_search_view_screen_test.mocks.dart index 652e170f0..6fd708af7 100644 --- a/test/screen_tests/transaction_subviews/transaction_search_view_screen_test.mocks.dart +++ b/test/screen_tests/transaction_subviews/transaction_search_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/transaction_subviews/transaction_search_view_screen_test.dart. // Do not manually edit this file. @@ -14,6 +14,8 @@ import 'package:stackwallet/services/address_book_service.dart' as _i3; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -36,6 +38,10 @@ class _FakeContactEntry_0 extends _i1.SmartFake implements _i2.ContactEntry { /// See the documentation for Mockito's code generation for more information. class MockAddressBookService extends _i1.Mock implements _i3.AddressBookService { + MockAddressBookService() { + _i1.throwOnMissingStub(this); + } + @override List<_i2.ContactEntry> get contacts => (super.noSuchMethod( Invocation.getter(#contacts), diff --git a/test/screen_tests/wallet_view/send_view_screen_test.mocks.dart b/test/screen_tests/wallet_view/send_view_screen_test.mocks.dart index 666ce4e98..a7a3ad695 100644 --- a/test/screen_tests/wallet_view/send_view_screen_test.mocks.dart +++ b/test/screen_tests/wallet_view/send_view_screen_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/wallet_view/send_view_screen_test.dart. // Do not manually edit this file. @@ -13,6 +13,8 @@ import 'package:stackwallet/utilities/barcode_scanner_interface.dart' as _i3; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors diff --git a/test/screen_tests/wallet_view/wallet_view_screen_test.dart b/test/screen_tests/wallet_view/wallet_view_screen_test.dart index 6c6815d4c..02ed59580 100644 --- a/test/screen_tests/wallet_view/wallet_view_screen_test.dart +++ b/test/screen_tests/wallet_view/wallet_view_screen_test.dart @@ -22,7 +22,7 @@ import 'package:stackwallet/services/locale_service.dart'; // import 'wallet_view_screen_test.mocks.dart'; @GenerateMocks([], customMocks: [ - MockSpec(returnNullOnMissingStub: true), + MockSpec(), ]) void main() { // testWidgets("WalletView builds correctly with no transactions", diff --git a/test/screen_tests/wallet_view/wallet_view_screen_test.mocks.dart b/test/screen_tests/wallet_view/wallet_view_screen_test.mocks.dart index 41319572b..b85201783 100644 --- a/test/screen_tests/wallet_view/wallet_view_screen_test.mocks.dart +++ b/test/screen_tests/wallet_view/wallet_view_screen_test.mocks.dart @@ -1,18 +1,21 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/screen_tests/wallet_view/wallet_view_screen_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i3; -import 'dart:ui' as _i4; +import 'dart:async' as _i4; +import 'dart:ui' as _i5; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i3; import 'package:stackwallet/services/locale_service.dart' as _i2; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -24,10 +27,17 @@ import 'package:stackwallet/services/locale_service.dart' as _i2; /// /// See the documentation for Mockito's code generation for more information. class MockLocaleService extends _i1.Mock implements _i2.LocaleService { + MockLocaleService() { + _i1.throwOnMissingStub(this); + } + @override String get locale => (super.noSuchMethod( Invocation.getter(#locale), - returnValue: '', + returnValue: _i3.dummyValue( + this, + Invocation.getter(#locale), + ), ) as String); @override bool get hasListeners => (super.noSuchMethod( @@ -35,17 +45,17 @@ class MockLocaleService extends _i1.Mock implements _i2.LocaleService { returnValue: false, ) as bool); @override - _i3.Future loadLocale({bool? notify = true}) => (super.noSuchMethod( + _i4.Future loadLocale({bool? notify = true}) => (super.noSuchMethod( Invocation.method( #loadLocale, [], {#notify: notify}, ), - returnValue: _i3.Future.value(), - returnValueForMissingStub: _i3.Future.value(), - ) as _i3.Future); + returnValue: _i4.Future.value(), + returnValueForMissingStub: _i4.Future.value(), + ) as _i4.Future); @override - void addListener(_i4.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i5.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -53,7 +63,7 @@ class MockLocaleService extends _i1.Mock implements _i2.LocaleService { returnValueForMissingStub: null, ); @override - void removeListener(_i4.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i5.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/services/change_now/change_now_test.mocks.dart b/test/services/change_now/change_now_test.mocks.dart index f0b375d72..1ee496d32 100644 --- a/test/services/change_now/change_now_test.mocks.dart +++ b/test/services/change_now/change_now_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/services/change_now/change_now_test.dart. // Do not manually edit this file. @@ -14,6 +14,8 @@ import 'package:stackwallet/networking/http.dart' as _i2; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors diff --git a/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart b/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart index efcb9f626..776e6874b 100644 --- a/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart +++ b/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart @@ -1,16 +1,17 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/services/coins/bitcoin/bitcoin_wallet_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i5; +import 'dart:async' as _i6; import 'package:decimal/decimal.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; -import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; +import 'package:mockito/src/dummies.dart' as _i5; +import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i7; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' - as _i7; + as _i8; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' as _i2; @@ -18,6 +19,8 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -116,7 +119,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { @override String get host => (super.noSuchMethod( Invocation.getter(#host), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.getter(#host), + ), ) as String); @override int get port => (super.noSuchMethod( @@ -129,16 +135,16 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { returnValue: false, ) as bool); @override - _i5.Future closeAdapter() => (super.noSuchMethod( + _i6.Future closeAdapter() => (super.noSuchMethod( Invocation.method( #closeAdapter, [], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future request({ + _i6.Future request({ required String? command, List? args = const [], String? requestID, @@ -157,10 +163,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestTimeout: requestTimeout, }, ), - returnValue: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future> batchRequest({ + _i6.Future> batchRequest({ required String? command, required List? args, Duration? requestTimeout = const Duration(seconds: 60), @@ -177,10 +183,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #retries: retries, }, ), - returnValue: _i5.Future>.value([]), - ) as _i5.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override - _i5.Future ping({ + _i6.Future ping({ String? requestID, int? retryCount = 1, }) => @@ -193,10 +199,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #retryCount: retryCount, }, ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + returnValue: _i6.Future.value(false), + ) as _i6.Future); @override - _i5.Future> getBlockHeadTip({String? requestID}) => + _i6.Future> getBlockHeadTip({String? requestID}) => (super.noSuchMethod( Invocation.method( #getBlockHeadTip, @@ -204,10 +210,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getServerFeatures({String? requestID}) => + _i6.Future> getServerFeatures({String? requestID}) => (super.noSuchMethod( Invocation.method( #getServerFeatures, @@ -215,10 +221,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future broadcastTransaction({ + _i6.Future broadcastTransaction({ required String? rawTx, String? requestID, }) => @@ -231,10 +237,20 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future.value(''), - ) as _i5.Future); + returnValue: _i6.Future.value(_i5.dummyValue( + this, + Invocation.method( + #broadcastTransaction, + [], + { + #rawTx: rawTx, + #requestID: requestID, + }, + ), + )), + ) as _i6.Future); @override - _i5.Future> getBalance({ + _i6.Future> getBalance({ required String? scripthash, String? requestID, }) => @@ -248,10 +264,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future>> getHistory({ + _i6.Future>> getHistory({ required String? scripthash, String? requestID, }) => @@ -264,11 +280,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future>>> getBatchHistory( + _i6.Future>>> getBatchHistory( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -276,11 +292,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { [], {#args: args}, ), - returnValue: _i5.Future>>>.value( + returnValue: _i6.Future>>>.value( >>[]), - ) as _i5.Future>>>); + ) as _i6.Future>>>); @override - _i5.Future>> getUTXOs({ + _i6.Future>> getUTXOs({ required String? scripthash, String? requestID, }) => @@ -293,11 +309,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future>>> getBatchUTXOs( + _i6.Future>>> getBatchUTXOs( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -305,11 +321,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { [], {#args: args}, ), - returnValue: _i5.Future>>>.value( + returnValue: _i6.Future>>>.value( >>[]), - ) as _i5.Future>>>); + ) as _i6.Future>>>); @override - _i5.Future> getTransaction({ + _i6.Future> getTransaction({ required String? txHash, bool? verbose = true, String? requestID, @@ -325,10 +341,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getLelantusAnonymitySet({ + _i6.Future> getLelantusAnonymitySet({ String? groupId = r'1', String? blockhash = r'', String? requestID, @@ -344,10 +360,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future getLelantusMintData({ + _i6.Future getLelantusMintData({ dynamic mints, String? requestID, }) => @@ -360,10 +376,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future> getLelantusUsedCoinSerials({ + _i6.Future> getLelantusUsedCoinSerials({ String? requestID, required int? startNumber, }) => @@ -377,20 +393,20 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future getLelantusLatestCoinId({String? requestID}) => + _i6.Future getLelantusLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getLelantusLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i5.Future.value(0), - ) as _i5.Future); + returnValue: _i6.Future.value(0), + ) as _i6.Future); @override - _i5.Future> getSparkAnonymitySet({ + _i6.Future> getSparkAnonymitySet({ String? coinGroupId = r'1', String? startBlockHash = r'', String? requestID, @@ -406,10 +422,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getSparkUsedCoinsTags({ + _i6.Future> getSparkUsedCoinsTags({ String? requestID, required int? startNumber, }) => @@ -422,10 +438,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #startNumber: startNumber, }, ), - returnValue: _i5.Future>.value({}), - ) as _i5.Future>); + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future>> getSparkMintMetaData({ + _i6.Future>> getSparkMintMetaData({ String? requestID, required List? sparkCoinHashes, }) => @@ -438,21 +454,21 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #sparkCoinHashes: sparkCoinHashes, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future getSparkLatestCoinId({String? requestID}) => + _i6.Future getSparkLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getSparkLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i5.Future.value(0), - ) as _i5.Future); + returnValue: _i6.Future.value(0), + ) as _i6.Future); @override - _i5.Future> getFeeRate({String? requestID}) => + _i6.Future> getFeeRate({String? requestID}) => (super.noSuchMethod( Invocation.method( #getFeeRate, @@ -460,10 +476,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future<_i3.Decimal> estimateFee({ + _i6.Future<_i3.Decimal> estimateFee({ String? requestID, required int? blocks, }) => @@ -476,7 +492,7 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #blocks: blocks, }, ), - returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( + returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #estimateFee, @@ -487,15 +503,15 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), )), - ) as _i5.Future<_i3.Decimal>); + ) as _i6.Future<_i3.Decimal>); @override - _i5.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( + _i6.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( Invocation.method( #relayFee, [], {#requestID: requestID}, ), - returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( + returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #relayFee, @@ -503,14 +519,14 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), )), - ) as _i5.Future<_i3.Decimal>); + ) as _i6.Future<_i3.Decimal>); } /// A class which mocks [CachedElectrumXClient]. /// /// See the documentation for Mockito's code generation for more information. class MockCachedElectrumXClient extends _i1.Mock - implements _i6.CachedElectrumXClient { + implements _i7.CachedElectrumXClient { MockCachedElectrumXClient() { _i1.throwOnMissingStub(this); } @@ -524,7 +540,7 @@ class MockCachedElectrumXClient extends _i1.Mock ), ) as _i4.ElectrumXClient); @override - _i5.Future> getAnonymitySet({ + _i6.Future> getAnonymitySet({ required String? groupId, String? blockhash = r'', required _i2.CryptoCurrency? cryptoCurrency, @@ -540,10 +556,10 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getSparkAnonymitySet({ + _i6.Future> getSparkAnonymitySet({ required String? groupId, String? blockhash = r'', required _i2.CryptoCurrency? cryptoCurrency, @@ -561,15 +577,21 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override String base64ToHex(String? source) => (super.noSuchMethod( Invocation.method( #base64ToHex, [source], ), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.method( + #base64ToHex, + [source], + ), + ), ) as String); @override String base64ToReverseHex(String? source) => (super.noSuchMethod( @@ -577,10 +599,16 @@ class MockCachedElectrumXClient extends _i1.Mock #base64ToReverseHex, [source], ), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.method( + #base64ToReverseHex, + [source], + ), + ), ) as String); @override - _i5.Future> getTransaction({ + _i6.Future> getTransaction({ required String? txHash, required _i2.CryptoCurrency? cryptoCurrency, bool? verbose = true, @@ -596,10 +624,10 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getUsedCoinSerials({ + _i6.Future> getUsedCoinSerials({ required _i2.CryptoCurrency? cryptoCurrency, int? startNumber = 0, }) => @@ -612,10 +640,10 @@ class MockCachedElectrumXClient extends _i1.Mock #startNumber: startNumber, }, ), - returnValue: _i5.Future>.value([]), - ) as _i5.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override - _i5.Future> getSparkUsedCoinsTags( + _i6.Future> getSparkUsedCoinsTags( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( @@ -623,10 +651,10 @@ class MockCachedElectrumXClient extends _i1.Mock [], {#cryptoCurrency: cryptoCurrency}, ), - returnValue: _i5.Future>.value({}), - ) as _i5.Future>); + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future clearSharedTransactionCache( + _i6.Future clearSharedTransactionCache( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( @@ -634,16 +662,16 @@ class MockCachedElectrumXClient extends _i1.Mock [], {#cryptoCurrency: cryptoCurrency}, ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); } /// A class which mocks [TransactionNotificationTracker]. /// /// See the documentation for Mockito's code generation for more information. class MockTransactionNotificationTracker extends _i1.Mock - implements _i7.TransactionNotificationTracker { + implements _i8.TransactionNotificationTracker { MockTransactionNotificationTracker() { _i1.throwOnMissingStub(this); } @@ -651,7 +679,10 @@ class MockTransactionNotificationTracker extends _i1.Mock @override String get walletId => (super.noSuchMethod( Invocation.getter(#walletId), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.getter(#walletId), + ), ) as String); @override List get pendings => (super.noSuchMethod( @@ -672,14 +703,14 @@ class MockTransactionNotificationTracker extends _i1.Mock returnValue: false, ) as bool); @override - _i5.Future addNotifiedPending(String? txid) => (super.noSuchMethod( + _i6.Future addNotifiedPending(String? txid) => (super.noSuchMethod( Invocation.method( #addNotifiedPending, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override bool wasNotifiedConfirmed(String? txid) => (super.noSuchMethod( Invocation.method( @@ -689,21 +720,21 @@ class MockTransactionNotificationTracker extends _i1.Mock returnValue: false, ) as bool); @override - _i5.Future addNotifiedConfirmed(String? txid) => (super.noSuchMethod( + _i6.Future addNotifiedConfirmed(String? txid) => (super.noSuchMethod( Invocation.method( #addNotifiedConfirmed, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future deleteTransaction(String? txid) => (super.noSuchMethod( + _i6.Future deleteTransaction(String? txid) => (super.noSuchMethod( Invocation.method( #deleteTransaction, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); } diff --git a/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart b/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart index 7cfef5ab4..a2238f324 100644 --- a/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart +++ b/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart @@ -1,16 +1,17 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/services/coins/bitcoincash/bitcoincash_wallet_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i5; +import 'dart:async' as _i6; import 'package:decimal/decimal.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; -import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; +import 'package:mockito/src/dummies.dart' as _i5; +import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i7; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' - as _i7; + as _i8; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' as _i2; @@ -18,6 +19,8 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -116,7 +119,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { @override String get host => (super.noSuchMethod( Invocation.getter(#host), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.getter(#host), + ), ) as String); @override int get port => (super.noSuchMethod( @@ -129,16 +135,16 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { returnValue: false, ) as bool); @override - _i5.Future closeAdapter() => (super.noSuchMethod( + _i6.Future closeAdapter() => (super.noSuchMethod( Invocation.method( #closeAdapter, [], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future request({ + _i6.Future request({ required String? command, List? args = const [], String? requestID, @@ -157,10 +163,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestTimeout: requestTimeout, }, ), - returnValue: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future> batchRequest({ + _i6.Future> batchRequest({ required String? command, required List? args, Duration? requestTimeout = const Duration(seconds: 60), @@ -177,10 +183,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #retries: retries, }, ), - returnValue: _i5.Future>.value([]), - ) as _i5.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override - _i5.Future ping({ + _i6.Future ping({ String? requestID, int? retryCount = 1, }) => @@ -193,10 +199,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #retryCount: retryCount, }, ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + returnValue: _i6.Future.value(false), + ) as _i6.Future); @override - _i5.Future> getBlockHeadTip({String? requestID}) => + _i6.Future> getBlockHeadTip({String? requestID}) => (super.noSuchMethod( Invocation.method( #getBlockHeadTip, @@ -204,10 +210,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getServerFeatures({String? requestID}) => + _i6.Future> getServerFeatures({String? requestID}) => (super.noSuchMethod( Invocation.method( #getServerFeatures, @@ -215,10 +221,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future broadcastTransaction({ + _i6.Future broadcastTransaction({ required String? rawTx, String? requestID, }) => @@ -231,10 +237,20 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future.value(''), - ) as _i5.Future); + returnValue: _i6.Future.value(_i5.dummyValue( + this, + Invocation.method( + #broadcastTransaction, + [], + { + #rawTx: rawTx, + #requestID: requestID, + }, + ), + )), + ) as _i6.Future); @override - _i5.Future> getBalance({ + _i6.Future> getBalance({ required String? scripthash, String? requestID, }) => @@ -248,10 +264,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future>> getHistory({ + _i6.Future>> getHistory({ required String? scripthash, String? requestID, }) => @@ -264,11 +280,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future>>> getBatchHistory( + _i6.Future>>> getBatchHistory( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -276,11 +292,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { [], {#args: args}, ), - returnValue: _i5.Future>>>.value( + returnValue: _i6.Future>>>.value( >>[]), - ) as _i5.Future>>>); + ) as _i6.Future>>>); @override - _i5.Future>> getUTXOs({ + _i6.Future>> getUTXOs({ required String? scripthash, String? requestID, }) => @@ -293,11 +309,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future>>> getBatchUTXOs( + _i6.Future>>> getBatchUTXOs( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -305,11 +321,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { [], {#args: args}, ), - returnValue: _i5.Future>>>.value( + returnValue: _i6.Future>>>.value( >>[]), - ) as _i5.Future>>>); + ) as _i6.Future>>>); @override - _i5.Future> getTransaction({ + _i6.Future> getTransaction({ required String? txHash, bool? verbose = true, String? requestID, @@ -325,10 +341,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getLelantusAnonymitySet({ + _i6.Future> getLelantusAnonymitySet({ String? groupId = r'1', String? blockhash = r'', String? requestID, @@ -344,10 +360,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future getLelantusMintData({ + _i6.Future getLelantusMintData({ dynamic mints, String? requestID, }) => @@ -360,10 +376,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future> getLelantusUsedCoinSerials({ + _i6.Future> getLelantusUsedCoinSerials({ String? requestID, required int? startNumber, }) => @@ -377,20 +393,20 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future getLelantusLatestCoinId({String? requestID}) => + _i6.Future getLelantusLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getLelantusLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i5.Future.value(0), - ) as _i5.Future); + returnValue: _i6.Future.value(0), + ) as _i6.Future); @override - _i5.Future> getSparkAnonymitySet({ + _i6.Future> getSparkAnonymitySet({ String? coinGroupId = r'1', String? startBlockHash = r'', String? requestID, @@ -406,10 +422,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getSparkUsedCoinsTags({ + _i6.Future> getSparkUsedCoinsTags({ String? requestID, required int? startNumber, }) => @@ -422,10 +438,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #startNumber: startNumber, }, ), - returnValue: _i5.Future>.value({}), - ) as _i5.Future>); + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future>> getSparkMintMetaData({ + _i6.Future>> getSparkMintMetaData({ String? requestID, required List? sparkCoinHashes, }) => @@ -438,21 +454,21 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #sparkCoinHashes: sparkCoinHashes, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future getSparkLatestCoinId({String? requestID}) => + _i6.Future getSparkLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getSparkLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i5.Future.value(0), - ) as _i5.Future); + returnValue: _i6.Future.value(0), + ) as _i6.Future); @override - _i5.Future> getFeeRate({String? requestID}) => + _i6.Future> getFeeRate({String? requestID}) => (super.noSuchMethod( Invocation.method( #getFeeRate, @@ -460,10 +476,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future<_i3.Decimal> estimateFee({ + _i6.Future<_i3.Decimal> estimateFee({ String? requestID, required int? blocks, }) => @@ -476,7 +492,7 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #blocks: blocks, }, ), - returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( + returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #estimateFee, @@ -487,15 +503,15 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), )), - ) as _i5.Future<_i3.Decimal>); + ) as _i6.Future<_i3.Decimal>); @override - _i5.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( + _i6.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( Invocation.method( #relayFee, [], {#requestID: requestID}, ), - returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( + returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #relayFee, @@ -503,14 +519,14 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), )), - ) as _i5.Future<_i3.Decimal>); + ) as _i6.Future<_i3.Decimal>); } /// A class which mocks [CachedElectrumXClient]. /// /// See the documentation for Mockito's code generation for more information. class MockCachedElectrumXClient extends _i1.Mock - implements _i6.CachedElectrumXClient { + implements _i7.CachedElectrumXClient { MockCachedElectrumXClient() { _i1.throwOnMissingStub(this); } @@ -524,7 +540,7 @@ class MockCachedElectrumXClient extends _i1.Mock ), ) as _i4.ElectrumXClient); @override - _i5.Future> getAnonymitySet({ + _i6.Future> getAnonymitySet({ required String? groupId, String? blockhash = r'', required _i2.CryptoCurrency? cryptoCurrency, @@ -540,10 +556,10 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getSparkAnonymitySet({ + _i6.Future> getSparkAnonymitySet({ required String? groupId, String? blockhash = r'', required _i2.CryptoCurrency? cryptoCurrency, @@ -561,15 +577,21 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override String base64ToHex(String? source) => (super.noSuchMethod( Invocation.method( #base64ToHex, [source], ), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.method( + #base64ToHex, + [source], + ), + ), ) as String); @override String base64ToReverseHex(String? source) => (super.noSuchMethod( @@ -577,10 +599,16 @@ class MockCachedElectrumXClient extends _i1.Mock #base64ToReverseHex, [source], ), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.method( + #base64ToReverseHex, + [source], + ), + ), ) as String); @override - _i5.Future> getTransaction({ + _i6.Future> getTransaction({ required String? txHash, required _i2.CryptoCurrency? cryptoCurrency, bool? verbose = true, @@ -596,10 +624,10 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getUsedCoinSerials({ + _i6.Future> getUsedCoinSerials({ required _i2.CryptoCurrency? cryptoCurrency, int? startNumber = 0, }) => @@ -612,10 +640,10 @@ class MockCachedElectrumXClient extends _i1.Mock #startNumber: startNumber, }, ), - returnValue: _i5.Future>.value([]), - ) as _i5.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override - _i5.Future> getSparkUsedCoinsTags( + _i6.Future> getSparkUsedCoinsTags( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( @@ -623,10 +651,10 @@ class MockCachedElectrumXClient extends _i1.Mock [], {#cryptoCurrency: cryptoCurrency}, ), - returnValue: _i5.Future>.value({}), - ) as _i5.Future>); + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future clearSharedTransactionCache( + _i6.Future clearSharedTransactionCache( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( @@ -634,16 +662,16 @@ class MockCachedElectrumXClient extends _i1.Mock [], {#cryptoCurrency: cryptoCurrency}, ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); } /// A class which mocks [TransactionNotificationTracker]. /// /// See the documentation for Mockito's code generation for more information. class MockTransactionNotificationTracker extends _i1.Mock - implements _i7.TransactionNotificationTracker { + implements _i8.TransactionNotificationTracker { MockTransactionNotificationTracker() { _i1.throwOnMissingStub(this); } @@ -651,7 +679,10 @@ class MockTransactionNotificationTracker extends _i1.Mock @override String get walletId => (super.noSuchMethod( Invocation.getter(#walletId), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.getter(#walletId), + ), ) as String); @override List get pendings => (super.noSuchMethod( @@ -672,14 +703,14 @@ class MockTransactionNotificationTracker extends _i1.Mock returnValue: false, ) as bool); @override - _i5.Future addNotifiedPending(String? txid) => (super.noSuchMethod( + _i6.Future addNotifiedPending(String? txid) => (super.noSuchMethod( Invocation.method( #addNotifiedPending, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override bool wasNotifiedConfirmed(String? txid) => (super.noSuchMethod( Invocation.method( @@ -689,21 +720,21 @@ class MockTransactionNotificationTracker extends _i1.Mock returnValue: false, ) as bool); @override - _i5.Future addNotifiedConfirmed(String? txid) => (super.noSuchMethod( + _i6.Future addNotifiedConfirmed(String? txid) => (super.noSuchMethod( Invocation.method( #addNotifiedConfirmed, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future deleteTransaction(String? txid) => (super.noSuchMethod( + _i6.Future deleteTransaction(String? txid) => (super.noSuchMethod( Invocation.method( #deleteTransaction, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); } diff --git a/test/services/coins/bitcoincash/cashtokens_test.dart b/test/services/coins/bitcoincash/cashtokens_test.dart index be8a8b24b..d5e8b390b 100644 --- a/test/services/coins/bitcoincash/cashtokens_test.dart +++ b/test/services/coins/bitcoincash/cashtokens_test.dart @@ -10,17 +10,17 @@ void main() { // Replace "var1" with a hex string containing an output (script pub key) test("testUnwrapSPK", () { // Example Hex format string - String var1 = "76a91463456150b05a67084d795fbce22c8fbbca37697288ac"; + final String var1 = "76a91463456150b05a67084d795fbce22c8fbbca37697288ac"; // Convert the Hex string to Uint8List - Uint8List wrapped_spk = Uint8List.fromList(HEX.decode(var1)); + final Uint8List wrapped_spk = Uint8List.fromList(HEX.decode(var1)); // Call unwrap_spk - ParsedOutput parsedOutput = unwrap_spk(wrapped_spk); + final ParsedOutput parsedOutput = unwrap_spk(wrapped_spk); print("Parsed Output: $parsedOutput"); // Access token_data inside parsedOutput - TokenOutputData? tokenData = parsedOutput.token_data; + final TokenOutputData? tokenData = parsedOutput.token_data; // Check if tokenData is null if (tokenData != null) { diff --git a/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart b/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart index eb9afea89..f80e8a840 100644 --- a/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart +++ b/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart @@ -1,16 +1,17 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/services/coins/dogecoin/dogecoin_wallet_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i5; +import 'dart:async' as _i6; import 'package:decimal/decimal.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; -import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; +import 'package:mockito/src/dummies.dart' as _i5; +import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i7; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' - as _i7; + as _i8; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' as _i2; @@ -18,6 +19,8 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -116,7 +119,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { @override String get host => (super.noSuchMethod( Invocation.getter(#host), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.getter(#host), + ), ) as String); @override int get port => (super.noSuchMethod( @@ -129,16 +135,16 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { returnValue: false, ) as bool); @override - _i5.Future closeAdapter() => (super.noSuchMethod( + _i6.Future closeAdapter() => (super.noSuchMethod( Invocation.method( #closeAdapter, [], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future request({ + _i6.Future request({ required String? command, List? args = const [], String? requestID, @@ -157,10 +163,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestTimeout: requestTimeout, }, ), - returnValue: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future> batchRequest({ + _i6.Future> batchRequest({ required String? command, required List? args, Duration? requestTimeout = const Duration(seconds: 60), @@ -177,10 +183,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #retries: retries, }, ), - returnValue: _i5.Future>.value([]), - ) as _i5.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override - _i5.Future ping({ + _i6.Future ping({ String? requestID, int? retryCount = 1, }) => @@ -193,10 +199,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #retryCount: retryCount, }, ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + returnValue: _i6.Future.value(false), + ) as _i6.Future); @override - _i5.Future> getBlockHeadTip({String? requestID}) => + _i6.Future> getBlockHeadTip({String? requestID}) => (super.noSuchMethod( Invocation.method( #getBlockHeadTip, @@ -204,10 +210,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getServerFeatures({String? requestID}) => + _i6.Future> getServerFeatures({String? requestID}) => (super.noSuchMethod( Invocation.method( #getServerFeatures, @@ -215,10 +221,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future broadcastTransaction({ + _i6.Future broadcastTransaction({ required String? rawTx, String? requestID, }) => @@ -231,10 +237,20 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future.value(''), - ) as _i5.Future); + returnValue: _i6.Future.value(_i5.dummyValue( + this, + Invocation.method( + #broadcastTransaction, + [], + { + #rawTx: rawTx, + #requestID: requestID, + }, + ), + )), + ) as _i6.Future); @override - _i5.Future> getBalance({ + _i6.Future> getBalance({ required String? scripthash, String? requestID, }) => @@ -248,10 +264,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future>> getHistory({ + _i6.Future>> getHistory({ required String? scripthash, String? requestID, }) => @@ -264,11 +280,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future>>> getBatchHistory( + _i6.Future>>> getBatchHistory( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -276,11 +292,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { [], {#args: args}, ), - returnValue: _i5.Future>>>.value( + returnValue: _i6.Future>>>.value( >>[]), - ) as _i5.Future>>>); + ) as _i6.Future>>>); @override - _i5.Future>> getUTXOs({ + _i6.Future>> getUTXOs({ required String? scripthash, String? requestID, }) => @@ -293,11 +309,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future>>> getBatchUTXOs( + _i6.Future>>> getBatchUTXOs( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -305,11 +321,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { [], {#args: args}, ), - returnValue: _i5.Future>>>.value( + returnValue: _i6.Future>>>.value( >>[]), - ) as _i5.Future>>>); + ) as _i6.Future>>>); @override - _i5.Future> getTransaction({ + _i6.Future> getTransaction({ required String? txHash, bool? verbose = true, String? requestID, @@ -325,10 +341,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getLelantusAnonymitySet({ + _i6.Future> getLelantusAnonymitySet({ String? groupId = r'1', String? blockhash = r'', String? requestID, @@ -344,10 +360,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future getLelantusMintData({ + _i6.Future getLelantusMintData({ dynamic mints, String? requestID, }) => @@ -360,10 +376,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future> getLelantusUsedCoinSerials({ + _i6.Future> getLelantusUsedCoinSerials({ String? requestID, required int? startNumber, }) => @@ -377,20 +393,20 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future getLelantusLatestCoinId({String? requestID}) => + _i6.Future getLelantusLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getLelantusLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i5.Future.value(0), - ) as _i5.Future); + returnValue: _i6.Future.value(0), + ) as _i6.Future); @override - _i5.Future> getSparkAnonymitySet({ + _i6.Future> getSparkAnonymitySet({ String? coinGroupId = r'1', String? startBlockHash = r'', String? requestID, @@ -406,10 +422,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getSparkUsedCoinsTags({ + _i6.Future> getSparkUsedCoinsTags({ String? requestID, required int? startNumber, }) => @@ -422,10 +438,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #startNumber: startNumber, }, ), - returnValue: _i5.Future>.value({}), - ) as _i5.Future>); + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future>> getSparkMintMetaData({ + _i6.Future>> getSparkMintMetaData({ String? requestID, required List? sparkCoinHashes, }) => @@ -438,21 +454,21 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #sparkCoinHashes: sparkCoinHashes, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future getSparkLatestCoinId({String? requestID}) => + _i6.Future getSparkLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getSparkLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i5.Future.value(0), - ) as _i5.Future); + returnValue: _i6.Future.value(0), + ) as _i6.Future); @override - _i5.Future> getFeeRate({String? requestID}) => + _i6.Future> getFeeRate({String? requestID}) => (super.noSuchMethod( Invocation.method( #getFeeRate, @@ -460,10 +476,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future<_i3.Decimal> estimateFee({ + _i6.Future<_i3.Decimal> estimateFee({ String? requestID, required int? blocks, }) => @@ -476,7 +492,7 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #blocks: blocks, }, ), - returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( + returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #estimateFee, @@ -487,15 +503,15 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), )), - ) as _i5.Future<_i3.Decimal>); + ) as _i6.Future<_i3.Decimal>); @override - _i5.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( + _i6.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( Invocation.method( #relayFee, [], {#requestID: requestID}, ), - returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( + returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #relayFee, @@ -503,14 +519,14 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), )), - ) as _i5.Future<_i3.Decimal>); + ) as _i6.Future<_i3.Decimal>); } /// A class which mocks [CachedElectrumXClient]. /// /// See the documentation for Mockito's code generation for more information. class MockCachedElectrumXClient extends _i1.Mock - implements _i6.CachedElectrumXClient { + implements _i7.CachedElectrumXClient { MockCachedElectrumXClient() { _i1.throwOnMissingStub(this); } @@ -524,7 +540,7 @@ class MockCachedElectrumXClient extends _i1.Mock ), ) as _i4.ElectrumXClient); @override - _i5.Future> getAnonymitySet({ + _i6.Future> getAnonymitySet({ required String? groupId, String? blockhash = r'', required _i2.CryptoCurrency? cryptoCurrency, @@ -540,10 +556,10 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getSparkAnonymitySet({ + _i6.Future> getSparkAnonymitySet({ required String? groupId, String? blockhash = r'', required _i2.CryptoCurrency? cryptoCurrency, @@ -561,15 +577,21 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override String base64ToHex(String? source) => (super.noSuchMethod( Invocation.method( #base64ToHex, [source], ), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.method( + #base64ToHex, + [source], + ), + ), ) as String); @override String base64ToReverseHex(String? source) => (super.noSuchMethod( @@ -577,10 +599,16 @@ class MockCachedElectrumXClient extends _i1.Mock #base64ToReverseHex, [source], ), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.method( + #base64ToReverseHex, + [source], + ), + ), ) as String); @override - _i5.Future> getTransaction({ + _i6.Future> getTransaction({ required String? txHash, required _i2.CryptoCurrency? cryptoCurrency, bool? verbose = true, @@ -596,10 +624,10 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getUsedCoinSerials({ + _i6.Future> getUsedCoinSerials({ required _i2.CryptoCurrency? cryptoCurrency, int? startNumber = 0, }) => @@ -612,10 +640,10 @@ class MockCachedElectrumXClient extends _i1.Mock #startNumber: startNumber, }, ), - returnValue: _i5.Future>.value([]), - ) as _i5.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override - _i5.Future> getSparkUsedCoinsTags( + _i6.Future> getSparkUsedCoinsTags( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( @@ -623,10 +651,10 @@ class MockCachedElectrumXClient extends _i1.Mock [], {#cryptoCurrency: cryptoCurrency}, ), - returnValue: _i5.Future>.value({}), - ) as _i5.Future>); + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future clearSharedTransactionCache( + _i6.Future clearSharedTransactionCache( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( @@ -634,16 +662,16 @@ class MockCachedElectrumXClient extends _i1.Mock [], {#cryptoCurrency: cryptoCurrency}, ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); } /// A class which mocks [TransactionNotificationTracker]. /// /// See the documentation for Mockito's code generation for more information. class MockTransactionNotificationTracker extends _i1.Mock - implements _i7.TransactionNotificationTracker { + implements _i8.TransactionNotificationTracker { MockTransactionNotificationTracker() { _i1.throwOnMissingStub(this); } @@ -651,7 +679,10 @@ class MockTransactionNotificationTracker extends _i1.Mock @override String get walletId => (super.noSuchMethod( Invocation.getter(#walletId), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.getter(#walletId), + ), ) as String); @override List get pendings => (super.noSuchMethod( @@ -672,14 +703,14 @@ class MockTransactionNotificationTracker extends _i1.Mock returnValue: false, ) as bool); @override - _i5.Future addNotifiedPending(String? txid) => (super.noSuchMethod( + _i6.Future addNotifiedPending(String? txid) => (super.noSuchMethod( Invocation.method( #addNotifiedPending, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override bool wasNotifiedConfirmed(String? txid) => (super.noSuchMethod( Invocation.method( @@ -689,21 +720,21 @@ class MockTransactionNotificationTracker extends _i1.Mock returnValue: false, ) as bool); @override - _i5.Future addNotifiedConfirmed(String? txid) => (super.noSuchMethod( + _i6.Future addNotifiedConfirmed(String? txid) => (super.noSuchMethod( Invocation.method( #addNotifiedConfirmed, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future deleteTransaction(String? txid) => (super.noSuchMethod( + _i6.Future deleteTransaction(String? txid) => (super.noSuchMethod( Invocation.method( #deleteTransaction, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); } diff --git a/test/services/coins/firo/sample_data/transaction_data_samples.dart b/test/services/coins/firo/sample_data/transaction_data_samples.dart index 07108ece0..6e22d9b2f 100644 --- a/test/services/coins/firo/sample_data/transaction_data_samples.dart +++ b/test/services/coins/firo/sample_data/transaction_data_samples.dart @@ -2506,7 +2506,7 @@ final jsonTransactions = [ ]; Map get transactionDataMap { - Map result = {}; + final Map result = {}; for (final tx in jsonTransactions) { result[tx["txid"] as String] = Transaction.fromJson(tx); } diff --git a/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart b/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart index a8a5fb3c2..9f13d167b 100644 --- a/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart +++ b/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart @@ -1,16 +1,17 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/services/coins/namecoin/namecoin_wallet_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i5; +import 'dart:async' as _i6; import 'package:decimal/decimal.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; -import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; +import 'package:mockito/src/dummies.dart' as _i5; +import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i7; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' - as _i7; + as _i8; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' as _i2; @@ -18,6 +19,8 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -116,7 +119,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { @override String get host => (super.noSuchMethod( Invocation.getter(#host), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.getter(#host), + ), ) as String); @override int get port => (super.noSuchMethod( @@ -129,16 +135,16 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { returnValue: false, ) as bool); @override - _i5.Future closeAdapter() => (super.noSuchMethod( + _i6.Future closeAdapter() => (super.noSuchMethod( Invocation.method( #closeAdapter, [], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future request({ + _i6.Future request({ required String? command, List? args = const [], String? requestID, @@ -157,10 +163,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestTimeout: requestTimeout, }, ), - returnValue: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future> batchRequest({ + _i6.Future> batchRequest({ required String? command, required List? args, Duration? requestTimeout = const Duration(seconds: 60), @@ -177,10 +183,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #retries: retries, }, ), - returnValue: _i5.Future>.value([]), - ) as _i5.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override - _i5.Future ping({ + _i6.Future ping({ String? requestID, int? retryCount = 1, }) => @@ -193,10 +199,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #retryCount: retryCount, }, ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + returnValue: _i6.Future.value(false), + ) as _i6.Future); @override - _i5.Future> getBlockHeadTip({String? requestID}) => + _i6.Future> getBlockHeadTip({String? requestID}) => (super.noSuchMethod( Invocation.method( #getBlockHeadTip, @@ -204,10 +210,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getServerFeatures({String? requestID}) => + _i6.Future> getServerFeatures({String? requestID}) => (super.noSuchMethod( Invocation.method( #getServerFeatures, @@ -215,10 +221,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future broadcastTransaction({ + _i6.Future broadcastTransaction({ required String? rawTx, String? requestID, }) => @@ -231,10 +237,20 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future.value(''), - ) as _i5.Future); + returnValue: _i6.Future.value(_i5.dummyValue( + this, + Invocation.method( + #broadcastTransaction, + [], + { + #rawTx: rawTx, + #requestID: requestID, + }, + ), + )), + ) as _i6.Future); @override - _i5.Future> getBalance({ + _i6.Future> getBalance({ required String? scripthash, String? requestID, }) => @@ -248,10 +264,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future>> getHistory({ + _i6.Future>> getHistory({ required String? scripthash, String? requestID, }) => @@ -264,11 +280,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future>>> getBatchHistory( + _i6.Future>>> getBatchHistory( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -276,11 +292,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { [], {#args: args}, ), - returnValue: _i5.Future>>>.value( + returnValue: _i6.Future>>>.value( >>[]), - ) as _i5.Future>>>); + ) as _i6.Future>>>); @override - _i5.Future>> getUTXOs({ + _i6.Future>> getUTXOs({ required String? scripthash, String? requestID, }) => @@ -293,11 +309,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future>>> getBatchUTXOs( + _i6.Future>>> getBatchUTXOs( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -305,11 +321,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { [], {#args: args}, ), - returnValue: _i5.Future>>>.value( + returnValue: _i6.Future>>>.value( >>[]), - ) as _i5.Future>>>); + ) as _i6.Future>>>); @override - _i5.Future> getTransaction({ + _i6.Future> getTransaction({ required String? txHash, bool? verbose = true, String? requestID, @@ -325,10 +341,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getLelantusAnonymitySet({ + _i6.Future> getLelantusAnonymitySet({ String? groupId = r'1', String? blockhash = r'', String? requestID, @@ -344,10 +360,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future getLelantusMintData({ + _i6.Future getLelantusMintData({ dynamic mints, String? requestID, }) => @@ -360,10 +376,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future> getLelantusUsedCoinSerials({ + _i6.Future> getLelantusUsedCoinSerials({ String? requestID, required int? startNumber, }) => @@ -377,20 +393,20 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future getLelantusLatestCoinId({String? requestID}) => + _i6.Future getLelantusLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getLelantusLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i5.Future.value(0), - ) as _i5.Future); + returnValue: _i6.Future.value(0), + ) as _i6.Future); @override - _i5.Future> getSparkAnonymitySet({ + _i6.Future> getSparkAnonymitySet({ String? coinGroupId = r'1', String? startBlockHash = r'', String? requestID, @@ -406,10 +422,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getSparkUsedCoinsTags({ + _i6.Future> getSparkUsedCoinsTags({ String? requestID, required int? startNumber, }) => @@ -422,10 +438,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #startNumber: startNumber, }, ), - returnValue: _i5.Future>.value({}), - ) as _i5.Future>); + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future>> getSparkMintMetaData({ + _i6.Future>> getSparkMintMetaData({ String? requestID, required List? sparkCoinHashes, }) => @@ -438,21 +454,21 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #sparkCoinHashes: sparkCoinHashes, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future getSparkLatestCoinId({String? requestID}) => + _i6.Future getSparkLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getSparkLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i5.Future.value(0), - ) as _i5.Future); + returnValue: _i6.Future.value(0), + ) as _i6.Future); @override - _i5.Future> getFeeRate({String? requestID}) => + _i6.Future> getFeeRate({String? requestID}) => (super.noSuchMethod( Invocation.method( #getFeeRate, @@ -460,10 +476,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future<_i3.Decimal> estimateFee({ + _i6.Future<_i3.Decimal> estimateFee({ String? requestID, required int? blocks, }) => @@ -476,7 +492,7 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #blocks: blocks, }, ), - returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( + returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #estimateFee, @@ -487,15 +503,15 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), )), - ) as _i5.Future<_i3.Decimal>); + ) as _i6.Future<_i3.Decimal>); @override - _i5.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( + _i6.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( Invocation.method( #relayFee, [], {#requestID: requestID}, ), - returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( + returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #relayFee, @@ -503,14 +519,14 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), )), - ) as _i5.Future<_i3.Decimal>); + ) as _i6.Future<_i3.Decimal>); } /// A class which mocks [CachedElectrumXClient]. /// /// See the documentation for Mockito's code generation for more information. class MockCachedElectrumXClient extends _i1.Mock - implements _i6.CachedElectrumXClient { + implements _i7.CachedElectrumXClient { MockCachedElectrumXClient() { _i1.throwOnMissingStub(this); } @@ -524,7 +540,7 @@ class MockCachedElectrumXClient extends _i1.Mock ), ) as _i4.ElectrumXClient); @override - _i5.Future> getAnonymitySet({ + _i6.Future> getAnonymitySet({ required String? groupId, String? blockhash = r'', required _i2.CryptoCurrency? cryptoCurrency, @@ -540,10 +556,10 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getSparkAnonymitySet({ + _i6.Future> getSparkAnonymitySet({ required String? groupId, String? blockhash = r'', required _i2.CryptoCurrency? cryptoCurrency, @@ -561,15 +577,21 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override String base64ToHex(String? source) => (super.noSuchMethod( Invocation.method( #base64ToHex, [source], ), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.method( + #base64ToHex, + [source], + ), + ), ) as String); @override String base64ToReverseHex(String? source) => (super.noSuchMethod( @@ -577,10 +599,16 @@ class MockCachedElectrumXClient extends _i1.Mock #base64ToReverseHex, [source], ), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.method( + #base64ToReverseHex, + [source], + ), + ), ) as String); @override - _i5.Future> getTransaction({ + _i6.Future> getTransaction({ required String? txHash, required _i2.CryptoCurrency? cryptoCurrency, bool? verbose = true, @@ -596,10 +624,10 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getUsedCoinSerials({ + _i6.Future> getUsedCoinSerials({ required _i2.CryptoCurrency? cryptoCurrency, int? startNumber = 0, }) => @@ -612,10 +640,10 @@ class MockCachedElectrumXClient extends _i1.Mock #startNumber: startNumber, }, ), - returnValue: _i5.Future>.value([]), - ) as _i5.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override - _i5.Future> getSparkUsedCoinsTags( + _i6.Future> getSparkUsedCoinsTags( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( @@ -623,10 +651,10 @@ class MockCachedElectrumXClient extends _i1.Mock [], {#cryptoCurrency: cryptoCurrency}, ), - returnValue: _i5.Future>.value({}), - ) as _i5.Future>); + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future clearSharedTransactionCache( + _i6.Future clearSharedTransactionCache( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( @@ -634,16 +662,16 @@ class MockCachedElectrumXClient extends _i1.Mock [], {#cryptoCurrency: cryptoCurrency}, ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); } /// A class which mocks [TransactionNotificationTracker]. /// /// See the documentation for Mockito's code generation for more information. class MockTransactionNotificationTracker extends _i1.Mock - implements _i7.TransactionNotificationTracker { + implements _i8.TransactionNotificationTracker { MockTransactionNotificationTracker() { _i1.throwOnMissingStub(this); } @@ -651,7 +679,10 @@ class MockTransactionNotificationTracker extends _i1.Mock @override String get walletId => (super.noSuchMethod( Invocation.getter(#walletId), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.getter(#walletId), + ), ) as String); @override List get pendings => (super.noSuchMethod( @@ -672,14 +703,14 @@ class MockTransactionNotificationTracker extends _i1.Mock returnValue: false, ) as bool); @override - _i5.Future addNotifiedPending(String? txid) => (super.noSuchMethod( + _i6.Future addNotifiedPending(String? txid) => (super.noSuchMethod( Invocation.method( #addNotifiedPending, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override bool wasNotifiedConfirmed(String? txid) => (super.noSuchMethod( Invocation.method( @@ -689,21 +720,21 @@ class MockTransactionNotificationTracker extends _i1.Mock returnValue: false, ) as bool); @override - _i5.Future addNotifiedConfirmed(String? txid) => (super.noSuchMethod( + _i6.Future addNotifiedConfirmed(String? txid) => (super.noSuchMethod( Invocation.method( #addNotifiedConfirmed, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future deleteTransaction(String? txid) => (super.noSuchMethod( + _i6.Future deleteTransaction(String? txid) => (super.noSuchMethod( Invocation.method( #deleteTransaction, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); } diff --git a/test/services/coins/particl/particl_wallet_test.mocks.dart b/test/services/coins/particl/particl_wallet_test.mocks.dart index aac19401c..5c6f92792 100644 --- a/test/services/coins/particl/particl_wallet_test.mocks.dart +++ b/test/services/coins/particl/particl_wallet_test.mocks.dart @@ -1,16 +1,17 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/services/coins/particl/particl_wallet_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i5; +import 'dart:async' as _i6; import 'package:decimal/decimal.dart' as _i3; import 'package:mockito/mockito.dart' as _i1; -import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i6; +import 'package:mockito/src/dummies.dart' as _i5; +import 'package:stackwallet/electrumx_rpc/cached_electrumx_client.dart' as _i7; import 'package:stackwallet/electrumx_rpc/electrumx_client.dart' as _i4; import 'package:stackwallet/services/transaction_notification_tracker.dart' - as _i7; + as _i8; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' as _i2; @@ -18,6 +19,8 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -116,7 +119,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { @override String get host => (super.noSuchMethod( Invocation.getter(#host), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.getter(#host), + ), ) as String); @override int get port => (super.noSuchMethod( @@ -129,16 +135,16 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { returnValue: false, ) as bool); @override - _i5.Future closeAdapter() => (super.noSuchMethod( + _i6.Future closeAdapter() => (super.noSuchMethod( Invocation.method( #closeAdapter, [], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future request({ + _i6.Future request({ required String? command, List? args = const [], String? requestID, @@ -157,10 +163,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestTimeout: requestTimeout, }, ), - returnValue: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future> batchRequest({ + _i6.Future> batchRequest({ required String? command, required List? args, Duration? requestTimeout = const Duration(seconds: 60), @@ -177,10 +183,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #retries: retries, }, ), - returnValue: _i5.Future>.value([]), - ) as _i5.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override - _i5.Future ping({ + _i6.Future ping({ String? requestID, int? retryCount = 1, }) => @@ -193,10 +199,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #retryCount: retryCount, }, ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + returnValue: _i6.Future.value(false), + ) as _i6.Future); @override - _i5.Future> getBlockHeadTip({String? requestID}) => + _i6.Future> getBlockHeadTip({String? requestID}) => (super.noSuchMethod( Invocation.method( #getBlockHeadTip, @@ -204,10 +210,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getServerFeatures({String? requestID}) => + _i6.Future> getServerFeatures({String? requestID}) => (super.noSuchMethod( Invocation.method( #getServerFeatures, @@ -215,10 +221,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future broadcastTransaction({ + _i6.Future broadcastTransaction({ required String? rawTx, String? requestID, }) => @@ -231,10 +237,20 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future.value(''), - ) as _i5.Future); + returnValue: _i6.Future.value(_i5.dummyValue( + this, + Invocation.method( + #broadcastTransaction, + [], + { + #rawTx: rawTx, + #requestID: requestID, + }, + ), + )), + ) as _i6.Future); @override - _i5.Future> getBalance({ + _i6.Future> getBalance({ required String? scripthash, String? requestID, }) => @@ -248,10 +264,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future>> getHistory({ + _i6.Future>> getHistory({ required String? scripthash, String? requestID, }) => @@ -264,11 +280,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future>>> getBatchHistory( + _i6.Future>>> getBatchHistory( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -276,11 +292,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { [], {#args: args}, ), - returnValue: _i5.Future>>>.value( + returnValue: _i6.Future>>>.value( >>[]), - ) as _i5.Future>>>); + ) as _i6.Future>>>); @override - _i5.Future>> getUTXOs({ + _i6.Future>> getUTXOs({ required String? scripthash, String? requestID, }) => @@ -293,11 +309,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future>>> getBatchUTXOs( + _i6.Future>>> getBatchUTXOs( {required List? args}) => (super.noSuchMethod( Invocation.method( @@ -305,11 +321,11 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { [], {#args: args}, ), - returnValue: _i5.Future>>>.value( + returnValue: _i6.Future>>>.value( >>[]), - ) as _i5.Future>>>); + ) as _i6.Future>>>); @override - _i5.Future> getTransaction({ + _i6.Future> getTransaction({ required String? txHash, bool? verbose = true, String? requestID, @@ -325,10 +341,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getLelantusAnonymitySet({ + _i6.Future> getLelantusAnonymitySet({ String? groupId = r'1', String? blockhash = r'', String? requestID, @@ -344,10 +360,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future getLelantusMintData({ + _i6.Future getLelantusMintData({ dynamic mints, String? requestID, }) => @@ -360,10 +376,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #requestID: requestID, }, ), - returnValue: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future> getLelantusUsedCoinSerials({ + _i6.Future> getLelantusUsedCoinSerials({ String? requestID, required int? startNumber, }) => @@ -377,20 +393,20 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future getLelantusLatestCoinId({String? requestID}) => + _i6.Future getLelantusLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getLelantusLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i5.Future.value(0), - ) as _i5.Future); + returnValue: _i6.Future.value(0), + ) as _i6.Future); @override - _i5.Future> getSparkAnonymitySet({ + _i6.Future> getSparkAnonymitySet({ String? coinGroupId = r'1', String? startBlockHash = r'', String? requestID, @@ -406,10 +422,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getSparkUsedCoinsTags({ + _i6.Future> getSparkUsedCoinsTags({ String? requestID, required int? startNumber, }) => @@ -422,10 +438,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #startNumber: startNumber, }, ), - returnValue: _i5.Future>.value({}), - ) as _i5.Future>); + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future>> getSparkMintMetaData({ + _i6.Future>> getSparkMintMetaData({ String? requestID, required List? sparkCoinHashes, }) => @@ -438,21 +454,21 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #sparkCoinHashes: sparkCoinHashes, }, ), - returnValue: _i5.Future>>.value( + returnValue: _i6.Future>>.value( >[]), - ) as _i5.Future>>); + ) as _i6.Future>>); @override - _i5.Future getSparkLatestCoinId({String? requestID}) => + _i6.Future getSparkLatestCoinId({String? requestID}) => (super.noSuchMethod( Invocation.method( #getSparkLatestCoinId, [], {#requestID: requestID}, ), - returnValue: _i5.Future.value(0), - ) as _i5.Future); + returnValue: _i6.Future.value(0), + ) as _i6.Future); @override - _i5.Future> getFeeRate({String? requestID}) => + _i6.Future> getFeeRate({String? requestID}) => (super.noSuchMethod( Invocation.method( #getFeeRate, @@ -460,10 +476,10 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future<_i3.Decimal> estimateFee({ + _i6.Future<_i3.Decimal> estimateFee({ String? requestID, required int? blocks, }) => @@ -476,7 +492,7 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { #blocks: blocks, }, ), - returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( + returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #estimateFee, @@ -487,15 +503,15 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { }, ), )), - ) as _i5.Future<_i3.Decimal>); + ) as _i6.Future<_i3.Decimal>); @override - _i5.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( + _i6.Future<_i3.Decimal> relayFee({String? requestID}) => (super.noSuchMethod( Invocation.method( #relayFee, [], {#requestID: requestID}, ), - returnValue: _i5.Future<_i3.Decimal>.value(_FakeDecimal_2( + returnValue: _i6.Future<_i3.Decimal>.value(_FakeDecimal_2( this, Invocation.method( #relayFee, @@ -503,14 +519,14 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { {#requestID: requestID}, ), )), - ) as _i5.Future<_i3.Decimal>); + ) as _i6.Future<_i3.Decimal>); } /// A class which mocks [CachedElectrumXClient]. /// /// See the documentation for Mockito's code generation for more information. class MockCachedElectrumXClient extends _i1.Mock - implements _i6.CachedElectrumXClient { + implements _i7.CachedElectrumXClient { MockCachedElectrumXClient() { _i1.throwOnMissingStub(this); } @@ -524,7 +540,7 @@ class MockCachedElectrumXClient extends _i1.Mock ), ) as _i4.ElectrumXClient); @override - _i5.Future> getAnonymitySet({ + _i6.Future> getAnonymitySet({ required String? groupId, String? blockhash = r'', required _i2.CryptoCurrency? cryptoCurrency, @@ -540,10 +556,10 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getSparkAnonymitySet({ + _i6.Future> getSparkAnonymitySet({ required String? groupId, String? blockhash = r'', required _i2.CryptoCurrency? cryptoCurrency, @@ -561,15 +577,21 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override String base64ToHex(String? source) => (super.noSuchMethod( Invocation.method( #base64ToHex, [source], ), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.method( + #base64ToHex, + [source], + ), + ), ) as String); @override String base64ToReverseHex(String? source) => (super.noSuchMethod( @@ -577,10 +599,16 @@ class MockCachedElectrumXClient extends _i1.Mock #base64ToReverseHex, [source], ), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.method( + #base64ToReverseHex, + [source], + ), + ), ) as String); @override - _i5.Future> getTransaction({ + _i6.Future> getTransaction({ required String? txHash, required _i2.CryptoCurrency? cryptoCurrency, bool? verbose = true, @@ -596,10 +624,10 @@ class MockCachedElectrumXClient extends _i1.Mock }, ), returnValue: - _i5.Future>.value({}), - ) as _i5.Future>); + _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future> getUsedCoinSerials({ + _i6.Future> getUsedCoinSerials({ required _i2.CryptoCurrency? cryptoCurrency, int? startNumber = 0, }) => @@ -612,10 +640,10 @@ class MockCachedElectrumXClient extends _i1.Mock #startNumber: startNumber, }, ), - returnValue: _i5.Future>.value([]), - ) as _i5.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override - _i5.Future> getSparkUsedCoinsTags( + _i6.Future> getSparkUsedCoinsTags( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( @@ -623,10 +651,10 @@ class MockCachedElectrumXClient extends _i1.Mock [], {#cryptoCurrency: cryptoCurrency}, ), - returnValue: _i5.Future>.value({}), - ) as _i5.Future>); + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); @override - _i5.Future clearSharedTransactionCache( + _i6.Future clearSharedTransactionCache( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( Invocation.method( @@ -634,16 +662,16 @@ class MockCachedElectrumXClient extends _i1.Mock [], {#cryptoCurrency: cryptoCurrency}, ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); } /// A class which mocks [TransactionNotificationTracker]. /// /// See the documentation for Mockito's code generation for more information. class MockTransactionNotificationTracker extends _i1.Mock - implements _i7.TransactionNotificationTracker { + implements _i8.TransactionNotificationTracker { MockTransactionNotificationTracker() { _i1.throwOnMissingStub(this); } @@ -651,7 +679,10 @@ class MockTransactionNotificationTracker extends _i1.Mock @override String get walletId => (super.noSuchMethod( Invocation.getter(#walletId), - returnValue: '', + returnValue: _i5.dummyValue( + this, + Invocation.getter(#walletId), + ), ) as String); @override List get pendings => (super.noSuchMethod( @@ -672,14 +703,14 @@ class MockTransactionNotificationTracker extends _i1.Mock returnValue: false, ) as bool); @override - _i5.Future addNotifiedPending(String? txid) => (super.noSuchMethod( + _i6.Future addNotifiedPending(String? txid) => (super.noSuchMethod( Invocation.method( #addNotifiedPending, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override bool wasNotifiedConfirmed(String? txid) => (super.noSuchMethod( Invocation.method( @@ -689,21 +720,21 @@ class MockTransactionNotificationTracker extends _i1.Mock returnValue: false, ) as bool); @override - _i5.Future addNotifiedConfirmed(String? txid) => (super.noSuchMethod( + _i6.Future addNotifiedConfirmed(String? txid) => (super.noSuchMethod( Invocation.method( #addNotifiedConfirmed, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); @override - _i5.Future deleteTransaction(String? txid) => (super.noSuchMethod( + _i6.Future deleteTransaction(String? txid) => (super.noSuchMethod( Invocation.method( #deleteTransaction, [txid], ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); } diff --git a/test/utilities/amount/amount_unit_test.dart b/test/utilities/amount/amount_unit_test.dart index e4ecb33dd..96a708702 100644 --- a/test/utilities/amount/amount_unit_test.dart +++ b/test/utilities/amount/amount_unit_test.dart @@ -2,8 +2,6 @@ import 'package:decimal/decimal.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount_unit.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; void main() { diff --git a/test/widget_tests/address_book_card_test.dart b/test/widget_tests/address_book_card_test.dart index 674a259af..36199554f 100644 --- a/test/widget_tests/address_book_card_test.dart +++ b/test/widget_tests/address_book_card_test.dart @@ -12,7 +12,6 @@ import 'package:stackwallet/providers/global/address_book_service_provider.dart' import 'package:stackwallet/services/address_book_service.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/address_book_card.dart'; diff --git a/test/widget_tests/address_book_card_test.mocks.dart b/test/widget_tests/address_book_card_test.mocks.dart index b24ff6ed7..cfb056577 100644 --- a/test/widget_tests/address_book_card_test.mocks.dart +++ b/test/widget_tests/address_book_card_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/widget_tests/address_book_card_test.dart. // Do not manually edit this file. @@ -14,6 +14,8 @@ import 'package:stackwallet/services/address_book_service.dart' as _i3; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors diff --git a/test/widget_tests/custom_buttons/favorite_toggle_test.mocks.dart b/test/widget_tests/custom_buttons/favorite_toggle_test.mocks.dart index 20727e854..9463dccb8 100644 --- a/test/widget_tests/custom_buttons/favorite_toggle_test.mocks.dart +++ b/test/widget_tests/custom_buttons/favorite_toggle_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/widget_tests/custom_buttons/favorite_toggle_test.dart. // Do not manually edit this file. @@ -16,6 +16,8 @@ import 'package:stackwallet/themes/theme_service.dart' as _i4; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors diff --git a/test/widget_tests/custom_loading_overlay_test.mocks.dart b/test/widget_tests/custom_loading_overlay_test.mocks.dart index 142052fa2..6848da7ee 100644 --- a/test/widget_tests/custom_loading_overlay_test.mocks.dart +++ b/test/widget_tests/custom_loading_overlay_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/widget_tests/custom_loading_overlay_test.dart. // Do not manually edit this file. @@ -16,6 +16,8 @@ import 'package:stackwallet/themes/theme_service.dart' as _i4; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors diff --git a/test/widget_tests/custom_pin_put_test.dart b/test/widget_tests/custom_pin_put_test.dart index 1b3c1eee3..473731639 100644 --- a/test/widget_tests/custom_pin_put_test.dart +++ b/test/widget_tests/custom_pin_put_test.dart @@ -32,7 +32,7 @@ class PinWidgetState extends State { @override Widget build(BuildContext context) { - bool submittedPinMatches = false; + final bool submittedPinMatches = false; return CustomPinPut( fieldsCount: pinCount, diff --git a/test/widget_tests/desktop/desktop_scaffold_test.mocks.dart b/test/widget_tests/desktop/desktop_scaffold_test.mocks.dart index 8507ace66..046da5ebf 100644 --- a/test/widget_tests/desktop/desktop_scaffold_test.mocks.dart +++ b/test/widget_tests/desktop/desktop_scaffold_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/widget_tests/desktop/desktop_scaffold_test.dart. // Do not manually edit this file. @@ -16,6 +16,8 @@ import 'package:stackwallet/themes/theme_service.dart' as _i4; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors diff --git a/test/widget_tests/managed_favorite_test.dart b/test/widget_tests/managed_favorite_test.dart index 0d60b87c9..5298f4498 100644 --- a/test/widget_tests/managed_favorite_test.dart +++ b/test/widget_tests/managed_favorite_test.dart @@ -14,14 +14,17 @@ Amount _a(int i) => Amount.fromDecimal( fractionDigits: 8, ); -@GenerateMocks([ - Wallets, - ThemeService, - Prefs, - LocaleService -], customMocks: [ - MockSpec(returnNullOnMissingStub: true), -]) +@GenerateMocks( + [ + Wallets, + ThemeService, + Prefs, + LocaleService, + ], + customMocks: [ + MockSpec(), + ], +) void main() { // testWidgets("Test wallet info row displays correctly", (widgetTester) async { // final wallets = MockWallets(); diff --git a/test/widget_tests/managed_favorite_test.mocks.dart b/test/widget_tests/managed_favorite_test.mocks.dart index ce01550b6..dad98a259 100644 --- a/test/widget_tests/managed_favorite_test.mocks.dart +++ b/test/widget_tests/managed_favorite_test.mocks.dart @@ -1,23 +1,24 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/widget_tests/managed_favorite_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i10; import 'dart:typed_data' as _i15; -import 'dart:ui' as _i19; +import 'dart:ui' as _i20; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i17; import 'package:stackwallet/db/isar/main_db.dart' as _i3; import 'package:stackwallet/models/isar/stack_theme.dart' as _i14; -import 'package:stackwallet/models/node_model.dart' as _i21; +import 'package:stackwallet/models/node_model.dart' as _i22; import 'package:stackwallet/networking/http.dart' as _i6; -import 'package:stackwallet/services/locale_service.dart' as _i20; +import 'package:stackwallet/services/locale_service.dart' as _i21; import 'package:stackwallet/services/node_service.dart' as _i2; import 'package:stackwallet/services/wallets.dart' as _i9; import 'package:stackwallet/themes/theme_service.dart' as _i13; -import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i18; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i17; +import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i19; +import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i18; import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i16; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i8; @@ -33,6 +34,8 @@ import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_i // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -437,7 +440,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get language => (super.noSuchMethod( Invocation.getter(#language), - returnValue: '', + returnValue: _i17.dummyValue( + this, + Invocation.getter(#language), + ), ) as String); @override set language(String? newLanguage) => super.noSuchMethod( @@ -450,7 +456,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get currency => (super.noSuchMethod( Invocation.getter(#currency), - returnValue: '', + returnValue: _i17.dummyValue( + this, + Invocation.getter(#currency), + ), ) as String); @override set currency(String? newCurrency) => super.noSuchMethod( @@ -560,12 +569,12 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - _i17.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( + _i18.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( Invocation.getter(#backupFrequencyType), - returnValue: _i17.BackupFrequencyType.everyTenMinutes, - ) as _i17.BackupFrequencyType); + returnValue: _i18.BackupFrequencyType.everyTenMinutes, + ) as _i18.BackupFrequencyType); @override - set backupFrequencyType(_i17.BackupFrequencyType? backupFrequencyType) => + set backupFrequencyType(_i18.BackupFrequencyType? backupFrequencyType) => super.noSuchMethod( Invocation.setter( #backupFrequencyType, @@ -659,7 +668,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get themeId => (super.noSuchMethod( Invocation.getter(#themeId), - returnValue: '', + returnValue: _i17.dummyValue( + this, + Invocation.getter(#themeId), + ), ) as String); @override set themeId(String? themeId) => super.noSuchMethod( @@ -672,7 +684,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get systemBrightnessLightThemeId => (super.noSuchMethod( Invocation.getter(#systemBrightnessLightThemeId), - returnValue: '', + returnValue: _i17.dummyValue( + this, + Invocation.getter(#systemBrightnessLightThemeId), + ), ) as String); @override set systemBrightnessLightThemeId(String? systemBrightnessLightThemeId) => @@ -686,7 +701,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get systemBrightnessDarkThemeId => (super.noSuchMethod( Invocation.getter(#systemBrightnessDarkThemeId), - returnValue: '', + returnValue: _i17.dummyValue( + this, + Invocation.getter(#systemBrightnessDarkThemeId), + ), ) as String); @override set systemBrightnessDarkThemeId(String? systemBrightnessDarkThemeId) => @@ -760,17 +778,17 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - _i18.AmountUnit amountUnit(_i4.CryptoCurrency? coin) => (super.noSuchMethod( + _i19.AmountUnit amountUnit(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #amountUnit, [coin], ), - returnValue: _i18.AmountUnit.normal, - ) as _i18.AmountUnit); + returnValue: _i19.AmountUnit.normal, + ) as _i19.AmountUnit); @override void updateAmountUnit({ required _i4.CryptoCurrency? coin, - required _i18.AmountUnit? amountUnit, + required _i19.AmountUnit? amountUnit, }) => super.noSuchMethod( Invocation.method( @@ -838,7 +856,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - void addListener(_i19.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i20.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -846,7 +864,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - void removeListener(_i19.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i20.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -874,7 +892,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { /// A class which mocks [LocaleService]. /// /// See the documentation for Mockito's code generation for more information. -class MockLocaleService extends _i1.Mock implements _i20.LocaleService { +class MockLocaleService extends _i1.Mock implements _i21.LocaleService { MockLocaleService() { _i1.throwOnMissingStub(this); } @@ -882,7 +900,10 @@ class MockLocaleService extends _i1.Mock implements _i20.LocaleService { @override String get locale => (super.noSuchMethod( Invocation.getter(#locale), - returnValue: '', + returnValue: _i17.dummyValue( + this, + Invocation.getter(#locale), + ), ) as String); @override bool get hasListeners => (super.noSuchMethod( @@ -900,7 +921,7 @@ class MockLocaleService extends _i1.Mock implements _i20.LocaleService { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - void addListener(_i19.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i20.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -908,7 +929,7 @@ class MockLocaleService extends _i1.Mock implements _i20.LocaleService { returnValueForMissingStub: null, ); @override - void removeListener(_i19.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i20.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -937,6 +958,10 @@ class MockLocaleService extends _i1.Mock implements _i20.LocaleService { /// /// See the documentation for Mockito's code generation for more information. class MockNodeService extends _i1.Mock implements _i2.NodeService { + MockNodeService() { + _i1.throwOnMissingStub(this); + } + @override _i8.SecureStorageInterface get secureStorageInterface => (super.noSuchMethod( Invocation.getter(#secureStorageInterface), @@ -946,15 +971,15 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { ), ) as _i8.SecureStorageInterface); @override - List<_i21.NodeModel> get primaryNodes => (super.noSuchMethod( + List<_i22.NodeModel> get primaryNodes => (super.noSuchMethod( Invocation.getter(#primaryNodes), - returnValue: <_i21.NodeModel>[], - ) as List<_i21.NodeModel>); + returnValue: <_i22.NodeModel>[], + ) as List<_i22.NodeModel>); @override - List<_i21.NodeModel> get nodes => (super.noSuchMethod( + List<_i22.NodeModel> get nodes => (super.noSuchMethod( Invocation.getter(#nodes), - returnValue: <_i21.NodeModel>[], - ) as List<_i21.NodeModel>); + returnValue: <_i22.NodeModel>[], + ) as List<_i22.NodeModel>); @override bool get hasListeners => (super.noSuchMethod( Invocation.getter(#hasListeners), @@ -972,7 +997,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { @override _i10.Future setPrimaryNodeFor({ required _i4.CryptoCurrency? coin, - required _i21.NodeModel? node, + required _i22.NodeModel? node, bool? shouldNotifyListeners = false, }) => (super.noSuchMethod( @@ -989,30 +1014,30 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - _i21.NodeModel? getPrimaryNodeFor({required _i4.CryptoCurrency? currency}) => + _i22.NodeModel? getPrimaryNodeFor({required _i4.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], {#currency: currency}, - )) as _i21.NodeModel?); + )) as _i22.NodeModel?); @override - List<_i21.NodeModel> getNodesFor(_i4.CryptoCurrency? coin) => + List<_i22.NodeModel> getNodesFor(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], ), - returnValue: <_i21.NodeModel>[], - ) as List<_i21.NodeModel>); + returnValue: <_i22.NodeModel>[], + ) as List<_i22.NodeModel>); @override - _i21.NodeModel? getNodeById({required String? id}) => + _i22.NodeModel? getNodeById({required String? id}) => (super.noSuchMethod(Invocation.method( #getNodeById, [], {#id: id}, - )) as _i21.NodeModel?); + )) as _i22.NodeModel?); @override - List<_i21.NodeModel> failoverNodesFor( + List<_i22.NodeModel> failoverNodesFor( {required _i4.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( @@ -1020,11 +1045,11 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { [], {#currency: currency}, ), - returnValue: <_i21.NodeModel>[], - ) as List<_i21.NodeModel>); + returnValue: <_i22.NodeModel>[], + ) as List<_i22.NodeModel>); @override _i10.Future add( - _i21.NodeModel? node, + _i22.NodeModel? node, String? password, bool? shouldNotifyListeners, ) => @@ -1076,7 +1101,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { ) as _i10.Future); @override _i10.Future edit( - _i21.NodeModel? editedNode, + _i22.NodeModel? editedNode, String? password, bool? shouldNotifyListeners, ) => @@ -1102,7 +1127,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - void addListener(_i19.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i20.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -1110,7 +1135,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: null, ); @override - void removeListener(_i19.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i20.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], diff --git a/test/widget_tests/node_card_test.dart b/test/widget_tests/node_card_test.dart index f98814b58..45c0dbe12 100644 --- a/test/widget_tests/node_card_test.dart +++ b/test/widget_tests/node_card_test.dart @@ -10,7 +10,6 @@ import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/util.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/node_card.dart'; import 'package:stackwallet/widgets/node_options_sheet.dart'; diff --git a/test/widget_tests/node_card_test.mocks.dart b/test/widget_tests/node_card_test.mocks.dart index ec802d4e8..c34b5b77f 100644 --- a/test/widget_tests/node_card_test.mocks.dart +++ b/test/widget_tests/node_card_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/widget_tests/node_card_test.dart. // Do not manually edit this file. @@ -18,6 +18,8 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart' // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors diff --git a/test/widget_tests/node_options_sheet_test.dart b/test/widget_tests/node_options_sheet_test.dart index 94121acf2..c289b29b5 100644 --- a/test/widget_tests/node_options_sheet_test.dart +++ b/test/widget_tests/node_options_sheet_test.dart @@ -12,7 +12,6 @@ import 'package:stackwallet/services/tor_service.dart'; import 'package:stackwallet/services/wallets.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/prefs.dart'; -import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart'; import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; import 'package:stackwallet/widgets/node_options_sheet.dart'; @@ -166,7 +165,7 @@ void main() { await tester.tap(find.text("Details")); await tester.pumpAndSettle(); - var currentRoute = navigatorKey.currentState?.overlay?.context; + final currentRoute = navigatorKey.currentState?.overlay?.context; expect(currentRoute, isNotNull); }); diff --git a/test/widget_tests/node_options_sheet_test.mocks.dart b/test/widget_tests/node_options_sheet_test.mocks.dart index ff15b6330..59450b63e 100644 --- a/test/widget_tests/node_options_sheet_test.mocks.dart +++ b/test/widget_tests/node_options_sheet_test.mocks.dart @@ -1,22 +1,23 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/widget_tests/node_options_sheet_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i10; import 'dart:io' as _i8; -import 'dart:ui' as _i16; +import 'dart:ui' as _i17; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i14; import 'package:stackwallet/db/isar/main_db.dart' as _i3; -import 'package:stackwallet/models/node_model.dart' as _i17; +import 'package:stackwallet/models/node_model.dart' as _i18; import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart' - as _i19; + as _i20; import 'package:stackwallet/services/node_service.dart' as _i2; -import 'package:stackwallet/services/tor_service.dart' as _i18; +import 'package:stackwallet/services/tor_service.dart' as _i19; import 'package:stackwallet/services/wallets.dart' as _i9; -import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i15; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i14; +import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i16; +import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i15; import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i13; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i7; @@ -27,12 +28,14 @@ import 'package:stackwallet/wallets/isar/models/wallet_info.dart' as _i11; import 'package:stackwallet/wallets/wallet/wallet.dart' as _i5; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart' as _i6; -import 'package:tor_ffi_plugin/tor_ffi_plugin.dart' as _i20; +import 'package:tor_ffi_plugin/tor_ffi_plugin.dart' as _i21; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -323,7 +326,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get language => (super.noSuchMethod( Invocation.getter(#language), - returnValue: '', + returnValue: _i14.dummyValue( + this, + Invocation.getter(#language), + ), ) as String); @override set language(String? newLanguage) => super.noSuchMethod( @@ -336,7 +342,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get currency => (super.noSuchMethod( Invocation.getter(#currency), - returnValue: '', + returnValue: _i14.dummyValue( + this, + Invocation.getter(#currency), + ), ) as String); @override set currency(String? newCurrency) => super.noSuchMethod( @@ -446,12 +455,12 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - _i14.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( + _i15.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( Invocation.getter(#backupFrequencyType), - returnValue: _i14.BackupFrequencyType.everyTenMinutes, - ) as _i14.BackupFrequencyType); + returnValue: _i15.BackupFrequencyType.everyTenMinutes, + ) as _i15.BackupFrequencyType); @override - set backupFrequencyType(_i14.BackupFrequencyType? backupFrequencyType) => + set backupFrequencyType(_i15.BackupFrequencyType? backupFrequencyType) => super.noSuchMethod( Invocation.setter( #backupFrequencyType, @@ -545,7 +554,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get themeId => (super.noSuchMethod( Invocation.getter(#themeId), - returnValue: '', + returnValue: _i14.dummyValue( + this, + Invocation.getter(#themeId), + ), ) as String); @override set themeId(String? themeId) => super.noSuchMethod( @@ -558,7 +570,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get systemBrightnessLightThemeId => (super.noSuchMethod( Invocation.getter(#systemBrightnessLightThemeId), - returnValue: '', + returnValue: _i14.dummyValue( + this, + Invocation.getter(#systemBrightnessLightThemeId), + ), ) as String); @override set systemBrightnessLightThemeId(String? systemBrightnessLightThemeId) => @@ -572,7 +587,10 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { @override String get systemBrightnessDarkThemeId => (super.noSuchMethod( Invocation.getter(#systemBrightnessDarkThemeId), - returnValue: '', + returnValue: _i14.dummyValue( + this, + Invocation.getter(#systemBrightnessDarkThemeId), + ), ) as String); @override set systemBrightnessDarkThemeId(String? systemBrightnessDarkThemeId) => @@ -646,17 +664,17 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - _i15.AmountUnit amountUnit(_i4.CryptoCurrency? coin) => (super.noSuchMethod( + _i16.AmountUnit amountUnit(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #amountUnit, [coin], ), - returnValue: _i15.AmountUnit.normal, - ) as _i15.AmountUnit); + returnValue: _i16.AmountUnit.normal, + ) as _i16.AmountUnit); @override void updateAmountUnit({ required _i4.CryptoCurrency? coin, - required _i15.AmountUnit? amountUnit, + required _i16.AmountUnit? amountUnit, }) => super.noSuchMethod( Invocation.method( @@ -724,7 +742,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -732,7 +750,7 @@ class MockPrefs extends _i1.Mock implements _i12.Prefs { returnValueForMissingStub: null, ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -774,15 +792,15 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { ), ) as _i7.SecureStorageInterface); @override - List<_i17.NodeModel> get primaryNodes => (super.noSuchMethod( + List<_i18.NodeModel> get primaryNodes => (super.noSuchMethod( Invocation.getter(#primaryNodes), - returnValue: <_i17.NodeModel>[], - ) as List<_i17.NodeModel>); + returnValue: <_i18.NodeModel>[], + ) as List<_i18.NodeModel>); @override - List<_i17.NodeModel> get nodes => (super.noSuchMethod( + List<_i18.NodeModel> get nodes => (super.noSuchMethod( Invocation.getter(#nodes), - returnValue: <_i17.NodeModel>[], - ) as List<_i17.NodeModel>); + returnValue: <_i18.NodeModel>[], + ) as List<_i18.NodeModel>); @override bool get hasListeners => (super.noSuchMethod( Invocation.getter(#hasListeners), @@ -800,7 +818,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { @override _i10.Future setPrimaryNodeFor({ required _i4.CryptoCurrency? coin, - required _i17.NodeModel? node, + required _i18.NodeModel? node, bool? shouldNotifyListeners = false, }) => (super.noSuchMethod( @@ -817,30 +835,30 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - _i17.NodeModel? getPrimaryNodeFor({required _i4.CryptoCurrency? currency}) => + _i18.NodeModel? getPrimaryNodeFor({required _i4.CryptoCurrency? currency}) => (super.noSuchMethod(Invocation.method( #getPrimaryNodeFor, [], {#currency: currency}, - )) as _i17.NodeModel?); + )) as _i18.NodeModel?); @override - List<_i17.NodeModel> getNodesFor(_i4.CryptoCurrency? coin) => + List<_i18.NodeModel> getNodesFor(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #getNodesFor, [coin], ), - returnValue: <_i17.NodeModel>[], - ) as List<_i17.NodeModel>); + returnValue: <_i18.NodeModel>[], + ) as List<_i18.NodeModel>); @override - _i17.NodeModel? getNodeById({required String? id}) => + _i18.NodeModel? getNodeById({required String? id}) => (super.noSuchMethod(Invocation.method( #getNodeById, [], {#id: id}, - )) as _i17.NodeModel?); + )) as _i18.NodeModel?); @override - List<_i17.NodeModel> failoverNodesFor( + List<_i18.NodeModel> failoverNodesFor( {required _i4.CryptoCurrency? currency}) => (super.noSuchMethod( Invocation.method( @@ -848,11 +866,11 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { [], {#currency: currency}, ), - returnValue: <_i17.NodeModel>[], - ) as List<_i17.NodeModel>); + returnValue: <_i18.NodeModel>[], + ) as List<_i18.NodeModel>); @override _i10.Future add( - _i17.NodeModel? node, + _i18.NodeModel? node, String? password, bool? shouldNotifyListeners, ) => @@ -904,7 +922,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { ) as _i10.Future); @override _i10.Future edit( - _i17.NodeModel? editedNode, + _i18.NodeModel? editedNode, String? password, bool? shouldNotifyListeners, ) => @@ -930,7 +948,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: _i10.Future.value(), ) as _i10.Future); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -938,7 +956,7 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { returnValueForMissingStub: null, ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -966,16 +984,16 @@ class MockNodeService extends _i1.Mock implements _i2.NodeService { /// A class which mocks [TorService]. /// /// See the documentation for Mockito's code generation for more information. -class MockTorService extends _i1.Mock implements _i18.TorService { +class MockTorService extends _i1.Mock implements _i19.TorService { MockTorService() { _i1.throwOnMissingStub(this); } @override - _i19.TorConnectionStatus get status => (super.noSuchMethod( + _i20.TorConnectionStatus get status => (super.noSuchMethod( Invocation.getter(#status), - returnValue: _i19.TorConnectionStatus.disconnected, - ) as _i19.TorConnectionStatus); + returnValue: _i20.TorConnectionStatus.disconnected, + ) as _i20.TorConnectionStatus); @override ({_i8.InternetAddress host, int port}) getProxyInfo() => (super.noSuchMethod( Invocation.method( @@ -996,7 +1014,7 @@ class MockTorService extends _i1.Mock implements _i18.TorService { @override void init({ required String? torDataDirPath, - _i20.Tor? mockableOverride, + _i21.Tor? mockableOverride, }) => super.noSuchMethod( Invocation.method( diff --git a/test/widget_tests/table_view/table_view_row_test.mocks.dart b/test/widget_tests/table_view/table_view_row_test.mocks.dart index 9880d1e22..09791d1f0 100644 --- a/test/widget_tests/table_view/table_view_row_test.mocks.dart +++ b/test/widget_tests/table_view/table_view_row_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/widget_tests/table_view/table_view_row_test.dart. // Do not manually edit this file. @@ -25,6 +25,8 @@ import 'package:stackwallet/wallets/wallet/wallet.dart' as _i5; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors diff --git a/test/widget_tests/trade_card_test.mocks.dart b/test/widget_tests/trade_card_test.mocks.dart index e8bb7f552..0f62658a4 100644 --- a/test/widget_tests/trade_card_test.mocks.dart +++ b/test/widget_tests/trade_card_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/widget_tests/trade_card_test.dart. // Do not manually edit this file. @@ -7,6 +7,7 @@ import 'dart:async' as _i6; import 'dart:typed_data' as _i7; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i8; import 'package:stackwallet/db/isar/main_db.dart' as _i3; import 'package:stackwallet/models/isar/stack_theme.dart' as _i5; import 'package:stackwallet/networking/http.dart' as _i2; @@ -16,6 +17,8 @@ import 'package:stackwallet/themes/theme_service.dart' as _i4; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -168,91 +171,145 @@ class MockIThemeAssets extends _i1.Mock implements _i5.IThemeAssets { @override String get bellNew => (super.noSuchMethod( Invocation.getter(#bellNew), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#bellNew), + ), ) as String); @override String get buy => (super.noSuchMethod( Invocation.getter(#buy), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#buy), + ), ) as String); @override String get exchange => (super.noSuchMethod( Invocation.getter(#exchange), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#exchange), + ), ) as String); @override String get personaIncognito => (super.noSuchMethod( Invocation.getter(#personaIncognito), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#personaIncognito), + ), ) as String); @override String get personaEasy => (super.noSuchMethod( Invocation.getter(#personaEasy), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#personaEasy), + ), ) as String); @override String get stack => (super.noSuchMethod( Invocation.getter(#stack), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#stack), + ), ) as String); @override String get stackIcon => (super.noSuchMethod( Invocation.getter(#stackIcon), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#stackIcon), + ), ) as String); @override String get receive => (super.noSuchMethod( Invocation.getter(#receive), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#receive), + ), ) as String); @override String get receivePending => (super.noSuchMethod( Invocation.getter(#receivePending), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#receivePending), + ), ) as String); @override String get receiveCancelled => (super.noSuchMethod( Invocation.getter(#receiveCancelled), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#receiveCancelled), + ), ) as String); @override String get send => (super.noSuchMethod( Invocation.getter(#send), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#send), + ), ) as String); @override String get sendPending => (super.noSuchMethod( Invocation.getter(#sendPending), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#sendPending), + ), ) as String); @override String get sendCancelled => (super.noSuchMethod( Invocation.getter(#sendCancelled), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#sendCancelled), + ), ) as String); @override String get themeSelector => (super.noSuchMethod( Invocation.getter(#themeSelector), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#themeSelector), + ), ) as String); @override String get themePreview => (super.noSuchMethod( Invocation.getter(#themePreview), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#themePreview), + ), ) as String); @override String get txExchange => (super.noSuchMethod( Invocation.getter(#txExchange), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#txExchange), + ), ) as String); @override String get txExchangePending => (super.noSuchMethod( Invocation.getter(#txExchangePending), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#txExchangePending), + ), ) as String); @override String get txExchangeFailed => (super.noSuchMethod( Invocation.getter(#txExchangeFailed), - returnValue: '', + returnValue: _i8.dummyValue( + this, + Invocation.getter(#txExchangeFailed), + ), ) as String); } diff --git a/test/widget_tests/transaction_card_test.mocks.dart b/test/widget_tests/transaction_card_test.mocks.dart index 6d3d98e0f..cc4157a10 100644 --- a/test/widget_tests/transaction_card_test.mocks.dart +++ b/test/widget_tests/transaction_card_test.mocks.dart @@ -1,31 +1,32 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/widget_tests/transaction_card_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i11; -import 'dart:typed_data' as _i24; -import 'dart:ui' as _i16; +import 'dart:typed_data' as _i25; +import 'dart:ui' as _i17; -import 'package:decimal/decimal.dart' as _i21; +import 'package:decimal/decimal.dart' as _i22; import 'package:isar/isar.dart' as _i9; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i16; import 'package:stackwallet/db/isar/main_db.dart' as _i3; -import 'package:stackwallet/models/isar/models/block_explorer.dart' as _i26; +import 'package:stackwallet/models/isar/models/block_explorer.dart' as _i27; import 'package:stackwallet/models/isar/models/blockchain_data/v2/transaction_v2.dart' - as _i28; -import 'package:stackwallet/models/isar/models/contact_entry.dart' as _i25; -import 'package:stackwallet/models/isar/models/isar_models.dart' as _i27; -import 'package:stackwallet/models/isar/stack_theme.dart' as _i23; + as _i29; +import 'package:stackwallet/models/isar/models/contact_entry.dart' as _i26; +import 'package:stackwallet/models/isar/models/isar_models.dart' as _i28; +import 'package:stackwallet/models/isar/stack_theme.dart' as _i24; import 'package:stackwallet/networking/http.dart' as _i8; import 'package:stackwallet/services/locale_service.dart' as _i15; import 'package:stackwallet/services/node_service.dart' as _i2; -import 'package:stackwallet/services/price_service.dart' as _i20; +import 'package:stackwallet/services/price_service.dart' as _i21; import 'package:stackwallet/services/wallets.dart' as _i10; -import 'package:stackwallet/themes/theme_service.dart' as _i22; -import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i19; -import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i18; -import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i17; +import 'package:stackwallet/themes/theme_service.dart' as _i23; +import 'package:stackwallet/utilities/amount/amount_unit.dart' as _i20; +import 'package:stackwallet/utilities/enums/backup_frequency_type.dart' as _i19; +import 'package:stackwallet/utilities/enums/sync_type_enum.dart' as _i18; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i13; import 'package:stackwallet/utilities/prefs.dart' as _i14; @@ -41,6 +42,8 @@ import 'package:tuple/tuple.dart' as _i7; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -272,7 +275,10 @@ class MockLocaleService extends _i1.Mock implements _i15.LocaleService { @override String get locale => (super.noSuchMethod( Invocation.getter(#locale), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#locale), + ), ) as String); @override bool get hasListeners => (super.noSuchMethod( @@ -290,7 +296,7 @@ class MockLocaleService extends _i1.Mock implements _i15.LocaleService { returnValueForMissingStub: _i11.Future.value(), ) as _i11.Future); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -298,7 +304,7 @@ class MockLocaleService extends _i1.Mock implements _i15.LocaleService { returnValueForMissingStub: null, ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -382,12 +388,12 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { returnValueForMissingStub: null, ); @override - _i17.SyncingType get syncType => (super.noSuchMethod( + _i18.SyncingType get syncType => (super.noSuchMethod( Invocation.getter(#syncType), - returnValue: _i17.SyncingType.currentWalletOnly, - ) as _i17.SyncingType); + returnValue: _i18.SyncingType.currentWalletOnly, + ) as _i18.SyncingType); @override - set syncType(_i17.SyncingType? syncType) => super.noSuchMethod( + set syncType(_i18.SyncingType? syncType) => super.noSuchMethod( Invocation.setter( #syncType, syncType, @@ -423,7 +429,10 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { @override String get language => (super.noSuchMethod( Invocation.getter(#language), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#language), + ), ) as String); @override set language(String? newLanguage) => super.noSuchMethod( @@ -436,7 +445,10 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { @override String get currency => (super.noSuchMethod( Invocation.getter(#currency), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#currency), + ), ) as String); @override set currency(String? newCurrency) => super.noSuchMethod( @@ -546,12 +558,12 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { returnValueForMissingStub: null, ); @override - _i18.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( + _i19.BackupFrequencyType get backupFrequencyType => (super.noSuchMethod( Invocation.getter(#backupFrequencyType), - returnValue: _i18.BackupFrequencyType.everyTenMinutes, - ) as _i18.BackupFrequencyType); + returnValue: _i19.BackupFrequencyType.everyTenMinutes, + ) as _i19.BackupFrequencyType); @override - set backupFrequencyType(_i18.BackupFrequencyType? backupFrequencyType) => + set backupFrequencyType(_i19.BackupFrequencyType? backupFrequencyType) => super.noSuchMethod( Invocation.setter( #backupFrequencyType, @@ -645,7 +657,10 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { @override String get themeId => (super.noSuchMethod( Invocation.getter(#themeId), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#themeId), + ), ) as String); @override set themeId(String? themeId) => super.noSuchMethod( @@ -658,7 +673,10 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { @override String get systemBrightnessLightThemeId => (super.noSuchMethod( Invocation.getter(#systemBrightnessLightThemeId), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#systemBrightnessLightThemeId), + ), ) as String); @override set systemBrightnessLightThemeId(String? systemBrightnessLightThemeId) => @@ -672,7 +690,10 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { @override String get systemBrightnessDarkThemeId => (super.noSuchMethod( Invocation.getter(#systemBrightnessDarkThemeId), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#systemBrightnessDarkThemeId), + ), ) as String); @override set systemBrightnessDarkThemeId(String? systemBrightnessDarkThemeId) => @@ -746,17 +767,17 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { returnValueForMissingStub: _i11.Future.value(), ) as _i11.Future); @override - _i19.AmountUnit amountUnit(_i4.CryptoCurrency? coin) => (super.noSuchMethod( + _i20.AmountUnit amountUnit(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #amountUnit, [coin], ), - returnValue: _i19.AmountUnit.normal, - ) as _i19.AmountUnit); + returnValue: _i20.AmountUnit.normal, + ) as _i20.AmountUnit); @override void updateAmountUnit({ required _i4.CryptoCurrency? coin, - required _i19.AmountUnit? amountUnit, + required _i20.AmountUnit? amountUnit, }) => super.noSuchMethod( Invocation.method( @@ -824,7 +845,7 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { returnValueForMissingStub: null, ); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -832,7 +853,7 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { returnValueForMissingStub: null, ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -860,7 +881,7 @@ class MockPrefs extends _i1.Mock implements _i14.Prefs { /// A class which mocks [PriceService]. /// /// See the documentation for Mockito's code generation for more information. -class MockPriceService extends _i1.Mock implements _i20.PriceService { +class MockPriceService extends _i1.Mock implements _i21.PriceService { MockPriceService() { _i1.throwOnMissingStub(this); } @@ -868,7 +889,10 @@ class MockPriceService extends _i1.Mock implements _i20.PriceService { @override String get baseTicker => (super.noSuchMethod( Invocation.getter(#baseTicker), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#baseTicker), + ), ) as String); @override set baseTicker(String? _baseTicker) => super.noSuchMethod( @@ -898,35 +922,35 @@ class MockPriceService extends _i1.Mock implements _i20.PriceService { returnValue: false, ) as bool); @override - _i7.Tuple2<_i21.Decimal, double> getPrice(_i4.CryptoCurrency? coin) => + _i7.Tuple2<_i22.Decimal, double> getPrice(_i4.CryptoCurrency? coin) => (super.noSuchMethod( Invocation.method( #getPrice, [coin], ), - returnValue: _FakeTuple2_5<_i21.Decimal, double>( + returnValue: _FakeTuple2_5<_i22.Decimal, double>( this, Invocation.method( #getPrice, [coin], ), ), - ) as _i7.Tuple2<_i21.Decimal, double>); + ) as _i7.Tuple2<_i22.Decimal, double>); @override - _i7.Tuple2<_i21.Decimal, double> getTokenPrice(String? contractAddress) => + _i7.Tuple2<_i22.Decimal, double> getTokenPrice(String? contractAddress) => (super.noSuchMethod( Invocation.method( #getTokenPrice, [contractAddress], ), - returnValue: _FakeTuple2_5<_i21.Decimal, double>( + returnValue: _FakeTuple2_5<_i22.Decimal, double>( this, Invocation.method( #getTokenPrice, [contractAddress], ), ), - ) as _i7.Tuple2<_i21.Decimal, double>); + ) as _i7.Tuple2<_i22.Decimal, double>); @override _i11.Future updatePrice() => (super.noSuchMethod( Invocation.method( @@ -961,7 +985,7 @@ class MockPriceService extends _i1.Mock implements _i20.PriceService { returnValueForMissingStub: null, ); @override - void addListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -969,7 +993,7 @@ class MockPriceService extends _i1.Mock implements _i20.PriceService { returnValueForMissingStub: null, ); @override - void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -989,7 +1013,7 @@ class MockPriceService extends _i1.Mock implements _i20.PriceService { /// A class which mocks [ThemeService]. /// /// See the documentation for Mockito's code generation for more information. -class MockThemeService extends _i1.Mock implements _i22.ThemeService { +class MockThemeService extends _i1.Mock implements _i23.ThemeService { MockThemeService() { _i1.throwOnMissingStub(this); } @@ -1019,10 +1043,10 @@ class MockThemeService extends _i1.Mock implements _i22.ThemeService { ), ) as _i3.MainDB); @override - List<_i23.StackTheme> get installedThemes => (super.noSuchMethod( + List<_i24.StackTheme> get installedThemes => (super.noSuchMethod( Invocation.getter(#installedThemes), - returnValue: <_i23.StackTheme>[], - ) as List<_i23.StackTheme>); + returnValue: <_i24.StackTheme>[], + ) as List<_i24.StackTheme>); @override void init(_i3.MainDB? db) => super.noSuchMethod( Invocation.method( @@ -1032,7 +1056,7 @@ class MockThemeService extends _i1.Mock implements _i22.ThemeService { returnValueForMissingStub: null, ); @override - _i11.Future install({required _i24.Uint8List? themeArchiveData}) => + _i11.Future install({required _i25.Uint8List? themeArchiveData}) => (super.noSuchMethod( Invocation.method( #install, @@ -1072,33 +1096,33 @@ class MockThemeService extends _i1.Mock implements _i22.ThemeService { returnValue: _i11.Future.value(false), ) as _i11.Future); @override - _i11.Future> fetchThemes() => + _i11.Future> fetchThemes() => (super.noSuchMethod( Invocation.method( #fetchThemes, [], ), - returnValue: _i11.Future>.value( - <_i22.StackThemeMetaData>[]), - ) as _i11.Future>); + returnValue: _i11.Future>.value( + <_i23.StackThemeMetaData>[]), + ) as _i11.Future>); @override - _i11.Future<_i24.Uint8List> fetchTheme( - {required _i22.StackThemeMetaData? themeMetaData}) => + _i11.Future<_i25.Uint8List> fetchTheme( + {required _i23.StackThemeMetaData? themeMetaData}) => (super.noSuchMethod( Invocation.method( #fetchTheme, [], {#themeMetaData: themeMetaData}, ), - returnValue: _i11.Future<_i24.Uint8List>.value(_i24.Uint8List(0)), - ) as _i11.Future<_i24.Uint8List>); + returnValue: _i11.Future<_i25.Uint8List>.value(_i25.Uint8List(0)), + ) as _i11.Future<_i25.Uint8List>); @override - _i23.StackTheme? getTheme({required String? themeId}) => + _i24.StackTheme? getTheme({required String? themeId}) => (super.noSuchMethod(Invocation.method( #getTheme, [], {#themeId: themeId}, - )) as _i23.StackTheme?); + )) as _i24.StackTheme?); } /// A class which mocks [MainDB]. @@ -1147,13 +1171,13 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValueForMissingStub: _i11.Future.value(), ) as _i11.Future); @override - List<_i25.ContactEntry> getContactEntries() => (super.noSuchMethod( + List<_i26.ContactEntry> getContactEntries() => (super.noSuchMethod( Invocation.method( #getContactEntries, [], ), - returnValue: <_i25.ContactEntry>[], - ) as List<_i25.ContactEntry>); + returnValue: <_i26.ContactEntry>[], + ) as List<_i26.ContactEntry>); @override _i11.Future deleteContactEntry({required String? id}) => (super.noSuchMethod( @@ -1175,15 +1199,15 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(false), ) as _i11.Future); @override - _i25.ContactEntry? getContactEntry({required String? id}) => + _i26.ContactEntry? getContactEntry({required String? id}) => (super.noSuchMethod(Invocation.method( #getContactEntry, [], {#id: id}, - )) as _i25.ContactEntry?); + )) as _i26.ContactEntry?); @override _i11.Future putContactEntry( - {required _i25.ContactEntry? contactEntry}) => + {required _i26.ContactEntry? contactEntry}) => (super.noSuchMethod( Invocation.method( #putContactEntry, @@ -1193,16 +1217,16 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(false), ) as _i11.Future); @override - _i26.TransactionBlockExplorer? getTransactionBlockExplorer( + _i27.TransactionBlockExplorer? getTransactionBlockExplorer( {required _i4.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod(Invocation.method( #getTransactionBlockExplorer, [], {#cryptoCurrency: cryptoCurrency}, - )) as _i26.TransactionBlockExplorer?); + )) as _i27.TransactionBlockExplorer?); @override _i11.Future putTransactionBlockExplorer( - _i26.TransactionBlockExplorer? explorer) => + _i27.TransactionBlockExplorer? explorer) => (super.noSuchMethod( Invocation.method( #putTransactionBlockExplorer, @@ -1211,13 +1235,13 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(0), ) as _i11.Future); @override - _i9.QueryBuilder<_i27.Address, _i27.Address, _i9.QAfterWhereClause> + _i9.QueryBuilder<_i28.Address, _i28.Address, _i9.QAfterWhereClause> getAddresses(String? walletId) => (super.noSuchMethod( Invocation.method( #getAddresses, [walletId], ), - returnValue: _FakeQueryBuilder_8<_i27.Address, _i27.Address, + returnValue: _FakeQueryBuilder_8<_i28.Address, _i28.Address, _i9.QAfterWhereClause>( this, Invocation.method( @@ -1226,9 +1250,9 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ), ), ) as _i9 - .QueryBuilder<_i27.Address, _i27.Address, _i9.QAfterWhereClause>); + .QueryBuilder<_i28.Address, _i28.Address, _i9.QAfterWhereClause>); @override - _i11.Future putAddress(_i27.Address? address) => (super.noSuchMethod( + _i11.Future putAddress(_i28.Address? address) => (super.noSuchMethod( Invocation.method( #putAddress, [address], @@ -1236,7 +1260,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(0), ) as _i11.Future); @override - _i11.Future> putAddresses(List<_i27.Address>? addresses) => + _i11.Future> putAddresses(List<_i28.Address>? addresses) => (super.noSuchMethod( Invocation.method( #putAddresses, @@ -1245,7 +1269,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future>.value([]), ) as _i11.Future>); @override - _i11.Future> updateOrPutAddresses(List<_i27.Address>? addresses) => + _i11.Future> updateOrPutAddresses(List<_i28.Address>? addresses) => (super.noSuchMethod( Invocation.method( #updateOrPutAddresses, @@ -1254,7 +1278,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future>.value([]), ) as _i11.Future>); @override - _i11.Future<_i27.Address?> getAddress( + _i11.Future<_i28.Address?> getAddress( String? walletId, String? address, ) => @@ -1266,12 +1290,12 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { address, ], ), - returnValue: _i11.Future<_i27.Address?>.value(), - ) as _i11.Future<_i27.Address?>); + returnValue: _i11.Future<_i28.Address?>.value(), + ) as _i11.Future<_i28.Address?>); @override _i11.Future updateAddress( - _i27.Address? oldAddress, - _i27.Address? newAddress, + _i28.Address? oldAddress, + _i28.Address? newAddress, ) => (super.noSuchMethod( Invocation.method( @@ -1284,13 +1308,13 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(0), ) as _i11.Future); @override - _i9.QueryBuilder<_i27.Transaction, _i27.Transaction, _i9.QAfterWhereClause> + _i9.QueryBuilder<_i28.Transaction, _i28.Transaction, _i9.QAfterWhereClause> getTransactions(String? walletId) => (super.noSuchMethod( Invocation.method( #getTransactions, [walletId], ), - returnValue: _FakeQueryBuilder_8<_i27.Transaction, _i27.Transaction, + returnValue: _FakeQueryBuilder_8<_i28.Transaction, _i28.Transaction, _i9.QAfterWhereClause>( this, Invocation.method( @@ -1298,10 +1322,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { [walletId], ), ), - ) as _i9.QueryBuilder<_i27.Transaction, _i27.Transaction, + ) as _i9.QueryBuilder<_i28.Transaction, _i28.Transaction, _i9.QAfterWhereClause>); @override - _i11.Future putTransaction(_i27.Transaction? transaction) => + _i11.Future putTransaction(_i28.Transaction? transaction) => (super.noSuchMethod( Invocation.method( #putTransaction, @@ -1311,7 +1335,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ) as _i11.Future); @override _i11.Future> putTransactions( - List<_i27.Transaction>? transactions) => + List<_i28.Transaction>? transactions) => (super.noSuchMethod( Invocation.method( #putTransactions, @@ -1320,7 +1344,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future>.value([]), ) as _i11.Future>); @override - _i11.Future<_i27.Transaction?> getTransaction( + _i11.Future<_i28.Transaction?> getTransaction( String? walletId, String? txid, ) => @@ -1332,10 +1356,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { txid, ], ), - returnValue: _i11.Future<_i27.Transaction?>.value(), - ) as _i11.Future<_i27.Transaction?>); + returnValue: _i11.Future<_i28.Transaction?>.value(), + ) as _i11.Future<_i28.Transaction?>); @override - _i11.Stream<_i27.Transaction?> watchTransaction({ + _i11.Stream<_i28.Transaction?> watchTransaction({ required int? id, bool? fireImmediately = false, }) => @@ -1348,10 +1372,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { #fireImmediately: fireImmediately, }, ), - returnValue: _i11.Stream<_i27.Transaction?>.empty(), - ) as _i11.Stream<_i27.Transaction?>); + returnValue: _i11.Stream<_i28.Transaction?>.empty(), + ) as _i11.Stream<_i28.Transaction?>); @override - _i9.QueryBuilder<_i27.UTXO, _i27.UTXO, _i9.QAfterWhereClause> getUTXOs( + _i9.QueryBuilder<_i28.UTXO, _i28.UTXO, _i9.QAfterWhereClause> getUTXOs( String? walletId) => (super.noSuchMethod( Invocation.method( @@ -1359,16 +1383,16 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { [walletId], ), returnValue: - _FakeQueryBuilder_8<_i27.UTXO, _i27.UTXO, _i9.QAfterWhereClause>( + _FakeQueryBuilder_8<_i28.UTXO, _i28.UTXO, _i9.QAfterWhereClause>( this, Invocation.method( #getUTXOs, [walletId], ), ), - ) as _i9.QueryBuilder<_i27.UTXO, _i27.UTXO, _i9.QAfterWhereClause>); + ) as _i9.QueryBuilder<_i28.UTXO, _i28.UTXO, _i9.QAfterWhereClause>); @override - _i9.QueryBuilder<_i27.UTXO, _i27.UTXO, _i9.QAfterFilterCondition> + _i9.QueryBuilder<_i28.UTXO, _i28.UTXO, _i9.QAfterFilterCondition> getUTXOsByAddress( String? walletId, String? address, @@ -1381,7 +1405,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { address, ], ), - returnValue: _FakeQueryBuilder_8<_i27.UTXO, _i27.UTXO, + returnValue: _FakeQueryBuilder_8<_i28.UTXO, _i28.UTXO, _i9.QAfterFilterCondition>( this, Invocation.method( @@ -1393,9 +1417,9 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ), ), ) as _i9 - .QueryBuilder<_i27.UTXO, _i27.UTXO, _i9.QAfterFilterCondition>); + .QueryBuilder<_i28.UTXO, _i28.UTXO, _i9.QAfterFilterCondition>); @override - _i11.Future putUTXO(_i27.UTXO? utxo) => (super.noSuchMethod( + _i11.Future putUTXO(_i28.UTXO? utxo) => (super.noSuchMethod( Invocation.method( #putUTXO, [utxo], @@ -1404,7 +1428,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValueForMissingStub: _i11.Future.value(), ) as _i11.Future); @override - _i11.Future putUTXOs(List<_i27.UTXO>? utxos) => (super.noSuchMethod( + _i11.Future putUTXOs(List<_i28.UTXO>? utxos) => (super.noSuchMethod( Invocation.method( #putUTXOs, [utxos], @@ -1415,7 +1439,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { @override _i11.Future updateUTXOs( String? walletId, - List<_i27.UTXO>? utxos, + List<_i28.UTXO>? utxos, ) => (super.noSuchMethod( Invocation.method( @@ -1428,7 +1452,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(false), ) as _i11.Future); @override - _i11.Stream<_i27.UTXO?> watchUTXO({ + _i11.Stream<_i28.UTXO?> watchUTXO({ required int? id, bool? fireImmediately = false, }) => @@ -1441,10 +1465,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { #fireImmediately: fireImmediately, }, ), - returnValue: _i11.Stream<_i27.UTXO?>.empty(), - ) as _i11.Stream<_i27.UTXO?>); + returnValue: _i11.Stream<_i28.UTXO?>.empty(), + ) as _i11.Stream<_i28.UTXO?>); @override - _i9.QueryBuilder<_i27.TransactionNote, _i27.TransactionNote, + _i9.QueryBuilder<_i28.TransactionNote, _i28.TransactionNote, _i9.QAfterWhereClause> getTransactionNotes( String? walletId) => (super.noSuchMethod( @@ -1452,18 +1476,18 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { #getTransactionNotes, [walletId], ), - returnValue: _FakeQueryBuilder_8<_i27.TransactionNote, - _i27.TransactionNote, _i9.QAfterWhereClause>( + returnValue: _FakeQueryBuilder_8<_i28.TransactionNote, + _i28.TransactionNote, _i9.QAfterWhereClause>( this, Invocation.method( #getTransactionNotes, [walletId], ), ), - ) as _i9.QueryBuilder<_i27.TransactionNote, _i27.TransactionNote, + ) as _i9.QueryBuilder<_i28.TransactionNote, _i28.TransactionNote, _i9.QAfterWhereClause>); @override - _i11.Future putTransactionNote(_i27.TransactionNote? transactionNote) => + _i11.Future putTransactionNote(_i28.TransactionNote? transactionNote) => (super.noSuchMethod( Invocation.method( #putTransactionNote, @@ -1474,7 +1498,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ) as _i11.Future); @override _i11.Future putTransactionNotes( - List<_i27.TransactionNote>? transactionNotes) => + List<_i28.TransactionNote>? transactionNotes) => (super.noSuchMethod( Invocation.method( #putTransactionNotes, @@ -1484,7 +1508,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValueForMissingStub: _i11.Future.value(), ) as _i11.Future); @override - _i11.Future<_i27.TransactionNote?> getTransactionNote( + _i11.Future<_i28.TransactionNote?> getTransactionNote( String? walletId, String? txid, ) => @@ -1496,10 +1520,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { txid, ], ), - returnValue: _i11.Future<_i27.TransactionNote?>.value(), - ) as _i11.Future<_i27.TransactionNote?>); + returnValue: _i11.Future<_i28.TransactionNote?>.value(), + ) as _i11.Future<_i28.TransactionNote?>); @override - _i11.Stream<_i27.TransactionNote?> watchTransactionNote({ + _i11.Stream<_i28.TransactionNote?> watchTransactionNote({ required int? id, bool? fireImmediately = false, }) => @@ -1512,27 +1536,27 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { #fireImmediately: fireImmediately, }, ), - returnValue: _i11.Stream<_i27.TransactionNote?>.empty(), - ) as _i11.Stream<_i27.TransactionNote?>); + returnValue: _i11.Stream<_i28.TransactionNote?>.empty(), + ) as _i11.Stream<_i28.TransactionNote?>); @override - _i9.QueryBuilder<_i27.AddressLabel, _i27.AddressLabel, _i9.QAfterWhereClause> + _i9.QueryBuilder<_i28.AddressLabel, _i28.AddressLabel, _i9.QAfterWhereClause> getAddressLabels(String? walletId) => (super.noSuchMethod( Invocation.method( #getAddressLabels, [walletId], ), - returnValue: _FakeQueryBuilder_8<_i27.AddressLabel, - _i27.AddressLabel, _i9.QAfterWhereClause>( + returnValue: _FakeQueryBuilder_8<_i28.AddressLabel, + _i28.AddressLabel, _i9.QAfterWhereClause>( this, Invocation.method( #getAddressLabels, [walletId], ), ), - ) as _i9.QueryBuilder<_i27.AddressLabel, _i27.AddressLabel, + ) as _i9.QueryBuilder<_i28.AddressLabel, _i28.AddressLabel, _i9.QAfterWhereClause>); @override - _i11.Future putAddressLabel(_i27.AddressLabel? addressLabel) => + _i11.Future putAddressLabel(_i28.AddressLabel? addressLabel) => (super.noSuchMethod( Invocation.method( #putAddressLabel, @@ -1541,7 +1565,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(0), ) as _i11.Future); @override - int putAddressLabelSync(_i27.AddressLabel? addressLabel) => + int putAddressLabelSync(_i28.AddressLabel? addressLabel) => (super.noSuchMethod( Invocation.method( #putAddressLabelSync, @@ -1550,7 +1574,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: 0, ) as int); @override - _i11.Future putAddressLabels(List<_i27.AddressLabel>? addressLabels) => + _i11.Future putAddressLabels(List<_i28.AddressLabel>? addressLabels) => (super.noSuchMethod( Invocation.method( #putAddressLabels, @@ -1560,7 +1584,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValueForMissingStub: _i11.Future.value(), ) as _i11.Future); @override - _i11.Future<_i27.AddressLabel?> getAddressLabel( + _i11.Future<_i28.AddressLabel?> getAddressLabel( String? walletId, String? addressString, ) => @@ -1572,10 +1596,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { addressString, ], ), - returnValue: _i11.Future<_i27.AddressLabel?>.value(), - ) as _i11.Future<_i27.AddressLabel?>); + returnValue: _i11.Future<_i28.AddressLabel?>.value(), + ) as _i11.Future<_i28.AddressLabel?>); @override - _i27.AddressLabel? getAddressLabelSync( + _i28.AddressLabel? getAddressLabelSync( String? walletId, String? addressString, ) => @@ -1585,9 +1609,9 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { walletId, addressString, ], - )) as _i27.AddressLabel?); + )) as _i28.AddressLabel?); @override - _i11.Stream<_i27.AddressLabel?> watchAddressLabel({ + _i11.Stream<_i28.AddressLabel?> watchAddressLabel({ required int? id, bool? fireImmediately = false, }) => @@ -1600,10 +1624,10 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { #fireImmediately: fireImmediately, }, ), - returnValue: _i11.Stream<_i27.AddressLabel?>.empty(), - ) as _i11.Stream<_i27.AddressLabel?>); + returnValue: _i11.Stream<_i28.AddressLabel?>.empty(), + ) as _i11.Stream<_i28.AddressLabel?>); @override - _i11.Future updateAddressLabel(_i27.AddressLabel? addressLabel) => + _i11.Future updateAddressLabel(_i28.AddressLabel? addressLabel) => (super.noSuchMethod( Invocation.method( #updateAddressLabel, @@ -1643,7 +1667,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ) as _i11.Future); @override _i11.Future addNewTransactionData( - List<_i7.Tuple2<_i27.Transaction, _i27.Address?>>? transactionsData, + List<_i7.Tuple2<_i28.Transaction, _i28.Address?>>? transactionsData, String? walletId, ) => (super.noSuchMethod( @@ -1659,7 +1683,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ) as _i11.Future); @override _i11.Future> updateOrPutTransactionV2s( - List<_i28.TransactionV2>? transactions) => + List<_i29.TransactionV2>? transactions) => (super.noSuchMethod( Invocation.method( #updateOrPutTransactionV2s, @@ -1668,13 +1692,13 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future>.value([]), ) as _i11.Future>); @override - _i9.QueryBuilder<_i27.EthContract, _i27.EthContract, _i9.QWhere> + _i9.QueryBuilder<_i28.EthContract, _i28.EthContract, _i9.QWhere> getEthContracts() => (super.noSuchMethod( Invocation.method( #getEthContracts, [], ), - returnValue: _FakeQueryBuilder_8<_i27.EthContract, _i27.EthContract, + returnValue: _FakeQueryBuilder_8<_i28.EthContract, _i28.EthContract, _i9.QWhere>( this, Invocation.method( @@ -1683,24 +1707,24 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { ), ), ) as _i9 - .QueryBuilder<_i27.EthContract, _i27.EthContract, _i9.QWhere>); + .QueryBuilder<_i28.EthContract, _i28.EthContract, _i9.QWhere>); @override - _i11.Future<_i27.EthContract?> getEthContract(String? contractAddress) => + _i11.Future<_i28.EthContract?> getEthContract(String? contractAddress) => (super.noSuchMethod( Invocation.method( #getEthContract, [contractAddress], ), - returnValue: _i11.Future<_i27.EthContract?>.value(), - ) as _i11.Future<_i27.EthContract?>); + returnValue: _i11.Future<_i28.EthContract?>.value(), + ) as _i11.Future<_i28.EthContract?>); @override - _i27.EthContract? getEthContractSync(String? contractAddress) => + _i28.EthContract? getEthContractSync(String? contractAddress) => (super.noSuchMethod(Invocation.method( #getEthContractSync, [contractAddress], - )) as _i27.EthContract?); + )) as _i28.EthContract?); @override - _i11.Future putEthContract(_i27.EthContract? contract) => + _i11.Future putEthContract(_i28.EthContract? contract) => (super.noSuchMethod( Invocation.method( #putEthContract, @@ -1709,7 +1733,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { returnValue: _i11.Future.value(0), ) as _i11.Future); @override - _i11.Future putEthContracts(List<_i27.EthContract>? contracts) => + _i11.Future putEthContracts(List<_i28.EthContract>? contracts) => (super.noSuchMethod( Invocation.method( #putEthContracts, @@ -1733,7 +1757,7 @@ class MockMainDB extends _i1.Mock implements _i3.MainDB { /// A class which mocks [IThemeAssets]. /// /// See the documentation for Mockito's code generation for more information. -class MockIThemeAssets extends _i1.Mock implements _i23.IThemeAssets { +class MockIThemeAssets extends _i1.Mock implements _i24.IThemeAssets { MockIThemeAssets() { _i1.throwOnMissingStub(this); } @@ -1741,91 +1765,145 @@ class MockIThemeAssets extends _i1.Mock implements _i23.IThemeAssets { @override String get bellNew => (super.noSuchMethod( Invocation.getter(#bellNew), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#bellNew), + ), ) as String); @override String get buy => (super.noSuchMethod( Invocation.getter(#buy), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#buy), + ), ) as String); @override String get exchange => (super.noSuchMethod( Invocation.getter(#exchange), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#exchange), + ), ) as String); @override String get personaIncognito => (super.noSuchMethod( Invocation.getter(#personaIncognito), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#personaIncognito), + ), ) as String); @override String get personaEasy => (super.noSuchMethod( Invocation.getter(#personaEasy), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#personaEasy), + ), ) as String); @override String get stack => (super.noSuchMethod( Invocation.getter(#stack), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#stack), + ), ) as String); @override String get stackIcon => (super.noSuchMethod( Invocation.getter(#stackIcon), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#stackIcon), + ), ) as String); @override String get receive => (super.noSuchMethod( Invocation.getter(#receive), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#receive), + ), ) as String); @override String get receivePending => (super.noSuchMethod( Invocation.getter(#receivePending), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#receivePending), + ), ) as String); @override String get receiveCancelled => (super.noSuchMethod( Invocation.getter(#receiveCancelled), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#receiveCancelled), + ), ) as String); @override String get send => (super.noSuchMethod( Invocation.getter(#send), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#send), + ), ) as String); @override String get sendPending => (super.noSuchMethod( Invocation.getter(#sendPending), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#sendPending), + ), ) as String); @override String get sendCancelled => (super.noSuchMethod( Invocation.getter(#sendCancelled), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#sendCancelled), + ), ) as String); @override String get themeSelector => (super.noSuchMethod( Invocation.getter(#themeSelector), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#themeSelector), + ), ) as String); @override String get themePreview => (super.noSuchMethod( Invocation.getter(#themePreview), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#themePreview), + ), ) as String); @override String get txExchange => (super.noSuchMethod( Invocation.getter(#txExchange), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#txExchange), + ), ) as String); @override String get txExchangePending => (super.noSuchMethod( Invocation.getter(#txExchangePending), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#txExchangePending), + ), ) as String); @override String get txExchangeFailed => (super.noSuchMethod( Invocation.getter(#txExchangeFailed), - returnValue: '', + returnValue: _i16.dummyValue( + this, + Invocation.getter(#txExchangeFailed), + ), ) as String); } diff --git a/test/widget_tests/wallet_card_test.mocks.dart b/test/widget_tests/wallet_card_test.mocks.dart index d984f4aef..1c8afe8db 100644 --- a/test/widget_tests/wallet_card_test.mocks.dart +++ b/test/widget_tests/wallet_card_test.mocks.dart @@ -1,20 +1,21 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/widget_tests/wallet_card_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i8; -import 'dart:typed_data' as _i16; -import 'dart:ui' as _i13; +import 'dart:typed_data' as _i17; +import 'dart:ui' as _i14; import 'package:mockito/mockito.dart' as _i1; +import 'package:mockito/src/dummies.dart' as _i13; import 'package:stackwallet/db/isar/main_db.dart' as _i3; -import 'package:stackwallet/models/isar/stack_theme.dart' as _i15; +import 'package:stackwallet/models/isar/stack_theme.dart' as _i16; import 'package:stackwallet/networking/http.dart' as _i6; import 'package:stackwallet/services/locale_service.dart' as _i12; import 'package:stackwallet/services/node_service.dart' as _i2; import 'package:stackwallet/services/wallets.dart' as _i7; -import 'package:stackwallet/themes/theme_service.dart' as _i14; +import 'package:stackwallet/themes/theme_service.dart' as _i15; import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart' as _i10; import 'package:stackwallet/utilities/prefs.dart' as _i11; @@ -27,6 +28,8 @@ import 'package:stackwallet/wallets/wallet/wallet.dart' as _i5; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -206,7 +209,10 @@ class MockLocaleService extends _i1.Mock implements _i12.LocaleService { @override String get locale => (super.noSuchMethod( Invocation.getter(#locale), - returnValue: '', + returnValue: _i13.dummyValue( + this, + Invocation.getter(#locale), + ), ) as String); @override bool get hasListeners => (super.noSuchMethod( @@ -224,7 +230,7 @@ class MockLocaleService extends _i1.Mock implements _i12.LocaleService { returnValueForMissingStub: _i8.Future.value(), ) as _i8.Future); @override - void addListener(_i13.VoidCallback? listener) => super.noSuchMethod( + void addListener(_i14.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #addListener, [listener], @@ -232,7 +238,7 @@ class MockLocaleService extends _i1.Mock implements _i12.LocaleService { returnValueForMissingStub: null, ); @override - void removeListener(_i13.VoidCallback? listener) => super.noSuchMethod( + void removeListener(_i14.VoidCallback? listener) => super.noSuchMethod( Invocation.method( #removeListener, [listener], @@ -260,7 +266,7 @@ class MockLocaleService extends _i1.Mock implements _i12.LocaleService { /// A class which mocks [ThemeService]. /// /// See the documentation for Mockito's code generation for more information. -class MockThemeService extends _i1.Mock implements _i14.ThemeService { +class MockThemeService extends _i1.Mock implements _i15.ThemeService { MockThemeService() { _i1.throwOnMissingStub(this); } @@ -290,10 +296,10 @@ class MockThemeService extends _i1.Mock implements _i14.ThemeService { ), ) as _i3.MainDB); @override - List<_i15.StackTheme> get installedThemes => (super.noSuchMethod( + List<_i16.StackTheme> get installedThemes => (super.noSuchMethod( Invocation.getter(#installedThemes), - returnValue: <_i15.StackTheme>[], - ) as List<_i15.StackTheme>); + returnValue: <_i16.StackTheme>[], + ) as List<_i16.StackTheme>); @override void init(_i3.MainDB? db) => super.noSuchMethod( Invocation.method( @@ -303,7 +309,7 @@ class MockThemeService extends _i1.Mock implements _i14.ThemeService { returnValueForMissingStub: null, ); @override - _i8.Future install({required _i16.Uint8List? themeArchiveData}) => + _i8.Future install({required _i17.Uint8List? themeArchiveData}) => (super.noSuchMethod( Invocation.method( #install, @@ -343,31 +349,31 @@ class MockThemeService extends _i1.Mock implements _i14.ThemeService { returnValue: _i8.Future.value(false), ) as _i8.Future); @override - _i8.Future> fetchThemes() => + _i8.Future> fetchThemes() => (super.noSuchMethod( Invocation.method( #fetchThemes, [], ), - returnValue: _i8.Future>.value( - <_i14.StackThemeMetaData>[]), - ) as _i8.Future>); + returnValue: _i8.Future>.value( + <_i15.StackThemeMetaData>[]), + ) as _i8.Future>); @override - _i8.Future<_i16.Uint8List> fetchTheme( - {required _i14.StackThemeMetaData? themeMetaData}) => + _i8.Future<_i17.Uint8List> fetchTheme( + {required _i15.StackThemeMetaData? themeMetaData}) => (super.noSuchMethod( Invocation.method( #fetchTheme, [], {#themeMetaData: themeMetaData}, ), - returnValue: _i8.Future<_i16.Uint8List>.value(_i16.Uint8List(0)), - ) as _i8.Future<_i16.Uint8List>); + returnValue: _i8.Future<_i17.Uint8List>.value(_i17.Uint8List(0)), + ) as _i8.Future<_i17.Uint8List>); @override - _i15.StackTheme? getTheme({required String? themeId}) => + _i16.StackTheme? getTheme({required String? themeId}) => (super.noSuchMethod(Invocation.method( #getTheme, [], {#themeId: themeId}, - )) as _i15.StackTheme?); + )) as _i16.StackTheme?); } diff --git a/test/widget_tests/wallet_info_row/sub_widgets/wallet_info_row_balance_future_test.dart b/test/widget_tests/wallet_info_row/sub_widgets/wallet_info_row_balance_future_test.dart index a3161a73e..470f89225 100644 --- a/test/widget_tests/wallet_info_row/sub_widgets/wallet_info_row_balance_future_test.dart +++ b/test/widget_tests/wallet_info_row/sub_widgets/wallet_info_row_balance_future_test.dart @@ -2,12 +2,15 @@ import 'package:mockito/annotations.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/wallets.dart'; -@GenerateMocks([ - Wallets, -], customMocks: [ - MockSpec(returnNullOnMissingStub: true), - // MockSpec(returnNullOnMissingStub: true), -]) +@GenerateMocks( + [ + Wallets, + ], + customMocks: [ + MockSpec(), + // MockSpec(), + ], +) void main() { // testWidgets("Test wallet info row balance loads correctly", // (widgetTester) async { diff --git a/test/widget_tests/wallet_info_row/sub_widgets/wallet_info_row_balance_future_test.mocks.dart b/test/widget_tests/wallet_info_row/sub_widgets/wallet_info_row_balance_future_test.mocks.dart index b94f2e713..2084bd833 100644 --- a/test/widget_tests/wallet_info_row/sub_widgets/wallet_info_row_balance_future_test.mocks.dart +++ b/test/widget_tests/wallet_info_row/sub_widgets/wallet_info_row_balance_future_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/widget_tests/wallet_info_row/sub_widgets/wallet_info_row_balance_future_test.dart. // Do not manually edit this file. @@ -23,6 +23,8 @@ import 'package:stackwallet/wallets/wallet/wallet.dart' as _i5; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -196,6 +198,10 @@ class MockWallets extends _i1.Mock implements _i7.Wallets { /// /// See the documentation for Mockito's code generation for more information. class MockNodeService extends _i1.Mock implements _i2.NodeService { + MockNodeService() { + _i1.throwOnMissingStub(this); + } + @override _i6.SecureStorageInterface get secureStorageInterface => (super.noSuchMethod( Invocation.getter(#secureStorageInterface), diff --git a/test/widget_tests/wallet_info_row/wallet_info_row_test.dart b/test/widget_tests/wallet_info_row/wallet_info_row_test.dart index d4f97e600..a9fc6756a 100644 --- a/test/widget_tests/wallet_info_row/wallet_info_row_test.dart +++ b/test/widget_tests/wallet_info_row/wallet_info_row_test.dart @@ -1,16 +1,18 @@ import 'package:mockito/annotations.dart'; import 'package:stackwallet/services/node_service.dart'; import 'package:stackwallet/services/wallets.dart'; -import 'package:stackwallet/services/wallets_service.dart'; import 'package:stackwallet/themes/theme_service.dart'; -@GenerateMocks([ - Wallets, - ThemeService, -], customMocks: [ - MockSpec(returnNullOnMissingStub: true), - // MockSpec(returnNullOnMissingStub: true), -]) +@GenerateMocks( + [ + Wallets, + ThemeService, + ], + customMocks: [ + MockSpec(), + // MockSpec(), + ], +) void main() { // testWidgets("Test wallet info row displays correctly", (widgetTester) async { // final wallets = MockWallets(); diff --git a/test/widget_tests/wallet_info_row/wallet_info_row_test.mocks.dart b/test/widget_tests/wallet_info_row/wallet_info_row_test.mocks.dart index 9c90bcdcd..057284d51 100644 --- a/test/widget_tests/wallet_info_row/wallet_info_row_test.mocks.dart +++ b/test/widget_tests/wallet_info_row/wallet_info_row_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.2 from annotations +// Mocks generated by Mockito 5.4.4 from annotations // in stackwallet/test/widget_tests/wallet_info_row/wallet_info_row_test.dart. // Do not manually edit this file. @@ -27,6 +27,8 @@ import 'package:stackwallet/wallets/wallet/wallet.dart' as _i5; // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member // ignore_for_file: prefer_const_constructors @@ -325,6 +327,10 @@ class MockThemeService extends _i1.Mock implements _i12.ThemeService { /// /// See the documentation for Mockito's code generation for more information. class MockNodeService extends _i1.Mock implements _i2.NodeService { + MockNodeService() { + _i1.throwOnMissingStub(this); + } + @override _i7.SecureStorageInterface get secureStorageInterface => (super.noSuchMethod( Invocation.getter(#secureStorageInterface), From b63b34327601e6c75a23f719a000c971a49b345e Mon Sep 17 00:00:00 2001 From: Julian Date: Tue, 28 May 2024 09:56:40 -0600 Subject: [PATCH 148/318] windows symlink fixes --- scripts/app_config/shared/link_assets.sh | 25 +++++++++++++----------- scripts/build_app.sh | 2 +- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/scripts/app_config/shared/link_assets.sh b/scripts/app_config/shared/link_assets.sh index c443b1262..90074e459 100755 --- a/scripts/app_config/shared/link_assets.sh +++ b/scripts/app_config/shared/link_assets.sh @@ -2,12 +2,13 @@ set -x -e -if [ $# -ne 1 ]; then - echo "Usage: $0 " +if [ $# -ne 2 ]; then + echo "Usage: $0 " exit 1 fi SELECT_ASSETS_DIR=$1 +APP_BUILD_PLATFORM=$2 # declare full paths ASSET_SOURCES_DIR="${APP_PROJECT_ROOT_DIR}/asset_sources" @@ -16,14 +17,16 @@ ASSETS_DIR="${APP_PROJECT_ROOT_DIR}/assets" # finally update symlinks -rm -f "${ASSETS_DIR}/default_themes" -ln -s "${ASSET_SOURCES_DIR}/bundled_themes/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/default_themes" +for dirname in "default_themes" "icon" "lottie" "in_app_logo_icons"; do + LINK_SOURCE_DIR="${ASSET_SOURCES_DIR}/${dirname}/${SELECT_ASSETS_DIR}" -rm -f "${ASSETS_DIR}/icon" -ln -s "${ASSET_SOURCES_DIR}/icon/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/icon" + rm -f "${ASSETS_DIR}/${dirname}" -rm -f "${ASSETS_DIR}/lottie" -ln -s "${ASSET_SOURCES_DIR}/lottie/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/lottie" - -rm -f "${ASSETS_DIR}/in_app_logo_icons" -ln -s "${ASSET_SOURCES_DIR}/in_app_logo_icons/${SELECT_ASSETS_DIR}" "${ASSETS_DIR}/in_app_logo_icons" + if [[ "${APP_BUILD_PLATFORM}" = 'windows' ]]; then + LINK_SOURCE_DIR_WIN_PATH_VERSION=$(wslpath -w "${LINK_SOURCE_DIR}") + LINK_NAME_WIN_PATH_VERSION=$(wslpath -w "${ASSETS_DIR}") + cmd.exe /c mklink /D "${LINK_NAME_WIN_PATH_VERSION}\\${dirname}" "${LINK_SOURCE_DIR_WIN_PATH_VERSION}" + else + ln -s "${LINK_SOURCE_DIR}" "${ASSETS_DIR}/${dirname}" + fi +done diff --git a/scripts/build_app.sh b/scripts/build_app.sh index 7f89a202f..aa569226a 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -92,7 +92,7 @@ if printf '%s\0' "${APP_NAMED_IDS[@]}" | grep -Fxqz -- "${APP_NAMED_ID}"; then cp "${T_PUBSPEC}" "${ACTUAL_PUBSPEC}" fi "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/update_version.sh" -v "${APP_VERSION_STRING}" -b "${APP_BUILD_NUMBER}" - "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/link_assets.sh" "${APP_NAMED_ID}" + "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/link_assets.sh" "${APP_NAMED_ID}" "${APP_BUILD_PLATFORM}" # shellcheck disable=SC1090 source "${APP_PROJECT_ROOT_DIR}/scripts/app_config/configure_${APP_NAMED_ID}.sh" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/platforms/${APP_BUILD_PLATFORM}/platform_config.sh" From b4478e77c6c37816f6de763f4b3e0f01a7a283a8 Mon Sep 17 00:00:00 2001 From: Julian Date: Tue, 28 May 2024 10:30:41 -0600 Subject: [PATCH 149/318] ios project file fix that got lost somewhere in merging --- .../ios/Runner.xcodeproj/project.pbxproj | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj b/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj index c793dd2fe..fdfcd1bfa 100644 --- a/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj +++ b/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj @@ -18,6 +18,8 @@ 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; B49D91439948369648AB0603 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51604430FD0FD1FA5C4767A0 /* Pods_Runner.framework */; }; + CE6B5DF12BF26AAA00CF1F44 /* monero_libwallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE6B5DEF2BF26AAA00CF1F44 /* monero_libwallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + CE6B5DF22BF26AAA00CF1F44 /* wownero_libwallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE6B5DF02BF26AAA00CF1F44 /* wownero_libwallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -32,6 +34,17 @@ name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; + CE6B5DEA2BF26A3300CF1F44 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + CE6B5DF12BF26AAA00CF1F44 /* monero_libwallet2_api_c.dylib in CopyFiles */, + CE6B5DF22BF26AAA00CF1F44 /* wownero_libwallet2_api_c.dylib in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -62,6 +75,8 @@ 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 = ""; }; B999088F2ABE1E170012A442 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; + CE6B5DEF2BF26AAA00CF1F44 /* monero_libwallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = monero_libwallet2_api_c.dylib; sourceTree = ""; }; + CE6B5DF02BF26AAA00CF1F44 /* wownero_libwallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = wownero_libwallet2_api_c.dylib; sourceTree = ""; }; E6F536731AC506735EB76340 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -122,6 +137,8 @@ 97C146E51CF9000F007C117D = { isa = PBXGroup; children = ( + CE6B5DEF2BF26AAA00CF1F44 /* monero_libwallet2_api_c.dylib */, + CE6B5DF02BF26AAA00CF1F44 /* wownero_libwallet2_api_c.dylib */, 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, @@ -177,6 +194,7 @@ 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, FD1CA371131604E6658D4146 /* [CP] Embed Pods Frameworks */, + CE6B5DEA2BF26A3300CF1F44 /* CopyFiles */, ); buildRules = ( ); @@ -307,9 +325,6 @@ "${BUILT_PRODUCTS_DIR}/barcode_scan2/barcode_scan2.framework", "${BUILT_PRODUCTS_DIR}/coinlib_flutter/secp256k1.framework", "${BUILT_PRODUCTS_DIR}/connectivity_plus/connectivity_plus.framework", - "${BUILT_PRODUCTS_DIR}/cw_monero/cw_monero.framework", - "${BUILT_PRODUCTS_DIR}/cw_shared_external/cw_shared_external.framework", - "${BUILT_PRODUCTS_DIR}/cw_wownero/cw_wownero.framework", "${BUILT_PRODUCTS_DIR}/device_info_plus/device_info_plus.framework", "${BUILT_PRODUCTS_DIR}/devicelocale/devicelocale.framework", "${BUILT_PRODUCTS_DIR}/file_picker/file_picker.framework", @@ -343,9 +358,6 @@ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/barcode_scan2.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/secp256k1.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/connectivity_plus.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/cw_monero.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/cw_shared_external.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/cw_wownero.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/device_info_plus.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/devicelocale.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/file_picker.framework", From 6ac468c55c44b7a6c9967ad40de174d5aad537fc Mon Sep 17 00:00:00 2001 From: Julian Date: Tue, 28 May 2024 11:14:06 -0600 Subject: [PATCH 150/318] rename dir --- .../stack_duo/dark.zip | Bin .../stack_duo/light.zip | Bin .../stack_wallet/dark.zip | Bin .../stack_wallet/light.zip | Bin 4 files changed, 0 insertions(+), 0 deletions(-) rename asset_sources/{bundled_themes => default_themes}/stack_duo/dark.zip (100%) rename asset_sources/{bundled_themes => default_themes}/stack_duo/light.zip (100%) rename asset_sources/{bundled_themes => default_themes}/stack_wallet/dark.zip (100%) rename asset_sources/{bundled_themes => default_themes}/stack_wallet/light.zip (100%) diff --git a/asset_sources/bundled_themes/stack_duo/dark.zip b/asset_sources/default_themes/stack_duo/dark.zip similarity index 100% rename from asset_sources/bundled_themes/stack_duo/dark.zip rename to asset_sources/default_themes/stack_duo/dark.zip diff --git a/asset_sources/bundled_themes/stack_duo/light.zip b/asset_sources/default_themes/stack_duo/light.zip similarity index 100% rename from asset_sources/bundled_themes/stack_duo/light.zip rename to asset_sources/default_themes/stack_duo/light.zip diff --git a/asset_sources/bundled_themes/stack_wallet/dark.zip b/asset_sources/default_themes/stack_wallet/dark.zip similarity index 100% rename from asset_sources/bundled_themes/stack_wallet/dark.zip rename to asset_sources/default_themes/stack_wallet/dark.zip diff --git a/asset_sources/bundled_themes/stack_wallet/light.zip b/asset_sources/default_themes/stack_wallet/light.zip similarity index 100% rename from asset_sources/bundled_themes/stack_wallet/light.zip rename to asset_sources/default_themes/stack_wallet/light.zip From fb429b12f8ba9e89ede0e7788008c55fdfae643b Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 28 May 2024 14:37:43 -0600 Subject: [PATCH 151/318] add sqlite lib --- linux/flutter/generated_plugin_registrant.cc | 4 ++++ linux/flutter/generated_plugins.cmake | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 2 ++ pubspec.lock | 16 ++++++++++++++++ scripts/app_config/templates/pubspec.template | 2 ++ windows/flutter/generated_plugin_registrant.cc | 3 +++ windows/flutter/generated_plugins.cmake | 1 + 7 files changed, 29 insertions(+) diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index b174939fa..499e835f2 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -35,6 +36,9 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) isar_flutter_libs_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "IsarFlutterLibsPlugin"); isar_flutter_libs_plugin_register_with_registrar(isar_flutter_libs_registrar); + g_autoptr(FlPluginRegistrar) sqlite3_flutter_libs_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "Sqlite3FlutterLibsPlugin"); + sqlite3_flutter_libs_plugin_register_with_registrar(sqlite3_flutter_libs_registrar); g_autoptr(FlPluginRegistrar) stack_wallet_backup_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "StackWalletBackupPlugin"); stack_wallet_backup_plugin_register_with_registrar(stack_wallet_backup_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index e1af526f4..a8bc74800 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -9,6 +9,7 @@ list(APPEND FLUTTER_PLUGIN_LIST flutter_libmonero flutter_secure_storage_linux isar_flutter_libs + sqlite3_flutter_libs stack_wallet_backup url_launcher_linux window_size diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 681a96548..762e46f56 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -17,6 +17,7 @@ import lelantus import package_info_plus import path_provider_foundation import share_plus +import sqlite3_flutter_libs import stack_wallet_backup import url_launcher_macos import wakelock_macos @@ -35,6 +36,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) + Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin")) StackWalletBackupPlugin.register(with: registry.registrar(forPlugin: "StackWalletBackupPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) WakelockMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockMacosPlugin")) diff --git a/pubspec.lock b/pubspec.lock index a9cfa08cf..4caa61444 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1633,6 +1633,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.0" + sqlite3: + dependency: "direct main" + description: + name: sqlite3 + sha256: b384f598b813b347c5a7e5ffad82cbaff1bec3d1561af267041e66f6f0899295 + url: "https://pub.dev" + source: hosted + version: "2.4.3" + sqlite3_flutter_libs: + dependency: "direct main" + description: + name: sqlite3_flutter_libs + sha256: "1e62698dc1ab396152ccaf3b3990d826244e9f3c8c39b51805f209adcd6dbea3" + url: "https://pub.dev" + source: hosted + version: "0.5.22" stack_trace: dependency: transitive description: diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index a77535133..71410f213 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -183,6 +183,8 @@ dependencies: ref: a83e375678eb22fe544dc125d29bbec0fb833882 path: packages/solana calendar_date_picker2: ^1.0.2 + sqlite3: ^2.4.3 + sqlite3_flutter_libs: ^0.5.22 dev_dependencies: flutter_test: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index f886b2cc1..d8d4b219f 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -32,6 +33,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); SharePlusWindowsPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi")); + Sqlite3FlutterLibsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("Sqlite3FlutterLibsPlugin")); StackWalletBackupPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("StackWalletBackupPluginCApi")); UrlLauncherWindowsRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 02d70698f..b00cd149f 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -10,6 +10,7 @@ list(APPEND FLUTTER_PLUGIN_LIST isar_flutter_libs permission_handler_windows share_plus + sqlite3_flutter_libs stack_wallet_backup url_launcher_windows window_size From 3eb5a0a39c2bab81e62bb50e85ac6d33fce14c13 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 29 May 2024 13:29:45 -0600 Subject: [PATCH 152/318] Cache Spark anonymity sets in sqlite --- lib/db/db_version_migration.dart | 23 ++ lib/db/hive/db.dart | 17 +- lib/db/sqlite/firo_cache.dart | 330 ++++++++++++++++++ .../cached_electrumx_client.dart | 64 ---- lib/electrumx_rpc/electrumx_client.dart | 15 +- lib/main.dart | 2 + .../global_settings_view/hidden_settings.dart | 50 +-- lib/utilities/constants.dart | 2 +- lib/utilities/stack_file_system.dart | 13 + lib/wallets/wallet/impl/firo_wallet.dart | 31 +- lib/wallets/wallet/wallet.dart | 7 + .../spark_interface.dart | 220 ++++++------ 12 files changed, 550 insertions(+), 224 deletions(-) create mode 100644 lib/db/sqlite/firo_cache.dart diff --git a/lib/db/db_version_migration.dart b/lib/db/db_version_migration.dart index fe563f5ea..8fc4c6963 100644 --- a/lib/db/db_version_migration.dart +++ b/lib/db/db_version_migration.dart @@ -422,6 +422,20 @@ class DbVersionMigrator with WalletDB { // try to continue migrating return await migrate(12, secureStore: secureStore); + case 12: + // migrate + await _v12(secureStore); + + // update version + await DB.instance.put( + boxName: DB.boxNameDBInfo, + key: "hive_data_version", + value: 13, + ); + + // try to continue migrating + return await migrate(13, secureStore: secureStore); + default: // finally return return; @@ -701,4 +715,13 @@ class DbVersionMigrator with WalletDB { Future _v11(SecureStorageInterface secureStore) async { await migrateWalletsToIsar(secureStore: secureStore); } + + Future _v12(SecureStorageInterface secureStore) async { + await DB.instance.deleteBoxFromDisk( + boxName: "firo_anonymitySetSparkCache", + ); + await DB.instance.deleteBoxFromDisk( + boxName: "firoTestNet_anonymitySetSparkCache", + ); + } } diff --git a/lib/db/hive/db.dart b/lib/db/hive/db.dart index 3f1c86cb7..7fe515c4a 100644 --- a/lib/db/hive/db.dart +++ b/lib/db/hive/db.dart @@ -13,6 +13,7 @@ import 'dart:isolate'; import 'package:cw_core/wallet_info.dart' as xmr; import 'package:hive/hive.dart'; import 'package:mutex/mutex.dart'; + import '../../app_config.dart'; import '../../models/exchange/response_objects/trade.dart'; import '../../models/node_model.dart'; @@ -55,8 +56,6 @@ class DB { // firo only String _boxNameSetCache({required CryptoCurrency currency}) => "${currency.identifier}_anonymitySetCache"; - String _boxNameSetSparkCache({required CryptoCurrency currency}) => - "${currency.identifier}_anonymitySetSparkCache"; String _boxNameUsedSerialsCache({required CryptoCurrency currency}) => "${currency.identifier}_usedSerialsCache"; String _boxNameSparkUsedCoinsTagsCache({required CryptoCurrency currency}) => @@ -81,7 +80,6 @@ class DB { final Map> _txCacheBoxes = {}; final Map> _setCacheBoxes = {}; - final Map> _setSparkCacheBoxes = {}; final Map> _usedSerialsCacheBoxes = {}; final Map> _getSparkUsedCoinsTagsCacheBoxes = {}; @@ -213,16 +211,6 @@ class DB { await Hive.openBox(_boxNameSetCache(currency: currency)); } - Future> getSparkAnonymitySetCacheBox({ - required CryptoCurrency currency, - }) async { - if (_setSparkCacheBoxes[currency.identifier]?.isOpen != true) { - _setSparkCacheBoxes.remove(currency.identifier); - } - return _setSparkCacheBoxes[currency.identifier] ??= - await Hive.openBox(_boxNameSetSparkCache(currency: currency)); - } - Future closeAnonymitySetCacheBox({ required CryptoCurrency currency, }) async { @@ -266,9 +254,6 @@ class DB { await deleteAll(boxName: _boxNameTxCache(currency: currency)); if (currency is Firo) { await deleteAll(boxName: _boxNameSetCache(currency: currency)); - await deleteAll( - boxName: _boxNameSetSparkCache(currency: currency), - ); await deleteAll( boxName: _boxNameUsedSerialsCache(currency: currency), ); diff --git a/lib/db/sqlite/firo_cache.dart b/lib/db/sqlite/firo_cache.dart new file mode 100644 index 000000000..c8ac015e8 --- /dev/null +++ b/lib/db/sqlite/firo_cache.dart @@ -0,0 +1,330 @@ +import 'dart:async'; +import 'dart:io'; + +import 'package:flutter/foundation.dart'; +import 'package:sqlite3/sqlite3.dart'; + +import '../../electrumx_rpc/electrumx_client.dart'; +import '../../utilities/logger.dart'; +import '../../utilities/stack_file_system.dart'; + +/// Temporary debugging log function for this file +void _debugLog(Object? object) { + if (kDebugMode) { + Logging.instance.log( + object, + level: LogLevel.Fatal, + ); + } +} + +/// Wrapper class for [FiroCache] as [FiroCache] should eventually be handled in a +/// background isolate and [FiroCacheCoordinator] should manage that isolate +abstract class FiroCacheCoordinator { + static Future init() => _FiroCache.init(); + + static Future runFetchAndUpdateSparkAnonSetCacheForGroupId( + int groupId, + ElectrumXClient client, + ) async { + final blockhashResult = + await FiroCacheCoordinator.getLatestSetInfoForGroupId( + groupId, + ); + final blockHash = blockhashResult?.blockHash ?? ""; + + final json = await client.getSparkAnonymitySet( + coinGroupId: groupId.toString(), + startBlockHash: blockHash, + ); + + await _FiroCache._updateWith(json, groupId); + } + + static Future getSetCoinsForGroupId( + int groupId, { + int? newerThanTimeStamp, + }) async { + return await _FiroCache._getSetCoinsForGroupId( + groupId, + newerThanTimeStamp: newerThanTimeStamp, + ); + } + + static Future< + ({ + String blockHash, + String setHash, + int timestampUTC, + })?> getLatestSetInfoForGroupId( + int groupId, + ) async { + final result = await _FiroCache._getLatestSetInfoForGroupId(groupId); + + if (result.isEmpty) { + return null; + } + + return ( + blockHash: result.first["blockHash"] as String, + setHash: result.first["setHash"] as String, + timestampUTC: result.first["timestampUTC"] as int, + ); + } +} + +abstract class _FiroCache { + static const String sqliteDbFileName = "firo_ex_cache.sqlite3"; + + static Database? _db; + static Database get db { + if (_db == null) { + throw Exception( + "FiroCache.init() must be called before accessing FiroCache.db!", + ); + } + return _db!; + } + + static Future? _initFuture; + static Future init() => _initFuture ??= _init(); + + static Future _init() async { + final sqliteDir = await StackFileSystem.applicationSQLiteDirectory(); + + final file = File("${sqliteDir.path}/$sqliteDbFileName"); + + final exists = await file.exists(); + if (!exists) { + await _createDb(file.path); + } + + _db = sqlite3.open( + file.path, + mode: OpenMode.readWrite, + ); + } + + static Future _createDb(String file) async { + final db = sqlite3.open( + file, + mode: OpenMode.readWriteCreate, + ); + + db.execute( + """ + CREATE TABLE SparkSet ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, + blockHash TEXT NOT NULL, + setHash TEXT NOT NULL, + groupId INTEGER NOT NULL, + UNIQUE (blockHash, setHash, groupId) + ); + + CREATE TABLE SparkCoin ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, + serialized TEXT NOT NULL, + txHash TEXT NOT NULL, + context TEXT NOT NULL, + UNIQUE(serialized, txHash, context) + ); + + CREATE TABLE SparkSetCoins ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, + timestampUTC INTEGER NOT NULL, + setId INTEGER NOT NULL, + coinId INTEGER NOT NULL, + FOREIGN KEY (setId) REFERENCES SparkSet(id), + FOREIGN KEY (coinId) REFERENCES SparkCoin(id) + ); + """, + ); + + db.dispose(); + } + + // =========================================================================== + // =============== Spark anonymity set queries =============================== + + static Future _getSetCoinsForGroupId( + int groupId, { + int? newerThanTimeStamp, + }) async { + String query = """ + SELECT sc.id, sc.serialized, sc.txHash, sc.context + FROM SparkSetCoins AS ssc + JOIN SparkSet AS ss ON ssc.setId = ss.id + JOIN SparkCoin AS sc ON ssc.coinId = sc.id + WHERE ss.groupId = $groupId + """; + + if (newerThanTimeStamp != null) { + query += " AND ssc.timestampUTC" + " > $newerThanTimeStamp"; + } + + return db.select("$query;"); + } + + static Future _getLatestSetInfoForGroupId( + int groupId, + ) async { + final query = """ + SELECT ss.blockHash, ss.setHash, ssc.timestampUTC + FROM SparkSet ss + JOIN SparkSetCoins ssc ON ss.id = ssc.setId + WHERE ss.groupId = $groupId + ORDER BY ssc.timestampUTC DESC + LIMIT 1; + """; + + return db.select("$query;"); + } + + // =========================================================================== + // =========================================================================== + + static int _upCount = 0; + + /// update the sqlite cache + /// Expected json format: + /// { + /// "blockHash": "someBlockHash", + /// "setHash": "someSetHash", + /// "coins": [ + /// ["serliazed1", "hash1", "context1"], + /// ["serliazed2", "hash2", "context2"], + /// ... + /// ["serliazed3", "hash3", "context3"], + /// ["serliazed4", "hash4", "context4"], + /// ], + /// } + /// + /// returns true if successful, otherwise false + static Future _updateWith( + Map json, + int groupId, + ) async { + final start = DateTime.now(); + _upCount++; + final blockHash = json["blockHash"] as String; + final setHash = json["setHash"] as String; + + _debugLog( + "$_upCount _updateWith() called where groupId=$groupId," + " blockHash=$blockHash, setHash=$setHash", + ); + + final checkResult = db.select( + """ + SELECT * + FROM SparkSet + WHERE blockHash = ? AND setHash = ? AND groupId = ?; + """, + [ + blockHash, + setHash, + groupId, + ], + ); + + _debugLog("$_upCount _updateWith() called where checkResult=$checkResult"); + + if (checkResult.isNotEmpty) { + _debugLog( + "$_upCount _updateWith() duration = ${DateTime.now().difference(start)}", + ); + // already up to date + return true; + } + + if ((json["coins"] as List).isEmpty) { + _debugLog("$_upCount _updateWith() called where json[coins] is Empty"); + _debugLog( + "$_upCount _updateWith() duration = ${DateTime.now().difference(start)}", + ); + // no coins to actually insert + return true; + } + + final coins = (json["coins"] as List) + .map( + (e) => [ + e[0] as String, + e[1] as String, + e[2] as String, + ], + ) + .toList(); + + final timestamp = DateTime.now().toUtc().millisecondsSinceEpoch ~/ 1000; + + db.execute("BEGIN;"); + try { + db.execute( + """ + INSERT INTO SparkSet (blockHash, setHash, groupId) + VALUES (?, ?, ?); + """, + [blockHash, setHash, groupId], + ); + final setId = db.lastInsertRowId; + + for (final coin in coins) { + int coinId; + try { + db.execute( + """ + INSERT INTO SparkCoin (serialized, txHash, context) + VALUES (?, ?, ?); + """, + coin, + ); + coinId = db.lastInsertRowId; + } on SqliteException catch (e) { + if (e.extendedResultCode == 2067) { + final result = db.select( + """ + SELECT id + FROM SparkCoin + WHERE serialized = ? AND txHash = ? AND context = ?; + """, + coin, + ); + coinId = result.first["id"] as int; + } else { + rethrow; + } + } + + db.execute( + """ + INSERT INTO SparkSetCoins (timestampUTC, setId, coinId) + VALUES (?, ?, ?); + """, + [timestamp, setId, coinId], + ); + } + + db.execute("COMMIT;"); + _debugLog("$_upCount _updateWith() COMMITTED"); + _debugLog( + "$_upCount _updateWith() duration = ${DateTime.now().difference(start)}", + ); + return true; + } catch (e, s) { + db.execute("ROLLBACK;"); + _debugLog("$_upCount _updateWith() ROLLBACK"); + _debugLog( + "$_upCount _updateWith() duration = ${DateTime.now().difference(start)}", + ); + // NOTE THIS LOGGER MUST BE CALLED ON MAIN ISOLATE FOR NOW + Logging.instance.log( + "$e\n$s", + level: LogLevel.Error, + ); + } + + return false; + } +} diff --git a/lib/electrumx_rpc/cached_electrumx_client.dart b/lib/electrumx_rpc/cached_electrumx_client.dart index fb4ff4a87..c2dbbb6b8 100644 --- a/lib/electrumx_rpc/cached_electrumx_client.dart +++ b/lib/electrumx_rpc/cached_electrumx_client.dart @@ -116,70 +116,6 @@ class CachedElectrumXClient { } } - Future> getSparkAnonymitySet({ - required String groupId, - String blockhash = "", - required CryptoCurrency cryptoCurrency, - required bool useOnlyCacheIfNotEmpty, - }) async { - try { - final box = await DB.instance.getSparkAnonymitySetCacheBox( - currency: cryptoCurrency, - ); - final cachedSet = box.get(groupId) as Map?; - - Map set; - - // null check to see if there is a cached set - if (cachedSet == null) { - set = { - "coinGroupID": int.parse(groupId), - "blockHash": blockhash, - "setHash": "", - "coins": [], - }; - } else { - set = Map.from(cachedSet); - if (useOnlyCacheIfNotEmpty) { - return set; - } - } - - final newSet = await electrumXClient.getSparkAnonymitySet( - coinGroupId: groupId, - startBlockHash: set["blockHash"] as String, - ); - - // update set with new data - if (newSet["setHash"] != "" && set["setHash"] != newSet["setHash"]) { - set["setHash"] = newSet["setHash"]; - set["blockHash"] = newSet["blockHash"]; - for (int i = (newSet["coins"] as List).length - 1; i >= 0; i--) { - // TODO verify this is correct (or append?) - if ((set["coins"] as List) - .where((e) => e[0] == newSet["coins"][i][0]) - .isEmpty) { - set["coins"].insert(0, newSet["coins"][i]); - } - } - // save set to db - await box.put(groupId, set); - Logging.instance.log( - "Updated current anonymity set for ${cryptoCurrency.identifier} with group ID $groupId", - level: LogLevel.Info, - ); - } - - return set; - } catch (e, s) { - Logging.instance.log( - "Failed to process CachedElectrumX.getSparkAnonymitySet(): $e\n$s", - level: LogLevel.Error, - ); - rethrow; - } - } - String base64ToHex(String source) => base64Decode(LineSplitter.split(source).join()) .map((e) => e.toRadixString(16).padLeft(2, '0')) diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index afe44ec14..6d473a71f 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -20,7 +20,8 @@ import 'package:event_bus/event_bus.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_libsparkmobile/flutter_libsparkmobile.dart'; import 'package:mutex/mutex.dart'; -import 'client_manager.dart'; +import 'package:stream_channel/stream_channel.dart'; + import '../exceptions/electrumx/no_such_transaction.dart'; import '../services/event_bus/events/global/tor_connection_status_changed_event.dart'; import '../services/event_bus/events/global/tor_status_changed_event.dart'; @@ -29,7 +30,7 @@ import '../services/tor_service.dart'; import '../utilities/logger.dart'; import '../utilities/prefs.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; -import 'package:stream_channel/stream_channel.dart'; +import 'client_manager.dart'; class WifiOnlyException implements Exception {} @@ -910,10 +911,7 @@ class ElectrumXClient { String? requestID, }) async { try { - Logging.instance.log( - "attempting to fetch spark.getsparkanonymityset...", - level: LogLevel.Info, - ); + final start = DateTime.now(); await _checkElectrumAdapter(); final Map response = await (getElectrumAdapter() as FiroElectrumClient) @@ -922,7 +920,10 @@ class ElectrumXClient { startBlockHash: startBlockHash, ); Logging.instance.log( - "Fetching spark.getsparkanonymityset finished", + "Finished ElectrumXClient.getSparkAnonymitySet(coinGroupId" + "=$coinGroupId, startBlockHash=$startBlockHash). " + "" + "Duration=${DateTime.now().difference(start)}", level: LogLevel.Info, ); return response; diff --git a/lib/main.dart b/lib/main.dart index 52370d13d..ae7d26466 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -35,6 +35,7 @@ import 'app_config.dart'; import 'db/db_version_migration.dart'; import 'db/hive/db.dart'; import 'db/isar/main_db.dart'; +import 'db/sqlite/firo_cache.dart'; import 'models/exchange/change_now/exchange_transaction.dart'; import 'models/exchange/change_now/exchange_transaction_status.dart'; import 'models/exchange/response_objects/trade.dart'; @@ -200,6 +201,7 @@ void main(List args) async { } await StackFileSystem.initThemesDir(); + await FiroCacheCoordinator.init(); // Desktop migrate handled elsewhere (currently desktop_login_view.dart) if (!Util.isDesktop) { diff --git a/lib/pages/settings_views/global_settings_view/hidden_settings.dart b/lib/pages/settings_views/global_settings_view/hidden_settings.dart index 973dab913..b389f31a3 100644 --- a/lib/pages/settings_views/global_settings_view/hidden_settings.dart +++ b/lib/pages/settings_views/global_settings_view/hidden_settings.dart @@ -13,6 +13,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../../notifications/show_flush_bar.dart'; import '../../../providers/global/debug_service_provider.dart'; import '../../../providers/providers.dart'; @@ -284,28 +285,33 @@ class HiddenSettings extends StatelessWidget { ); }, ), - const SizedBox( - height: 12, - ), - Consumer( - builder: (_, ref, __) { - return GestureDetector( - onTap: () async { - // - }, - child: RoundedWhiteContainer( - child: Text( - "Do nothing", - style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark, - ), - ), - ), - ); - }, - ), + // const SizedBox( + // height: 12, + // ), + // Consumer( + // builder: (_, ref, __) { + // return GestureDetector( + // onTap: () async { + // await showLoading( + // whileFuture: FiroCache.init(), + // context: context, + // rootNavigator: true, + // message: "initializing firo cache", + // ); + // }, + // child: RoundedWhiteContainer( + // child: Text( + // "init firo_cache", + // style: STextStyles.button(context).copyWith( + // color: Theme.of(context) + // .extension()! + // .accentColorDark, + // ), + // ), + // ), + // ); + // }, + // ), ], ), ), diff --git a/lib/utilities/constants.dart b/lib/utilities/constants.dart index d68760139..6b64d4a73 100644 --- a/lib/utilities/constants.dart +++ b/lib/utilities/constants.dart @@ -40,7 +40,7 @@ abstract class Constants { // Enable Logger.print statements static const bool disableLogger = false; - static const int currentDataVersion = 12; + static const int currentDataVersion = 13; static const int rescanV1 = 1; diff --git a/lib/utilities/stack_file_system.dart b/lib/utilities/stack_file_system.dart index 3675813d9..281bd2a8f 100644 --- a/lib/utilities/stack_file_system.dart +++ b/lib/utilities/stack_file_system.dart @@ -91,6 +91,19 @@ abstract class StackFileSystem { } } + static Future applicationSQLiteDirectory() async { + final root = await applicationRootDirectory(); + if (Util.isDesktop) { + final dir = Directory("${root.path}/sqlite"); + if (!dir.existsSync()) { + await dir.create(); + } + return dir; + } else { + return root; + } + } + static Future applicationTorDirectory() async { final root = await applicationRootDirectory(); if (Util.isDesktop) { diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index dce8cd9fa..918ec563b 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -6,6 +6,7 @@ import 'package:decimal/decimal.dart'; import 'package:flutter_libsparkmobile/flutter_libsparkmobile.dart'; import 'package:isar/isar.dart'; +import '../../../db/sqlite/firo_cache.dart'; import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; @@ -587,6 +588,8 @@ class FiroWallet extends Bip39HDWallet @override Future recover({required bool isRescan}) async { + groupIdTimestampUTCMap = {}; + final start = DateTime.now(); final root = await getRootHDNode(); final List addresses})>> receiveFutures = @@ -620,11 +623,15 @@ class FiroWallet extends Bip39HDWallet // spark final latestSparkCoinId = await electrumXClient.getSparkLatestCoinId(); - final sparkAnonSetFuture = electrumXCachedClient.getSparkAnonymitySet( - groupId: latestSparkCoinId.toString(), - cryptoCurrency: info.coin, - useOnlyCacheIfNotEmpty: false, - ); + final List> sparkAnonSetFutures = []; + for (int i = 1; i <= latestSparkCoinId; i++) { + sparkAnonSetFutures.add( + FiroCacheCoordinator.runFetchAndUpdateSparkAnonSetCacheForGroupId( + i, + electrumXClient, + ), + ); + } final sparkUsedCoinTagsFuture = electrumXCachedClient.getSparkUsedCoinsTags( cryptoCurrency: info.coin, @@ -739,8 +746,8 @@ class FiroWallet extends Bip39HDWallet final futureResults = await Future.wait([ usedSerialNumbersFuture, setDataMapFuture, - sparkAnonSetFuture, sparkUsedCoinTagsFuture, + ...sparkAnonSetFutures, ]); // lelantus @@ -748,8 +755,7 @@ class FiroWallet extends Bip39HDWallet final setDataMap = futureResults[1] as Map; // spark - final sparkAnonymitySet = futureResults[2] as Map; - final sparkSpentCoinTags = futureResults[3] as Set; + final sparkSpentCoinTags = futureResults[2] as Set; if (Util.isDesktop) { await Future.wait([ @@ -759,8 +765,8 @@ class FiroWallet extends Bip39HDWallet setDataMap: setDataMap, ), recoverSparkWallet( - anonymitySet: sparkAnonymitySet, spentCoinTags: sparkSpentCoinTags, + latestSparkCoinId: latestSparkCoinId, ), ]); } else { @@ -770,13 +776,18 @@ class FiroWallet extends Bip39HDWallet setDataMap: setDataMap, ); await recoverSparkWallet( - anonymitySet: sparkAnonymitySet, spentCoinTags: sparkSpentCoinTags, + latestSparkCoinId: latestSparkCoinId, ); } }); unawaited(refresh()); + Logging.instance.log( + "Firo recover for " + "${info.name}: ${DateTime.now().difference(start)}", + level: LogLevel.Info, + ); } catch (e, s) { Logging.instance.log( "Exception rethrown from electrumx_mixin recover(): $e\n$s", diff --git a/lib/wallets/wallet/wallet.dart b/lib/wallets/wallet/wallet.dart index 8fa0b9ddf..dd96aa1f4 100644 --- a/lib/wallets/wallet/wallet.dart +++ b/lib/wallets/wallet/wallet.dart @@ -473,6 +473,7 @@ abstract class Wallet { if (refreshMutex.isLocked) { return; } + final start = DateTime.now(); try { // this acquire should be almost instant due to above check. @@ -608,6 +609,12 @@ abstract class Wallet { ); } finally { refreshMutex.release(); + + Logging.instance.log( + "Refresh for " + "${info.name}: ${DateTime.now().difference(start)}", + level: LogLevel.Info, + ); } } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index 591869cfe..8b94e941d 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -7,6 +7,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_libsparkmobile/flutter_libsparkmobile.dart'; import 'package:isar/isar.dart'; +import '../../../db/sqlite/firo_cache.dart'; import '../../../models/balance.dart'; import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; @@ -259,17 +260,39 @@ mixin SparkInterface final List> setMaps = []; final List<({int groupId, String blockHash})> idAndBlockHashes = []; for (int i = 1; i <= currentId; i++) { - final set = await electrumXCachedClient.getSparkAnonymitySet( - groupId: i.toString(), - cryptoCurrency: info.coin, - useOnlyCacheIfNotEmpty: true, + final resultSet = await FiroCacheCoordinator.getSetCoinsForGroupId(i); + if (resultSet.isEmpty) { + continue; + } + + final info = await FiroCacheCoordinator.getLatestSetInfoForGroupId( + i, ); - set["coinGroupID"] = i; - setMaps.add(set); + if (info == null) { + throw Exception("The `info` should never be null here"); + } + + final Map setData = { + "blockHash": info.blockHash, + "setHash": info.setHash, + "coinGroupID": i, + "coins": resultSet + .map( + (row) => [ + row["serialized"] as String, + row["txHash"] as String, + row["context"] as String, + ], + ) + .toList(), + }; + + setData["coinGroupID"] = i; + setMaps.add(setData); idAndBlockHashes.add( ( groupId: i, - blockHash: set["blockHash"] as String, + blockHash: setData["blockHash"] as String, ), ); } @@ -607,78 +630,12 @@ mixin SparkInterface } Future refreshSparkData() async { - final sparkAddresses = await mainDB.isar.addresses - .where() - .walletIdEqualTo(walletId) - .filter() - .typeEqualTo(AddressType.spark) - .findAll(); - - final Set paths = - sparkAddresses.map((e) => e.derivationPath!.value).toSet(); - try { - final latestSparkCoinId = await electrumXClient.getSparkLatestCoinId(); - - final anonymitySetFuture = electrumXCachedClient.getSparkAnonymitySet( - groupId: latestSparkCoinId.toString(), - cryptoCurrency: info.coin, - useOnlyCacheIfNotEmpty: false, - ); - - final spentCoinTagsFuture = electrumXCachedClient.getSparkUsedCoinsTags( + final spentCoinTags = await electrumXCachedClient.getSparkUsedCoinsTags( cryptoCurrency: info.coin, ); - final futureResults = await Future.wait([ - anonymitySetFuture, - spentCoinTagsFuture, - ]); - - final anonymitySet = futureResults[0] as Map; - final spentCoinTags = futureResults[1] as Set; - - final List myCoins = []; - - if (anonymitySet["coins"] is List && - (anonymitySet["coins"] as List).isNotEmpty) { - final root = await getRootHDNode(); - final privateKeyHexSet = paths - .map( - (e) => root.derivePath(e).privateKey.data.toHex, - ) - .toSet(); - - final identifiedCoins = await compute( - _identifyCoins, - ( - anonymitySetCoins: anonymitySet["coins"] as List, - groupId: latestSparkCoinId, - spentCoinTags: spentCoinTags, - privateKeyHexSet: privateKeyHexSet, - walletId: walletId, - isTestNet: cryptoCurrency.network == CryptoCurrencyNetwork.test, - ), - ); - - myCoins.addAll(identifiedCoins); - } - - // check current coins - final currentCoins = await mainDB.isar.sparkCoins - .where() - .walletIdEqualToAnyLTagHash(walletId) - .filter() - .isUsedEqualTo(false) - .findAll(); - for (final coin in currentCoins) { - if (spentCoinTags.contains(coin.lTagHash)) { - myCoins.add(coin.copyWith(isUsed: true)); - } - } - - // update wallet spark coins in isar - await _addOrUpdateSparkCoins(myCoins); + await _checkAndUpdateCoins(spentCoinTags, true); // refresh spark balance await refreshSparkBalance(); @@ -734,11 +691,14 @@ mixin SparkInterface ); } + // TODO: look into persistence for this? + Map groupIdTimestampUTCMap = {}; + /// Should only be called within the standard wallet [recover] function due to /// mutex locking. Otherwise behaviour MAY be undefined. Future recoverSparkWallet({ - required Map anonymitySet, required Set spentCoinTags, + required int latestSparkCoinId, }) async { // generate spark addresses if non existing if (await getCurrentReceivingSparkAddress() == null) { @@ -746,35 +706,8 @@ mixin SparkInterface await mainDB.putAddress(address); } - final sparkAddresses = await mainDB.isar.addresses - .where() - .walletIdEqualTo(walletId) - .filter() - .typeEqualTo(AddressType.spark) - .findAll(); - - final Set paths = - sparkAddresses.map((e) => e.derivationPath!.value).toSet(); - try { - final root = await getRootHDNode(); - final privateKeyHexSet = - paths.map((e) => root.derivePath(e).privateKey.data.toHex).toSet(); - - final myCoins = await compute( - _identifyCoins, - ( - anonymitySetCoins: anonymitySet["coins"] as List, - groupId: anonymitySet["coinGroupID"] as int, - spentCoinTags: spentCoinTags, - privateKeyHexSet: privateKeyHexSet, - walletId: walletId, - isTestNet: cryptoCurrency.network == CryptoCurrencyNetwork.test, - ), - ); - - // update wallet spark coins in isar - await _addOrUpdateSparkCoins(myCoins); + await _checkAndUpdateCoins(spentCoinTags, false); // refresh spark balance await refreshSparkBalance(); @@ -787,6 +720,85 @@ mixin SparkInterface } } + Future _checkAndUpdateCoins( + Set spentCoinTags, + bool checkUseds, + ) async { + final sparkAddresses = await mainDB.isar.addresses + .where() + .walletIdEqualTo(walletId) + .filter() + .typeEqualTo(AddressType.spark) + .findAll(); + final root = await getRootHDNode(); + final Set privateKeyHexSet = sparkAddresses + .map( + (e) => root.derivePath(e.derivationPath!.value).privateKey.data.toHex, + ) + .toSet(); + + List? currentCoins; + if (checkUseds) { + currentCoins = await mainDB.isar.sparkCoins + .where() + .walletIdEqualToAnyLTagHash(walletId) + .filter() + .isUsedEqualTo(false) + .findAll(); + } + + final latestSparkCoinId = await electrumXClient.getSparkLatestCoinId(); + for (int i = 1; i <= latestSparkCoinId; i++) { + final lastCheckedTimeStampUTC = groupIdTimestampUTCMap[i] ?? 0; + final info = await FiroCacheCoordinator.getLatestSetInfoForGroupId( + i, + ); + final anonymitySetResult = + await FiroCacheCoordinator.getSetCoinsForGroupId( + i, + newerThanTimeStamp: lastCheckedTimeStampUTC, + ); + final coinsRaw = anonymitySetResult + .map( + (row) => [ + row["serialized"] as String, + row["txHash"] as String, + row["context"] as String, + ], + ) + .toList(); + + if (coinsRaw.isNotEmpty) { + final myCoins = await compute( + _identifyCoins, + ( + anonymitySetCoins: coinsRaw, + groupId: i, + spentCoinTags: spentCoinTags, + privateKeyHexSet: privateKeyHexSet, + walletId: walletId, + isTestNet: cryptoCurrency.network == CryptoCurrencyNetwork.test, + ), + ); + + if (checkUseds && currentCoins != null) { + for (final coin in currentCoins) { + if (spentCoinTags.contains(coin.lTagHash)) { + myCoins.add(coin.copyWith(isUsed: true)); + } + } + } + + // update wallet spark coins in isar + await _addOrUpdateSparkCoins(myCoins); + } + groupIdTimestampUTCMap[i] = max( + lastCheckedTimeStampUTC, + info?.timestampUTC ?? lastCheckedTimeStampUTC, + ); + } + } + // modelled on CSparkWallet::CreateSparkMintTransactions https://github.com/firoorg/firo/blob/39c41e5e7ec634ced3700fe3f4f5509dc2e480d0/src/spark/sparkwallet.cpp#L752 Future> _createSparkMintTransactions({ required List availableUtxos, From ef96f3b76c3fc1e7a42b835879142e7dde4a0f2f Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 29 May 2024 17:45:42 -0500 Subject: [PATCH 153/318] Add enableLelantusScanning bool and restore/rescan logic Squashed commit msgs: add (currently unused) bool enableLelantusScanning to WalletInfo only do Lelantus things if Lelantus is enabled 6ac468 --- lib/wallets/isar/models/wallet_info.dart | 1 + lib/wallets/wallet/impl/firo_wallet.dart | 89 +++++++++++++++--------- 2 files changed, 58 insertions(+), 32 deletions(-) diff --git a/lib/wallets/isar/models/wallet_info.dart b/lib/wallets/isar/models/wallet_info.dart index a84fe4348..351229c29 100644 --- a/lib/wallets/isar/models/wallet_info.dart +++ b/lib/wallets/isar/models/wallet_info.dart @@ -507,4 +507,5 @@ abstract class WalletInfoKeys { static const String tezosDerivationPath = "tezosDerivationPathKey"; static const String lelantusCoinIsarRescanRequired = "lelantusCoinIsarRescanRequired"; + static const String enableLelantusScanning = "enableLelantusScanning"; } diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index dce8cd9fa..510d08cfb 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -610,13 +610,25 @@ class FiroWallet extends Bip39HDWallet await mainDB.deleteWalletBlockchainData(walletId); } + // Parse otherDataJsonString to get the enableLelantusScanning value. + bool? enableLelantusScanning = false; + if (info.otherDataJsonString != null) { + final otherDataJson = json.decode(info.otherDataJsonString!); + enableLelantusScanning = + otherDataJson["enableLelantusScanning"] as bool? ?? false; + } + // lelantus - final latestSetId = await electrumXClient.getLelantusLatestCoinId(); - final setDataMapFuture = getSetDataMap(latestSetId); - final usedSerialNumbersFuture = - electrumXCachedClient.getUsedCoinSerials( - cryptoCurrency: info.coin, - ); + int? latestSetId; + Future>? setDataMapFuture; + Future>? usedSerialNumbersFuture; + if (enableLelantusScanning) { + latestSetId = await electrumXClient.getLelantusLatestCoinId(); + setDataMapFuture = getSetDataMap(latestSetId); + usedSerialNumbersFuture = electrumXCachedClient.getUsedCoinSerials( + cryptoCurrency: info.coin, + ); + } // spark final latestSparkCoinId = await electrumXClient.getSparkLatestCoinId(); @@ -736,39 +748,52 @@ class FiroWallet extends Bip39HDWallet updateUTXOs(), ]); - final futureResults = await Future.wait([ - usedSerialNumbersFuture, - setDataMapFuture, - sparkAnonSetFuture, - sparkUsedCoinTagsFuture, - ]); + List> futures = []; + + futures.add(sparkAnonSetFuture); + futures.add(sparkUsedCoinTagsFuture); + if (enableLelantusScanning) { + futures.add(usedSerialNumbersFuture!); + futures.add(setDataMapFuture!); + } + + final futureResults = await Future.wait(futures); // lelantus - final usedSerialsSet = (futureResults[0] as List).toSet(); - final setDataMap = futureResults[1] as Map; + Set? usedSerialsSet; + Map? setDataMap; + if (enableLelantusScanning) { + usedSerialsSet = (futureResults[2] as List).toSet(); + setDataMap = futureResults[3] as Map; + } // spark - final sparkAnonymitySet = futureResults[2] as Map; - final sparkSpentCoinTags = futureResults[3] as Set; + final sparkAnonymitySet = futureResults[0] as Map; + final sparkSpentCoinTags = futureResults[1] as Set; if (Util.isDesktop) { - await Future.wait([ - recoverLelantusWallet( - latestSetId: latestSetId, - usedSerialNumbers: usedSerialsSet, - setDataMap: setDataMap, - ), - recoverSparkWallet( - anonymitySet: sparkAnonymitySet, - spentCoinTags: sparkSpentCoinTags, - ), - ]); + List> futures = []; + if (enableLelantusScanning) { + futures.add(recoverLelantusWallet( + latestSetId: latestSetId!, + usedSerialNumbers: usedSerialsSet!, + setDataMap: setDataMap!, + )); + } + futures.add(recoverSparkWallet( + anonymitySet: sparkAnonymitySet, + spentCoinTags: sparkSpentCoinTags, + )); + + await Future.wait(futures); } else { - await recoverLelantusWallet( - latestSetId: latestSetId, - usedSerialNumbers: usedSerialsSet, - setDataMap: setDataMap, - ); + if (enableLelantusScanning) { + await recoverLelantusWallet( + latestSetId: latestSetId!, + usedSerialNumbers: usedSerialsSet!, + setDataMap: setDataMap!, + ); + } await recoverSparkWallet( anonymitySet: sparkAnonymitySet, spentCoinTags: sparkSpentCoinTags, From 32561b56943c5060053838387086df003a25e812 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 29 May 2024 17:46:21 -0500 Subject: [PATCH 154/318] Scan for Lelantus transactions desktop UI Squashed commit msgs: WIP add lelantus checkmark to restore options view, pass to restore view make bool optional, pass it style restore option text --- .../restore_options_view.dart | 32 ++++++++- .../restore_wallet_view.dart | 25 ++++--- .../more_features/more_features_dialog.dart | 67 +++++++++++++++++++ lib/route_generator.dart | 7 +- 4 files changed, 119 insertions(+), 12 deletions(-) diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart index e04ed9959..8e6459649 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart @@ -72,6 +72,9 @@ class _RestoreOptionsViewState extends ConsumerState { bool get supportsMnemonicPassphrase => coin.hasMnemonicPassphraseSupport; + bool enableLelantusScanning = false; + bool get supportsLelantus => coin is Firo; + @override void initState() { walletName = widget.walletName; @@ -107,12 +110,13 @@ class _RestoreOptionsViewState extends ConsumerState { if (mounted) { await Navigator.of(context).pushNamed( RestoreWalletView.routeName, - arguments: Tuple5( + arguments: Tuple6( walletName, coin, ref.read(mnemonicWordCountStateProvider.state).state, _restoreFromDate, passwordController.text, + enableLelantusScanning, ), ); } @@ -437,6 +441,32 @@ class _RestoreOptionsViewState extends ConsumerState { color: Colors.transparent, child: Column( children: [ + Row( + children: [ + Checkbox( + value: enableLelantusScanning, + onChanged: (bool? newValue) { + setState(() { + enableLelantusScanning = newValue ?? true; + }); + }, + ), + Text( + 'Scan for Lelantus transactions', + style: isDesktop + ? STextStyles.desktopTextExtraSmall(context) + .copyWith( + color: Theme.of(context) + .extension()! + .textSubtitle1, + ) + : STextStyles.itemSubtitle(context), + ), + ], + ), + const SizedBox( + height: 8, + ), ClipRRect( borderRadius: BorderRadius.circular( Constants.size.circularBorderRadius, diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart index 9daf9d300..d7fcd7264 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart @@ -22,15 +22,9 @@ import 'package:flutter_libmonero/monero/monero.dart' as libxmr; import 'package:flutter_libmonero/wownero/wownero.dart' as libwow; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:wakelock/wakelock.dart'; + import '../../../notifications/show_flush_bar.dart'; -import '../add_token_view/edit_wallet_tokens_view.dart'; -import 'confirm_recovery_dialog.dart'; -import 'sub_widgets/restore_failed_dialog.dart'; -import 'sub_widgets/restore_succeeded_dialog.dart'; -import 'sub_widgets/restoring_dialog.dart'; -import '../select_wallet_for_token_view.dart'; -import '../verify_recovery_phrase_view/verify_recovery_phrase_view.dart'; -import '../../home_view/home_view.dart'; import '../../../pages_desktop_specific/desktop_home_view.dart'; import '../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; import '../../../providers/db/main_db_provider.dart'; @@ -64,7 +58,14 @@ import '../../../widgets/icon_widgets/qrcode_icon.dart'; import '../../../widgets/table_view/table_view.dart'; import '../../../widgets/table_view/table_view_cell.dart'; import '../../../widgets/table_view/table_view_row.dart'; -import 'package:wakelock/wakelock.dart'; +import '../../home_view/home_view.dart'; +import '../add_token_view/edit_wallet_tokens_view.dart'; +import '../select_wallet_for_token_view.dart'; +import '../verify_recovery_phrase_view/verify_recovery_phrase_view.dart'; +import 'confirm_recovery_dialog.dart'; +import 'sub_widgets/restore_failed_dialog.dart'; +import 'sub_widgets/restore_succeeded_dialog.dart'; +import 'sub_widgets/restoring_dialog.dart'; class RestoreWalletView extends ConsumerStatefulWidget { const RestoreWalletView({ @@ -74,6 +75,7 @@ class RestoreWalletView extends ConsumerStatefulWidget { required this.seedWordsLength, required this.mnemonicPassphrase, required this.restoreFromDate, + this.enableLelantusScanning = false, this.barcodeScanner = const BarcodeScannerWrapper(), this.clipboard = const ClipboardWrapper(), }); @@ -85,6 +87,7 @@ class RestoreWalletView extends ConsumerStatefulWidget { final String mnemonicPassphrase; final int seedWordsLength; final DateTime restoreFromDate; + final bool enableLelantusScanning; final BarcodeScannerInterface barcodeScanner; final ClipboardInterface clipboard; @@ -256,6 +259,8 @@ class _RestoreWalletViewState extends ConsumerState { otherDataJsonString = jsonEncode( { WalletInfoKeys.lelantusCoinIsarRescanRequired: false, + WalletInfoKeys.enableLelantusScanning: + widget.enableLelantusScanning, }, ); } @@ -331,6 +336,8 @@ class _RestoreWalletViewState extends ConsumerState { mnemonic: mnemonic, ); + // TODO [prio=high]: Update wallet with widget.enableLelantusScanning. + // TODO: extract interface with isRestore param switch (wallet.runtimeType) { case const (EpiccashWallet): diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart index 10366c646..03f4db1c7 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart @@ -8,9 +8,13 @@ * */ +import 'dart:convert'; + import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + +import '../../../../../providers/db/main_db_provider.dart'; import '../../../../../providers/global/prefs_provider.dart'; import '../../../../../providers/global/wallets_provider.dart'; import '../../../../../themes/stack_colors.dart'; @@ -18,10 +22,12 @@ import '../../../../../utilities/assets.dart'; import '../../../../../utilities/text_styles.dart'; import '../../../../../wallets/crypto_currency/coins/banano.dart'; import '../../../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../../../wallets/isar/models/wallet_info.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../../../../widgets/custom_buttons/draggable_switch_button.dart'; import '../../../../../widgets/desktop/desktop_dialog.dart'; import '../../../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../../../widgets/rounded_container.dart'; @@ -53,6 +59,8 @@ class MoreFeaturesDialog extends ConsumerStatefulWidget { } class _MoreFeaturesDialogState extends ConsumerState { + bool? enableLelantusScanning = false; + @override Widget build(BuildContext context) { final wallet = ref.watch( @@ -61,6 +69,13 @@ class _MoreFeaturesDialogState extends ConsumerState { ), ); + // Parse otherDataJsonString to get the enableLelantusScanning value. + if (wallet.info.otherDataJsonString != null) { + final otherDataJson = json.decode(wallet.info.otherDataJsonString!); + enableLelantusScanning = + otherDataJson["enableLelantusScanning"] as bool? ?? false; + } + final coinControlPrefEnabled = ref.watch( prefsChangeNotifierProvider.select( (value) => value.enableCoinControl, @@ -136,6 +151,58 @@ class _MoreFeaturesDialogState extends ConsumerState { iconAsset: Assets.svg.cashFusion, onPressed: () => widget.onFusionPressed?.call(), ), + if (wallet.info.coin is Firo) + Padding( + padding: const EdgeInsets.symmetric( + vertical: 6, + horizontal: 32, + ), + child: RoundedContainer( + color: Colors.transparent, + borderColor: Theme.of(context) + .extension()! + .textFieldDefaultBG, + child: Row( + children: [ + SizedBox(width: 3), + SizedBox( + height: 20, + width: 40, + child: DraggableSwitchButton( + isOn: enableLelantusScanning ?? false, + onValueChanged: (newValue) { + // Toggle enableLelantusScanning in wallet info. + wallet.info.updateOtherData(newEntries: { + WalletInfoKeys.enableLelantusScanning: + !(enableLelantusScanning ?? false) + }, isar: ref.read(mainDBProvider).isar).then((value) { + // Should setState be used here? + enableLelantusScanning = + !(enableLelantusScanning ?? false); + }); + }, + ), + ), + const SizedBox( + width: 16, + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Scan for Lelantus transactions", + style: STextStyles.w600_20(context), + ), + // Text( + // detail, + // style: STextStyles.desktopTextExtraExtraSmall(context), + // ), + ], + ), + ], + ), + ), + ), const SizedBox( height: 28, ), diff --git a/lib/route_generator.dart b/lib/route_generator.dart index 735b8681e..516c1ddb8 100644 --- a/lib/route_generator.dart +++ b/lib/route_generator.dart @@ -11,6 +11,8 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + import 'models/add_wallet_list_entity/add_wallet_list_entity.dart'; import 'models/add_wallet_list_entity/sub_classes/eth_token_entity.dart'; import 'models/buy/response_objects/quote.dart'; @@ -194,7 +196,6 @@ import 'wallets/models/tx_data.dart'; import 'wallets/wallet/wallet.dart'; import 'widgets/choose_coin_view.dart'; import 'widgets/frost_scaffold.dart'; -import 'package:tuple/tuple.dart'; /* * This file contains all the routes for the app. @@ -1390,7 +1391,8 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case RestoreWalletView.routeName: - if (args is Tuple5) { + if (args + is Tuple6) { return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, builder: (_) => RestoreWalletView( @@ -1399,6 +1401,7 @@ class RouteGenerator { seedWordsLength: args.item3, restoreFromDate: args.item4, mnemonicPassphrase: args.item5, + enableLelantusScanning: args.item6 ?? false, ), settings: RouteSettings( name: settings.name, From 8374d300358057943a3af316d3171b29d16a8f10 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 29 May 2024 19:42:14 -0500 Subject: [PATCH 155/318] Lelantus settings mobile UI and cleanup --- .../restore_wallet_view.dart | 2 - .../lelantus_settings_view.dart | 146 ++++++++++++++++++ .../wallet_settings_wallet_settings_view.dart | 42 ++++- lib/route_generator.dart | 13 ++ pubspec.lock | 2 +- 5 files changed, 199 insertions(+), 6 deletions(-) create mode 100644 lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart index d7fcd7264..a7768b061 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart @@ -336,8 +336,6 @@ class _RestoreWalletViewState extends ConsumerState { mnemonic: mnemonic, ); - // TODO [prio=high]: Update wallet with widget.enableLelantusScanning. - // TODO: extract interface with isRestore param switch (wallet.runtimeType) { case const (EpiccashWallet): diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart new file mode 100644 index 000000000..58632c1cd --- /dev/null +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart @@ -0,0 +1,146 @@ +/* + * This file is part of Stack Wallet. + * + * Copyright (c) 2023 Cypher Stack + * All Rights Reserved. + * The code is distributed under GPLv3 license, see LICENSE file for details. + * Generated by Cypher Stack on 2023-05-26 + * + */ + +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; + +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/global/wallets_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../wallets/isar/models/wallet_info.dart'; +import '../../../../wallets/wallet/wallet.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; + +class LelantusSettingsView extends ConsumerStatefulWidget { + const LelantusSettingsView({ + super.key, + required this.walletId, + }); + + static const String routeName = "/lelantusSettings"; + + final String walletId; + + @override + ConsumerState createState() => + _LelantusSettingsViewState(); +} + +class _LelantusSettingsViewState extends ConsumerState { + late final TextEditingController _controller; + late final String walletId; + + final _focusNode = FocusNode(); + + bool _isInitialized = false; + Wallet? wallet; + bool? enableLelantusScanning = false; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + if (!_isInitialized) { + // Get the wallet. + wallet = ref.watch( + pWallets.select( + (value) => value.getWallet(widget.walletId), + ), + ); + + // Parse otherDataJsonString to get the enableLelantusScanning value. + if (wallet?.info.otherDataJsonString != null) { + final otherDataJson = json.decode(wallet!.info.otherDataJsonString!); + enableLelantusScanning = + otherDataJson["enableLelantusScanning"] as bool? ?? false; + } + + _isInitialized = true; // Ensure this logic runs only once + } + } + + @override + void dispose() { + _controller.dispose(); + _focusNode.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Background( + child: Scaffold( + backgroundColor: Theme.of(context).extension()!.background, + appBar: AppBar( + leading: AppBarBackButton( + onPressed: () { + Navigator.of(context).pop(); + }, + ), + title: Text( + "Lelantus settings", + style: STextStyles.navBarTitle(context), + ), + ), + body: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Row( + children: [ + SizedBox( + height: 20, + width: 40, + child: DraggableSwitchButton( + isOn: enableLelantusScanning ?? false, + onValueChanged: (newValue) { + // Toggle enableLelantusScanning in wallet info. + wallet?.info.updateOtherData(newEntries: { + WalletInfoKeys.enableLelantusScanning: + !(enableLelantusScanning ?? false) + }, isar: ref.read(mainDBProvider).isar).then((value) { + // Should setState be used here? + enableLelantusScanning = + !(enableLelantusScanning ?? false); + }); + }, + ), + ), + const SizedBox( + width: 16, + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Scan for Lelantus transactions", + style: STextStyles.smallMed12(context), + ), + // Text( + // detail, + // style: STextStyles.desktopTextExtraExtraSmall(context), + // ), + ], + ), + ], + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart index a3c3a2969..7c2884258 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart @@ -10,9 +10,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import '../../../pinpad_views/lock_screen_view.dart'; -import 'delete_wallet_warning_view.dart'; -import 'rename_wallet_view.dart'; + import '../../../../route_generator.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/constants.dart'; @@ -22,6 +20,10 @@ import '../../../../widgets/background.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/rounded_white_container.dart'; import '../../../../widgets/stack_dialog.dart'; +import '../../../pinpad_views/lock_screen_view.dart'; +import 'delete_wallet_warning_view.dart'; +import 'lelantus_settings_view.dart'; +import 'rename_wallet_view.dart'; class WalletSettingsWalletSettingsView extends ConsumerWidget { const WalletSettingsWalletSettingsView({ @@ -180,6 +182,40 @@ class WalletSettingsWalletSettingsView extends ConsumerWidget { ), ), ), + const SizedBox( + height: 8, + ), + RoundedWhiteContainer( + padding: const EdgeInsets.all(0), + child: RawMaterialButton( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), + ), + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + onPressed: () { + Navigator.of(context).pushNamed( + LelantusSettingsView.routeName, + arguments: walletId, + ); + }, + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 12.0, + vertical: 20, + ), + child: Row( + children: [ + Text( + "Lelantus settings", + style: STextStyles.titleBold12(context), + ), + ], + ), + ), + ), + ), ], ), ), diff --git a/lib/route_generator.dart b/lib/route_generator.dart index 516c1ddb8..27d1eb4f7 100644 --- a/lib/route_generator.dart +++ b/lib/route_generator.dart @@ -129,6 +129,7 @@ import 'pages/settings_views/wallet_settings_view/wallet_settings_view.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/change_representative_view.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart'; +import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart'; @@ -1953,6 +1954,18 @@ class RouteGenerator { } return _routeError("${settings.name} invalid args: ${args.toString()}"); + case LelantusSettingsView.routeName: + if (args is String) { + return getRoute( + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => LelantusSettingsView(walletId: args), + settings: RouteSettings( + name: settings.name, + ), + ); + } + return _routeError("${settings.name} invalid args: ${args.toString()}"); + // == Desktop specific routes ============================================ case CreatePasswordView.routeName: if (args is bool) { diff --git a/pubspec.lock b/pubspec.lock index a9cfa08cf..e8c94e9a2 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1194,7 +1194,7 @@ packages: source: hosted version: "0.2.0" monero: - dependency: "direct main" + dependency: transitive description: path: "." ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac" From cbe9919e67b3f80b7568b26245d397379f640cae Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 29 May 2024 19:44:24 -0500 Subject: [PATCH 156/318] Refresh Lelantus data appropriately according to the enableLelantusScanning WalletInfo setting (stored in otherDataJsonString) --- lib/wallets/wallet/wallet.dart | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/wallets/wallet/wallet.dart b/lib/wallets/wallet/wallet.dart index 8fa0b9ddf..83698a819 100644 --- a/lib/wallets/wallet/wallet.dart +++ b/lib/wallets/wallet/wallet.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:convert'; import 'package:isar/isar.dart'; import 'package:meta/meta.dart'; @@ -558,7 +559,16 @@ abstract class Wallet { // TODO: [prio=low] handle this differently. Extra modification of this file for coin specific functionality should be avoided. if (this is LelantusInterface) { - await (this as LelantusInterface).refreshLelantusData(); + // Parse otherDataJsonString to get the enableLelantusScanning value. + bool enableLelantusScanning = false; + if (this.info.otherDataJsonString != null) { + final otherDataJson = json.decode(this.info.otherDataJsonString!); + enableLelantusScanning = + otherDataJson["enableLelantusScanning"] as bool? ?? false; + } + if (enableLelantusScanning) { + await (this as LelantusInterface).refreshLelantusData(); + } } GlobalEventBus.instance.fire(RefreshPercentChangedEvent(0.90, walletId)); From c7c34803fa8883e3b442774fcac36c2c740ec7dd Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 30 May 2024 10:14:33 -0600 Subject: [PATCH 157/318] use libsparkmobile caching branch --- pubspec.lock | 4 ++-- scripts/app_config/templates/pubspec.template | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 4caa61444..ccd30906c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -689,8 +689,8 @@ packages: dependency: "direct main" description: path: "." - ref: "439727b278250c61a291f5335c298c0f2d952517" - resolved-ref: "439727b278250c61a291f5335c298c0f2d952517" + ref: "7a11d0cadf8c7a6a5d5144dab18cef9536aa5943" + resolved-ref: "7a11d0cadf8c7a6a5d5144dab18cef9536aa5943" url: "https://github.com/cypherstack/flutter_libsparkmobile.git" source: git version: "0.0.1" diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index 71410f213..c9e284ce9 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -33,7 +33,7 @@ dependencies: flutter_libsparkmobile: git: url: https://github.com/cypherstack/flutter_libsparkmobile.git - ref: 439727b278250c61a291f5335c298c0f2d952517 + ref: 7a11d0cadf8c7a6a5d5144dab18cef9536aa5943 flutter_libmonero: path: ./crypto_plugins/flutter_libmonero From c7e7643fe56cb26fae47dba843632241cf3394da Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 30 May 2024 12:46:41 -0600 Subject: [PATCH 158/318] chunked list extension --- lib/utilities/extensions/impl/list.dart | 19 ++++++++++++++ test/utilities/extensions/list_test.dart | 33 ++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 lib/utilities/extensions/impl/list.dart create mode 100644 test/utilities/extensions/list_test.dart diff --git a/lib/utilities/extensions/impl/list.dart b/lib/utilities/extensions/impl/list.dart new file mode 100644 index 000000000..c802f2704 --- /dev/null +++ b/lib/utilities/extensions/impl/list.dart @@ -0,0 +1,19 @@ +extension ListExt on List { + List> chunked({required int chunkSize}) { + final remainder = length % chunkSize; + final count = length ~/ chunkSize; + final List> result = []; + + int i = 0; + while (i < count) { + result.add(sublist(i, i + chunkSize)); + i++; + } + + if (remainder > 0) { + result.add(sublist(i, i + remainder)); + } + + return result; + } +} diff --git a/test/utilities/extensions/list_test.dart b/test/utilities/extensions/list_test.dart new file mode 100644 index 000000000..594328034 --- /dev/null +++ b/test/utilities/extensions/list_test.dart @@ -0,0 +1,33 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:stackwallet/utilities/extensions/extensions.dart'; + +void main() { + test("Empty list", () { + final List list = []; + expect( + list.chunked(chunkSize: 3).isEmpty, + true, + ); + }); + + test("No remainder", () { + final List list = [0, 1, 2, 3, 4, 5, 6, 7, 8]; + final chunked = list.chunked(chunkSize: 3); + expect(chunked.length == 3, true); + expect( + chunked.map((e) => e.length == 3).reduce((v, e) => v && e), + true, + ); + }); + + test("Some remainder", () { + final List list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; + final chunked = list.chunked(chunkSize: 3); + expect(chunked.length == 4, true); + expect(chunked.last.length == 1, true); + expect( + chunked.map((e) => e.length == 3).reduce((v, e) => v && e), + false, + ); + }); +} From d99231c973cac216f4a832230f2a27b13292ecc8 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 30 May 2024 15:09:26 -0600 Subject: [PATCH 159/318] fix spark anon set fetch using the reverse hex of the blockhash given to us by an earlier call of that same electrumx method --- lib/db/sqlite/firo_cache.dart | 2 +- lib/utilities/extensions/impl/string.dart | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/db/sqlite/firo_cache.dart b/lib/db/sqlite/firo_cache.dart index c8ac015e8..f77e4da15 100644 --- a/lib/db/sqlite/firo_cache.dart +++ b/lib/db/sqlite/firo_cache.dart @@ -35,7 +35,7 @@ abstract class FiroCacheCoordinator { final json = await client.getSparkAnonymitySet( coinGroupId: groupId.toString(), - startBlockHash: blockHash, + startBlockHash: blockHash.toHexReversedFromBase64, ); await _FiroCache._updateWith(json, groupId); diff --git a/lib/utilities/extensions/impl/string.dart b/lib/utilities/extensions/impl/string.dart index d3e50fa78..6a25f23b6 100644 --- a/lib/utilities/extensions/impl/string.dart +++ b/lib/utilities/extensions/impl/string.dart @@ -14,6 +14,7 @@ import 'dart:typed_data'; import 'package:dart_bs58/dart_bs58.dart'; import 'package:dart_bs58check/dart_bs58check.dart'; import 'package:hex/hex.dart'; + import '../extensions.dart'; extension StringExtensions on String { @@ -27,4 +28,14 @@ extension StringExtensions on String { Uint8List get toUint8ListFromBase58CheckEncoded => bs58check.decode(this); BigInt get toBigIntFromHex => toUint8ListFromHex.toBigInt; + + String get toHexFromBase64 => base64Decode(LineSplitter.split(this).join()) + .map((e) => e.toRadixString(16).padLeft(2, '0')) + .join(); + + String get toHexReversedFromBase64 => + base64Decode(LineSplitter.split(this).join()) + .reversed + .map((e) => e.toRadixString(16).padLeft(2, '0')) + .join(); } From 08f01d3141d9334efa13b5376c04bc70116c04b3 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 30 May 2024 15:10:56 -0600 Subject: [PATCH 160/318] cache used spark tags in sqlite as well --- lib/db/db_version_migration.dart | 14 +- lib/db/hive/db.dart | 17 -- lib/db/sqlite/firo_cache.dart | 270 ++++++++++++++++-- .../cached_electrumx_client.dart | 47 --- lib/electrumx_rpc/electrumx_client.dart | 28 +- lib/utilities/extensions/extensions.dart | 1 + lib/wallets/wallet/impl/firo_wallet.dart | 11 +- .../spark_interface.dart | 128 ++++++--- 8 files changed, 357 insertions(+), 159 deletions(-) diff --git a/lib/db/db_version_migration.dart b/lib/db/db_version_migration.dart index 8fc4c6963..b5da9f505 100644 --- a/lib/db/db_version_migration.dart +++ b/lib/db/db_version_migration.dart @@ -717,11 +717,13 @@ class DbVersionMigrator with WalletDB { } Future _v12(SecureStorageInterface secureStore) async { - await DB.instance.deleteBoxFromDisk( - boxName: "firo_anonymitySetSparkCache", - ); - await DB.instance.deleteBoxFromDisk( - boxName: "firoTestNet_anonymitySetSparkCache", - ); + for (final identifier in ["firo", "firoTestNet"]) { + await DB.instance.deleteBoxFromDisk( + boxName: "${identifier}_anonymitySetSparkCache", + ); + await DB.instance.deleteBoxFromDisk( + boxName: "${identifier}_sparkUsedCoinsTagsCache", + ); + } } } diff --git a/lib/db/hive/db.dart b/lib/db/hive/db.dart index 7fe515c4a..2e9b5435b 100644 --- a/lib/db/hive/db.dart +++ b/lib/db/hive/db.dart @@ -58,8 +58,6 @@ class DB { "${currency.identifier}_anonymitySetCache"; String _boxNameUsedSerialsCache({required CryptoCurrency currency}) => "${currency.identifier}_usedSerialsCache"; - String _boxNameSparkUsedCoinsTagsCache({required CryptoCurrency currency}) => - "${currency.identifier}_sparkUsedCoinsTagsCache"; Box? _boxNodeModels; Box? _boxPrimaryNodes; @@ -229,18 +227,6 @@ class DB { ); } - Future> getSparkUsedCoinsTagsCacheBox({ - required CryptoCurrency currency, - }) async { - if (_getSparkUsedCoinsTagsCacheBoxes[currency.identifier]?.isOpen != true) { - _getSparkUsedCoinsTagsCacheBoxes.remove(currency.identifier); - } - return _getSparkUsedCoinsTagsCacheBoxes[currency.identifier] ??= - await Hive.openBox( - _boxNameSparkUsedCoinsTagsCache(currency: currency), - ); - } - Future closeUsedSerialsCacheBox({ required CryptoCurrency currency, }) async { @@ -257,9 +243,6 @@ class DB { await deleteAll( boxName: _boxNameUsedSerialsCache(currency: currency), ); - await deleteAll( - boxName: _boxNameSparkUsedCoinsTagsCache(currency: currency), - ); } } diff --git a/lib/db/sqlite/firo_cache.dart b/lib/db/sqlite/firo_cache.dart index f77e4da15..a6c2882a0 100644 --- a/lib/db/sqlite/firo_cache.dart +++ b/lib/db/sqlite/firo_cache.dart @@ -2,9 +2,11 @@ import 'dart:async'; import 'dart:io'; import 'package:flutter/foundation.dart'; +import 'package:flutter_libsparkmobile/flutter_libsparkmobile.dart'; import 'package:sqlite3/sqlite3.dart'; import '../../electrumx_rpc/electrumx_client.dart'; +import '../../utilities/extensions/extensions.dart'; import '../../utilities/logger.dart'; import '../../utilities/stack_file_system.dart'; @@ -18,11 +20,31 @@ void _debugLog(Object? object) { } } -/// Wrapper class for [FiroCache] as [FiroCache] should eventually be handled in a +List _ffiHashTagsComputeWrapper(List base64Tags) { + return LibSpark.hashTags(base64Tags: base64Tags); +} + +/// Wrapper class for [_FiroCache] as [_FiroCache] should eventually be handled in a /// background isolate and [FiroCacheCoordinator] should manage that isolate abstract class FiroCacheCoordinator { static Future init() => _FiroCache.init(); + static Future runFetchAndUpdateSparkUsedCoinTags( + ElectrumXClient client, + ) async { + final count = await FiroCacheCoordinator.getUsedCoinTagsLastAddedRowId(); + final unhashedTags = await client.getSparkUnhashedUsedCoinsTags( + startNumber: count, + ); + if (unhashedTags.isNotEmpty) { + final hashedTags = await compute( + _ffiHashTagsComputeWrapper, + unhashedTags, + ); + await _FiroCache._updateSparkUsedTagsWith(hashedTags); + } + } + static Future runFetchAndUpdateSparkAnonSetCacheForGroupId( int groupId, ElectrumXClient client, @@ -38,7 +60,36 @@ abstract class FiroCacheCoordinator { startBlockHash: blockHash.toHexReversedFromBase64, ); - await _FiroCache._updateWith(json, groupId); + await _FiroCache._updateSparkAnonSetCoinsWith(json, groupId); + } + + // =========================================================================== + + static Future> getUsedCoinTags(int startNumber) async { + final result = await _FiroCache._getSparkUsedCoinTags( + startNumber, + ); + return result.map((e) => e["tag"] as String).toSet(); + } + + /// This should be the equivalent of counting the number of tags in the db. + /// Assuming the integrity of the data. Faster than actually calling count on + /// a table where no records have been deleted. None should be deleted from + /// this table in practice. + static Future getUsedCoinTagsLastAddedRowId() async { + final result = await _FiroCache._getUsedCoinTagsLastAddedRowId(); + if (result.isEmpty) { + return 0; + } + return result.first["highestId"] as int? ?? 0; + } + + static Future checkTagIsUsed( + String tag, + ) async { + return await _FiroCache._checkTagIsUsed( + tag, + ); } static Future getSetCoinsForGroupId( @@ -71,6 +122,14 @@ abstract class FiroCacheCoordinator { timestampUTC: result.first["timestampUTC"] as int, ); } + + static Future checkSetInfoForGroupIdExists( + int groupId, + ) async { + return await _FiroCache._checkSetInfoForGroupIdExists( + groupId, + ); + } } abstract class _FiroCache { @@ -137,6 +196,11 @@ abstract class _FiroCache { FOREIGN KEY (setId) REFERENCES SparkSet(id), FOREIGN KEY (coinId) REFERENCES SparkCoin(id) ); + + CREATE TABLE SparkUsedCoinTags ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, + tag TEXT NOT NULL UNIQUE + ); """, ); @@ -181,10 +245,64 @@ abstract class _FiroCache { return db.select("$query;"); } - // =========================================================================== - // =========================================================================== + static Future _checkSetInfoForGroupIdExists( + int groupId, + ) async { + final query = """ + SELECT EXISTS ( + SELECT 1 + FROM SparkSet + WHERE groupId = $groupId + ) AS setExists; + """; - static int _upCount = 0; + return db.select("$query;").first["setExists"] == 1; + } + + // =========================================================================== + // =============== Spark used coin tags queries ============================== + + static Future _getSparkUsedCoinTags( + int startNumber, + ) async { + String query = """ + SELECT tag + FROM SparkUsedCoinTags + """; + + if (startNumber > 0) { + query += " WHERE id >= $startNumber"; + } + + return db.select("$query;"); + } + + static Future _getUsedCoinTagsLastAddedRowId() async { + const query = """ + SELECT MAX(id) AS highestId + FROM SparkUsedCoinTags; + """; + + return db.select("$query;"); + } + + static Future _checkTagIsUsed(String tag) async { + final query = """ + SELECT EXISTS ( + SELECT 1 + FROM SparkUsedCoinTags + WHERE tag = '$tag' + ) AS tagExists; + """; + + return db.select("$query;").first["tagExists"] == 1; + } + + // =========================================================================== + // ================== write to spark used tags cache ========================= + + // debug log counter var + static int _updateTagsCount = 0; /// update the sqlite cache /// Expected json format: @@ -201,20 +319,123 @@ abstract class _FiroCache { /// } /// /// returns true if successful, otherwise false - static Future _updateWith( + static Future _updateSparkUsedTagsWith( + List tags, + ) async { + final start = DateTime.now(); + _updateTagsCount++; + + if (tags.isEmpty) { + _debugLog( + "$_updateTagsCount _updateSparkUsedTagsWith(tags) called " + "where tags is empty", + ); + _debugLog( + "$_updateTagsCount _updateSparkUsedTagsWith() " + "duration = ${DateTime.now().difference(start)}", + ); + // nothing to add, return early + return true; + } else if (tags.length <= 10) { + _debugLog("$_updateTagsCount _updateSparkUsedTagsWith() called where " + "tags.length=${tags.length}, tags: $tags,"); + } else { + _debugLog( + "$_updateTagsCount _updateSparkUsedTagsWith() called where" + " tags.length=${tags.length}," + " first 5 tags: ${tags.sublist(0, 5)}," + " last 5 tags: ${tags.sublist(tags.length - 5, tags.length)}", + ); + } + + db.execute("BEGIN;"); + try { + for (final tag in tags) { + db.execute( + """ + INSERT OR IGNORE INTO SparkUsedCoinTags (tag) + VALUES (?); + """, + [tag], + ); + } + + db.execute("COMMIT;"); + _debugLog("$_updateTagsCount _updateSparkUsedTagsWith() COMMITTED"); + _debugLog( + "$_updateTagsCount _updateSparkUsedTagsWith() " + "duration = ${DateTime.now().difference(start)}", + ); + return true; + } catch (e, s) { + db.execute("ROLLBACK;"); + _debugLog("$_updateTagsCount _updateSparkUsedTagsWith() ROLLBACK"); + _debugLog( + "$_updateTagsCount _updateSparkUsedTagsWith() " + "duration = ${DateTime.now().difference(start)}", + ); + // NOTE THIS LOGGER MUST BE CALLED ON MAIN ISOLATE FOR NOW + Logging.instance.log( + "$e\n$s", + level: LogLevel.Error, + ); + } + + return false; + } + + // =========================================================================== + // ================== write to spark anon set cache ========================== + + // debug log counter var + static int _updateAnonSetCount = 0; + + /// update the sqlite cache + /// Expected json format: + /// { + /// "blockHash": "someBlockHash", + /// "setHash": "someSetHash", + /// "coins": [ + /// ["serliazed1", "hash1", "context1"], + /// ["serliazed2", "hash2", "context2"], + /// ... + /// ["serliazed3", "hash3", "context3"], + /// ["serliazed4", "hash4", "context4"], + /// ], + /// } + /// + /// returns true if successful, otherwise false + static Future _updateSparkAnonSetCoinsWith( Map json, int groupId, ) async { final start = DateTime.now(); - _upCount++; + _updateAnonSetCount++; final blockHash = json["blockHash"] as String; final setHash = json["setHash"] as String; + final coinsRaw = json["coins"] as List; _debugLog( - "$_upCount _updateWith() called where groupId=$groupId," - " blockHash=$blockHash, setHash=$setHash", + "$_updateAnonSetCount _updateSparkAnonSetCoinsWith() " + "called where groupId=$groupId, " + "blockHash=$blockHash (${blockHash.toHexReversedFromBase64}), " + "setHash=$setHash, " + "coins.length: ${coinsRaw.isEmpty ? 0 : coinsRaw.length}", ); + if ((json["coins"] as List).isEmpty) { + _debugLog( + "$_updateAnonSetCount _updateSparkAnonSetCoinsWith()" + " called where json[coins] is Empty", + ); + _debugLog( + "$_updateAnonSetCount _updateSparkAnonSetCoinsWith()" + " duration = ${DateTime.now().difference(start)}", + ); + // no coins to actually insert + return true; + } + final checkResult = db.select( """ SELECT * @@ -228,26 +449,21 @@ abstract class _FiroCache { ], ); - _debugLog("$_upCount _updateWith() called where checkResult=$checkResult"); + _debugLog( + "$_updateAnonSetCount _updateSparkAnonSetCoinsWith()" + " called where checkResult=$checkResult", + ); if (checkResult.isNotEmpty) { _debugLog( - "$_upCount _updateWith() duration = ${DateTime.now().difference(start)}", + "$_updateAnonSetCount _updateSparkAnonSetCoinsWith()" + " duration = ${DateTime.now().difference(start)}", ); // already up to date return true; } - if ((json["coins"] as List).isEmpty) { - _debugLog("$_upCount _updateWith() called where json[coins] is Empty"); - _debugLog( - "$_upCount _updateWith() duration = ${DateTime.now().difference(start)}", - ); - // no coins to actually insert - return true; - } - - final coins = (json["coins"] as List) + final coins = coinsRaw .map( (e) => [ e[0] as String, @@ -307,16 +523,20 @@ abstract class _FiroCache { } db.execute("COMMIT;"); - _debugLog("$_upCount _updateWith() COMMITTED"); _debugLog( - "$_upCount _updateWith() duration = ${DateTime.now().difference(start)}", + "$_updateAnonSetCount _updateSparkAnonSetCoinsWith() COMMITTED", + ); + _debugLog( + "$_updateAnonSetCount _updateSparkAnonSetCoinsWith() duration" + " = ${DateTime.now().difference(start)}", ); return true; } catch (e, s) { db.execute("ROLLBACK;"); - _debugLog("$_upCount _updateWith() ROLLBACK"); + _debugLog("$_updateAnonSetCount _updateSparkAnonSetCoinsWith() ROLLBACK"); _debugLog( - "$_upCount _updateWith() duration = ${DateTime.now().difference(start)}", + "$_updateAnonSetCount _updateSparkAnonSetCoinsWith()" + " duration = ${DateTime.now().difference(start)}", ); // NOTE THIS LOGGER MUST BE CALLED ON MAIN ISOLATE FOR NOW Logging.instance.log( diff --git a/lib/electrumx_rpc/cached_electrumx_client.dart b/lib/electrumx_rpc/cached_electrumx_client.dart index c2dbbb6b8..8b1ff10c8 100644 --- a/lib/electrumx_rpc/cached_electrumx_client.dart +++ b/lib/electrumx_rpc/cached_electrumx_client.dart @@ -220,53 +220,6 @@ class CachedElectrumXClient { } } - Future> getSparkUsedCoinsTags({ - required CryptoCurrency cryptoCurrency, - }) async { - try { - final box = await DB.instance.getSparkUsedCoinsTagsCacheBox( - currency: cryptoCurrency, - ); - - final _list = box.get("tags") as List?; - - final Set cachedTags = - _list == null ? {} : List.from(_list).toSet(); - - final startNumber = max( - 0, - cachedTags.length - 100, // 100 being some arbitrary buffer - ); - - final newTags = await electrumXClient.getSparkUsedCoinsTags( - startNumber: startNumber, - ); - - // ensure we are getting some overlap so we know we are not missing any - if (cachedTags.isNotEmpty && newTags.isNotEmpty) { - assert(cachedTags.intersection(newTags).isNotEmpty); - } - - // Make newTags an Iterable. - final Iterable iterableTags = newTags.map((e) => e.toString()); - - cachedTags.addAll(iterableTags); - - await box.put( - "tags", - cachedTags.toList(), - ); - - return cachedTags; - } catch (e, s) { - Logging.instance.log( - "Failed to process CachedElectrumX.getSparkUsedCoinsTags(): $e\n$s", - level: LogLevel.Error, - ); - rethrow; - } - } - /// Clear all cached transactions for the specified coin Future clearSharedTransactionCache({ required CryptoCurrency cryptoCurrency, diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index 6d473a71f..1e6018a95 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -17,8 +17,6 @@ import 'package:electrum_adapter/electrum_adapter.dart' as electrum_adapter; import 'package:electrum_adapter/electrum_adapter.dart'; import 'package:electrum_adapter/methods/specific/firo.dart'; import 'package:event_bus/event_bus.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter_libsparkmobile/flutter_libsparkmobile.dart'; import 'package:mutex/mutex.dart'; import 'package:stream_channel/stream_channel.dart'; @@ -922,7 +920,7 @@ class ElectrumXClient { Logging.instance.log( "Finished ElectrumXClient.getSparkAnonymitySet(coinGroupId" "=$coinGroupId, startBlockHash=$startBlockHash). " - "" + "coins.length: ${(response["coins"] as List?)?.length}" "Duration=${DateTime.now().difference(start)}", level: LogLevel.Info, ); @@ -934,16 +932,12 @@ class ElectrumXClient { /// Takes [startNumber], if it is 0, we get the full set, /// otherwise the used tags after that number - Future> getSparkUsedCoinsTags({ + Future> getSparkUnhashedUsedCoinsTags({ String? requestID, required int startNumber, }) async { try { - // Use electrum_adapter package's getSparkUsedCoinsTags method. - Logging.instance.log( - "attempting to fetch spark.getusedcoinstags...", - level: LogLevel.Info, - ); + final start = DateTime.now(); await _checkElectrumAdapter(); final Map response = await (getElectrumAdapter() as FiroElectrumClient) @@ -955,8 +949,16 @@ class ElectrumXClient { level: LogLevel.Info, ); final map = Map.from(response); - final set = Set.from(map["tags"] as List); - return await compute(_ffiHashTagsComputeWrapper, set); + final tags = List.from(map["tags"] as List); + + Logging.instance.log( + "Finished ElectrumXClient.getSparkUnhashedUsedCoinsTags(startNumber" + "=$startNumber). " + "Duration=${DateTime.now().difference(start)}", + level: LogLevel.Info, + ); + + return tags; } catch (e) { Logging.instance.log(e, level: LogLevel.Error); rethrow; @@ -1093,7 +1095,3 @@ class ElectrumXClient { } } } - -Set _ffiHashTagsComputeWrapper(Set base64Tags) { - return LibSpark.hashTags(base64Tags: base64Tags); -} diff --git a/lib/utilities/extensions/extensions.dart b/lib/utilities/extensions/extensions.dart index a798c002a..678e12844 100644 --- a/lib/utilities/extensions/extensions.dart +++ b/lib/utilities/extensions/extensions.dart @@ -13,5 +13,6 @@ export 'impl/box_shadow.dart'; export 'impl/cl_transaction.dart'; export 'impl/contract_abi.dart'; export 'impl/gradient.dart'; +export 'impl/list.dart'; export 'impl/string.dart'; export 'impl/uint8_list.dart'; diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index 918ec563b..03f175b99 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -588,7 +588,9 @@ class FiroWallet extends Bip39HDWallet @override Future recover({required bool isRescan}) async { + // reset last checked values groupIdTimestampUTCMap = {}; + final start = DateTime.now(); final root = await getRootHDNode(); @@ -633,8 +635,8 @@ class FiroWallet extends Bip39HDWallet ); } final sparkUsedCoinTagsFuture = - electrumXCachedClient.getSparkUsedCoinsTags( - cryptoCurrency: info.coin, + FiroCacheCoordinator.runFetchAndUpdateSparkUsedCoinTags( + electrumXClient, ); // receiving addresses @@ -754,9 +756,6 @@ class FiroWallet extends Bip39HDWallet final usedSerialsSet = (futureResults[0] as List).toSet(); final setDataMap = futureResults[1] as Map; - // spark - final sparkSpentCoinTags = futureResults[2] as Set; - if (Util.isDesktop) { await Future.wait([ recoverLelantusWallet( @@ -765,7 +764,6 @@ class FiroWallet extends Bip39HDWallet setDataMap: setDataMap, ), recoverSparkWallet( - spentCoinTags: sparkSpentCoinTags, latestSparkCoinId: latestSparkCoinId, ), ]); @@ -776,7 +774,6 @@ class FiroWallet extends Bip39HDWallet setDataMap: setDataMap, ); await recoverSparkWallet( - spentCoinTags: sparkSpentCoinTags, latestSparkCoinId: latestSparkCoinId, ); } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index 8b94e941d..5b2c2c601 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -631,12 +631,41 @@ mixin SparkInterface Future refreshSparkData() async { try { - final spentCoinTags = await electrumXCachedClient.getSparkUsedCoinsTags( - cryptoCurrency: info.coin, + // start by checking if any previous sets are missing from db and add the + // missing groupIds to the list if sets to check and update + final latestGroupId = await electrumXClient.getSparkLatestCoinId(); + final List groupIds = []; + if (latestGroupId > 1) { + for (int id = 1; id < latestGroupId; id++) { + final setExists = + await FiroCacheCoordinator.checkSetInfoForGroupIdExists( + id, + ); + if (!setExists) { + groupIds.add(id); + } + } + } + groupIds.add(latestGroupId); + + // start fetch and update process for each set groupId as required + final possibleFutures = groupIds.map( + (e) => + FiroCacheCoordinator.runFetchAndUpdateSparkAnonSetCacheForGroupId( + e, + electrumXClient, + ), ); - await _checkAndUpdateCoins(spentCoinTags, true); + // wait for each fetch and update to complete + await Future.wait([ + ...possibleFutures, + FiroCacheCoordinator.runFetchAndUpdateSparkUsedCoinTags( + electrumXClient, + ), + ]); + await _checkAndUpdateCoins(); // refresh spark balance await refreshSparkBalance(); } catch (e, s) { @@ -697,7 +726,6 @@ mixin SparkInterface /// Should only be called within the standard wallet [recover] function due to /// mutex locking. Otherwise behaviour MAY be undefined. Future recoverSparkWallet({ - required Set spentCoinTags, required int latestSparkCoinId, }) async { // generate spark addresses if non existing @@ -707,7 +735,7 @@ mixin SparkInterface } try { - await _checkAndUpdateCoins(spentCoinTags, false); + await _checkAndUpdateCoins(); // refresh spark balance await refreshSparkBalance(); @@ -720,10 +748,7 @@ mixin SparkInterface } } - Future _checkAndUpdateCoins( - Set spentCoinTags, - bool checkUseds, - ) async { + Future _checkAndUpdateCoins() async { final sparkAddresses = await mainDB.isar.addresses .where() .walletIdEqualTo(walletId) @@ -737,15 +762,7 @@ mixin SparkInterface ) .toSet(); - List? currentCoins; - if (checkUseds) { - currentCoins = await mainDB.isar.sparkCoins - .where() - .walletIdEqualToAnyLTagHash(walletId) - .filter() - .isUsedEqualTo(false) - .findAll(); - } + final Map>> rawCoinsBySetId = {}; final latestSparkCoinId = await electrumXClient.getSparkLatestCoinId(); for (int i = 1; i <= latestSparkCoinId; i++) { @@ -769,34 +786,62 @@ mixin SparkInterface .toList(); if (coinsRaw.isNotEmpty) { - final myCoins = await compute( - _identifyCoins, - ( - anonymitySetCoins: coinsRaw, - groupId: i, - spentCoinTags: spentCoinTags, - privateKeyHexSet: privateKeyHexSet, - walletId: walletId, - isTestNet: cryptoCurrency.network == CryptoCurrencyNetwork.test, - ), - ); - - if (checkUseds && currentCoins != null) { - for (final coin in currentCoins) { - if (spentCoinTags.contains(coin.lTagHash)) { - myCoins.add(coin.copyWith(isUsed: true)); - } - } - } - - // update wallet spark coins in isar - await _addOrUpdateSparkCoins(myCoins); + rawCoinsBySetId[i] = coinsRaw; } + groupIdTimestampUTCMap[i] = max( lastCheckedTimeStampUTC, info?.timestampUTC ?? lastCheckedTimeStampUTC, ); } + + final List newlyIdCoins = []; + for (final groupId in rawCoinsBySetId.keys) { + final myCoins = await compute( + _identifyCoins, + ( + anonymitySetCoins: rawCoinsBySetId[groupId]!, + groupId: groupId, + privateKeyHexSet: privateKeyHexSet, + walletId: walletId, + isTestNet: cryptoCurrency.network == CryptoCurrencyNetwork.test, + ), + ); + newlyIdCoins.addAll(myCoins); + } + + await _checkAndMarkCoinsUsedInDB(coinsNotInDbYet: newlyIdCoins); + } + + Future _checkAndMarkCoinsUsedInDB({ + List coinsNotInDbYet = const [], + }) async { + final List coins = await mainDB.isar.sparkCoins + .where() + .walletIdEqualToAnyLTagHash(walletId) + .filter() + .isUsedEqualTo(false) + .findAll(); + + final List coinsToWrite = []; + + final spentCoinTags = await FiroCacheCoordinator.getUsedCoinTags(0); + + for (final coin in coins) { + if (spentCoinTags.contains(coin.lTagHash)) { + coinsToWrite.add(coin.copyWith(isUsed: true)); + } + } + for (final coin in coinsNotInDbYet) { + if (spentCoinTags.contains(coin.lTagHash)) { + coinsToWrite.add(coin.copyWith(isUsed: true)); + } else { + coinsToWrite.add(coin); + } + } + + // update wallet spark coins in isar + await _addOrUpdateSparkCoins(coinsToWrite); } // modelled on CSparkWallet::CreateSparkMintTransactions https://github.com/firoorg/firo/blob/39c41e5e7ec634ced3700fe3f4f5509dc2e480d0/src/spark/sparkwallet.cpp#L752 @@ -1713,7 +1758,6 @@ Future> _identifyCoins( ({ List anonymitySetCoins, int groupId, - Set spentCoinTags, Set privateKeyHexSet, String walletId, bool isTestNet, @@ -1756,7 +1800,7 @@ Future> _identifyCoins( SparkCoin( walletId: args.walletId, type: coinType, - isUsed: args.spentCoinTags.contains(coin.lTagHash!), + isUsed: false, groupId: args.groupId, nonce: coin.nonceHex?.toUint8ListFromHex, address: coin.address!, From e5d8dff6cd9a4d6116fdd9a2336b6f8725582081 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 30 May 2024 15:17:50 -0600 Subject: [PATCH 161/318] add debug log level value to enum --- lib/db/sqlite/firo_cache.dart | 2 +- lib/models/isar/models/log.g.dart | 2 + lib/utilities/enums/log_level_enum.dart | 3 +- test/cached_electrumx_test.mocks.dart | 8 ++-- ...allet_settings_view_screen_test.mocks.dart | 32 --------------- .../bitcoin/bitcoin_wallet_test.mocks.dart | 40 ++----------------- .../bitcoincash_wallet_test.mocks.dart | 40 ++----------------- .../dogecoin/dogecoin_wallet_test.mocks.dart | 40 ++----------------- .../namecoin/namecoin_wallet_test.mocks.dart | 40 ++----------------- .../particl/particl_wallet_test.mocks.dart | 40 ++----------------- 10 files changed, 29 insertions(+), 218 deletions(-) diff --git a/lib/db/sqlite/firo_cache.dart b/lib/db/sqlite/firo_cache.dart index a6c2882a0..63595316a 100644 --- a/lib/db/sqlite/firo_cache.dart +++ b/lib/db/sqlite/firo_cache.dart @@ -15,7 +15,7 @@ void _debugLog(Object? object) { if (kDebugMode) { Logging.instance.log( object, - level: LogLevel.Fatal, + level: LogLevel.Debug, ); } } diff --git a/lib/models/isar/models/log.g.dart b/lib/models/isar/models/log.g.dart index 332e91d3c..8a4cf22b1 100644 --- a/lib/models/isar/models/log.g.dart +++ b/lib/models/isar/models/log.g.dart @@ -124,12 +124,14 @@ const _LoglogLevelEnumValueMap = { r'Warning': r'Warning', r'Error': r'Error', r'Fatal': r'Fatal', + r'Debug': r'Debug', }; const _LoglogLevelValueEnumMap = { r'Info': LogLevel.Info, r'Warning': LogLevel.Warning, r'Error': LogLevel.Error, r'Fatal': LogLevel.Fatal, + r'Debug': LogLevel.Debug, }; Id _logGetId(Log object) { diff --git a/lib/utilities/enums/log_level_enum.dart b/lib/utilities/enums/log_level_enum.dart index 6e5e14a8f..5fb7f9e52 100644 --- a/lib/utilities/enums/log_level_enum.dart +++ b/lib/utilities/enums/log_level_enum.dart @@ -14,5 +14,6 @@ enum LogLevel { Info, Warning, Error, - Fatal; + Fatal, + Debug; } diff --git a/test/cached_electrumx_test.mocks.dart b/test/cached_electrumx_test.mocks.dart index 5ae1523da..e8bdc2e53 100644 --- a/test/cached_electrumx_test.mocks.dart +++ b/test/cached_electrumx_test.mocks.dart @@ -428,21 +428,21 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { _i7.Future>.value({}), ) as _i7.Future>); @override - _i7.Future> getSparkUsedCoinsTags({ + _i7.Future> getSparkUnhashedUsedCoinsTags({ String? requestID, required int? startNumber, }) => (super.noSuchMethod( Invocation.method( - #getSparkUsedCoinsTags, + #getSparkUnhashedUsedCoinsTags, [], { #requestID: requestID, #startNumber: startNumber, }, ), - returnValue: _i7.Future>.value({}), - ) as _i7.Future>); + returnValue: _i7.Future>.value([]), + ) as _i7.Future>); @override _i7.Future>> getSparkMintMetaData({ String? requestID, diff --git a/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart b/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart index 446894293..e4c45b863 100644 --- a/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart +++ b/test/screen_tests/settings_view/settings_subviews/wallet_settings_view_screen_test.mocks.dart @@ -78,27 +78,6 @@ class MockCachedElectrumXClient extends _i1.Mock _i4.Future>.value({}), ) as _i4.Future>); @override - _i4.Future> getSparkAnonymitySet({ - required String? groupId, - String? blockhash = r'', - required _i5.CryptoCurrency? cryptoCurrency, - required bool? useOnlyCacheIfNotEmpty, - }) => - (super.noSuchMethod( - Invocation.method( - #getSparkAnonymitySet, - [], - { - #groupId: groupId, - #blockhash: blockhash, - #cryptoCurrency: cryptoCurrency, - #useOnlyCacheIfNotEmpty: useOnlyCacheIfNotEmpty, - }, - ), - returnValue: - _i4.Future>.value({}), - ) as _i4.Future>); - @override String base64ToHex(String? source) => (super.noSuchMethod( Invocation.method( #base64ToHex, @@ -162,17 +141,6 @@ class MockCachedElectrumXClient extends _i1.Mock returnValue: _i4.Future>.value([]), ) as _i4.Future>); @override - _i4.Future> getSparkUsedCoinsTags( - {required _i5.CryptoCurrency? cryptoCurrency}) => - (super.noSuchMethod( - Invocation.method( - #getSparkUsedCoinsTags, - [], - {#cryptoCurrency: cryptoCurrency}, - ), - returnValue: _i4.Future>.value({}), - ) as _i4.Future>); - @override _i4.Future clearSharedTransactionCache( {required _i5.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( diff --git a/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart b/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart index 776e6874b..af94be20b 100644 --- a/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart +++ b/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart @@ -425,21 +425,21 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkUsedCoinsTags({ + _i6.Future> getSparkUnhashedUsedCoinsTags({ String? requestID, required int? startNumber, }) => (super.noSuchMethod( Invocation.method( - #getSparkUsedCoinsTags, + #getSparkUnhashedUsedCoinsTags, [], { #requestID: requestID, #startNumber: startNumber, }, ), - returnValue: _i6.Future>.value({}), - ) as _i6.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override _i6.Future>> getSparkMintMetaData({ String? requestID, @@ -559,27 +559,6 @@ class MockCachedElectrumXClient extends _i1.Mock _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkAnonymitySet({ - required String? groupId, - String? blockhash = r'', - required _i2.CryptoCurrency? cryptoCurrency, - required bool? useOnlyCacheIfNotEmpty, - }) => - (super.noSuchMethod( - Invocation.method( - #getSparkAnonymitySet, - [], - { - #groupId: groupId, - #blockhash: blockhash, - #cryptoCurrency: cryptoCurrency, - #useOnlyCacheIfNotEmpty: useOnlyCacheIfNotEmpty, - }, - ), - returnValue: - _i6.Future>.value({}), - ) as _i6.Future>); - @override String base64ToHex(String? source) => (super.noSuchMethod( Invocation.method( #base64ToHex, @@ -643,17 +622,6 @@ class MockCachedElectrumXClient extends _i1.Mock returnValue: _i6.Future>.value([]), ) as _i6.Future>); @override - _i6.Future> getSparkUsedCoinsTags( - {required _i2.CryptoCurrency? cryptoCurrency}) => - (super.noSuchMethod( - Invocation.method( - #getSparkUsedCoinsTags, - [], - {#cryptoCurrency: cryptoCurrency}, - ), - returnValue: _i6.Future>.value({}), - ) as _i6.Future>); - @override _i6.Future clearSharedTransactionCache( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( diff --git a/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart b/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart index a2238f324..85565e3cf 100644 --- a/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart +++ b/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart @@ -425,21 +425,21 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkUsedCoinsTags({ + _i6.Future> getSparkUnhashedUsedCoinsTags({ String? requestID, required int? startNumber, }) => (super.noSuchMethod( Invocation.method( - #getSparkUsedCoinsTags, + #getSparkUnhashedUsedCoinsTags, [], { #requestID: requestID, #startNumber: startNumber, }, ), - returnValue: _i6.Future>.value({}), - ) as _i6.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override _i6.Future>> getSparkMintMetaData({ String? requestID, @@ -559,27 +559,6 @@ class MockCachedElectrumXClient extends _i1.Mock _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkAnonymitySet({ - required String? groupId, - String? blockhash = r'', - required _i2.CryptoCurrency? cryptoCurrency, - required bool? useOnlyCacheIfNotEmpty, - }) => - (super.noSuchMethod( - Invocation.method( - #getSparkAnonymitySet, - [], - { - #groupId: groupId, - #blockhash: blockhash, - #cryptoCurrency: cryptoCurrency, - #useOnlyCacheIfNotEmpty: useOnlyCacheIfNotEmpty, - }, - ), - returnValue: - _i6.Future>.value({}), - ) as _i6.Future>); - @override String base64ToHex(String? source) => (super.noSuchMethod( Invocation.method( #base64ToHex, @@ -643,17 +622,6 @@ class MockCachedElectrumXClient extends _i1.Mock returnValue: _i6.Future>.value([]), ) as _i6.Future>); @override - _i6.Future> getSparkUsedCoinsTags( - {required _i2.CryptoCurrency? cryptoCurrency}) => - (super.noSuchMethod( - Invocation.method( - #getSparkUsedCoinsTags, - [], - {#cryptoCurrency: cryptoCurrency}, - ), - returnValue: _i6.Future>.value({}), - ) as _i6.Future>); - @override _i6.Future clearSharedTransactionCache( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( diff --git a/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart b/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart index f80e8a840..03e117e4b 100644 --- a/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart +++ b/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart @@ -425,21 +425,21 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkUsedCoinsTags({ + _i6.Future> getSparkUnhashedUsedCoinsTags({ String? requestID, required int? startNumber, }) => (super.noSuchMethod( Invocation.method( - #getSparkUsedCoinsTags, + #getSparkUnhashedUsedCoinsTags, [], { #requestID: requestID, #startNumber: startNumber, }, ), - returnValue: _i6.Future>.value({}), - ) as _i6.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override _i6.Future>> getSparkMintMetaData({ String? requestID, @@ -559,27 +559,6 @@ class MockCachedElectrumXClient extends _i1.Mock _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkAnonymitySet({ - required String? groupId, - String? blockhash = r'', - required _i2.CryptoCurrency? cryptoCurrency, - required bool? useOnlyCacheIfNotEmpty, - }) => - (super.noSuchMethod( - Invocation.method( - #getSparkAnonymitySet, - [], - { - #groupId: groupId, - #blockhash: blockhash, - #cryptoCurrency: cryptoCurrency, - #useOnlyCacheIfNotEmpty: useOnlyCacheIfNotEmpty, - }, - ), - returnValue: - _i6.Future>.value({}), - ) as _i6.Future>); - @override String base64ToHex(String? source) => (super.noSuchMethod( Invocation.method( #base64ToHex, @@ -643,17 +622,6 @@ class MockCachedElectrumXClient extends _i1.Mock returnValue: _i6.Future>.value([]), ) as _i6.Future>); @override - _i6.Future> getSparkUsedCoinsTags( - {required _i2.CryptoCurrency? cryptoCurrency}) => - (super.noSuchMethod( - Invocation.method( - #getSparkUsedCoinsTags, - [], - {#cryptoCurrency: cryptoCurrency}, - ), - returnValue: _i6.Future>.value({}), - ) as _i6.Future>); - @override _i6.Future clearSharedTransactionCache( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( diff --git a/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart b/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart index 9f13d167b..4e57a7657 100644 --- a/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart +++ b/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart @@ -425,21 +425,21 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkUsedCoinsTags({ + _i6.Future> getSparkUnhashedUsedCoinsTags({ String? requestID, required int? startNumber, }) => (super.noSuchMethod( Invocation.method( - #getSparkUsedCoinsTags, + #getSparkUnhashedUsedCoinsTags, [], { #requestID: requestID, #startNumber: startNumber, }, ), - returnValue: _i6.Future>.value({}), - ) as _i6.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override _i6.Future>> getSparkMintMetaData({ String? requestID, @@ -559,27 +559,6 @@ class MockCachedElectrumXClient extends _i1.Mock _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkAnonymitySet({ - required String? groupId, - String? blockhash = r'', - required _i2.CryptoCurrency? cryptoCurrency, - required bool? useOnlyCacheIfNotEmpty, - }) => - (super.noSuchMethod( - Invocation.method( - #getSparkAnonymitySet, - [], - { - #groupId: groupId, - #blockhash: blockhash, - #cryptoCurrency: cryptoCurrency, - #useOnlyCacheIfNotEmpty: useOnlyCacheIfNotEmpty, - }, - ), - returnValue: - _i6.Future>.value({}), - ) as _i6.Future>); - @override String base64ToHex(String? source) => (super.noSuchMethod( Invocation.method( #base64ToHex, @@ -643,17 +622,6 @@ class MockCachedElectrumXClient extends _i1.Mock returnValue: _i6.Future>.value([]), ) as _i6.Future>); @override - _i6.Future> getSparkUsedCoinsTags( - {required _i2.CryptoCurrency? cryptoCurrency}) => - (super.noSuchMethod( - Invocation.method( - #getSparkUsedCoinsTags, - [], - {#cryptoCurrency: cryptoCurrency}, - ), - returnValue: _i6.Future>.value({}), - ) as _i6.Future>); - @override _i6.Future clearSharedTransactionCache( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( diff --git a/test/services/coins/particl/particl_wallet_test.mocks.dart b/test/services/coins/particl/particl_wallet_test.mocks.dart index 5c6f92792..9cb9db169 100644 --- a/test/services/coins/particl/particl_wallet_test.mocks.dart +++ b/test/services/coins/particl/particl_wallet_test.mocks.dart @@ -425,21 +425,21 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkUsedCoinsTags({ + _i6.Future> getSparkUnhashedUsedCoinsTags({ String? requestID, required int? startNumber, }) => (super.noSuchMethod( Invocation.method( - #getSparkUsedCoinsTags, + #getSparkUnhashedUsedCoinsTags, [], { #requestID: requestID, #startNumber: startNumber, }, ), - returnValue: _i6.Future>.value({}), - ) as _i6.Future>); + returnValue: _i6.Future>.value([]), + ) as _i6.Future>); @override _i6.Future>> getSparkMintMetaData({ String? requestID, @@ -559,27 +559,6 @@ class MockCachedElectrumXClient extends _i1.Mock _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkAnonymitySet({ - required String? groupId, - String? blockhash = r'', - required _i2.CryptoCurrency? cryptoCurrency, - required bool? useOnlyCacheIfNotEmpty, - }) => - (super.noSuchMethod( - Invocation.method( - #getSparkAnonymitySet, - [], - { - #groupId: groupId, - #blockhash: blockhash, - #cryptoCurrency: cryptoCurrency, - #useOnlyCacheIfNotEmpty: useOnlyCacheIfNotEmpty, - }, - ), - returnValue: - _i6.Future>.value({}), - ) as _i6.Future>); - @override String base64ToHex(String? source) => (super.noSuchMethod( Invocation.method( #base64ToHex, @@ -643,17 +622,6 @@ class MockCachedElectrumXClient extends _i1.Mock returnValue: _i6.Future>.value([]), ) as _i6.Future>); @override - _i6.Future> getSparkUsedCoinsTags( - {required _i2.CryptoCurrency? cryptoCurrency}) => - (super.noSuchMethod( - Invocation.method( - #getSparkUsedCoinsTags, - [], - {#cryptoCurrency: cryptoCurrency}, - ), - returnValue: _i6.Future>.value({}), - ) as _i6.Future>); - @override _i6.Future clearSharedTransactionCache( {required _i2.CryptoCurrency? cryptoCurrency}) => (super.noSuchMethod( From 0f98c0be2c55a1831683c0b02eb1b161ef48bde0 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Thu, 30 May 2024 17:50:09 -0500 Subject: [PATCH 162/318] Use WalletInfoKeys (plus standardize Lelantus') and make UI var private --- .../lelantus_settings_view.dart | 3 ++- .../more_features/more_features_dialog.dart | 15 ++++++++------- lib/wallets/isar/models/wallet_info.dart | 2 +- lib/wallets/wallet/impl/firo_wallet.dart | 3 ++- lib/wallets/wallet/wallet.dart | 3 ++- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart index 58632c1cd..ad53ccacf 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart @@ -64,7 +64,8 @@ class _LelantusSettingsViewState extends ConsumerState { if (wallet?.info.otherDataJsonString != null) { final otherDataJson = json.decode(wallet!.info.otherDataJsonString!); enableLelantusScanning = - otherDataJson["enableLelantusScanning"] as bool? ?? false; + otherDataJson[WalletInfoKeys.enableLelantusScanning] as bool? ?? + false; } _isInitialized = true; // Ensure this logic runs only once diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart index 03f4db1c7..f1a9815c4 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart @@ -59,7 +59,7 @@ class MoreFeaturesDialog extends ConsumerStatefulWidget { } class _MoreFeaturesDialogState extends ConsumerState { - bool? enableLelantusScanning = false; + bool _enableLelantusScanning = false; @override Widget build(BuildContext context) { @@ -72,8 +72,9 @@ class _MoreFeaturesDialogState extends ConsumerState { // Parse otherDataJsonString to get the enableLelantusScanning value. if (wallet.info.otherDataJsonString != null) { final otherDataJson = json.decode(wallet.info.otherDataJsonString!); - enableLelantusScanning = - otherDataJson["enableLelantusScanning"] as bool? ?? false; + _enableLelantusScanning = + otherDataJson[WalletInfoKeys.enableLelantusScanning] as bool? ?? + false; } final coinControlPrefEnabled = ref.watch( @@ -169,16 +170,16 @@ class _MoreFeaturesDialogState extends ConsumerState { height: 20, width: 40, child: DraggableSwitchButton( - isOn: enableLelantusScanning ?? false, + isOn: _enableLelantusScanning, onValueChanged: (newValue) { // Toggle enableLelantusScanning in wallet info. wallet.info.updateOtherData(newEntries: { WalletInfoKeys.enableLelantusScanning: - !(enableLelantusScanning ?? false) + !(_enableLelantusScanning) }, isar: ref.read(mainDBProvider).isar).then((value) { // Should setState be used here? - enableLelantusScanning = - !(enableLelantusScanning ?? false); + _enableLelantusScanning = + !(_enableLelantusScanning); }); }, ), diff --git a/lib/wallets/isar/models/wallet_info.dart b/lib/wallets/isar/models/wallet_info.dart index 351229c29..a2b7ae126 100644 --- a/lib/wallets/isar/models/wallet_info.dart +++ b/lib/wallets/isar/models/wallet_info.dart @@ -507,5 +507,5 @@ abstract class WalletInfoKeys { static const String tezosDerivationPath = "tezosDerivationPathKey"; static const String lelantusCoinIsarRescanRequired = "lelantusCoinIsarRescanRequired"; - static const String enableLelantusScanning = "enableLelantusScanning"; + static const String enableLelantusScanning = "enableLelantusScanningKey"; } diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index 510d08cfb..3da17a3ff 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -615,7 +615,8 @@ class FiroWallet extends Bip39HDWallet if (info.otherDataJsonString != null) { final otherDataJson = json.decode(info.otherDataJsonString!); enableLelantusScanning = - otherDataJson["enableLelantusScanning"] as bool? ?? false; + otherDataJson[WalletInfoKeys.enableLelantusScanning] as bool? ?? + false; } // lelantus diff --git a/lib/wallets/wallet/wallet.dart b/lib/wallets/wallet/wallet.dart index 83698a819..56469071c 100644 --- a/lib/wallets/wallet/wallet.dart +++ b/lib/wallets/wallet/wallet.dart @@ -564,7 +564,8 @@ abstract class Wallet { if (this.info.otherDataJsonString != null) { final otherDataJson = json.decode(this.info.otherDataJsonString!); enableLelantusScanning = - otherDataJson["enableLelantusScanning"] as bool? ?? false; + otherDataJson[WalletInfoKeys.enableLelantusScanning] as bool? ?? + false; } if (enableLelantusScanning) { await (this as LelantusInterface).refreshLelantusData(); From d37d86759d73afbdf1a8455ba7ac71d7e390663c Mon Sep 17 00:00:00 2001 From: sneurlax Date: Thu, 30 May 2024 18:17:26 -0500 Subject: [PATCH 163/318] Lock toggling lelantus scanning behind a mutex --- .../lelantus_settings_view.dart | 30 ++++++++++++------- .../more_features/more_features_dialog.dart | 24 ++++++++++----- 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart index ad53ccacf..1f8c342b0 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart @@ -47,7 +47,8 @@ class _LelantusSettingsViewState extends ConsumerState { bool _isInitialized = false; Wallet? wallet; - bool? enableLelantusScanning = false; + bool _enableLelantusScanning = false; + bool _isUpdatingLelantusScanning = false; @override void didChangeDependencies() { @@ -63,7 +64,7 @@ class _LelantusSettingsViewState extends ConsumerState { // Parse otherDataJsonString to get the enableLelantusScanning value. if (wallet?.info.otherDataJsonString != null) { final otherDataJson = json.decode(wallet!.info.otherDataJsonString!); - enableLelantusScanning = + _enableLelantusScanning = otherDataJson[WalletInfoKeys.enableLelantusScanning] as bool? ?? false; } @@ -106,16 +107,23 @@ class _LelantusSettingsViewState extends ConsumerState { height: 20, width: 40, child: DraggableSwitchButton( - isOn: enableLelantusScanning ?? false, - onValueChanged: (newValue) { + isOn: _enableLelantusScanning, + onValueChanged: (newValue) async { + if (_isUpdatingLelantusScanning) return; + _isUpdatingLelantusScanning = true; // Lock mutex. + // Toggle enableLelantusScanning in wallet info. - wallet?.info.updateOtherData(newEntries: { - WalletInfoKeys.enableLelantusScanning: - !(enableLelantusScanning ?? false) - }, isar: ref.read(mainDBProvider).isar).then((value) { - // Should setState be used here? - enableLelantusScanning = - !(enableLelantusScanning ?? false); + await wallet?.info.updateOtherData( + newEntries: { + WalletInfoKeys.enableLelantusScanning: + !_enableLelantusScanning, + }, + isar: ref.read(mainDBProvider).isar, + ); + + setState(() { + _enableLelantusScanning = !_enableLelantusScanning; + _isUpdatingLelantusScanning = false; // Free mutex. }); }, ), diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart index f1a9815c4..1ab2a6781 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart @@ -60,6 +60,7 @@ class MoreFeaturesDialog extends ConsumerStatefulWidget { class _MoreFeaturesDialogState extends ConsumerState { bool _enableLelantusScanning = false; + bool _isUpdatingLelantusScanning = false; // Mutex. @override Widget build(BuildContext context) { @@ -171,15 +172,22 @@ class _MoreFeaturesDialogState extends ConsumerState { width: 40, child: DraggableSwitchButton( isOn: _enableLelantusScanning, - onValueChanged: (newValue) { + onValueChanged: (newValue) async { + if (_isUpdatingLelantusScanning) return; + _isUpdatingLelantusScanning = true; // Lock mutex. + // Toggle enableLelantusScanning in wallet info. - wallet.info.updateOtherData(newEntries: { - WalletInfoKeys.enableLelantusScanning: - !(_enableLelantusScanning) - }, isar: ref.read(mainDBProvider).isar).then((value) { - // Should setState be used here? - _enableLelantusScanning = - !(_enableLelantusScanning); + await wallet.info.updateOtherData( + newEntries: { + WalletInfoKeys.enableLelantusScanning: + !_enableLelantusScanning, + }, + isar: ref.read(mainDBProvider).isar, + ); + + setState(() { + _enableLelantusScanning = !_enableLelantusScanning; + _isUpdatingLelantusScanning = false; // Free mutex. }); }, ), From 0454c88c4a9b3682c630f8e30244a4b8d0e0d5ac Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 30 May 2024 17:17:35 -0600 Subject: [PATCH 164/318] modify cache db schema --- lib/db/sqlite/firo_cache.dart | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/lib/db/sqlite/firo_cache.dart b/lib/db/sqlite/firo_cache.dart index 63595316a..47cd680b3 100644 --- a/lib/db/sqlite/firo_cache.dart +++ b/lib/db/sqlite/firo_cache.dart @@ -177,6 +177,7 @@ abstract class _FiroCache { blockHash TEXT NOT NULL, setHash TEXT NOT NULL, groupId INTEGER NOT NULL, + timestampUTC INTEGER NOT NULL, UNIQUE (blockHash, setHash, groupId) ); @@ -190,7 +191,6 @@ abstract class _FiroCache { CREATE TABLE SparkSetCoins ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, - timestampUTC INTEGER NOT NULL, setId INTEGER NOT NULL, coinId INTEGER NOT NULL, FOREIGN KEY (setId) REFERENCES SparkSet(id), @@ -215,15 +215,15 @@ abstract class _FiroCache { int? newerThanTimeStamp, }) async { String query = """ - SELECT sc.id, sc.serialized, sc.txHash, sc.context - FROM SparkSetCoins AS ssc - JOIN SparkSet AS ss ON ssc.setId = ss.id + SELECT sc.serialized, sc.txHash, sc.context + FROM SparkSet AS ss + JOIN SparkSetCoins AS ssc ON ss.id = ssc.setId JOIN SparkCoin AS sc ON ssc.coinId = sc.id WHERE ss.groupId = $groupId """; if (newerThanTimeStamp != null) { - query += " AND ssc.timestampUTC" + query += " AND ss.timestampUTC" " > $newerThanTimeStamp"; } @@ -234,11 +234,10 @@ abstract class _FiroCache { int groupId, ) async { final query = """ - SELECT ss.blockHash, ss.setHash, ssc.timestampUTC + SELECT ss.blockHash, ss.setHash, ss.timestampUTC FROM SparkSet ss - JOIN SparkSetCoins ssc ON ss.id = ssc.setId WHERE ss.groupId = $groupId - ORDER BY ssc.timestampUTC DESC + ORDER BY ss.timestampUTC DESC LIMIT 1; """; @@ -479,16 +478,17 @@ abstract class _FiroCache { try { db.execute( """ - INSERT INTO SparkSet (blockHash, setHash, groupId) - VALUES (?, ?, ?); + INSERT INTO SparkSet (blockHash, setHash, groupId, timestampUTC) + VALUES (?, ?, ?, ?); """, - [blockHash, setHash, groupId], + [blockHash, setHash, groupId, timestamp], ); final setId = db.lastInsertRowId; for (final coin in coins) { int coinId; try { + // try to insert and get row id db.execute( """ INSERT INTO SparkCoin (serialized, txHash, context) @@ -498,6 +498,8 @@ abstract class _FiroCache { ); coinId = db.lastInsertRowId; } on SqliteException catch (e) { + // if there already is a matching coin in the db + // just grab its row id if (e.extendedResultCode == 2067) { final result = db.select( """ @@ -513,12 +515,13 @@ abstract class _FiroCache { } } + // finally add the row id to the newly added set db.execute( """ - INSERT INTO SparkSetCoins (timestampUTC, setId, coinId) - VALUES (?, ?, ?); + INSERT INTO SparkSetCoins (setId, coinId) + VALUES (?, ?); """, - [timestamp, setId, coinId], + [setId, coinId], ); } From 0acc2f2a081cd1f445823d72150e5244f43d2f41 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 30 May 2024 19:03:15 -0600 Subject: [PATCH 165/318] use extension method --- .../wallet/wallet_mixin_interfaces/spark_interface.dart | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index 5b2c2c601..426217fac 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -1687,12 +1687,6 @@ mixin SparkInterface ); } -String base64ToReverseHex(String source) => - base64Decode(LineSplitter.split(source).join()) - .reversed - .map((e) => e.toRadixString(16).padLeft(2, '0')) - .join(); - /// Top level function which should be called wrapped in [compute] Future< ({ @@ -1774,7 +1768,7 @@ Future> _identifyCoins( } final serializedCoinB64 = data[0]; - final txHash = base64ToReverseHex(data[1]); + final txHash = data[1].toHexReversedFromBase64; final contextB64 = data[2]; final coin = LibSpark.identifyAndRecoverCoin( From 1e425e7848ae98850f7d0d52a980520d59ef4835 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Thu, 30 May 2024 21:58:03 -0500 Subject: [PATCH 166/318] use CheckboxTextButton *eye twitches* --- .../restore_options_view.dart | 30 +++++-------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart index 8e6459649..1ba3cef79 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart @@ -25,6 +25,7 @@ import '../../../../utilities/util.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../widgets/conditional_parent.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/checkbox_text_button.dart'; import '../../../../widgets/date_picker/date_picker.dart'; import '../../../../widgets/desktop/desktop_app_bar.dart'; import '../../../../widgets/desktop/desktop_scaffold.dart'; @@ -441,28 +442,13 @@ class _RestoreOptionsViewState extends ConsumerState { color: Colors.transparent, child: Column( children: [ - Row( - children: [ - Checkbox( - value: enableLelantusScanning, - onChanged: (bool? newValue) { - setState(() { - enableLelantusScanning = newValue ?? true; - }); - }, - ), - Text( - 'Scan for Lelantus transactions', - style: isDesktop - ? STextStyles.desktopTextExtraSmall(context) - .copyWith( - color: Theme.of(context) - .extension()! - .textSubtitle1, - ) - : STextStyles.itemSubtitle(context), - ), - ], + CheckboxTextButton( + label: "Scan for Lelantus transactions", + onChanged: (newValue) { + setState(() { + enableLelantusScanning = newValue ?? true; + }); + }, ), const SizedBox( height: 8, From e06023d0fc851d4039fd7f806f6b0df96c0ce284 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 30 May 2024 21:38:42 -0600 Subject: [PATCH 167/318] extra info when run in debug mode --- .../wallet_view/desktop_wallet_view.dart | 74 +++++++++++++++++-- lib/utilities/wallet_tools.dart | 55 ++++++++++++++ 2 files changed, 121 insertions(+), 8 deletions(-) create mode 100644 lib/utilities/wallet_tools.dart diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart index 83dc57784..a8160899f 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart @@ -16,13 +16,17 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:isar/isar.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/isar/models/isar_models.dart'; import '../../../pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart'; import '../../../pages/token_view/my_tokens_view.dart'; import '../../../pages/wallet_view/sub_widgets/transactions_list.dart'; import '../../../pages/wallet_view/transaction_views/all_transactions_view.dart'; import '../../../pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; import '../../../pages/wallet_view/transaction_views/tx_v2/transaction_v2_list.dart'; +import '../../../providers/db/main_db_provider.dart'; import '../../../providers/global/active_wallet_provider.dart'; import '../../../providers/global/auto_swb_service_provider.dart'; import '../../../providers/providers.dart'; @@ -35,6 +39,7 @@ import '../../../utilities/assets.dart'; import '../../../utilities/enums/backup_frequency_type.dart'; import '../../../utilities/enums/sync_type_enum.dart'; import '../../../utilities/text_styles.dart'; +import '../../../utilities/wallet_tools.dart'; import '../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../wallets/wallet/impl/banano_wallet.dart'; import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; @@ -207,17 +212,70 @@ class _DesktopWalletViewState extends ConsumerState { ), if (kDebugMode) const Spacer(), if (kDebugMode) - Row( + Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, children: [ - const Text( - "Debug Height:", + Row( + children: [ + const Text( + "dbgHeight: ", + ), + const SizedBox( + width: 2, + ), + Text( + ref + .watch(pWalletChainHeight(widget.walletId)) + .toString(), + ), + ], ), - const SizedBox( - width: 2, - ), - Text( - ref.watch(pWalletChainHeight(widget.walletId)).toString(), + Row( + children: [ + const Text( + "dbgTxCount: ", + ), + const SizedBox( + width: 2, + ), + Text( + wallet.isarTransactionVersion == 2 + ? ref + .watch(mainDBProvider) + .isar + .transactionV2s + .where() + .walletIdEqualTo(widget.walletId) + .countSync() + .toString() + : ref + .watch(mainDBProvider) + .isar + .transactions + .where() + .walletIdEqualTo(widget.walletId) + .countSync() + .toString(), + ), + ], ), + if (wallet.isarTransactionVersion == 2) + Row( + children: [ + const Text( + "dbgBal: ", + ), + const SizedBox( + width: 2, + ), + Text( + WalletDevTools.checkFiroTransactionTally( + widget.walletId, + ), + ), + ], + ), ], ), const Spacer(), diff --git a/lib/utilities/wallet_tools.dart b/lib/utilities/wallet_tools.dart new file mode 100644 index 000000000..cbc3c616c --- /dev/null +++ b/lib/utilities/wallet_tools.dart @@ -0,0 +1,55 @@ +import 'package:isar/isar.dart'; + +import '../db/isar/main_db.dart'; +import '../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import 'amount/amount.dart'; +import 'amount/amount_formatter.dart'; +import 'amount/amount_unit.dart'; + +abstract class WalletDevTools { + static String checkFiroTransactionTally(String walletId) { + final amtFmt = AmountFormatter( + unit: AmountUnit.normal, + locale: "en_US", + coin: Firo(CryptoCurrencyNetwork.main), + maxDecimals: 8, + ); + + final all = MainDB.instance.isar.transactionV2s + .where() + .walletIdEqualTo(walletId) + .findAllSync(); + + final totalCount = all.length; + + BigInt runningBalance = BigInt.zero; + for (final tx in all) { + final ownIns = tx.inputs + .where((e) => e.walletOwns) + .map((e) => e.value) + .fold(BigInt.zero, (p, e) => p + e); + runningBalance -= ownIns; + + final ownOuts = tx.outputs + .where((e) => e.walletOwns) + .map((e) => e.value) + .fold(BigInt.zero, (p, e) => p + e); + runningBalance += ownOuts; + } + + final balanceAccordingToTxHistory = Amount( + rawValue: runningBalance, + fractionDigits: 8, + ); + + print("======== $walletId ============="); + print("totalTxCount: $totalCount"); + print( + "balanceAccordingToTxns: ${amtFmt.format(balanceAccordingToTxHistory)}", + ); + print("=================================================="); + + return amtFmt.format(balanceAccordingToTxHistory); + } +} From 1f0798619af2f87b240e94895563b84244c6af0e Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 30 May 2024 22:06:48 -0600 Subject: [PATCH 168/318] save spark set cache scanned timestamps --- lib/wallets/isar/models/wallet_info.dart | 2 ++ lib/wallets/wallet/impl/firo_wallet.dart | 16 ++++++++------ .../spark_interface.dart | 21 ++++++++++++++----- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/lib/wallets/isar/models/wallet_info.dart b/lib/wallets/isar/models/wallet_info.dart index a2b7ae126..55fc5e8a6 100644 --- a/lib/wallets/isar/models/wallet_info.dart +++ b/lib/wallets/isar/models/wallet_info.dart @@ -508,4 +508,6 @@ abstract class WalletInfoKeys { static const String lelantusCoinIsarRescanRequired = "lelantusCoinIsarRescanRequired"; static const String enableLelantusScanning = "enableLelantusScanningKey"; + static const String firoSparkCacheSetTimestampCache = + "firoSparkCacheSetTimestampCacheKey"; } diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index 3e8acd0f3..3372e11bd 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -589,7 +589,12 @@ class FiroWallet extends Bip39HDWallet @override Future recover({required bool isRescan}) async { // reset last checked values - groupIdTimestampUTCMap = {}; + await info.updateOtherData( + newEntries: { + WalletInfoKeys.firoSparkCacheSetTimestampCache: {}, + }, + isar: mainDB.isar, + ); final start = DateTime.now(); final root = await getRootHDNode(); @@ -753,7 +758,6 @@ class FiroWallet extends Bip39HDWallet updateUTXOs(), ]); - final List> futures = []; if (enableLelantusScanning) { futures.add(lelantusFutures[0]); @@ -776,10 +780,10 @@ class FiroWallet extends Bip39HDWallet await Future.wait([ if (enableLelantusScanning) recoverLelantusWallet( - latestSetId: latestSetId!, - usedSerialNumbers: usedSerialsSet!, - setDataMap: setDataMap!, - ), + latestSetId: latestSetId!, + usedSerialNumbers: usedSerialsSet!, + setDataMap: setDataMap!, + ), recoverSparkWallet( latestSparkCoinId: latestSparkCoinId, ), diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index 426217fac..b0409c899 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -21,6 +21,7 @@ import '../../../utilities/logger.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../../isar/models/spark_coin.dart'; +import '../../isar/models/wallet_info.dart'; import '../../models/tx_data.dart'; import '../intermediate/bip39_hd_wallet.dart'; import 'electrumx_interface.dart'; @@ -720,9 +721,6 @@ mixin SparkInterface ); } - // TODO: look into persistence for this? - Map groupIdTimestampUTCMap = {}; - /// Should only be called within the standard wallet [recover] function due to /// mutex locking. Otherwise behaviour MAY be undefined. Future recoverSparkWallet({ @@ -764,9 +762,15 @@ mixin SparkInterface final Map>> rawCoinsBySetId = {}; + final groupIdTimestampUTCMap = + info.otherData[WalletInfoKeys.firoSparkCacheSetTimestampCache] + as Map? ?? + {}; + final latestSparkCoinId = await electrumXClient.getSparkLatestCoinId(); for (int i = 1; i <= latestSparkCoinId; i++) { - final lastCheckedTimeStampUTC = groupIdTimestampUTCMap[i] ?? 0; + final lastCheckedTimeStampUTC = + groupIdTimestampUTCMap[i.toString()] as int? ?? 0; final info = await FiroCacheCoordinator.getLatestSetInfoForGroupId( i, ); @@ -789,12 +793,19 @@ mixin SparkInterface rawCoinsBySetId[i] = coinsRaw; } - groupIdTimestampUTCMap[i] = max( + groupIdTimestampUTCMap[i.toString()] = max( lastCheckedTimeStampUTC, info?.timestampUTC ?? lastCheckedTimeStampUTC, ); } + await info.updateOtherData( + newEntries: { + WalletInfoKeys.firoSparkCacheSetTimestampCache: groupIdTimestampUTCMap, + }, + isar: mainDB.isar, + ); + final List newlyIdCoins = []; for (final groupId in rawCoinsBySetId.keys) { final myCoins = await compute( From 16acbc366b4184e6102430d43653a63e14a9ecca Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 31 May 2024 11:36:37 -0600 Subject: [PATCH 169/318] remove uninstantiated and unused variables and clean up a bit --- .../lelantus_settings_view.dart | 79 +++++-------------- pubspec.lock | 2 +- 2 files changed, 22 insertions(+), 59 deletions(-) diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart index 1f8c342b0..56e726731 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart @@ -8,18 +8,14 @@ * */ -import 'dart:convert'; - import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../../providers/db/main_db_provider.dart'; -import '../../../../providers/global/wallets_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/text_styles.dart'; -import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../wallets/isar/models/wallet_info.dart'; -import '../../../../wallets/wallet/wallet.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../../widgets/background.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; @@ -40,46 +36,26 @@ class LelantusSettingsView extends ConsumerStatefulWidget { } class _LelantusSettingsViewState extends ConsumerState { - late final TextEditingController _controller; - late final String walletId; - - final _focusNode = FocusNode(); - - bool _isInitialized = false; - Wallet? wallet; - bool _enableLelantusScanning = false; bool _isUpdatingLelantusScanning = false; - @override - void didChangeDependencies() { - super.didChangeDependencies(); - if (!_isInitialized) { - // Get the wallet. - wallet = ref.watch( - pWallets.select( - (value) => value.getWallet(widget.walletId), - ), + Future _switchToggled(bool newValue) async { + if (_isUpdatingLelantusScanning) return; + _isUpdatingLelantusScanning = true; // Lock mutex. + + try { + // Toggle enableLelantusScanning in wallet info. + await ref.read(pWalletInfo(widget.walletId)).updateOtherData( + newEntries: { + WalletInfoKeys.enableLelantusScanning: newValue, + }, + isar: ref.read(mainDBProvider).isar, ); - - // Parse otherDataJsonString to get the enableLelantusScanning value. - if (wallet?.info.otherDataJsonString != null) { - final otherDataJson = json.decode(wallet!.info.otherDataJsonString!); - _enableLelantusScanning = - otherDataJson[WalletInfoKeys.enableLelantusScanning] as bool? ?? - false; - } - - _isInitialized = true; // Ensure this logic runs only once + } finally { + // ensure _isUpdatingLelantusScanning is set to false no matter what + _isUpdatingLelantusScanning = false; } } - @override - void dispose() { - _controller.dispose(); - _focusNode.dispose(); - super.dispose(); - } - @override Widget build(BuildContext context) { return Background( @@ -107,25 +83,12 @@ class _LelantusSettingsViewState extends ConsumerState { height: 20, width: 40, child: DraggableSwitchButton( - isOn: _enableLelantusScanning, - onValueChanged: (newValue) async { - if (_isUpdatingLelantusScanning) return; - _isUpdatingLelantusScanning = true; // Lock mutex. - - // Toggle enableLelantusScanning in wallet info. - await wallet?.info.updateOtherData( - newEntries: { - WalletInfoKeys.enableLelantusScanning: - !_enableLelantusScanning, - }, - isar: ref.read(mainDBProvider).isar, - ); - - setState(() { - _enableLelantusScanning = !_enableLelantusScanning; - _isUpdatingLelantusScanning = false; // Free mutex. - }); - }, + isOn: ref.watch( + pWalletInfo(widget.walletId) + .select((value) => value.otherData), + )[WalletInfoKeys.enableLelantusScanning] as bool? ?? + false, + onValueChanged: _switchToggled, ), ), const SizedBox( diff --git a/pubspec.lock b/pubspec.lock index 77e310a23..ccd30906c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1194,7 +1194,7 @@ packages: source: hosted version: "0.2.0" monero: - dependency: transitive + dependency: "direct main" description: path: "." ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac" From de949efbff5c545c2b630a1cbc56a79567ba9f1d Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 31 May 2024 11:59:43 -0600 Subject: [PATCH 170/318] show firo sparl electrumx data cache size and implement clearing of that cache when all electrumx cache for firo is cleared --- lib/db/sqlite/firo_cache.dart | 45 ++++++++++++++ .../wallet_settings_view.dart | 7 ++- .../spark_info.dart | 59 +++++++++++++++++++ .../wallet_settings_wallet_settings_view.dart | 34 +++++++++++ lib/route_generator.dart | 10 ++++ 5 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/spark_info.dart diff --git a/lib/db/sqlite/firo_cache.dart b/lib/db/sqlite/firo_cache.dart index 47cd680b3..d04eed56e 100644 --- a/lib/db/sqlite/firo_cache.dart +++ b/lib/db/sqlite/firo_cache.dart @@ -29,6 +29,34 @@ List _ffiHashTagsComputeWrapper(List base64Tags) { abstract class FiroCacheCoordinator { static Future init() => _FiroCache.init(); + static Future clearSharedCache() async { + return await _FiroCache._deleteAllCache(); + } + + static Future getSparkCacheSize() async { + final dir = await StackFileSystem.applicationSQLiteDirectory(); + final cacheFile = File("${dir.path}/${_FiroCache.sqliteDbFileName}"); + final int bytes; + if (await cacheFile.exists()) { + bytes = await cacheFile.length(); + } else { + bytes = 0; + } + + if (bytes < 1024) { + return '$bytes B'; + } else if (bytes < 1048576) { + final double kbSize = bytes / 1024; + return '${kbSize.toStringAsFixed(2)} KB'; + } else if (bytes < 1073741824) { + final double mbSize = bytes / 1048576; + return '${mbSize.toStringAsFixed(2)} MB'; + } else { + final double gbSize = bytes / 1073741824; + return '${gbSize.toStringAsFixed(2)} GB'; + } + } + static Future runFetchAndUpdateSparkUsedCoinTags( ElectrumXClient client, ) async { @@ -164,6 +192,23 @@ abstract class _FiroCache { ); } + static Future _deleteAllCache() async { + final start = DateTime.now(); + db.execute( + """ + DELETE FROM SparkSet; + DELETE FROM SparkCoin; + DELETE FROM SparkSetCoins; + DELETE FROM SparkUsedCoinTags; + VACUUM; + """, + ); + _debugLog( + "_deleteAllCache() " + "duration = ${DateTime.now().difference(start)}", + ); + } + static Future _createDb(String file) async { final db = sqlite3.open( file, diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart index 1af5c6e6b..004bd57df 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart @@ -16,6 +16,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:tuple/tuple.dart'; import '../../../db/hive/db.dart'; +import '../../../db/sqlite/firo_cache.dart'; import '../../../models/epicbox_config_model.dart'; import '../../../notifications/show_flush_bar.dart'; import '../../../providers/global/wallets_provider.dart'; @@ -413,7 +414,8 @@ class _WalletSettingsViewState extends ConsumerState { ), ); - if (result == "OK" && mounted) { + if (result == "OK" && + context.mounted) { await showLoading( whileFuture: Future.wait( [ @@ -426,6 +428,9 @@ class _WalletSettingsViewState extends ConsumerState { .clearSharedTransactionCache( currency: coin, ), + if (coin is Firo) + FiroCacheCoordinator + .clearSharedCache(), ], ), context: context, diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/spark_info.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/spark_info.dart new file mode 100644 index 000000000..7cb9b91f3 --- /dev/null +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/spark_info.dart @@ -0,0 +1,59 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; + +import '../../../../db/sqlite/firo_cache.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/detail_item.dart'; + +class SparkInfoView extends ConsumerWidget { + const SparkInfoView({ + super.key, + }); + + static const String routeName = "/sparkInfo"; + + @override + Widget build(BuildContext context, WidgetRef ref) { + return Background( + child: Scaffold( + backgroundColor: Theme.of(context).extension()!.background, + appBar: AppBar( + leading: AppBarBackButton( + onPressed: () { + Navigator.of(context).pop(); + }, + ), + title: Text( + "Spark Info", + style: STextStyles.navBarTitle(context), + ), + ), + body: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + FutureBuilder( + future: FiroCacheCoordinator.getSparkCacheSize(), + builder: (_, snapshot) { + String detail = "Loading..."; + if (snapshot.connectionState == ConnectionState.done) { + detail = snapshot.data ?? detail; + } + + return DetailItem( + title: "Spark electrumx cache size", + detail: detail, + ); + }, + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart index 7c2884258..9c874514e 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart @@ -24,6 +24,7 @@ import '../../../pinpad_views/lock_screen_view.dart'; import 'delete_wallet_warning_view.dart'; import 'lelantus_settings_view.dart'; import 'rename_wallet_view.dart'; +import 'spark_info.dart'; class WalletSettingsWalletSettingsView extends ConsumerWidget { const WalletSettingsWalletSettingsView({ @@ -216,6 +217,39 @@ class WalletSettingsWalletSettingsView extends ConsumerWidget { ), ), ), + const SizedBox( + height: 8, + ), + RoundedWhiteContainer( + padding: const EdgeInsets.all(0), + child: RawMaterialButton( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), + ), + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + onPressed: () { + Navigator.of(context).pushNamed( + SparkInfoView.routeName, + ); + }, + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 12.0, + vertical: 20, + ), + child: Row( + children: [ + Text( + "Spark info", + style: STextStyles.titleBold12(context), + ), + ], + ), + ), + ), + ), ], ), ), diff --git a/lib/route_generator.dart b/lib/route_generator.dart index 27d1eb4f7..ccedb0a6a 100644 --- a/lib/route_generator.dart +++ b/lib/route_generator.dart @@ -131,6 +131,7 @@ import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_setting import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart'; +import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/spark_info.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart'; import 'pages/special/firo_rescan_recovery_error_dialog.dart'; @@ -1966,6 +1967,15 @@ class RouteGenerator { } return _routeError("${settings.name} invalid args: ${args.toString()}"); + case SparkInfoView.routeName: + return getRoute( + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => const SparkInfoView(), + settings: RouteSettings( + name: settings.name, + ), + ); + // == Desktop specific routes ============================================ case CreatePasswordView.routeName: if (args is bool) { From 744107b3eb17895d693e3fbb6ed2ec519f78b22e Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 31 May 2024 16:37:25 -0600 Subject: [PATCH 171/318] compartmentalize the sqlite firo cache code and add a background isolate worker to handle some processing as well as cache db writes --- lib/db/sqlite/firo_cache.dart | 520 +--------------------- lib/db/sqlite/firo_cache_coordinator.dart | 162 +++++++ lib/db/sqlite/firo_cache_reader.dart | 103 +++++ lib/db/sqlite/firo_cache_worker.dart | 120 +++++ lib/db/sqlite/firo_cache_writer.dart | 169 +++++++ 5 files changed, 576 insertions(+), 498 deletions(-) create mode 100644 lib/db/sqlite/firo_cache_coordinator.dart create mode 100644 lib/db/sqlite/firo_cache_reader.dart create mode 100644 lib/db/sqlite/firo_cache_worker.dart create mode 100644 lib/db/sqlite/firo_cache_writer.dart diff --git a/lib/db/sqlite/firo_cache.dart b/lib/db/sqlite/firo_cache.dart index d04eed56e..7197690a8 100644 --- a/lib/db/sqlite/firo_cache.dart +++ b/lib/db/sqlite/firo_cache.dart @@ -1,15 +1,23 @@ import 'dart:async'; import 'dart:io'; +import 'dart:isolate'; import 'package:flutter/foundation.dart'; import 'package:flutter_libsparkmobile/flutter_libsparkmobile.dart'; +import 'package:mutex/mutex.dart'; import 'package:sqlite3/sqlite3.dart'; +import 'package:uuid/uuid.dart'; import '../../electrumx_rpc/electrumx_client.dart'; import '../../utilities/extensions/extensions.dart'; import '../../utilities/logger.dart'; import '../../utilities/stack_file_system.dart'; +part 'firo_cache_coordinator.dart'; +part 'firo_cache_reader.dart'; +part 'firo_cache_writer.dart'; +part 'firo_cache_worker.dart'; + /// Temporary debugging log function for this file void _debugLog(Object? object) { if (kDebugMode) { @@ -20,146 +28,6 @@ void _debugLog(Object? object) { } } -List _ffiHashTagsComputeWrapper(List base64Tags) { - return LibSpark.hashTags(base64Tags: base64Tags); -} - -/// Wrapper class for [_FiroCache] as [_FiroCache] should eventually be handled in a -/// background isolate and [FiroCacheCoordinator] should manage that isolate -abstract class FiroCacheCoordinator { - static Future init() => _FiroCache.init(); - - static Future clearSharedCache() async { - return await _FiroCache._deleteAllCache(); - } - - static Future getSparkCacheSize() async { - final dir = await StackFileSystem.applicationSQLiteDirectory(); - final cacheFile = File("${dir.path}/${_FiroCache.sqliteDbFileName}"); - final int bytes; - if (await cacheFile.exists()) { - bytes = await cacheFile.length(); - } else { - bytes = 0; - } - - if (bytes < 1024) { - return '$bytes B'; - } else if (bytes < 1048576) { - final double kbSize = bytes / 1024; - return '${kbSize.toStringAsFixed(2)} KB'; - } else if (bytes < 1073741824) { - final double mbSize = bytes / 1048576; - return '${mbSize.toStringAsFixed(2)} MB'; - } else { - final double gbSize = bytes / 1073741824; - return '${gbSize.toStringAsFixed(2)} GB'; - } - } - - static Future runFetchAndUpdateSparkUsedCoinTags( - ElectrumXClient client, - ) async { - final count = await FiroCacheCoordinator.getUsedCoinTagsLastAddedRowId(); - final unhashedTags = await client.getSparkUnhashedUsedCoinsTags( - startNumber: count, - ); - if (unhashedTags.isNotEmpty) { - final hashedTags = await compute( - _ffiHashTagsComputeWrapper, - unhashedTags, - ); - await _FiroCache._updateSparkUsedTagsWith(hashedTags); - } - } - - static Future runFetchAndUpdateSparkAnonSetCacheForGroupId( - int groupId, - ElectrumXClient client, - ) async { - final blockhashResult = - await FiroCacheCoordinator.getLatestSetInfoForGroupId( - groupId, - ); - final blockHash = blockhashResult?.blockHash ?? ""; - - final json = await client.getSparkAnonymitySet( - coinGroupId: groupId.toString(), - startBlockHash: blockHash.toHexReversedFromBase64, - ); - - await _FiroCache._updateSparkAnonSetCoinsWith(json, groupId); - } - - // =========================================================================== - - static Future> getUsedCoinTags(int startNumber) async { - final result = await _FiroCache._getSparkUsedCoinTags( - startNumber, - ); - return result.map((e) => e["tag"] as String).toSet(); - } - - /// This should be the equivalent of counting the number of tags in the db. - /// Assuming the integrity of the data. Faster than actually calling count on - /// a table where no records have been deleted. None should be deleted from - /// this table in practice. - static Future getUsedCoinTagsLastAddedRowId() async { - final result = await _FiroCache._getUsedCoinTagsLastAddedRowId(); - if (result.isEmpty) { - return 0; - } - return result.first["highestId"] as int? ?? 0; - } - - static Future checkTagIsUsed( - String tag, - ) async { - return await _FiroCache._checkTagIsUsed( - tag, - ); - } - - static Future getSetCoinsForGroupId( - int groupId, { - int? newerThanTimeStamp, - }) async { - return await _FiroCache._getSetCoinsForGroupId( - groupId, - newerThanTimeStamp: newerThanTimeStamp, - ); - } - - static Future< - ({ - String blockHash, - String setHash, - int timestampUTC, - })?> getLatestSetInfoForGroupId( - int groupId, - ) async { - final result = await _FiroCache._getLatestSetInfoForGroupId(groupId); - - if (result.isEmpty) { - return null; - } - - return ( - blockHash: result.first["blockHash"] as String, - setHash: result.first["setHash"] as String, - timestampUTC: result.first["timestampUTC"] as int, - ); - } - - static Future checkSetInfoForGroupIdExists( - int groupId, - ) async { - return await _FiroCache._checkSetInfoForGroupIdExists( - groupId, - ); - } -} - abstract class _FiroCache { static const String sqliteDbFileName = "firo_ex_cache.sqlite3"; @@ -218,14 +86,14 @@ abstract class _FiroCache { db.execute( """ CREATE TABLE SparkSet ( - id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, - blockHash TEXT NOT NULL, - setHash TEXT NOT NULL, - groupId INTEGER NOT NULL, - timestampUTC INTEGER NOT NULL, - UNIQUE (blockHash, setHash, groupId) + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, + blockHash TEXT NOT NULL, + setHash TEXT NOT NULL, + groupId INTEGER NOT NULL, + timestampUTC INTEGER NOT NULL, + UNIQUE (blockHash, setHash, groupId) ); - + CREATE TABLE SparkCoin ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, serialized TEXT NOT NULL, @@ -233,366 +101,22 @@ abstract class _FiroCache { context TEXT NOT NULL, UNIQUE(serialized, txHash, context) ); - + CREATE TABLE SparkSetCoins ( - id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, - setId INTEGER NOT NULL, - coinId INTEGER NOT NULL, - FOREIGN KEY (setId) REFERENCES SparkSet(id), - FOREIGN KEY (coinId) REFERENCES SparkCoin(id) + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, + setId INTEGER NOT NULL, + coinId INTEGER NOT NULL, + FOREIGN KEY (setId) REFERENCES SparkSet(id), + FOREIGN KEY (coinId) REFERENCES SparkCoin(id) ); CREATE TABLE SparkUsedCoinTags ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, tag TEXT NOT NULL UNIQUE ); - """, + """, ); db.dispose(); } - - // =========================================================================== - // =============== Spark anonymity set queries =============================== - - static Future _getSetCoinsForGroupId( - int groupId, { - int? newerThanTimeStamp, - }) async { - String query = """ - SELECT sc.serialized, sc.txHash, sc.context - FROM SparkSet AS ss - JOIN SparkSetCoins AS ssc ON ss.id = ssc.setId - JOIN SparkCoin AS sc ON ssc.coinId = sc.id - WHERE ss.groupId = $groupId - """; - - if (newerThanTimeStamp != null) { - query += " AND ss.timestampUTC" - " > $newerThanTimeStamp"; - } - - return db.select("$query;"); - } - - static Future _getLatestSetInfoForGroupId( - int groupId, - ) async { - final query = """ - SELECT ss.blockHash, ss.setHash, ss.timestampUTC - FROM SparkSet ss - WHERE ss.groupId = $groupId - ORDER BY ss.timestampUTC DESC - LIMIT 1; - """; - - return db.select("$query;"); - } - - static Future _checkSetInfoForGroupIdExists( - int groupId, - ) async { - final query = """ - SELECT EXISTS ( - SELECT 1 - FROM SparkSet - WHERE groupId = $groupId - ) AS setExists; - """; - - return db.select("$query;").first["setExists"] == 1; - } - - // =========================================================================== - // =============== Spark used coin tags queries ============================== - - static Future _getSparkUsedCoinTags( - int startNumber, - ) async { - String query = """ - SELECT tag - FROM SparkUsedCoinTags - """; - - if (startNumber > 0) { - query += " WHERE id >= $startNumber"; - } - - return db.select("$query;"); - } - - static Future _getUsedCoinTagsLastAddedRowId() async { - const query = """ - SELECT MAX(id) AS highestId - FROM SparkUsedCoinTags; - """; - - return db.select("$query;"); - } - - static Future _checkTagIsUsed(String tag) async { - final query = """ - SELECT EXISTS ( - SELECT 1 - FROM SparkUsedCoinTags - WHERE tag = '$tag' - ) AS tagExists; - """; - - return db.select("$query;").first["tagExists"] == 1; - } - - // =========================================================================== - // ================== write to spark used tags cache ========================= - - // debug log counter var - static int _updateTagsCount = 0; - - /// update the sqlite cache - /// Expected json format: - /// { - /// "blockHash": "someBlockHash", - /// "setHash": "someSetHash", - /// "coins": [ - /// ["serliazed1", "hash1", "context1"], - /// ["serliazed2", "hash2", "context2"], - /// ... - /// ["serliazed3", "hash3", "context3"], - /// ["serliazed4", "hash4", "context4"], - /// ], - /// } - /// - /// returns true if successful, otherwise false - static Future _updateSparkUsedTagsWith( - List tags, - ) async { - final start = DateTime.now(); - _updateTagsCount++; - - if (tags.isEmpty) { - _debugLog( - "$_updateTagsCount _updateSparkUsedTagsWith(tags) called " - "where tags is empty", - ); - _debugLog( - "$_updateTagsCount _updateSparkUsedTagsWith() " - "duration = ${DateTime.now().difference(start)}", - ); - // nothing to add, return early - return true; - } else if (tags.length <= 10) { - _debugLog("$_updateTagsCount _updateSparkUsedTagsWith() called where " - "tags.length=${tags.length}, tags: $tags,"); - } else { - _debugLog( - "$_updateTagsCount _updateSparkUsedTagsWith() called where" - " tags.length=${tags.length}," - " first 5 tags: ${tags.sublist(0, 5)}," - " last 5 tags: ${tags.sublist(tags.length - 5, tags.length)}", - ); - } - - db.execute("BEGIN;"); - try { - for (final tag in tags) { - db.execute( - """ - INSERT OR IGNORE INTO SparkUsedCoinTags (tag) - VALUES (?); - """, - [tag], - ); - } - - db.execute("COMMIT;"); - _debugLog("$_updateTagsCount _updateSparkUsedTagsWith() COMMITTED"); - _debugLog( - "$_updateTagsCount _updateSparkUsedTagsWith() " - "duration = ${DateTime.now().difference(start)}", - ); - return true; - } catch (e, s) { - db.execute("ROLLBACK;"); - _debugLog("$_updateTagsCount _updateSparkUsedTagsWith() ROLLBACK"); - _debugLog( - "$_updateTagsCount _updateSparkUsedTagsWith() " - "duration = ${DateTime.now().difference(start)}", - ); - // NOTE THIS LOGGER MUST BE CALLED ON MAIN ISOLATE FOR NOW - Logging.instance.log( - "$e\n$s", - level: LogLevel.Error, - ); - } - - return false; - } - - // =========================================================================== - // ================== write to spark anon set cache ========================== - - // debug log counter var - static int _updateAnonSetCount = 0; - - /// update the sqlite cache - /// Expected json format: - /// { - /// "blockHash": "someBlockHash", - /// "setHash": "someSetHash", - /// "coins": [ - /// ["serliazed1", "hash1", "context1"], - /// ["serliazed2", "hash2", "context2"], - /// ... - /// ["serliazed3", "hash3", "context3"], - /// ["serliazed4", "hash4", "context4"], - /// ], - /// } - /// - /// returns true if successful, otherwise false - static Future _updateSparkAnonSetCoinsWith( - Map json, - int groupId, - ) async { - final start = DateTime.now(); - _updateAnonSetCount++; - final blockHash = json["blockHash"] as String; - final setHash = json["setHash"] as String; - final coinsRaw = json["coins"] as List; - - _debugLog( - "$_updateAnonSetCount _updateSparkAnonSetCoinsWith() " - "called where groupId=$groupId, " - "blockHash=$blockHash (${blockHash.toHexReversedFromBase64}), " - "setHash=$setHash, " - "coins.length: ${coinsRaw.isEmpty ? 0 : coinsRaw.length}", - ); - - if ((json["coins"] as List).isEmpty) { - _debugLog( - "$_updateAnonSetCount _updateSparkAnonSetCoinsWith()" - " called where json[coins] is Empty", - ); - _debugLog( - "$_updateAnonSetCount _updateSparkAnonSetCoinsWith()" - " duration = ${DateTime.now().difference(start)}", - ); - // no coins to actually insert - return true; - } - - final checkResult = db.select( - """ - SELECT * - FROM SparkSet - WHERE blockHash = ? AND setHash = ? AND groupId = ?; - """, - [ - blockHash, - setHash, - groupId, - ], - ); - - _debugLog( - "$_updateAnonSetCount _updateSparkAnonSetCoinsWith()" - " called where checkResult=$checkResult", - ); - - if (checkResult.isNotEmpty) { - _debugLog( - "$_updateAnonSetCount _updateSparkAnonSetCoinsWith()" - " duration = ${DateTime.now().difference(start)}", - ); - // already up to date - return true; - } - - final coins = coinsRaw - .map( - (e) => [ - e[0] as String, - e[1] as String, - e[2] as String, - ], - ) - .toList(); - - final timestamp = DateTime.now().toUtc().millisecondsSinceEpoch ~/ 1000; - - db.execute("BEGIN;"); - try { - db.execute( - """ - INSERT INTO SparkSet (blockHash, setHash, groupId, timestampUTC) - VALUES (?, ?, ?, ?); - """, - [blockHash, setHash, groupId, timestamp], - ); - final setId = db.lastInsertRowId; - - for (final coin in coins) { - int coinId; - try { - // try to insert and get row id - db.execute( - """ - INSERT INTO SparkCoin (serialized, txHash, context) - VALUES (?, ?, ?); - """, - coin, - ); - coinId = db.lastInsertRowId; - } on SqliteException catch (e) { - // if there already is a matching coin in the db - // just grab its row id - if (e.extendedResultCode == 2067) { - final result = db.select( - """ - SELECT id - FROM SparkCoin - WHERE serialized = ? AND txHash = ? AND context = ?; - """, - coin, - ); - coinId = result.first["id"] as int; - } else { - rethrow; - } - } - - // finally add the row id to the newly added set - db.execute( - """ - INSERT INTO SparkSetCoins (setId, coinId) - VALUES (?, ?); - """, - [setId, coinId], - ); - } - - db.execute("COMMIT;"); - _debugLog( - "$_updateAnonSetCount _updateSparkAnonSetCoinsWith() COMMITTED", - ); - _debugLog( - "$_updateAnonSetCount _updateSparkAnonSetCoinsWith() duration" - " = ${DateTime.now().difference(start)}", - ); - return true; - } catch (e, s) { - db.execute("ROLLBACK;"); - _debugLog("$_updateAnonSetCount _updateSparkAnonSetCoinsWith() ROLLBACK"); - _debugLog( - "$_updateAnonSetCount _updateSparkAnonSetCoinsWith()" - " duration = ${DateTime.now().difference(start)}", - ); - // NOTE THIS LOGGER MUST BE CALLED ON MAIN ISOLATE FOR NOW - Logging.instance.log( - "$e\n$s", - level: LogLevel.Error, - ); - } - - return false; - } } diff --git a/lib/db/sqlite/firo_cache_coordinator.dart b/lib/db/sqlite/firo_cache_coordinator.dart new file mode 100644 index 000000000..d2e4796f6 --- /dev/null +++ b/lib/db/sqlite/firo_cache_coordinator.dart @@ -0,0 +1,162 @@ +part of 'firo_cache.dart'; + +/// Wrapper class for [_FiroCache] as [_FiroCache] should eventually be handled in a +/// background isolate and [FiroCacheCoordinator] should manage that isolate +abstract class FiroCacheCoordinator { + static _FiroCacheWorker? _worker; + + static bool _init = false; + static Future init() async { + if (_init) { + return; + } + _init = true; + await _FiroCache.init(); + _worker = await _FiroCacheWorker.spawn(); + } + + static Future clearSharedCache() async { + return await _FiroCache._deleteAllCache(); + } + + static Future getSparkCacheSize() async { + final dir = await StackFileSystem.applicationSQLiteDirectory(); + final cacheFile = File("${dir.path}/${_FiroCache.sqliteDbFileName}"); + final int bytes; + if (await cacheFile.exists()) { + bytes = await cacheFile.length(); + } else { + bytes = 0; + } + + if (bytes < 1024) { + return '$bytes B'; + } else if (bytes < 1048576) { + final double kbSize = bytes / 1024; + return '${kbSize.toStringAsFixed(2)} KB'; + } else if (bytes < 1073741824) { + final double mbSize = bytes / 1048576; + return '${mbSize.toStringAsFixed(2)} MB'; + } else { + final double gbSize = bytes / 1073741824; + return '${gbSize.toStringAsFixed(2)} GB'; + } + } + + static Future runFetchAndUpdateSparkUsedCoinTags( + ElectrumXClient client, + ) async { + final count = await FiroCacheCoordinator.getUsedCoinTagsLastAddedRowId(); + final unhashedTags = await client.getSparkUnhashedUsedCoinsTags( + startNumber: count, + ); + if (unhashedTags.isNotEmpty) { + await _worker!.runTask( + FCTask( + func: FCFuncName._updateSparkUsedTagsWith, + data: unhashedTags, + ), + ); + } + } + + static Future runFetchAndUpdateSparkAnonSetCacheForGroupId( + int groupId, + ElectrumXClient client, + ) async { + final blockhashResult = + await FiroCacheCoordinator.getLatestSetInfoForGroupId( + groupId, + ); + final blockHash = blockhashResult?.blockHash ?? ""; + + final json = await client.getSparkAnonymitySet( + coinGroupId: groupId.toString(), + startBlockHash: blockHash.toHexReversedFromBase64, + ); + + await _worker!.runTask( + FCTask( + func: FCFuncName._updateSparkAnonSetCoinsWith, + data: (groupId, json), + ), + ); + } + + // =========================================================================== + + static Future> getUsedCoinTags(int startNumber) async { + final result = await _Reader._getSparkUsedCoinTags( + startNumber, + db: _FiroCache.db, + ); + return result.map((e) => e["tag"] as String).toSet(); + } + + /// This should be the equivalent of counting the number of tags in the db. + /// Assuming the integrity of the data. Faster than actually calling count on + /// a table where no records have been deleted. None should be deleted from + /// this table in practice. + static Future getUsedCoinTagsLastAddedRowId() async { + final result = await _Reader._getUsedCoinTagsLastAddedRowId( + db: _FiroCache.db, + ); + if (result.isEmpty) { + return 0; + } + return result.first["highestId"] as int? ?? 0; + } + + static Future checkTagIsUsed( + String tag, + ) async { + return await _Reader._checkTagIsUsed( + tag, + db: _FiroCache.db, + ); + } + + static Future getSetCoinsForGroupId( + int groupId, { + int? newerThanTimeStamp, + }) async { + return await _Reader._getSetCoinsForGroupId( + groupId, + db: _FiroCache.db, + newerThanTimeStamp: newerThanTimeStamp, + ); + } + + static Future< + ({ + String blockHash, + String setHash, + int timestampUTC, + })?> getLatestSetInfoForGroupId( + int groupId, + ) async { + final result = await _Reader._getLatestSetInfoForGroupId( + groupId, + db: _FiroCache.db, + ); + + if (result.isEmpty) { + return null; + } + + return ( + blockHash: result.first["blockHash"] as String, + setHash: result.first["setHash"] as String, + timestampUTC: result.first["timestampUTC"] as int, + ); + } + + static Future checkSetInfoForGroupIdExists( + int groupId, + ) async { + return await _Reader._checkSetInfoForGroupIdExists( + groupId, + db: _FiroCache.db, + ); + } +} diff --git a/lib/db/sqlite/firo_cache_reader.dart b/lib/db/sqlite/firo_cache_reader.dart new file mode 100644 index 000000000..10af03922 --- /dev/null +++ b/lib/db/sqlite/firo_cache_reader.dart @@ -0,0 +1,103 @@ +part of 'firo_cache.dart'; + +/// Keep all fetch queries in this separate file +abstract class _Reader { + // =========================================================================== + // =============== Spark anonymity set queries =============================== + + static Future _getSetCoinsForGroupId( + int groupId, { + required Database db, + int? newerThanTimeStamp, + }) async { + String query = """ + SELECT sc.serialized, sc.txHash, sc.context + FROM SparkSet AS ss + JOIN SparkSetCoins AS ssc ON ss.id = ssc.setId + JOIN SparkCoin AS sc ON ssc.coinId = sc.id + WHERE ss.groupId = $groupId + """; + + if (newerThanTimeStamp != null) { + query += " AND ss.timestampUTC" + " > $newerThanTimeStamp"; + } + + return db.select("$query;"); + } + + static Future _getLatestSetInfoForGroupId( + int groupId, { + required Database db, + }) async { + final query = """ + SELECT ss.blockHash, ss.setHash, ss.timestampUTC + FROM SparkSet ss + WHERE ss.groupId = $groupId + ORDER BY ss.timestampUTC DESC + LIMIT 1; + """; + + return db.select("$query;"); + } + + static Future _checkSetInfoForGroupIdExists( + int groupId, { + required Database db, + }) async { + final query = """ + SELECT EXISTS ( + SELECT 1 + FROM SparkSet + WHERE groupId = $groupId + ) AS setExists; + """; + + return db.select("$query;").first["setExists"] == 1; + } + + // =========================================================================== + // =============== Spark used coin tags queries ============================== + + static Future _getSparkUsedCoinTags( + int startNumber, { + required Database db, + }) async { + String query = """ + SELECT tag + FROM SparkUsedCoinTags + """; + + if (startNumber > 0) { + query += " WHERE id >= $startNumber"; + } + + return db.select("$query;"); + } + + static Future _getUsedCoinTagsLastAddedRowId({ + required Database db, + }) async { + const query = """ + SELECT MAX(id) AS highestId + FROM SparkUsedCoinTags; + """; + + return db.select("$query;"); + } + + static Future _checkTagIsUsed( + String tag, { + required Database db, + }) async { + final query = """ + SELECT EXISTS ( + SELECT 1 + FROM SparkUsedCoinTags + WHERE tag = '$tag' + ) AS tagExists; + """; + + return db.select("$query;").first["tagExists"] == 1; + } +} diff --git a/lib/db/sqlite/firo_cache_worker.dart b/lib/db/sqlite/firo_cache_worker.dart new file mode 100644 index 000000000..d29018b8d --- /dev/null +++ b/lib/db/sqlite/firo_cache_worker.dart @@ -0,0 +1,120 @@ +part of 'firo_cache.dart'; + +enum FCFuncName { + _updateSparkAnonSetCoinsWith, + _updateSparkUsedTagsWith, +} + +class FCTask { + final id = const Uuid().v4(); + final FCFuncName func; + final dynamic data; + + FCTask({required this.func, required this.data}); +} + +class _FiroCacheWorker { + final SendPort _commands; + final ReceivePort _responses; + final Map> _activeRequests = {}; + + Future runTask(FCTask task) async { + final completer = Completer.sync(); + _activeRequests[task.id] = completer; + _commands.send(task); + return await completer.future; + } + + static Future<_FiroCacheWorker> spawn() async { + final sqliteDir = await StackFileSystem.applicationSQLiteDirectory(); + final dbFilePath = "${sqliteDir.path}/${_FiroCache.sqliteDbFileName}"; + + final initPort = RawReceivePort(); + final connection = Completer<(ReceivePort, SendPort)>.sync(); + + initPort.handler = (dynamic initialMessage) { + final commandPort = initialMessage as SendPort; + connection.complete( + ( + ReceivePort.fromRawReceivePort(initPort), + commandPort, + ), + ); + }; + + try { + await Isolate.spawn( + _startWorkerIsolate, + (initPort.sendPort, dbFilePath), + ); + } catch (_) { + initPort.close(); + rethrow; + } + + final (receivePort, sendPort) = await connection.future; + + return _FiroCacheWorker._(receivePort, sendPort); + } + + _FiroCacheWorker._(this._responses, this._commands) { + _responses.listen(_handleResponsesFromIsolate); + } + + void _handleResponsesFromIsolate(dynamic message) { + final (id, error) = message as (String, Object?); + final completer = _activeRequests.remove(id)!; + + if (error != null) { + completer.completeError(error); + } else { + completer.complete(id); + } + } + + static void _handleCommandsToIsolate( + ReceivePort receivePort, + SendPort sendPort, + Database db, + Mutex mutex, + ) { + receivePort.listen((message) { + final task = message as FCTask; + + mutex.protect(() async { + try { + final FCResult result; + switch (task.func) { + case FCFuncName._updateSparkAnonSetCoinsWith: + final data = task.data as (int, Map); + result = _updateSparkAnonSetCoinsWith(db, data.$2, data.$1); + break; + + case FCFuncName._updateSparkUsedTagsWith: + result = _updateSparkUsedTagsWith(db, task.data as List); + break; + } + + if (result.success) { + sendPort.send((task.id, null)); + } else { + sendPort.send((task.id, result.error!)); + } + } catch (e) { + sendPort.send((task.id, e)); + } + }); + }); + } + + static void _startWorkerIsolate((SendPort, String) args) { + final receivePort = ReceivePort(); + args.$1.send(receivePort.sendPort); + final mutex = Mutex(); + final db = sqlite3.open( + args.$2, + mode: OpenMode.readWrite, + ); + _handleCommandsToIsolate(receivePort, args.$1, db, mutex); + } +} diff --git a/lib/db/sqlite/firo_cache_writer.dart b/lib/db/sqlite/firo_cache_writer.dart new file mode 100644 index 000000000..0bf1d938b --- /dev/null +++ b/lib/db/sqlite/firo_cache_writer.dart @@ -0,0 +1,169 @@ +part of 'firo_cache.dart'; + +class FCResult { + final bool success; + final Object? error; + + FCResult({required this.success, this.error}); +} + +// =========================================================================== +// ================== write to spark used tags cache ========================= + +/// update the sqlite cache +/// Expected json format: +/// returns true if successful, otherwise some exception +FCResult _updateSparkUsedTagsWith( + Database db, + List tags, +) { + // hash the tags here since this function is called in a background isolate + final hashedTags = LibSpark.hashTags(base64Tags: tags); + + if (hashedTags.isEmpty) { + // nothing to add, return early + return FCResult(success: true); + } + + db.execute("BEGIN;"); + try { + for (final tag in hashedTags) { + db.execute( + """ + INSERT OR IGNORE INTO SparkUsedCoinTags (tag) + VALUES (?); + """, + [tag], + ); + } + + db.execute("COMMIT;"); + + return FCResult(success: true); + } catch (e) { + db.execute("ROLLBACK;"); + return FCResult(success: false, error: e); + } +} + +// =========================================================================== +// ================== write to spark anon set cache ========================== + +/// update the sqlite cache +/// Expected json format: +/// { +/// "blockHash": "someBlockHash", +/// "setHash": "someSetHash", +/// "coins": [ +/// ["serliazed1", "hash1", "context1"], +/// ["serliazed2", "hash2", "context2"], +/// ... +/// ["serliazed3", "hash3", "context3"], +/// ["serliazed4", "hash4", "context4"], +/// ], +/// } +/// +/// returns true if successful, otherwise false +FCResult _updateSparkAnonSetCoinsWith( + Database db, + Map json, + int groupId, +) { + final blockHash = json["blockHash"] as String; + final setHash = json["setHash"] as String; + final coinsRaw = json["coins"] as List; + + if (coinsRaw.isEmpty) { + // no coins to actually insert + return FCResult(success: true); + } + + final checkResult = db.select( + """ + SELECT * + FROM SparkSet + WHERE blockHash = ? AND setHash = ? AND groupId = ?; + """, + [ + blockHash, + setHash, + groupId, + ], + ); + + if (checkResult.isNotEmpty) { + // already up to date + return FCResult(success: true); + } + + final coins = coinsRaw + .map( + (e) => [ + e[0] as String, + e[1] as String, + e[2] as String, + ], + ) + .toList(); + + final timestamp = DateTime.now().toUtc().millisecondsSinceEpoch ~/ 1000; + + db.execute("BEGIN;"); + try { + db.execute( + """ + INSERT INTO SparkSet (blockHash, setHash, groupId, timestampUTC) + VALUES (?, ?, ?, ?); + """, + [blockHash, setHash, groupId, timestamp], + ); + final setId = db.lastInsertRowId; + + for (final coin in coins) { + int coinId; + try { + // try to insert and get row id + db.execute( + """ + INSERT INTO SparkCoin (serialized, txHash, context) + VALUES (?, ?, ?); + """, + coin, + ); + coinId = db.lastInsertRowId; + } on SqliteException catch (e) { + // if there already is a matching coin in the db + // just grab its row id + if (e.extendedResultCode == 2067) { + final result = db.select( + """ + SELECT id + FROM SparkCoin + WHERE serialized = ? AND txHash = ? AND context = ?; + """, + coin, + ); + coinId = result.first["id"] as int; + } else { + rethrow; + } + } + + // finally add the row id to the newly added set + db.execute( + """ + INSERT INTO SparkSetCoins (setId, coinId) + VALUES (?, ?); + """, + [setId, coinId], + ); + } + + db.execute("COMMIT;"); + + return FCResult(success: true); + } catch (e) { + db.execute("ROLLBACK;"); + return FCResult(success: false, error: e); + } +} From 676ab60c6ff326e0bb3b5b189c89c698312b8107 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 31 May 2024 16:54:32 -0600 Subject: [PATCH 172/318] show loading and ensure desktop password functions aren't doubled called with a lock --- .../password/create_password_view.dart | 68 ++++++++++------ .../settings_menu/security_settings.dart | 79 ++++++++++--------- 2 files changed, 85 insertions(+), 62 deletions(-) diff --git a/lib/pages_desktop_specific/password/create_password_view.dart b/lib/pages_desktop_specific/password/create_password_view.dart index 5f318a1bc..558be3077 100644 --- a/lib/pages_desktop_specific/password/create_password_view.dart +++ b/lib/pages_desktop_specific/password/create_password_view.dart @@ -23,6 +23,7 @@ import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; import '../../utilities/constants.dart'; import '../../utilities/flutter_secure_storage_interface.dart'; +import '../../utilities/show_loading.dart'; import '../../utilities/text_styles.dart'; import '../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../widgets/desktop/desktop_app_bar.dart'; @@ -68,12 +69,7 @@ class _CreatePasswordViewState extends ConsumerState { bool _nextLock = false; - void onNextPressed() async { - if (_nextLock) { - return; - } - _nextLock = true; - + Future _onNextPressed() async { final String passphrase = passwordController.text; final String repeatPassphrase = passwordRepeatController.text; @@ -85,7 +81,6 @@ class _CreatePasswordViewState extends ConsumerState { context: context, ), ); - _nextLock = false; return; } if (passphrase != repeatPassphrase) { @@ -96,19 +91,31 @@ class _CreatePasswordViewState extends ConsumerState { context: context, ), ); - _nextLock = false; return; } try { - if (await ref.read(storageCryptoHandlerProvider).hasPassword()) { - throw Exception( - "Tried creating a new password and attempted to overwrite an existing entry!", - ); + whileFuture() async { + if (await ref.read(storageCryptoHandlerProvider).hasPassword()) { + throw Exception( + "Tried creating a new password and attempted to overwrite an existing entry!", + ); + } + + await ref.read(storageCryptoHandlerProvider).initFromNew(passphrase); + await (ref.read(secureStoreProvider).store as DesktopSecureStore) + .init(); } - await ref.read(storageCryptoHandlerProvider).initFromNew(passphrase); - await (ref.read(secureStoreProvider).store as DesktopSecureStore).init(); + await showLoading( + whileFuture: whileFuture(), + context: context, + message: "Initializing...", + rootNavigator: true, + onException: (e) { + throw e; + }, + ); // load default nodes now as node service requires storage handler to exist @@ -116,14 +123,15 @@ class _CreatePasswordViewState extends ConsumerState { await ref.read(nodeServiceChangeNotifierProvider).updateDefaults(); } } catch (e) { - unawaited( - showFloatingFlushBar( - type: FlushBarType.warning, - message: "Error: $e", - context: context, - ), - ); - _nextLock = false; + if (mounted) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Error: $e", + context: context, + ), + ); + } return; } @@ -152,7 +160,19 @@ class _CreatePasswordViewState extends ConsumerState { ), ); } - _nextLock = false; + } + + void _onNextPressedWrapper() async { + if (_nextLock) { + return; + } + _nextLock = true; + + try { + await _onNextPressed(); + } finally { + _nextLock = false; + } } @override @@ -464,7 +484,7 @@ class _CreatePasswordViewState extends ConsumerState { : Theme.of(context) .extension()! .getPrimaryDisabledButtonStyle(context), - onPressed: nextEnabled ? onNextPressed : null, + onPressed: nextEnabled ? _onNextPressedWrapper : null, child: Text( "Next", style: nextEnabled diff --git a/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart index 190740b3f..3b227f1d3 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/security_settings.dart @@ -21,6 +21,7 @@ import '../../../providers/desktop/storage_crypto_handler_provider.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/constants.dart'; +import '../../../utilities/show_loading.dart'; import '../../../utilities/text_styles.dart'; import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/progress_bar.dart'; @@ -62,7 +63,8 @@ class _SecuritySettings extends ConsumerState { String passwordFeedback = "Add another word or two. Uncommon words are better. Use a few words, avoid common phrases. No need for symbols, digits, or uppercase letters."; - Future attemptChangePW() async { + bool _changePWLock = false; + Future<(bool, FlushBarType, String)> _attemptChangePW() async { final String pw = passwordCurrentController.text; final String pwNew = passwordController.text; final String pwNewRepeat = passwordRepeatController.text; @@ -74,14 +76,7 @@ class _SecuritySettings extends ConsumerState { if (pwNew != pwNewRepeat) { await Future.delayed(const Duration(seconds: 1)); - unawaited( - showFloatingFlushBar( - type: FlushBarType.warning, - message: "New passphrase does not match!", - context: context, - ), - ); - return false; + return (false, FlushBarType.warning, "New passphrase does not match!"); } else { final success = await ref.read(storageCryptoHandlerProvider).changePassphrase( @@ -92,38 +87,21 @@ class _SecuritySettings extends ConsumerState { if (success) { await Future.delayed(const Duration(seconds: 1)); - unawaited( - showFloatingFlushBar( - type: FlushBarType.success, - message: "Passphrase successfully changed", - context: context, - ), + return ( + true, + FlushBarType.success, + "Passphrase successfully changed" ); - return true; } else { await Future.delayed(const Duration(seconds: 1)); - unawaited( - showFloatingFlushBar( - type: FlushBarType.warning, - message: "Passphrase change failed", - context: context, - ), - ); - return false; + return (false, FlushBarType.warning, "Passphrase change failed"); } } } else { await Future.delayed(const Duration(seconds: 1)); - unawaited( - showFloatingFlushBar( - type: FlushBarType.warning, - message: "Current passphrase is not valid!", - context: context, - ), - ); - return false; + return (false, FlushBarType.warning, "Current passphrase is not valid!"); } } @@ -522,12 +500,37 @@ class _SecuritySettings extends ConsumerState { enabled: shouldEnableSave, label: "Save changes", onPressed: () async { - final didChangePW = - await attemptChangePW(); - if (didChangePW) { - setState(() { - changePassword = false; - }); + if (_changePWLock) { + return; + } + _changePWLock = true; + + try { + final (didChangePW, type, message) = + (await showLoading( + whileFuture: _attemptChangePW(), + context: context, + message: "Updating...", + rootNavigator: true, + ))!; + + if (mounted) { + unawaited( + showFloatingFlushBar( + type: type, + message: message, + context: context, + ), + ); + } + + if (didChangePW == true) { + setState(() { + changePassword = false; + }); + } + } finally { + _changePWLock = false; } }, ), From 39d571e94c80aea92fd059edfd884bcb0ea15341 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 3 Jun 2024 13:35:08 -0600 Subject: [PATCH 173/318] consistent scripts --- scripts/android/build_all.sh | 2 +- scripts/android/build_all_duo.sh | 10 +++++----- scripts/ios/build_all.sh | 10 +++++----- scripts/ios/build_all_duo.sh | 10 +++++----- scripts/linux/build_all_duo.sh | 8 ++++---- scripts/macos/build_all.sh | 2 +- scripts/macos/build_all_duo.sh | 10 +++++----- scripts/windows/build_all_duo.sh | 6 +++--- 8 files changed, 29 insertions(+), 29 deletions(-) diff --git a/scripts/android/build_all.sh b/scripts/android/build_all.sh index 715adbebb..7cb2e083d 100755 --- a/scripts/android/build_all.sh +++ b/scripts/android/build_all.sh @@ -14,7 +14,7 @@ PLUGINS_DIR=../../crypto_plugins (cd "${PLUGINS_DIR}"/flutter_liblelantus/scripts/android && ./build_all.sh ) (cd "${PLUGINS_DIR}"/flutter_libepiccash/scripts/android && ./build_all.sh ) -(cd "${PLUGINS_DIR}"/flutter_libmonero/scripts/android/ && ./build_all.sh ) +(cd "${PLUGINS_DIR}"/flutter_libmonero/scripts/android/ && ./build_all.sh ) set_rust_to_1720 (cd "${PLUGINS_DIR}"/frostdart/scripts/android && ./build_all.sh ) diff --git a/scripts/android/build_all_duo.sh b/scripts/android/build_all_duo.sh index bca175541..aec2ebbb3 100755 --- a/scripts/android/build_all_duo.sh +++ b/scripts/android/build_all_duo.sh @@ -14,11 +14,11 @@ mkdir -p build PLUGINS_DIR=../../crypto_plugins -(cd "${PLUGINS_DIR}"/flutter_liblelantus/scripts/android && ./build_all.sh ) & -(cd "${PLUGINS_DIR}"/flutter_libepiccash/scripts/android && ./build_all.sh ) & -(cd "${PLUGINS_DIR}"/flutter_libmonero/scripts/android/ && ./build_all.sh ) && -set_rust_to_1720 && -(cd "${PLUGINS_DIR}"/frostdart/scripts/android && ./build_all.sh ) & +(cd "${PLUGINS_DIR}"/flutter_liblelantus/scripts/android && ./build_all.sh ) +(cd "${PLUGINS_DIR}"/flutter_libepiccash/scripts/android && ./build_all.sh ) +(cd "${PLUGINS_DIR}"/flutter_libmonero/scripts/android/ && ./build_all.sh ) +set_rust_to_1720 +(cd "${PLUGINS_DIR}"/frostdart/scripts/android && ./build_all.sh ) wait echo "Done building" diff --git a/scripts/ios/build_all.sh b/scripts/ios/build_all.sh index 595d6aba1..b34724561 100755 --- a/scripts/ios/build_all.sh +++ b/scripts/ios/build_all.sh @@ -14,11 +14,11 @@ rustup target add x86_64-apple-ios rustup target add aarch64-apple-ios rustup target add x86_64-apple-ios -(cd ../../crypto_plugins/flutter_liblelantus/scripts/ios && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libepiccash/scripts/ios && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libmonero/scripts/ios/ && ./build_all.sh ) && -set_rust_to_1720 && -(cd ../../crypto_plugins/frostdart/scripts/ios && ./build_all.sh ) & +(cd ../../crypto_plugins/flutter_liblelantus/scripts/ios && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libepiccash/scripts/ios && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libmonero/scripts/ios/ && ./build_all.sh ) +set_rust_to_1720 +(cd ../../crypto_plugins/frostdart/scripts/ios && ./build_all.sh ) wait echo "Done building" diff --git a/scripts/ios/build_all_duo.sh b/scripts/ios/build_all_duo.sh index c16884680..387f85f81 100755 --- a/scripts/ios/build_all_duo.sh +++ b/scripts/ios/build_all_duo.sh @@ -16,11 +16,11 @@ rustup target add x86_64-apple-ios rustup target add aarch64-apple-ios rustup target add x86_64-apple-ios -(cd ../../crypto_plugins/flutter_liblelantus/scripts/ios && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libepiccash/scripts/ios && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libmonero/scripts/ios/ && ./build_all.sh ) && -set_rust_to_1720 && -(cd ../../crypto_plugins/frostdart/scripts/ios && ./build_all.sh ) & +(cd ../../crypto_plugins/flutter_liblelantus/scripts/ios && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libepiccash/scripts/ios && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libmonero/scripts/ios/ && ./build_all.sh ) +set_rust_to_1720 +(cd ../../crypto_plugins/frostdart/scripts/ios && ./build_all.sh ) wait echo "Done building" diff --git a/scripts/linux/build_all_duo.sh b/scripts/linux/build_all_duo.sh index 77ccdf592..e7397bdc5 100755 --- a/scripts/linux/build_all_duo.sh +++ b/scripts/linux/build_all_duo.sh @@ -14,11 +14,11 @@ set_rust_to_1671 # flutter-elinux build linux --dart-define="IS_ARM=true" mkdir -p build ./build_secure_storage_deps.sh & -(cd ../../crypto_plugins/flutter_liblelantus/scripts/linux && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libepiccash/scripts/linux && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libmonero/scripts/linux && ./build_monero_all.sh && ./build_sharedfile.sh ) +(cd ../../crypto_plugins/flutter_liblelantus/scripts/linux && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libepiccash/scripts/linux && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libmonero/scripts/linux && ./build_all.sh ) set_rust_to_1720 -(cd ../../crypto_plugins/frostdart/scripts/linux && ./build_all.sh ) & +(cd ../../crypto_plugins/frostdart/scripts/linux && ./build_all.sh ) ./build_secp256k1.sh diff --git a/scripts/macos/build_all.sh b/scripts/macos/build_all.sh index 56c3a76ab..e3a58b45f 100755 --- a/scripts/macos/build_all.sh +++ b/scripts/macos/build_all.sh @@ -8,7 +8,7 @@ set_rust_to_1671 (cd ../../crypto_plugins/flutter_liblelantus/scripts/macos && ./build_all.sh ) (cd ../../crypto_plugins/flutter_libepiccash/scripts/macos && ./build_all.sh ) -(cd ../../crypto_plugins/flutter_libmonero/scripts/macos/ && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libmonero/scripts/macos/ && ./build_all.sh ) set_rust_to_1720 (cd ../../crypto_plugins/frostdart/scripts/macos && ./build_all.sh ) diff --git a/scripts/macos/build_all_duo.sh b/scripts/macos/build_all_duo.sh index f5cfbeeb1..6f70f4371 100755 --- a/scripts/macos/build_all_duo.sh +++ b/scripts/macos/build_all_duo.sh @@ -8,11 +8,11 @@ set -x -e source ../rust_version.sh set_rust_to_1671 -(cd ../../crypto_plugins/flutter_liblelantus/scripts/macos && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libepiccash/scripts/macos && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_libmonero/scripts/macos/ && ./build_all.sh ) && -set_rust_to_1720 && -(cd ../../crypto_plugins/frostdart/scripts/macos && ./build_all.sh ) & +(cd ../../crypto_plugins/flutter_liblelantus/scripts/macos && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libepiccash/scripts/macos && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libmonero/scripts/macos/ && ./build_all.sh ) +set_rust_to_1720 +(cd ../../crypto_plugins/frostdart/scripts/macos && ./build_all.sh ) wait echo "Done building" diff --git a/scripts/windows/build_all_duo.sh b/scripts/windows/build_all_duo.sh index 6262793dd..80303f28b 100755 --- a/scripts/windows/build_all_duo.sh +++ b/scripts/windows/build_all_duo.sh @@ -9,11 +9,11 @@ source ../rust_version.sh set_rust_to_1671 mkdir -p build -(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./build_all.sh ) & -(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./build_all.sh ) & +(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./build_all.sh ) (cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./build_all.sh) set_rust_to_1720 -(cd ../../crypto_plugins/frostdart/scripts/windows && ./build_all.sh ) & +(cd ../../crypto_plugins/frostdart/scripts/windows && ./build_all.sh ) ./build_secp256k1_wsl.sh From c3e604472bf7a731f8e1be0e02e040427c2c2880 Mon Sep 17 00:00:00 2001 From: Julian Date: Mon, 3 Jun 2024 14:23:17 -0600 Subject: [PATCH 174/318] sqlite macos --- macos/Podfile.lock | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 04bb85e54..f7100bab5 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -34,6 +34,21 @@ PODS: - ReachabilitySwift (5.0.0) - share_plus (0.0.1): - FlutterMacOS + - sqlite3 (3.46.0): + - sqlite3/common (= 3.46.0) + - sqlite3/common (3.46.0) + - sqlite3/fts5 (3.46.0): + - sqlite3/common + - sqlite3/perf-threadsafe (3.46.0): + - sqlite3/common + - sqlite3/rtree (3.46.0): + - sqlite3/common + - sqlite3_flutter_libs (0.0.1): + - FlutterMacOS + - sqlite3 (~> 3.46.0) + - sqlite3/fts5 + - sqlite3/perf-threadsafe + - sqlite3/rtree - stack_wallet_backup (0.0.1): - FlutterMacOS - tor_ffi_plugin (0.0.1) @@ -61,6 +76,7 @@ DEPENDENCIES: - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`) - share_plus (from `Flutter/ephemeral/.symlinks/plugins/share_plus/macos`) + - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos`) - stack_wallet_backup (from `Flutter/ephemeral/.symlinks/plugins/stack_wallet_backup/macos`) - tor_ffi_plugin (from `Flutter/ephemeral/.symlinks/plugins/tor_ffi_plugin/macos`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) @@ -70,6 +86,7 @@ DEPENDENCIES: SPEC REPOS: trunk: - ReachabilitySwift + - sqlite3 EXTERNAL SOURCES: coinlib_flutter: @@ -104,6 +121,8 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin share_plus: :path: Flutter/ephemeral/.symlinks/plugins/share_plus/macos + sqlite3_flutter_libs: + :path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos stack_wallet_backup: :path: Flutter/ephemeral/.symlinks/plugins/stack_wallet_backup/macos tor_ffi_plugin: @@ -133,6 +152,8 @@ SPEC CHECKSUMS: path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 share_plus: 76dd39142738f7a68dd57b05093b5e8193f220f7 + sqlite3: 154b084339ede06960a5b3c8160066adc9176b7d + sqlite3_flutter_libs: 1be4459672f8168ded2d8667599b8e3ca5e72b83 stack_wallet_backup: 6ebc60b1bdcf11cf1f1cbad9aa78332e1e15778c tor_ffi_plugin: 2566c1ed174688cca560fa0c64b7a799c66f07cb url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 From 3e116a50e49770cb0b25ed7800d17bb5c17eb9df Mon Sep 17 00:00:00 2001 From: Julian Date: Mon, 3 Jun 2024 14:23:55 -0600 Subject: [PATCH 175/318] override low uptime git package url --- pubspec.lock | 2 +- scripts/app_config/templates/pubspec.template | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index ccd30906c..68029cb28 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1199,7 +1199,7 @@ packages: path: "." ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac" resolved-ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac" - url: "https://git.mrcyjanek.net/mrcyjanek/monero.dart" + url: "https://www.github.com/mrcyjanek/monero.dart" source: git version: "0.0.0" mutex: diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index c9e284ce9..43a82bae6 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -49,7 +49,7 @@ dependencies: monero: git: - url: https://git.mrcyjanek.net/mrcyjanek/monero.dart + url: https://www.github.com/mrcyjanek/monero.dart ref: 6a17a405a1a260fa228b2f4fc94044088a4335ac flutter_libepiccash: @@ -211,6 +211,11 @@ flutter_native_splash: dependency_overrides: + monero: + git: + url: https://www.github.com/mrcyjanek/monero.dart + ref: 6a17a405a1a260fa228b2f4fc94044088a4335ac + bip47: git: url: https://github.com/cypherstack/bip47.git From 3b3448d12cea3d5c48e052ffce7f46fc7e17428c Mon Sep 17 00:00:00 2001 From: Julian Date: Mon, 3 Jun 2024 14:50:16 -0600 Subject: [PATCH 176/318] ecash default server fix/update --- lib/wallets/crypto_currency/coins/ecash.dart | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/wallets/crypto_currency/coins/ecash.dart b/lib/wallets/crypto_currency/coins/ecash.dart index f20b9a52c..593bb34f5 100644 --- a/lib/wallets/crypto_currency/coins/ecash.dart +++ b/lib/wallets/crypto_currency/coins/ecash.dart @@ -282,10 +282,8 @@ class Ecash extends Bip39HDCurrency with ElectrumXCurrencyInterface { switch (network) { case CryptoCurrencyNetwork.main: return NodeModel( - // host: "ecash.stackwallet.com", - // port: 59002, - host: "electrum.bitcoinabc.org", - port: 50002, + host: "ecash.stackwallet.com", + port: 59002, name: DefaultNodes.defaultName, id: DefaultNodes.buildId(this), useSSL: true, From c3a2e19890b7039cad504cec71de074afb88bd2e Mon Sep 17 00:00:00 2001 From: Julian Date: Mon, 3 Jun 2024 15:16:23 -0600 Subject: [PATCH 177/318] ios pod lock for reference --- ios/Podfile.lock | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 198e44f2d..cff46cb7b 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -83,6 +83,21 @@ PODS: - SDWebImage/Core (5.13.2) - share_plus (0.0.1): - Flutter + - sqlite3 (3.46.0): + - sqlite3/common (= 3.46.0) + - sqlite3/common (3.46.0) + - sqlite3/fts5 (3.46.0): + - sqlite3/common + - sqlite3/perf-threadsafe (3.46.0): + - sqlite3/common + - sqlite3/rtree (3.46.0): + - sqlite3/common + - sqlite3_flutter_libs (0.0.1): + - Flutter + - sqlite3 (~> 3.46.0) + - sqlite3/fts5 + - sqlite3/perf-threadsafe + - sqlite3/rtree - stack_wallet_backup (0.0.1): - Flutter - SwiftProtobuf (1.19.0) @@ -117,6 +132,7 @@ DEPENDENCIES: - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`) + - sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/ios`) - stack_wallet_backup (from `.symlinks/plugins/stack_wallet_backup/ios`) - tor_ffi_plugin (from `.symlinks/plugins/tor_ffi_plugin/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) @@ -129,6 +145,7 @@ SPEC REPOS: - MTBBarcodeScanner - ReachabilitySwift - SDWebImage + - sqlite3 - SwiftProtobuf - SwiftyGif @@ -177,6 +194,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/permission_handler_apple/ios" share_plus: :path: ".symlinks/plugins/share_plus/ios" + sqlite3_flutter_libs: + :path: ".symlinks/plugins/sqlite3_flutter_libs/ios" stack_wallet_backup: :path: ".symlinks/plugins/stack_wallet_backup/ios" tor_ffi_plugin: @@ -203,7 +222,7 @@ SPEC CHECKSUMS: flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be frostdart: 4c72b69ccac2f13ede744107db046a125acce597 - integration_test: ce0a3ffa1de96d1a89ca0ac26fca7ea18a749ef4 + integration_test: 13825b8a9334a850581300559b8839134b124670 isar_flutter_libs: b69f437aeab9c521821c3f376198c4371fa21073 lelantus: 417f0221260013dfc052cae9cf4b741b6479edba local_auth: 1740f55d7af0a2e2a8684ce225fe79d8931e808c @@ -214,6 +233,8 @@ SPEC CHECKSUMS: ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 SDWebImage: 72f86271a6f3139cc7e4a89220946489d4b9a866 share_plus: 599aa54e4ea31d4b4c0e9c911bcc26c55e791028 + sqlite3: 154b084339ede06960a5b3c8160066adc9176b7d + sqlite3_flutter_libs: 0d611efdf6d1c9297d5ab03dab21b75aeebdae31 stack_wallet_backup: 5b8563aba5d8ffbf2ce1944331ff7294a0ec7c03 SwiftProtobuf: 6ef3f0e422ef90d6605ca20b21a94f6c1324d6b3 SwiftyGif: 6c3eafd0ce693cad58bb63d2b2fb9bacb8552780 From 671e6324028bdc54dfc3731e68dce135c21eef05 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 3 Jun 2024 15:17:43 -0600 Subject: [PATCH 178/318] wallet order --- scripts/app_config/configure_stack_wallet.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/app_config/configure_stack_wallet.sh b/scripts/app_config/configure_stack_wallet.sh index cd0b463b5..dc43feb4a 100755 --- a/scripts/app_config/configure_stack_wallet.sh +++ b/scripts/app_config/configure_stack_wallet.sh @@ -44,24 +44,24 @@ const ({String light, String dark})? _appIconAsset = null; final List _supportedCoins = List.unmodifiable([ Bitcoin(CryptoCurrencyNetwork.main), - BitcoinFrost(CryptoCurrencyNetwork.main), - Litecoin(CryptoCurrencyNetwork.main), + Monero(CryptoCurrencyNetwork.main), + Banano(CryptoCurrencyNetwork.main), Bitcoincash(CryptoCurrencyNetwork.main), + BitcoinFrost(CryptoCurrencyNetwork.main), Dogecoin(CryptoCurrencyNetwork.main), - Epiccash(CryptoCurrencyNetwork.main), Ecash(CryptoCurrencyNetwork.main), + Epiccash(CryptoCurrencyNetwork.main), Ethereum(CryptoCurrencyNetwork.main), Firo(CryptoCurrencyNetwork.main), - Monero(CryptoCurrencyNetwork.main), + Litecoin(CryptoCurrencyNetwork.main), + Nano(CryptoCurrencyNetwork.main), + Namecoin(CryptoCurrencyNetwork.main), Particl(CryptoCurrencyNetwork.main), Peercoin(CryptoCurrencyNetwork.main), Solana(CryptoCurrencyNetwork.main), Stellar(CryptoCurrencyNetwork.main), Tezos(CryptoCurrencyNetwork.main), Wownero(CryptoCurrencyNetwork.main), - Namecoin(CryptoCurrencyNetwork.main), - Nano(CryptoCurrencyNetwork.main), - Banano(CryptoCurrencyNetwork.main), Bitcoin(CryptoCurrencyNetwork.test), BitcoinFrost(CryptoCurrencyNetwork.test), Litecoin(CryptoCurrencyNetwork.test), From 8430cc92bd95ed71bc42416b99f9a93fb3c0df07 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 3 Jun 2024 16:36:50 -0600 Subject: [PATCH 179/318] reset coin control selected utxos on desktop --- .../my_stack_view/wallet_view/desktop_wallet_view.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart index a8160899f..3be835d0b 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart @@ -48,6 +48,7 @@ import '../../../widgets/desktop/desktop_app_bar.dart'; import '../../../widgets/desktop/desktop_scaffold.dart'; import '../../../widgets/hover_text_field.dart'; import '../../../widgets/rounded_white_container.dart'; +import '../../coin_control/desktop_coin_control_use_dialog.dart'; import 'sub_widgets/desktop_wallet_features.dart'; import 'sub_widgets/desktop_wallet_summary.dart'; import 'sub_widgets/my_wallet.dart'; @@ -134,7 +135,10 @@ class _DesktopWalletViewState extends ConsumerState { widget.eventBus != null ? widget.eventBus! : GlobalEventBus.instance; WidgetsBinding.instance.addPostFrameCallback( - (_) => ref.read(currentWalletIdProvider.notifier).state = wallet.walletId, + (_) { + ref.read(currentWalletIdProvider.notifier).state = wallet.walletId; + ref.read(desktopUseUTXOs.notifier).state = {}; + }, ); if (!wallet.shouldAutoSync) { From cba62243bb2930072a1290dcc77f23d04f1bb37e Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 4 Jun 2024 02:52:44 -0500 Subject: [PATCH 180/318] use flutter_file_picker 8.0.3 + muttsu_623's Android patch you may still need to `dos2unix scripts/windows/build_all.sh` as necessary --- scripts/app_config/templates/pubspec.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index a77535133..9e086eb28 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -236,8 +236,8 @@ dependency_overrides: file_picker: git: - url: https://github.com/muttsu-623/flutter_file_picker.git - ref: f0930d9fa79d347b2a0e25a7de4f5a4a88a9a907 + url: https://github.com/cypherstack/flutter_file_picker.git + ref: 9abc0930081c9859884e073bd25ab88b2114d9e7 crypto: 3.0.2 analyzer: ^5.2.0 From 05503b04705619ae200be882123d3e7d7b3c4aa4 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 4 Jun 2024 09:16:57 -0600 Subject: [PATCH 181/318] fix wow connection --- .../add_edit_node_view.dart | 15 +++++++++--- .../test_monero_node_connection.dart | 5 ++-- lib/wallets/wallet/impl/monero_wallet.dart | 2 ++ lib/wallets/wallet/impl/wownero_wallet.dart | 2 ++ pubspec.lock | 24 +++++++++---------- 5 files changed, 31 insertions(+), 17 deletions(-) diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart index 4ccaa47bf..478440c99 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart @@ -29,6 +29,7 @@ import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../wallets/crypto_currency/intermediate/cryptonote_currency.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; import '../../../../widgets/background.dart'; import '../../../../widgets/conditional_parent.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; @@ -221,7 +222,7 @@ class _AddEditNodeViewState extends ConsumerState { // strip unused path String address = formData.host!; - if (coin is Monero || coin is Wownero) { + if (coin is CwBasedInterface) { if (address.startsWith("http")) { final uri = Uri.parse(address); address = "${uri.scheme}://${uri.host}"; @@ -332,7 +333,7 @@ class _AddEditNodeViewState extends ConsumerState { FocusScope.of(context).unfocus(); await Future.delayed(const Duration(milliseconds: 75)); } - if (mounted) { + if (context.mounted) { Navigator.of(context).pop(); } }, @@ -836,6 +837,14 @@ class _NodeFormState extends ConsumerState { } else { enableSSLCheckbox = true; } + } else if (widget.coin is CwBasedInterface) { + if (newValue.startsWith("https://")) { + _useSSL = true; + } else if (newValue.startsWith("http://")) { + _useSSL = false; + } else { + _useSSL = true; + } } _updateState(); setState(() {}); @@ -1043,7 +1052,7 @@ class _NodeFormState extends ConsumerState { ), ], ), - if (widget.coin is Monero || widget.coin is Wownero) + if (widget.coin is CwBasedInterface) Row( children: [ GestureDetector( diff --git a/lib/utilities/test_monero_node_connection.dart b/lib/utilities/test_monero_node_connection.dart index d6fe05cd5..bc9c95a69 100644 --- a/lib/utilities/test_monero_node_connection.dart +++ b/lib/utilities/test_monero_node_connection.dart @@ -12,11 +12,12 @@ import 'dart:convert'; import 'dart:io'; import 'package:flutter/material.dart'; -import 'format.dart'; -import 'logger.dart'; + import '../widgets/desktop/primary_button.dart'; import '../widgets/desktop/secondary_button.dart'; import '../widgets/stack_dialog.dart'; +import 'format.dart'; +import 'logger.dart'; class MoneroNodeConnectionResponse { final X509Certificate? cert; diff --git a/lib/wallets/wallet/impl/monero_wallet.dart b/lib/wallets/wallet/impl/monero_wallet.dart index 757c553f1..71dc2e238 100644 --- a/lib/wallets/wallet/impl/monero_wallet.dart +++ b/lib/wallets/wallet/impl/monero_wallet.dart @@ -201,6 +201,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { uri: "$host:${node.port}", type: WalletType.monero, trusted: node.trusted ?? false, + useSSL: node.useSSL, ), socksProxyAddress: proxy == null ? null : "${proxy.host.address}:${proxy.port}", @@ -212,6 +213,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { uri: "$host:${node.port}", type: WalletType.monero, trusted: node.trusted ?? false, + useSSL: node.useSSL, ), socksProxyAddress: proxy == null ? null : "${proxy.host.address}:${proxy.port}", diff --git a/lib/wallets/wallet/impl/wownero_wallet.dart b/lib/wallets/wallet/impl/wownero_wallet.dart index 847b8b811..e8d8c3646 100644 --- a/lib/wallets/wallet/impl/wownero_wallet.dart +++ b/lib/wallets/wallet/impl/wownero_wallet.dart @@ -190,6 +190,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { uri: "$host:${node.port}", type: WalletType.wownero, trusted: node.trusted ?? false, + useSSL: node.useSSL, ), socksProxyAddress: proxy == null ? null : "${proxy.host.address}:${proxy.port}", @@ -201,6 +202,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { uri: "$host:${node.port}", type: WalletType.wownero, trusted: node.trusted ?? false, + useSSL: node.useSSL, ), socksProxyAddress: proxy == null ? null : "${proxy.host.address}:${proxy.port}", diff --git a/pubspec.lock b/pubspec.lock index 68029cb28..47dc7ef13 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -346,10 +346,10 @@ packages: dependency: transitive description: name: cross_file - sha256: fd832b5384d0d6da4f6df60b854d33accaaeb63aa9e10e736a87381f08dee2cb + sha256: "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32" url: "https://pub.dev" source: hosted - version: "0.3.3+5" + version: "0.3.4+1" crypto: dependency: "direct main" description: @@ -616,11 +616,11 @@ packages: dependency: "direct main" description: path: "." - ref: f0930d9fa79d347b2a0e25a7de4f5a4a88a9a907 - resolved-ref: f0930d9fa79d347b2a0e25a7de4f5a4a88a9a907 - url: "https://github.com/muttsu-623/flutter_file_picker.git" + ref: "9abc0930081c9859884e073bd25ab88b2114d9e7" + resolved-ref: "9abc0930081c9859884e073bd25ab88b2114d9e7" + url: "https://github.com/cypherstack/flutter_file_picker.git" source: git - version: "5.3.3" + version: "8.0.3" fixnum: dependency: transitive description: @@ -746,10 +746,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: f185ac890306b5779ecbd611f52502d8d4d63d27703ef73161ca0407e815f02c + sha256: "8cf40eebf5dec866a6d1956ad7b4f7016e6c0cc69847ab946833b7d43743809f" url: "https://pub.dev" source: hosted - version: "2.0.16" + version: "2.0.19" flutter_riverpod: dependency: "direct main" description: @@ -1390,10 +1390,10 @@ packages: dependency: transitive description: name: plugin_platform_interface - sha256: da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.6" + version: "2.1.8" pointycastle: dependency: "direct main" description: @@ -2065,10 +2065,10 @@ packages: dependency: transitive description: name: win32 - sha256: c97defd418eef4ec88c0d1652cdce84b9f7b63dd7198e266d06ac1710d527067 + sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" url: "https://pub.dev" source: hosted - version: "5.0.8" + version: "5.2.0" win32_registry: dependency: transitive description: From 5eb276b6fcc77ca2eb05230fc5cd31ace0d42d16 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 4 Jun 2024 09:16:57 -0600 Subject: [PATCH 182/318] fix wow connection --- .../add_edit_node_view.dart | 15 +++++++++--- .../test_monero_node_connection.dart | 5 ++-- lib/wallets/wallet/impl/monero_wallet.dart | 2 ++ lib/wallets/wallet/impl/wownero_wallet.dart | 2 ++ pubspec.lock | 24 +++++++++---------- 5 files changed, 31 insertions(+), 17 deletions(-) diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart index 4ccaa47bf..478440c99 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart @@ -29,6 +29,7 @@ import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../wallets/crypto_currency/intermediate/cryptonote_currency.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/cw_based_interface.dart'; import '../../../../widgets/background.dart'; import '../../../../widgets/conditional_parent.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; @@ -221,7 +222,7 @@ class _AddEditNodeViewState extends ConsumerState { // strip unused path String address = formData.host!; - if (coin is Monero || coin is Wownero) { + if (coin is CwBasedInterface) { if (address.startsWith("http")) { final uri = Uri.parse(address); address = "${uri.scheme}://${uri.host}"; @@ -332,7 +333,7 @@ class _AddEditNodeViewState extends ConsumerState { FocusScope.of(context).unfocus(); await Future.delayed(const Duration(milliseconds: 75)); } - if (mounted) { + if (context.mounted) { Navigator.of(context).pop(); } }, @@ -836,6 +837,14 @@ class _NodeFormState extends ConsumerState { } else { enableSSLCheckbox = true; } + } else if (widget.coin is CwBasedInterface) { + if (newValue.startsWith("https://")) { + _useSSL = true; + } else if (newValue.startsWith("http://")) { + _useSSL = false; + } else { + _useSSL = true; + } } _updateState(); setState(() {}); @@ -1043,7 +1052,7 @@ class _NodeFormState extends ConsumerState { ), ], ), - if (widget.coin is Monero || widget.coin is Wownero) + if (widget.coin is CwBasedInterface) Row( children: [ GestureDetector( diff --git a/lib/utilities/test_monero_node_connection.dart b/lib/utilities/test_monero_node_connection.dart index d6fe05cd5..bc9c95a69 100644 --- a/lib/utilities/test_monero_node_connection.dart +++ b/lib/utilities/test_monero_node_connection.dart @@ -12,11 +12,12 @@ import 'dart:convert'; import 'dart:io'; import 'package:flutter/material.dart'; -import 'format.dart'; -import 'logger.dart'; + import '../widgets/desktop/primary_button.dart'; import '../widgets/desktop/secondary_button.dart'; import '../widgets/stack_dialog.dart'; +import 'format.dart'; +import 'logger.dart'; class MoneroNodeConnectionResponse { final X509Certificate? cert; diff --git a/lib/wallets/wallet/impl/monero_wallet.dart b/lib/wallets/wallet/impl/monero_wallet.dart index 757c553f1..71dc2e238 100644 --- a/lib/wallets/wallet/impl/monero_wallet.dart +++ b/lib/wallets/wallet/impl/monero_wallet.dart @@ -201,6 +201,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { uri: "$host:${node.port}", type: WalletType.monero, trusted: node.trusted ?? false, + useSSL: node.useSSL, ), socksProxyAddress: proxy == null ? null : "${proxy.host.address}:${proxy.port}", @@ -212,6 +213,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { uri: "$host:${node.port}", type: WalletType.monero, trusted: node.trusted ?? false, + useSSL: node.useSSL, ), socksProxyAddress: proxy == null ? null : "${proxy.host.address}:${proxy.port}", diff --git a/lib/wallets/wallet/impl/wownero_wallet.dart b/lib/wallets/wallet/impl/wownero_wallet.dart index 847b8b811..e8d8c3646 100644 --- a/lib/wallets/wallet/impl/wownero_wallet.dart +++ b/lib/wallets/wallet/impl/wownero_wallet.dart @@ -190,6 +190,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { uri: "$host:${node.port}", type: WalletType.wownero, trusted: node.trusted ?? false, + useSSL: node.useSSL, ), socksProxyAddress: proxy == null ? null : "${proxy.host.address}:${proxy.port}", @@ -201,6 +202,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { uri: "$host:${node.port}", type: WalletType.wownero, trusted: node.trusted ?? false, + useSSL: node.useSSL, ), socksProxyAddress: proxy == null ? null : "${proxy.host.address}:${proxy.port}", diff --git a/pubspec.lock b/pubspec.lock index e8c94e9a2..aac36a767 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -346,10 +346,10 @@ packages: dependency: transitive description: name: cross_file - sha256: fd832b5384d0d6da4f6df60b854d33accaaeb63aa9e10e736a87381f08dee2cb + sha256: "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32" url: "https://pub.dev" source: hosted - version: "0.3.3+5" + version: "0.3.4+1" crypto: dependency: "direct main" description: @@ -616,11 +616,11 @@ packages: dependency: "direct main" description: path: "." - ref: f0930d9fa79d347b2a0e25a7de4f5a4a88a9a907 - resolved-ref: f0930d9fa79d347b2a0e25a7de4f5a4a88a9a907 - url: "https://github.com/muttsu-623/flutter_file_picker.git" + ref: "9abc0930081c9859884e073bd25ab88b2114d9e7" + resolved-ref: "9abc0930081c9859884e073bd25ab88b2114d9e7" + url: "https://github.com/cypherstack/flutter_file_picker.git" source: git - version: "5.3.3" + version: "8.0.3" fixnum: dependency: transitive description: @@ -746,10 +746,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: f185ac890306b5779ecbd611f52502d8d4d63d27703ef73161ca0407e815f02c + sha256: "8cf40eebf5dec866a6d1956ad7b4f7016e6c0cc69847ab946833b7d43743809f" url: "https://pub.dev" source: hosted - version: "2.0.16" + version: "2.0.19" flutter_riverpod: dependency: "direct main" description: @@ -1390,10 +1390,10 @@ packages: dependency: transitive description: name: plugin_platform_interface - sha256: da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.6" + version: "2.1.8" pointycastle: dependency: "direct main" description: @@ -2049,10 +2049,10 @@ packages: dependency: transitive description: name: win32 - sha256: c97defd418eef4ec88c0d1652cdce84b9f7b63dd7198e266d06ac1710d527067 + sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" url: "https://pub.dev" source: hosted - version: "5.0.8" + version: "5.2.0" win32_registry: dependency: transitive description: From b7a4f7c29eb5d91bfa7426f80042c2e67d72d1fa Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 4 Jun 2024 09:40:45 -0600 Subject: [PATCH 183/318] fix initial xmr/wow address not showing up on first wallet open --- lib/wallets/wallet/impl/monero_wallet.dart | 12 ++++++++++++ lib/wallets/wallet/impl/wownero_wallet.dart | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/lib/wallets/wallet/impl/monero_wallet.dart b/lib/wallets/wallet/impl/monero_wallet.dart index 71dc2e238..9bcb4c3d7 100644 --- a/lib/wallets/wallet/impl/monero_wallet.dart +++ b/lib/wallets/wallet/impl/monero_wallet.dart @@ -126,6 +126,18 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { await updateNode(); + Address? currentAddress = await getCurrentReceivingAddress(); + if (currentAddress == null) { + currentAddress = addressFor(index: 0); + await mainDB.updateOrPutAddresses([currentAddress]); + } + if (info.cachedReceivingAddress != currentAddress.value) { + await info.updateReceivingAddress( + newAddress: currentAddress.value, + isar: mainDB.isar, + ); + } + await CwBasedInterface.cwWalletBase?.startSync(); unawaited(refresh()); autoSaveTimer?.cancel(); diff --git a/lib/wallets/wallet/impl/wownero_wallet.dart b/lib/wallets/wallet/impl/wownero_wallet.dart index e8d8c3646..ced514aa3 100644 --- a/lib/wallets/wallet/impl/wownero_wallet.dart +++ b/lib/wallets/wallet/impl/wownero_wallet.dart @@ -452,6 +452,18 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { await updateNode(); + Address? currentAddress = await getCurrentReceivingAddress(); + if (currentAddress == null) { + currentAddress = addressFor(index: 0); + await mainDB.updateOrPutAddresses([currentAddress]); + } + if (info.cachedReceivingAddress != currentAddress.value) { + await info.updateReceivingAddress( + newAddress: currentAddress.value, + isar: mainDB.isar, + ); + } + await (CwBasedInterface.cwWalletBase as WowneroWalletBase?)?.startSync(); unawaited(refresh()); autoSaveTimer?.cancel(); From 7cef4c45ebc43aefbc4f8f3ef0ba6d14ffea76c6 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 4 Jun 2024 09:40:45 -0600 Subject: [PATCH 184/318] fix initial xmr/wow address not showing up on first wallet open --- lib/wallets/wallet/impl/monero_wallet.dart | 12 ++++++++++++ lib/wallets/wallet/impl/wownero_wallet.dart | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/lib/wallets/wallet/impl/monero_wallet.dart b/lib/wallets/wallet/impl/monero_wallet.dart index 71dc2e238..9bcb4c3d7 100644 --- a/lib/wallets/wallet/impl/monero_wallet.dart +++ b/lib/wallets/wallet/impl/monero_wallet.dart @@ -126,6 +126,18 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface { await updateNode(); + Address? currentAddress = await getCurrentReceivingAddress(); + if (currentAddress == null) { + currentAddress = addressFor(index: 0); + await mainDB.updateOrPutAddresses([currentAddress]); + } + if (info.cachedReceivingAddress != currentAddress.value) { + await info.updateReceivingAddress( + newAddress: currentAddress.value, + isar: mainDB.isar, + ); + } + await CwBasedInterface.cwWalletBase?.startSync(); unawaited(refresh()); autoSaveTimer?.cancel(); diff --git a/lib/wallets/wallet/impl/wownero_wallet.dart b/lib/wallets/wallet/impl/wownero_wallet.dart index e8d8c3646..ced514aa3 100644 --- a/lib/wallets/wallet/impl/wownero_wallet.dart +++ b/lib/wallets/wallet/impl/wownero_wallet.dart @@ -452,6 +452,18 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { await updateNode(); + Address? currentAddress = await getCurrentReceivingAddress(); + if (currentAddress == null) { + currentAddress = addressFor(index: 0); + await mainDB.updateOrPutAddresses([currentAddress]); + } + if (info.cachedReceivingAddress != currentAddress.value) { + await info.updateReceivingAddress( + newAddress: currentAddress.value, + isar: mainDB.isar, + ); + } + await (CwBasedInterface.cwWalletBase as WowneroWalletBase?)?.startSync(); unawaited(refresh()); autoSaveTimer?.cancel(); From ed15482442b1e925e658eafc4e596bebcad2c59a Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 4 Jun 2024 10:08:37 -0600 Subject: [PATCH 185/318] enable experimental firo public funds coin control --- .../send_view/frost_ms/frost_send_view.dart | 6 +++++- lib/pages/send_view/send_view.dart | 7 ++++++- .../wallet_view/sub_widgets/desktop_send.dart | 17 ++++++++++++----- lib/wallets/wallet/impl/firo_wallet.dart | 7 ++++++- 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/lib/pages/send_view/frost_ms/frost_send_view.dart b/lib/pages/send_view/frost_ms/frost_send_view.dart index a5851977c..a150ac726 100644 --- a/lib/pages/send_view/frost_ms/frost_send_view.dart +++ b/lib/pages/send_view/frost_ms/frost_send_view.dart @@ -20,6 +20,7 @@ import '../../../frost_route_generator.dart'; import '../../../models/isar/models/isar_models.dart'; import '../../../providers/frost_wallet/frost_wallet_providers.dart'; import '../../../providers/providers.dart'; +import '../../../providers/wallet/public_private_balance_state_provider.dart'; import '../../../themes/coin_icon_provider.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/amount/amount.dart'; @@ -234,7 +235,10 @@ class _FrostSendViewState extends ConsumerState { prefsChangeNotifierProvider.select( (value) => value.enableCoinControl, ), - ); + ) && + (coin is Firo + ? ref.watch(publicPrivateBalanceStateProvider) == FiroType.public + : true); return ConditionalParent( condition: !Util.isDesktop, diff --git a/lib/pages/send_view/send_view.dart b/lib/pages/send_view/send_view.dart index 623962845..8d1f12c5d 100644 --- a/lib/pages/send_view/send_view.dart +++ b/lib/pages/send_view/send_view.dart @@ -998,10 +998,15 @@ class _SendViewState extends ConsumerState { prefsChangeNotifierProvider.select( (value) => value.enableCoinControl, ), - ); + ) && + (coin is Firo + ? ref.watch(publicPrivateBalanceStateProvider) == FiroType.public + : true); if (isFiro) { ref.listen(publicPrivateBalanceStateProvider, (previous, next) { + selectedUTXOs = {}; + if (ref.read(pSendAmount) == null) { setState(() { _calculateFeesFuture = calculateFees( diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart index 43f5eb557..6c7c28296 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart @@ -17,16 +17,13 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../../../models/isar/models/contact_entry.dart'; import '../../../../models/paynym/paynym_account_lite.dart'; import '../../../../models/send_view_auto_fill_data.dart'; import '../../../../pages/send_view/confirm_transaction_view.dart'; import '../../../../pages/send_view/sub_widgets/building_transaction_dialog.dart'; import '../../../../pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart'; -import '../../../coin_control/desktop_coin_control_use_dialog.dart'; -import '../../../desktop_home_view.dart'; -import 'address_book_address_chooser/address_book_address_chooser.dart'; -import 'desktop_fee_dropdown.dart'; import '../../../../providers/providers.dart'; import '../../../../providers/ui/fee_rate_type_state_provider.dart'; import '../../../../providers/ui/preview_tx_button_state_provider.dart'; @@ -70,6 +67,10 @@ import '../../../../widgets/icon_widgets/x_icon.dart'; import '../../../../widgets/rounded_container.dart'; import '../../../../widgets/stack_text_field.dart'; import '../../../../widgets/textfield_icon_button.dart'; +import '../../../coin_control/desktop_coin_control_use_dialog.dart'; +import '../../../desktop_home_view.dart'; +import 'address_book_address_chooser/address_book_address_chooser.dart'; +import 'desktop_fee_dropdown.dart'; class DesktopSend extends ConsumerStatefulWidget { const DesktopSend({ @@ -947,7 +948,10 @@ class _DesktopSendState extends ConsumerState { (value) => value.enableCoinControl, ), ) && - ref.watch(pWallets).getWallet(walletId) is CoinControlInterface; + ref.watch(pWallets).getWallet(walletId) is CoinControlInterface && + (coin is Firo + ? ref.watch(publicPrivateBalanceStateProvider) == FiroType.public + : true); return Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -1042,6 +1046,9 @@ class _DesktopSendState extends ConsumerState { ], onChanged: (value) { if (value is FiroType) { + if (value != FiroType.public) { + ref.read(desktopUseUTXOs.state).state = {}; + } setState(() { ref.read(publicPrivateBalanceStateProvider.state).state = value; diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index 3372e11bd..9359043be 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -21,6 +21,7 @@ import '../../isar/models/spark_coin.dart'; import '../../isar/models/wallet_info.dart'; import '../../models/tx_data.dart'; import '../intermediate/bip39_hd_wallet.dart'; +import '../wallet_mixin_interfaces/coin_control_interface.dart'; import '../wallet_mixin_interfaces/electrumx_interface.dart'; import '../wallet_mixin_interfaces/lelantus_interface.dart'; import '../wallet_mixin_interfaces/spark_interface.dart'; @@ -28,7 +29,11 @@ import '../wallet_mixin_interfaces/spark_interface.dart'; const sparkStartBlock = 819300; // (approx 18 Jan 2024) class FiroWallet extends Bip39HDWallet - with ElectrumXInterface, LelantusInterface, SparkInterface { + with + ElectrumXInterface, + LelantusInterface, + SparkInterface, + CoinControlInterface { // IMPORTANT: The order of the above mixins matters. // SparkInterface MUST come after LelantusInterface. From ed6a4f7c408ae400f6954c8604f8a0157ff029c9 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 4 Jun 2024 12:27:33 -0600 Subject: [PATCH 186/318] libmonero ref update --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index 81a4f74ea..4b87151d4 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit 81a4f74ea068d3d1026c8e564ee9b0b28cee20c4 +Subproject commit 4b87151d4914606b911f738a8236a6e54a6d8ecb From 8a6b45df7e94097463e3149f1428f0a000eb4661 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 4 Jun 2024 15:46:12 -0600 Subject: [PATCH 187/318] firo dbg bal display fix --- .../my_stack_view/wallet_view/desktop_wallet_view.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart index 3be835d0b..022c0640a 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart @@ -42,6 +42,7 @@ import '../../../utilities/text_styles.dart'; import '../../../utilities/wallet_tools.dart'; import '../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../wallets/wallet/impl/banano_wallet.dart'; +import '../../../wallets/wallet/impl/firo_wallet.dart'; import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../widgets/custom_buttons/blue_text_button.dart'; import '../../../widgets/desktop/desktop_app_bar.dart'; @@ -264,7 +265,8 @@ class _DesktopWalletViewState extends ConsumerState { ), ], ), - if (wallet.isarTransactionVersion == 2) + if (wallet.isarTransactionVersion == 2 && + wallet is FiroWallet) Row( children: [ const Text( From b909c72cb91d5488de8b9efb8a1b58d1efdc47cd Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 4 Jun 2024 18:32:12 -0500 Subject: [PATCH 188/318] add and use transactionVersion property for peercoin TODO add versions for the rest of the coins --- lib/wallets/crypto_currency/coins/peercoin.dart | 3 +++ .../interfaces/electrumx_currency_interface.dart | 2 +- .../wallet/wallet_mixin_interfaces/electrumx_interface.dart | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/wallets/crypto_currency/coins/peercoin.dart b/lib/wallets/crypto_currency/coins/peercoin.dart index 0edc1cbfa..dec4ab846 100644 --- a/lib/wallets/crypto_currency/coins/peercoin.dart +++ b/lib/wallets/crypto_currency/coins/peercoin.dart @@ -254,4 +254,7 @@ class Peercoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { ); } } + + @override + int get transactionVersion => 3; } diff --git a/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart b/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart index 4dd224aed..30ddf7c70 100644 --- a/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart +++ b/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart @@ -1,5 +1,5 @@ import '../intermediate/bip39_hd_currency.dart'; mixin ElectrumXCurrencyInterface on Bip39HDCurrency { - // + int get transactionVersion; } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart index eda467a6a..f6ca3ab71 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart @@ -4,6 +4,7 @@ import 'dart:typed_data'; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; import 'package:isar/isar.dart'; + import '../../../electrumx_rpc/cached_electrumx_client.dart'; import '../../../electrumx_rpc/client_manager.dart'; import '../../../electrumx_rpc/electrumx_client.dart'; @@ -651,7 +652,7 @@ mixin ElectrumXInterface final List prevOuts = []; coinlib.Transaction clTx = coinlib.Transaction( - version: 1, // TODO: check if we can use 3 (as is default in coinlib) + version: cryptoCurrency.transactionVersion, inputs: [], outputs: [], ); From debcb71d89d0e4cdaaf8b526f9eec53332e52cc3 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 5 Jun 2024 09:13:47 -0600 Subject: [PATCH 189/318] WIP campfire scripts --- scripts/android/build_all_campfire.sh | 22 +++++++ scripts/app_config/configure_campfire.sh | 59 +++++++++++++++++++ .../templates/configure_template_files.sh | 10 ++-- scripts/build_app.sh | 4 +- scripts/ios/build_all_campfire.sh | 28 +++++++++ scripts/linux/build_all_campfire.sh | 24 ++++++++ scripts/macos/build_all_campfire.sh | 19 ++++++ scripts/windows/build_all_campfire.sh | 19 ++++++ 8 files changed, 180 insertions(+), 5 deletions(-) create mode 100755 scripts/android/build_all_campfire.sh create mode 100755 scripts/app_config/configure_campfire.sh create mode 100755 scripts/ios/build_all_campfire.sh create mode 100755 scripts/linux/build_all_campfire.sh create mode 100755 scripts/macos/build_all_campfire.sh create mode 100755 scripts/windows/build_all_campfire.sh diff --git a/scripts/android/build_all_campfire.sh b/scripts/android/build_all_campfire.sh new file mode 100755 index 000000000..7cb2e083d --- /dev/null +++ b/scripts/android/build_all_campfire.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +set -x -e + +# libepiccash requires old rust +source ../rust_version.sh +set_rust_to_1671 + +mkdir -p build +. ./config.sh +./install_ndk.sh + +PLUGINS_DIR=../../crypto_plugins + +(cd "${PLUGINS_DIR}"/flutter_liblelantus/scripts/android && ./build_all.sh ) +(cd "${PLUGINS_DIR}"/flutter_libepiccash/scripts/android && ./build_all.sh ) +(cd "${PLUGINS_DIR}"/flutter_libmonero/scripts/android/ && ./build_all.sh ) +set_rust_to_1720 +(cd "${PLUGINS_DIR}"/frostdart/scripts/android && ./build_all.sh ) + +wait +echo "Done building" diff --git a/scripts/app_config/configure_campfire.sh b/scripts/app_config/configure_campfire.sh new file mode 100755 index 000000000..03135118e --- /dev/null +++ b/scripts/app_config/configure_campfire.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash + +set -x -e + +# Configure files for Duo. +APP_BUILD_PLATFORM=$1 + +export NEW_NAME="Campfire" +if [[ "$APP_BUILD_PLATFORM" != "ios" ]]; then + export NEW_APP_ID="com.cypherstack.campfire" +else + # for some reason this was different in the old campfire code for ios + export NEW_APP_ID="com.cypherstack.campfirefirowallet" +fi +export NEW_APP_ID_CAMEL="com.cypherstack.campfire" +export NEW_APP_ID_SNAKE="com.cypherstack.campfire" +export NEW_BASIC_NAME="campfire" + +NEW_PUBSPEC_NAME="paymint" # paymint used in original pubspec for some reason +PUBSPEC_FILE="${APP_PROJECT_ROOT_DIR}/pubspec.yaml" + +# String replacements. +if [[ "$(uname)" == 'Darwin' ]]; then + # macos specific sed + sed -i '' "s/name: PLACEHOLDER/name: ${NEW_PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" + sed -i '' "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" "${PUBSPEC_FILE}" +else + sed -i "s/name: PLACEHOLDER/name: ${NEW_PUBSPEC_NAME}/g" "${PUBSPEC_FILE}" + sed -i "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" "${PUBSPEC_FILE}" +fi + +pushd "${APP_PROJECT_ROOT_DIR}" +BUILT_COMMIT_HASH=$(git log -1 --pretty=format:"%H") +popd + +APP_CONFIG_DART_FILE="${APP_PROJECT_ROOT_DIR}/lib/app_config.g.dart" +rm -f "$APP_CONFIG_DART_FILE" +cat << EOF > "$APP_CONFIG_DART_FILE" +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'app_config.dart'; + +const _prefix = "Campfire"; +const _separator = ""; +const _suffix = ""; +const _appDataDirName = "campfire"; +const _commitHash = "$BUILT_COMMIT_HASH"; + +const ({String light, String dark})? _appIconAsset = ( + light: "assets/in_app_logo_icons/stack-duo-icon_light.svg", + dark: "assets/in_app_logo_icons/stack-duo-icon_dark.svg", +); + +final List _supportedCoins = List.unmodifiable([ + Firo(CryptoCurrencyNetwork.main), + Firo(CryptoCurrencyNetwork.test), +]); + +EOF \ No newline at end of file diff --git a/scripts/app_config/templates/configure_template_files.sh b/scripts/app_config/templates/configure_template_files.sh index 9acf5b6f4..35cb26219 100755 --- a/scripts/app_config/templates/configure_template_files.sh +++ b/scripts/app_config/templates/configure_template_files.sh @@ -54,13 +54,15 @@ TEMPLATE_FILES=( "${WIN_TF_2}" ) -if [ ! -f "${ACTUAL_PUBSPEC}" ]; then - cp "${T_PUBSPEC}" "${ACTUAL_PUBSPEC}" +if [ -f "${ACTUAL_PUBSPEC}" ]; then + rm "${ACTUAL_PUBSPEC}" fi +cp "${T_PUBSPEC}" "${ACTUAL_PUBSPEC}" for TF in "${TEMPLATE_FILES[@]}"; do FILE="${APP_PROJECT_ROOT_DIR}/${TF}" - if [ ! -f "${FILE}" ]; then - cp -rp "${TEMPLATES_DIR}/${TF}" "${FILE}" + if [ -f "${FILE}" ]; then + rm "${FILE}" fi + cp -rp "${TEMPLATES_DIR}/${TF}" "${FILE}" done \ No newline at end of file diff --git a/scripts/build_app.sh b/scripts/build_app.sh index aa569226a..612c4097f 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -94,7 +94,7 @@ if printf '%s\0' "${APP_NAMED_IDS[@]}" | grep -Fxqz -- "${APP_NAMED_ID}"; then "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/update_version.sh" -v "${APP_VERSION_STRING}" -b "${APP_BUILD_NUMBER}" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/shared/link_assets.sh" "${APP_NAMED_ID}" "${APP_BUILD_PLATFORM}" # shellcheck disable=SC1090 - source "${APP_PROJECT_ROOT_DIR}/scripts/app_config/configure_${APP_NAMED_ID}.sh" + source "${APP_PROJECT_ROOT_DIR}/scripts/app_config/configure_${APP_NAMED_ID}.sh" "${APP_BUILD_PLATFORM}" "${APP_PROJECT_ROOT_DIR}/scripts/app_config/platforms/${APP_BUILD_PLATFORM}/platform_config.sh" if [[ "$APP_BUILD_PLATFORM" != "linux" ]]; then @@ -111,6 +111,8 @@ if [ "$BUILD_CRYPTO_PLUGINS" -eq 0 ]; then ./build_all.sh elif [[ "$APP_NAMED_ID" = "stack_duo" ]]; then ./build_all_duo.sh + elif [[ "$APP_NAMED_ID" = "campfire" ]]; then + ./build_all_campfire.sh else echo "Invalid app id: ${APP_NAMED_ID}" exit 1 diff --git a/scripts/ios/build_all_campfire.sh b/scripts/ios/build_all_campfire.sh new file mode 100755 index 000000000..b34724561 --- /dev/null +++ b/scripts/ios/build_all_campfire.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +set -x -e + +# libepiccash requires old rust +source ../rust_version.sh +set_rust_to_1671 + +# ensure ios rust triples are there +rustup target add aarch64-apple-ios +rustup target add x86_64-apple-ios + +# ensure ios rust triples are there +rustup target add aarch64-apple-ios +rustup target add x86_64-apple-ios + +(cd ../../crypto_plugins/flutter_liblelantus/scripts/ios && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libepiccash/scripts/ios && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libmonero/scripts/ios/ && ./build_all.sh ) +set_rust_to_1720 +(cd ../../crypto_plugins/frostdart/scripts/ios && ./build_all.sh ) + +wait +echo "Done building" + +# ensure ios rust triples are there +rustup target add aarch64-apple-ios +rustup target add x86_64-apple-ios diff --git a/scripts/linux/build_all_campfire.sh b/scripts/linux/build_all_campfire.sh new file mode 100755 index 000000000..c9542798e --- /dev/null +++ b/scripts/linux/build_all_campfire.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -x -e + +# libepiccash requires old rust +source ../rust_version.sh +set_rust_to_1671 + +# for arm +# flutter-elinux clean +# flutter-elinux pub get +# flutter-elinux build linux --dart-define="IS_ARM=true" +mkdir -p build +./build_secure_storage_deps.sh +(cd ../../crypto_plugins/flutter_liblelantus/scripts/linux && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libepiccash/scripts/linux && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libmonero/scripts/linux && ./build_all.sh ) +set_rust_to_1720 +(cd ../../crypto_plugins/frostdart/scripts/linux && ./build_all.sh ) + +./build_secp256k1.sh + +wait +echo "Done building" diff --git a/scripts/macos/build_all_campfire.sh b/scripts/macos/build_all_campfire.sh new file mode 100755 index 000000000..e3a58b45f --- /dev/null +++ b/scripts/macos/build_all_campfire.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +set -x -e + +# libepiccash requires old rust +source ../rust_version.sh +set_rust_to_1671 + +(cd ../../crypto_plugins/flutter_liblelantus/scripts/macos && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libepiccash/scripts/macos && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libmonero/scripts/macos/ && ./build_all.sh ) +set_rust_to_1720 +(cd ../../crypto_plugins/frostdart/scripts/macos && ./build_all.sh ) + +wait +echo "Done building" + +# set rust (back) to a more recent stable release to allow stack wallet to build tor +set_rust_to_1720 diff --git a/scripts/windows/build_all_campfire.sh b/scripts/windows/build_all_campfire.sh new file mode 100755 index 000000000..fc6ac37b1 --- /dev/null +++ b/scripts/windows/build_all_campfire.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +set -x -e + +# libepiccash requires old rust +source ../rust_version.sh +set_rust_to_1671 + +mkdir -p build +(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./build_all.sh ) +(cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./build_all.sh) +set_rust_to_1720 +(cd ../../crypto_plugins/frostdart/scripts/windows && ./build_all.sh ) + +./build_secp256k1_wsl.sh + +wait +echo "Done building" From 3dac77b8d6d489e81af2d91a4a604c0dfa3a76c6 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 5 Jun 2024 10:51:18 -0600 Subject: [PATCH 190/318] WIP mempool electrumx cals --- lib/electrumx_rpc/electrumx_client.dart | 59 +++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index 1e6018a95..594e73fe3 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -930,6 +930,7 @@ class ElectrumXClient { } } + // TODO: update when we get new call to include tx hashes in response /// Takes [startNumber], if it is 0, we get the full set, /// otherwise the used tags after that number Future> getSparkUnhashedUsedCoinsTags({ @@ -1024,6 +1025,64 @@ class ElectrumXClient { } } + /// Returns the txids of the current transactions found in the mempool + Future> getMempoolTxids({ + String? requestID, + }) async { + try { + final start = DateTime.now(); + final response = await request( + requestID: requestID, + command: "spark.getmempooltxids", + ); + + // TODO verify once server is live + final txids = List.from(response as List).toSet(); + // final map = Map.from(response as Map); + // final txids = List.from(map["tags"] as List).toSet(); + + Logging.instance.log( + "Finished ElectrumXClient.getMempoolTxids(). " + "Duration=${DateTime.now().difference(start)}", + level: LogLevel.Info, + ); + + return txids; + } catch (e) { + Logging.instance.log(e, level: LogLevel.Error); + rethrow; + } + } + + /// Returns the txids of the current transactions found in the mempool + Future> getMempoolSparkData({ + String? requestID, + required List txids, + }) async { + try { + final start = DateTime.now(); + final response = await request( + requestID: requestID, + command: "spark.getmempooltxs", + args: txids, + ); + + // TODO verify once server is live + final map = Map.from(response as Map); + + Logging.instance.log( + "Finished ElectrumXClient.getMempoolSparkData(txids: $txids). " + "Duration=${DateTime.now().difference(start)}", + level: LogLevel.Info, + ); + + return map; + } catch (e) { + Logging.instance.log(e, level: LogLevel.Error); + rethrow; + } + } + // =========================================================================== /// Get the current fee rate. From f5e9187c443d53251bd672ae7f2f931e41d43d82 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 5 Jun 2024 12:24:16 -0500 Subject: [PATCH 191/318] add campfire assets use some stack_wallet assets as appropriate --- .../default_themes/campfire/light.zip | Bin 0 -> 897669 bytes asset_sources/icon/campfire/app_icon_alpha.png | Bin 0 -> 58920 bytes asset_sources/icon/campfire/icon.png | Bin 0 -> 53110 bytes asset_sources/icon/campfire/macos-icon.png | Bin 0 -> 58920 bytes asset_sources/icon/campfire/splash.png | Bin 0 -> 33590 bytes .../campfire/campfire-icon_dark.svg | 9 +++++++++ .../campfire/campfire-icon_light.svg | 9 +++++++++ .../lottie/campfire/arrow_rotate.json | 1 + asset_sources/lottie/campfire/icon_send.json | 1 + asset_sources/lottie/campfire/loader.json | 1 + .../lottie/campfire/loader_and_checkmark.json | 1 + .../lottie/campfire/onion_animation.json | 1 + .../campfire/app_icon-playstore.png | Bin 0 -> 53110 bytes 13 files changed, 23 insertions(+) create mode 100644 asset_sources/default_themes/campfire/light.zip create mode 100644 asset_sources/icon/campfire/app_icon_alpha.png create mode 100644 asset_sources/icon/campfire/icon.png create mode 100644 asset_sources/icon/campfire/macos-icon.png create mode 100644 asset_sources/icon/campfire/splash.png create mode 100644 asset_sources/in_app_logo_icons/campfire/campfire-icon_dark.svg create mode 100644 asset_sources/in_app_logo_icons/campfire/campfire-icon_light.svg create mode 100644 asset_sources/lottie/campfire/arrow_rotate.json create mode 100644 asset_sources/lottie/campfire/icon_send.json create mode 100644 asset_sources/lottie/campfire/loader.json create mode 100644 asset_sources/lottie/campfire/loader_and_checkmark.json create mode 100644 asset_sources/lottie/campfire/onion_animation.json create mode 100644 asset_sources/other/playstore_icon/campfire/app_icon-playstore.png diff --git a/asset_sources/default_themes/campfire/light.zip b/asset_sources/default_themes/campfire/light.zip new file mode 100644 index 0000000000000000000000000000000000000000..d94ce2ac8660b38e4e2889e3ed0e2add9a124c89 GIT binary patch literal 897669 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 E;Ev?^0SIu+4v^r6`fl2QQUv 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 z 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 z zZoZg_r(<)y!z~Fn+iR8Z+bXq$nzw-rCS!vd9wDyn9- z)@c*6CwvC(HCS!=mS9=oU)5?-<1$Kzb51gV+;(0Ryqx{CkK3t=0I83@WF*!U6&F%> zxVg3Gd)X$ibh*}>Yqp>EQRZH=_@hZ7p=`AbhISAQKO&pe4)~GwRwx@o&GjyDm2a)} zp!2t{$edZ-`0cw9nDu^lUea4>yA!<}7DHWkLs}sAJiYEf>yKo1v`hp4tFw?D zU1>^=S^ATE=>p4A-L;`UzhApem5fobC0ovj)Whh&b;NT^#V!V>pqrgFD4Gj&OgKG25iQQEd65vX~IT)}0 zRtJ{Ds}PT(aG$cgrxDc)&mQVY%z)XJ9t0YqsDO2!%=0)-GR57y?8BY^T!oT#rT!$j ziJ^E!UWZLBlIHHr<@2t>8lgpauEXjE&j=FM)OY-?_m%hjd>&B}8h2TLRt(2s#QWzv zedkj`;?_CuiKqVre_n_{W^vkVv3oBXhG&kKurH-g7IhdjVKp zPM43J>i7Gdww3wW64)cY=fRW17s*OEvo1@fY#*{nGj`~J*Q>k};rilc3j&Sq|MeAtRFVUdN13G}L5VjP8bBoBaV)IYl z!tZP|13U#ml7u%zy}kn{uKoluNWNSYI=_wTR@>!)G?KHAlFTEl>&1yo<=p!!jT>8g;ilmN?sZX~46@abnN- zazb8k@>vk4FbAJLA82A`Qmb+vRwt7==iQ6H!vpH4_Wsy%w=r@0g%SVPOJ{YlGJa|% zqj6`SCdF{?8w3N9MLTM%3w|4m_TcsFQ!qaRNFKkx6adO%qb%hBeaqaI{Htq3sFoB% zAa1_zsP#*lscWx^I&2XixbmH*Yme^1 zBeZlyPI5(&ar%T3M(?GGi*GVET%$vB4=L~^JQ{xa7aj0Ow(sU6aje4~77_EiCxWM` zJ}EzbpgA7zmNV&3-^%AF+6egFGhuL4R+cNm7qJX(R z3M}b9Z#$N^SV^cau0@_)h1+6T@RajrF#t50mp(d27p9t!OEHYP9aG`NM9Hu-EDy3< z^$=?h0B}Pqe8m&#KOxDKrsGLd2-#;6H7APYEFf(N@a znhE##nwV7-NnF*9^0(=d`7a%lB(c2eZ722G0#UN+7)q8y90qyN12KUkp4^grNRe!? z%Jo}WoJOXwbqxP0uouwfxQdRZ{NCxJODySrBm||wiB_w{+3{<#!13qq&3?Gs=?yuG ziHRz6JTWP`zX7IZx0Xh{#)n<0e$-@jG&;GWI2v8+u03VfQIKb<@3a&ySF!1z4>qfj zkE>x{6vmUE-rd8o`mYoOMTYrv^(hcms5UXb!3F02>6&xFlaIgo>o8eIOLlcTSgPEk z=20$u#c{MGDrV1WJn|-UB_36E%ha2J6&eDu}N~?JJ#G zd~zyro(_$EEYJZlT__IEcUQtTfsIGh&|+a7IMBHr0X#NN`ebe_?rU8MuXv?gicY6hG~kY4|<_hZf(EgAW9$)6w|Ac1(F{f@O*b) zGK7c({{HX_QmWZ>?xQbfWUpYZA)FWxejs2GNem#AFE~{c^+PRr1#zI#Hyp&4c9` zz8?+tjk9%KH7I*SZ`4|zz+A9m&Cw#f9GipZjqiBDHHNob{%jObFR~TNpeY#n^@~99 z=-C)V5D#-F8l;oPEKP^LPYT}Y;!k?k4#`uG9`p$=mn&yUWuT;sh6MMYm%R%LP{b{@ z^9=;GQM%tK+%uDn1xX)0b{~ceDDPkI?%Qovfeg8Z3LYJp6{8y4#{A^>SA?POVi&x7 zR^K3zuJW%00YJ?bwjwc;!N>xBI?FSfT{VH9cZZr=YQ{r0!El7!^o*(N4@oAuMZ=0* z7kEDhCXyqbi?-@Vt3TAZRcwsJVp`p+a}S+_Nl%OWVq^rv8i{Ucaz*>NufJIrQs1TP zBVer0tcb6N#4{AIDXL1yupg1geIrOL4-2nVf4!n^x60qwAocTWCDtpXwcZf!{84ud2pX#Df3E&x4LV?ouMbn{YppWI8jm`ETd9gfU2D4{ zd0lS2*lhu;F_r=0glNmg^2%twC=2iS`oiv}M?j*0dcr$o@5xVJ_&bUv`6xwM!@F#I zhdL^~VurrIuF{a3@w|T`v)8)Oi?&P3fht{o;A}mR9s|L`OXWBF`qjp$dj|5~ zB;_ee!VnNe!$Lx09iAbi5wzXc(lq7XT?W(OL32XST4W9lL1=i}xa>J*0kXLmP;E*j zeVWcEV@fA{&bDIF9qE zfz6qDD61D96p=viz}}nN$f%!ylA*!2ORFC|KwGbWlfdp<8~SB7^7G^v*JVGK@TeH1 zA9(oD>r-}2EF8k(Tuk^@5p?qzkSBBqfy0noMnt&Z+79RJmsSnOX2VXSK$<7)rKcD zdAgqFOPHl73|x1UQ{?Y-i^uVWN7H#i2*iL`SgiiFe-1NQE%dBXd-(>|D}=svcPB}@ zTBCJMk34xa&G-hSYkTf3(bW~;#EKn4Qy;$g#+S*Jp`Hy95kfn*<#MHL+7f(8)tywf z8()twOQKGkZyfezEwFk*z%eXJrXRNhLBC|g)x8_KX^2%!OA#TF#MkV zlLjGe!k>6a4n&=Q^@X!g8+(zacrdw>Gs_PyaH0Otz4ju1_Aakt`pQ?Tmau(vCC8KO+dyxt9|9``+v@mvUDgj!qi?s{Iz#?W?(5xM`(?Cykmms4jqJvW zI&FW}42EHqD=Fq3Fcy58L@ue-OJg<%tub3LEA8uyo*1Z-6!DFt#kv?TqyHY^w>LzG zRt~>hE%6-pH_!Zpi3X7CSzt{Uce_dx!`d#mFA?xMI=}nR+$wYy0`vH5fy8^pVSoLj zzu8dieIEyJOHKNL#W4pw=qS{k6h-9qa59~~>rVoc=luXw@g<%_Xri*VCsYU(1V9NT zDRsYkYE#YZ(Y`O5rg9q~!@-aeYD_PjITHs25MZcs$4($(RM={V@o!M62^4kfp#CvL7I zyLxIwn*#**ssW?pPJs)uV)3Cwc|i^60j8hE1Aj9!@J0O2!%$eF+&~gb@sl~qx$}y* z;Qj6UetEfhO;M&nd}~!?OocIJw;?{`JYVfnw6U-9y{!N+d|FY`vFE#;so+;XYyCLu zn}CpTd&ybrXn%qg6>K6OS}!neLBpID{mz z-WemCGB`r}VQ)eU-mWr-Q}aM1qwR-GXm?Yo-=C+^3!M$#u@3H)SQ`$42%dFZ3N^pl z1vDC^)w^w`e)0DC{z6PMQo&}}Mg(e7w zUwjMF`@n3`K)eP$ZRsIeaa=D@luoXzz3lu|^9?dX_!y*IHBASKJE2$}*XZ307*(Aw ziji}Jqm8}->8r=&4u%-F%05s=aM~23AfbCfQ3p6Y>*6FhJN-Hm`c2h|Fy1unmud}0 ze?2U7LdwJ;#=jBqzh|z91jjJx=(Vv1Pp?5wDnbe}-QDRJmisJc_qtn!<{@MY7PIS6 zF%}T60Uht5eE}q|+A<^&d#7ErHm>bzh2JP*R{ZmQ|M|S9O6`}uUF(vl83;~h8X|R@ zb+sW?pP=_SvG4lF4aRPC&CJ;^Zuo`Hf-QgyZ=8 zPG55wUey_m#ZYz>st|*>vI$24N-pc~xEWH-_%N=s&}Q_>`gL^IP8?iNvDz~nym-yB z?1Ba?)5yb1S^0R}}F~+XG7zu2B{DD{eUjxkgL)l+yse-sAy-!AOVg^5-c+ z{q|^{G_5c?vq-d!9)+y^&RgQ79@ZJs-#71NX&W0aNkI>0@fE~>yM<+2zj}ihcR6^B zE?${Z^n=5l1K$qN-;03l2K3-+b4L5kggDZzKVJ+1r~pzl)>R^9&)}O>rmb*Le|Swo zsV#G)me0^x{LX;?FjvtejvbkvtIQ*zDcz9>HpPz?r&m1$zlRUF)O4~w#X9^@hjsMo zH$P}EnIE&OaLM#rW?l$tPWdp_C#k8G`7Q>G$#Qfd;%iHiXxQvPnncb)z{aSf^9%|7 zdC)4wAARr1rE@>{`MIBz87dM*1^mp(f4#r)8({>P^7UVXLR9?WmeyK_0L#1`E}&Vq z+g!eF`%V1jJ3Oxlgap%6Vol?W>LHacGnO&@oB`5Ql{@pFz-Y?KcFu?mdG-Na z!&_dl!f*S1U9VNBFbZ=Oi~aH7mTtM4=JQRYtI@#AkE*~{F4D`r9zS0*3^N_A-5p-W zE8h!K~-q?0+8eeoerCwJ`jH%57siP=@`sw?3`JT9v3gV(xdW_bcK)vRGJ; z;T}A-p#T&;Zf^S;KYzdB>+0C;XCVG@PvZOOwW{JD5Op5UVHd7@Ck1qN`kr<@RZ_KY|8dEK|fkt6Xb}wg0#Ke|C;)a9cQ6# z%XvRWPZ^NGNUbZ8b24DSGm^;hkWdjk)EqHl^?6T(?+~`_p@GH3f%W z{NmE}uTJI4Rs^W-q=Udb_O!eswX#WG?;PR(s7XH*>xc-8jx?-MtM)C=gis$cdcgMT)?U z>BEnQ)s-qoUvE2f{FJtVw@u<^SEizvE>dTWE?X9O*%BMae5vivEb;NtcW+A+{L>Ub zt{Lmzq;ani+@8lbvCXOVp1tUdWoU_kr&3vR>Nnl^8BDi)f<@1@JUzx5uXUBS7V`42 zCUmNQ%XVheH6yVFJ79e0YhWvHy3FVThQSWum@b_&Y?r72-GW9GZ&VfV8Z$MqGMGxI ztmZV4q%*&PR-s@1ZonuCqf+P9Wyy=fB5Z9zbJer=8fnSvW^QdE_UT^@rmaaCPTZ%a zKi|1|JciYDz#_ECcMPAbzBYkJA0bY%FWV;4#gfs~EbO;)6`q%*!#7-fAVOQb2C8vL zed{~p;nE$s7X%D5Z3wT)9!PIJ8C&_({c(R_g-=pETy_DNh5_!pT=7UMb~NqVYLRE6 zAnr=!H}luPYpG^{c$W#CdE5DMdNd>YO!Coi@lj= zTu*W@1Yf5Qm`%Ft_FAgORs1_cG4;~*n~vb&R|bjgQ%w#(T*=7?ri*UTzUw#tG(6%! z9eY%HbLmNnplb5aopc3=ah#&5NW6qBtL16fO|7bRV>hj@4iRxGme(68hn#TE8e@av znF5fGM8?Og;ma&k`A?YCN!j~?MYyg=F`>GaQ`VLv+1mX;(#+5o(FiZ+kMemE&0>!T zWj}<|tg+tslgMB4>`(S}#fqFz7P2}USb6$pMK}Q|t$eZWn({P7qYBy%^%PP+tJ(uT zgf66=e?_ifBNj4m5rPP%7dV)7UfSOoSqB@KrlkC|AAj`Qyv&O_Stk322H_`M<4oMN zwy!1e$oMvOHaKr~fngXK%~zk z*q!GFI9x^pnGW>{0szT;m6EEIUn4t%UVQAeF4>Tid>SLcd`yvnDEjt`!|IV!Dg}t+ z&Vsd>Xvd-NyH~;(N3Jp_Ch4_b4-?IdffGjp8Ko-{J2>3k{5W|T@%q;c_56g4CaEvY zx}kyMrjxAq;_M2|*VLbxAu}BFQnva=9(iHtvqxFnxjt0baBz?Q^&^Q{Wx#}=ICB7FP33`Nj44x)WfxA zckdC~Sn*!>WVFMmyVQfGc+~1#E6k~BO;D-g2S!{|V_6okPP3*?7#KDm{Q@c&09-($ zzpTN&S|!8x?t127>4Aq3o84p=?U9#EDLC0Dd|do3o4^=Vd-I{7>TFJKzr5ih0ZVj_bAK zQwNme#BV$%s_W3*TPOsuj6C)v`G)-TvQ{jM>ox_CN*A3W!J<3-L|;<(*};6dIv4KC zhvr^q`x0YhW-;cUE+gp~jm6WvpT4Z<%3tpA+2@(AS*?aNy7lQ@J-##Lz%Y!(tD4kt zOD`ImexGBVOHT`*z}3R=oIV8QYo8H<3@pXgz58o;BeMb6q+kOHcr;Y$PQgj?0t_l0 zKS)yuDvGyIy(gHCktDuPaKC?Q{_sjwE|lY|2)Q`V%Dpa4w;t#6)T&A?y05Egq#I}S zg_-fZuPJBw88{`Wnu@^iaxhA5HQ&-nQQux!Mo5}9k=OB3Lb6tm0 zz$gn2(;oy@aOxNC#ENMvZMt@Q`kZ*u&*^1&cZl2qf_Tm-tcdG4n4WTV=HjFp_sExG zvIbq3@ZemJJC$2#$eU7PpWO0SOi`Z=On zv_())xG0`b)6jU=_7!w|{Ru&XR7?mB&EA|;+Po}_*o(|=+dK7f@MOIWVI1>sVg9bVhA6gsgQ(+z zAShXh>qn*amAkh3F5|{JhXZ?5#aRrOHr0#D3zH*OL%6BvGl%@efP7wAK$awwy{^FN zjF6>Wad*e7wWn4zKH-~nq47&+g_wFP7|5TZc7d(znPSF3W4F&w55-5exUxK7cT`0Z zNrHg_B5#^L-T!nr+K4c8g304WSO;pBUUcJl8?YNn?mjGfT;tsTDsmtA%ieD`oql!> zNm$$7^zL-H3=`3C<^^V5n-d2qerNx*-)gCJNPkOq={x6Rt=q*Jmxk(Fsnhh)djrcxTg-SxdrCl#B8p>(AWDcj9~u*exZja1qIM-M~^g zzSgL0`gn(1Pu=%)-uAsn&Y`l_9#h@dhqQs;__i^0A-4zqskT87M!L>2#U)<_wbA|} zeqD(!I5(>1y5EL2Hyg1uEf{|a4pKtS+A(U9zaL0Zq;gy4az1;P5{Z(iN%?n<0>kNq z46q+*Rl5Hu1e~M5XR#dy}p_art zUNtuzUE)B)w4T zJ8Aafin>z8^D;QU~ zDx(G}Uzy3~-Sivu)(w9`L0_~$t z)z|URUle62EHqvB@ek6(vsOcoqgZfX=QM?V+(Tt^=EZyTxvr+Hrl}wZMEli|l;}2% z=OL<>n$Y7~O??{*L(5)D-?ntd7I>V+iHM>!q!y!2$oS~nv|EWMKsG+Q!)jAW)pvE< z19a0y(FxXz{E^c->2{sC5il+Tfe?yJ^gH*K)r7q86!`d{>l)z$52bzN4R>~dq$x@| z#mUnreU8onRXxwv3*Ea2sXYyC9gH?Ha&h==EMrv;wogC%zx{KXOmJHC8KD0&9F)r$ zj2&8nsV7nWsI+awWbpY+t&mHT{MS=^$BW{A8e$Q7<~oU90R##s^YK2Z$LF@sC;%1m ztOJq)Lg!WC`-i9L-e(IaWNtiDQatAr$Qvr3x%A+mCsbMoZyc>d#hRie7ua+Wr;juK zTzn_ioVi^ir-YPpdhhM+H)vp=YZzpRCh4g0cgGZ6IPXVC1YjT%mT zhb!OQpLk`OZCYZL=!lX%J+b%mFj<9WTI#TZ&!cP9K!JK*pB1z3xP0Hs&(f4`z3~ji z+c|y3c$>oni9D&gw(B11R5R1U;rF56m8Af>I_6r&>vyyWUcOukJF=U@;cNa>E0mjl zGabf!rpgIM{>OD4dSD(M*U>YrpKISAmxtqd7=y4ch$fVyy$0W4xrQ0lPQW{e3%z;N z4ecD)9S1emWF!)#*Ib1a2td|l8GmPsgYj*H`e_xHj6OYiGt(onQkIG^`9*ZD&pB6o z8!b2k#_Scam7?*pX3&p-|yRrhx(CkcMPu}XsFGc&ywFp&CZd;X{6ESC761QP{ej z64bYa84ux;fxH=iaX**sIA3Z|a}Ln{9!**Sx@uW`56|9$`umvLx(d(y;b1Omz|!G} z`u0&Ti`;wYoubP8M<^YVa*rQ4!q{B*0v75f8{KsUZ0@Ah3G6Y3&(uL;V;7x^pxQg^oUw3nJ z4JJ(S&OP7c^R1%FUb&1O=e)_K-W6oOE4XK$c`17EH=XNFt-TjnNmviR=l*Kc4hHGz zYq$-TmaARg`oEfS)p*x$7zCd6+TzC1f=K33YIOt|K)I(0YgzN`DZ$aMPtA(DD{|)x zB6AAx*SoCtW$xJiJ5SRAm<;j;`6@?NR7Av84&lalwJwQR9UF&M3hk`-zb}1VH?UAo z;C&NnexLiy05qq221~LIL(|Pw=n!^;tH0TsV~3JdHTuAV@o#@j$Q&ypw5>q+8RigR z8H(YHP&A(rk0a>PJ-)~69FtL2xrza|YE3P7ye_r9n*!I)qv$UvJ)TJcLy_{^B1;GE11)fAV7hg8nSc$a;Dy9 zSRc_e_X4Sb@zZBswrh##QyVLr7#LM*?aIy693J2or9uz%i!wh!!?%mC*KO9{ZxK)F z?=q{Uu!dg!eMYMqKLxU^t)SDavh5#wR4C|`y8vm91=V7>ow6ilobED`Tjt3qE5Mv`_dz(ZC0;!RP+fyg6CV zRqQtOOr|1h5`b>+bxl<98`r(C6ET$@0fHd-ezh)+RcUF<8~b||_NS3&b^6DFD7-#D zRrMLwV#a8FvHmpHR!maDa&8aJgyMAZF>e$0Zj z-qTm<#eaMEW0c%sqtig}mrfL!d>0b>4ADyrln#92(Zy45y+G=K5fuU5)|>ujj$>uv zqea-|aQ0Jbc%NOGN2!qcGL4?NZdEYzBZT;1mK*Dxc0t?o6@4ia6lq@;0OsaU4gct( z`G+UbK2Ivz&GK&Sknb2VnwseE5XaB{CbkiNGS#1UtZOq1NZxO*x*jsK41M@(SnF|) z`_?)?8jBzI>AU_ZqL2H_KR;)CEr06fV@^E0C$W%{*LcL<8b|eRc&&d&6NyTr}YTL!rTbu~D5Ze5=5!1&a3wL0B$Mv+~5QRSxj{Wtbw zX|1Ue7JO#zSeyc2fZWWU?`@l!`IJF=zg_1WA340>z{2E5GzteAEXQgeymww0Cexg8 z8vwgozHMM48=P(M7XFhP9OhMQ|n**VeW~sb6 z@zh`;-Eo+mo|UP%IT12J<-h0joO$&bntA`ODF>VmQs2meU&?Jk{Z!&dGMEvT(}mqh z*Jo_F={T6131;-NECs7z79G1Eh!8mV*#i>X#-5)p=&#R)D=?Wg?O!zs{6#>#HjQnEz_(wqrGGQI*V_}p4q>> zWsc`VvE5GuEU`Wiu=xI{c?n&@BNK;yY9xuu_i>jO_Gw+JN>HAz9WK%$&rCP>eNfaQ zYg1Y781Mb#42yjwMmV4bYm+>Dt0x`cf`GybPb>x{2i<%^iv3t))X&u=)+V_u=^ z^NoH-K|ZMZ=CALerzLv(r78T%QhUCc@Q1fo=pfYz@b9=a4kSR)A@~FF7vu50Q!N$G7ar{S5Z*Jus3T&G#`PV~?*8Kl_uOPQu?z{L6=4*h5y`%eew+)W1nVqQW`PR{1 zII%qY0TUGIqAIl4un&r=H0IZGqJQzip~rLK-ZOFuA_}Y2FL){QT)i3gcaupC;OTGN zVvtVbU2%Y~NE%4Hex5ZPcJ%w5rh{B{IT_w?2p;Et@wolAEg`T1eUTr|{O3DrpU~NO zfq=LDC_zQ9+cH@b(mo%|!m9Fv`L0&${vT(!?{DNWo~yvykWk3;wd>}*+r(q`*j-+~ z6(7Kc^8HBud;hrSa_7dPYis`29MZK^h1K*=rxZsoZT$buMhK(G7%+1N_2I zZKJHi)kYsJyYa^#5*{41{Xeg{12`!<*d5V`(Yax$px*d5HS5(LLy@R%cks5e>d&~n z^BSH1r~gLee^uXO08~%uj(IBl^z)5>9TxTPx8+4oBA@2o#7x@6aWAK2mtz9rdV=3#q|)G004lQ0RSZcAOK-= zb7gdMFLQQhFJo_MZeM9*Z*FrhVrgeDVrg_^Z)t8Wb9QG{R1E+J2oyPHJ{LJ=zFt0N zb$AN^0R-p+000E&0{{S&y-AZU$#EojpI`Aw@iKE@!uO@6(IP~Uly``{<{>X5XaG$> zx=2s}bc6i&W2$N%TUO&up+xXL&j^q3@WtE~HTD1c=l}gLufP7`w}1KlFMmiOgdbkN z|J@({<@bMCrT_hh-~IJhfBcVM{t#Z_g+IOY_y6&SAAkJi5C8VZfBW4JumAYhAOG#o zzx?6%fBDP5|Ce9<;;(=G>)T)R+aLe*FTcR8zpxkl@ZbKg|N1Yl-~9N8fB*Y`|25w9 zzy9>&|NVC;hyOQ*ZvQvZ|AU);^M^nE=EvW?eq-;mKh?MT!|ONyX}{x$`2D9}{xAxD z=^&;Pu|UVr$-qh^@ts9Azn?D@MDXB}VbmH7P^_7RSXIptNe{&Y=r!Rxob{NX+3 z`ii-PjX!D&Z{t<$|8vf-*xIxoua@w8wr|#=yv5opi?7(D{VJ`XIPEdP9@B>195b%= z@z#?SN`I^I6-TlE3%zY|mie01E{z#qd7!?%J%wVe=<}8A5BBU=!jI6p{UL0#&IFM}760-*T(gzGjcGvNb#=^mDCmrC3|% zTZtLv^fuaS*oe<*y-;g-vu2NOuj#zMz2)?pp}Zx0MeR01 zgA?kT_39k;Ep~KndMoyC2+4-ihNxOIFcxvX;qGDGX{DsU_GGgScjxdH3pyviaUgQ! z)4IK^;dYy2*0Up~w}k3pyhUrv$o91Hnl}G?x7$ZcZ?nH<$J0=@Sut#Qid_%M?w|I! z`kJx6VR+-TM)v#~_Lh*moZ@R(59MObnIYOYzeWmgt#JxjAGKGvkLZ!lw{K6cZm%6N z?-6}k#tW_PbK3j#Im5arhl2K5!=^pYnl+}%Hl1)=$ToDN*~@#kZ^O%Kd9(RFgN>7o zuRYuvYaMT0Hu*8uXKnK1czev~vT2XRG>+Zc8tnES-v%aow@$HjG>3JiHKp4^!DaiD zj9Jo?b)Aj+Fp*HAjoY*ZWltadtz(3meQLI@w3T1DTy0hb%>4eAEAG$s%~r0MHTG#O z4!dBprrKj8rb)Lxw65o@!YXPQD)gvbvRP(7vX$F-D;2ZQhRSB$DE7~&x<7Lya^$SD z*I{w?w`7x*ud~jwSzsMH_UnqcEWbW;{D;TdX*SiY|0ZXky{MJUeu6aPn`{ExGMLpm zg0cy(u=`uJ@<2z~^0IEuHj~h=_JOu6rrnhTX1MhWiVceq6TE0t>@E{bHYzssR^5bO zXpmzz9vF0!%oEaUg!X1LZx+lLOakkGj@H`T7?^?9>}mDw^KA$>$i25{&$o$NxMB)s zlg)6OxCyhw9%S-S3#H?JzHit^m(1(Uq=fZzejAm~$9&)no^kr5vwpW}F}WZI7G^iu zkpd=kur9ZbpZGfaTANM5)`vBsje)NXuWoBL+aIkf0%lmZ8B#;qZAM0$YW8URf*BLSV+>|3O*gr?15cZ-fV!nO^nntUX~$C(1gJ)VVZ=pPqTGV*|j!M1B=gOKt@;D z!m{@bdp~!SVT<3o7(Lb@2T``685KR0aesWXE*w};c>Ux~Gx*k|*V)x+Zy#80CIcpg zC^iafthLgH$zG8$E1HC+3B^zwzO_PdOj7~Uz;zoBo8Hp|#iX3HNs85FVzXfn>Q)hg z%tj+aF!g|W&--mDaL0t8nl_9nC2W+|$(hq6jjYu?APCU~SU$GwvZhVy`(sUfZvokW zSqEUIMzpQjl(sgp-_aD45GIR9g7j)ATMt>U+q}oRZV-t@6A&U2%PrV-TPMXtFRyn@ zSnHYDaety*(1OBsE|4)yJaBWjx7z|3HrNqzruE65vsp0kmucmO2D97I8<%+Ll#u zw=Gu+aC-n?@tHVxzDQ{BH^a^Z9Q_~Fk8E5!}BpN0ZYQPM)31NZ}`$=SVt7qeBJM3G5*3+;)Gw0ce zejW7-1RLg^eKtDBzOr!z*>^_@3u+E{J7kHyv^32kmo0N*0o~TbRRR3RfBIFsFCYw0 z$1`op*b>-Lre2F;VsT=)u%TK<4k-4JA<-HLeF3IIVzFl|1QQw1k*sWc)Q2p zx!n!z0~-OhLA%YCz>a+{po47NX(MgZMx{q|uibCk{6sfqE*txp1kH|{f@xk*OZG|O zZli6p!d|9Gum;k1_Zv)k!m&b@%mh7uLYGvyK6UFFMdv$^0 zW=%C?77H$wru{S7%t6-`ECExoQovhaFTsG@BKp+!-;_<>v%YQg#p>IH8nBI$EwzrW zh3;-$g>r%c27zso(bPsrR&;g69+s?iHk4>j#2%RDgq?!c*J%2JsaGaqd3|IPFs2tm zz$ES*un-}sF%&ja(Vko=P?GK6Hat5lGYGZ>#kMrqr0RMT4ECvZzYQ(E4^xX~orxBc zB-z$<4%XMXLshl1Jr;X-#>yM79C1J1Z!*D#I49@{*8T!juD^1@PGR3)0yW-j-){@c z1_V3KE8E!7iY$?GH+QWR8~KEx&X8jr)f0t#Mst&Ozo~Dqb+YwRz{Xf?9PBfSH3wr| zU@G-j!Io}2h3#d~LyK+nA=Zs|n?6|zKCbC@TgL_S$vW{UQ~5>xQjRk8LYC{R*c8Gp zSzwfmSG8rA&=;s~GOgO`8c@#*q)M_fc4fRhVrXnd+b8o|Z4Q~44P_ZhbTMI6%o?{2 z?GvAF_u4L2_-5OnZ6#OQTxhwiAd`a?_DexO2CldkF%5Q(ioLm6%Odo&JZb$l7@|;s zvu(AeKQvqSIYQ3irB>$mc8ogJzs7w6qYnL~zZ$k+?Dx4qzP_MPB`DC@zSN!zt06(P z%J!)?%b=!&6ftY@%`a>i0h(V9w6mb5l+IZn_&gJ6p!pUW z88^5ZAiGei*uN5XER}mI_BMQ)DeyLNO&_(|_E@WI&!jGsB72f$80(NPwjOxRTJm$swZMu(5J$pC4H$!Xoh8HnW%qUVO@KCBAk)>i8QQbS z8k_wu=yawinUWASG}iTVY%uam($K=MHt>y@3D!uMKSMH%reHC32|5dOJX$>gDo()~ zFw2D24|Fzq;?SxL3(a~8(-OL#slBjSGp$ff>tRbS(o(dUlxfQb+jwCA*#dbDs^a!{ zn@`ik$*@*i;|JD^*^vX&&IAT5?Pxs@vk#I1x*i;reQJN8Wjy9ayUzxGaBCj4PZLaT ztTn7XIL4r97Raf%!@f<_EF100-mz9`X4Y=iAy4p;(4;VZ3;L+hM^)?Gp_NCt?_hzO zhS2S`396>`@xWJFAJhIYiP^P!FmkkCLf_$@FeyO$q*`BLdfJXo%dtYPL0yD>lVQ1M zlT$VnP!p}SEsVXHJ~QA@g;g^)7;~8pR_iodOszl!z&p~gue@ML!g&h4&=%?5I86uL zMs{s8)!I5C(PLLk2sB6@>s+`~AP(U*3eoJP&I!ChsyBFJx|&x_I-1FCD?E<#A z`(WAh%pK*4=V5nv}ae1|-cX6o5~3FT#Q^lV~Txl#*< zQg83H`qn;JU09$kZnj!%cEF6m9!H(z>CH=8q`- zu?!3wmO@}N3%!AnD`(WU<9QhyhLvp?HGZqgvs4cD#dcxtx!kK1gKqmfvh z6*{jywb*oqJhiDwhcWukl)nv%P_b!aQ^8(tjckE|lWCduC^dIX8cummzSP)SE=&s`CfdxbNP{lVUO7#G(AJV^;t;?$wv96$0Al?Qq z282D72&{86Q)A|e*x?q!WRD1&MD1Y#&NpnniLOMr4=5_2iNn0I_6M^#5wbupM@TZ0 z$Z!xhv<&eYY-6=i;-Y?o|K;wj`26AZ=fC{vkN@*`zx?6vHtdCU{o(ID$Qr}(m*4*S z&%gimpZ@e~#I%A<{<|N1RGG!+~Q<$>tbVCWUkfSQb#O z;?I3rg8B=~4Q6Mw^$(A8;sUkr|G7_t+F(l(-)n1UN0_D9Mqxr68r{!*T7wVGWGv=d zH{}5lUo)y`_Qjw3r3w1G8TQrdzk2=KhXLS0j^Yk zZri#xR+y;vq#aIgxLhHWP0{yY%J#h&)3-r1ubxgdOpEMn@tygl{Ut&0iTe zqLK_Zd4a>sHZK_Za2P}?P}X1Y)1_@B-)5j3cWjiMK_IN&nzftRM#*5Qt>(>iP}_bX z-^mpobK=9jvjiEbkxnCH!$pynp`ZU;RVt z-y6d55Bn@G<6z zb?A=3V}>1p%{XoF1|!f1g|5sqOaiL|dokl0CVe`jZ)rQq14dE89&V-1>asb&_!5<-3W^n++raed*{J8v**6GW0>4 z_O^^B10w@&sTgRZZFFNnp$Tv_p~K(@PDDm9V9C|neD%)#wwiO@AFKQGot_`WK!B;j za-52%!FguOa8`swhP?5;(o&y+3K`bUjtNJF3!oQU6LSKf7#?Rf+`%)-!%2}MX^00j^T0W`)sbMkGK zeoVyA7+d7q=6c&VfBPXjweS6cxVS(6G`jJ_>aH;??3+T-+ue||N6(@{_em0 z>;L-kFMs&=AOG`**B}4=*T4D0Urb2^$n1_E!4y%%p=<-?4E?baiw?0YvH+R3ZLLT@C)%#0R^-T z4r+{mX<=P$?gWRyIi1)hK*7*7gv#K^RH^bG#KUkW;D^!z@K0syBeb5?Z`T;=KZRd? z0U-pws@YIgRjyxheDr_+@z=lk zpHJ0`dwE9qcJl&6I{u|dw!MUN)=*2wk1`d^+8$? zOA-m!H8DXEgQ!SVSdpNbs@HQ`cgC%>-aGb^1mOt_|`^2@&?NR-n>b#Qrd~kB|-{{u&!|tBV>qm zg%y(3uG(b;Rb7tUXs<2#&cHA@%XVerbnoS#+ipcji7+iRF|QB%-cVIxdl0zIh)dgm zbS&r$m=2*RX7$-aiAWEDud^Bm2(G%{S$BfZh7K`~wOg&tmF8rf{x^H$e%$w+#|6M& zY$kjlat(E^eW26#o4VrvS-vjJhz2vJ6i#;)21eIRHJFra9sw-@mZJdk%Hp3ZL=`i4Xs zlpqUqGt||DS(iAP5vnzuS@cPzsm4mnBW?ga*9G$<*r(F1hoJ%7rBM4-w`jwP0_AYK zVuul9gXSfDNP8=4IqDCY4WS11oYZbi+!*y+eOpbkB6T1DvjWhb41$g)RwmFi?w#%mHhxdds^K@mC5^Z?6fw3hbG!lLZ+IY_j)cr0u*WnD zzMw*Brks!)5l#Es^AACdC?mY3jT%~6(qXtKmN>=6zoSfFfHf!UcG~bnZDPu1bt6%R zHv2L>g+wtnpFFf-tvc0GgtMy_In`F=t7LTtJcm|xy8+M60+zy0K#6&4`rrP_G~`dI zoBsw-q^NM@aIvo{EcmnZ8)+S{vq}u-vtroJm+*p`;#H1z{p~#r zX+Jis6P`Hasvt9<6I`0Pu_IW@o`J+iIZ&-Z&md`|2zX*;d7e1Ei|$vM;JG;g0>x(m zv!0p8)Cl$Kfa$*gmSyft8B8+*XdwaILzG=tDi2jPpadH4uguuGwf}E^Dt5)nHy7xa zm@x3y0e&mcp%SQ|-fH`p!YVR7OMeb>@d2QQ-5oO)2oD61iO&PZsPbbGSvvM*Knobs zjD>EfqX~%#GlL5hbFgQANumCBZSMCZMJwth1oE5qO8E7B6K>rpJ zCh*gcHZdvC2FthRfA3p|pxBs9gTftZ5pmsxNOg#){PGO|-vE)EsPn*3htNPQ1`R3< z+MC4lJSb|yT#ztcIPWn;jP($>gGXT-dQG~}yQdJorb(5y-Z>^@HeRfh8R=^P9^oe- zH||-o??=89fXk-7DyL1rO4PFM+laBG45lmxLUV9fBWIJqLReMwQOOhLA5LS#B%!|y zV*>9q{Uuz*o&HZIq#k|xoxbnTL9)#CWln@nnPkd$hCP$9Rp&T%zZv$p)i@vgtAFe! zqrT`W1dP+86%)5S_iWopQ9&7${=kU)Kv(Gy{%KRu0SriNQZ}NrsU$C<+r-==2Hjuh zJHO|aQ9dVO0?_7*9NPE|FD9JSoFYpRq-HA}kozkYYQkW& zEtO@x_B%>yEpmQV+8uH%MoruyPozG%1@&8CXSAwXiH&I(M?_?pG$q45GL1+LCvcrP zti13fd;i1p=I`uyl;e-`xC*cqdMNDI7QFsPt{XIsAf7p4{8$dSw~YJpJ&Ml&Kq zK$=THs-q5&(I`#1Ui{w3w?`T;S-$BUrL+JchQdz$o9<`p7-oCfyuf7Qq=p$ypCaYX zF__=WMhkjmp<@-OZXvh@xuS^Q^gb7N5{`5+Uy!xH?R#)aG9ds{73z5&Zf)@fsq=_XyomFMRkl(0 zEGrLy7=BLm$cze3>nep1-!NP{Dj}NfVm<}i8~us7G5k_Aqo>y>Z>wCDNq{?RThGHK z?xT1%ZY=$JW1&+H%28G#fWFHcS)-Jtx?QeGLS)&Y_-uw;vz`i~gjBVyA-OaX?2|9` zk{SwqA}2SAgRE?n`|^scXWFI%S1D~&W}H-!A>=6)qQ_cpz9ls*uR`8~=PfduNZ@6q(7|Z91 zg_Ps>F})ujIK0f<7RsmKQtNAZV>As?0~tT~7YRvd4*-aPf1i9F(yy3Wf?bv%ysUbu zc-h|vjWH@nuKSzHE%^21Wq)r{dk`1b{h6sf$N_2oe6|aS^Kp6pSncum_kOge9PNEE zJ{Yd;&rG`U1KD{X=C>L){^RF$d_hcktWf6eTqmN4P z*811h?B#Tf+K9TJy+yE&zK)~SJnW80Ptl%>Ucsobe$(@i&&B7jUS^mKlRGmOlU?&b zx)<*Uo&@&~ub+LihDHzH$?|QseP@-BDj<27R=?%%ORy2~FBAa)AS!=v47;-XcmZqo zsGr`Rf1?%VBgel!q0}} zBt6ykY)ximVc`#hI~YcXeaxYT1IOy`EB0>B|E70+=gT}kXS07}n%I<_^E^&2fWWx~ zu`9bF`Q9FtNrqqej>6PuD*)e;s$HEZs4! z5M)scxPf6gNOywJVP~wzu}{1{C#JrVE5J3@SYMZ~|4ug{C4iY|glI$!0R8*;BeydW z8WG=dfH_k1_wf?|No3$tUZcb*D~EKFzN$>Q$h5U2pKX%LA1B90x~p!5g#xwaY}$9Q z5+}@LSI%#d)C70|(?-d*HhSn`fZi#ktvvQi-Om%#vJ=!+*^W1)_8y>(_Y)3+>_bt? zz=JZ=eqOTMF6a{5+hMIK%d9d{_qc{TFPN5{6AL;h6Qjp|yNVVbKpDU&Cx;8>9#ECX zrOyLCLfpuQoW$Q4$GLz>!noerv<83xN53O~l(9;`Xj|cj?m25-Q6BLAL$oz)nkbU{ z#I6MZOM(26|zdIg=}IU@j^GQYv~ z@j)~!GF$;Z=tG2DtmC&GHHc&BR-=al(K3NJ6WV1Kzf!}(*4TyPa#y=yX;wjSJAe|{ z%8}U9&~KeRu3A?(4SKS9uR+Km`-EQ)a6f1l;CrmPp2ii5g9nMm$mC%|bQNz#8haDG zkGv#&rr&ndaC}ceoq56fcrOYIG#uii>%E`2pw^F@^yy7`?rgwp>xCfXIlkO0aYhht zWcy-BA}^^hS>eQQa2J1Q02|lZiBtN9TR!-0xE*mgyae#ec*QfJ(g|}a3cWQZ?(Yh? zlj_Mdqj>_NKHo1Wsh+B$@ojSE0s%w54bWB;hS>dUGatHY;vp#ui^1Cpl}fODAfFZK zHP|>fk$B^pWWC-dS#Jk`tH$FpjL#2t8!%oaUh!VI$)R9=+tj6=uD~$da=8_T^mz|_ zq&p!i#0UU9-R}r9^sI~+!q03#vOWSz`p$(;;t+sE02;g8dsbbdr{;@Ta#S0yp@BCz z*G`a5EDA=zhjPFE`ThkDhH_zCBH`s%VSYXBSl2 z`vr}L8_9epJ~4ETZ6@rFPVED?lDiDixOoM#@uN?KTVaOji{zNxV@rc^Viu8J z^+dc@@dko>f8gWjP$MXG@K!RCOd-ZHmUWWZ28h^5cXSYseA;#*C!F&IL(PN$;%hH>WzLcgg zeI;wFq#^>^vhl?D;elU3fYIqOVG-}t7cuFy$L!-M{9XbiCo-CQd@?{aJmFFKQmO%ck5btffDM0O?>|XUTmpJLxp#YOnX`5mbF{Aq@)&% ze{4_iBPHg7F#@39vQR;wj>_U!qC*|qGLmcPQ^yo3Cjj#Eii$+EjdW?u^VY`0i4Wgq z*Y{89n*6>6iG07{B-v&(QGI}sLE;iLo!m8*F;g(bb2|Z+XvcxNM6|h81!3_qNXN$p z$P9Rl0}w7nurR2Zt0r~P6?G-#w@M3ufMSkRb*x`e8DbT2R5DI_O)3-zCKQ;NsvrYz z%A}o92!jtP%ANo(-aOHyH1HPwvs4Fk7m24*hJam>iw$X^1dc$QERbm7Iy=#%$WX;i zpy(iiGx%<3irm2U!J?am9n^!)-l#o$+G=fh0^oOc3@`0f&00c6yxT0V(5B;BLq9He07ZEP+$b0*M2We| zz?#`F(ARe*g%A%LmB>aKL);W8j*vuNh?pgIcGVD;HZ^YtQMHAlpKc~wGam?XeS_0| zVP|vtJOQ`B zZVvc)(gimBe#H_ix!B2ZcfwB~g~2%*U54XUxwuw6N_(gb1SSvOgDgqjL;V^lnw`jH zVwhJ2wR+_BB|tY9PR<(ydFMa@=Y`aK%veBdvocH*SkMrG1B8gtK;D0;{`r7ELt&Ji zMZ?S=cOrJ*@7UlS;6^$PB6zbPGOw5UEf?T1kv;VEA@v7hx{?CNamq~^0l}h3PTude zsgGSi&#n#>LevtUcD?-hen(VG`3s`uiGj*tb6{f8Hfs_+>T!cP6xZr>OkL32J2wCT z;K0^N`Fg!f1NFow??he^SU6md?GoPLZiIWDK%yb6E$!V)?avboy$k4!2Z5B0!qgGT z?+1Pv!!TrSBe#!eha&J`iPGdeUJQ^fcRsI)Hyv0+O2DBlF*P%s7d6R zj|0tHWEcV1JjbP|d%ZMBns-(ms_M@jOoa>XK?0g66K-s4)v>hDZ9|oY59AyZZm|xa zh((2IkO>G-D<&qQKgcs9CrW5Xj}S2*lw1{BXT-?>?*gil~lQ))ZzBXQ*tL!a;tK)L6BWvd^)&Wxv(t_PIdP#IfkN3?qVzi3SPE zXn`8g1VL&T@}nwsqy@^}*|Ws=!nw9zE@_6b5>!Jhea<1MhFRs zRp!fJq|onTnW`x8k1{(!A(q!XuSq0jh!{quoZmit2p|3q68 zlPvQET@K4al^wfFfdILqh~FO& zKMM7)>qROZ2clSVW{6^A)coQ9?$?_>FJR@JmKf;!sIX0adr{K4cw!F>?)!<`-HEM6 z4;OMBefYood5Z>BNMH>h&Z5Bh!@GK1V&KtX#Uca-bs`*6*gC-Yrf}uVRQapcmnPLw z@#qA$7+rwTfP|%=W?hnxSi^jH9k`gO6@cux=;V@|{dyt~VWJ;mRpn!@7;NUPaH-^^ zO^IMyxJRnW+`v(l~EsKk9v60oQOQ z@t(kYI#JiQi4MZ65yT0{{f*(9@IfF5JXWw9kxP?tl1V$E+3T}ROu;M-A52LY{3hb_ zM5qBq_-c zCegZW)gW41S}GaMIpVvHN(yjWedrbhZ57Tr;oeZShLk^=2y`__A>ym1d?CTckTk%A#LE1ye~O`=5uT_K+e#tmEke!;F|86{3MWIEDKMqYa;Uy6Eygn(&V z5M2AEDlMZE56=L#!xhkY&`^_H4?7aeQhlip;kid$dF>ocyl}>Z9Ru-DT^(R~YLyn( zyg>Y4_giiEm)3J0z%m^&c{o0>x2X3`nmllGaz{mc`hlQ_FYpGTC#4zfbAY45hu6w@)`6_w31eWG4s@~bo*viOuL}+jpgh-{0_=D{eCbRj8L~Zlm1v@( z?iCM30vrA=hIFQOwl^vbL7Jnet5~K-GM&H+)}*0+qU;snYW3yj{eHX3n?+L46rUMV z#WP`OJ7I)`;lXhaWeXd_6pWBw-b-z+9Dtir(7F(+b1Gm0iY{WEh8+A^5lNszxx;u( zs+cFtUeJ5@v1(Jmf}q`%6}IKk68lk0qF^ERfmbd*>vo2SIiI6&Em)B*6e_(tsz)tn z!T)JRzjTtDE8m0EBH>N?_7L9(sin@m0a`AXbb>7R1%YEjNEkdOGs8_GwY)&G?V5@} zC;Q4!AXy`NEo8=(=yZ>c0mg7OM>f*V*pHg@>zx@9x{;zD78SIK%T?TbNwwHH_=IEQ z2m+Qfw*Znlj{QU|`(}HsjScUTV?yG#uC2Jpp+|)v^E|Iz@zLQ}%6!dFp^yKPK7pLS zDv%{{GEpLdw4IDt>EsT!bzW01KA%|`bt=gfd!v*TMVWI|G#{ZEy{ai_a?Q$kzb9-U z)2s?*+^WiD5#c8`xOE}JiIKtMUT!g$gcSgy%FF4Z8B2bmgX?G?$aJ|}9D#+r< zikbnOuOPOf2n2|J)6E~c`SVMrO;>6p_^Ft_-AsAF1G|Wl51xF*90L%n4=JruUXzy#^?t6-F0}mgl}xE$yO%`@l|Am0$zicS z-iHQ&jIRjm%k+{yxFP_T51ulnvKWo|)3EtAeyRO=&27^Zr$#{N)_zT4dcPz-?c%s3BTDC%iM2+35=U0@ zy5~<73edAE!-Xr)%KZt>;lP0IagA}_mAa*1ViDDWZq!Mi@*E{%a`+%Pvmxuxx~t{P zE8DrshqA?n1E(o8!1R*#%dMw+!rV1iPpYc2C^1psD;j$6Y7tRGm&&I~TReFSe$}cs zCAt%tmX;})5w!AjKO$|eRjH6GFHj-#v0hoEz%kDibQHy}GrBlwlC7GQUCfxEIz$rX zdCn0=?t>DTh*p0w!wpass6<^XLzGZm<{`(qsZ0%SQV`*8!Yr;Y*?d32*`=HG6CV{k$&HVbjQBYrC%p{T|1HQ*igBKyr#mc zFHa)G&@z>6Qqe@2#u!lfUY?%$CP%Moa{aFSLu9k`A#D|%h#j32s~}MNiXr5 zc*rfoaHkbPJwIs`2A_FJQBWQ|mSnSZB1Ep$@w{6GqMGI@ce(D5%lwFIMxnrfbEwQ0 z-mbI4HKlM@a-64@>2xa@nQ1g`g!lU?ABSi036}=zR3y9ejovVxp2Zhdq7kpRb2eSG z2vtGH6Z&erU8k74rV$=aUY2R#=_C$o;iMTuMXD>iN~YGeKDU%>-r&VH!^W*5Q=u}! zPuabiI-G8Q)TXIA*-W+P3>2yW#)5KuSt}Mc?i4J@Nc(9pJ1mqH~drdrqD`?UbVh<*1#ROg-*Kp%C zw~lzM7mtIZAWz->44vW(<>=})9EE4y&ucE9L%pe|2kH)&Ot<$Ve{LrmF`tJ+5&i5o zdXGqhzBBKRH&>ZWt0o_^(g1gwxjcK3hp6pLeO{@^<(e_b&gD-}A@kIOXKhZHmA;40=tq(q54J-m zCCLoP2xQBWy0le)^s4)L%^2L7v&Rf=ppkLf=b5tie#ryexk1D6p5#0_FL6GJj|(H4 z`bK{MH(!{1+5H7fycAp;3yEbMuY+V;C=_@$9PRFVPHst)T?Uxud1~vo+`f$#6w?`l z(ip)$lcYk(vn{2HX`o}H2PJ#Os_ zsqCCUx%qwfOw3#FVfNgbzj2z1XVKa3n+N-g)Kh-Gpa7Ezw8g2+T>e!uC^1}6d<8_t zNE4;cE#(twx*#aT>1+cUH?nqx1dwja^C+{Tm6iFz0(pa=kPEIju^~^_d_DSpe|#Lj z_Szog!v~UVA-{qv7NLScpx78r;ehMlzQXalq+k%W|B$HQvFJF|f}(@Ym`QW?k+v#2 z5XAj)a1tG*plQ;{e35hw0D9p%7S2W$2@trbqt(QVAo_kDH~A%d_V#J6S{<#~6o{;h z-18h%HYYLEj?=SvJvH)#)k;nh@`jMqbdII-ijRy|62_{EbPnfpQ*MHE4r$N4KM3^@ zbszxbEU4q4LdPN|6Y{=Uckum5c297|!wiu}L`vh>a|eoKCO|XWxbYEG7R7am?kH7&BEr8*VWgCNjhk3g z2%pizMD;m!irP!jnnpws+0bbl5P(1wzKlioZ6_ZSkAfnpWC33?lo0?{sEbaS4wYPN zZ&|^idxG?JS){vAQH)k66L5aIyaplSTlX|P4x3F%pzFiMMtp5$MQ zAQbr>5nsXn*X7HBYcTqA7=(ts!ENlGmEMQQ9=i7GF7GstJfZVj46NAXg72Pc1t3S8 z?yHIskbEUdsg4fAOWC^$2g-4?Dhy}w5DA)1B4MFtj&_*HOrTeT@Hmy3I$F6XO>`5Go(*3ZDEbXAnYd~YI2X)7A3Y0G7 z*`2*$qjEvzgF+D9mYhUId+-pG146sdG=`FSuw#!EYMFAT&}VTSs|UZprx4Ng;1pO~ z0P)HxP?v26r#i9&fL-}Y4$$Q4K>Bw7N;z$Aw-e^Q435aZZDF7&edMS z%Ku(80b^x=SI1OpgFpg)@(yBZ9l9@lB?8E=UD=lk$$w!G_`*_f zt*-zkbKtKe0Uu6HKmjgFfO)-kAs+C=@76EG1J~0;D|?fY zm+uS%Uug`k_2Ib)3g+;Q?I*YgvJ!%UHW8)4gW}*;|MMU+5FbHZbJkf4G;4c1X6?9; z5==1|d>*t0C-=ZfU!WsuoQ|O1m$k6&Q$Pu@)wMgI^~04vkQNLr<*_N2YPl4TKZ`|14Qbg$dd=L?zj5* zZYmGQnKj>Zm;(QRZtnz0aR1j?H6PezzUkP5NOp@VxZQC=%{O3O{9#quu-t^PLsv=_ z7G7Sl$f>@b!rGg|WooAJT8q<~k~hJBt=IDdblMJo`SXysMIapW{rwBr_>HIzomi+u zx${jbup8E=U%GeWQ<>b76qEDbi^}vqx{|%P>1iNs&r!L-SXdYt=1ctq^Thco59yvm zx2>Qo$_Wo*7lEe&Dzpl#|8@9Dl4;1?Pn)fLd6c>TmBr%vF2eaF2B12XpQM1$=?HzL zLp=x_uC=*d-JK8xOZq}tQDyFfeI8!_F9Z^|`V=BJ3X5_?S?5>A4U(*oQ@XtAM3YP1 zPn~igf?&Z}zR*h)1?QnI5*+m;=(yGYe80A4<6lb=%{b3Lz$YS7Hx+_;zWx66O_4lw z4f>L~8J(&ykK8V=pW+u;FXsflcJ#)~*2eO1atN6pJfUg6eu^68?7EG^9-;!^N+4C9 zI!@))aafOWyuJSO{V|VxDMokPWM!n%krGIW`(@tT=EVk14Z5Y`lphRxK~r!X+T~-G z-e3OtexJ4*aS98!KuY046AtD9FcXhyaGxfqUC!%WhwZT~Q>OECN!?yf$L%65`8a4u znC9ywCB;cfZd@c^C`X{f^Es0pMu*f?Zg7oHE)&evxcEyx#72Vf_rX>YPqvbSlH^IK zQWa_L{WwIcu~=_ZCJf$GWy=O}#%DTb#124|AUIiv$T#GzS3D6a3s4!bRC(%Hl7E3H{>_g9h_o? z8_bYL(pjOq=j$Opk@TwB+#TR4BqxgQBcB+cvJ*k)Q%mOuGTG|GCv6Y;h6{PyPF z=f!I>{dRU&S8vnOt$I8yV~_Cjbwl?@UeB60ur0H9Usic|IpXu-sbc-`ChEWF=jMs* zhGl#XnLc%YVtF|f){xgX`TJ|)3}apy^^ zlZ201>=uBQgrWy_<_TTv6P8%9%$qJu2E?|S<4h$$^f*y<~YTwIqxx#)g> zeDcS4Z=T=XymrpIyRNc_h>Mqt-%tJsrUvT%P>CtUZ`TOf(YP)}51DPTK$9d)XHX ztfF8eBo51vI9(DaI!cMVTWKoa>NBWwr|0^@!4>u0*qoUjk~K(LvQK(1R}d+WomT4$ zZ(8=78qI^YsVHL>yUf;bHBZ-%*x{6F^BGi*8vown? zYE~VD)8rbmNw33exm`wH6dyYng{F$+i-VNr$!eNAMp5It*t|ijt zf>4*22?s}cdKtYpbl`1w!)IuVVtGEx+mUt4^3e4%@AdO47v1kl7LSS=qW9|_D?)4i zZXTsPgxRK!*7UJU<<;0csMx0VU#QTN=gP>V57SmeXfoeWCX^ltC0S)``{a(}bvKnq zlU`+IFUqjZI+J!RnWaP4n9A(8M|PItcPu9zG&`1vNt!ykU(itGS|%^&xgEVxwGmf6 zE9lht{z3*8r%IrwO&)^~6VmIDjHzdx$e7ky`;`w5~s?(oR#L|Q>h&iRy{ z40bMx$rC_wS*P^7QTWZmU7Y!ndB0cxKZ&N|qKO$3IvAvN#Z{4DO}94O*h9Vo z`pvt-7bug-7jS7WHx;MfE;cx6cVtnS}a$U=W0L8<=S{mfbCX}ez|)wKg#Rbt32-4)1yAZ zwl|i+)z(#}_uP-q6jg;~W zH)tm*47p<#GbYP8EG|AtEgAH`GgN*dqs-#?qVew3XDGwh&+@Ilry5+@D!&j@R{4%` zJw~ywaIwwqV_Q1ff1h_B7a5)a{OWKN0lFKiAmdL9u(*HZ@MykqHNZEURU~3e=NbBVI&=wD7 zI(RU}!b!r&xOgzd&zKp?0S~6wF3Z7#nPiCG2`?YqmX*g$BBV@)s6-$Q!_(IUNptyRv_y&uO|nb~Ib3Zl zCokXXugH9l$*Dtoj*AIXX9+whFP|)(QBFAI$|>&XWnW46`k04grA1s?beQ=d%8Vk) zd@y2uA-`0FVjwz)jV0?m8c=zAECSgH!H>`wBaewOLgXtho&dx(QO*RIE8!YtPY71}Vb|pxm?nTS zk%U>6HGS!LdM4DBM>%EzBt$%%<*EZI0H6=Z(=T3zQyH%FR2_s`RcT_rN1;yX5}PE;hA9+!)5&;In`*MmPUdSi5dV^oGGV)F4t zBbSAkKn?+Ea1)V(ND1KWNm+C_0kT`T5A~e5c?y*666MSdh5QG~qZL43>Aeq< z*xMwei}Kp>IxU@T&jMB;pR_x8c6dLJmopS?gcDAdbwnqzusRs9xC4O1RXTq;sx%bT zPySpTkKN9Mai^#}*=je!gLGoCl(FLcV%#OWUPk0<)XR#T63jD0HREng`VI5RPvO0fYAr(nuyph^t+qH@)S6S@Cd+=FwE86eL%Ew(&&8d%ry;uSP};$ zmqb%8iLX?_*N>B27ylKoNU)qhtJ*|6SBVL8f>Dnw0b@3*=q$5ysh)Jes?S7?;0CYz z;{Yup66i@re0x9r&es=gJPE2rQsf05B_$v4O* zas5?#4-v1=Jh?p6LDrNx0X%J7+VW2q$g3;NT1*G+E~N3<7*np8k09l!A|}==Deh0XRg?iMEm- zqMWD1n6tVZ07^6gL$7T7qURysi{1wM!BDPpPH@WOd7*bbKdQSbSK1KABm zw4mzDuQ%@MjXG|H-p``!s^D zudRWcED&px>7X)a$V*Ak)qH)SIERjse4#~Z4a^|N(n;L*Gg-+o{Upiz%KD2SGQ6%H*!aA|o-dOlJzhe(oc|U1}(E|Lj3}M^pAP%A}iU3bCV1 zk41BOZqlP~wE0PP4Q!NO534-n6Tp^_a>iZ{O0S_5Hk$BmhN4{Ee4W`-+%Nzw`TLad z!Lrxq^l6?Vhx>IqwjmUuap3XTeuDGc;PvoW^7GUh^+t5#xq5GDE5~&aLW)KPkK?XJ zS>mnbb;f?vwm}1rX65l4ulB zvjj3T>G|4a9ZFagIR_6Wm7D5WT_71ndupMd3%VAKkLt|9a?T+UgV~N085_%-48#2| z)$&rRR~ zyJpYu$x?i2XfC;eN1X(~DOVq;1+^?K@S$aLzGLqqzO#Dc4LRj`52e3 zuVSs?M8oT=KoWE|p>=^ee$@fS!I^h?{uhc-)9$va_Q$Xgt}87#RDo6SaeBM7L-4v5 zJ|9h);&KU;T++O!%LIz-;q?98&CafLC=3kGHM^Zeuu;oX zTSM_uy{;~0H)3a0xwxRE$y>$K;x{*!!tx;$&%H#sRhM&1Y`ONS(gNDmKGC-1l@2Q4<3L-p?t} zvS%t(L4ZTlk$zRI1XgZ-oJyw04T&_}4aK9` z)Osopps!W<4eUn#xz!f~gI-01kvehZrKAJzUbMDE7X(5LRzDRz4B<9GU%JHO81iJ0 zj2=cXdLu6#rZ6a*m&WFN__w1~d@$e_3Upl8>MmF(4Z*i?UV|6H@mgHDlUNHtu*A72 z+D!_ zK~@lR;HVVgpvXa+HKXWGio=~lhX!Bcr_PJZbtpemQ22Ku^AVW_Nklxc&_#eKDYgn-!;>y!v^kT!Qb-_78a?l_9ud#s&}1<>M_C&5 zw8JHxbS5pa61?4wuR;Vgd4*^cXvc=6BUNW{Ta_DN@un}svIzGIDXX(5FXOb|KkW1U z(Ugs5x5s+;>MC>xLI^T*wIjmUuM=vnhd#O2;YBXmo@C|vcTcy`&+ptHFaOkuQ?V^y zzZ>yhriNUa$Hk@sD4ysn9(#o_bo>_cnlOc#s*6?XQ@DAsr*4Tm-$%fYCIa*#d1qaunc7am%psxv$&73X1EP7kqGch-pu z_j)+prhKIAx(@@uqJo705wURh_cdk@L9bQJRLBtogjdXz-o5B7GARvT#qCm%TDz2u} z9|7UbXF<&J2zIwwkytT(V;p*SlJJ&MAiiuJ%KYNFOqo+}s$IUtDzxVaCX|cHixHRx zLe4Irlp%v>1>dr%5`!SAYf&ZH4}s1jP5L0m%Kb3A{V^z??~gC_QKGgZ*D)4p^YU1W zbZVQ_fgB271Ao=F(-V+AvAQU;0A=oqw~pK&ulHnjddx$XD^1%gxVE@;4MiBB^b%h3 z57#B z1xmjr9C19=uLlntVVKb2jAY%;ZB(F#Zqn$0maa5~#ZO1A+|6#_%h4RwuUaN^`ZDx@ z|Ftjo+qcpGk!03F=^>m(dA@W4IJSq2&X19RC?}00kXTLF9?FR5UeD-ZsVIY%qH?IU z`O6uN8@D2Wn*d27>Ge!5inGp{xE~RDZ!X(^ef~yiDtZnNLWKIm7)QbcTBpF3Yb2;DTavpi%KhF<_Vd)3nUl zwC+t+Q{35z%)G9U7md##4oj-q1mw8*EIK$j$jL{w9jyV!LUK*Ls!RbO@ytDv8;N_q zLUc`Bs`cXIgmk3?1KfS+iNb!zI99bLE$Nn;>&B2TINCs8N4795n&IQnbTTSaS)kE$ z9i3UDYY6wFJ+H$~1?}29QlZ*{BMl9F^+o2>z}Fm?Yz}@5G;=NsyuokHSR8`-!L0V_jQl8YFu8Q+MyDpvQD-U z;FcrjRIDC#^(hNc)>NL}dWteQCX&k8qpB_mo0q0Oy}OZLyeo9NZg7%U50c&%$o`lj zj!-*0XQN(OeFZknxkDDXmOBnvu@N9gEibxR9b8?C#ZTGrAgmLw76;ek{W@@>yFifZ z8|Chzs$h;O4gujnhK@MISdoh+T<{Jg9=| ztV^oom#52kE`Ycwl8U_GvUmAj-vadARdw|nq*wH~yQ`BiE9!q~x!&hAHxMUPfSEMj(al99KP6V}88Rr^L~qHDy+V*OWRxNHgyE-qk(c9k;$ZTZM!| zO%!kQF`vTaTLZq8M-W2Ko!m!g=uu$4c!LiPnChY>LXY;&W12)}Rgy_u1mNR%QrPvT&!h%Sg2 z?{mL>6tPuoha&7iVNDlcLu|g#XX&RLQiGB2S?H%^v-mmk|K`Q4T&dtNDUn;YpZ{E4 z14s-ude9a$nABT+`;Crjm@fH|q***qi^>n?i(`Q*V&fQXJw38i;B-(bT*S|jiON(xmbpV* z=E?q;McZkTWyezzn@L(bfh*8c=mD;|DJ*Cg-)}jgnLHul-hsFAgC7tBB)1huqigfR z%i)=l%Z1r0)E^mZNJA^p8`>FA=c=RDdzQHN2Ws&AR&#b?_oFd)Bz_1&Lq!b1y zD2ao`im6l(d9dfE%7aH6-rnxbIiIiQNQ>jfo%Lm$ z&Dza<2sfIZK7}UraOGV1^zvEvF~Q}B6q}*J!C`9vmcoi24m3T!XMZ%u+jow}My(BA zB4$`qtIN9H@+tLC_chA$pcsQKO zO64S3G|OE?FWF5O+CgE+>lJja9$mLCr70q!I2!_we3CLCYsCd|^ssrTzWFA9ULj{h zQRgT(1S2BbM&`tIqVA8LqnIQ3b25sv9BzcSm+Szl3}`)KxD=XTZ(&}PAj3^P3r1o2 zABlSaoSmhr1ql(1i3VQ7%5mw`-p}%&kG6Af=5@id)HocI6y~qH>9KGCG z43urX$Xkf~1){GCT~+`@3+*MmGh9?7>)V41-^telL^H`KPjJ~(>o8i7^zzh095-50 zqw8z!BiI@qA4FeaZE1gWH4&DYhQz~ce0~?wzq?}NnE0%N5L#NlfCsy!=yVI6~MXN=r0E=JtqkW!yaz%Zzen;zHKVsU$h? zu(>RHRcI_Fi#40FUzm{)NHT*tTBPj|Nsh1W-O*Lpn1G34Hb|tvn>@-Q$svxBhf|Ny0ca{HBS^vK zXPw!C%)Ox{gnbsS=INR$l5No0*|CBc48VN3wRL5W5E|_|{rP!J1iLm!;Q(fX*dP)) z!;{}wjvURXjg73%S+fTk6L>3yebG5ENMIXP<)n;>R0)33aAn_4D|2s|Ad(2Tg@^Vv z5lzudXLM#FgqIwBi;W+8oInpu`$KthG6tq6Pxxn<3cH6F1;H~b_FcaoZLN_Q?gb4U3i$}d5pId!tm zC_JWLM*qmZgMO=%w~W@<$e4dVHs4gr;t%Ec3pqSjK&4)Uy-+phhk}p+^PXxFia|oYkiJq_K(33db2^7KfkoMfMF?al4^h?Gx=_-n zJZAydpypKg&NGy*%5@SVtqBrRQt6U5dRW@DT*w-QuoKlk(uDy95D+(VIaz7W!^)^Qm1_h zu8a&pfb$81gS%|v=tstM#K}0_k|dgO@^Tvhc1EhWV{lqYC$*U}MmWG()k?sk(JsXz z8dzGim%-(ahfTK=2eF69U8HN{-jn;|(_9%jTO*GDq+`uQtVPHT=OO(UtuAGz6IcpL z9p%C%FUw-d`uOf9vSQblnd92_yLz}E86);A?Y7I~0h z%hvr-pA;72JAela@QJ!|6@XD0V#Hvy5m;3+CuJ`?Ao*6GdabfWiPrE$a`aHD3x^Al zi|7=041|CxXKo?aUlHj9RB}?b7a3b{o6sdGsR86D!~d|pqRzLYjJv&@aDwaeH>R6n ze1HuPu6}7@aR0d}fBQo@bTvJ4zf4p%GJ!@^rlNzr&(`mcw>uPlolX(`-~y~P$g7fN zWWdkJ29Taa$4SHQKidANPfnhp^W!102xRtCxk*MS0>QLkbz>)%loAjV0_9tMa+WZP zN;VU)wKOo3;N0Cxsv9KWGR_Kz=uR4J7K4h_4|K-q*P<}uzSvZ})&{2)MQ$rti$FAusVlc|(r6?50416wm}UP#57Vi+ulvc9aj4nh-E>@)tTMuKO$RnJO9L7z&c3MP)XyY% z-yikKRHWDi9sqMIc*bw$Q0`0^upm_I`2 zQ*_c89RODsJ~WCd?f!O8G&&wH7ln8_bRrx4FG6^B1!H?UIBlYzOrmpjx*&dC&`p%N z5{DmnmqogFYyN(JJB6?EnIrw@>e}L9UY3KO>gQ-$?l&kS-?;CO`jnqsSL-N32sB}r zo3c`~Z~*8o0-oa0TU5x4@*tug+lPfkf|W?<0@iT%k;i7|hoxgya;Ghxj8gdQymC|2 zLj;;7O)}CnfCs8x=0WrWdV`KbqaCYP=ds^E%mv%g79}YOnyO=Xz)n~_Wlx+Eo|6Wk znX^iH@-Fjcvgc@4&VuS$v|%XK>h`7k{oQO!@id!6c0n>c_$1+>Wo7acJ68 z?I?=Z0J%%G1bi(h!!1(xNBy<0OhI{h!*tpo`0lC*8?yuY`NHDZT&&-^Kk7R>B)c3^ zk)NO;z;r;lMMr_col~4-c%^DM|MXd(eK?&_N2mBS&tv7F6rGyKr2{Ot({6|`C$W65 z56YKXgyrU;3Y$HEHiFoPs(3ZIc>K`d*2S!Vb3Sd3HD|1jRfigYrKF-mMHld{kW?8 z$B}eIq{~@n(jXQ^_mvJ3Cn6{*oW;@iJ+rHLt;@hx74il_2*vEi0>U&oMJPLiXB-4A zP7#{zB!%ROyGW9ASbFwY;PgBfr4s1iaguy`t^h(G*SEVhL@TO0J7yBdALqtaM}3m2 z5Cb3e`bGmda7($@rw|t?FfS^mDhynji@%zZEEN%$VI~h9v<<&BDWId)GWk;doM0S1 zis{AU>L4epa*{yM${d9vx<=45>sU5105oUKj-Y74{nhguI1Os`!^egE0Fk|}cP4|7 z*uHD~f+5R;AW6m5b@TMStq$Eh{d)7u*^A|Me^&HodvWM;^YZkTcwz?>f0VPgEa~#G zdb?9Q`o7!Q7R__!fh6a=_PmfbMRVJ|Be0J*hc#mLV;{#MgWVG~Ft=JEFAU{V@Ul`9 zc+?2__={&UR1H%0%cP}uB@#J9X(R176D5)k^FcZJHp~NHoMInk_y@p=tHac@M2R0l z1bI%5=o0*Sl@NJQdM_qDY&1NtAS-bKe{Y`17B!Ou ztUR6{wg1^vX0J9Td`Rt}9W`AIfuh-*Q7Y>gU6Nm9owSxlR$eObH$}(w(m1%SAj;b7 zaBZB_#l_R~;T6@Jlne~Nx4-!`Ubmwipb1^Gp{iKD^sy3~TCGPORlO{$s3YO;6J~$3 zkXtO%8zQn3XemY?Z|>K8c@&qJ8WBNp-1d7tPi0k-Pp6WFFjeuLS^6x`0?yJzQuktG z@mkko15N5?9nRCC4T;509%*bi3YazZVNmf}*O?hOrD4|hZi5Ad^`ZVLD#GLjv>ELF`CFVdBWOK51P=y@CfI87sS* zmT~$~lMj-ou)v(b-;1c6cyc^Rp=G@D7$SNZ1?bJ5o`lm@WT-Lun6|5T0Ce^H>*-{? zK3`|H>#+91)q@R%=igLP8KQaIHNntS#i2~+CZnWk4!@U%rks+D{1*{++?&5YUjO<2 z*jKfWqMi>FwpThYyM#-2=0G?n;aP&~jRW3vG8xLl`+;Y1kLb<><>lPB?fvn3Zp7CY z$SsL|2ISnsArCsOzUrVK`QKUQ$vty5h_0&a$2rpNom6K3@mysgCa_}hI<|B6qaS(7 z(X8H&I@$(K5uQ2)g$qvG;U_I2aEbeeNHyt3r#|5QUHxF8F4S{wB1T7<=g~X&)V)9V zM|Y5ic>06oIG~rgX~2>bzIIo$INX9dl?;R^tJ6ztF8 z5+c7It=}InCs(u|$W^r=;DLBP6*?UhPKm^av|4C^j)xRX@Fr zJ|Md9;z6v;b6t{-UV_2FlZ$Wl=~GIs9VR)!v(i|h!BD%Y&dgl>e1oh-2knPW@LT=m zji3q?bd*FB^>1W0m6Lo|={#w9BdS!1w7d~VeSUIxKIBQc0UAo_&xLY@hcig?grS0W97wbU21hAQi9eNrpS0G zva1eqAi)=2PF672`XB;e=*0a|-_^wKZVkf0r`U&b5zpR$Fro=z&q%;PboY{^1YkQwFT z<&d9ceG_$cCX#6Ad3s}#TR{Vm75DJbz~KCU?S0GdCC7E%K7Ylf%W}%J2P?R|^EeRwOJO6$9dsIK}P#jH03A_*pNK?PtU0sh;r_S>`_MxrQ>U*=c zqiVHkv0I<ufwDJF9Np-v6yCYgHX!-AXiMHeXpqX6j~6Mgb}dVd?tb?Jy12*t4sI zwMlf8x{p%3pQN_k-{m<{S{#5jq?6hdL^MpfHiLyVa_!hp4DPnQyua?5E*`j;7~6;h z%erT(kv_=AQn7TI)xN!NIGbttzZ%P93CzPOl4KpNI8!zp^e#LbJI3NZW8t2kUeE%Av%sib z{(^sJz_@DBu$eWQ>d)IoO_AS~*I0_dOTl!;RFA1KJTVpjt|ErTNcw0OBPX3_=(k_K z?5!$17vG6u`{wFUDyJ?fG8NDel+4O>acm(xgxLtdFoHWUOW_E~_ac7_Od`(BR=pu$ zBi?IKWYw1e{UEdLWvDiwbXzFukO74s=yI9RRd3B&HJ0TT!`Kr`_1a)#R}1)m_F6Wx z(X8)7a$*=29R-4kVzpjTtEwhv*Q^S@ZUuXW%neqnE*2}Mk}w?tM>_-W07F2$zexm8 zPqm><-DijC-p2D($tf)-?J2ljik6_QF4i^78T&bvP_g#J}df9Qi;H+D3)Y7WYJ!g(5DfYTosw!1!n7K=lavJg)MN+8s-GK zw{FT~_+yr#2W@vg%vQNkLdC^mj^-lmNox;>5~^Ww?7^HMcju+I&-l2q-50o1w#Nlb zTINM90ljy6oYAj{?R9Sq!3-*l&9;9pMb9&c&N%KcO1N%3qiZfJ`IIfy zsoSL9>J+1D+i5k@RhA92sHhN#o;J)<%)gpzz`Nr4oJYm^W23hF$H}0|XSO6pG7O;| z(~xPh&f*{@`6LqTtUK;FEYe?YE~(T#js=?%G|nvSq?mlRPlgJFik*%+9Z zJSUs76pgwr*349Je9leY>UCN=OtwWwcb6#L(-zxw_?k!0r4I@UV2t%*L_?or@OMxh zY+e%CZC@hQd$W8Plmmi_8N-KA#)YxDIyc+#@v^tu%W^CyMfLKkKQTHnP>gSSeiR|A zD*+^lVlY*9OF2uV97_hX=`dMD>(o6JVFc!rEF%ys$!0T3yk^X0$uV7R>AEfp6+{&f zV}d2-v78`IPp#X1c9`vLI8RCnO3U^3j&6z5)G($bR)m*D$Uq1n+^#W7rv5+xI;sM>vYhT}QM z^Ca94g^Xyx#iB4S!bK5DM$#w``#j->h^fNoUDzVD1I=ixJ5(HJ3%$veuD%M29Iz`vz-(Hr3K2a;BxPO=r zB*%MJy(l8<$fuUXgiEugGz2M&Fa~RCLT?h>7S#(3$T~MPHtL-vTT=@fAf>ME(rR{> zGMQ8uLD}Lw(Qc);^c77TSJP???efU~Z(5k(nAfEgQOR;qVJ_T|Y)e=vg!cH>FIs1k zd5{B%+d6&BVC%Ro8`tqV_NRQu%V$ed0wZ`CETsE@-rKUBnt5LoBhOD(vVv+RQE@do z!MP;c%V+K4q)W9*_`&$1hGF@QmjdyFMJ6&#>h57NBM#J{WpJM~{oci+vqxICg)b#9 zpa<@l>aKTnfhC`8C2aEo>Ppb(64q=Rf{r#XG%J`x_g!tcxsBLPRiul+e9$g+Yt+iCgkN5ncuv(N!Tf>d{c6@r-ZO&jICvjEh?H2 zZGJq`?wOj(Si)P2h=Kb$W8u3z+KJcmCJTDe;MIq}yKJ=YcPWf;k*KC|g5Ndlsv7;9x5Hs&-@h{yu{? z1f-W!b2@_brxX;Xnr+5R4s&Ic0@aPoP~rRgPJLr+R+P(|;SE_G_NC)6mMh6B~b^Z!q$aNiQRDyP3`Oe zkD^#UkO?*g9#FP#?{kET9fq)4ya{Xr4|GL%CT&uks`cIMuwnc5K8&=dq zqS|S+uUgT{j_8n=I`dX%gi6-)-DckC_o<;b71Cwu$&?ZitmYL@yjk(*xJq^;()?^> z>DUyelO0;wkwl!IXn|TUfCC@}TTFrLCOYCuCM2)JQo?b{tE?})O{0?8(56%&Kt4K% znwk*uGJwF);2ar0r#98YsG!{(ZNs7=FA4@K8wQN+>UMHF`}yd$%|P$9-CW(T=Hq9Z zf8~d*jNu-^{s*UB88`ap+aLM-czJ&K_x$JDe!jRp{d-k=J?`jCq*SuKT)IWS7k4*2 zoMNBw^z$_OQ343fPAe;nh6O{L=7FVJBnB0uNpUQhk1i_|P?|vj!4#6rxT9Sag3HVX z$Auk-q__f4S<>V|%2x)h-L?Q%eUQgRSuG2d-e7xkllbSlQ8CR!?PX1!OoL#wF5ccL+tmO(f;pij6UG0k>( zW+efrba|6>dD1rvXZ&ku71Aw_qM2@>;2|be1=$6M>RPA zfcy5~9RoXVDvnOHgDDkNm&z_TkxDj`kVc;Jv;#hAn^|$ymUs*=tF9i14hEbA7l7^o zNw)}pf;l=2x8=oUFfX6Co9;$t+kG#&x7X=D&qGkHfkv4hxx8yRz5KMEJDee{w9hC_ zH#vbO8|4+mLS7x^n#BNoMUr+_aBx(_KPA&HPk_!~rUfAzEIKJ(frXRO3WUx|Oi6U( zK4tg!3F?lz^GLaI*L~ey7J@5t9m-QtH1SkNvTf)%V#UXW>|usOZe!pX(p!>-!vl^i zHVr5>~uQT0VK5sdaY7d;*B1Cn@QRgnj4lbfiP3WX&th=@~56>VRy zR$piZb`lEO6eY725ShVf_K&Ommc)ht%q-X^w{^C8)TEzh7kejdRUKW@W()RGwSzX+ z3b*9XB+*VAnq<_^5U-FmQ5I=(ft0g#UofuVb=W$aJgdjFl+ew#Z#yY<-K!$5iMDP@ zCBvXiJ48~Yh18Z8PA)>UlP}@nRj%d*WNl3ahqBFQR3h~=DWWk)mQDAr#a`_$$oDk7 zn!`~rLt8%RQY$h{r>+t~3U<=LTLHJlYcC89)o}xxE)LEQi_KD|UTjmS%#h7>eMK3* zk@Z)^7pDo5b1yF>R7^tL176zaur*07xo6b7#vE4LbBJAYOkGEas3k=perQuIV5nc} zjfmL+PqiigsAji=qc|jBbywEli2f zrScT&{o>#~oq4oLokcPppD&sq%`DZXzaon^BbTk~4Y$dFs4*nM>6kzHlBd>`i$#!b zYRjA@sJHs$a&hewOLD&QVEX8sd$qkRHdp^TdWAmld)Anvr$#>lc(Lc*~f9mn(up8d|@Dy$@E6t@phi-o=?@&c!$=toSr{%F~%>c>4&Ov)v!+pvSKlHRR zX;^U--=aPEx-8r6%PW1y66U0<)>a`GWI?<7nxFGn7OGWTHNn|Jpw0F)FCl|Aq7}(9 zwWIA!PFs#x>);H-=)rN?laZ!y5H z4Gs&Xlr4T8T3K(~%Tmw}dmYY`?{^6#G$@fxi0uje#@==Wk6^Ov5^!EA_r+YadN^&d zm8|ZgxELv_TXrvwJ-+JI+l$&QCvSG-0i8_gxG}QZ%>f=%*rr|et|>#Gmo*_y;<>&gh5IE28&C4w2TX-a%XRo?$XvVd{ zpkGGAqkg{pysQm-jo0s;v$vHop1mHc7B8cT7!5Pjpq9=RC5+D$h0rvXeu2_kbbIhi z&I->}2ocFi<0~ix?R@2UMM0E!JU*%N()?R>DM4kX++S4=Ho4$4K2AT<&@Fr}B(Ui+|XkN17SMqMZSjB(1_g*K~O z_UYUXdEAlWSj=Qcs57a0-Dq19tH`$dAZ`=hz9JlkFjhU`0eFk5zw)d?jKKX$q!#E8AK%A2z7 zq$@NFP!cp%b+OY}RahHa$vlT&u2gD9}Pw#}b-M41n zs@rUzYG!fa?zJoHdTn0IDW(puIM-V4d*`jC;|?l*pBez3Xa7#O?!qkLUQe%PG%0v> z5t2kwsk+0MBsLuZ(5xYb>_maCxmlgu-yGArqSMK`I1m$ghBN9YJ*#jm6X-}a&cm(p zoKcV{+9&06Cf+Peoxj+fvCqZQB)?aKlSwOe+Grh^L1?5K2bZt1rZ+mA)CCZIMG`LnZVhyc11c`uqc^G zpJ}0VR+U7QeDSpCq_i2S1Qp1-T%b3Y#{IO`+$2al_+|3{2kCa=_o-MPJIG+BxGc zBqUC5-?lIG_qX^v=sL@^p>!KuCMu>z83OHW4>dC2;82c^?1x_#?c4k8(7p?xh2rAR z3Uh+i(H-9)PmBUZgi+1@D=xDTtb|Mn8Bu432t*QOD8{**0tGPZFt7vOzs_@e?f=Oo zTa8E6TQS*C)YMBn=aV~3;utfp4a~Tz*BkPS#7@PqPZ9_H!+L3B!(1% z7L_wa&E9-eHb0g6Lg-4gB_;Z_o)g$!zE26Z9DXMH)k-}gOc-2K9J?6>-vr0bGFBG~ zvCTer)35_j4#!D3-2*L({n_nQZT~FRayhTEVh`$P?%l0gANDG#y$09)v8=H#m6-;J zQrFwTPcK6`k_TuV>msg6My_yF63>ICUGn=WcRAQVv1f9v)W~YnrB&pf#q&W5jEqK8 zkX1N`!AdZPljT7R0)HZ(XS*_s^u96Nsq64{Co1Ye$X;9=hiT9+K(Kfk1ezZ&j>bq! zyP)w;@nOXg+=zX`)6xF9B7Yblrf7w)#~s>iK!6I5#i9TW9lA(hmz`VId6>%PiZx-| z$>STi{zFd3Ze`aqf)>q9&H3C* zoj?qq2+yT6+2Av&x|Nq5U+3=3#nJn|^_d~E@q0>N5WFRsvMp;|U+2XzmLORQh-zob zG(jRk_h!h}rOa@uUT%kVYAhm1Vo@RT>~P-uW^FHvht*6z#6gIZh_Gw+;fJE-&yE;E zfGs{a9LWMi%lrG>9xF&7A4zCjoh0u)Fzkz(9B(NHveMw>O_;@pdd1w4Gv3-dmO>E7 zKDK6Pc;8l!p=OQG({Y^4$%`D$hu^+fTftbYg)7ZHTYO6n70Gt+ESxLF*(O6F^7GwX z!NZZGdzw%aVScbz)i%aBE=GbNB=D3Ssu~nSaqbMPhQZF1W|j~gc`{8nvNb7W{JGH&6oyERmI8W_VS6ic9$%Fa0`pJ@j{hqXy3Yic9OUf&~Uw97K z+6A3K(ZH#6OwqMyKzmWi$9+I+X$i;8d@Rp)A1!%6b`)VU4=_#@u-3@~97zhMVp39e zVlxl8zRwP|o8aYS(aSro90dl9PF=Iqx`G4^Mt(dc$TTr#!qrTRrHR^BaspIh;W4NM z4t{__G$klf)K0{a0EB|MEG-~o>M&I$p~a~r@MK{(InO06^HcQi2DQFV&8qP^9E@IJ zj8SFds4`G~oRSZdG33yeSSZxL=>X}ZoM8YcQo2h<;+pcDqfNlYsW1m4pW<~=YLau5 zVaaCK6uubb|0E?7V|%I!I%PBp^Ni#o%WGOR9;7TGmnbn+TS6#^UgR}nX+bt2GedhM z!bKOIb5h&`qY~e?YI|8b63%t_S{xz}ITbl2OHe@s6$QqVf*dOheP%$hjItpK<11P+ zaa}+hr@E0Uk4ZgAFMK*lp1?+tc_goEGf^SUfS0_=My z5iq<5T+|xwddk32kZ!39lZfIIpRaU}QygM&h8&tn*c&`AMGNU5t5&ta)1zGh{>`Qo za8l^Vef;k8H(vtFggWYz*e}H+c@R5`Ms6N)JC-Xgf)7Oo zcIlEDg$*LqhXOq$IBHe8xL3LAK=J-DTq&Pq993J`RTOX^G3XAjsPhpWaUG~gb%w{W zf|OE{@g3CTsEQh>D2?)4$uiLS>|MegL@i*buzj|5T7KFVT3GxK&eAuWEh5vT{Bax?jOM+*mJ*S~uDN0eq z{ok{|xRv=7KH89t&>-};B5Xe4VBHFczK)&AD+1x|u*7Dx^2L42j49tHa- z1S1}Vy)JbguUuzxO!|L(_tn?``ZDFpav@m~i5dzX2dr0D!A=}-K$x)-cu??H&&id+ z3n6-Yp)rSLUG@)mmJv>@jOhjp32(6zPyHbpNV*rr^+o8I9miw;7b=OMV3>XJ{Eeeq zZ>f>XTMz!+*;4V}>olt(Q^>QUFtTZao(f3^1RU=W7XKp>aaN?Nc) zWL#A-l@X6}XDpD?n4pEnnGD>Vj0#&4L7uL2|G+{e?!q9gVH#Dyso2tnKY{4ZXU@)c z^4$M>^Z4P%@BjF(-z-{l^B4dA?sq?a`}v#n-p9ywde!k2*XdbY2UORi-DWI1x;LZ1 z;5i^5&~tbs`;O!x^Mfu2AePdYY7EycoP_R;%a<=qq0bzD^^udvxRHAb;%MvNA2Wfd zu@uS&XBX$Vp3gqx`#bfYWbr;~wJLj z&wb+O0`%nlM7>1<^A`}I-eT>xMax>SjpY(|e*?$Cxh^>DCA>|9yx!XT6h~Bsp$%sV9*K*KZ#L=Y7DR|?aioP0e*|FgPTmSnyk)rkI(oo2GNV4;x3R9MN%UZpNw7}0*Dd{XX1?^#4oD$A0@`8cc&|EL18)1f#h|yga zb*_6ya}iJMmOf>9A@j z35^`@52^a0hQ~rK4)CI~(lY+7odK&DEG=f<&e2=={F%QAV%d|1oUx1R*L zo>~{)-rPHGF^iw+*i~QqIFlM0i!h_f;t$td`G96p!0bX0c&Z&rA<7$#H#HLI}ZQc1DpD6jSJr$(UTWHD99jAj+6? z$~+eOVd_W@KZLq-C`b$4j?0%xjwnss&|yU_b;N5|Ib!BIO@(#88NlJ8y&T?;yDp%l z^r#I$37-X!Mb?k_a7KyR>U9}XD2PEEMT zJO~a-O}WVAisd3oP6;+uWP?uOTOqi<*LCRs7pw5ici+AH(+}S~zW$HT-w5gN&ExC; zz5g3UZ})$HzyE#mANwEqm)Gn5-oqGre@?#~i{6dl&Ev=Kzxu-uzyIU+{{}Mq@v9%d z`MY0$6Vi^fzqwOF{rjJjCyHt+l-p|}%$^`xnYl4|KGbB|OghrUj>=8b%PM1j-+)h)#KF*6QyqFuS21f9 z5?AGH`iEGaxe*AhXK@G2jVvZ|?ko$!iqrf@jhc8Bq0asO`qza=WxDl&cp}MmCv@CWCsaG|ADQ2=d zg7}v3(^dBT$)X9BCD9`?o^@R*xW^dbA#V%(vi6rvx$f0%6EB;4ZuyNAE+ld%ofooN1ouLRCv_fc`mt7z-c)TH zy)6qzKn3msYd|KLl%f^J=7(V*-rqQ>u;>LeSY!!@cSS8 z^622L9$wA&AL(^FCdBgLAInYP3}E$Z7QV(&QvL|kL23*NOGS*aIZTyM?=uDGK~fRp zD4++_f~hJXO_^WDSqeRaKBV)TA3APA*=4{q%N!{3pS2#k>LHLmmflE3SSlkWO6ub* zT#NBgMxH*rjn2i;G}7(@g{Ka&KKlWk7WHlDk(;W^UOjyo^6D|=7PM}Gi?PZiijy=@ zLWDGuVZEjuIKp|`H1G(|eH+fHXwyY*y9-5X%nf*e^y|=t#dHFH*>&#WpL}BB6zWnH z(1rq&3VT<|Wu2riR(F+#8@ps9Y9lthQxXwKAdOIB5VPpu2jkqkfX#5Vwv}%_&gyK$ zt&QUB@iV6rM`sK$=&&l%#z_m(Hgoo~$~}xjkb*-2Qxd~fiG+1;1U8>pLY*l{RkfO^ z>VlCZQu}t<%=awSFW%J4{=M$)ecxYb;z}*&XOE$r!@CZ8P38IC9PbNoU!42Gy)Nrz z(YO1KeEI*FI^XNRE`H1sapU>Oz{qiq7=C|iiPuu7r zNm)HDIVT@3;`Z{5kGwzdZuP6I$Dev4Ic?TS zYCJnp7u4&Ss@12>lES(fF9T)VLY9c=tz^ZxEV(0pxWm6_sDESje`EH4WATq*U0sZ?j6>Mc@V8ghQKF-*`xaOeIZHx%-*S7 zIs-~&S+a#zDxNaurO!Z-9V-u#RUKpx;MTc3qKxxcP38tKqWOR>l~;{u zDiI=vW}`YlWFCvp5d;09G<7+=y67g7S~Sn*%62aA@>jYY9gLI^7>IvQ9WYy+_{BL z7@cyNjZRqHo(H_|s%@<29jy-29e+=5FLXmAvmzI^JkJEHE~qsocVS$k9yvw=kUY^6 z+3x)qPdUc>I3e=Z`14BASidW%x+&a$)er;ZWB23vae^6^Xv{NZ`ex^f5}vjQ5OASV z6{qJ5Y%v~*c=bBlYBhHH#&3|np~vu6R;pcDe3+;Gjp0! z2^RhZYEkp>LI_0OJfb+N+ANz2WEehApbleaRE8r1#6X396?zd@qFPhAv1=Qob8UCy zxlAv6RqrbCSO}iSPn!a1Ky-jfHc$#+N3;t{Ip@?w;Dl2VSZ9ka4?7L=rj$J<1dG46(7yOhmz z5?lT(UuiKjA^Ae8(aGOyP08?Yq<*!u{W{g(e60Dw031fvpoN^GaAf^z!)x%V57?R) zzC|Na1Cz~>J;F>9l#ar7x*CZJwxl4Qq)aCwGYG>j`_>&w_U8NBO7__MH)h6rGk+P6 z$FN;SX5@|S==RI&P`eY5rgf}AJ3>;OD~)z4IV#GQAVlxP13e|r{$$60r8W5I5PF$5 z!cbcF)P2olBn2Pkpsd~pv8}5TF{v^$p%zmVmO(VmLRx9h52gN#SlNZB_!y=VlKlby3#b$N0nR(Aq=(EIgy%u>nb9!z~)X8(yNBoY}X zbR|tWcT>rUp&J+8IO^p5lD`GoR#%EzFff_R>j?Eu$)&RRtvWMYUqxg&gE>y6Vv8X8 zDAfGUl+HD@pUhtR{+q9VeBef%;mu>eO?S=q&BL>#KGEBo$G6|S`ip!sk2S}UEBp0`pzNKpo;Z<+J!P`Z&R~fRx-UQn zZG`$DR_cChcNT&jTSYGIPTRDC$8Z#%`HD&Fy9MKkw$F z?Z87#`%p6w45LGh+5iQ-N*j(^TgFY z8W}XVD;PoSb3<sLM$l)if}85wWO?%?nA<~bF$*IA5Vf#EPUdfAnqf-1ih?t`XUItI-U^q&x(Kh z62tv63&XNuEiJf^81bj5XavU%X8!=VX{!*D7)*`I)lY=&6p}WKptw$e??SUYH91B` z;fz-#`NvIJn^B3kwLB3e9-sxXqkWAT3RRW0u%Go(O;43D9NT5!A3tlNI4`wwXNItg zreRfZCsNuz2&yMkXxKhllZv_@xGl5pC++C~t$b#pY(CWVo4hL z{4ioL1`xOvJHum*1*y;k+W}oQX4(sXkU-~zpk#6T?PdHQzX1C@2)k2v{?uXpMYiNl zh85tQaG~`?SP&$wwdppV2Zsdi8QQyk+E7mz_*BT?-085fmJt#hBh5VxcyZu=_}+yCtPfHF{ErDIq<0p- zU~pQeG76#KflHvng@MJ}sR3MO>V{dMA zFJftDFJftQV{d70V_|b>E^~HgRa6ZC2M827W+qafSW=8Cv zMMABX_=9!QcijAH*JWn^<{$p+Uq1fvw}0{bzxtD3i1{szy9_& z|M>6z_P_nfueQhb;7ha(H`gecx4}bEjzxw^}|L$M^ z@gM)=KmOy_KbEh*{rkWCV{ZN9_`t9J@Bic9{N>}%fA`zJ`=h`6Grsg+{{DCW=f9%8 z{l~QR@*h(f{}(rL_3;;f@~a>F_DHpD&oRF8BlR>NdCW%|HGlQ-C^IgPS&uYQ)vsq7 zJ$;oDjb8Nc9P!{t;x^t_$Jf{&WA5?2n8p+Xuj3ed`f4N59`WMXoc(LdyuZh` zoR1Nsi+9kjU-9=*WA|11)7w|w589PwNqzfjtm{`Es}*0X>1$JOqurxj;%)o7d&Jjr zjoWtG>5C=bX7o<&==OZ{y?zzFZp7RjeP^=hY|L%X&pxB`iPv+cYHY{(Rhat}3mwfE zQrTk{$C>>a<>;};OJ*+icwKq++P-qyxxRnJ9QG2A)8tj9d~J=*sR16n#3LN6TaGmT@mlfF_JyHn)m!Q@)74J=C!#U`?=>BVCMckrXW@ek`> z*q?jc-@I$f(9HLZ=V`~(jTrA1%bj=HB{s;j#gr8ukAFvbG>> z=;vOJHltTeN6j(E?HOB)$KoKwE{oe^SM?UNQ)5^1cX~%-5XN^7I*uyo(61%O&5+ywz zqlh)AEa8Z;*EkGuqHF9M_a=^LJkFl>&C!LLSr0z8Z(nf}6EOQw`%r_^R`>Rdtru_O zv$2a~E0iDr$?e!uB}gUz6u+s}BS`00(ZjI>vAav%zc!9qP#?BPi7mOG!|L&TP=vx3 zW!T#|N=%Aqe~r^H;`=cxW9a@2DF~|bRl8=beWeE*b%&TT=e-{}o)Qyb&TEF^#>VG* z?D#m-IsVMUvGHRXf&zcV>1Kfo3!YRIIciX*5(j~PjW|Cr+Ok2=g6lT-msy)Bo{xRZ@tiu|sR!AFk>!|6HgdF+ zNJmUw$p_Ri>3BywjtlgwF!wnqAd}kJ&~UCe4_%BkMzu&!texH;2SM!`&qwzf8$NGw za2j0ytHMQ6>>Z{#x)F!Sluq4ct!c(u?HcVibvgdNM!)HLkP$u?v&W84Fr{GB@%g6v zgZ$U7*)f;Ui}bk)B~?Gu!EJl5Cd7%^jvWUV<3Y#*bR@%i93IY?o=G9;roF!32K!+`e|Q`2%h z9xD(Bfp##ccszJs%*|dPv`wE6A?~rq0UI3CIG9`Pu$Zuzn{>dhxPJzpq4%Xr-Uy+N z*FBhx9vgAOI%7j|PTP*y5;UUCn7!D49oa9gkDv;1d}ClCmv8`LR)ffmAX3OFg;|_& z{F~*JhTzD#44#XeGC3eKHg<~l!w-X~v2(T{YBTeEKe!%J!eho{?j;1m4j+x@MbnXA zV>RP>LC7n1vkz0}06WBAbxB$3(5q5C)58~4ZaRboMBbw$27Xu)oy z+tai<_8_81j%khI$DZ3@{{`7Ho{wb+jveeimMNwoL~Bh~PyAa%SH%61vtqJh(&8la zt@wBj_*r_K%zHF3oECGJbc$mRgBHWgGkOGL4f#75!-T{lsl-ld@r@R=kEN&C5Cq4O zLs01oQ{Xwi=AG1WOlz#LLo zW2iAj!I33-wqP(hPJ0fbz`1Fem5=X7d&ClOe@s!ZJ0uv|(M{Bi__xxZ__x4*;aEWf zTTtM#9|h4AQG|`R?@#2SLU(z6XeR~Awr735#)g6~6($e_(G$h`ytglYn<*7 zfLbgZkJn(vlhK4s8AR|A^X|E>5S4MjMkl?A>s!cYHD)dL1D9g~Ylqv#)0MYGJ9aY* z+JYE_1b-j_gyg8Xuk~4DrD73drO-8^6R|Xjse+5d=4VVT4qJ;u60bfO6NfgmFC>Z( zuQ&wpe0*l`9#}p5WqXU5M9)d=(o4Su-Se1d69#8@=g#Ha0u^YeRZR#tbfk zELnpBN(LT>Zp%}9I8;}OrnOsS4oOa;cWmefA~&i@hrkBU>oFOzn~z?L&y4ADXW?Ry zJ$OmXqLcvUtjFMk+v+Ipu^;$1gySQmkT}_KAFOTD0VRkDh`&QHdZ;k*_u$YY!-1<*oRC4{UkG0^p$Rc-z{*lPMl4~60L4lN|9b{; zjbnhK#hFFxZCbkl#fUW<6X9{h-=kkKdm|`~-iPj!^K)pjUx*s#xBk!Mx&_Q5BS&Zi(*s)i-|Ba&>1U-&<^k>E@)V+%VZ1b4tMZA{T z-q2ThEIu1V0|GT!q@WUWLIvV=2$OLhf+)t~#^+HpgH6GnM(my0v$*R{cQ)P|bR2dT z1TjRjcyA0Ry0=3pTRe~2sdj9ZIQ8(Y9^KyA`oVpDf3Qcka zQfPcER1kBTNQi1zw^8ua4o=dy5QNnp5)okvvg5EZ8f`eUO+Y;uDW_Nr8iE%RX3+94 zlxH|2oToLZZqbgvCk#*_N9j81Lp&cF2*bp{LJ>ln2TbcC?go(v39g!lZByMs>4{^JIKBw#H6}j(=^+m%9_RS%v}2!z7=g}{)ka<8_Ml0$ zp{!CY3kC|cW3Uxd0b+Y>N3m(hHs&_JwPJkXZj_G@r%`&aQ$Uhps%uR7)a4>wqjDx` z7fG10UlKZe!r;JE(Pj@q`IxF;6kqHi+B-T4GGAKH59|CW0T?h!ELE{i7N6hZVKi`l zH`xraC&-f5Wo8VnktE@F%v13!3eMC>Cj-wY?&~rm&2c`8+Fg1~=CGkM$#tDIMPtV&h|N^E~Ykm3TVDrzUlyad<*I+SJ*R5Ps2qnkI@(QDapR zL9|C>6SUYANmPdGP!p>w405oy&|9^+CH01d@N<`$wT@^Jy$j+Z-a6-?*ds66FTDBMW_D3=VL=``Pk_tUxy3#=Z?^~ z%Mh&<6v0GIX*&{0v}1p8BHBdbJa&m=NT6)q@eJ)XrYc6+I3hu?5en!%GD@7Zoldjq zk#I^qcGMuwf5Qg&+>v)ss3ooiJq{+{Y@gos`Jf(C)(3RK_&fqL2N+qWw{ z86t{pT8qW$F7^hX_BS7AHvSe=VC*(_^7!>>&!l?I0q$$`z8B7!n8E`hCwS~bV4(a4tz1%&@3XymQf?w%7CiO+meqhO;oldiQix6a>@D#ABS^bSl8RJ2nU}fd!I8BI#u#%Y zLmVxetuQBOrGsRNf({ep?B$;#rx??i=Nw&;)hOm0PmXreLsXT$93Py^MkFp2T&4}% zbV`HkBr$$G0eTub#A?c7;k_=a4HEHKmOF?l0}rNIf<^1=Fwaf*CAB0`k;v+&%|CvZ06h-8O|${yQglKM-AN`vKlLz6J`-C zd=|qyy9`r!oQb)!O=L#d*)Ma)zR~46WcKF73=^EYCA?g^J}?-z=%23R)Pm|4aq1a6 zOr~|DKg>9D36Bla+>9xgS+d2j5$>@Aau(nrjk~dM$JV0F)3L-sdY|G!62@VmvVsJ8 zkK2Rlauj+(`OxbSX_n+m-x6L(6w5^4VN4Rsbb_#m$s`R!t(vOn`hibXJORTnPY=&@ z95D1ear2mo9fu7g$43?1f5+0Zx5L~&R$8(imRZ4KERA7X*t#%Zi@#CA~k|@iT7s=r2~RmA7&4+$^&_nGn1!w>G04b zY3$3ftTSNcF4~iIkn)0bH|W*ABpIF$Qjq1lY?7J>vH=tW0)6Q6re=BSnuzVNTt9~% zO{LgE4a*Zb-Q&SHOtRosBq@B>i`I7QFmuzKi4-wsSOaCw-c3V8u@%jfHBy$WBmo-h zB{TsqsIBiqG=S&(a_+I@b34UV3@Pz^&|uMY=^?z>T)efal zZTS+qeHEC>nkg#Vcgg|+MU6S{;IGi*MZ~yr z^nxr5IEu6}R-Q!{*^|pl$|XjZW~okY3)G3-QeR`kO^diFhiPp%x`)wF%3`-*((nuN zeY6TDQ@HJa#%{nesvxTyo*xNi$&OV+7hm{guPX6 z7nrUzxBaCUq-sSEvW_Cc2J48UPiq2Fwzj2hcI{iy5NVgyug5%$*JuoTlO{$W?6*xD z1ezkHt$E*%%`6oKkWp>+!t@x8z#<_J)kWvJwIjV1%2G{npaK_z!T(H41Q43orT?uuk$zNF8vyLx68!03%|fS;>S~FjJU=h%g4Rtd_#G^_Pp2MJA3ho2-*Mb zDBn8UH48bGyTp7VV+`b&4(USimkuU67OUT6Ig!6%*Rk{?EuSbEem*;1N*SZ;qvAeT zw^uw4Yiu}_R{`y)=#u>&Xo0D>(dh586s0>dAI#TF_Q*4l=_t;w;o zLuz5!$O-YUq_$=j-^PJmZ(=5$ko|H%wnCtMh`@wuj=v}a5ZXBS<%xN+O}H}lJ{&GZ zEOugAeg8hjG9Jsj7AN@DR`-G5>OvjOuq;buT`831v#9xCz(XBx@=$5Reo8dT` zsp$5sva|=KmyaHara~BT09!z$zauXJX39-8p~^G9CWMJ(>G`yEQ+i%O+?z5kSIgGH z)^F`&+6XD>FvZs{%@8Rz*$p85D4p^Z4V#yW7E>B=DDP7ElEgxAInj>($(fGzG8D98 zU88h6$G2tvLWGwq6t{1+AquX6LdPiqDN)dYfcvn$C0ie2@=|w$K$U@=$0Gg7+BWNn zxJr3FYN{|y?86{rKoO*tVqXy(uQsqWqtoQ|k`30*c8LLWJIxo{PgBA-Cj8s6`1wQq zwYwYL;3>P2yzi_Rn+F$ztY6~e+h(tJ4u-o6i#H^=1nYU~^wKBP!E9}Z8QX30yM8G? zjqa=smnC6sK$_%ymJAx(Yg);%6o^roiQMEdKXCGHG4Xpt-e^yp!tu0ZOSz!g0zNeA z6>%AN{A_{pN4};*b9NZ~x*q|N5{0%kO^w+rRtW zf4|@t1-BT;7#qgMoewmbXvOL*v&3dPf1Tt#38E$H9KW7LZcHe8msBL#ERGn^mpD#O z7TZXvJcOCqr>st~GLN$hA9V6Rgz*1w-Tb4!{kuQ=^WXkHm{jaWjqi{D@^b(ZIwV0I zxl5VrxHg|Tq)uFWr_D5HiB9-rqfu<*!xH(-O;%3OPSLk*SY?2{ei^Jjgj(^RU`FyDgOL zx}#fG?uTCme)NgCFUcl~6A#a^>;>Tbc6sW!54gq?Z(y;=mgH#^Bx4NOja$_#CT7(4 zJbvR>7j~qn!-mJ?)uh?O=jr(?Okk{ZU6WYaS5eF~@Y7 zH9?Po&WL_WYuuz!-KOYcK3fdyhD61WDmh^j9M3-yKoF|6R`_fsrj~KAg8alybHrcW zsPDb89n6Q`5&}$;YsS-*j17@%DCp_?yYK$>#DCZRwW&VjC$1u)qe8rn4v8R+IArmS z(ERxwJ%RxQ_kUt3XjbvqXI&dz8q%YIiALdx&AE50T{wC*77!x1X*V}G$Rn*Q{B2~t z2MLmHAyI=jWvO@mwl+RA<$VVFnl${wB5g$NX?)vW3XgmqnI>-OWctc@||9)Y-nDOE?Ba&6v z{~>Q^oB0qHu>+mJ2P+DQb$ke}Fzhs{0;kBw!s0a1(b>7nA}o)uFwq^~ z_Y>?(vl{^+{LyTdvmHM4qL2A~uf)Io_xyL;IAhtjo!_G!d~Ze~h3%Qn*LZkrDG zX*UBp;zHAD$Y5c{@Xz{`M|2=7DuTH!=_X`5m#}GE| ziX(Jdcops-sO>PU)BV&QdvZa$8Bw+`G5~D7IYc6fn}E*|A{c}HuJgZelipHoYWD-& zikr_y*9)iTM==-f+Q(_w`0qA=tSJnY;Mq2vyTlsW1LBjQQ_<>EFzXY(sSEu}0&)+E z!{L@?Z;SgRC&Q`h)cht9s*0%%Fh(=$l+^kFu!P(j>}S`HXSYaOh5XUe9Fuj9_Gg#3 zC5t#%yh9d;ob}CJs5)!@auqA7!y|*5_Tt;CqET@UdWns(h>~$ZstwX zyel3f2t{ldtp2`OOu*K}WFyR~h)&|rLjT$s)dBXxkLfVgzUHPsUj4`G6*sowumENu zHe`ij>oTaS$LDC@^HLlC-9()jXO&)Lwk)S)D9o7d_kCHYgM(raTW!2(oZP_njZeHVXY0;wza`RFaiv*8Ia7g?`8{HKNxwn z-w;}kM_4-aF6H7nvOhcv1TJ_(gfPq6P4A8hU$i}pRf5j?`^Z1fh9gmK(k!1-6TcLA z0chx0kAb_>oIC_m5rzqIXz8ylZU8H+nJ*tQ!X_!b!MwLDssw^kXS7H}smSQ+s7}S_ zApV)*?%P^S_FL@asU5EHj;&dc&j#Hk_F^*$f=)iV&`kO;JW~Dt6i`S_R9G) z9!;x9dlS0SD~D8;i{TL4E*eAM`!J}SgLWCpd)WEOe|H*SZpa|1eVrWscD#ju8VMJ;{Y5@WA8_^vQlz7B*&K#B+HkjLWW3h z8Dwv#4xBq8-TC^yd#m$qY zWZ$a__jELpR*at#eVWZiL`el7DHdBL?6v9_ypDsO=B{e_v9AlVnI&Q(9`AnrA}<37DSkd->GGrK@48_<;NMzl&pI&~ue(D{I^WW_=lkva-GRe?VD;tGzQ%vIl|him z%fBG`Cn>_kh^MI_oFQT`}svM>?C=Zo30`_wK!h`5=SrDZV~vUpoJXM_SvW%+e;X_LQ_OiayiP zTQxyW#~|jv$htfPWzOOVx-&?0wRSDoCzsf=1BHf{P81yzeCsym z_eJOGvtu7a2qC(CBLeF6#8BqW%7zVORuJjUCK;mQY3WSox_&-6`1$pB`^9;KVvF_S zbV!pjB=a?51}|lV`C68lEZw}HW_+5+`Bh(_g=#rp_u;s71NEgYZ&-Q%jxSX8ZLY6& zS#Z~QFSAlw``8yZz^_ARgn4fyubJp#<%cbf6by)1xK}Kv%|93x^S;?b1AP0 z|Ap~}f_>xbzcgum0cTD5^!DTa2$LRclw$N86io* zINIn6;4*|NtA|aH%pzzN%=NNY0K-|m3jcd zPMH!2L?k2>Y}?p<9Vswvc9RQN+7+|epix+bv6EV(ZxutUPe^GBo@{bq%buYvM#h|G z|(RNvf^d;=fNA zrHQ2ok|G}zVIW4!ZDZOPAULv&ecfkEVJoDS(0Fk^#gsE&36)Oxx%Q$M)23Cm`op~Yd}t2^OJ5J6?|koLtsvM z$whpT)w`hAp#y_~S6rF?THd$&cf3PCsw|N2y9vV8JE|RWezQVz+xzy_k5_O1)9?Q5 z&;RpX_iLt>vSNylDPu{JV5qr(kU?Ta0a86R?WP%C*g$k3Se{XPI-Phwe2{TK^m87U zW1=OWo^>>&N3|8EV~35-NqYTM2hYYJ)_6LYubuV+HJ+Xp|6Qq`rn$xWjz4_BhWB!4 zuumWZ$&ol!zGHJSCD@QBVK<=)ef8*NneAj$7j{An5n50jW^dvlmDST%b?0U>fmSWH zprf;Ez8BP_U>oj!JraULjD_+n3YU?Mu1iiDc7((m9-~Z~suUAm9>cD!5~O3;l~IEC zoj)rXn)Y>Yo};Xvge6NJYmfKL{NXeDKRAOLgt7r0|2xO?{V;ng5f^$Auv*EflkK1& zPtpD;d6}*;d$uPizTrec%mCs3$@13wZGRX7gZ)U1u$qo3CQV1J8dp?8zp{=bPYdy8 zMNNRvK?Q;M>G}BM^=1FuhnJ@Z8p3;vP3BcccOh-EAOQJvE)|U8PeL|(P6q#t{wTzP zVMk@YuCM*WT{wXa*#Mep^_F;sf@V{k$4n`}LXsJTf}G*V$LF&@KY?2a936=WfaoBV z0aj~(?yzz6p5pI-2$}N}tMua&^mSycDaKe6E1|YR_|z_LgZ)?g0vP-G!)s~Dz48p$J;{}lV`QwU^ zQt*qg=9qs343XuP_70pXL^VO!!8XndyeeMxiLatjh%LbIL9;l5Ma>|ViUrc;0XXsV z*`Gg7=-RO-f|#pAibIDwFZ}#*!LAV~pA0wI1$}MPA(OOcQCnVvA$QO5`Ed06jeHA5 z$Bp4UXv22K$yweHLawLx2a%vJ$XvW4D>$c%FXk?oeOKx>Viyc(-<3uVbZJ?U^!kJ! z{CNkw9fSa4jnrE2^B3Az^w*D1?ATEjj30Gr(CnYvX5r9|x~;@-T`}ou>wu_T)t2m` z_6xuE^T!L)Ceai92lUTgbu@>fva=E#ay0b?j%Iw}d@x?|0gxlgS5SIRNY^>sQZjy! zbEqtr!qzE#@BJt?w^UXY=Sv#KbFrr+DQI<|Bywh4RzNX)C1De=ty02-?m_ zIh#Q`iYc#Jy{>&lUZ`?G4#tSy=s6%RyGc-q@!|1GZEer!KdvWT2Qrn8^TD4VD7`~A zy_DCU9mfZd?#CN@cL+tObUlhGJCsYXtW*v>27%dDn*=JaM|sT$n$M}16f}eTgg{k2 zrsxw*pg)7H_X8xlY25l9#~K~0Y88l`0XkS6gAdv#7Pd=Y;bQ%O6~-$rctd4LWO^Dt z*aO9MYI_g~-86m03!N@VMY?h#;5q@X)lk>WGtPt}76Pd!lcs`(-w?PL$q(7MWLCRCOkG=fzY!7UnFrr2?`P zq*uoqh2t?K!NJ%~?bf#Rufq1miKc%KcRluC?x+9ur@uY4FaS9wkl(ezM<>o z6Q1{D!T0piKOLNwU&p6o#~jGYWbJX!UO>O~`A^v2pAt+J&nf#*9ImLTmyf)M=q z;{_ZfuxsXO(R`!>D5<D3FLl3Ne@bJKFBLhSmJ?TUgTdV=tRv; zx%$Y|=%#`q5KCfJUl0DgARrHXqE%K+1pEFA?GHHLj~f>7kcmn8O%;Oly?wo3yyO#n zcwl0YgECLi?eFc&{Tzr3m=R0jCVU_Kmy9|?d$#Vf)AYL z(fdND5=$S1=v({aW*$AEpa*i89d2Y3%xVvL_mtk}Ad#GaF(6oiuf89J0yp7JOK*J@G$E4*M)vTjlnz<25|~wcg$sMDeSD7ZZ_ehYd^JTkh|}tZ{TJGo`$h9L zuZL_tkP_yOW3w)>n1+UG&o9H*bCC!dhX|sPc-PC;x!JU zh(B8*->w92$!SxM&s*WZ+|;~T!OfD4SsrliCQgFj^SYeqP8a7Uq*EU9O>WaEW3enG zPEM-$RLKVNG4B=?ub&Gtw1A}tenLf0;NwI^0;aQ%<@yfNrZDtoS9wV8=Yu~#(5vFS z;x|A;H#Ei03d->eRw#r=7VtRLSVmi+%hX z?f1j4;~!rL4kBj&^f-TS`Zgx$#MB;Dc`dU6B%^+Bzix%R-%zB)W+$g6n^go|@Mtin zFqa*iS#@@pz7*8g<3BIhRkIaEsu7F#3++$n=Z`CFG&ti*f5UXe7Uy9nE$>QKd%YcI z_XejP%52~s7tk*|_Xd0|>kw^_i=@pe ze9qPs>5d&PHAi-$yI&vwc>~-Y)*KB0|#uw{F9W1@c6ullJi3HN_I_7GBKrnL&BBo3ki)x>xyp!8rsJv2AJ1;fP)F4 z)#jhb1&3pvRuV6nNs2#1Uj9@+fyJ?m7XT_A6nn3PWy-(M{=EI?1=f2w&s}i@=p5hM zpYYiqZ`kdDt4#j#4Lx~3-j~=NCx};&!lIH6EW-TWe%<=>2EeteUtIw%nT{K%^~Wb5 zR!Kp3BVdR4^|$u>W;%FcY!BS)xvqT7B>7i;g=C1gI_TU9ib1A%J_#MXAYsK1<{~3S ztwmL&!pn%eFZ62V>|dV#c?aSiq!gTDWFP`eTR-8hKdxBW1N?sJ1~(xweQRHC|M}wv z%oUhM0#~x!era9ree)k3mQ6W}b=+74__vlKwGd)`< zSl`+U68qzdrIkdw8%rz7acf>~=G4C-ySi6N+7jMR0*q-Fy`t0*r7O|j&p zFzd2M$+M|6_m-m0hhG-c+#!symXf+K_;wX)=n76p&KDi9>_?j8^npp`EpMnQ&L9cT z%7-l(_?1pxk5#A3F3N@bfpU%4T;Q**o6v$%A^MeNn0^lxEHI`CTLLKTf)`#k3}D3A z3FJv60J~b{Zb`}Zv-AOS@#rJUf%Ss&LfPK<5&z?=YL4{1{aMB?}M>sHQ{(YrcA zPJ>^qvXVWftvr!a^lU7t0_A%>_VbPwmi20Ppr4G!-`iJ|?vESH_b{46pHhN^@9oR| z78E{k#hUEhAo+OUd-HNPr|gC7JwW}cuV7?h!qppE1zxJi?KCi#j9tgaqd)J6Vr}!T zfx@Qqafj{xxWRq};xXj__|bo%eYqdTaKRai`ZouiRml+F+L!y`VQ=IwOZuf0D@pRp zf#C`Ge>WF6uoV<)Af+^_E7jUsn(dDJv9k=TcloMP^jI7*>081=7Z_<2sn;S4qGPbfw z`#2x`c?GLh#9Q5lq(dI{sg&nRHL`IXrr(Ve>Gik(N`IUPRIzdy+6tn~{=L0!D$z_>2X!C^Ir}f-DQ>E}R}f&GZ4^jn{mjdhxSy8xzKDD1$Q3LJyR# ze7LEMU+*WOGB22LKhFcsWR+S? zY+_qV|3_-ZnO}Hi6YRFot`Y_0C?$C+j7$Vjym(iey)cq@8pVb_9{%}(prwvTS#EI* zlH`m_#VAoc&**wX{7;pzUVzmfpQv3D61&V&`*P5XgOV_K!~MvwDDEgH+XvuRhj#&5 z30PEzljS#+DiBL0_3lCPF)tZ)u3kXcpC9PhKMk?w*J8o20L)rF`S}wsyV(H$fona8 z%*razM&?8>a%IP{s3VDbhz-(i=>m#HvOKY}07;`^qS(4_+Negnw)GMVDDG&4Ug4a?N3TrI! zg|6>4MIzRNKYx4zs(CYMA|-ao&-Sg|Kl}dyucmC6>L;N+4r!CJGgB8sIEvi`i^yEX z48I;dw^g#UU8c#RA_MX;swk9@(=Q-4Tlo#4#+f&(?@2atIj6aOov%9)f=)EEY*mzz zQCfIr6fB#ZAF2~`yl?&afsz(`o${e0e9rIfH+cESC)!yS+akgaaAwzZph2-;iY9L; ztKt-P6?Z%Yd>+``odfR*_5G_ zn-MX}2R@qDykXPhOhyaXrpuA98aMz08Pqs?$N8Nfh-=UN8x$=Q##yhemK$XH=XXdo zAf9aCF`MVsyy1|4++fTHD8wwcR~H-o-oD&#vGan9R=_$Blp(?BTl;dqC9gLOTN9el zb+BD;^?UnryC?k<)16gH#?|iH_x9)AI0G&Ka&v!!LW3B6Z(i`+r`b;*#@JDhw;wvTB|eS?LprtwX~ZVo3m4+?(f( zjPL^Y*5UW^50wS@-oD%~jMXQ+T-#SlgEBsqZ|&RtOwkRm4rE5j@QdIL-`dyvkzwCx zX4!$1wFQ|fXdW`_Cb@@FM>vkN9mg=C$^Gw#e|})ckE(o4yWPRTpue@>c1azh$rNgq+D-#o`yi>4+)A8U)Y@SyR=6m}E@BQ(H3LgMsRLv0u z$<3OE6{w&sYO7fgklznVEHz5ewlyI>sg+v4H_sbczc(z`FX1yjBh}> z1f-m_-@D`im3t7tcnB7NI(>>cX}{soQUBiP>U94p#nlOkd4ed@{DH^*`2m5JV%nV$ zv^g3CiGYqRuLFv!I!d`%j@1kAe8V)$rm`tVbd{mFsm{=ffEc^nh+{}E1y6k3P|QEx z=;s4qwpA|d5OM44($5>98RSb4R)=9Azsiz>=1^5)__zU;e_TP%M^@(fWQjclhHvf5 z?LU8zj9VOm%`xT77y`w?t?uAuMED_kN?7%1^Ry^}2w)t2d z-6y+#77Jy6Kc?`^ZBdSL+$Jw(^V?^RSob4mgk%< z^`bHuO*I8qUem1NEVoF6+t;Hzw-|%2Y=Q#nc6se?!2?t3=~&-Q9(r(nUf^gmQ}S>s0C*afDzoj7w@vAohYXM3!)~t6qmbQRfMMHE zVVP&X#naqBaD5)9N%ocl=wHhdf1bjpNkB@58*)ji4e6UocOtC&wC7~y(Nbstk(ZQe zFALM21wDHu^aY8QOqhlemmjx}V|Z$=PosSE{SyN(|5H!X_Svz#VfXNn>+=Y7w-*R! zQ;p5n3va<8_YYj3M;iYe|5K%Git43wB`-rQRs!3hP-y2g$cE0NgXC3leqd1_4*g8V z_>F=|IP!IXDyt4Mf~;Iyf}60%H6 z9$7EyoZ$amhxmcr|76$s9$560?2FA9D;e@)@0NUMQ}?-5L*eDDC@O%iA_p=Bx5Cx45*x;}4m`VluJa#~z^X;X>^f}u=at5O|Mwi-!F^_H6QZmE!tTr^5~+uNeP zRk>BIkdA5B5*{Qm;I6e+$>+N0ZyYVQfRH7$<4j?V+!QN@j7^lg(v2jQTX!DbMSfIH z6nb4m&4l{6M}?tiU;6Xxs-sanToUt1km!EEC8Mj>M@9CO@k|+r#hrGguaXCmC^YgP z6FF2?NL200$gJl$kTvuq`gtUN8(+dR|KLJO=@G4fC6~8)1s^L zpui#uyaXH~-sKu-*oH}jR$Pi1*=G0Nri6?u5KqmJ^uHl^&XZ)G9-Kj-JF`;zU(<9lphQSEfa8E#JR^(tlCm9tO|%ptS5(y2?u!foG` z5=WetIHT!AFT17!Ni&lS*@=7+D~b}x3tUM7fVuK7q&2n4l?*P?i`SX9LGq*bPpnpD zoYA&fyKP&8&q;|7Qah)PB25&)&5yGfG)uiXuCAzJ0P_F7LiO03*9gWZb}ogCFx=hu zt1^VEKl?1WST)g=It9RFV?H>xf=LG5vDr z>u8_UDfCgAvMj4Gp~N*s7CfN-N>!>L>hTmeka(zULNp5oT$-^Yipg#3^44^F_Ulyn zTy0maOt07XZ-ml7M?5?)0L(Bx)YA;%;7S-^!@3na+54NFl5nY3U882 zh?N^2S}<(BrjK#Dsi3zxu#V_-}5hW>QR?I*pCkr6s_FpEeg@D}uyM({Q&H28+XNlA@j;X?9U`5T z%Yabuuw*5IKDYV3PUGmu!R}k=< z0XNCFa&d`il;bwM<(7Zwc&4e1M5wOf<=LdMCY4DjCRSYu>wq0d_5+~)#LB4J8IVQ` zXv_?esk>HAJ^@tps;V`c7k1akv0vm<{#}ybXG)Cg!WgEoC`UfAaaJmKW98_BQe`AL zj=!bOxIPbX27?oxn_^C8>vMEnd z5`Y4-AoaRxR!oOt%X0rMD~EDZ%S4FSPOXt)n>3Sw^#0NBlav$Ui;4C-Wd< zt*pT0#V+6Tga44nf-B4HE9#11p6low&ic`vCrHT5T4GM8Pz*}B zQhIcGm4F^5rJM+n?OVzcabcO3b1S0xRCDhuLj?-(b+q?{DGp%#OkwgpCCO&5I2Lzw zA8-wNp~U}t3KS>48jf9zP5WdYb%oNYOevMF6gB{kB9XcAmV>0OB&i7k6Fd?lh>M$5 z=lUP!$pAd03EncGT)qyn>hk_)*Y0WxG$mgqdbMNc0RTO|Wjeu!s)9U7%C1P^DAufu z;-V=oO;DA;`_lV+h84PV$&{k{Fe3DuGMFo^w=Crw7_y}7{zZlQRHR*s?WPF&Zu26} za7D~hYXY2`^pIt{tvHVl~nHct|NPj52%+^!sI5wA~Q5c`HJ>c zBHvRmUFegtVyA7mjf#W7)!gh(27E~Yb@}?TH};iqh(zjbmG4$jM+|9cMGWS59Y%is zI#$y)AiD$n)l~Oa)}JQd_dVg!^?N^myx;hQgASFl^tYs!F>_QDE^ z!Ym^c60gEqvjCoIw|%t%Ma21&)r+=Fbjj7kXy>Z;pMAOHPm)`rJ1u~#Wud_9OQ)6DU)9WQzOEAUP|@9sxJ%s6Dv!<*WNC?21>cL+qF=}XwJYZqk!Q9g%2iAo zQ!EaDBmydWi(@6{k-=rXP1y=%_TYVTBaF3yNmKv0C$hSY&FQK>`twAMRsap{YK!=W ztx&^Rrd(~CqRMMR-=ykoBQ1AxdN(Eq?U!8xfgb$OtL^CJ&Y}>7XR4n6i*!MWD9LwKfFCTB}cG5hmFvHp_D)RfF6jtt$i=ZP6AuojqdUb{qax z9XP8x@GoRS`Z^~IG{86vhE=17j}?z5x7qrAC94JwfM4pyJ;v!r6BCpPly>*B+QE4x^yWxh7^+dB`he z1YD}089Z=#*b;osGkqltr>%9#UDa7?Uyu88l~%cu3-*;-LCfgdWlX~m#gUgWCnY3osJieuF)KHVxg&Ix$ zB$+CMq>41M)6(9hPAG~{&8gZoOB(CW!&r+Ovw^3Ajgl`2J0$%eS*e=q~kvUFISlQYvYS;Nn?bw^vvEm~&lku63zwCElfa zeL6qi7dWh~&rf$>QNJ3F%4-`!!|)L$1w}3G1SSX=BRiv1DI3&gD=Y*If&L zxum5ue=)IRitE;g_lzxGR11x74VO>O*ik`U68_A?J0J6#)J^QE2cbF%HL zjp%&Mi+S8Sh*RR-1(jy0rV08sBqE*Sx~%NG&v3DMVqc=-mR;d~v!|6a4t11)ub5C% zc5BZ|GZui*@Ff#&&7YEQgfDFhnYDNN5GR@T+mx%EJH<|WqqQqd~Y(nZq5kh z0KDtqe*U=i=BWf|b@d)b402}IbrpM+aI3+mFH^d#y@vT)n3uV&3~|tC%tZP+Levy~ zY}il?hS~y>hhmun45I3#gZC1h+}s48FT�Hk=GSMv^jSonQ^$Q?y>j28X%yM_wXj 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 z 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 f?utDs+~i|n0p-FJ$4WcG$oo5ZuttP=^tj@A06 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�GsGu>$Bc`LTo{pdL$Yl0#< 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¬tJ}CUy!-EkLIu6CFpy#OsyG= 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�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

    FXM$pL@3^{u4>uLxxs= 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Ðe#t(0?PU4coOgXC5`*kn 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≺rx~m$&YsGYRG%&&ieS1Osy+k}iJzzq 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 DK32U; literal 0 HcmV?d00001 diff --git a/asset_sources/icon/campfire/icon.png b/asset_sources/icon/campfire/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bea9f072eeca32ad13487c086c38b68d68fce027 GIT binary patch literal 53110 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 DK32U; literal 0 HcmV?d00001 diff --git a/asset_sources/icon/campfire/splash.png b/asset_sources/icon/campfire/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..72b1c4a0afc976d1c36ceb6ce6a0a1b042ace5cf GIT binary patch literal 33590 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ß^*0<5yRlra=n)M|XlQqGVhH{c1uSEDU1V!(0jPn|Y+ z-w+N_T3*k=Jn&J{sS1E1;Sd29iAqOSCOcMoE|efMSKe?IM(uycug0k`lm`c5@cqMx zq_hyXrTs;dLgSBP3)%dA-b{EF$oDwuTZzH~yRnCQrn!gUG;kq}FX_Kd9#Z+a%U!<% zgz4$9!Z3#%OT5i(q>2!$u^JUn-om>t7QLbmzGDW1+w}v8_E2ygvw$Gjm=2{B6OF*N zQub}Z2Qd1==*`&b%kRFWJOq&uRmVedbjIQ0M095;!E4I-WobujVbm3V3ZXFPC8k}W zh9wY?1xbmKeo9J5xJT941!wsn3$ad-ONx%tYP5-XVL&15t1*3)X$m+sOk=hnEDzS{`S9VuM!r%MSRRi+YaWd_yUo(l<>Qn+9^*h0+~JPN7sAb$jRR&y%Br1BV3U+Zr52p{FH5aa6A9lvj~r zUy6Av2qn!}lAZ_A`6C2(;AxkZc_ntaz2BjgC&T3^YT})%dc8J|l4YFL%C**Z-s1(` zW^*vkmNYaq1+fWi7YqpeQ3fw`j(s@(c^ogZ4JBJH+ERQsUkVk1YObE2c|C*PBnSFo z_ZCr)FsMXOzIqR5RF&bF)|#9gm^&C&k$T%mkF#9Tum| z6jakoq#WKWJ>I1ONYJ4-Yc?5pF3}6Fqp>9nb?|vk%)?D)Av7xa>#e3}sPI3;H z-)7Vc2j;KU<5HI65{rq34rLJ&-(Fua))6=UQA-2}laA0lBoHZdv^vdPEJnCiVMTT8 zASe>K5GX?iN|i7^&fWdZH+qpsXlYUEpKX3iB|>1aTy9`r5Ll47EGIqu$rN6OVWMw8 zOeMuLOP$gBI$T~ zQ$;l+cdB?jA)8q8$Nzdx5A+Ve9-v);Jbr`qm0AfwaTq{v-l$d@M@brv&(x&GB4h!t z7`%HhS#B|2jNxJ>h5vWJuYoq%ojQ(s0|3z=i#Fmpn0@LD4$jh9Qrx%eoB9PSFjr7@~XuqB#MSbK=aP&CKHY0 zc>i&ft#%weKsNqWh_!*@5o}h&5z*{-IPH^57p!KsY1j12ZD)GySsvaNJ_|tEwX>M| z=@&sDC25FsHLN>6Q{%xfC3%%aV0rv!V_BxtlOvcB@H)akv791~Xo&rJaO(!mG9g2a zLDmbA3JSjrCyWbXUD)^im#p4CL}MVN{|JqjPB5;S48p(^kp1TXAh7ifrw70!{N*;Vo`6w&O1*%yz6#Mlep4rkGoc zpO38@nbktwC!uK@5yU_DX(v62UOFzLg+?EtPv@_XzJZ?ZpkgkanMp(b!J{GgKIcG5 ze;2Yr5{hhoA+HR!tnZd5b@O2+VYW9)%Llic{+D7=cN~B^`{xcsFYQ& zriRxN;aDsL2 + + + + + + + + diff --git a/asset_sources/in_app_logo_icons/campfire/campfire-icon_light.svg b/asset_sources/in_app_logo_icons/campfire/campfire-icon_light.svg new file mode 100644 index 000000000..e5c58d8ec --- /dev/null +++ b/asset_sources/in_app_logo_icons/campfire/campfire-icon_light.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/asset_sources/lottie/campfire/arrow_rotate.json b/asset_sources/lottie/campfire/arrow_rotate.json new file mode 100644 index 000000000..c729d2e7a --- /dev/null +++ b/asset_sources/lottie/campfire/arrow_rotate.json @@ -0,0 +1 @@ +{"v":"5.10.2","fr":30,"ip":0,"op":60,"w":30,"h":30,"nm":"arrow-rotate","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"arrow-rotate","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":44,"s":[200]},{"t":60,"s":[360]}],"ix":10},"p":{"a":0,"k":[15,15,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-0.828],[0,0],[3.389,0],[1.441,-4.074],[-0.781,-0.277],[-0.276,0.778],[-3.22,0],[-1.369,-1.823],[0,0],[0,-0.83],[-0.83,0],[0,0],[-0.023,0],[0,0],[0,0.83],[0,0],[0.83,0]],"o":[[0,0],[-1.964,-2.437],[-4.533,0],[-0.276,0.741],[0.781,0.277],[1.031,-2.916],[2.494,0],[0,0],[-0.83,0],[0,0.83],[0,0],[0.023,0],[0,0],[0.83,0],[0,0],[0,-0.828],[-0.83,0]],"v":[[8.25,-8.25],[8.25,-6.497],[-0.042,-10.5],[-9.902,-3.502],[-8.988,-1.584],[-7.073,-2.498],[-0.042,-7.5],[6,-4.5],[4.5,-4.5],[3,-3],[4.5,-1.5],[8.452,-1.5],[8.522,-1.5],[9.75,-1.5],[11.25,-3],[11.25,-8.25],[9.75,-9.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.828,0],[0,0.83],[0,0],[-3.347,0],[-1.439,4.073],[0.783,0.277],[0.277,-0.778],[3.262,0],[1.411,1.823],[0,0],[0,0.83],[0.83,0],[0,0],[0,-0.83]],"o":[[0,0.83],[0.828,0],[0,0],[1.922,2.438],[4.575,0],[0.277,-0.783],[-0.778,-0.277],[-1.031,2.916],[-2.452,0],[0,0],[0.83,0],[0,-0.83],[0,0],[-0.828,0],[0,0]],"v":[[-11.25,8.25],[-9.75,9.75],[-8.25,8.25],[-8.25,6.497],[0,10.5],[9.9,3.502],[8.986,1.584],[7.073,2.498],[0,7.5],[-6.042,4.5],[-4.5,4.5],[-3,3],[-4.5,1.5],[-9.75,1.5],[-11.25,3]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254908681,0.137254908681,0.137254908681,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"ct":1,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/asset_sources/lottie/campfire/icon_send.json b/asset_sources/lottie/campfire/icon_send.json new file mode 100644 index 000000000..7dc1f7c2d --- /dev/null +++ b/asset_sources/lottie/campfire/icon_send.json @@ -0,0 +1 @@ +{"v":"5.10.2","fr":30,"ip":0,"op":100,"w":24,"h":24,"nm":"icon-send","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"MASK","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[0.125,0.125,0],"ix":1,"l":2},"s":{"a":0,"k":[87.368,87.368,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[23.75,23.75],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.125,0.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Arrow","tt":1,"tp":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[-1.009,25.009,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33,"s":[11.695,12.306,0],"to":[0,0,0],"ti":[0,0,0]},{"t":53,"s":[24.398,-0.397,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-0.69],[-0.69,0],[0,0],[0,0],[-0.488,-0.488],[-0.488,0.488],[0,0],[0,0],[-0.69,0],[0,0.69],[0,0],[0.234,0.234],[0.332,0]],"o":[[-0.69,0],[0,0.69],[0,0],[0,0],[-0.488,0.488],[0.488,0.488],[0,0],[0,0],[0,0.69],[0.69,0],[0,0],[0,-0.332],[-0.234,-0.234],[0,0]],"v":[[-2,-5.25],[-3.25,-4],[-2,-2.75],[0.982,-2.75],[-4.884,3.116],[-4.884,4.884],[-3.116,4.884],[2.75,-0.982],[2.75,2],[4,3.25],[5.25,2],[5.25,-4],[4.884,-4.884],[4,-5.25]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254908681,0.137254908681,0.137254908681,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector (Stroke)","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Outline","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[12,0.063,0],"ix":1,"l":2},"s":{"a":0,"k":[90.104,90.104,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.137254901961,0.137254901961,0.137254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.5,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[12,0.063],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":58,"s":[0]},{"t":97,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":58,"s":[100]},{"t":97,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":100,"st":0,"ct":1,"bm":0}],"markers":[{"tm":0,"cm":"{\r\n\"name\":\"SEGMENT 1\"\r\n}","dr":0},{"tm":53,"cm":"{\r\n\"name\":\"SEGMENT 2\"\r\n}","dr":0},{"tm":97,"cm":"{\r\n\"name\":\"SEGMENT 3\"\r\n}","dr":0}]} \ No newline at end of file diff --git a/asset_sources/lottie/campfire/loader.json b/asset_sources/lottie/campfire/loader.json new file mode 100644 index 000000000..dae536282 --- /dev/null +++ b/asset_sources/lottie/campfire/loader.json @@ -0,0 +1 @@ +{"v":"5.10.2","fr":30,"ip":0,"op":93,"w":700,"h":700,"nm":"Stack-duo-animation","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 1","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":42,"s":[0]},{"t":55,"s":[180]}],"ix":10},"p":{"a":0,"k":[350,350,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"gray ring Outlines","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":7,"s":[70]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":79,"s":[70]},{"t":85,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":1,"s":[199,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":27,"s":[-63.24,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":42,"s":[-63.24,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":55,"s":[-63.24,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0.333},"t":61,"s":[-63.24,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":65,"s":[-63.24,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":85,"s":[-198.24,0,0]}],"ix":2,"l":2},"a":{"a":0,"k":[128,128,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[0.119,0.119,5.929]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":1,"s":[70,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0.233,0.233,-2.61]},"t":18,"s":[80,80,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":27,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":42,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,-2.367]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":55,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,7.852]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":56,"s":[100,100,100]},{"t":85,"s":[70,70,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[27.84,-7.24],[5.65,0],[0,35.77],[-35.77,0],[-5.22,-1.37],[0,-30.12]],"o":[[-5.22,1.37],[-35.77,0],[0,-35.77],[5.65,0],[27.84,7.24],[0,30.12]],"v":[[16.36,62.67],[0,64.76],[-64.77,0],[0,-64.76],[16.36,-62.67],[64.76,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[38.26,22.13],[23.31,0],[0,-70.69],[-70.7,0],[-18.83,10.89],[0,47.38]],"o":[[-18.83,-10.89],[-70.7,0],[0,70.69],[23.31,0],[38.26,-22.13],[0,-47.38]],"v":[[63.99,-110.88],[0,-128],[-128,0],[0,128],[63.99,110.88],[128,0]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.576470588235,0.576470588235,0.576470588235,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[128,128],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":93,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"black ball Outlines","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":7,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":79,"s":[100]},{"t":85,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":1,"s":[-199.4,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":27,"s":[64.76,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":42,"s":[64.76,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":55,"s":[64.76,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0.333},"t":61,"s":[64.76,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":65,"s":[64.76,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":85,"s":[196.76,0,0]}],"ix":2,"l":2},"a":{"a":0,"k":[128.25,128.25,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":1,"s":[70,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":18,"s":[80,80,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":27,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":42,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,-2.367]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":55,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,7.852]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":56,"s":[100,100,100]},{"t":85,"s":[70,70,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-70.69],[70.69,0],[18.83,10.89],[11.26,20.03],[0,22.77],[-10.43,18.52],[-19.87,11.49],[-23.31,0]],"o":[[0,70.69],[-23.31,0],[-19.87,-11.49],[-10.43,-18.52],[0,-22.77],[11.26,-20.03],[18.83,-10.89],[70.69,0]],"v":[[128,0],[0,128],[-63.99,110.88],[-111.62,62.67],[-128,0],[-111.62,-62.67],[-63.99,-110.88],[0,-128]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[128.25,128.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":93,"st":0,"ct":1,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/asset_sources/lottie/campfire/loader_and_checkmark.json b/asset_sources/lottie/campfire/loader_and_checkmark.json new file mode 100644 index 000000000..406f52030 --- /dev/null +++ b/asset_sources/lottie/campfire/loader_and_checkmark.json @@ -0,0 +1 @@ +{"v":"5.10.2","fr":30,"ip":0,"op":130,"w":24,"h":24,"nm":"Loader","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Arrow","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":117,"s":[80]},{"t":122,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":117,"s":[30,30,100]},{"t":122,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[4.75,-3],[-1.25,3],[-4.75,-0.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.5,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":100,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":117,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":119,"s":[30]},{"t":122,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":130,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Fill","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":117,"s":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":119,"s":[70]},{"t":122,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":117,"s":[241.821,241.821,100]},{"t":122,"s":[1511.821,1511.821,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.647058823529,0.470588235294,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[6.243,6.243],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":130,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Сircle green","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":73,"s":[0]},{"t":74,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[0,-0.063,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.754]},"t":0,"s":[113.562,113.562,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":111,"s":[113.562,113.562,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":115,"s":[90,90,100]},{"t":122,"s":[113.562,113.562,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[19.125,19.125],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.647058823529,0.470588235294,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-0.063],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":74,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":87,"s":[0]},{"t":111,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":74,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":87,"s":[55]},{"t":111,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.647058823529,0.470588235294,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":130,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Сircle black 2 turn","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":36,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":37,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":74,"s":[100]},{"t":75,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[0,-0.063,0],"ix":1,"l":2},"s":{"a":0,"k":[113.562,113.562,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[19.125,19.125],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.137254901961,0.137254901961,0.137254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-0.063],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":37,"s":[0.2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[0.2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":57,"s":[27.5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":72,"s":[99]},{"t":74,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":37,"s":[0.1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[55]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":57,"s":[73]},{"t":74,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.137254908681,0.137254908681,0.137254908681,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":130,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Сircle black 1 turn","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[100]},{"t":38,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12,12,0],"ix":2,"l":2},"a":{"a":0,"k":[0,-0.063,0],"ix":1,"l":2},"s":{"a":0,"k":[113.562,113.562,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[19.125,19.125],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.137254901961,0.137254901961,0.137254901961,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-0.063],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[0.2]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[27.5]},{"t":37,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[55]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[73]},{"t":37,"s":[99]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.137254908681,0.137254908681,0.137254908681,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":130,"st":0,"ct":1,"bm":0}],"markers":[{"tm":0,"cm":"{\r\n\"name\":\"marker 1\"\r\n}","dr":0},{"tm":74,"cm":"{\r\n\"name\":\"marker 2\"\r\n}","dr":0},{"tm":130,"cm":"{\r\n\"name\":\"marker 3\"\r\n}","dr":0}]} \ No newline at end of file diff --git a/asset_sources/lottie/campfire/onion_animation.json b/asset_sources/lottie/campfire/onion_animation.json new file mode 100644 index 000000000..9988b5a7c --- /dev/null +++ b/asset_sources/lottie/campfire/onion_animation.json @@ -0,0 +1 @@ +{"v":"5.10.2","fr":25,"ip":0,"op":436,"w":180,"h":180,"nm":"onion-character-animation","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"failed","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150.3,44.3,0],"ix":2,"l":2},"a":{"a":0,"k":[17.188,17.188,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":393,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":408,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":414,"s":[108,108,100]},{"t":429,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-6.919,6.919],[6.919,-6.919]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.187],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-6.919,-6.919],[6.919,6.919]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.188],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.388,0],[0,-8.388],[8.388,0],[0,8.387]],"o":[[8.388,0],[0,8.387],[-8.388,0],[0,-8.388]],"v":[[0,-15.188],[15.188,0.001],[0,15.188],[-15.188,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.513725490196,0.513725490196,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.188],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"globe","sr":1,"ks":{"o":{"a":1,"k":[{"t":195,"s":[100],"h":1},{"t":213,"s":[0],"h":1},{"t":378,"s":[100],"h":1},{"t":427,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150.25,44.25,0],"ix":2,"l":2},"a":{"a":0,"k":[17.188,17.188,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":32,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":47,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":53,"s":[108,108,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":68,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":328,"s":[100,100,100]},{"t":341,"s":[0,0,100],"h":1},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":378,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":390,"s":[100,100,100]},{"t":427,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.001,17.795],[32.376,17.795]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[17.33,2],[17.33,32.375]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.233,0],[-1.818,-2.345]],"o":[[1.817,-2.345],[4.233,0],[0,0]],"v":[[-9.721,1.975],[-0.001,-1.975],[9.721,1.975]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,27.059],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.589,0],[-1.622,2.672]],"o":[[1.622,2.672],[4.589,0],[0,0]],"v":[[-10.14,-2.278],[0,2.278],[10.14,-2.278]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,8.227],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.026,0],[0,-8.388],[4.026,0],[0,8.387]],"o":[[4.026,0],[0,8.387],[-4.026,0],[0,-8.388]],"v":[[0,-15.188],[7.29,0.001],[0,15.188],[-7.29,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.188],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.388,0],[0,-8.388],[8.388,0],[0,8.387]],"o":[[8.388,0],[0,8.387],[-8.388,0],[0,-8.388]],"v":[[0,-15.188],[15.188,0.001],[0,15.188],[-15.188,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.188],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"globe 2","sr":1,"ks":{"o":{"a":1,"k":[{"t":195,"s":[0],"h":1},{"t":213,"s":[100],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150.25,44.25,0],"ix":2,"l":2},"a":{"a":0,"k":[17.188,17.188,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":32,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":47,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":53,"s":[108,108,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":68,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":328,"s":[100,100,100]},{"t":341,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.001,17.795],[32.376,17.795]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[17.33,2],[17.33,32.375]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.233,0],[-1.818,-2.345]],"o":[[1.817,-2.345],[4.233,0],[0,0]],"v":[[-9.721,1.975],[-0.001,-1.975],[9.721,1.975]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,27.059],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.589,0],[-1.622,2.672]],"o":[[1.622,2.672],[4.589,0],[0,0]],"v":[[-10.14,-2.278],[0,2.278],[10.14,-2.278]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,8.227],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.026,0],[0,-8.388],[4.026,0],[0,8.387]],"o":[[4.026,0],[0,8.387],[-4.026,0],[0,-8.388]],"v":[[0,-15.188],[7.29,0.001],[0,15.188],[-7.29,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.188],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.388,0],[0,-8.388],[8.388,0],[0,8.387]],"o":[[8.388,0],[0,8.387],[-8.388,0],[0,-8.388]],"v":[[0,-15.188],[15.188,0.001],[0,15.188],[-15.188,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.549019607843,0.901960784314,0.803921568627,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.188,17.188],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":3,"nm":"null-indicator","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":38,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[153.988]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[514]},{"t":211,"s":[720],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":378,"s":[514]},{"t":424,"s":[720]}],"ix":10},"p":{"a":0,"k":[150.125,44.219,0],"ix":2,"l":2},"a":{"a":0,"k":[60.125,-45.781,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"indicator-left ","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50.969,-46.99,0],"ix":2,"l":2},"a":{"a":0,"k":[12.968,22.698,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":40,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":45,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":51,"s":[108,108,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":66,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":191,"s":[100,100,100]},{"t":218,"s":[0,0,100],"h":1},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":378,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":385,"s":[100,100,100]},{"t":402,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.932,0],[0,-0.931],[0.932,0],[0,0.932]],"o":[[0.932,0],[0,0.932],[-0.932,0],[0,-0.931]],"v":[[0,-1.688],[1.687,-0.001],[0,1.688],[-1.687,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[22.249,3.688],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-10.616],[-8.447,-2.437]],"o":[[-10.394,0.857],[0,9.232],[0,0]],"v":[[9.281,-19.82],[-9.281,0.361],[5.343,19.82]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[11.281,23.576],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"indicator-right ","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[69.531,-44.51,0],"ix":2,"l":2},"a":{"a":0,"k":[12.968,22.698,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":40,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":45,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":51,"s":[108,108,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":66,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":191,"s":[100,100,100]},{"t":218,"s":[0,0,100],"h":1},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":378,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":385,"s":[100,100,100]},{"t":402,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.932,0],[0,-0.931],[0.932,0],[0,0.932]],"o":[[0.932,0],[0,0.932],[-0.932,0],[0,-0.931]],"v":[[0,-1.688],[1.687,-0.001],[0,1.688],[-1.687,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.687,41.708],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-9.232],[10.395,-0.857]],"o":[[8.447,2.438],[0,10.615],[0,0]],"v":[[-5.344,-19.82],[9.281,-0.361],[-9.281,19.82]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[14.655,21.819],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"network-small","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":235,"s":[100]},{"t":243,"s":[0],"h":1},{"t":265,"s":[100],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":319,"s":[100]},{"t":327,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[168.65,44.817,0],"ix":2,"l":2},"a":{"a":0,"k":[3.912,13.78,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":211,"s":[0,0,100]},{"t":222,"s":[100,100,100],"h":1},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":265,"s":[0,0,100]},{"t":276,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-4.365],[2.407,-3.331]],"o":[[2.348,3.306],[0,4.424],[0,0]],"v":[[-1.816,-11.78],[1.913,-0.067],[-1.913,11.78]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3.913,13.78],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"network-small","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":235,"s":[100]},{"t":243,"s":[0],"h":1},{"t":265,"s":[100],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":319,"s":[100]},{"t":327,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[131.975,44.817,0],"ix":2,"l":2},"a":{"a":0,"k":[3.912,13.78,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":211,"s":[0,0,100]},{"t":222,"s":[100,100,100],"h":1},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":265,"s":[0,0,100]},{"t":276,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-4.365],[-2.407,-3.331]],"o":[[-2.348,3.306],[0,4.424],[0,0]],"v":[[1.816,-11.78],[-1.913,-0.067],[1.913,11.78]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3.912,13.78],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"network-large","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":246,"s":[100]},{"t":254,"s":[0],"h":1},{"t":276,"s":[100],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":308,"s":[100]},{"t":316,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[172.999,44.817,0],"ix":2,"l":2},"a":{"a":0,"k":[4.625,17.738,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":222,"s":[0,0,100]},{"t":233,"s":[100,100,100],"h":1},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":276,"s":[0,0,100]},{"t":287,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-5.868],[3.298,-4.406]],"o":[[3.238,4.383],[0,5.927],[0,0]],"v":[[-2.527,-15.738],[2.626,-0.066],[-2.626,15.738]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[4.625,17.737],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"network-large","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":246,"s":[100]},{"t":254,"s":[0],"h":1},{"t":276,"s":[100],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":308,"s":[100]},{"t":316,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[127.626,44.817,0],"ix":2,"l":2},"a":{"a":0,"k":[4.625,17.738,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":222,"s":[0,0,100]},{"t":233,"s":[100,100,100],"h":1},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":276,"s":[0,0,100]},{"t":287,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-5.868],[-3.298,-4.406]],"o":[[-3.238,4.383],[0,5.927],[0,0]],"v":[[2.527,-15.738],[-2.626,-0.066],[2.626,15.738]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[4.625,17.737],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":3,"nm":"null-body ","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":216,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":225,"s":[-10]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":243,"s":[10]},{"t":252,"s":[0]}],"ix":10},"p":{"a":0,"k":[90,101,0],"ix":2,"l":2},"a":{"a":0,"k":[0,11,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"hand-right ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":23,"s":[26]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":308,"s":[26]},{"t":317,"s":[0],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":378,"s":[26]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":414,"s":[26]},{"t":423,"s":[0]}],"ix":10},"p":{"a":0,"k":[31.615,10.647,0],"ix":2,"l":2},"a":{"a":0,"k":[7.62,2.379,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.469,-0.257],[14.905,-11.105],[-2.867,9.613],[-4.387,7.038]],"o":[[-0.146,-0.515],[4.244,2.323],[0,0],[0,0],[0,0]],"v":[[-6.294,-13.745],[-5.426,-14.434],[-3.238,7.488],[-8.799,5.079],[-3.74,-4.723]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.667,16.691],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"hand-left ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":23,"s":[-26]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":308,"s":[-26]},{"t":317,"s":[0],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":378,"s":[-26]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":414,"s":[-26]},{"t":423,"s":[0]}],"ix":10},"p":{"a":0,"k":[-31.366,10.897,0],"ix":2,"l":2},"a":{"a":0,"k":[19.478,2.629,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.471,-0.258],[-14.903,-11.103],[2.867,9.613],[4.387,7.037]],"o":[[0.146,-0.516],[-4.246,2.325],[0,0],[0,0],[0,0]],"v":[[6.292,-13.742],[5.421,-14.433],[3.238,7.488],[8.798,5.078],[3.738,-4.722]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.665,16.691],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"eyes ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[0.213,-2.898,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[0.463,3,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":51,"s":[0.463,3,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[0.2,-2.898,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[0.2,-2.9,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[-6.787,-2.898,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":96,"s":[-6.8,-2.899,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[0.2,-2.9,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":133,"s":[0.2,-2.9,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":136,"s":[5,-9.9,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":151,"s":[5,-9.9,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":155,"s":[0.2,-2.9,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":297,"s":[0.213,-2.898,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":303,"s":[0.463,3,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":322,"s":[0.463,3,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":329,"s":[0.2,-2.898,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":408,"s":[0.213,-2.898,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":414,"s":[0.463,3,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":422,"s":[0.463,3,0],"to":[0,0,0],"ti":[0,0,0]},{"t":429,"s":[0.2,-2.898,0]}],"ix":2,"l":2},"a":{"a":0,"k":[17.045,9.606,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,0.833,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":19,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":23,"s":[100,7.967,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":37,"s":[100,8,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":40,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":112,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":114,"s":[100,8,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":118,"s":[100,8,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":120,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":169,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":171,"s":[100,8,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":175,"s":[100,8,100]},{"t":178,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.201],[1.872,0],[0,4.201],[-1.873,0]],"o":[[0,4.201],[-1.873,0],[0,-4.201],[1.872,0]],"v":[[3.391,0],[-0.001,7.606],[-3.391,0],[-0.001,-7.606]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[28.7,9.606],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.201],[1.873,0],[0,4.201],[-1.872,0]],"o":[[0,4.201],[-1.872,0],[0,-4.201],[1.873,0]],"v":[[3.391,0],[-0.001,7.606],[-3.391,0],[-0.001,-7.606]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[5.391,9.606],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"socket ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[31.022,33.297,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[23,33.297,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":308,"s":[23,33.297,0],"to":[0,0,0],"ti":[0,0,0]},{"t":318,"s":[31.022,33.297,0],"h":1},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":378,"s":[23,33.297,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":414,"s":[23,33.297,0],"to":[0,0,0],"ti":[0,0,0]},{"t":424,"s":[31.022,33.297,0]}],"ix":2,"l":2},"a":{"a":0,"k":[24.058,14.693,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.1,0],[0,0],[0,-1.1],[0,0],[1.1,0],[0,0],[0,1.1]],"o":[[0,-1.1],[0,0],[1.1,0],[0,0],[0,1.1],[0,0],[-1.1,0],[0,0]],"v":[[-2.435,-7.07],[-0.435,-9.07],[0.435,-9.07],[2.435,-7.07],[2.435,7.07],[0.435,9.07],[-0.435,9.07],[-2.435,7.07]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.964705942191,0.901960844152,0.658823529412,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.435,11.07],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-3.981],[3.98,0],[0,0]],"o":[[0,0],[3.98,0],[0,3.981],[0,0],[0,0]],"v":[[-6.771,-7.208],[-0.438,-7.208],[6.771,0.001],[-0.438,7.208],[-6.771,7.208]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.534,11.07],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.696,0.681],[4.036,0.072],[0,0],[-17.923,-16.81],[0.72,-0.711]],"o":[[-13.443,-13.126],[0,0],[0,0],[0.739,0.693],[-0.693,0.685]],"v":[[12.516,9.362],[-15.743,-4.76],[-15.743,-7.963],[15.001,6.767],[15.023,9.345]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.768627510819,0.768627510819,0.768627510819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.373,17.343],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"plug ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[-26.789,33.296,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[-18,33.296,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":308,"s":[-18,33.296,0],"to":[0,0,0],"ti":[0,0,0]},{"t":317,"s":[-26.789,33.296,0],"h":1},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":378,"s":[-18,33.296,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":414,"s":[-18,33.296,0],"to":[0,0,0],"ti":[0,0,0]},{"t":423,"s":[-26.789,33.296,0]}],"ix":2,"l":2},"a":{"a":0,"k":[27.268,14.693,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.1,0],[0,0],[0,1.101],[0,0],[-1.1,0],[0,0],[0,-1.099]],"o":[[0,1.101],[0,0],[-1.1,0],[0,0],[0,-1.099],[0,0],[1.1,0],[0,0]],"v":[[2.435,7.07],[0.435,9.07],[-0.435,9.07],[-2.435,7.07],[-2.435,-7.07],[-0.435,-9.07],[0.435,-9.07],[2.435,-7.07]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.964705942191,0.901960844152,0.658823529412,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.486,11.07],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.82,0],[0,0],[0,0],[0,0],[0,-0.821]],"o":[[0,0],[0,0],[0,0],[0.82,0],[0,0.819]],"v":[[3.933,1.484],[-5.417,1.484],[-5.417,-1.484],[3.933,-1.484],[5.417,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.768627510819,0.768627510819,0.768627510819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.119,14.778],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.82,0],[0,0],[0,0],[0,0],[0,-0.82]],"o":[[0,0],[0,0],[0,0],[0.82,0],[0,0.819]],"v":[[3.933,1.484],[-5.417,1.484],[-5.417,-1.484],[3.933,-1.484],[5.417,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.768627510819,0.768627510819,0.768627510819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.119,7.363],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,3.981],[-3.981,0],[0,0]],"o":[[0,0],[-3.981,0],[0,-3.981],[0,0],[0,0]],"v":[[6.771,7.208],[0.438,7.208],[-6.771,0.001],[0.438,-7.208],[6.771,-7.208]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.878431432387,0.415686304429,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.387,11.07],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.696,0.681],[-4.036,0.072],[0,0],[17.924,-16.81],[-0.72,-0.711]],"o":[[13.443,-13.126],[0,0],[0,0],[-0.738,0.693],[0.693,0.685]],"v":[[-12.515,9.362],[15.742,-4.76],[15.742,-7.963],[-15.001,6.767],[-15.022,9.345]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.768627510819,0.768627510819,0.768627510819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.742,17.343],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"body ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.017,-4.078,0],"ix":2,"l":2},"a":{"a":0,"k":[37.53,43.53,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.61,-3.511],[0.08,-0.38],[0.069,-0.28],[0.03,-0.1],[2.54,-3.51],[2.45,-1.981],[0.639,-0.45],[1.029,-0.591],[0.66,-0.32],[0.68,-0.28],[0.861,-0.28],[0.77,-0.189],[0.281,-0.069],[2.509,0],[0,0],[5.781,12],[-2.75,7.73],[-4.95,4.051],[-2.63,2.12],[-1.01,1.029],[-0.29,0.381],[0.06,1.44],[0.179,1.27],[-1,0.109],[-0.39,-0.201],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.13,-0.131],[-0.069,-0.11],[0,-0.411],[0,0],[-0.029,-0.409],[-0.02,-0.199],[-0.02,-0.159],[-0.09,-0.29],[-0.05,-0.14],[-0.04,-0.091],[-0.071,-0.109],[-0.09,-0.111],[-0.031,-0.04],[-0.55,-0.549],[-0.139,-0.141],[-2.41,-1.94],[-4.18,-5.951],[-0.83,-2.4],[-0.071,-0.241],[-0.05,-0.21],[-0.17,-0.9]],"o":[[-0.06,0.38],[-0.059,0.28],[-0.021,0.09],[-1.061,4.23],[-1.861,2.55],[-0.611,0.49],[-0.971,0.68],[-0.641,0.359],[-0.66,0.321],[-0.84,0.34],[-0.759,0.241],[-0.28,0.07],[-2.45,0.531],[0,0],[-13.32,0],[-3.54,-7.34],[2.18,-6.091],[2.62,-2.139],[2.72,-2.19],[0.551,-0.56],[1.03,-1.369],[-0.121,-2.79],[-0.161,-1.17],[0.361,-0.06],[0,0],[0,0],[0,0],[0,0],[0,0],[0.15,0.091],[0.091,0.09],[0.221,0.33],[0,0],[0,0.38],[0.011,0.201],[0.02,0.15],[0.04,0.301],[0.049,0.149],[0.04,0.09],[0.05,0.119],[0.059,0.12],[0.021,0.04],[0.279,0.37],[0.12,0.13],[1.02,0.98],[5.571,4.48],[1.461,2.089],[0.08,0.23],[0.069,0.21],[0.26,0.88],[0.679,3.5]],"v":[[34.92,12.91],[34.7,14.051],[34.511,14.889],[34.441,15.18],[28.941,26.88],[22.441,33.721],[20.561,35.139],[17.561,37.04],[15.62,38.059],[13.62,38.96],[11.07,39.889],[8.78,40.529],[7.95,40.729],[0.481,41.529],[0.45,41.529],[-31.09,21.699],[-32.78,-1.6],[-21.46,-16.561],[-13.44,-22.771],[-8.11,-27.41],[-6.9,-28.79],[-5.809,-33.45],[-6.269,-39.26],[-4.65,-41.469],[-3.51,-41.26],[0.45,-39.191],[0.481,-39.18],[0.481,-39.171],[5,-36.611],[5.71,-36.21],[6.13,-35.889],[6.38,-35.59],[6.721,-34.469],[6.721,-33.43],[6.75,-32.251],[6.8,-31.65],[6.86,-31.191],[7.061,-30.299],[7.21,-29.861],[7.33,-29.579],[7.521,-29.23],[7.74,-28.889],[7.811,-28.771],[9,-27.421],[9.4,-27.01],[14.36,-22.751],[30.3,-8.51],[33.74,-1.73],[33.971,-1.029],[34.16,-0.4],[34.811,2.27]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.53,43.53],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":18,"ty":3,"nm":"null-foot-leg-right ","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":216,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":225,"s":[-16]},{"t":234,"s":[0]}],"ix":10},"p":{"a":0,"k":[104.625,119.5,0],"ix":2,"l":2},"a":{"a":0,"k":[14.625,29.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"foot-right ","parent":18,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":106,"s":[-16.958]},{"t":112,"s":[0]}],"ix":10},"p":{"a":0,"k":[12.563,62.71,0],"ix":2,"l":2},"a":{"a":0,"k":[3.168,10.693,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.229],[0,4.229],[5.063,0]],"o":[[0,4.229],[0,-4.229],[-5.064,0]],"v":[[-9.168,1.714],[9.168,1.714],[0,-5.943]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.168,7.944],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"leg-right ","parent":18,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[14.726,61.506,0],"ix":2,"l":2},"a":{"a":0,"k":[4.042,31.23,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.628,14.816],[2.628,14.816],[2.628,-14.816],[-2.628,-14.816]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.042,16.23],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":21,"ty":3,"nm":"null-foot-leg-left","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":234,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":243,"s":[16]},{"t":252,"s":[0]}],"ix":10},"p":{"a":0,"k":[76.125,119.75,0],"ix":2,"l":2},"a":{"a":0,"k":[-13.706,29.818,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"foot-left ","parent":21,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":122,"s":[14]},{"t":128,"s":[0]}],"ix":10},"p":{"a":0,"k":[-11.138,62.21,0],"ix":2,"l":2},"a":{"a":0,"k":[19.667,10.193,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.229],[0,4.229],[-5.064,0]],"o":[[0,4.229],[0,-4.229],[5.063,0]],"v":[[9.167,1.714],[-9.167,1.714],[0,-5.943]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.167,7.944],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"leg-left ","parent":21,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-13.8,46.604,0],"ix":2,"l":2},"a":{"a":0,"k":[4.041,16.327,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2.627,14.913],[-2.627,14.913],[-2.627,-14.913],[2.627,-14.913]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0.478431402468,0.839215746113,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.041,16.327],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"feather-right ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2.257,-40.214,0],"ix":2,"l":2},"a":{"a":0,"k":[4.979,16.819,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.92,-1.305],[-0.994,2.399],[-2.288,2.372],[4.027,-4.656],[0.654,-1.84]],"o":[[0.396,-1.953],[2.156,-5.198],[-2.176,0.596],[-2.233,2.583],[1.92,1.304]],"v":[[-1.844,8.944],[0.169,2.347],[7.605,-8.944],[-3.521,-2.013],[-7.605,5.031]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.549019607843,0.901960844152,0.803921628466,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.604,10.944],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"feather-left ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.563,-41.523,0],"ix":2,"l":2},"a":{"a":0,"k":[9.913,18.048,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.773,0.237],[1.134,3.207],[1.239,1.692],[-2.752,-3.696],[0.074,-1.377]],"o":[[-0.114,-2.056],[-1.171,-3.316],[1.418,0.498],[3.356,4.509],[-1.773,-0.236]],"v":[[0.059,7.463],[-1.565,-0.649],[-5.538,-8.173],[2.182,-2.518],[5.378,8.173]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.549019607843,0.901960844152,0.803921628466,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.538,10.173],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"feather-center ","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1.25,-36.84,0],"ix":2,"l":2},"a":{"a":0,"k":[4.789,33.995,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.865,0.364],[-0.623,5.891],[-1.236,4.546],[-0.391,-6.65],[0.616,-4.418]],"o":[[-0.218,-4.542],[0.653,-6.176],[1.225,4.483],[0.367,6.262],[-1.865,-0.364]],"v":[[-3.197,15.403],[-2.745,-0.342],[0.286,-16.495],[3.048,0.332],[2.4,16.495]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.294117647059,0.290196078431,0.560784313725,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.549019607843,0.901960844152,0.803921628466,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[5.414,18.495],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"floor ","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[89.799,153.743,0],"ix":2,"l":2},"a":{"a":0,"k":[48.548,6.287,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.334],[26.675,0],[0,3.334],[-26.674,0]],"o":[[0,3.334],[-26.674,0],[0,-3.334],[26.675,0]],"v":[[48.298,0],[0,6.037],[-48.298,0],[0,-6.037]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.921568687289,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[48.548,6.287],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}],"markers":[{"tm":75,"cm":"connecting-start","dr":0},{"tm":165,"cm":"connecting-end","dr":0},{"tm":255,"cm":"connected-start","dr":0},{"tm":290,"cm":"connected-end","dr":0},{"tm":297,"cm":"disconnection-start","dr":0},{"tm":341,"cm":"disconnection-end","dr":0},{"tm":378,"cm":"failed-start","dr":0},{"tm":433,"cm":"failed-end","dr":0}]} \ No newline at end of file diff --git a/asset_sources/other/playstore_icon/campfire/app_icon-playstore.png b/asset_sources/other/playstore_icon/campfire/app_icon-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..bea9f072eeca32ad13487c086c38b68d68fce027 GIT binary patch literal 53110 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 Date: Wed, 5 Jun 2024 11:35:51 -0600 Subject: [PATCH 192/318] FIX: missing campfire app name id --- scripts/build_app.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_app.sh b/scripts/build_app.sh index 612c4097f..fc56a2bc1 100755 --- a/scripts/build_app.sh +++ b/scripts/build_app.sh @@ -5,7 +5,7 @@ set -e source ./env.sh APP_PLATFORMS=("android" "ios" "macos" "linux" "windows") -APP_NAMED_IDS=("stack_wallet" "stack_duo") +APP_NAMED_IDS=("stack_wallet" "stack_duo" "campfire") # Function to display usage. usage() { From b60ac530502759aa214b4b6a11c2291bbaaa4a8a Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 5 Jun 2024 12:05:22 -0600 Subject: [PATCH 193/318] app config features --- lib/app_config.dart | 8 ++++++++ scripts/app_config/configure_campfire.sh | 2 ++ scripts/app_config/configure_stack_duo.sh | 6 ++++++ scripts/app_config/configure_stack_wallet.sh | 6 ++++++ 4 files changed, 22 insertions(+) diff --git a/lib/app_config.dart b/lib/app_config.dart index 4b7003177..a9ea781c7 100644 --- a/lib/app_config.dart +++ b/lib/app_config.dart @@ -3,6 +3,12 @@ import 'wallets/crypto_currency/intermediate/frost_currency.dart'; part 'app_config.g.dart'; +enum AppFeature { + themeSelection, + buy, + swap; +} + abstract class AppConfig { static const appName = _prefix + _separator + suffix; @@ -12,6 +18,8 @@ abstract class AppConfig { static String get appDefaultDataDirName => _appDataDirName; static String get commitHash => _commitHash; + static bool hasFeature(AppFeature feature) => _features.contains(feature); + static ({String light, String dark})? get appIconAsset => _appIconAsset; static List get coins => _supportedCoins; diff --git a/scripts/app_config/configure_campfire.sh b/scripts/app_config/configure_campfire.sh index 03135118e..6bdede958 100755 --- a/scripts/app_config/configure_campfire.sh +++ b/scripts/app_config/configure_campfire.sh @@ -46,6 +46,8 @@ const _suffix = ""; const _appDataDirName = "campfire"; const _commitHash = "$BUILT_COMMIT_HASH"; +const Set _features = {}; + const ({String light, String dark})? _appIconAsset = ( light: "assets/in_app_logo_icons/stack-duo-icon_light.svg", dark: "assets/in_app_logo_icons/stack-duo-icon_dark.svg", diff --git a/scripts/app_config/configure_stack_duo.sh b/scripts/app_config/configure_stack_duo.sh index 16b68a030..56c12bd37 100755 --- a/scripts/app_config/configure_stack_duo.sh +++ b/scripts/app_config/configure_stack_duo.sh @@ -40,6 +40,12 @@ const _suffix = "Duo"; const _appDataDirName = "stackduo"; const _commitHash = "$BUILT_COMMIT_HASH"; +const Set _features = { + AppFeature.themeSelection, + AppFeature.buy, + AppFeature.swap +}; + const ({String light, String dark})? _appIconAsset = ( light: "assets/in_app_logo_icons/stack-duo-icon_light.svg", dark: "assets/in_app_logo_icons/stack-duo-icon_dark.svg", diff --git a/scripts/app_config/configure_stack_wallet.sh b/scripts/app_config/configure_stack_wallet.sh index dc43feb4a..7c0dc2a67 100755 --- a/scripts/app_config/configure_stack_wallet.sh +++ b/scripts/app_config/configure_stack_wallet.sh @@ -40,6 +40,12 @@ const _suffix = "Wallet"; const _appDataDirName = "stackwallet"; const _commitHash = "$BUILT_COMMIT_HASH"; +const Set _features = { + AppFeature.themeSelection, + AppFeature.buy, + AppFeature.swap +}; + const ({String light, String dark})? _appIconAsset = null; final List _supportedCoins = List.unmodifiable([ From b6ff0920acc2974b617079ee56019417c0e3ba32 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 4 Jun 2024 15:07:31 -0600 Subject: [PATCH 194/318] clean up coin selection somewhat --- .../electrumx_interface.dart | 498 +++++++++--------- 1 file changed, 235 insertions(+), 263 deletions(-) diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart index eda467a6a..03eb150ac 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart @@ -4,6 +4,7 @@ import 'dart:typed_data'; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; import 'package:isar/isar.dart'; + import '../../../electrumx_rpc/cached_electrumx_client.dart'; import '../../../electrumx_rpc/client_manager.dart'; import '../../../electrumx_rpc/electrumx_client.dart'; @@ -64,7 +65,10 @@ mixin ElectrumXInterface } Future> - _helperRecipientsConvert(List addrs, List satValues) async { + _helperRecipientsConvert( + List addrs, + List satValues, + ) async { final List<({String address, Amount amount, bool isChange})> results = []; for (int i = 0; i < addrs.length; i++) { @@ -72,7 +76,7 @@ mixin ElectrumXInterface ( address: addrs[i], amount: Amount( - rawValue: BigInt.from(satValues[i]), + rawValue: satValues[i], fractionDigits: cryptoCurrency.fractionDigits, ), isChange: (await mainDB.isar.addresses @@ -105,44 +109,47 @@ mixin ElectrumXInterface // TODO: multiple recipients one day assert(txData.recipients!.length == 1); + if (coinControl && utxos == null) { + throw Exception("Coin control used where utxos is null!"); + } + final recipientAddress = txData.recipients!.first.address; - final satoshiAmountToSend = txData.amount!.raw.toInt(); + final satoshiAmountToSend = txData.amount!.raw; final int? satsPerVByte = txData.satsPerVByte; final selectedTxFeeRate = txData.feeRateAmount!; final List availableOutputs = utxos ?? await mainDB.getUTXOs(walletId).findAll(); final currentChainHeight = await chainHeight; - final List spendableOutputs = []; - int spendableSatoshiValue = 0; - // Build list of spendable outputs and totaling their satoshi amount - for (final utxo in availableOutputs) { - if (utxo.isBlocked == false && - utxo.isConfirmed(currentChainHeight, cryptoCurrency.minConfirms) && - utxo.used != true) { - spendableOutputs.add(utxo); - spendableSatoshiValue += utxo.value; - } + final spendableOutputs = availableOutputs + .where( + (e) => + !e.isBlocked && + (e.used != true) && + e.isConfirmed(currentChainHeight, cryptoCurrency.minConfirms), + ) + .toList(); + final spendableSatoshiValue = + spendableOutputs.fold(BigInt.zero, (p, e) => p + BigInt.from(e.value)); + + if (spendableSatoshiValue < satoshiAmountToSend) { + throw Exception("Insufficient balance"); + } else if (spendableSatoshiValue == satoshiAmountToSend && !isSendAll) { + throw Exception("Insufficient balance to pay transaction fee"); } if (coinControl) { if (spendableOutputs.length < availableOutputs.length) { throw ArgumentError("Attempted to use an unavailable utxo"); } - } - - // don't care about sorting if using all utxos - if (!coinControl) { + // don't care about sorting if using all utxos + } else { // sort spendable by age (oldest first) spendableOutputs.sort( (a, b) => (b.blockTime ?? currentChainHeight) .compareTo((a.blockTime ?? currentChainHeight)), ); - // Null check operator changed to null assignment in order to resolve a - // `Null check operator used on a null value` error. currentChainHeight - // used in order to sort these unconfirmed outputs as the youngest, but we - // could just as well use currentChainHeight + 1. } Logging.instance.log( @@ -161,26 +168,10 @@ mixin ElectrumXInterface ); Logging.instance .log("satoshiAmountToSend: $satoshiAmountToSend", level: LogLevel.Info); - // If the amount the user is trying to send is smaller than the amount that they have spendable, - // then return 1, which indicates that they have an insufficient balance. - if (spendableSatoshiValue < satoshiAmountToSend) { - // return 1; - throw Exception("Insufficient balance"); - // If the amount the user wants to send is exactly equal to the amount they can spend, then return - // 2, which indicates that they are not leaving enough over to pay the transaction fee - } else if (spendableSatoshiValue == satoshiAmountToSend && !isSendAll) { - throw Exception("Insufficient balance to pay transaction fee"); - // return 2; - } - // If neither of these statements pass, we assume that the user has a spendable balance greater - // than the amount they're attempting to send. Note that this value still does not account for - // the added transaction fee, which may require an extra input and will need to be checked for - // later on. - // Possible situation right here - int satoshisBeingUsed = 0; + BigInt satoshisBeingUsed = BigInt.zero; int inputsBeingConsumed = 0; - List utxoObjectsToUse = []; + final List utxoObjectsToUse = []; if (!coinControl) { for (var i = 0; @@ -188,7 +179,7 @@ mixin ElectrumXInterface i < spendableOutputs.length; i++) { utxoObjectsToUse.add(spendableOutputs[i]); - satoshisBeingUsed += spendableOutputs[i].value; + satoshisBeingUsed += BigInt.from(spendableOutputs[i].value); inputsBeingConsumed += 1; } for (int i = 0; @@ -196,12 +187,13 @@ mixin ElectrumXInterface inputsBeingConsumed < spendableOutputs.length; i++) { utxoObjectsToUse.add(spendableOutputs[inputsBeingConsumed]); - satoshisBeingUsed += spendableOutputs[inputsBeingConsumed].value; + satoshisBeingUsed += + BigInt.from(spendableOutputs[inputsBeingConsumed].value); inputsBeingConsumed += 1; } } else { satoshisBeingUsed = spendableSatoshiValue; - utxoObjectsToUse = spendableOutputs; + utxoObjectsToUse.addAll(spendableOutputs); inputsBeingConsumed = spendableOutputs.length; } @@ -214,72 +206,20 @@ mixin ElectrumXInterface // numberOfOutputs' length must always be equal to that of recipientsArray and recipientsAmtArray final List recipientsArray = [recipientAddress]; - final List recipientsAmtArray = [satoshiAmountToSend]; + final List recipientsAmtArray = [satoshiAmountToSend]; // gather required signing data final utxoSigningData = await fetchBuildTxData(utxoObjectsToUse); if (isSendAll) { - Logging.instance - .log("Attempting to send all $cryptoCurrency", level: LogLevel.Info); - if (txData.recipients!.length != 1) { - throw Exception( - "Send all to more than one recipient not yet supported", - ); - } - - final int vSizeForOneOutput = (await buildTransaction( + return await _sendAllBuilder( + txData: txData, + recipientAddress: recipientAddress, + satoshiAmountToSend: satoshiAmountToSend, + satoshisBeingUsed: satoshisBeingUsed, utxoSigningData: utxoSigningData, - txData: txData.copyWith( - recipients: await _helperRecipientsConvert( - [recipientAddress], - [satoshisBeingUsed - 1], - ), - ), - )) - .vSize!; - int feeForOneOutput = satsPerVByte != null - ? (satsPerVByte * vSizeForOneOutput) - : estimateTxFee( - vSize: vSizeForOneOutput, - feeRatePerKB: selectedTxFeeRate, - ); - - if (satsPerVByte == null) { - final int roughEstimate = roughFeeEstimate( - spendableOutputs.length, - 1, - selectedTxFeeRate, - ).raw.toInt(); - if (feeForOneOutput < roughEstimate) { - feeForOneOutput = roughEstimate; - } - } - - final int amount = satoshiAmountToSend - feeForOneOutput; - - if (amount < 0) { - throw Exception( - "Estimated fee ($feeForOneOutput sats) is greater than balance!", - ); - } - - final data = await buildTransaction( - txData: txData.copyWith( - recipients: await _helperRecipientsConvert( - [recipientAddress], - [amount], - ), - ), - utxoSigningData: utxoSigningData, - ); - - return data.copyWith( - fee: Amount( - rawValue: BigInt.from(feeForOneOutput), - fractionDigits: cryptoCurrency.fractionDigits, - ), - usedUTXOs: utxoSigningData.map((e) => e.utxo).toList(), + satsPerVByte: satsPerVByte, + feeRatePerKB: selectedTxFeeRate, ); } @@ -290,7 +230,7 @@ mixin ElectrumXInterface txData: txData.copyWith( recipients: await _helperRecipientsConvert( [recipientAddress], - [satoshisBeingUsed - 1], + [satoshisBeingUsed - BigInt.one], ), ), )) @@ -301,6 +241,9 @@ mixin ElectrumXInterface } final int vSizeForTwoOutPuts; + + BigInt maxBI(BigInt a, BigInt b) => a > b ? a : b; + try { vSizeForTwoOutPuts = (await buildTransaction( utxoSigningData: utxoSigningData, @@ -309,7 +252,10 @@ mixin ElectrumXInterface [recipientAddress, (await getCurrentChangeAddress())!.value], [ satoshiAmountToSend, - max(0, satoshisBeingUsed - satoshiAmountToSend - 1), + maxBI( + BigInt.zero, + satoshisBeingUsed - (satoshiAmountToSend + BigInt.one), + ), ], ), ), @@ -321,53 +267,112 @@ mixin ElectrumXInterface } // Assume 1 output, only for recipient and no change - final feeForOneOutput = satsPerVByte != null - ? (satsPerVByte * vSizeForOneOutput) - : estimateTxFee( - vSize: vSizeForOneOutput, - feeRatePerKB: selectedTxFeeRate, - ); + final feeForOneOutput = BigInt.from( + satsPerVByte != null + ? (satsPerVByte * vSizeForOneOutput) + : estimateTxFee( + vSize: vSizeForOneOutput, + feeRatePerKB: selectedTxFeeRate, + ), + ); // Assume 2 outputs, one for recipient and one for change - final feeForTwoOutputs = satsPerVByte != null - ? (satsPerVByte * vSizeForTwoOutPuts) - : estimateTxFee( - vSize: vSizeForTwoOutPuts, - feeRatePerKB: selectedTxFeeRate, - ); + final feeForTwoOutputs = BigInt.from( + satsPerVByte != null + ? (satsPerVByte * vSizeForTwoOutPuts) + : estimateTxFee( + vSize: vSizeForTwoOutPuts, + feeRatePerKB: selectedTxFeeRate, + ), + ); - Logging.instance - .log("feeForTwoOutputs: $feeForTwoOutputs", level: LogLevel.Info); - Logging.instance - .log("feeForOneOutput: $feeForOneOutput", level: LogLevel.Info); + Logging.instance.log( + "feeForTwoOutputs: $feeForTwoOutputs", + level: LogLevel.Info, + ); + Logging.instance.log( + "feeForOneOutput: $feeForOneOutput", + level: LogLevel.Info, + ); - if (satoshisBeingUsed - satoshiAmountToSend > feeForOneOutput) { - if (satoshisBeingUsed - satoshiAmountToSend > - feeForOneOutput + cryptoCurrency.dustLimit.raw.toInt()) { - // Here, we know that theoretically, we may be able to include another output(change) but we first need to - // factor in the value of this output in satoshis. - final int changeOutputSize = - satoshisBeingUsed - satoshiAmountToSend - feeForTwoOutputs; - // We check to see if the user can pay for the new transaction with 2 outputs instead of one. If they can and - // the second output's size > cryptoCurrency.dustLimit satoshis, we perform the mechanics required to properly generate and use a new - // change address. - if (changeOutputSize > cryptoCurrency.dustLimit.raw.toInt() && - satoshisBeingUsed - satoshiAmountToSend - changeOutputSize == - feeForTwoOutputs) { + final difference = satoshisBeingUsed - satoshiAmountToSend; + + Future singleOutputTxn() async { + Logging.instance.log( + 'Input size: $satoshisBeingUsed', + level: LogLevel.Info, + ); + Logging.instance.log( + 'Recipient output size: $satoshiAmountToSend', + level: LogLevel.Info, + ); + Logging.instance.log( + 'Fee being paid: $difference sats', + level: LogLevel.Info, + ); + Logging.instance.log( + 'Estimated fee: $feeForOneOutput', + level: LogLevel.Info, + ); + final txnData = await buildTransaction( + utxoSigningData: utxoSigningData, + txData: txData.copyWith( + recipients: await _helperRecipientsConvert( + recipientsArray, + recipientsAmtArray, + ), + ), + ); + return txnData.copyWith( + fee: Amount( + rawValue: feeForOneOutput, + fractionDigits: cryptoCurrency.fractionDigits, + ), + usedUTXOs: utxoSigningData.map((e) => e.utxo).toList(), + ); + } + + // no change output required + if (difference == feeForOneOutput) { + Logging.instance.log('1 output in tx', level: LogLevel.Info); + return await singleOutputTxn(); + } else if (difference < feeForOneOutput) { + Logging.instance.log( + 'Cannot pay tx fee - checking for more outputs and trying again', + level: LogLevel.Warning, + ); + // try adding more outputs + if (spendableOutputs.length > inputsBeingConsumed) { + return coinSelection( + txData: txData, + isSendAll: isSendAll, + additionalOutputs: additionalOutputs + 1, + utxos: utxos, + coinControl: coinControl, + ); + } + throw Exception("Insufficient balance to pay transaction fee"); + } else { + if (difference > (feeForOneOutput + cryptoCurrency.dustLimit.raw)) { + final changeOutputSize = difference - feeForTwoOutputs; + // check if possible to add the change output + if (changeOutputSize > cryptoCurrency.dustLimit.raw && + difference - changeOutputSize == feeForTwoOutputs) { // generate new change address if current change address has been used await checkChangeAddressForTransactions(); final String newChangeAddress = (await getCurrentChangeAddress())!.value; - int feeBeingPaid = - satoshisBeingUsed - satoshiAmountToSend - changeOutputSize; + BigInt feeBeingPaid = difference - changeOutputSize; + // add change output recipientsArray.add(newChangeAddress); recipientsAmtArray.add(changeOutputSize); - // At this point, we have the outputs we're going to use, the amounts to send along with which addresses - // we intend to send these amounts to. We have enough to send instructions to build the transaction. + Logging.instance.log('2 outputs in tx', level: LogLevel.Info); - Logging.instance - .log('Input size: $satoshisBeingUsed', level: LogLevel.Info); + Logging.instance.log( + 'Input size: $satoshisBeingUsed', + level: LogLevel.Info, + ); Logging.instance.log( 'Recipient output size: $satoshiAmountToSend', level: LogLevel.Info, @@ -380,10 +385,12 @@ mixin ElectrumXInterface 'Difference (fee being paid): $feeBeingPaid sats', level: LogLevel.Info, ); - Logging.instance - .log('Estimated fee: $feeForTwoOutputs', level: LogLevel.Info); + Logging.instance.log( + 'Estimated fee: $feeForTwoOutputs', + level: LogLevel.Info, + ); - var txn = await buildTransaction( + TxData txnData = await buildTransaction( utxoSigningData: utxoSigningData, txData: txData.copyWith( recipients: await _helperRecipientsConvert( @@ -394,13 +401,12 @@ mixin ElectrumXInterface ); // make sure minimum fee is accurate if that is being used - if (txn.vSize! - feeBeingPaid == 1) { - final int changeOutputSize = - satoshisBeingUsed - satoshiAmountToSend - txn.vSize!; - feeBeingPaid = - satoshisBeingUsed - satoshiAmountToSend - changeOutputSize; + if (BigInt.from(txnData.vSize!) - feeBeingPaid == BigInt.one) { + final changeOutputSize = difference - BigInt.from(txnData.vSize!); + feeBeingPaid = difference - changeOutputSize; recipientsAmtArray.removeLast(); recipientsAmtArray.add(changeOutputSize); + Logging.instance.log( 'Adjusted Input size: $satoshisBeingUsed', level: LogLevel.Info, @@ -421,7 +427,8 @@ mixin ElectrumXInterface 'Adjusted Estimated fee: $feeForTwoOutputs', level: LogLevel.Info, ); - txn = await buildTransaction( + + txnData = await buildTransaction( utxoSigningData: utxoSigningData, txData: txData.copyWith( recipients: await _helperRecipientsConvert( @@ -432,9 +439,9 @@ mixin ElectrumXInterface ); } - return txn.copyWith( + return txnData.copyWith( fee: Amount( - rawValue: BigInt.from(feeBeingPaid), + rawValue: feeBeingPaid, fractionDigits: cryptoCurrency.fractionDigits, ), usedUTXOs: utxoSigningData.map((e) => e.utxo).toList(), @@ -442,126 +449,91 @@ mixin ElectrumXInterface } else { // Something went wrong here. It either overshot or undershot the estimated fee amount or the changeOutputSize // is smaller than or equal to cryptoCurrency.dustLimit. Revert to single output transaction. - Logging.instance.log('1 output in tx', level: LogLevel.Info); - Logging.instance - .log('Input size: $satoshisBeingUsed', level: LogLevel.Info); Logging.instance.log( - 'Recipient output size: $satoshiAmountToSend', + 'Reverting to 1 output in tx', level: LogLevel.Info, ); - Logging.instance.log( - 'Difference (fee being paid): ${satoshisBeingUsed - satoshiAmountToSend} sats', - level: LogLevel.Info, - ); - Logging.instance - .log('Estimated fee: $feeForOneOutput', level: LogLevel.Info); - final txn = await buildTransaction( - utxoSigningData: utxoSigningData, - txData: txData.copyWith( - recipients: await _helperRecipientsConvert( - recipientsArray, - recipientsAmtArray, - ), - ), - ); - return txn.copyWith( - fee: Amount( - rawValue: BigInt.from(satoshisBeingUsed - satoshiAmountToSend), - fractionDigits: cryptoCurrency.fractionDigits, - ), - usedUTXOs: utxoSigningData.map((e) => e.utxo).toList(), - ); + return await singleOutputTxn(); } - } else { - // No additional outputs needed since adding one would mean that it'd be smaller than cryptoCurrency.dustLimit sats - // which makes it uneconomical to add to the transaction. Here, we pass data directly to instruct - // the wallet to begin crafting the transaction that the user requested. - Logging.instance.log('1 output in tx', level: LogLevel.Info); - Logging.instance - .log('Input size: $satoshisBeingUsed', level: LogLevel.Info); - Logging.instance.log( - 'Recipient output size: $satoshiAmountToSend', - level: LogLevel.Info, - ); - Logging.instance.log( - 'Difference (fee being paid): ${satoshisBeingUsed - satoshiAmountToSend} sats', - level: LogLevel.Info, - ); - Logging.instance - .log('Estimated fee: $feeForOneOutput', level: LogLevel.Info); - final txn = await buildTransaction( - utxoSigningData: utxoSigningData, - txData: txData.copyWith( - recipients: await _helperRecipientsConvert( - recipientsArray, - recipientsAmtArray, - ), - ), - ); - - return txn.copyWith( - fee: Amount( - rawValue: BigInt.from(satoshisBeingUsed - satoshiAmountToSend), - fractionDigits: cryptoCurrency.fractionDigits, - ), - usedUTXOs: utxoSigningData.map((e) => e.utxo).toList(), - ); } - } else if (satoshisBeingUsed - satoshiAmountToSend == feeForOneOutput) { - // In this scenario, no additional change output is needed since inputs - outputs equal exactly - // what we need to pay for fees. Here, we pass data directly to instruct the wallet to begin - // crafting the transaction that the user requested. - Logging.instance.log('1 output in tx', level: LogLevel.Info); - Logging.instance - .log('Input size: $satoshisBeingUsed', level: LogLevel.Info); - Logging.instance.log( - 'Recipient output size: $satoshiAmountToSend', - level: LogLevel.Info, - ); - Logging.instance.log( - 'Fee being paid: ${satoshisBeingUsed - satoshiAmountToSend} sats', - level: LogLevel.Info, - ); - Logging.instance - .log('Estimated fee: $feeForOneOutput', level: LogLevel.Info); - final txn = await buildTransaction( - utxoSigningData: utxoSigningData, - txData: txData.copyWith( - recipients: await _helperRecipientsConvert( - recipientsArray, - recipientsAmtArray, - ), - ), - ); - return txn.copyWith( - fee: Amount( - rawValue: BigInt.from(feeForOneOutput), - fractionDigits: cryptoCurrency.fractionDigits, - ), - usedUTXOs: utxoSigningData.map((e) => e.utxo).toList(), - ); - } else { - // Remember that returning 2 indicates that the user does not have a sufficient balance to - // pay for the transaction fee. Ideally, at this stage, we should check if the user has any - // additional outputs they're able to spend and then recalculate fees. - Logging.instance.log( - 'Cannot pay tx fee - checking for more outputs and trying again', - level: LogLevel.Warning, - ); - // try adding more outputs - if (spendableOutputs.length > inputsBeingConsumed) { - return coinSelection( - txData: txData, - isSendAll: isSendAll, - additionalOutputs: additionalOutputs + 1, - utxos: utxos, - coinControl: coinControl, - ); - } - throw Exception("Insufficient balance to pay transaction fee"); - // return 2; } + + return txData; + } + + Future _sendAllBuilder({ + required TxData txData, + required String recipientAddress, + required BigInt satoshiAmountToSend, + required BigInt satoshisBeingUsed, + required List utxoSigningData, + required int? satsPerVByte, + required int feeRatePerKB, + }) async { + Logging.instance + .log("Attempting to send all $cryptoCurrency", level: LogLevel.Info); + if (txData.recipients!.length != 1) { + throw Exception( + "Send all to more than one recipient not yet supported", + ); + } + + final int vSizeForOneOutput = (await buildTransaction( + utxoSigningData: utxoSigningData, + txData: txData.copyWith( + recipients: await _helperRecipientsConvert( + [recipientAddress], + [satoshisBeingUsed - BigInt.one], + ), + ), + )) + .vSize!; + BigInt feeForOneOutput = BigInt.from( + satsPerVByte != null + ? (satsPerVByte * vSizeForOneOutput) + : estimateTxFee( + vSize: vSizeForOneOutput, + feeRatePerKB: feeRatePerKB, + ), + ); + + if (satsPerVByte == null) { + final roughEstimate = roughFeeEstimate( + utxoSigningData.length, + 1, + feeRatePerKB, + ).raw; + if (feeForOneOutput < roughEstimate) { + feeForOneOutput = roughEstimate; + } + } + + final amount = satoshiAmountToSend - feeForOneOutput; + + if (amount.isNegative) { + throw Exception( + "Estimated fee ($feeForOneOutput sats) is greater than balance!", + ); + } + + final data = await buildTransaction( + txData: txData.copyWith( + recipients: await _helperRecipientsConvert( + [recipientAddress], + [amount], + ), + ), + utxoSigningData: utxoSigningData, + ); + + return data.copyWith( + fee: Amount( + rawValue: feeForOneOutput, + fractionDigits: cryptoCurrency.fractionDigits, + ), + usedUTXOs: utxoSigningData.map((e) => e.utxo).toList(), + ); } Future> fetchBuildTxData( From 23db925e86e4c4346a7d72217e56257b287db612 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 5 Jun 2024 13:37:16 -0600 Subject: [PATCH 195/318] script fix --- scripts/app_config/configure_campfire.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/app_config/configure_campfire.sh b/scripts/app_config/configure_campfire.sh index 6bdede958..6298443db 100755 --- a/scripts/app_config/configure_campfire.sh +++ b/scripts/app_config/configure_campfire.sh @@ -49,8 +49,8 @@ const _commitHash = "$BUILT_COMMIT_HASH"; const Set _features = {}; const ({String light, String dark})? _appIconAsset = ( - light: "assets/in_app_logo_icons/stack-duo-icon_light.svg", - dark: "assets/in_app_logo_icons/stack-duo-icon_dark.svg", + light: "assets/in_app_logo_icons/campfire-icon_light.svg", + dark: "assets/in_app_logo_icons/campfire-icon_dark.svg", ); final List _supportedCoins = List.unmodifiable([ From 2c07f2c13bdc3461d1b37b450bca497b19ae3c9a Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 5 Jun 2024 13:38:20 -0600 Subject: [PATCH 196/318] separate firo caches and add versioning --- lib/db/sqlite/firo_cache.dart | 74 +++++++++++++++---- lib/db/sqlite/firo_cache_coordinator.dart | 32 ++++---- lib/db/sqlite/firo_cache_worker.dart | 38 +++++++--- .../wallet_view/desktop_wallet_view.dart | 19 +++++ lib/utilities/stack_file_system.dart | 22 +++++- 5 files changed, 142 insertions(+), 43 deletions(-) diff --git a/lib/db/sqlite/firo_cache.dart b/lib/db/sqlite/firo_cache.dart index 7197690a8..543b63557 100644 --- a/lib/db/sqlite/firo_cache.dart +++ b/lib/db/sqlite/firo_cache.dart @@ -15,8 +15,8 @@ import '../../utilities/stack_file_system.dart'; part 'firo_cache_coordinator.dart'; part 'firo_cache_reader.dart'; -part 'firo_cache_writer.dart'; part 'firo_cache_worker.dart'; +part 'firo_cache_writer.dart'; /// Temporary debugging log function for this file void _debugLog(Object? object) { @@ -29,44 +29,73 @@ void _debugLog(Object? object) { } abstract class _FiroCache { - static const String sqliteDbFileName = "firo_ex_cache.sqlite3"; + static const int _setCacheVersion = 1; + static const int _tagsCacheVersion = 1; + static const String sparkSetCacheFileName = + "spark_set_v$_setCacheVersion.sqlite3"; + static const String sparkUsedTagsCacheFileName = + "spark_tags_v$_tagsCacheVersion.sqlite3"; - static Database? _db; - static Database get db { - if (_db == null) { + static Database? _setCacheDB; + static Database? _usedTagsCacheDB; + static Database get setCacheDB { + if (_setCacheDB == null) { throw Exception( "FiroCache.init() must be called before accessing FiroCache.db!", ); } - return _db!; + return _setCacheDB!; + } + + static Database get usedTagsCacheDB { + if (_usedTagsCacheDB == null) { + throw Exception( + "FiroCache.init() must be called before accessing FiroCache.db!", + ); + } + return _usedTagsCacheDB!; } static Future? _initFuture; static Future init() => _initFuture ??= _init(); static Future _init() async { - final sqliteDir = await StackFileSystem.applicationSQLiteDirectory(); + final sqliteDir = + await StackFileSystem.applicationFiroCacheSQLiteDirectory(); - final file = File("${sqliteDir.path}/$sqliteDbFileName"); + final sparkSetCacheFile = File("${sqliteDir.path}/$sparkSetCacheFileName"); + final sparkUsedTagsCacheFile = + File("${sqliteDir.path}/$sparkUsedTagsCacheFileName"); - final exists = await file.exists(); - if (!exists) { - await _createDb(file.path); + if (!(await sparkSetCacheFile.exists())) { + await _createSparkSetCacheDb(sparkSetCacheFile.path); + } + if (!(await sparkUsedTagsCacheFile.exists())) { + await _createSparkUsedTagsCacheDb(sparkUsedTagsCacheFile.path); } - _db = sqlite3.open( - file.path, + _setCacheDB = sqlite3.open( + sparkSetCacheFile.path, + mode: OpenMode.readWrite, + ); + _usedTagsCacheDB = sqlite3.open( + sparkUsedTagsCacheFile.path, mode: OpenMode.readWrite, ); } static Future _deleteAllCache() async { final start = DateTime.now(); - db.execute( + setCacheDB.execute( """ DELETE FROM SparkSet; DELETE FROM SparkCoin; DELETE FROM SparkSetCoins; + VACUUM; + """, + ); + usedTagsCacheDB.execute( + """ DELETE FROM SparkUsedCoinTags; VACUUM; """, @@ -77,7 +106,7 @@ abstract class _FiroCache { ); } - static Future _createDb(String file) async { + static Future _createSparkSetCacheDb(String file) async { final db = sqlite3.open( file, mode: OpenMode.readWriteCreate, @@ -109,7 +138,20 @@ abstract class _FiroCache { FOREIGN KEY (setId) REFERENCES SparkSet(id), FOREIGN KEY (coinId) REFERENCES SparkCoin(id) ); - + """, + ); + + db.dispose(); + } + + static Future _createSparkUsedTagsCacheDb(String file) async { + final db = sqlite3.open( + file, + mode: OpenMode.readWriteCreate, + ); + + db.execute( + """ CREATE TABLE SparkUsedCoinTags ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, tag TEXT NOT NULL UNIQUE diff --git a/lib/db/sqlite/firo_cache_coordinator.dart b/lib/db/sqlite/firo_cache_coordinator.dart index d2e4796f6..610504d5f 100644 --- a/lib/db/sqlite/firo_cache_coordinator.dart +++ b/lib/db/sqlite/firo_cache_coordinator.dart @@ -20,14 +20,18 @@ abstract class FiroCacheCoordinator { } static Future getSparkCacheSize() async { - final dir = await StackFileSystem.applicationSQLiteDirectory(); - final cacheFile = File("${dir.path}/${_FiroCache.sqliteDbFileName}"); - final int bytes; - if (await cacheFile.exists()) { - bytes = await cacheFile.length(); - } else { - bytes = 0; - } + final dir = await StackFileSystem.applicationFiroCacheSQLiteDirectory(); + final setCacheFile = File( + "${dir.path}/${_FiroCache.sparkSetCacheFileName}", + ); + final usedTagsCacheFile = File( + "${dir.path}/${_FiroCache.sparkUsedTagsCacheFileName}", + ); + final int bytes = + ((await setCacheFile.exists()) ? await setCacheFile.length() : 0) + + ((await usedTagsCacheFile.exists()) + ? await usedTagsCacheFile.length() + : 0); if (bytes < 1024) { return '$bytes B'; @@ -88,7 +92,7 @@ abstract class FiroCacheCoordinator { static Future> getUsedCoinTags(int startNumber) async { final result = await _Reader._getSparkUsedCoinTags( startNumber, - db: _FiroCache.db, + db: _FiroCache.usedTagsCacheDB, ); return result.map((e) => e["tag"] as String).toSet(); } @@ -99,7 +103,7 @@ abstract class FiroCacheCoordinator { /// this table in practice. static Future getUsedCoinTagsLastAddedRowId() async { final result = await _Reader._getUsedCoinTagsLastAddedRowId( - db: _FiroCache.db, + db: _FiroCache.usedTagsCacheDB, ); if (result.isEmpty) { return 0; @@ -112,7 +116,7 @@ abstract class FiroCacheCoordinator { ) async { return await _Reader._checkTagIsUsed( tag, - db: _FiroCache.db, + db: _FiroCache.usedTagsCacheDB, ); } @@ -122,7 +126,7 @@ abstract class FiroCacheCoordinator { }) async { return await _Reader._getSetCoinsForGroupId( groupId, - db: _FiroCache.db, + db: _FiroCache.setCacheDB, newerThanTimeStamp: newerThanTimeStamp, ); } @@ -137,7 +141,7 @@ abstract class FiroCacheCoordinator { ) async { final result = await _Reader._getLatestSetInfoForGroupId( groupId, - db: _FiroCache.db, + db: _FiroCache.setCacheDB, ); if (result.isEmpty) { @@ -156,7 +160,7 @@ abstract class FiroCacheCoordinator { ) async { return await _Reader._checkSetInfoForGroupIdExists( groupId, - db: _FiroCache.db, + db: _FiroCache.setCacheDB, ); } } diff --git a/lib/db/sqlite/firo_cache_worker.dart b/lib/db/sqlite/firo_cache_worker.dart index d29018b8d..a611c54b9 100644 --- a/lib/db/sqlite/firo_cache_worker.dart +++ b/lib/db/sqlite/firo_cache_worker.dart @@ -26,8 +26,10 @@ class _FiroCacheWorker { } static Future<_FiroCacheWorker> spawn() async { - final sqliteDir = await StackFileSystem.applicationSQLiteDirectory(); - final dbFilePath = "${sqliteDir.path}/${_FiroCache.sqliteDbFileName}"; + final dir = await StackFileSystem.applicationFiroCacheSQLiteDirectory(); + final setCacheFilePath = "${dir.path}/${_FiroCache.sparkSetCacheFileName}"; + final usedTagsCacheFilePath = + "${dir.path}/${_FiroCache.sparkUsedTagsCacheFileName}"; final initPort = RawReceivePort(); final connection = Completer<(ReceivePort, SendPort)>.sync(); @@ -45,7 +47,7 @@ class _FiroCacheWorker { try { await Isolate.spawn( _startWorkerIsolate, - (initPort.sendPort, dbFilePath), + (initPort.sendPort, setCacheFilePath, usedTagsCacheFilePath), ); } catch (_) { initPort.close(); @@ -75,7 +77,8 @@ class _FiroCacheWorker { static void _handleCommandsToIsolate( ReceivePort receivePort, SendPort sendPort, - Database db, + Database setCacheDb, + Database usedTagsCacheDb, Mutex mutex, ) { receivePort.listen((message) { @@ -87,11 +90,18 @@ class _FiroCacheWorker { switch (task.func) { case FCFuncName._updateSparkAnonSetCoinsWith: final data = task.data as (int, Map); - result = _updateSparkAnonSetCoinsWith(db, data.$2, data.$1); + result = _updateSparkAnonSetCoinsWith( + setCacheDb, + data.$2, + data.$1, + ); break; case FCFuncName._updateSparkUsedTagsWith: - result = _updateSparkUsedTagsWith(db, task.data as List); + result = _updateSparkUsedTagsWith( + usedTagsCacheDb, + task.data as List, + ); break; } @@ -107,14 +117,24 @@ class _FiroCacheWorker { }); } - static void _startWorkerIsolate((SendPort, String) args) { + static void _startWorkerIsolate((SendPort, String, String) args) { final receivePort = ReceivePort(); args.$1.send(receivePort.sendPort); final mutex = Mutex(); - final db = sqlite3.open( + final setCacheDb = sqlite3.open( args.$2, mode: OpenMode.readWrite, ); - _handleCommandsToIsolate(receivePort, args.$1, db, mutex); + final usedTagsCacheDb = sqlite3.open( + args.$3, + mode: OpenMode.readWrite, + ); + _handleCommandsToIsolate( + receivePort, + args.$1, + setCacheDb, + usedTagsCacheDb, + mutex, + ); } } diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart index 022c0640a..cf47215d1 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart @@ -18,6 +18,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; +import '../../../db/sqlite/firo_cache.dart'; import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../models/isar/models/isar_models.dart'; import '../../../pages/add_wallet_views/add_token_view/edit_wallet_tokens_view.dart'; @@ -282,6 +283,24 @@ class _DesktopWalletViewState extends ConsumerState { ), ], ), + if (wallet.isarTransactionVersion == 2 && + wallet is FiroWallet) + Row( + children: [ + const Text( + "sparkCache: ", + ), + const SizedBox( + width: 2, + ), + FutureBuilder( + future: FiroCacheCoordinator.getSparkCacheSize(), + builder: (_, snapshot) => Text( + snapshot.data ?? "", + ), + ), + ], + ), ], ), const Spacer(), diff --git a/lib/utilities/stack_file_system.dart b/lib/utilities/stack_file_system.dart index 281bd2a8f..da3d33cfe 100644 --- a/lib/utilities/stack_file_system.dart +++ b/lib/utilities/stack_file_system.dart @@ -91,10 +91,24 @@ abstract class StackFileSystem { } } - static Future applicationSQLiteDirectory() async { + // Not used in general now. See applicationFiroCacheSQLiteDirectory() + // static Future applicationSQLiteDirectory() async { + // final root = await applicationRootDirectory(); + // if (Util.isDesktop) { + // final dir = Directory("${root.path}/sqlite"); + // if (!dir.existsSync()) { + // await dir.create(); + // } + // return dir; + // } else { + // return root; + // } + // } + + static Future applicationTorDirectory() async { final root = await applicationRootDirectory(); if (Util.isDesktop) { - final dir = Directory("${root.path}/sqlite"); + final dir = Directory("${root.path}/tor"); if (!dir.existsSync()) { await dir.create(); } @@ -104,10 +118,10 @@ abstract class StackFileSystem { } } - static Future applicationTorDirectory() async { + static Future applicationFiroCacheSQLiteDirectory() async { final root = await applicationRootDirectory(); if (Util.isDesktop) { - final dir = Directory("${root.path}/tor"); + final dir = Directory("${root.path}/sqlite/firo_cache"); if (!dir.existsSync()) { await dir.create(); } From 88f462f43ecc22fa8f62230244b77a4c629928ee Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 5 Jun 2024 17:19:33 -0500 Subject: [PATCH 197/318] add transactionVersion overrides for all coins ecash and particl may vary, need to verify. --- lib/wallets/crypto_currency/coins/bitcoin.dart | 4 ++++ lib/wallets/crypto_currency/coins/bitcoincash.dart | 3 +++ lib/wallets/crypto_currency/coins/dogecoin.dart | 4 ++++ lib/wallets/crypto_currency/coins/ecash.dart | 3 +++ lib/wallets/crypto_currency/coins/firo.dart | 6 +++++- lib/wallets/crypto_currency/coins/litecoin.dart | 4 ++++ lib/wallets/crypto_currency/coins/namecoin.dart | 3 +++ lib/wallets/crypto_currency/coins/particl.dart | 3 +++ 8 files changed, 29 insertions(+), 1 deletion(-) diff --git a/lib/wallets/crypto_currency/coins/bitcoin.dart b/lib/wallets/crypto_currency/coins/bitcoin.dart index 118d61f24..ffdd4c15d 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin.dart @@ -1,4 +1,5 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/amount/amount.dart'; @@ -291,4 +292,7 @@ class Bitcoin extends Bip39HDCurrency ); } } + + @override + int get transactionVersion => 1; } diff --git a/lib/wallets/crypto_currency/coins/bitcoincash.dart b/lib/wallets/crypto_currency/coins/bitcoincash.dart index 25e18f6a3..8a2f91aae 100644 --- a/lib/wallets/crypto_currency/coins/bitcoincash.dart +++ b/lib/wallets/crypto_currency/coins/bitcoincash.dart @@ -364,4 +364,7 @@ class Bitcoincash extends Bip39HDCurrency with ElectrumXCurrencyInterface { ); } } + + @override + int get transactionVersion => 1; } diff --git a/lib/wallets/crypto_currency/coins/dogecoin.dart b/lib/wallets/crypto_currency/coins/dogecoin.dart index 3e1824e48..cbb9bea1e 100644 --- a/lib/wallets/crypto_currency/coins/dogecoin.dart +++ b/lib/wallets/crypto_currency/coins/dogecoin.dart @@ -1,4 +1,5 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/amount/amount.dart'; @@ -248,4 +249,7 @@ class Dogecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { ); } } + + @override + int get transactionVersion => 1; } diff --git a/lib/wallets/crypto_currency/coins/ecash.dart b/lib/wallets/crypto_currency/coins/ecash.dart index f20b9a52c..a68a82dcd 100644 --- a/lib/wallets/crypto_currency/coins/ecash.dart +++ b/lib/wallets/crypto_currency/coins/ecash.dart @@ -338,4 +338,7 @@ class Ecash extends Bip39HDCurrency with ElectrumXCurrencyInterface { ); } } + + @override + int get transactionVersion => 1; } diff --git a/lib/wallets/crypto_currency/coins/firo.dart b/lib/wallets/crypto_currency/coins/firo.dart index d9dbe3e65..6880190b6 100644 --- a/lib/wallets/crypto_currency/coins/firo.dart +++ b/lib/wallets/crypto_currency/coins/firo.dart @@ -1,13 +1,14 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/amount/amount.dart'; import '../../../utilities/default_nodes.dart'; import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../../wallet/wallet_mixin_interfaces/spark_interface.dart'; import '../crypto_currency.dart'; import '../interfaces/electrumx_currency_interface.dart'; import '../intermediate/bip39_hd_currency.dart'; -import '../../wallet/wallet_mixin_interfaces/spark_interface.dart'; class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { Firo(super.network) { @@ -266,4 +267,7 @@ class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { ); } } + + @override + int get transactionVersion => 1; } diff --git a/lib/wallets/crypto_currency/coins/litecoin.dart b/lib/wallets/crypto_currency/coins/litecoin.dart index 89346e509..880a3260e 100644 --- a/lib/wallets/crypto_currency/coins/litecoin.dart +++ b/lib/wallets/crypto_currency/coins/litecoin.dart @@ -1,4 +1,5 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/amount/amount.dart'; @@ -279,4 +280,7 @@ class Litecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { ); } } + + @override + int get transactionVersion => 1; } diff --git a/lib/wallets/crypto_currency/coins/namecoin.dart b/lib/wallets/crypto_currency/coins/namecoin.dart index daca04916..371406ddf 100644 --- a/lib/wallets/crypto_currency/coins/namecoin.dart +++ b/lib/wallets/crypto_currency/coins/namecoin.dart @@ -252,4 +252,7 @@ class Namecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { ); } } + + @override + int get transactionVersion => 1; } diff --git a/lib/wallets/crypto_currency/coins/particl.dart b/lib/wallets/crypto_currency/coins/particl.dart index 382602e7a..595f6fbf4 100644 --- a/lib/wallets/crypto_currency/coins/particl.dart +++ b/lib/wallets/crypto_currency/coins/particl.dart @@ -230,4 +230,7 @@ class Particl extends Bip39HDCurrency with ElectrumXCurrencyInterface { ); } } + + @override + int get transactionVersion => 1; } From 42b728eb08a36876ba6d61fb147b2789b4d322b2 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 5 Jun 2024 17:48:32 -0500 Subject: [PATCH 198/318] hide or show Swap features based on configuration --- .../sub_widgets/home_view_button_bar.dart | 96 ++++++++++--------- .../token_view/sub_widgets/token_summary.dart | 36 +++---- lib/pages/wallet_view/wallet_view.dart | 51 +++++----- lib/pages_desktop_specific/desktop_menu.dart | 29 +++--- .../sub_widgets/desktop_wallet_features.dart | 16 ++-- 5 files changed, 122 insertions(+), 106 deletions(-) diff --git a/lib/pages/home_view/sub_widgets/home_view_button_bar.dart b/lib/pages/home_view/sub_widgets/home_view_button_bar.dart index 8744e1980..059e943ba 100644 --- a/lib/pages/home_view/sub_widgets/home_view_button_bar.dart +++ b/lib/pages/home_view/sub_widgets/home_view_button_bar.dart @@ -10,6 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + +import '../../../app_config.dart'; import '../../../providers/providers.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/text_styles.dart'; @@ -86,55 +88,57 @@ class _HomeViewButtonBarState extends ConsumerState { ), ), ), - const SizedBox( - width: 8, - ), - Expanded( - child: TextButton( - style: selectedIndex == 1 - ? Theme.of(context) - .extension()! - .getPrimaryEnabledButtonStyle(context)! - .copyWith( - minimumSize: - MaterialStateProperty.all(const Size(46, 36)), - ) - : Theme.of(context) - .extension()! - .getSecondaryEnabledButtonStyle(context)! - .copyWith( - minimumSize: - MaterialStateProperty.all(const Size(46, 36)), - ), - onPressed: () async { - FocusScope.of(context).unfocus(); - if (selectedIndex != 1) { - ref.read(homeViewPageIndexStateProvider.state).state = 1; - } - // DateTime now = DateTime.now(); - // if (ref.read(prefsChangeNotifierProvider).externalCalls) { - // print("loading?"); - // await ExchangeDataLoadingService().loadAll(ref); - // } - // if (now.difference(_lastRefreshed) > _refreshInterval) { - // await ExchangeDataLoadingService().loadAll(ref); - // } - }, - child: Text( - "Swap", - style: STextStyles.button(context).copyWith( - fontSize: 14, - color: selectedIndex == 1 - ? Theme.of(context) - .extension()! - .buttonTextPrimary - : Theme.of(context) - .extension()! - .buttonTextSecondary, + if (AppConfig.hasFeature(AppFeature.swap)) + const SizedBox( + width: 8, + ), + if (AppConfig.hasFeature(AppFeature.swap)) + Expanded( + child: TextButton( + style: selectedIndex == 1 + ? Theme.of(context) + .extension()! + .getPrimaryEnabledButtonStyle(context)! + .copyWith( + minimumSize: + MaterialStateProperty.all(const Size(46, 36)), + ) + : Theme.of(context) + .extension()! + .getSecondaryEnabledButtonStyle(context)! + .copyWith( + minimumSize: + MaterialStateProperty.all(const Size(46, 36)), + ), + onPressed: () async { + FocusScope.of(context).unfocus(); + if (selectedIndex != 1) { + ref.read(homeViewPageIndexStateProvider.state).state = 1; + } + // DateTime now = DateTime.now(); + // if (ref.read(prefsChangeNotifierProvider).externalCalls) { + // print("loading?"); + // await ExchangeDataLoadingService().loadAll(ref); + // } + // if (now.difference(_lastRefreshed) > _refreshInterval) { + // await ExchangeDataLoadingService().loadAll(ref); + // } + }, + child: Text( + "Swap", + style: STextStyles.button(context).copyWith( + fontSize: 14, + color: selectedIndex == 1 + ? Theme.of(context) + .extension()! + .buttonTextPrimary + : Theme.of(context) + .extension()! + .buttonTextSecondary, + ), ), ), ), - ), const SizedBox( width: 8, ), diff --git a/lib/pages/token_view/sub_widgets/token_summary.dart b/lib/pages/token_view/sub_widgets/token_summary.dart index d20662eb4..c14c6d90f 100644 --- a/lib/pages/token_view/sub_widgets/token_summary.dart +++ b/lib/pages/token_view/sub_widgets/token_summary.dart @@ -14,12 +14,10 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:tuple/tuple.dart'; + +import '../../../app_config.dart'; import '../../../models/isar/models/ethereum/eth_contract.dart'; -import '../../buy_view/buy_in_wallet_view.dart'; -import '../../exchange_view/wallet_initiated_exchange_view.dart'; -import '../../receive_view/receive_view.dart'; -import '../../send_view/token_send_view.dart'; -import '../../wallet_view/sub_widgets/wallet_refresh_button.dart'; import '../../../providers/global/locale_provider.dart'; import '../../../providers/global/prefs_provider.dart'; import '../../../providers/global/price_provider.dart'; @@ -37,7 +35,11 @@ import '../../../wallets/isar/providers/eth/token_balance_provider.dart'; import '../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../widgets/conditional_parent.dart'; import '../../../widgets/rounded_container.dart'; -import 'package:tuple/tuple.dart'; +import '../../buy_view/buy_in_wallet_view.dart'; +import '../../exchange_view/wallet_initiated_exchange_view.dart'; +import '../../receive_view/receive_view.dart'; +import '../../send_view/token_send_view.dart'; +import '../../wallet_view/sub_widgets/wallet_refresh_button.dart'; class TokenSummary extends ConsumerWidget { const TokenSummary({ @@ -249,18 +251,20 @@ class TokenWalletOptions extends ConsumerWidget { subLabel: "Send", iconAssetPathSVG: Assets.svg.arrowUpRight, ), - const SizedBox( - width: 16, - ), - TokenOptionsButton( - onPressed: () => _onExchangePressed(context), - subLabel: "Swap", - iconAssetPathSVG: ref.watch( - themeProvider.select( - (value) => value.assets.exchange, + if (AppConfig.hasFeature(AppFeature.swap)) + const SizedBox( + width: 16, + ), + if (AppConfig.hasFeature(AppFeature.swap)) + TokenOptionsButton( + onPressed: () => _onExchangePressed(context), + subLabel: "Swap", + iconAssetPathSVG: ref.watch( + themeProvider.select( + (value) => value.assets.exchange, + ), ), ), - ), const SizedBox( width: 16, ), diff --git a/lib/pages/wallet_view/wallet_view.dart b/lib/pages/wallet_view/wallet_view.dart index 7147ca299..e131c49aa 100644 --- a/lib/pages/wallet_view/wallet_view.dart +++ b/lib/pages/wallet_view/wallet_view.dart @@ -16,31 +16,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; + +import '../../app_config.dart'; import '../../frost_route_generator.dart'; import '../../models/isar/exchange_cache/currency.dart'; import '../../notifications/show_flush_bar.dart'; -import '../buy_view/buy_in_wallet_view.dart'; -import '../cashfusion/cashfusion_view.dart'; -import '../coin_control/coin_control_view.dart'; -import '../exchange_view/wallet_initiated_exchange_view.dart'; -import '../home_view/home_view.dart'; -import '../monkey/monkey_view.dart'; -import '../notification_views/notifications_view.dart'; -import '../ordinals/ordinals_view.dart'; -import '../paynym/paynym_claim_view.dart'; -import '../paynym/paynym_home_view.dart'; -import '../receive_view/receive_view.dart'; -import '../send_view/frost_ms/frost_send_view.dart'; -import '../send_view/send_view.dart'; -import '../settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart'; -import '../settings_views/wallet_settings_view/wallet_settings_view.dart'; -import '../special/firo_rescan_recovery_error_dialog.dart'; -import '../token_view/my_tokens_view.dart'; -import 'sub_widgets/transactions_list.dart'; -import 'sub_widgets/wallet_summary.dart'; -import 'transaction_views/all_transactions_view.dart'; -import 'transaction_views/tx_v2/all_transactions_v2_view.dart'; -import 'transaction_views/tx_v2/transaction_v2_list.dart'; import '../../providers/global/active_wallet_provider.dart'; import '../../providers/global/auto_swb_service_provider.dart'; import '../../providers/global/paynym_api_provider.dart'; @@ -95,7 +76,28 @@ import '../../widgets/wallet_navigation_bar/components/icons/receive_nav_icon.da import '../../widgets/wallet_navigation_bar/components/icons/send_nav_icon.dart'; import '../../widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart'; import '../../widgets/wallet_navigation_bar/wallet_navigation_bar.dart'; -import 'package:tuple/tuple.dart'; +import '../buy_view/buy_in_wallet_view.dart'; +import '../cashfusion/cashfusion_view.dart'; +import '../coin_control/coin_control_view.dart'; +import '../exchange_view/wallet_initiated_exchange_view.dart'; +import '../home_view/home_view.dart'; +import '../monkey/monkey_view.dart'; +import '../notification_views/notifications_view.dart'; +import '../ordinals/ordinals_view.dart'; +import '../paynym/paynym_claim_view.dart'; +import '../paynym/paynym_home_view.dart'; +import '../receive_view/receive_view.dart'; +import '../send_view/frost_ms/frost_send_view.dart'; +import '../send_view/send_view.dart'; +import '../settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart'; +import '../settings_views/wallet_settings_view/wallet_settings_view.dart'; +import '../special/firo_rescan_recovery_error_dialog.dart'; +import '../token_view/my_tokens_view.dart'; +import 'sub_widgets/transactions_list.dart'; +import 'sub_widgets/wallet_summary.dart'; +import 'transaction_views/all_transactions_view.dart'; +import 'transaction_views/tx_v2/all_transactions_v2_view.dart'; +import 'transaction_views/tx_v2/transaction_v2_list.dart'; /// [eventBus] should only be set during testing class WalletView extends ConsumerStatefulWidget { @@ -1059,7 +1061,8 @@ class _WalletViewState extends ConsumerState { }, ), if (Constants.enableExchange && - ref.watch(pWalletCoin(walletId)) is! FrostCurrency) + ref.watch(pWalletCoin(walletId)) is! FrostCurrency && + AppConfig.hasFeature(AppFeature.swap)) WalletNavigationBarItemData( label: "Swap", icon: const ExchangeNavIcon(), diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index 868454541..9d7df1ad2 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -14,15 +14,16 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../app_config.dart'; -import 'desktop_menu_item.dart'; -import 'settings/settings_menu.dart'; import '../providers/desktop/current_desktop_menu_item.dart'; import '../themes/stack_colors.dart'; import '../utilities/assets.dart'; import '../utilities/text_styles.dart'; import '../widgets/desktop/desktop_tor_status_button.dart'; import '../widgets/desktop/living_stack_icon.dart'; +import 'desktop_menu_item.dart'; +import 'settings/settings_menu.dart'; enum DesktopMenuItemId { myStack, @@ -186,17 +187,19 @@ class _DesktopMenuState extends ConsumerState { onChanged: updateSelectedMenuItem, controller: controllers[0], ), - const SizedBox( - height: 2, - ), - DesktopMenuItem( - duration: duration, - icon: const DesktopExchangeIcon(), - label: "Swap", - value: DesktopMenuItemId.exchange, - onChanged: updateSelectedMenuItem, - controller: controllers[1], - ), + if (AppConfig.hasFeature(AppFeature.swap)) + const SizedBox( + height: 2, + ), + if (AppConfig.hasFeature(AppFeature.swap)) + DesktopMenuItem( + duration: duration, + icon: const DesktopExchangeIcon(), + label: "Swap", + value: DesktopMenuItemId.exchange, + onChanged: updateSelectedMenuItem, + controller: controllers[1], + ), const SizedBox( height: 2, ), diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart index 2fa0ee1eb..ce47d8b1e 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart @@ -15,16 +15,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/svg.dart'; + +import '../../../../app_config.dart'; import '../../../../notifications/show_flush_bar.dart'; import '../../../../pages/monkey/monkey_view.dart'; import '../../../../pages/paynym/paynym_claim_view.dart'; import '../../../../pages/paynym/paynym_home_view.dart'; -import '../../../cashfusion/desktop_cashfusion_view.dart'; -import '../../../coin_control/desktop_coin_control_view.dart'; -import '../../../desktop_menu.dart'; -import '../desktop_wallet_view.dart'; -import 'more_features/more_features_dialog.dart'; -import '../../../ordinals/desktop_ordinals_view.dart'; import '../../../../providers/desktop/current_desktop_menu_item.dart'; import '../../../../providers/global/paynym_api_provider.dart'; import '../../../../providers/providers.dart'; @@ -48,6 +44,12 @@ import '../../../../widgets/desktop/desktop_dialog.dart'; import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/loading_indicator.dart'; +import '../../../cashfusion/desktop_cashfusion_view.dart'; +import '../../../coin_control/desktop_coin_control_view.dart'; +import '../../../desktop_menu.dart'; +import '../../../ordinals/desktop_ordinals_view.dart'; +import '../desktop_wallet_view.dart'; +import 'more_features/more_features_dialog.dart'; class DesktopWalletFeatures extends ConsumerStatefulWidget { const DesktopWalletFeatures({ @@ -366,7 +368,7 @@ class _DesktopWalletFeaturesState extends ConsumerState { return Row( children: [ - if (Constants.enableExchange) + if (Constants.enableExchange && AppConfig.hasFeature(AppFeature.swap)) SecondaryButton( label: "Swap", width: buttonWidth, From 2b28e6b1216a08bc3ccd45a37f55891ab1ade23f Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 5 Jun 2024 17:48:38 -0500 Subject: [PATCH 199/318] hide or show Buy features based on configuration --- .../sub_widgets/home_view_button_bar.dart | 80 ++++++++++--------- .../token_view/sub_widgets/token_summary.dart | 18 +++-- lib/pages/wallet_view/wallet_view.dart | 3 +- lib/pages_desktop_specific/desktop_menu.dart | 24 +++--- .../sub_widgets/desktop_wallet_features.dart | 4 +- 5 files changed, 68 insertions(+), 61 deletions(-) diff --git a/lib/pages/home_view/sub_widgets/home_view_button_bar.dart b/lib/pages/home_view/sub_widgets/home_view_button_bar.dart index 059e943ba..65ec6a7b8 100644 --- a/lib/pages/home_view/sub_widgets/home_view_button_bar.dart +++ b/lib/pages/home_view/sub_widgets/home_view_button_bar.dart @@ -139,48 +139,50 @@ class _HomeViewButtonBarState extends ConsumerState { ), ), ), - const SizedBox( - width: 8, - ), - Expanded( - child: TextButton( - style: selectedIndex == 2 - ? Theme.of(context) - .extension()! - .getPrimaryEnabledButtonStyle(context)! - .copyWith( - minimumSize: - MaterialStateProperty.all(const Size(46, 36)), - ) - : Theme.of(context) - .extension()! - .getSecondaryEnabledButtonStyle(context)! - .copyWith( - minimumSize: - MaterialStateProperty.all(const Size(46, 36)), - ), - onPressed: () async { - FocusScope.of(context).unfocus(); - if (selectedIndex != 2) { - ref.read(homeViewPageIndexStateProvider.state).state = 2; - } - // await BuyDataLoadingService().loadAll(ref); - }, - child: Text( - "Buy", - style: STextStyles.button(context).copyWith( - fontSize: 14, - color: selectedIndex == 2 - ? Theme.of(context) - .extension()! - .buttonTextPrimary - : Theme.of(context) - .extension()! - .buttonTextSecondary, + if (AppConfig.hasFeature(AppFeature.buy)) + const SizedBox( + width: 8, + ), + if (AppConfig.hasFeature(AppFeature.buy)) + Expanded( + child: TextButton( + style: selectedIndex == 2 + ? Theme.of(context) + .extension()! + .getPrimaryEnabledButtonStyle(context)! + .copyWith( + minimumSize: + MaterialStateProperty.all(const Size(46, 36)), + ) + : Theme.of(context) + .extension()! + .getSecondaryEnabledButtonStyle(context)! + .copyWith( + minimumSize: + MaterialStateProperty.all(const Size(46, 36)), + ), + onPressed: () async { + FocusScope.of(context).unfocus(); + if (selectedIndex != 2) { + ref.read(homeViewPageIndexStateProvider.state).state = 2; + } + // await BuyDataLoadingService().loadAll(ref); + }, + child: Text( + "Buy", + style: STextStyles.button(context).copyWith( + fontSize: 14, + color: selectedIndex == 2 + ? Theme.of(context) + .extension()! + .buttonTextPrimary + : Theme.of(context) + .extension()! + .buttonTextSecondary, + ), ), ), ), - ), ], ); } diff --git a/lib/pages/token_view/sub_widgets/token_summary.dart b/lib/pages/token_view/sub_widgets/token_summary.dart index c14c6d90f..442721b54 100644 --- a/lib/pages/token_view/sub_widgets/token_summary.dart +++ b/lib/pages/token_view/sub_widgets/token_summary.dart @@ -265,14 +265,16 @@ class TokenWalletOptions extends ConsumerWidget { ), ), ), - const SizedBox( - width: 16, - ), - TokenOptionsButton( - onPressed: () => _onBuyPressed(context), - subLabel: "Buy", - iconAssetPathSVG: Assets.svg.creditCard, - ), + if (AppConfig.hasFeature(AppFeature.buy)) + const SizedBox( + width: 16, + ), + if (AppConfig.hasFeature(AppFeature.buy)) + TokenOptionsButton( + onPressed: () => _onBuyPressed(context), + subLabel: "Buy", + iconAssetPathSVG: Assets.svg.creditCard, + ), ], ); } diff --git a/lib/pages/wallet_view/wallet_view.dart b/lib/pages/wallet_view/wallet_view.dart index e131c49aa..fb21fe42a 100644 --- a/lib/pages/wallet_view/wallet_view.dart +++ b/lib/pages/wallet_view/wallet_view.dart @@ -1069,7 +1069,8 @@ class _WalletViewState extends ConsumerState { onTap: () => _onExchangePressed(context), ), if (Constants.enableExchange && - ref.watch(pWalletCoin(walletId)) is! FrostCurrency) + ref.watch(pWalletCoin(walletId)) is! FrostCurrency && + AppConfig.hasFeature(AppFeature.buy)) WalletNavigationBarItemData( label: "Buy", icon: const BuyNavIcon(), diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index 9d7df1ad2..2b4524bf0 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -200,17 +200,19 @@ class _DesktopMenuState extends ConsumerState { onChanged: updateSelectedMenuItem, controller: controllers[1], ), - const SizedBox( - height: 2, - ), - DesktopMenuItem( - duration: duration, - icon: const DesktopBuyIcon(), - label: "Buy crypto", - value: DesktopMenuItemId.buy, - onChanged: updateSelectedMenuItem, - controller: controllers[2], - ), + if (AppConfig.hasFeature(AppFeature.buy)) + const SizedBox( + height: 2, + ), + if (AppConfig.hasFeature(AppFeature.buy)) + DesktopMenuItem( + duration: duration, + icon: const DesktopBuyIcon(), + label: "Buy crypto", + value: DesktopMenuItemId.buy, + onChanged: updateSelectedMenuItem, + controller: controllers[2], + ), const SizedBox( height: 2, ), diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart index ce47d8b1e..0691cc9de 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart @@ -383,11 +383,11 @@ class _DesktopWalletFeaturesState extends ConsumerState { ), onPressed: () => _onSwapPressed(), ), - if (Constants.enableExchange) + if (Constants.enableExchange && AppConfig.hasFeature(AppFeature.buy)) const SizedBox( width: 16, ), - if (Constants.enableExchange) + if (Constants.enableExchange && AppConfig.hasFeature(AppFeature.buy)) SecondaryButton( label: "Buy", width: buttonWidth, From df5988b48ef273a1c564b5a8e461e758a74005f8 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 5 Jun 2024 18:08:33 -0500 Subject: [PATCH 200/318] hide or show theme features based on configuration --- .../global_settings_view.dart | 31 +++++++++++-------- .../settings/settings_menu.dart | 3 +- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/lib/pages/settings_views/global_settings_view/global_settings_view.dart b/lib/pages/settings_views/global_settings_view/global_settings_view.dart index 400bff87d..38b85edbe 100644 --- a/lib/pages/settings_views/global_settings_view/global_settings_view.dart +++ b/lib/pages/settings_views/global_settings_view/global_settings_view.dart @@ -12,6 +12,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; +import '../../../app_config.dart'; import '../../../route_generator.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; @@ -211,19 +212,23 @@ class GlobalSettingsView extends StatelessWidget { ); }, ), - const SizedBox( - height: 8, - ), - SettingsListButton( - iconAssetName: Assets.svg.sun, - iconSize: 18, - title: "Appearance", - onPressed: () { - Navigator.of(context).pushNamed( - AppearanceSettingsView.routeName, - ); - }, - ), + if (AppConfig.hasFeature( + AppFeature.themeSelection)) + const SizedBox( + height: 8, + ), + if (AppConfig.hasFeature( + AppFeature.themeSelection)) + SettingsListButton( + iconAssetName: Assets.svg.sun, + iconSize: 18, + title: "Appearance", + onPressed: () { + Navigator.of(context).pushNamed( + AppearanceSettingsView.routeName, + ); + }, + ), if (Platform.isIOS) const SizedBox( height: 8, diff --git a/lib/pages_desktop_specific/settings/settings_menu.dart b/lib/pages_desktop_specific/settings/settings_menu.dart index 16b1a438b..1ec12e5f6 100644 --- a/lib/pages_desktop_specific/settings/settings_menu.dart +++ b/lib/pages_desktop_specific/settings/settings_menu.dart @@ -12,6 +12,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import '../../app_config.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; import 'settings_menu_item.dart'; @@ -36,7 +37,7 @@ class _SettingsMenuState extends ConsumerState { "Tor settings", "Nodes", "Syncing preferences", - "Appearance", + if (AppConfig.hasFeature(AppFeature.themeSelection)) "Appearance", "Advanced", ]; From 04a24edaec2a686a58508fdff43903c5b4c7d2bf Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 5 Jun 2024 16:23:58 -0600 Subject: [PATCH 201/318] wrap hashTag in compute --- lib/wallets/wallet/impl/firo_wallet.dart | 7 +------ .../spark_interface.dart | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index 9359043be..89f6cdb3e 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -3,7 +3,6 @@ import 'dart:convert'; import 'dart:math'; import 'package:decimal/decimal.dart'; -import 'package:flutter_libsparkmobile/flutter_libsparkmobile.dart'; import 'package:isar/isar.dart'; import '../../../db/sqlite/firo_cache.dart'; @@ -429,11 +428,7 @@ class FiroWallet extends Bip39HDWallet if (lTags?.isNotEmpty == true) { final List usedCoins = []; for (final tag in lTags!) { - final components = (tag as String).split(","); - final x = components[0].substring(1); - final y = components[1].substring(0, components[1].length - 1); - - final hash = LibSpark.hashTag(x, y); + final hash = await hashTag(tag as String); usedCoins.addAll(sparkCoins.where((e) => e.lTagHash == hash)); } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index b0409c899..af7f1b6cc 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -38,6 +38,16 @@ const OP_SPARKMINT = 0xd1; const OP_SPARKSMINT = 0xd2; const OP_SPARKSPEND = 0xd3; +/// top level function for use with [compute] +String _hashTag(String tag) { + final components = tag.split(","); + final x = components[0].substring(1); + final y = components[1].substring(0, components[1].length - 1); + + final hash = LibSpark.hashTag(x, y); + return hash; +} + mixin SparkInterface on Bip39HDWallet, ElectrumXInterface { String? _sparkChangeAddressCached; @@ -56,6 +66,14 @@ mixin SparkInterface }) => LibSpark.validateAddress(address: address, isTestNet: isTestNet); + Future hashTag(String tag) async { + try { + return await compute(_hashTag, tag); + } catch (_) { + throw ArgumentError("Invalid tag string format", "tag"); + } + } + @override Future init() async { try { From 42ab07a5860c5d4e1eeb1c6f238a54862089ff84 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 5 Jun 2024 18:22:36 -0500 Subject: [PATCH 202/318] use tx ver # in paynym interface RIP --- .../wallet/wallet_mixin_interfaces/paynym_interface.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart index b9759d474..86cd8b66b 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart @@ -10,6 +10,8 @@ import 'package:bitcoindart/src/utils/script.dart' as bscript; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; import 'package:isar/isar.dart'; import 'package:pointycastle/digests/sha256.dart'; +import 'package:tuple/tuple.dart'; + import '../../../exceptions/wallet/insufficient_balance_exception.dart'; import '../../../exceptions/wallet/paynym_send_exception.dart'; import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; @@ -29,7 +31,6 @@ import '../../crypto_currency/interfaces/paynym_currency_interface.dart'; import '../../models/tx_data.dart'; import '../intermediate/bip39_hd_wallet.dart'; import 'electrumx_interface.dart'; -import 'package:tuple/tuple.dart'; const String kPCodeKeyPrefix = "pCode_key_"; @@ -750,7 +751,7 @@ mixin PaynymInterface final List prevOuts = []; coinlib.Transaction clTx = coinlib.Transaction( - version: 1, + version: cryptoCurrency.transactionVersion, inputs: [], outputs: [], ); From 6f4b3a76ac98319a888193d4064f2527d16a6e62 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 5 Jun 2024 18:36:32 -0500 Subject: [PATCH 203/318] change bch and ecash tx ver #s to 2 and use it in the bcash interface --- lib/wallets/crypto_currency/coins/bitcoincash.dart | 2 +- lib/wallets/crypto_currency/coins/ecash.dart | 2 +- lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/wallets/crypto_currency/coins/bitcoincash.dart b/lib/wallets/crypto_currency/coins/bitcoincash.dart index 8a2f91aae..fb2f66a92 100644 --- a/lib/wallets/crypto_currency/coins/bitcoincash.dart +++ b/lib/wallets/crypto_currency/coins/bitcoincash.dart @@ -366,5 +366,5 @@ class Bitcoincash extends Bip39HDCurrency with ElectrumXCurrencyInterface { } @override - int get transactionVersion => 1; + int get transactionVersion => 2; } diff --git a/lib/wallets/crypto_currency/coins/ecash.dart b/lib/wallets/crypto_currency/coins/ecash.dart index a68a82dcd..28529c56a 100644 --- a/lib/wallets/crypto_currency/coins/ecash.dart +++ b/lib/wallets/crypto_currency/coins/ecash.dart @@ -340,5 +340,5 @@ class Ecash extends Bip39HDCurrency with ElectrumXCurrencyInterface { } @override - int get transactionVersion => 1; + int get transactionVersion => 2; } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart index 9559fa848..be0727bfc 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart @@ -30,6 +30,8 @@ mixin BCashInterface testnet: cryptoCurrency.network == CryptoCurrencyNetwork.test, ); + builder.setVersion(cryptoCurrency.transactionVersion); + // temp tx data to show in gui while waiting for real data from server final List tempInputs = []; final List tempOutputs = []; From eb13c2dc005307fb42a1699167934a676f2aabca Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 5 Jun 2024 17:56:10 -0600 Subject: [PATCH 204/318] couple small fixes --- lib/themes/theme_service.dart | 65 +++++++++++++++------------- lib/utilities/stack_file_system.dart | 2 +- 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/lib/themes/theme_service.dart b/lib/themes/theme_service.dart index 68344ea43..cf4528719 100644 --- a/lib/themes/theme_service.dart +++ b/lib/themes/theme_service.dart @@ -16,6 +16,8 @@ import 'package:crypto/crypto.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; + +import '../app_config.dart'; import '../db/isar/main_db.dart'; import '../models/isar/stack_theme.dart'; import '../networking/http.dart'; @@ -145,37 +147,38 @@ class ThemeService { ); } } - - if (!(await ThemeService.instance.verifyInstalled(themeId: "dark"))) { - Logging.instance.log( - "Installing default dark theme... ", - level: LogLevel.Info, - ); - final darkZip = await rootBundle.load("assets/default_themes/dark.zip"); - await ThemeService.instance - .install(themeArchiveData: darkZip.buffer.asUint8List()); - Logging.instance.log( - "Installing default dark theme... finished", - level: LogLevel.Info, - ); - } else { - // check installed version - // final theme = ThemeService.instance.getTheme(themeId: "dark"); - // Force update theme to add missing icons for now - // TODO: uncomment if statement in future when themes are version 4 or above - // if ((theme?.version ?? 1) < _currentDefaultThemeVersion) { - Logging.instance.log( - "Updating default dark theme...", - level: LogLevel.Info, - ); - final darkZip = await rootBundle.load("assets/default_themes/dark.zip"); - await ThemeService.instance - .install(themeArchiveData: darkZip.buffer.asUint8List()); - Logging.instance.log( - "Updating default dark theme... finished", - level: LogLevel.Info, - ); - // } + if (AppConfig.hasFeature(AppFeature.themeSelection)) { + if (!(await ThemeService.instance.verifyInstalled(themeId: "dark"))) { + Logging.instance.log( + "Installing default dark theme... ", + level: LogLevel.Info, + ); + final darkZip = await rootBundle.load("assets/default_themes/dark.zip"); + await ThemeService.instance + .install(themeArchiveData: darkZip.buffer.asUint8List()); + Logging.instance.log( + "Installing default dark theme... finished", + level: LogLevel.Info, + ); + } else { + // check installed version + // final theme = ThemeService.instance.getTheme(themeId: "dark"); + // Force update theme to add missing icons for now + // TODO: uncomment if statement in future when themes are version 4 or above + // if ((theme?.version ?? 1) < _currentDefaultThemeVersion) { + Logging.instance.log( + "Updating default dark theme...", + level: LogLevel.Info, + ); + final darkZip = await rootBundle.load("assets/default_themes/dark.zip"); + await ThemeService.instance + .install(themeArchiveData: darkZip.buffer.asUint8List()); + Logging.instance.log( + "Updating default dark theme... finished", + level: LogLevel.Info, + ); + // } + } } } diff --git a/lib/utilities/stack_file_system.dart b/lib/utilities/stack_file_system.dart index da3d33cfe..579db5de0 100644 --- a/lib/utilities/stack_file_system.dart +++ b/lib/utilities/stack_file_system.dart @@ -123,7 +123,7 @@ abstract class StackFileSystem { if (Util.isDesktop) { final dir = Directory("${root.path}/sqlite/firo_cache"); if (!dir.existsSync()) { - await dir.create(); + await dir.create(recursive: true); } return dir; } else { From 1ffddc6781e26ae3dd900f5db3ca11fbc78d8083 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 6 Jun 2024 11:21:50 -0600 Subject: [PATCH 205/318] fix spark cache coins order --- lib/db/sqlite/firo_cache_coordinator.dart | 21 +++++++++++++++++-- lib/db/sqlite/firo_cache_writer.dart | 3 ++- lib/wallets/wallet/wallet.dart | 12 ++--------- .../spark_interface.dart | 16 +++++++------- 4 files changed, 31 insertions(+), 21 deletions(-) diff --git a/lib/db/sqlite/firo_cache_coordinator.dart b/lib/db/sqlite/firo_cache_coordinator.dart index 610504d5f..83943f3cc 100644 --- a/lib/db/sqlite/firo_cache_coordinator.dart +++ b/lib/db/sqlite/firo_cache_coordinator.dart @@ -120,15 +120,32 @@ abstract class FiroCacheCoordinator { ); } - static Future getSetCoinsForGroupId( + static Future< + List< + ({ + String serialized, + String txHash, + String context, + })>> getSetCoinsForGroupId( int groupId, { int? newerThanTimeStamp, }) async { - return await _Reader._getSetCoinsForGroupId( + final resultSet = await _Reader._getSetCoinsForGroupId( groupId, db: _FiroCache.setCacheDB, newerThanTimeStamp: newerThanTimeStamp, ); + return resultSet + .map( + (row) => ( + serialized: row["serialized"] as String, + txHash: row["txHash"] as String, + context: row["context"] as String, + ), + ) + .toList() + .reversed + .toList(); } static Future< diff --git a/lib/db/sqlite/firo_cache_writer.dart b/lib/db/sqlite/firo_cache_writer.dart index 0bf1d938b..b1ee201bd 100644 --- a/lib/db/sqlite/firo_cache_writer.dart +++ b/lib/db/sqlite/firo_cache_writer.dart @@ -104,7 +104,8 @@ FCResult _updateSparkAnonSetCoinsWith( e[2] as String, ], ) - .toList(); + .toList() + .reversed; final timestamp = DateTime.now().toUtc().millisecondsSinceEpoch ~/ 1000; diff --git a/lib/wallets/wallet/wallet.dart b/lib/wallets/wallet/wallet.dart index b579f9632..7b0851ee5 100644 --- a/lib/wallets/wallet/wallet.dart +++ b/lib/wallets/wallet/wallet.dart @@ -1,5 +1,4 @@ import 'dart:async'; -import 'dart:convert'; import 'package:isar/isar.dart'; import 'package:meta/meta.dart'; @@ -560,15 +559,8 @@ abstract class Wallet { // TODO: [prio=low] handle this differently. Extra modification of this file for coin specific functionality should be avoided. if (this is LelantusInterface) { - // Parse otherDataJsonString to get the enableLelantusScanning value. - bool enableLelantusScanning = false; - if (this.info.otherDataJsonString != null) { - final otherDataJson = json.decode(this.info.otherDataJsonString!); - enableLelantusScanning = - otherDataJson[WalletInfoKeys.enableLelantusScanning] as bool? ?? - false; - } - if (enableLelantusScanning) { + if (info.otherData[WalletInfoKeys.enableLelantusScanning] as bool? ?? + false) { await (this as LelantusInterface).refreshLelantusData(); } } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index af7f1b6cc..acdd9ae98 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -297,10 +297,10 @@ mixin SparkInterface "coinGroupID": i, "coins": resultSet .map( - (row) => [ - row["serialized"] as String, - row["txHash"] as String, - row["context"] as String, + (e) => [ + e.serialized, + e.txHash, + e.context, ], ) .toList(), @@ -799,10 +799,10 @@ mixin SparkInterface ); final coinsRaw = anonymitySetResult .map( - (row) => [ - row["serialized"] as String, - row["txHash"] as String, - row["context"] as String, + (e) => [ + e.serialized, + e.txHash, + e.context, ], ) .toList(); From 67ade2fcae65a8ad6345df0585fd2e20b5a8d663 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 6 Jun 2024 13:40:41 -0600 Subject: [PATCH 206/318] app based svgs --- .gitignore | 1 + .../svg/campfire}/Button.svg | 0 .../svg/campfire}/Ellipse-42.svg | 0 .../svg/campfire}/Ellipse-43.svg | 0 .../svg/campfire}/Polygon.svg | 0 .../svg/campfire}/about-desktop.svg | 0 .../svg/campfire}/add-backup.svg | 0 .../svg/campfire}/address-book-desktop.svg | 0 .../svg/campfire}/address-book.svg | 0 .../svg/campfire}/address-book2.svg | 0 .../svg/campfire}/alert-circle.svg | 0 .../svg/campfire}/alert-circle2.svg | 0 .../svg/campfire}/anonymize.svg | 0 .../svg/campfire}/arrow-down-left.svg | 0 .../svg/campfire}/arrow-down.svg | 0 asset_sources/svg/campfire/arrow-left-fa.svg | 3 + .../svg/campfire}/arrow-right.svg | 0 .../svg/campfire}/arrow-rotate.svg | 0 .../svg/campfire}/arrow-rotate2.svg | 0 .../svg/campfire}/arrow-up-right.svg | 0 .../svg/campfire}/auto-backup.svg | 0 .../svg/campfire}/bars.svg | 0 asset_sources/svg/campfire/bell.svg | 3 + .../svg/campfire}/box-auto.svg | 0 .../buy/Simplex-Nuvei-Logo-light.svg | 0 .../svg/campfire}/buy/Simplex-Nuvei-Logo.svg | 0 .../svg/campfire}/calendar-days.svg | 0 .../svg/campfire}/cashfusion-icon.svg | 0 .../svg => asset_sources/svg/campfire}/cc.svg | 0 .../svg/campfire}/check.svg | 0 .../svg/campfire}/chevron-down.svg | 0 .../svg/campfire}/chevron-right.svg | 0 .../svg/campfire}/chevron-up.svg | 0 .../svg/campfire}/circle-arrow-up-right2.svg | 0 .../svg/campfire}/circle-check.svg | 0 .../svg/campfire}/circle-plus-filled.svg | 0 .../svg/campfire}/circle-plus.svg | 0 .../svg/campfire}/circle-question.svg | 0 .../svg/campfire}/clipboard.svg | 0 .../svg/campfire}/coin_control/frozen.svg | 0 .../svg/campfire}/coin_control/gamepad.svg | 0 .../svg/campfire}/coin_control/selected.svg | 0 .../svg/campfire}/coin_control/unfrozen.svg | 0 .../svg/campfire}/configuration.svg | 0 .../svg/campfire}/connected-button.svg | 0 .../svg/campfire}/connecting-button.svg | 0 .../svg/campfire}/copy-fa.svg | 0 .../svg/campfire}/dark-theme.svg | 0 .../svg/campfire}/delete.svg | 0 .../svg/campfire}/dice-alt.svg | 0 .../svg/campfire}/disconnected-button.svg | 0 .../svg/campfire}/dollar-sign-circle.svg | 0 .../svg/campfire}/dollar-sign.svg | 0 .../svg/campfire}/drd-icon.svg | 0 .../svg/campfire}/ellipsis-vertical1.svg | 0 .../svg/campfire}/enabled-button.svg | 0 .../svg/campfire}/envelope.svg | 0 .../svg/campfire}/exchange-3.svg | 0 .../svg/campfire}/exchange-desktop.svg | 0 .../exchange_icons/change_now_logo_1.svg | 0 .../svg/campfire}/exchange_icons/mb_blue.svg | 0 .../svg/campfire}/exchange_icons/mb_green.svg | 0 .../exchange_icons/simpleswap-icon.svg | 0 .../svg/campfire}/exchange_icons/trocador.svg | 0 .../svg/campfire}/exit-desktop.svg | 0 .../svg/campfire}/eye-slash.svg | 0 .../svg/campfire}/eye.svg | 0 .../svg/campfire}/faceid.svg | 0 .../svg/campfire}/file-upload.svg | 0 .../svg/campfire}/file.svg | 0 .../svg/campfire}/filter.svg | 0 .../svg/campfire}/fingerprint.svg | 0 .../svg/campfire}/folder-down.svg | 0 .../svg/campfire}/folder.svg | 0 .../svg/campfire}/framed-address-book.svg | 0 .../svg/campfire}/framed-gear.svg | 0 .../svg/campfire}/fusing.svg | 0 .../svg/campfire}/gear-3.svg | 0 asset_sources/svg/campfire/gear.svg | 3 + .../svg/campfire}/info-circle.svg | 0 .../svg/campfire}/key.svg | 0 .../svg/campfire}/keys.svg | 0 .../svg/campfire}/language-circle.svg | 0 .../svg/campfire}/language2.svg | 0 .../svg/campfire}/light-mode.svg | 0 .../svg/campfire}/list-ul.svg | 0 .../svg/campfire}/loader.svg | 0 .../svg/campfire}/lock-circle.svg | 0 .../svg/campfire}/lock-keyhole.svg | 0 .../svg/campfire}/lock-open.svg | 0 .../svg/campfire}/lock.svg | 0 .../svg/campfire}/magnifying-glass.svg | 0 .../svg/campfire}/message-question-1.svg | 0 .../svg/campfire}/message-question.svg | 0 .../svg/campfire}/minimize.svg | 0 .../svg/campfire}/monkey.svg | 0 .../svg/campfire}/network-wired-2.svg | 0 .../svg/campfire}/network-wired.svg | 0 .../svg/campfire}/node-alt.svg | 0 .../svg/campfire}/node-circle.svg | 0 .../svg/campfire}/ordinal.svg | 0 .../svg/campfire}/peers.svg | 0 .../svg/campfire}/pen-solid-fa.svg | 0 .../svg/campfire}/pending.svg | 0 .../svg/campfire}/plus-circle.svg | 0 .../svg/campfire}/plus.svg | 0 .../svg/campfire}/qrcode1.svg | 0 .../svg/campfire}/restore-backup.svg | 0 .../svg/campfire}/robot-head.svg | 0 .../svg/campfire}/rotate-circle.svg | 0 .../svg/campfire}/send.svg | 0 .../svg/campfire}/share-2.svg | 0 .../svg/campfire}/signal-problem-alt.svg | 0 .../svg/campfire}/signal-stream.svg | 0 .../svg/campfire}/signal-sync-alt.svg | 0 .../svg/campfire}/sliders-solid.svg | 0 .../svg/campfire}/socials/discord.svg | 0 .../campfire}/socials/reddit-alien-brands.svg | 0 .../svg/campfire}/socials/telegram-brands.svg | 0 .../svg/campfire}/socials/twitter-brands.svg | 0 .../svg/campfire}/spark.svg | 0 .../svg/campfire}/star.svg | 0 .../svg/campfire}/sun-bright2.svg | 0 .../svg/campfire}/sun-circle.svg | 0 .../svg/campfire}/swap.svg | 0 .../svg/campfire}/swap2.svg | 0 .../svg/campfire}/tokens.svg | 0 .../svg/campfire}/tor-circle.svg | 0 .../svg/campfire}/tor-synced.svg | 0 .../svg/campfire}/tor-syncing.svg | 0 .../svg/campfire}/tor.svg | 0 .../svg/campfire}/trash.svg | 0 .../svg/campfire}/trocador_rating_a.svg | 0 .../svg/campfire}/trocador_rating_b.svg | 0 .../svg/campfire}/trocador_rating_c.svg | 0 .../svg/campfire}/trocador_rating_d.svg | 0 .../svg/campfire}/tx-cashfusion.svg | 0 .../campfire}/tx-icon-anonymize-failed.svg | 0 .../campfire}/tx-icon-anonymize-pending.svg | 0 .../svg/campfire}/tx-icon-anonymize.svg | 0 .../svg/campfire}/unclaimed.svg | 0 .../svg/campfire}/up-from-line.svg | 0 .../svg/campfire}/user-minus.svg | 0 .../svg/campfire}/user-plus.svg | 0 .../svg/campfire}/user.svg | 0 .../svg/campfire}/wallet-desktop.svg | 0 .../svg/campfire}/wallet-fa.svg | 0 .../svg/campfire}/wallet-settings.svg | 0 .../svg/campfire}/whirlpool.svg | 0 .../svg/campfire}/x-circle.svg | 0 .../svg/campfire}/x-fat.svg | 0 .../svg => asset_sources/svg/campfire}/x.svg | 0 asset_sources/svg/stack_duo/Button.svg | 6 + asset_sources/svg/stack_duo/Ellipse-42.svg | 3 + asset_sources/svg/stack_duo/Ellipse-43.svg | 3 + asset_sources/svg/stack_duo/Polygon.svg | 3 + asset_sources/svg/stack_duo/about-desktop.svg | 3 + asset_sources/svg/stack_duo/add-backup.svg | 12 ++ .../svg/stack_duo/address-book-desktop.svg | 3 + asset_sources/svg/stack_duo/address-book.svg | 3 + asset_sources/svg/stack_duo/address-book2.svg | 4 + asset_sources/svg/stack_duo/alert-circle.svg | 3 + asset_sources/svg/stack_duo/alert-circle2.svg | 3 + asset_sources/svg/stack_duo/anonymize.svg | 83 +++++++++ .../svg/stack_duo/arrow-down-left.svg | 3 + asset_sources/svg/stack_duo/arrow-down.svg | 4 + .../svg/stack_duo}/arrow-left-fa.svg | 0 asset_sources/svg/stack_duo/arrow-right.svg | 4 + asset_sources/svg/stack_duo/arrow-rotate.svg | 3 + asset_sources/svg/stack_duo/arrow-rotate2.svg | 3 + .../svg/stack_duo/arrow-up-right.svg | 3 + asset_sources/svg/stack_duo/auto-backup.svg | 12 ++ asset_sources/svg/stack_duo/bars.svg | 4 + .../svg/stack_duo}/bell.svg | 0 asset_sources/svg/stack_duo/box-auto.svg | 11 ++ .../buy/Simplex-Nuvei-Logo-light.svg | 65 +++++++ .../svg/stack_duo/buy/Simplex-Nuvei-Logo.svg | 65 +++++++ asset_sources/svg/stack_duo/calendar-days.svg | 3 + .../svg/stack_duo/cashfusion-icon.svg | 3 + asset_sources/svg/stack_duo/cc.svg | 11 ++ asset_sources/svg/stack_duo/check.svg | 3 + asset_sources/svg/stack_duo/chevron-down.svg | 3 + asset_sources/svg/stack_duo/chevron-right.svg | 3 + asset_sources/svg/stack_duo/chevron-up.svg | 3 + .../svg/stack_duo/circle-arrow-up-right2.svg | 10 + asset_sources/svg/stack_duo/circle-check.svg | 3 + .../svg/stack_duo/circle-plus-filled.svg | 3 + asset_sources/svg/stack_duo/circle-plus.svg | 10 + .../svg/stack_duo/circle-question.svg | 3 + asset_sources/svg/stack_duo/clipboard.svg | 3 + .../svg/stack_duo/coin_control/frozen.svg | 3 + .../svg/stack_duo/coin_control/gamepad.svg | 3 + .../svg/stack_duo/coin_control/selected.svg | 3 + .../svg/stack_duo/coin_control/unfrozen.svg | 3 + asset_sources/svg/stack_duo/configuration.svg | 11 ++ .../svg/stack_duo/connected-button.svg | 4 + .../svg/stack_duo/connecting-button.svg | 4 + asset_sources/svg/stack_duo/copy-fa.svg | 3 + asset_sources/svg/stack_duo/dark-theme.svg | 24 +++ asset_sources/svg/stack_duo/delete.svg | 5 + asset_sources/svg/stack_duo/dice-alt.svg | 3 + .../svg/stack_duo/disconnected-button.svg | 4 + .../svg/stack_duo/dollar-sign-circle.svg | 4 + asset_sources/svg/stack_duo/dollar-sign.svg | 3 + asset_sources/svg/stack_duo/drd-icon.svg | 25 +++ .../svg/stack_duo/ellipsis-vertical1.svg | 11 ++ .../svg/stack_duo/enabled-button.svg | 4 + asset_sources/svg/stack_duo/envelope.svg | 1 + asset_sources/svg/stack_duo/exchange-3.svg | 4 + .../svg/stack_duo/exchange-desktop.svg | 3 + .../exchange_icons/change_now_logo_1.svg | 1 + .../svg/stack_duo/exchange_icons/mb_blue.svg | 1 + .../svg/stack_duo/exchange_icons/mb_green.svg | 1 + .../exchange_icons/simpleswap-icon.svg | 5 + .../svg/stack_duo/exchange_icons/trocador.svg | 3 + asset_sources/svg/stack_duo/exit-desktop.svg | 3 + asset_sources/svg/stack_duo/eye-slash.svg | 4 + asset_sources/svg/stack_duo/eye.svg | 4 + asset_sources/svg/stack_duo/faceid.svg | 17 ++ asset_sources/svg/stack_duo/file-upload.svg | 3 + asset_sources/svg/stack_duo/file.svg | 3 + asset_sources/svg/stack_duo/filter.svg | 5 + asset_sources/svg/stack_duo/fingerprint.svg | 5 + asset_sources/svg/stack_duo/folder-down.svg | 3 + asset_sources/svg/stack_duo/folder.svg | 3 + .../svg/stack_duo/framed-address-book.svg | 4 + asset_sources/svg/stack_duo/framed-gear.svg | 4 + asset_sources/svg/stack_duo/fusing.svg | 3 + asset_sources/svg/stack_duo/gear-3.svg | 4 + .../svg/stack_duo}/gear.svg | 0 asset_sources/svg/stack_duo/info-circle.svg | 3 + asset_sources/svg/stack_duo/key.svg | 3 + asset_sources/svg/stack_duo/keys.svg | 23 +++ .../svg/stack_duo/language-circle.svg | 11 ++ asset_sources/svg/stack_duo/language2.svg | 10 + asset_sources/svg/stack_duo/light-mode.svg | 24 +++ asset_sources/svg/stack_duo/list-ul.svg | 3 + asset_sources/svg/stack_duo/loader.svg | 3 + asset_sources/svg/stack_duo/lock-circle.svg | 11 ++ asset_sources/svg/stack_duo/lock-keyhole.svg | 10 + asset_sources/svg/stack_duo/lock-open.svg | 3 + asset_sources/svg/stack_duo/lock.svg | 3 + .../svg/stack_duo/magnifying-glass.svg | 11 ++ .../svg/stack_duo/message-question-1.svg | 10 + .../svg/stack_duo/message-question.svg | 1 + asset_sources/svg/stack_duo/minimize.svg | 10 + asset_sources/svg/stack_duo/monkey.svg | 3 + .../svg/stack_duo/network-wired-2.svg | 10 + asset_sources/svg/stack_duo/network-wired.svg | 3 + asset_sources/svg/stack_duo/node-alt.svg | 3 + asset_sources/svg/stack_duo/node-circle.svg | 4 + asset_sources/svg/stack_duo/ordinal.svg | 12 ++ asset_sources/svg/stack_duo/peers.svg | 3 + asset_sources/svg/stack_duo/pen-solid-fa.svg | 3 + asset_sources/svg/stack_duo/pending.svg | 3 + asset_sources/svg/stack_duo/plus-circle.svg | 12 ++ asset_sources/svg/stack_duo/plus.svg | 10 + asset_sources/svg/stack_duo/qrcode1.svg | 10 + .../svg/stack_duo/restore-backup.svg | 4 + asset_sources/svg/stack_duo/robot-head.svg | 3 + asset_sources/svg/stack_duo/rotate-circle.svg | 4 + asset_sources/svg/stack_duo/send.svg | 5 + asset_sources/svg/stack_duo/share-2.svg | 14 ++ .../svg/stack_duo/signal-problem-alt.svg | 4 + asset_sources/svg/stack_duo/signal-stream.svg | 3 + .../svg/stack_duo/signal-sync-alt.svg | 4 + asset_sources/svg/stack_duo/sliders-solid.svg | 1 + .../svg/stack_duo/socials/discord.svg | 15 ++ .../stack_duo/socials/reddit-alien-brands.svg | 1 + .../svg/stack_duo/socials/telegram-brands.svg | 10 + .../svg/stack_duo/socials/twitter-brands.svg | 1 + asset_sources/svg/stack_duo/spark.svg | 1 + asset_sources/svg/stack_duo/star.svg | 10 + asset_sources/svg/stack_duo/sun-bright2.svg | 10 + asset_sources/svg/stack_duo/sun-circle.svg | 11 ++ asset_sources/svg/stack_duo/swap.svg | 3 + asset_sources/svg/stack_duo/swap2.svg | 10 + asset_sources/svg/stack_duo/tokens.svg | 11 ++ asset_sources/svg/stack_duo/tor-circle.svg | 5 + asset_sources/svg/stack_duo/tor-synced.svg | 4 + asset_sources/svg/stack_duo/tor-syncing.svg | 4 + asset_sources/svg/stack_duo/tor.svg | 4 + asset_sources/svg/stack_duo/trash.svg | 3 + .../svg/stack_duo/trocador_rating_a.svg | 10 + .../svg/stack_duo/trocador_rating_b.svg | 10 + .../svg/stack_duo/trocador_rating_c.svg | 10 + .../svg/stack_duo/trocador_rating_d.svg | 10 + asset_sources/svg/stack_duo/tx-cashfusion.svg | 11 ++ .../stack_duo/tx-icon-anonymize-failed.svg | 13 ++ .../stack_duo/tx-icon-anonymize-pending.svg | 13 ++ .../svg/stack_duo/tx-icon-anonymize.svg | 16 ++ asset_sources/svg/stack_duo/unclaimed.svg | 175 ++++++++++++++++++ asset_sources/svg/stack_duo/up-from-line.svg | 3 + asset_sources/svg/stack_duo/user-minus.svg | 3 + asset_sources/svg/stack_duo/user-plus.svg | 3 + asset_sources/svg/stack_duo/user.svg | 3 + .../svg/stack_duo/wallet-desktop.svg | 3 + asset_sources/svg/stack_duo/wallet-fa.svg | 4 + .../svg/stack_duo/wallet-settings.svg | 4 + asset_sources/svg/stack_duo/whirlpool.svg | 3 + asset_sources/svg/stack_duo/x-circle.svg | 3 + asset_sources/svg/stack_duo/x-fat.svg | 4 + asset_sources/svg/stack_duo/x.svg | 4 + asset_sources/svg/stack_wallet/Button.svg | 6 + asset_sources/svg/stack_wallet/Ellipse-42.svg | 3 + asset_sources/svg/stack_wallet/Ellipse-43.svg | 3 + asset_sources/svg/stack_wallet/Polygon.svg | 3 + .../svg/stack_wallet/about-desktop.svg | 3 + asset_sources/svg/stack_wallet/add-backup.svg | 12 ++ .../svg/stack_wallet/address-book-desktop.svg | 3 + .../svg/stack_wallet/address-book.svg | 3 + .../svg/stack_wallet/address-book2.svg | 4 + .../svg/stack_wallet/alert-circle.svg | 3 + .../svg/stack_wallet/alert-circle2.svg | 3 + asset_sources/svg/stack_wallet/anonymize.svg | 83 +++++++++ .../svg/stack_wallet/arrow-down-left.svg | 3 + asset_sources/svg/stack_wallet/arrow-down.svg | 4 + .../svg/stack_wallet/arrow-left-fa.svg | 3 + .../svg/stack_wallet/arrow-right.svg | 4 + .../svg/stack_wallet/arrow-rotate.svg | 3 + .../svg/stack_wallet/arrow-rotate2.svg | 3 + .../svg/stack_wallet/arrow-up-right.svg | 3 + .../svg/stack_wallet/auto-backup.svg | 12 ++ asset_sources/svg/stack_wallet/bars.svg | 4 + asset_sources/svg/stack_wallet/bell.svg | 4 + asset_sources/svg/stack_wallet/box-auto.svg | 11 ++ .../buy/Simplex-Nuvei-Logo-light.svg | 65 +++++++ .../stack_wallet/buy/Simplex-Nuvei-Logo.svg | 65 +++++++ .../svg/stack_wallet/calendar-days.svg | 3 + .../svg/stack_wallet/cashfusion-icon.svg | 3 + asset_sources/svg/stack_wallet/cc.svg | 11 ++ asset_sources/svg/stack_wallet/check.svg | 3 + .../svg/stack_wallet/chevron-down.svg | 3 + .../svg/stack_wallet/chevron-right.svg | 3 + asset_sources/svg/stack_wallet/chevron-up.svg | 3 + .../stack_wallet/circle-arrow-up-right2.svg | 10 + .../svg/stack_wallet/circle-check.svg | 3 + .../svg/stack_wallet/circle-plus-filled.svg | 3 + .../svg/stack_wallet/circle-plus.svg | 10 + .../svg/stack_wallet/circle-question.svg | 3 + asset_sources/svg/stack_wallet/clipboard.svg | 3 + .../svg/stack_wallet/coin_control/frozen.svg | 3 + .../svg/stack_wallet/coin_control/gamepad.svg | 3 + .../stack_wallet/coin_control/selected.svg | 3 + .../stack_wallet/coin_control/unfrozen.svg | 3 + .../svg/stack_wallet/configuration.svg | 11 ++ .../svg/stack_wallet/connected-button.svg | 4 + .../svg/stack_wallet/connecting-button.svg | 4 + asset_sources/svg/stack_wallet/copy-fa.svg | 3 + asset_sources/svg/stack_wallet/dark-theme.svg | 24 +++ asset_sources/svg/stack_wallet/delete.svg | 5 + asset_sources/svg/stack_wallet/dice-alt.svg | 3 + .../svg/stack_wallet/disconnected-button.svg | 4 + .../svg/stack_wallet/dollar-sign-circle.svg | 4 + .../svg/stack_wallet/dollar-sign.svg | 3 + asset_sources/svg/stack_wallet/drd-icon.svg | 25 +++ .../svg/stack_wallet/ellipsis-vertical1.svg | 11 ++ .../svg/stack_wallet/enabled-button.svg | 4 + asset_sources/svg/stack_wallet/envelope.svg | 1 + asset_sources/svg/stack_wallet/exchange-3.svg | 4 + .../svg/stack_wallet/exchange-desktop.svg | 3 + .../exchange_icons/change_now_logo_1.svg | 1 + .../stack_wallet/exchange_icons/mb_blue.svg | 1 + .../stack_wallet/exchange_icons/mb_green.svg | 1 + .../exchange_icons/simpleswap-icon.svg | 5 + .../stack_wallet/exchange_icons/trocador.svg | 3 + .../svg/stack_wallet/exit-desktop.svg | 3 + asset_sources/svg/stack_wallet/eye-slash.svg | 4 + asset_sources/svg/stack_wallet/eye.svg | 4 + asset_sources/svg/stack_wallet/faceid.svg | 17 ++ .../svg/stack_wallet/file-upload.svg | 3 + asset_sources/svg/stack_wallet/file.svg | 3 + asset_sources/svg/stack_wallet/filter.svg | 5 + .../svg/stack_wallet/fingerprint.svg | 5 + .../svg/stack_wallet/folder-down.svg | 3 + asset_sources/svg/stack_wallet/folder.svg | 3 + .../svg/stack_wallet/framed-address-book.svg | 4 + .../svg/stack_wallet/framed-gear.svg | 4 + asset_sources/svg/stack_wallet/fusing.svg | 3 + asset_sources/svg/stack_wallet/gear-3.svg | 4 + asset_sources/svg/stack_wallet/gear.svg | 3 + .../svg/stack_wallet/info-circle.svg | 3 + asset_sources/svg/stack_wallet/key.svg | 3 + asset_sources/svg/stack_wallet/keys.svg | 23 +++ .../svg/stack_wallet/language-circle.svg | 11 ++ asset_sources/svg/stack_wallet/language2.svg | 10 + asset_sources/svg/stack_wallet/light-mode.svg | 24 +++ asset_sources/svg/stack_wallet/list-ul.svg | 3 + asset_sources/svg/stack_wallet/loader.svg | 3 + .../svg/stack_wallet/lock-circle.svg | 11 ++ .../svg/stack_wallet/lock-keyhole.svg | 10 + asset_sources/svg/stack_wallet/lock-open.svg | 3 + asset_sources/svg/stack_wallet/lock.svg | 3 + .../svg/stack_wallet/magnifying-glass.svg | 11 ++ .../svg/stack_wallet/message-question-1.svg | 10 + .../svg/stack_wallet/message-question.svg | 1 + asset_sources/svg/stack_wallet/minimize.svg | 10 + asset_sources/svg/stack_wallet/monkey.svg | 3 + .../svg/stack_wallet/network-wired-2.svg | 10 + .../svg/stack_wallet/network-wired.svg | 3 + asset_sources/svg/stack_wallet/node-alt.svg | 3 + .../svg/stack_wallet/node-circle.svg | 4 + asset_sources/svg/stack_wallet/ordinal.svg | 12 ++ asset_sources/svg/stack_wallet/peers.svg | 3 + .../svg/stack_wallet/pen-solid-fa.svg | 3 + asset_sources/svg/stack_wallet/pending.svg | 3 + .../svg/stack_wallet/plus-circle.svg | 12 ++ asset_sources/svg/stack_wallet/plus.svg | 10 + asset_sources/svg/stack_wallet/qrcode1.svg | 10 + .../svg/stack_wallet/restore-backup.svg | 4 + asset_sources/svg/stack_wallet/robot-head.svg | 3 + .../svg/stack_wallet/rotate-circle.svg | 4 + asset_sources/svg/stack_wallet/send.svg | 5 + asset_sources/svg/stack_wallet/share-2.svg | 14 ++ .../svg/stack_wallet/signal-problem-alt.svg | 4 + .../svg/stack_wallet/signal-stream.svg | 3 + .../svg/stack_wallet/signal-sync-alt.svg | 4 + .../svg/stack_wallet/sliders-solid.svg | 1 + .../svg/stack_wallet/socials/discord.svg | 15 ++ .../socials/reddit-alien-brands.svg | 1 + .../stack_wallet/socials/telegram-brands.svg | 10 + .../stack_wallet/socials/twitter-brands.svg | 1 + asset_sources/svg/stack_wallet/spark.svg | 1 + asset_sources/svg/stack_wallet/star.svg | 10 + .../svg/stack_wallet/sun-bright2.svg | 10 + asset_sources/svg/stack_wallet/sun-circle.svg | 11 ++ asset_sources/svg/stack_wallet/swap.svg | 3 + asset_sources/svg/stack_wallet/swap2.svg | 10 + asset_sources/svg/stack_wallet/tokens.svg | 11 ++ asset_sources/svg/stack_wallet/tor-circle.svg | 5 + asset_sources/svg/stack_wallet/tor-synced.svg | 4 + .../svg/stack_wallet/tor-syncing.svg | 4 + asset_sources/svg/stack_wallet/tor.svg | 4 + asset_sources/svg/stack_wallet/trash.svg | 3 + .../svg/stack_wallet/trocador_rating_a.svg | 10 + .../svg/stack_wallet/trocador_rating_b.svg | 10 + .../svg/stack_wallet/trocador_rating_c.svg | 10 + .../svg/stack_wallet/trocador_rating_d.svg | 10 + .../svg/stack_wallet/tx-cashfusion.svg | 11 ++ .../stack_wallet/tx-icon-anonymize-failed.svg | 13 ++ .../tx-icon-anonymize-pending.svg | 13 ++ .../svg/stack_wallet/tx-icon-anonymize.svg | 16 ++ asset_sources/svg/stack_wallet/unclaimed.svg | 175 ++++++++++++++++++ .../svg/stack_wallet/up-from-line.svg | 3 + asset_sources/svg/stack_wallet/user-minus.svg | 3 + asset_sources/svg/stack_wallet/user-plus.svg | 3 + asset_sources/svg/stack_wallet/user.svg | 3 + .../svg/stack_wallet/wallet-desktop.svg | 3 + asset_sources/svg/stack_wallet/wallet-fa.svg | 4 + .../svg/stack_wallet/wallet-settings.svg | 4 + asset_sources/svg/stack_wallet/whirlpool.svg | 3 + asset_sources/svg/stack_wallet/x-circle.svg | 3 + asset_sources/svg/stack_wallet/x-fat.svg | 4 + asset_sources/svg/stack_wallet/x.svg | 4 + scripts/app_config/shared/link_assets.sh | 2 +- 455 files changed, 2487 insertions(+), 1 deletion(-) rename {assets/svg => asset_sources/svg/campfire}/Button.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/Ellipse-42.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/Ellipse-43.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/Polygon.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/about-desktop.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/add-backup.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/address-book-desktop.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/address-book.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/address-book2.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/alert-circle.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/alert-circle2.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/anonymize.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/arrow-down-left.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/arrow-down.svg (100%) create mode 100644 asset_sources/svg/campfire/arrow-left-fa.svg rename {assets/svg => asset_sources/svg/campfire}/arrow-right.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/arrow-rotate.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/arrow-rotate2.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/arrow-up-right.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/auto-backup.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/bars.svg (100%) create mode 100644 asset_sources/svg/campfire/bell.svg rename {assets/svg => asset_sources/svg/campfire}/box-auto.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/buy/Simplex-Nuvei-Logo-light.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/buy/Simplex-Nuvei-Logo.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/calendar-days.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/cashfusion-icon.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/cc.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/check.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/chevron-down.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/chevron-right.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/chevron-up.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/circle-arrow-up-right2.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/circle-check.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/circle-plus-filled.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/circle-plus.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/circle-question.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/clipboard.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/coin_control/frozen.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/coin_control/gamepad.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/coin_control/selected.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/coin_control/unfrozen.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/configuration.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/connected-button.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/connecting-button.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/copy-fa.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/dark-theme.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/delete.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/dice-alt.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/disconnected-button.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/dollar-sign-circle.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/dollar-sign.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/drd-icon.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/ellipsis-vertical1.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/enabled-button.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/envelope.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/exchange-3.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/exchange-desktop.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/exchange_icons/change_now_logo_1.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/exchange_icons/mb_blue.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/exchange_icons/mb_green.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/exchange_icons/simpleswap-icon.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/exchange_icons/trocador.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/exit-desktop.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/eye-slash.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/eye.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/faceid.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/file-upload.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/file.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/filter.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/fingerprint.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/folder-down.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/folder.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/framed-address-book.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/framed-gear.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/fusing.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/gear-3.svg (100%) create mode 100644 asset_sources/svg/campfire/gear.svg rename {assets/svg => asset_sources/svg/campfire}/info-circle.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/key.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/keys.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/language-circle.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/language2.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/light-mode.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/list-ul.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/loader.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/lock-circle.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/lock-keyhole.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/lock-open.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/lock.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/magnifying-glass.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/message-question-1.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/message-question.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/minimize.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/monkey.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/network-wired-2.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/network-wired.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/node-alt.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/node-circle.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/ordinal.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/peers.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/pen-solid-fa.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/pending.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/plus-circle.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/plus.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/qrcode1.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/restore-backup.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/robot-head.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/rotate-circle.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/send.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/share-2.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/signal-problem-alt.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/signal-stream.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/signal-sync-alt.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/sliders-solid.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/socials/discord.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/socials/reddit-alien-brands.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/socials/telegram-brands.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/socials/twitter-brands.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/spark.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/star.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/sun-bright2.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/sun-circle.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/swap.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/swap2.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/tokens.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/tor-circle.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/tor-synced.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/tor-syncing.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/tor.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/trash.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/trocador_rating_a.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/trocador_rating_b.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/trocador_rating_c.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/trocador_rating_d.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/tx-cashfusion.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/tx-icon-anonymize-failed.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/tx-icon-anonymize-pending.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/tx-icon-anonymize.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/unclaimed.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/up-from-line.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/user-minus.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/user-plus.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/user.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/wallet-desktop.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/wallet-fa.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/wallet-settings.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/whirlpool.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/x-circle.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/x-fat.svg (100%) rename {assets/svg => asset_sources/svg/campfire}/x.svg (100%) create mode 100644 asset_sources/svg/stack_duo/Button.svg create mode 100644 asset_sources/svg/stack_duo/Ellipse-42.svg create mode 100644 asset_sources/svg/stack_duo/Ellipse-43.svg create mode 100644 asset_sources/svg/stack_duo/Polygon.svg create mode 100644 asset_sources/svg/stack_duo/about-desktop.svg create mode 100644 asset_sources/svg/stack_duo/add-backup.svg create mode 100644 asset_sources/svg/stack_duo/address-book-desktop.svg create mode 100644 asset_sources/svg/stack_duo/address-book.svg create mode 100644 asset_sources/svg/stack_duo/address-book2.svg create mode 100644 asset_sources/svg/stack_duo/alert-circle.svg create mode 100644 asset_sources/svg/stack_duo/alert-circle2.svg create mode 100644 asset_sources/svg/stack_duo/anonymize.svg create mode 100644 asset_sources/svg/stack_duo/arrow-down-left.svg create mode 100644 asset_sources/svg/stack_duo/arrow-down.svg rename {assets/svg => asset_sources/svg/stack_duo}/arrow-left-fa.svg (100%) create mode 100644 asset_sources/svg/stack_duo/arrow-right.svg create mode 100644 asset_sources/svg/stack_duo/arrow-rotate.svg create mode 100644 asset_sources/svg/stack_duo/arrow-rotate2.svg create mode 100644 asset_sources/svg/stack_duo/arrow-up-right.svg create mode 100644 asset_sources/svg/stack_duo/auto-backup.svg create mode 100644 asset_sources/svg/stack_duo/bars.svg rename {assets/svg => asset_sources/svg/stack_duo}/bell.svg (100%) create mode 100644 asset_sources/svg/stack_duo/box-auto.svg create mode 100644 asset_sources/svg/stack_duo/buy/Simplex-Nuvei-Logo-light.svg create mode 100644 asset_sources/svg/stack_duo/buy/Simplex-Nuvei-Logo.svg create mode 100644 asset_sources/svg/stack_duo/calendar-days.svg create mode 100644 asset_sources/svg/stack_duo/cashfusion-icon.svg create mode 100644 asset_sources/svg/stack_duo/cc.svg create mode 100644 asset_sources/svg/stack_duo/check.svg create mode 100644 asset_sources/svg/stack_duo/chevron-down.svg create mode 100644 asset_sources/svg/stack_duo/chevron-right.svg create mode 100644 asset_sources/svg/stack_duo/chevron-up.svg create mode 100644 asset_sources/svg/stack_duo/circle-arrow-up-right2.svg create mode 100644 asset_sources/svg/stack_duo/circle-check.svg create mode 100644 asset_sources/svg/stack_duo/circle-plus-filled.svg create mode 100644 asset_sources/svg/stack_duo/circle-plus.svg create mode 100644 asset_sources/svg/stack_duo/circle-question.svg create mode 100644 asset_sources/svg/stack_duo/clipboard.svg create mode 100644 asset_sources/svg/stack_duo/coin_control/frozen.svg create mode 100644 asset_sources/svg/stack_duo/coin_control/gamepad.svg create mode 100644 asset_sources/svg/stack_duo/coin_control/selected.svg create mode 100644 asset_sources/svg/stack_duo/coin_control/unfrozen.svg create mode 100644 asset_sources/svg/stack_duo/configuration.svg create mode 100644 asset_sources/svg/stack_duo/connected-button.svg create mode 100644 asset_sources/svg/stack_duo/connecting-button.svg create mode 100644 asset_sources/svg/stack_duo/copy-fa.svg create mode 100644 asset_sources/svg/stack_duo/dark-theme.svg create mode 100644 asset_sources/svg/stack_duo/delete.svg create mode 100644 asset_sources/svg/stack_duo/dice-alt.svg create mode 100644 asset_sources/svg/stack_duo/disconnected-button.svg create mode 100644 asset_sources/svg/stack_duo/dollar-sign-circle.svg create mode 100644 asset_sources/svg/stack_duo/dollar-sign.svg create mode 100644 asset_sources/svg/stack_duo/drd-icon.svg create mode 100644 asset_sources/svg/stack_duo/ellipsis-vertical1.svg create mode 100644 asset_sources/svg/stack_duo/enabled-button.svg create mode 100644 asset_sources/svg/stack_duo/envelope.svg create mode 100644 asset_sources/svg/stack_duo/exchange-3.svg create mode 100644 asset_sources/svg/stack_duo/exchange-desktop.svg create mode 100644 asset_sources/svg/stack_duo/exchange_icons/change_now_logo_1.svg create mode 100644 asset_sources/svg/stack_duo/exchange_icons/mb_blue.svg create mode 100644 asset_sources/svg/stack_duo/exchange_icons/mb_green.svg create mode 100644 asset_sources/svg/stack_duo/exchange_icons/simpleswap-icon.svg create mode 100644 asset_sources/svg/stack_duo/exchange_icons/trocador.svg create mode 100644 asset_sources/svg/stack_duo/exit-desktop.svg create mode 100644 asset_sources/svg/stack_duo/eye-slash.svg create mode 100644 asset_sources/svg/stack_duo/eye.svg create mode 100644 asset_sources/svg/stack_duo/faceid.svg create mode 100644 asset_sources/svg/stack_duo/file-upload.svg create mode 100644 asset_sources/svg/stack_duo/file.svg create mode 100644 asset_sources/svg/stack_duo/filter.svg create mode 100644 asset_sources/svg/stack_duo/fingerprint.svg create mode 100644 asset_sources/svg/stack_duo/folder-down.svg create mode 100644 asset_sources/svg/stack_duo/folder.svg create mode 100644 asset_sources/svg/stack_duo/framed-address-book.svg create mode 100644 asset_sources/svg/stack_duo/framed-gear.svg create mode 100644 asset_sources/svg/stack_duo/fusing.svg create mode 100644 asset_sources/svg/stack_duo/gear-3.svg rename {assets/svg => asset_sources/svg/stack_duo}/gear.svg (100%) create mode 100644 asset_sources/svg/stack_duo/info-circle.svg create mode 100644 asset_sources/svg/stack_duo/key.svg create mode 100644 asset_sources/svg/stack_duo/keys.svg create mode 100644 asset_sources/svg/stack_duo/language-circle.svg create mode 100644 asset_sources/svg/stack_duo/language2.svg create mode 100644 asset_sources/svg/stack_duo/light-mode.svg create mode 100644 asset_sources/svg/stack_duo/list-ul.svg create mode 100644 asset_sources/svg/stack_duo/loader.svg create mode 100644 asset_sources/svg/stack_duo/lock-circle.svg create mode 100644 asset_sources/svg/stack_duo/lock-keyhole.svg create mode 100644 asset_sources/svg/stack_duo/lock-open.svg create mode 100644 asset_sources/svg/stack_duo/lock.svg create mode 100644 asset_sources/svg/stack_duo/magnifying-glass.svg create mode 100644 asset_sources/svg/stack_duo/message-question-1.svg create mode 100644 asset_sources/svg/stack_duo/message-question.svg create mode 100644 asset_sources/svg/stack_duo/minimize.svg create mode 100644 asset_sources/svg/stack_duo/monkey.svg create mode 100644 asset_sources/svg/stack_duo/network-wired-2.svg create mode 100644 asset_sources/svg/stack_duo/network-wired.svg create mode 100644 asset_sources/svg/stack_duo/node-alt.svg create mode 100644 asset_sources/svg/stack_duo/node-circle.svg create mode 100644 asset_sources/svg/stack_duo/ordinal.svg create mode 100644 asset_sources/svg/stack_duo/peers.svg create mode 100644 asset_sources/svg/stack_duo/pen-solid-fa.svg create mode 100644 asset_sources/svg/stack_duo/pending.svg create mode 100644 asset_sources/svg/stack_duo/plus-circle.svg create mode 100644 asset_sources/svg/stack_duo/plus.svg create mode 100644 asset_sources/svg/stack_duo/qrcode1.svg create mode 100644 asset_sources/svg/stack_duo/restore-backup.svg create mode 100644 asset_sources/svg/stack_duo/robot-head.svg create mode 100644 asset_sources/svg/stack_duo/rotate-circle.svg create mode 100644 asset_sources/svg/stack_duo/send.svg create mode 100644 asset_sources/svg/stack_duo/share-2.svg create mode 100644 asset_sources/svg/stack_duo/signal-problem-alt.svg create mode 100644 asset_sources/svg/stack_duo/signal-stream.svg create mode 100644 asset_sources/svg/stack_duo/signal-sync-alt.svg create mode 100644 asset_sources/svg/stack_duo/sliders-solid.svg create mode 100644 asset_sources/svg/stack_duo/socials/discord.svg create mode 100644 asset_sources/svg/stack_duo/socials/reddit-alien-brands.svg create mode 100644 asset_sources/svg/stack_duo/socials/telegram-brands.svg create mode 100644 asset_sources/svg/stack_duo/socials/twitter-brands.svg create mode 100644 asset_sources/svg/stack_duo/spark.svg create mode 100644 asset_sources/svg/stack_duo/star.svg create mode 100644 asset_sources/svg/stack_duo/sun-bright2.svg create mode 100644 asset_sources/svg/stack_duo/sun-circle.svg create mode 100644 asset_sources/svg/stack_duo/swap.svg create mode 100644 asset_sources/svg/stack_duo/swap2.svg create mode 100644 asset_sources/svg/stack_duo/tokens.svg create mode 100644 asset_sources/svg/stack_duo/tor-circle.svg create mode 100644 asset_sources/svg/stack_duo/tor-synced.svg create mode 100644 asset_sources/svg/stack_duo/tor-syncing.svg create mode 100644 asset_sources/svg/stack_duo/tor.svg create mode 100644 asset_sources/svg/stack_duo/trash.svg create mode 100644 asset_sources/svg/stack_duo/trocador_rating_a.svg create mode 100644 asset_sources/svg/stack_duo/trocador_rating_b.svg create mode 100644 asset_sources/svg/stack_duo/trocador_rating_c.svg create mode 100644 asset_sources/svg/stack_duo/trocador_rating_d.svg create mode 100644 asset_sources/svg/stack_duo/tx-cashfusion.svg create mode 100644 asset_sources/svg/stack_duo/tx-icon-anonymize-failed.svg create mode 100644 asset_sources/svg/stack_duo/tx-icon-anonymize-pending.svg create mode 100644 asset_sources/svg/stack_duo/tx-icon-anonymize.svg create mode 100644 asset_sources/svg/stack_duo/unclaimed.svg create mode 100644 asset_sources/svg/stack_duo/up-from-line.svg create mode 100644 asset_sources/svg/stack_duo/user-minus.svg create mode 100644 asset_sources/svg/stack_duo/user-plus.svg create mode 100644 asset_sources/svg/stack_duo/user.svg create mode 100644 asset_sources/svg/stack_duo/wallet-desktop.svg create mode 100644 asset_sources/svg/stack_duo/wallet-fa.svg create mode 100644 asset_sources/svg/stack_duo/wallet-settings.svg create mode 100644 asset_sources/svg/stack_duo/whirlpool.svg create mode 100644 asset_sources/svg/stack_duo/x-circle.svg create mode 100644 asset_sources/svg/stack_duo/x-fat.svg create mode 100644 asset_sources/svg/stack_duo/x.svg create mode 100644 asset_sources/svg/stack_wallet/Button.svg create mode 100644 asset_sources/svg/stack_wallet/Ellipse-42.svg create mode 100644 asset_sources/svg/stack_wallet/Ellipse-43.svg create mode 100644 asset_sources/svg/stack_wallet/Polygon.svg create mode 100644 asset_sources/svg/stack_wallet/about-desktop.svg create mode 100644 asset_sources/svg/stack_wallet/add-backup.svg create mode 100644 asset_sources/svg/stack_wallet/address-book-desktop.svg create mode 100644 asset_sources/svg/stack_wallet/address-book.svg create mode 100644 asset_sources/svg/stack_wallet/address-book2.svg create mode 100644 asset_sources/svg/stack_wallet/alert-circle.svg create mode 100644 asset_sources/svg/stack_wallet/alert-circle2.svg create mode 100644 asset_sources/svg/stack_wallet/anonymize.svg create mode 100644 asset_sources/svg/stack_wallet/arrow-down-left.svg create mode 100644 asset_sources/svg/stack_wallet/arrow-down.svg create mode 100644 asset_sources/svg/stack_wallet/arrow-left-fa.svg create mode 100644 asset_sources/svg/stack_wallet/arrow-right.svg create mode 100644 asset_sources/svg/stack_wallet/arrow-rotate.svg create mode 100644 asset_sources/svg/stack_wallet/arrow-rotate2.svg create mode 100644 asset_sources/svg/stack_wallet/arrow-up-right.svg create mode 100644 asset_sources/svg/stack_wallet/auto-backup.svg create mode 100644 asset_sources/svg/stack_wallet/bars.svg create mode 100644 asset_sources/svg/stack_wallet/bell.svg create mode 100644 asset_sources/svg/stack_wallet/box-auto.svg create mode 100644 asset_sources/svg/stack_wallet/buy/Simplex-Nuvei-Logo-light.svg create mode 100644 asset_sources/svg/stack_wallet/buy/Simplex-Nuvei-Logo.svg create mode 100644 asset_sources/svg/stack_wallet/calendar-days.svg create mode 100644 asset_sources/svg/stack_wallet/cashfusion-icon.svg create mode 100644 asset_sources/svg/stack_wallet/cc.svg create mode 100644 asset_sources/svg/stack_wallet/check.svg create mode 100644 asset_sources/svg/stack_wallet/chevron-down.svg create mode 100644 asset_sources/svg/stack_wallet/chevron-right.svg create mode 100644 asset_sources/svg/stack_wallet/chevron-up.svg create mode 100644 asset_sources/svg/stack_wallet/circle-arrow-up-right2.svg create mode 100644 asset_sources/svg/stack_wallet/circle-check.svg create mode 100644 asset_sources/svg/stack_wallet/circle-plus-filled.svg create mode 100644 asset_sources/svg/stack_wallet/circle-plus.svg create mode 100644 asset_sources/svg/stack_wallet/circle-question.svg create mode 100644 asset_sources/svg/stack_wallet/clipboard.svg create mode 100644 asset_sources/svg/stack_wallet/coin_control/frozen.svg create mode 100644 asset_sources/svg/stack_wallet/coin_control/gamepad.svg create mode 100644 asset_sources/svg/stack_wallet/coin_control/selected.svg create mode 100644 asset_sources/svg/stack_wallet/coin_control/unfrozen.svg create mode 100644 asset_sources/svg/stack_wallet/configuration.svg create mode 100644 asset_sources/svg/stack_wallet/connected-button.svg create mode 100644 asset_sources/svg/stack_wallet/connecting-button.svg create mode 100644 asset_sources/svg/stack_wallet/copy-fa.svg create mode 100644 asset_sources/svg/stack_wallet/dark-theme.svg create mode 100644 asset_sources/svg/stack_wallet/delete.svg create mode 100644 asset_sources/svg/stack_wallet/dice-alt.svg create mode 100644 asset_sources/svg/stack_wallet/disconnected-button.svg create mode 100644 asset_sources/svg/stack_wallet/dollar-sign-circle.svg create mode 100644 asset_sources/svg/stack_wallet/dollar-sign.svg create mode 100644 asset_sources/svg/stack_wallet/drd-icon.svg create mode 100644 asset_sources/svg/stack_wallet/ellipsis-vertical1.svg create mode 100644 asset_sources/svg/stack_wallet/enabled-button.svg create mode 100644 asset_sources/svg/stack_wallet/envelope.svg create mode 100644 asset_sources/svg/stack_wallet/exchange-3.svg create mode 100644 asset_sources/svg/stack_wallet/exchange-desktop.svg create mode 100644 asset_sources/svg/stack_wallet/exchange_icons/change_now_logo_1.svg create mode 100644 asset_sources/svg/stack_wallet/exchange_icons/mb_blue.svg create mode 100644 asset_sources/svg/stack_wallet/exchange_icons/mb_green.svg create mode 100644 asset_sources/svg/stack_wallet/exchange_icons/simpleswap-icon.svg create mode 100644 asset_sources/svg/stack_wallet/exchange_icons/trocador.svg create mode 100644 asset_sources/svg/stack_wallet/exit-desktop.svg create mode 100644 asset_sources/svg/stack_wallet/eye-slash.svg create mode 100644 asset_sources/svg/stack_wallet/eye.svg create mode 100644 asset_sources/svg/stack_wallet/faceid.svg create mode 100644 asset_sources/svg/stack_wallet/file-upload.svg create mode 100644 asset_sources/svg/stack_wallet/file.svg create mode 100644 asset_sources/svg/stack_wallet/filter.svg create mode 100644 asset_sources/svg/stack_wallet/fingerprint.svg create mode 100644 asset_sources/svg/stack_wallet/folder-down.svg create mode 100644 asset_sources/svg/stack_wallet/folder.svg create mode 100644 asset_sources/svg/stack_wallet/framed-address-book.svg create mode 100644 asset_sources/svg/stack_wallet/framed-gear.svg create mode 100644 asset_sources/svg/stack_wallet/fusing.svg create mode 100644 asset_sources/svg/stack_wallet/gear-3.svg create mode 100644 asset_sources/svg/stack_wallet/gear.svg create mode 100644 asset_sources/svg/stack_wallet/info-circle.svg create mode 100644 asset_sources/svg/stack_wallet/key.svg create mode 100644 asset_sources/svg/stack_wallet/keys.svg create mode 100644 asset_sources/svg/stack_wallet/language-circle.svg create mode 100644 asset_sources/svg/stack_wallet/language2.svg create mode 100644 asset_sources/svg/stack_wallet/light-mode.svg create mode 100644 asset_sources/svg/stack_wallet/list-ul.svg create mode 100644 asset_sources/svg/stack_wallet/loader.svg create mode 100644 asset_sources/svg/stack_wallet/lock-circle.svg create mode 100644 asset_sources/svg/stack_wallet/lock-keyhole.svg create mode 100644 asset_sources/svg/stack_wallet/lock-open.svg create mode 100644 asset_sources/svg/stack_wallet/lock.svg create mode 100644 asset_sources/svg/stack_wallet/magnifying-glass.svg create mode 100644 asset_sources/svg/stack_wallet/message-question-1.svg create mode 100644 asset_sources/svg/stack_wallet/message-question.svg create mode 100644 asset_sources/svg/stack_wallet/minimize.svg create mode 100644 asset_sources/svg/stack_wallet/monkey.svg create mode 100644 asset_sources/svg/stack_wallet/network-wired-2.svg create mode 100644 asset_sources/svg/stack_wallet/network-wired.svg create mode 100644 asset_sources/svg/stack_wallet/node-alt.svg create mode 100644 asset_sources/svg/stack_wallet/node-circle.svg create mode 100644 asset_sources/svg/stack_wallet/ordinal.svg create mode 100644 asset_sources/svg/stack_wallet/peers.svg create mode 100644 asset_sources/svg/stack_wallet/pen-solid-fa.svg create mode 100644 asset_sources/svg/stack_wallet/pending.svg create mode 100644 asset_sources/svg/stack_wallet/plus-circle.svg create mode 100644 asset_sources/svg/stack_wallet/plus.svg create mode 100644 asset_sources/svg/stack_wallet/qrcode1.svg create mode 100644 asset_sources/svg/stack_wallet/restore-backup.svg create mode 100644 asset_sources/svg/stack_wallet/robot-head.svg create mode 100644 asset_sources/svg/stack_wallet/rotate-circle.svg create mode 100644 asset_sources/svg/stack_wallet/send.svg create mode 100644 asset_sources/svg/stack_wallet/share-2.svg create mode 100644 asset_sources/svg/stack_wallet/signal-problem-alt.svg create mode 100644 asset_sources/svg/stack_wallet/signal-stream.svg create mode 100644 asset_sources/svg/stack_wallet/signal-sync-alt.svg create mode 100644 asset_sources/svg/stack_wallet/sliders-solid.svg create mode 100644 asset_sources/svg/stack_wallet/socials/discord.svg create mode 100644 asset_sources/svg/stack_wallet/socials/reddit-alien-brands.svg create mode 100644 asset_sources/svg/stack_wallet/socials/telegram-brands.svg create mode 100644 asset_sources/svg/stack_wallet/socials/twitter-brands.svg create mode 100644 asset_sources/svg/stack_wallet/spark.svg create mode 100644 asset_sources/svg/stack_wallet/star.svg create mode 100644 asset_sources/svg/stack_wallet/sun-bright2.svg create mode 100644 asset_sources/svg/stack_wallet/sun-circle.svg create mode 100644 asset_sources/svg/stack_wallet/swap.svg create mode 100644 asset_sources/svg/stack_wallet/swap2.svg create mode 100644 asset_sources/svg/stack_wallet/tokens.svg create mode 100644 asset_sources/svg/stack_wallet/tor-circle.svg create mode 100644 asset_sources/svg/stack_wallet/tor-synced.svg create mode 100644 asset_sources/svg/stack_wallet/tor-syncing.svg create mode 100644 asset_sources/svg/stack_wallet/tor.svg create mode 100644 asset_sources/svg/stack_wallet/trash.svg create mode 100644 asset_sources/svg/stack_wallet/trocador_rating_a.svg create mode 100644 asset_sources/svg/stack_wallet/trocador_rating_b.svg create mode 100644 asset_sources/svg/stack_wallet/trocador_rating_c.svg create mode 100644 asset_sources/svg/stack_wallet/trocador_rating_d.svg create mode 100644 asset_sources/svg/stack_wallet/tx-cashfusion.svg create mode 100644 asset_sources/svg/stack_wallet/tx-icon-anonymize-failed.svg create mode 100644 asset_sources/svg/stack_wallet/tx-icon-anonymize-pending.svg create mode 100644 asset_sources/svg/stack_wallet/tx-icon-anonymize.svg create mode 100644 asset_sources/svg/stack_wallet/unclaimed.svg create mode 100644 asset_sources/svg/stack_wallet/up-from-line.svg create mode 100644 asset_sources/svg/stack_wallet/user-minus.svg create mode 100644 asset_sources/svg/stack_wallet/user-plus.svg create mode 100644 asset_sources/svg/stack_wallet/user.svg create mode 100644 asset_sources/svg/stack_wallet/wallet-desktop.svg create mode 100644 asset_sources/svg/stack_wallet/wallet-fa.svg create mode 100644 asset_sources/svg/stack_wallet/wallet-settings.svg create mode 100644 asset_sources/svg/stack_wallet/whirlpool.svg create mode 100644 asset_sources/svg/stack_wallet/x-circle.svg create mode 100644 asset_sources/svg/stack_wallet/x-fat.svg create mode 100644 asset_sources/svg/stack_wallet/x.svg diff --git a/.gitignore b/.gitignore index 35282800f..efa6e25e7 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,7 @@ test/services/coins/particl/particl_wallet_test_parameters.dart /assets/icon /assets/lottie /assets/in_app_logo_icons +/assets/svg # other coverage diff --git a/assets/svg/Button.svg b/asset_sources/svg/campfire/Button.svg similarity index 100% rename from assets/svg/Button.svg rename to asset_sources/svg/campfire/Button.svg diff --git a/assets/svg/Ellipse-42.svg b/asset_sources/svg/campfire/Ellipse-42.svg similarity index 100% rename from assets/svg/Ellipse-42.svg rename to asset_sources/svg/campfire/Ellipse-42.svg diff --git a/assets/svg/Ellipse-43.svg b/asset_sources/svg/campfire/Ellipse-43.svg similarity index 100% rename from assets/svg/Ellipse-43.svg rename to asset_sources/svg/campfire/Ellipse-43.svg diff --git a/assets/svg/Polygon.svg b/asset_sources/svg/campfire/Polygon.svg similarity index 100% rename from assets/svg/Polygon.svg rename to asset_sources/svg/campfire/Polygon.svg diff --git a/assets/svg/about-desktop.svg b/asset_sources/svg/campfire/about-desktop.svg similarity index 100% rename from assets/svg/about-desktop.svg rename to asset_sources/svg/campfire/about-desktop.svg diff --git a/assets/svg/add-backup.svg b/asset_sources/svg/campfire/add-backup.svg similarity index 100% rename from assets/svg/add-backup.svg rename to asset_sources/svg/campfire/add-backup.svg diff --git a/assets/svg/address-book-desktop.svg b/asset_sources/svg/campfire/address-book-desktop.svg similarity index 100% rename from assets/svg/address-book-desktop.svg rename to asset_sources/svg/campfire/address-book-desktop.svg diff --git a/assets/svg/address-book.svg b/asset_sources/svg/campfire/address-book.svg similarity index 100% rename from assets/svg/address-book.svg rename to asset_sources/svg/campfire/address-book.svg diff --git a/assets/svg/address-book2.svg b/asset_sources/svg/campfire/address-book2.svg similarity index 100% rename from assets/svg/address-book2.svg rename to asset_sources/svg/campfire/address-book2.svg diff --git a/assets/svg/alert-circle.svg b/asset_sources/svg/campfire/alert-circle.svg similarity index 100% rename from assets/svg/alert-circle.svg rename to asset_sources/svg/campfire/alert-circle.svg diff --git a/assets/svg/alert-circle2.svg b/asset_sources/svg/campfire/alert-circle2.svg similarity index 100% rename from assets/svg/alert-circle2.svg rename to asset_sources/svg/campfire/alert-circle2.svg diff --git a/assets/svg/anonymize.svg b/asset_sources/svg/campfire/anonymize.svg similarity index 100% rename from assets/svg/anonymize.svg rename to asset_sources/svg/campfire/anonymize.svg diff --git a/assets/svg/arrow-down-left.svg b/asset_sources/svg/campfire/arrow-down-left.svg similarity index 100% rename from assets/svg/arrow-down-left.svg rename to asset_sources/svg/campfire/arrow-down-left.svg diff --git a/assets/svg/arrow-down.svg b/asset_sources/svg/campfire/arrow-down.svg similarity index 100% rename from assets/svg/arrow-down.svg rename to asset_sources/svg/campfire/arrow-down.svg diff --git a/asset_sources/svg/campfire/arrow-left-fa.svg b/asset_sources/svg/campfire/arrow-left-fa.svg new file mode 100644 index 000000000..72d530554 --- /dev/null +++ b/asset_sources/svg/campfire/arrow-left-fa.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/svg/arrow-right.svg b/asset_sources/svg/campfire/arrow-right.svg similarity index 100% rename from assets/svg/arrow-right.svg rename to asset_sources/svg/campfire/arrow-right.svg diff --git a/assets/svg/arrow-rotate.svg b/asset_sources/svg/campfire/arrow-rotate.svg similarity index 100% rename from assets/svg/arrow-rotate.svg rename to asset_sources/svg/campfire/arrow-rotate.svg diff --git a/assets/svg/arrow-rotate2.svg b/asset_sources/svg/campfire/arrow-rotate2.svg similarity index 100% rename from assets/svg/arrow-rotate2.svg rename to asset_sources/svg/campfire/arrow-rotate2.svg diff --git a/assets/svg/arrow-up-right.svg b/asset_sources/svg/campfire/arrow-up-right.svg similarity index 100% rename from assets/svg/arrow-up-right.svg rename to asset_sources/svg/campfire/arrow-up-right.svg diff --git a/assets/svg/auto-backup.svg b/asset_sources/svg/campfire/auto-backup.svg similarity index 100% rename from assets/svg/auto-backup.svg rename to asset_sources/svg/campfire/auto-backup.svg diff --git a/assets/svg/bars.svg b/asset_sources/svg/campfire/bars.svg similarity index 100% rename from assets/svg/bars.svg rename to asset_sources/svg/campfire/bars.svg diff --git a/asset_sources/svg/campfire/bell.svg b/asset_sources/svg/campfire/bell.svg new file mode 100644 index 000000000..020569080 --- /dev/null +++ b/asset_sources/svg/campfire/bell.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/svg/box-auto.svg b/asset_sources/svg/campfire/box-auto.svg similarity index 100% rename from assets/svg/box-auto.svg rename to asset_sources/svg/campfire/box-auto.svg diff --git a/assets/svg/buy/Simplex-Nuvei-Logo-light.svg b/asset_sources/svg/campfire/buy/Simplex-Nuvei-Logo-light.svg similarity index 100% rename from assets/svg/buy/Simplex-Nuvei-Logo-light.svg rename to asset_sources/svg/campfire/buy/Simplex-Nuvei-Logo-light.svg diff --git a/assets/svg/buy/Simplex-Nuvei-Logo.svg b/asset_sources/svg/campfire/buy/Simplex-Nuvei-Logo.svg similarity index 100% rename from assets/svg/buy/Simplex-Nuvei-Logo.svg rename to asset_sources/svg/campfire/buy/Simplex-Nuvei-Logo.svg diff --git a/assets/svg/calendar-days.svg b/asset_sources/svg/campfire/calendar-days.svg similarity index 100% rename from assets/svg/calendar-days.svg rename to asset_sources/svg/campfire/calendar-days.svg diff --git a/assets/svg/cashfusion-icon.svg b/asset_sources/svg/campfire/cashfusion-icon.svg similarity index 100% rename from assets/svg/cashfusion-icon.svg rename to asset_sources/svg/campfire/cashfusion-icon.svg diff --git a/assets/svg/cc.svg b/asset_sources/svg/campfire/cc.svg similarity index 100% rename from assets/svg/cc.svg rename to asset_sources/svg/campfire/cc.svg diff --git a/assets/svg/check.svg b/asset_sources/svg/campfire/check.svg similarity index 100% rename from assets/svg/check.svg rename to asset_sources/svg/campfire/check.svg diff --git a/assets/svg/chevron-down.svg b/asset_sources/svg/campfire/chevron-down.svg similarity index 100% rename from assets/svg/chevron-down.svg rename to asset_sources/svg/campfire/chevron-down.svg diff --git a/assets/svg/chevron-right.svg b/asset_sources/svg/campfire/chevron-right.svg similarity index 100% rename from assets/svg/chevron-right.svg rename to asset_sources/svg/campfire/chevron-right.svg diff --git a/assets/svg/chevron-up.svg b/asset_sources/svg/campfire/chevron-up.svg similarity index 100% rename from assets/svg/chevron-up.svg rename to asset_sources/svg/campfire/chevron-up.svg diff --git a/assets/svg/circle-arrow-up-right2.svg b/asset_sources/svg/campfire/circle-arrow-up-right2.svg similarity index 100% rename from assets/svg/circle-arrow-up-right2.svg rename to asset_sources/svg/campfire/circle-arrow-up-right2.svg diff --git a/assets/svg/circle-check.svg b/asset_sources/svg/campfire/circle-check.svg similarity index 100% rename from assets/svg/circle-check.svg rename to asset_sources/svg/campfire/circle-check.svg diff --git a/assets/svg/circle-plus-filled.svg b/asset_sources/svg/campfire/circle-plus-filled.svg similarity index 100% rename from assets/svg/circle-plus-filled.svg rename to asset_sources/svg/campfire/circle-plus-filled.svg diff --git a/assets/svg/circle-plus.svg b/asset_sources/svg/campfire/circle-plus.svg similarity index 100% rename from assets/svg/circle-plus.svg rename to asset_sources/svg/campfire/circle-plus.svg diff --git a/assets/svg/circle-question.svg b/asset_sources/svg/campfire/circle-question.svg similarity index 100% rename from assets/svg/circle-question.svg rename to asset_sources/svg/campfire/circle-question.svg diff --git a/assets/svg/clipboard.svg b/asset_sources/svg/campfire/clipboard.svg similarity index 100% rename from assets/svg/clipboard.svg rename to asset_sources/svg/campfire/clipboard.svg diff --git a/assets/svg/coin_control/frozen.svg b/asset_sources/svg/campfire/coin_control/frozen.svg similarity index 100% rename from assets/svg/coin_control/frozen.svg rename to asset_sources/svg/campfire/coin_control/frozen.svg diff --git a/assets/svg/coin_control/gamepad.svg b/asset_sources/svg/campfire/coin_control/gamepad.svg similarity index 100% rename from assets/svg/coin_control/gamepad.svg rename to asset_sources/svg/campfire/coin_control/gamepad.svg diff --git a/assets/svg/coin_control/selected.svg b/asset_sources/svg/campfire/coin_control/selected.svg similarity index 100% rename from assets/svg/coin_control/selected.svg rename to asset_sources/svg/campfire/coin_control/selected.svg diff --git a/assets/svg/coin_control/unfrozen.svg b/asset_sources/svg/campfire/coin_control/unfrozen.svg similarity index 100% rename from assets/svg/coin_control/unfrozen.svg rename to asset_sources/svg/campfire/coin_control/unfrozen.svg diff --git a/assets/svg/configuration.svg b/asset_sources/svg/campfire/configuration.svg similarity index 100% rename from assets/svg/configuration.svg rename to asset_sources/svg/campfire/configuration.svg diff --git a/assets/svg/connected-button.svg b/asset_sources/svg/campfire/connected-button.svg similarity index 100% rename from assets/svg/connected-button.svg rename to asset_sources/svg/campfire/connected-button.svg diff --git a/assets/svg/connecting-button.svg b/asset_sources/svg/campfire/connecting-button.svg similarity index 100% rename from assets/svg/connecting-button.svg rename to asset_sources/svg/campfire/connecting-button.svg diff --git a/assets/svg/copy-fa.svg b/asset_sources/svg/campfire/copy-fa.svg similarity index 100% rename from assets/svg/copy-fa.svg rename to asset_sources/svg/campfire/copy-fa.svg diff --git a/assets/svg/dark-theme.svg b/asset_sources/svg/campfire/dark-theme.svg similarity index 100% rename from assets/svg/dark-theme.svg rename to asset_sources/svg/campfire/dark-theme.svg diff --git a/assets/svg/delete.svg b/asset_sources/svg/campfire/delete.svg similarity index 100% rename from assets/svg/delete.svg rename to asset_sources/svg/campfire/delete.svg diff --git a/assets/svg/dice-alt.svg b/asset_sources/svg/campfire/dice-alt.svg similarity index 100% rename from assets/svg/dice-alt.svg rename to asset_sources/svg/campfire/dice-alt.svg diff --git a/assets/svg/disconnected-button.svg b/asset_sources/svg/campfire/disconnected-button.svg similarity index 100% rename from assets/svg/disconnected-button.svg rename to asset_sources/svg/campfire/disconnected-button.svg diff --git a/assets/svg/dollar-sign-circle.svg b/asset_sources/svg/campfire/dollar-sign-circle.svg similarity index 100% rename from assets/svg/dollar-sign-circle.svg rename to asset_sources/svg/campfire/dollar-sign-circle.svg diff --git a/assets/svg/dollar-sign.svg b/asset_sources/svg/campfire/dollar-sign.svg similarity index 100% rename from assets/svg/dollar-sign.svg rename to asset_sources/svg/campfire/dollar-sign.svg diff --git a/assets/svg/drd-icon.svg b/asset_sources/svg/campfire/drd-icon.svg similarity index 100% rename from assets/svg/drd-icon.svg rename to asset_sources/svg/campfire/drd-icon.svg diff --git a/assets/svg/ellipsis-vertical1.svg b/asset_sources/svg/campfire/ellipsis-vertical1.svg similarity index 100% rename from assets/svg/ellipsis-vertical1.svg rename to asset_sources/svg/campfire/ellipsis-vertical1.svg diff --git a/assets/svg/enabled-button.svg b/asset_sources/svg/campfire/enabled-button.svg similarity index 100% rename from assets/svg/enabled-button.svg rename to asset_sources/svg/campfire/enabled-button.svg diff --git a/assets/svg/envelope.svg b/asset_sources/svg/campfire/envelope.svg similarity index 100% rename from assets/svg/envelope.svg rename to asset_sources/svg/campfire/envelope.svg diff --git a/assets/svg/exchange-3.svg b/asset_sources/svg/campfire/exchange-3.svg similarity index 100% rename from assets/svg/exchange-3.svg rename to asset_sources/svg/campfire/exchange-3.svg diff --git a/assets/svg/exchange-desktop.svg b/asset_sources/svg/campfire/exchange-desktop.svg similarity index 100% rename from assets/svg/exchange-desktop.svg rename to asset_sources/svg/campfire/exchange-desktop.svg diff --git a/assets/svg/exchange_icons/change_now_logo_1.svg b/asset_sources/svg/campfire/exchange_icons/change_now_logo_1.svg similarity index 100% rename from assets/svg/exchange_icons/change_now_logo_1.svg rename to asset_sources/svg/campfire/exchange_icons/change_now_logo_1.svg diff --git a/assets/svg/exchange_icons/mb_blue.svg b/asset_sources/svg/campfire/exchange_icons/mb_blue.svg similarity index 100% rename from assets/svg/exchange_icons/mb_blue.svg rename to asset_sources/svg/campfire/exchange_icons/mb_blue.svg diff --git a/assets/svg/exchange_icons/mb_green.svg b/asset_sources/svg/campfire/exchange_icons/mb_green.svg similarity index 100% rename from assets/svg/exchange_icons/mb_green.svg rename to asset_sources/svg/campfire/exchange_icons/mb_green.svg diff --git a/assets/svg/exchange_icons/simpleswap-icon.svg b/asset_sources/svg/campfire/exchange_icons/simpleswap-icon.svg similarity index 100% rename from assets/svg/exchange_icons/simpleswap-icon.svg rename to asset_sources/svg/campfire/exchange_icons/simpleswap-icon.svg diff --git a/assets/svg/exchange_icons/trocador.svg b/asset_sources/svg/campfire/exchange_icons/trocador.svg similarity index 100% rename from assets/svg/exchange_icons/trocador.svg rename to asset_sources/svg/campfire/exchange_icons/trocador.svg diff --git a/assets/svg/exit-desktop.svg b/asset_sources/svg/campfire/exit-desktop.svg similarity index 100% rename from assets/svg/exit-desktop.svg rename to asset_sources/svg/campfire/exit-desktop.svg diff --git a/assets/svg/eye-slash.svg b/asset_sources/svg/campfire/eye-slash.svg similarity index 100% rename from assets/svg/eye-slash.svg rename to asset_sources/svg/campfire/eye-slash.svg diff --git a/assets/svg/eye.svg b/asset_sources/svg/campfire/eye.svg similarity index 100% rename from assets/svg/eye.svg rename to asset_sources/svg/campfire/eye.svg diff --git a/assets/svg/faceid.svg b/asset_sources/svg/campfire/faceid.svg similarity index 100% rename from assets/svg/faceid.svg rename to asset_sources/svg/campfire/faceid.svg diff --git a/assets/svg/file-upload.svg b/asset_sources/svg/campfire/file-upload.svg similarity index 100% rename from assets/svg/file-upload.svg rename to asset_sources/svg/campfire/file-upload.svg diff --git a/assets/svg/file.svg b/asset_sources/svg/campfire/file.svg similarity index 100% rename from assets/svg/file.svg rename to asset_sources/svg/campfire/file.svg diff --git a/assets/svg/filter.svg b/asset_sources/svg/campfire/filter.svg similarity index 100% rename from assets/svg/filter.svg rename to asset_sources/svg/campfire/filter.svg diff --git a/assets/svg/fingerprint.svg b/asset_sources/svg/campfire/fingerprint.svg similarity index 100% rename from assets/svg/fingerprint.svg rename to asset_sources/svg/campfire/fingerprint.svg diff --git a/assets/svg/folder-down.svg b/asset_sources/svg/campfire/folder-down.svg similarity index 100% rename from assets/svg/folder-down.svg rename to asset_sources/svg/campfire/folder-down.svg diff --git a/assets/svg/folder.svg b/asset_sources/svg/campfire/folder.svg similarity index 100% rename from assets/svg/folder.svg rename to asset_sources/svg/campfire/folder.svg diff --git a/assets/svg/framed-address-book.svg b/asset_sources/svg/campfire/framed-address-book.svg similarity index 100% rename from assets/svg/framed-address-book.svg rename to asset_sources/svg/campfire/framed-address-book.svg diff --git a/assets/svg/framed-gear.svg b/asset_sources/svg/campfire/framed-gear.svg similarity index 100% rename from assets/svg/framed-gear.svg rename to asset_sources/svg/campfire/framed-gear.svg diff --git a/assets/svg/fusing.svg b/asset_sources/svg/campfire/fusing.svg similarity index 100% rename from assets/svg/fusing.svg rename to asset_sources/svg/campfire/fusing.svg diff --git a/assets/svg/gear-3.svg b/asset_sources/svg/campfire/gear-3.svg similarity index 100% rename from assets/svg/gear-3.svg rename to asset_sources/svg/campfire/gear-3.svg diff --git a/asset_sources/svg/campfire/gear.svg b/asset_sources/svg/campfire/gear.svg new file mode 100644 index 000000000..c93e8fd56 --- /dev/null +++ b/asset_sources/svg/campfire/gear.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/svg/info-circle.svg b/asset_sources/svg/campfire/info-circle.svg similarity index 100% rename from assets/svg/info-circle.svg rename to asset_sources/svg/campfire/info-circle.svg diff --git a/assets/svg/key.svg b/asset_sources/svg/campfire/key.svg similarity index 100% rename from assets/svg/key.svg rename to asset_sources/svg/campfire/key.svg diff --git a/assets/svg/keys.svg b/asset_sources/svg/campfire/keys.svg similarity index 100% rename from assets/svg/keys.svg rename to asset_sources/svg/campfire/keys.svg diff --git a/assets/svg/language-circle.svg b/asset_sources/svg/campfire/language-circle.svg similarity index 100% rename from assets/svg/language-circle.svg rename to asset_sources/svg/campfire/language-circle.svg diff --git a/assets/svg/language2.svg b/asset_sources/svg/campfire/language2.svg similarity index 100% rename from assets/svg/language2.svg rename to asset_sources/svg/campfire/language2.svg diff --git a/assets/svg/light-mode.svg b/asset_sources/svg/campfire/light-mode.svg similarity index 100% rename from assets/svg/light-mode.svg rename to asset_sources/svg/campfire/light-mode.svg diff --git a/assets/svg/list-ul.svg b/asset_sources/svg/campfire/list-ul.svg similarity index 100% rename from assets/svg/list-ul.svg rename to asset_sources/svg/campfire/list-ul.svg diff --git a/assets/svg/loader.svg b/asset_sources/svg/campfire/loader.svg similarity index 100% rename from assets/svg/loader.svg rename to asset_sources/svg/campfire/loader.svg diff --git a/assets/svg/lock-circle.svg b/asset_sources/svg/campfire/lock-circle.svg similarity index 100% rename from assets/svg/lock-circle.svg rename to asset_sources/svg/campfire/lock-circle.svg diff --git a/assets/svg/lock-keyhole.svg b/asset_sources/svg/campfire/lock-keyhole.svg similarity index 100% rename from assets/svg/lock-keyhole.svg rename to asset_sources/svg/campfire/lock-keyhole.svg diff --git a/assets/svg/lock-open.svg b/asset_sources/svg/campfire/lock-open.svg similarity index 100% rename from assets/svg/lock-open.svg rename to asset_sources/svg/campfire/lock-open.svg diff --git a/assets/svg/lock.svg b/asset_sources/svg/campfire/lock.svg similarity index 100% rename from assets/svg/lock.svg rename to asset_sources/svg/campfire/lock.svg diff --git a/assets/svg/magnifying-glass.svg b/asset_sources/svg/campfire/magnifying-glass.svg similarity index 100% rename from assets/svg/magnifying-glass.svg rename to asset_sources/svg/campfire/magnifying-glass.svg diff --git a/assets/svg/message-question-1.svg b/asset_sources/svg/campfire/message-question-1.svg similarity index 100% rename from assets/svg/message-question-1.svg rename to asset_sources/svg/campfire/message-question-1.svg diff --git a/assets/svg/message-question.svg b/asset_sources/svg/campfire/message-question.svg similarity index 100% rename from assets/svg/message-question.svg rename to asset_sources/svg/campfire/message-question.svg diff --git a/assets/svg/minimize.svg b/asset_sources/svg/campfire/minimize.svg similarity index 100% rename from assets/svg/minimize.svg rename to asset_sources/svg/campfire/minimize.svg diff --git a/assets/svg/monkey.svg b/asset_sources/svg/campfire/monkey.svg similarity index 100% rename from assets/svg/monkey.svg rename to asset_sources/svg/campfire/monkey.svg diff --git a/assets/svg/network-wired-2.svg b/asset_sources/svg/campfire/network-wired-2.svg similarity index 100% rename from assets/svg/network-wired-2.svg rename to asset_sources/svg/campfire/network-wired-2.svg diff --git a/assets/svg/network-wired.svg b/asset_sources/svg/campfire/network-wired.svg similarity index 100% rename from assets/svg/network-wired.svg rename to asset_sources/svg/campfire/network-wired.svg diff --git a/assets/svg/node-alt.svg b/asset_sources/svg/campfire/node-alt.svg similarity index 100% rename from assets/svg/node-alt.svg rename to asset_sources/svg/campfire/node-alt.svg diff --git a/assets/svg/node-circle.svg b/asset_sources/svg/campfire/node-circle.svg similarity index 100% rename from assets/svg/node-circle.svg rename to asset_sources/svg/campfire/node-circle.svg diff --git a/assets/svg/ordinal.svg b/asset_sources/svg/campfire/ordinal.svg similarity index 100% rename from assets/svg/ordinal.svg rename to asset_sources/svg/campfire/ordinal.svg diff --git a/assets/svg/peers.svg b/asset_sources/svg/campfire/peers.svg similarity index 100% rename from assets/svg/peers.svg rename to asset_sources/svg/campfire/peers.svg diff --git a/assets/svg/pen-solid-fa.svg b/asset_sources/svg/campfire/pen-solid-fa.svg similarity index 100% rename from assets/svg/pen-solid-fa.svg rename to asset_sources/svg/campfire/pen-solid-fa.svg diff --git a/assets/svg/pending.svg b/asset_sources/svg/campfire/pending.svg similarity index 100% rename from assets/svg/pending.svg rename to asset_sources/svg/campfire/pending.svg diff --git a/assets/svg/plus-circle.svg b/asset_sources/svg/campfire/plus-circle.svg similarity index 100% rename from assets/svg/plus-circle.svg rename to asset_sources/svg/campfire/plus-circle.svg diff --git a/assets/svg/plus.svg b/asset_sources/svg/campfire/plus.svg similarity index 100% rename from assets/svg/plus.svg rename to asset_sources/svg/campfire/plus.svg diff --git a/assets/svg/qrcode1.svg b/asset_sources/svg/campfire/qrcode1.svg similarity index 100% rename from assets/svg/qrcode1.svg rename to asset_sources/svg/campfire/qrcode1.svg diff --git a/assets/svg/restore-backup.svg b/asset_sources/svg/campfire/restore-backup.svg similarity index 100% rename from assets/svg/restore-backup.svg rename to asset_sources/svg/campfire/restore-backup.svg diff --git a/assets/svg/robot-head.svg b/asset_sources/svg/campfire/robot-head.svg similarity index 100% rename from assets/svg/robot-head.svg rename to asset_sources/svg/campfire/robot-head.svg diff --git a/assets/svg/rotate-circle.svg b/asset_sources/svg/campfire/rotate-circle.svg similarity index 100% rename from assets/svg/rotate-circle.svg rename to asset_sources/svg/campfire/rotate-circle.svg diff --git a/assets/svg/send.svg b/asset_sources/svg/campfire/send.svg similarity index 100% rename from assets/svg/send.svg rename to asset_sources/svg/campfire/send.svg diff --git a/assets/svg/share-2.svg b/asset_sources/svg/campfire/share-2.svg similarity index 100% rename from assets/svg/share-2.svg rename to asset_sources/svg/campfire/share-2.svg diff --git a/assets/svg/signal-problem-alt.svg b/asset_sources/svg/campfire/signal-problem-alt.svg similarity index 100% rename from assets/svg/signal-problem-alt.svg rename to asset_sources/svg/campfire/signal-problem-alt.svg diff --git a/assets/svg/signal-stream.svg b/asset_sources/svg/campfire/signal-stream.svg similarity index 100% rename from assets/svg/signal-stream.svg rename to asset_sources/svg/campfire/signal-stream.svg diff --git a/assets/svg/signal-sync-alt.svg b/asset_sources/svg/campfire/signal-sync-alt.svg similarity index 100% rename from assets/svg/signal-sync-alt.svg rename to asset_sources/svg/campfire/signal-sync-alt.svg diff --git a/assets/svg/sliders-solid.svg b/asset_sources/svg/campfire/sliders-solid.svg similarity index 100% rename from assets/svg/sliders-solid.svg rename to asset_sources/svg/campfire/sliders-solid.svg diff --git a/assets/svg/socials/discord.svg b/asset_sources/svg/campfire/socials/discord.svg similarity index 100% rename from assets/svg/socials/discord.svg rename to asset_sources/svg/campfire/socials/discord.svg diff --git a/assets/svg/socials/reddit-alien-brands.svg b/asset_sources/svg/campfire/socials/reddit-alien-brands.svg similarity index 100% rename from assets/svg/socials/reddit-alien-brands.svg rename to asset_sources/svg/campfire/socials/reddit-alien-brands.svg diff --git a/assets/svg/socials/telegram-brands.svg b/asset_sources/svg/campfire/socials/telegram-brands.svg similarity index 100% rename from assets/svg/socials/telegram-brands.svg rename to asset_sources/svg/campfire/socials/telegram-brands.svg diff --git a/assets/svg/socials/twitter-brands.svg b/asset_sources/svg/campfire/socials/twitter-brands.svg similarity index 100% rename from assets/svg/socials/twitter-brands.svg rename to asset_sources/svg/campfire/socials/twitter-brands.svg diff --git a/assets/svg/spark.svg b/asset_sources/svg/campfire/spark.svg similarity index 100% rename from assets/svg/spark.svg rename to asset_sources/svg/campfire/spark.svg diff --git a/assets/svg/star.svg b/asset_sources/svg/campfire/star.svg similarity index 100% rename from assets/svg/star.svg rename to asset_sources/svg/campfire/star.svg diff --git a/assets/svg/sun-bright2.svg b/asset_sources/svg/campfire/sun-bright2.svg similarity index 100% rename from assets/svg/sun-bright2.svg rename to asset_sources/svg/campfire/sun-bright2.svg diff --git a/assets/svg/sun-circle.svg b/asset_sources/svg/campfire/sun-circle.svg similarity index 100% rename from assets/svg/sun-circle.svg rename to asset_sources/svg/campfire/sun-circle.svg diff --git a/assets/svg/swap.svg b/asset_sources/svg/campfire/swap.svg similarity index 100% rename from assets/svg/swap.svg rename to asset_sources/svg/campfire/swap.svg diff --git a/assets/svg/swap2.svg b/asset_sources/svg/campfire/swap2.svg similarity index 100% rename from assets/svg/swap2.svg rename to asset_sources/svg/campfire/swap2.svg diff --git a/assets/svg/tokens.svg b/asset_sources/svg/campfire/tokens.svg similarity index 100% rename from assets/svg/tokens.svg rename to asset_sources/svg/campfire/tokens.svg diff --git a/assets/svg/tor-circle.svg b/asset_sources/svg/campfire/tor-circle.svg similarity index 100% rename from assets/svg/tor-circle.svg rename to asset_sources/svg/campfire/tor-circle.svg diff --git a/assets/svg/tor-synced.svg b/asset_sources/svg/campfire/tor-synced.svg similarity index 100% rename from assets/svg/tor-synced.svg rename to asset_sources/svg/campfire/tor-synced.svg diff --git a/assets/svg/tor-syncing.svg b/asset_sources/svg/campfire/tor-syncing.svg similarity index 100% rename from assets/svg/tor-syncing.svg rename to asset_sources/svg/campfire/tor-syncing.svg diff --git a/assets/svg/tor.svg b/asset_sources/svg/campfire/tor.svg similarity index 100% rename from assets/svg/tor.svg rename to asset_sources/svg/campfire/tor.svg diff --git a/assets/svg/trash.svg b/asset_sources/svg/campfire/trash.svg similarity index 100% rename from assets/svg/trash.svg rename to asset_sources/svg/campfire/trash.svg diff --git a/assets/svg/trocador_rating_a.svg b/asset_sources/svg/campfire/trocador_rating_a.svg similarity index 100% rename from assets/svg/trocador_rating_a.svg rename to asset_sources/svg/campfire/trocador_rating_a.svg diff --git a/assets/svg/trocador_rating_b.svg b/asset_sources/svg/campfire/trocador_rating_b.svg similarity index 100% rename from assets/svg/trocador_rating_b.svg rename to asset_sources/svg/campfire/trocador_rating_b.svg diff --git a/assets/svg/trocador_rating_c.svg b/asset_sources/svg/campfire/trocador_rating_c.svg similarity index 100% rename from assets/svg/trocador_rating_c.svg rename to asset_sources/svg/campfire/trocador_rating_c.svg diff --git a/assets/svg/trocador_rating_d.svg b/asset_sources/svg/campfire/trocador_rating_d.svg similarity index 100% rename from assets/svg/trocador_rating_d.svg rename to asset_sources/svg/campfire/trocador_rating_d.svg diff --git a/assets/svg/tx-cashfusion.svg b/asset_sources/svg/campfire/tx-cashfusion.svg similarity index 100% rename from assets/svg/tx-cashfusion.svg rename to asset_sources/svg/campfire/tx-cashfusion.svg diff --git a/assets/svg/tx-icon-anonymize-failed.svg b/asset_sources/svg/campfire/tx-icon-anonymize-failed.svg similarity index 100% rename from assets/svg/tx-icon-anonymize-failed.svg rename to asset_sources/svg/campfire/tx-icon-anonymize-failed.svg diff --git a/assets/svg/tx-icon-anonymize-pending.svg b/asset_sources/svg/campfire/tx-icon-anonymize-pending.svg similarity index 100% rename from assets/svg/tx-icon-anonymize-pending.svg rename to asset_sources/svg/campfire/tx-icon-anonymize-pending.svg diff --git a/assets/svg/tx-icon-anonymize.svg b/asset_sources/svg/campfire/tx-icon-anonymize.svg similarity index 100% rename from assets/svg/tx-icon-anonymize.svg rename to asset_sources/svg/campfire/tx-icon-anonymize.svg diff --git a/assets/svg/unclaimed.svg b/asset_sources/svg/campfire/unclaimed.svg similarity index 100% rename from assets/svg/unclaimed.svg rename to asset_sources/svg/campfire/unclaimed.svg diff --git a/assets/svg/up-from-line.svg b/asset_sources/svg/campfire/up-from-line.svg similarity index 100% rename from assets/svg/up-from-line.svg rename to asset_sources/svg/campfire/up-from-line.svg diff --git a/assets/svg/user-minus.svg b/asset_sources/svg/campfire/user-minus.svg similarity index 100% rename from assets/svg/user-minus.svg rename to asset_sources/svg/campfire/user-minus.svg diff --git a/assets/svg/user-plus.svg b/asset_sources/svg/campfire/user-plus.svg similarity index 100% rename from assets/svg/user-plus.svg rename to asset_sources/svg/campfire/user-plus.svg diff --git a/assets/svg/user.svg b/asset_sources/svg/campfire/user.svg similarity index 100% rename from assets/svg/user.svg rename to asset_sources/svg/campfire/user.svg diff --git a/assets/svg/wallet-desktop.svg b/asset_sources/svg/campfire/wallet-desktop.svg similarity index 100% rename from assets/svg/wallet-desktop.svg rename to asset_sources/svg/campfire/wallet-desktop.svg diff --git a/assets/svg/wallet-fa.svg b/asset_sources/svg/campfire/wallet-fa.svg similarity index 100% rename from assets/svg/wallet-fa.svg rename to asset_sources/svg/campfire/wallet-fa.svg diff --git a/assets/svg/wallet-settings.svg b/asset_sources/svg/campfire/wallet-settings.svg similarity index 100% rename from assets/svg/wallet-settings.svg rename to asset_sources/svg/campfire/wallet-settings.svg diff --git a/assets/svg/whirlpool.svg b/asset_sources/svg/campfire/whirlpool.svg similarity index 100% rename from assets/svg/whirlpool.svg rename to asset_sources/svg/campfire/whirlpool.svg diff --git a/assets/svg/x-circle.svg b/asset_sources/svg/campfire/x-circle.svg similarity index 100% rename from assets/svg/x-circle.svg rename to asset_sources/svg/campfire/x-circle.svg diff --git a/assets/svg/x-fat.svg b/asset_sources/svg/campfire/x-fat.svg similarity index 100% rename from assets/svg/x-fat.svg rename to asset_sources/svg/campfire/x-fat.svg diff --git a/assets/svg/x.svg b/asset_sources/svg/campfire/x.svg similarity index 100% rename from assets/svg/x.svg rename to asset_sources/svg/campfire/x.svg diff --git a/asset_sources/svg/stack_duo/Button.svg b/asset_sources/svg/stack_duo/Button.svg new file mode 100644 index 000000000..37e0d359b --- /dev/null +++ b/asset_sources/svg/stack_duo/Button.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/asset_sources/svg/stack_duo/Ellipse-42.svg b/asset_sources/svg/stack_duo/Ellipse-42.svg new file mode 100644 index 000000000..0ccc38308 --- /dev/null +++ b/asset_sources/svg/stack_duo/Ellipse-42.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/Ellipse-43.svg b/asset_sources/svg/stack_duo/Ellipse-43.svg new file mode 100644 index 000000000..9c5b79da7 --- /dev/null +++ b/asset_sources/svg/stack_duo/Ellipse-43.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/Polygon.svg b/asset_sources/svg/stack_duo/Polygon.svg new file mode 100644 index 000000000..b79ac9bc3 --- /dev/null +++ b/asset_sources/svg/stack_duo/Polygon.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/about-desktop.svg b/asset_sources/svg/stack_duo/about-desktop.svg new file mode 100644 index 000000000..a80067d9c --- /dev/null +++ b/asset_sources/svg/stack_duo/about-desktop.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/add-backup.svg b/asset_sources/svg/stack_duo/add-backup.svg new file mode 100644 index 000000000..7c6615e9c --- /dev/null +++ b/asset_sources/svg/stack_duo/add-backup.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/address-book-desktop.svg b/asset_sources/svg/stack_duo/address-book-desktop.svg new file mode 100644 index 000000000..fb85e3e11 --- /dev/null +++ b/asset_sources/svg/stack_duo/address-book-desktop.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/address-book.svg b/asset_sources/svg/stack_duo/address-book.svg new file mode 100644 index 000000000..b35817889 --- /dev/null +++ b/asset_sources/svg/stack_duo/address-book.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/address-book2.svg b/asset_sources/svg/stack_duo/address-book2.svg new file mode 100644 index 000000000..18de31c55 --- /dev/null +++ b/asset_sources/svg/stack_duo/address-book2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/alert-circle.svg b/asset_sources/svg/stack_duo/alert-circle.svg new file mode 100644 index 000000000..59f035bc4 --- /dev/null +++ b/asset_sources/svg/stack_duo/alert-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/alert-circle2.svg b/asset_sources/svg/stack_duo/alert-circle2.svg new file mode 100644 index 000000000..943cdc978 --- /dev/null +++ b/asset_sources/svg/stack_duo/alert-circle2.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/anonymize.svg b/asset_sources/svg/stack_duo/anonymize.svg new file mode 100644 index 000000000..676501302 --- /dev/null +++ b/asset_sources/svg/stack_duo/anonymize.svg @@ -0,0 +1,83 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/arrow-down-left.svg b/asset_sources/svg/stack_duo/arrow-down-left.svg new file mode 100644 index 000000000..5e725e700 --- /dev/null +++ b/asset_sources/svg/stack_duo/arrow-down-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/arrow-down.svg b/asset_sources/svg/stack_duo/arrow-down.svg new file mode 100644 index 000000000..c96e43ce3 --- /dev/null +++ b/asset_sources/svg/stack_duo/arrow-down.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/svg/arrow-left-fa.svg b/asset_sources/svg/stack_duo/arrow-left-fa.svg similarity index 100% rename from assets/svg/arrow-left-fa.svg rename to asset_sources/svg/stack_duo/arrow-left-fa.svg diff --git a/asset_sources/svg/stack_duo/arrow-right.svg b/asset_sources/svg/stack_duo/arrow-right.svg new file mode 100644 index 000000000..abf939da9 --- /dev/null +++ b/asset_sources/svg/stack_duo/arrow-right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/arrow-rotate.svg b/asset_sources/svg/stack_duo/arrow-rotate.svg new file mode 100644 index 000000000..2ee129b03 --- /dev/null +++ b/asset_sources/svg/stack_duo/arrow-rotate.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/arrow-rotate2.svg b/asset_sources/svg/stack_duo/arrow-rotate2.svg new file mode 100644 index 000000000..59a4866d3 --- /dev/null +++ b/asset_sources/svg/stack_duo/arrow-rotate2.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/arrow-up-right.svg b/asset_sources/svg/stack_duo/arrow-up-right.svg new file mode 100644 index 000000000..630c3c4a2 --- /dev/null +++ b/asset_sources/svg/stack_duo/arrow-up-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/auto-backup.svg b/asset_sources/svg/stack_duo/auto-backup.svg new file mode 100644 index 000000000..f87d027b4 --- /dev/null +++ b/asset_sources/svg/stack_duo/auto-backup.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/bars.svg b/asset_sources/svg/stack_duo/bars.svg new file mode 100644 index 000000000..8af09a5ff --- /dev/null +++ b/asset_sources/svg/stack_duo/bars.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/svg/bell.svg b/asset_sources/svg/stack_duo/bell.svg similarity index 100% rename from assets/svg/bell.svg rename to asset_sources/svg/stack_duo/bell.svg diff --git a/asset_sources/svg/stack_duo/box-auto.svg b/asset_sources/svg/stack_duo/box-auto.svg new file mode 100644 index 000000000..1dd771fb1 --- /dev/null +++ b/asset_sources/svg/stack_duo/box-auto.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/buy/Simplex-Nuvei-Logo-light.svg b/asset_sources/svg/stack_duo/buy/Simplex-Nuvei-Logo-light.svg new file mode 100644 index 000000000..367ce0de4 --- /dev/null +++ b/asset_sources/svg/stack_duo/buy/Simplex-Nuvei-Logo-light.svg @@ -0,0 +1,65 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/buy/Simplex-Nuvei-Logo.svg b/asset_sources/svg/stack_duo/buy/Simplex-Nuvei-Logo.svg new file mode 100644 index 000000000..736f6fd45 --- /dev/null +++ b/asset_sources/svg/stack_duo/buy/Simplex-Nuvei-Logo.svg @@ -0,0 +1,65 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/calendar-days.svg b/asset_sources/svg/stack_duo/calendar-days.svg new file mode 100644 index 000000000..3d1717c23 --- /dev/null +++ b/asset_sources/svg/stack_duo/calendar-days.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/cashfusion-icon.svg b/asset_sources/svg/stack_duo/cashfusion-icon.svg new file mode 100644 index 000000000..e1d010ada --- /dev/null +++ b/asset_sources/svg/stack_duo/cashfusion-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/cc.svg b/asset_sources/svg/stack_duo/cc.svg new file mode 100644 index 000000000..646ae64ce --- /dev/null +++ b/asset_sources/svg/stack_duo/cc.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/check.svg b/asset_sources/svg/stack_duo/check.svg new file mode 100644 index 000000000..1acb3cd6a --- /dev/null +++ b/asset_sources/svg/stack_duo/check.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/chevron-down.svg b/asset_sources/svg/stack_duo/chevron-down.svg new file mode 100644 index 000000000..74f2e9727 --- /dev/null +++ b/asset_sources/svg/stack_duo/chevron-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/chevron-right.svg b/asset_sources/svg/stack_duo/chevron-right.svg new file mode 100644 index 000000000..c8efcde44 --- /dev/null +++ b/asset_sources/svg/stack_duo/chevron-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/chevron-up.svg b/asset_sources/svg/stack_duo/chevron-up.svg new file mode 100644 index 000000000..630f8df69 --- /dev/null +++ b/asset_sources/svg/stack_duo/chevron-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/circle-arrow-up-right2.svg b/asset_sources/svg/stack_duo/circle-arrow-up-right2.svg new file mode 100644 index 000000000..3f15b1b02 --- /dev/null +++ b/asset_sources/svg/stack_duo/circle-arrow-up-right2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/circle-check.svg b/asset_sources/svg/stack_duo/circle-check.svg new file mode 100644 index 000000000..9bf037334 --- /dev/null +++ b/asset_sources/svg/stack_duo/circle-check.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/circle-plus-filled.svg b/asset_sources/svg/stack_duo/circle-plus-filled.svg new file mode 100644 index 000000000..3e3244adb --- /dev/null +++ b/asset_sources/svg/stack_duo/circle-plus-filled.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/circle-plus.svg b/asset_sources/svg/stack_duo/circle-plus.svg new file mode 100644 index 000000000..a09b12711 --- /dev/null +++ b/asset_sources/svg/stack_duo/circle-plus.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/circle-question.svg b/asset_sources/svg/stack_duo/circle-question.svg new file mode 100644 index 000000000..f5394dd6a --- /dev/null +++ b/asset_sources/svg/stack_duo/circle-question.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/clipboard.svg b/asset_sources/svg/stack_duo/clipboard.svg new file mode 100644 index 000000000..df78b3127 --- /dev/null +++ b/asset_sources/svg/stack_duo/clipboard.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/coin_control/frozen.svg b/asset_sources/svg/stack_duo/coin_control/frozen.svg new file mode 100644 index 000000000..3fe52d57e --- /dev/null +++ b/asset_sources/svg/stack_duo/coin_control/frozen.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/coin_control/gamepad.svg b/asset_sources/svg/stack_duo/coin_control/gamepad.svg new file mode 100644 index 000000000..6fe0b6c30 --- /dev/null +++ b/asset_sources/svg/stack_duo/coin_control/gamepad.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/coin_control/selected.svg b/asset_sources/svg/stack_duo/coin_control/selected.svg new file mode 100644 index 000000000..454ad8af6 --- /dev/null +++ b/asset_sources/svg/stack_duo/coin_control/selected.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/coin_control/unfrozen.svg b/asset_sources/svg/stack_duo/coin_control/unfrozen.svg new file mode 100644 index 000000000..d3d4da221 --- /dev/null +++ b/asset_sources/svg/stack_duo/coin_control/unfrozen.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/configuration.svg b/asset_sources/svg/stack_duo/configuration.svg new file mode 100644 index 000000000..516bbf320 --- /dev/null +++ b/asset_sources/svg/stack_duo/configuration.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/connected-button.svg b/asset_sources/svg/stack_duo/connected-button.svg new file mode 100644 index 000000000..96a9970c0 --- /dev/null +++ b/asset_sources/svg/stack_duo/connected-button.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/connecting-button.svg b/asset_sources/svg/stack_duo/connecting-button.svg new file mode 100644 index 000000000..1bc6e953b --- /dev/null +++ b/asset_sources/svg/stack_duo/connecting-button.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/copy-fa.svg b/asset_sources/svg/stack_duo/copy-fa.svg new file mode 100644 index 000000000..9e9d34806 --- /dev/null +++ b/asset_sources/svg/stack_duo/copy-fa.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/dark-theme.svg b/asset_sources/svg/stack_duo/dark-theme.svg new file mode 100644 index 000000000..47b5e2d5e --- /dev/null +++ b/asset_sources/svg/stack_duo/dark-theme.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/delete.svg b/asset_sources/svg/stack_duo/delete.svg new file mode 100644 index 000000000..68330fa48 --- /dev/null +++ b/asset_sources/svg/stack_duo/delete.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/asset_sources/svg/stack_duo/dice-alt.svg b/asset_sources/svg/stack_duo/dice-alt.svg new file mode 100644 index 000000000..8b7efdec1 --- /dev/null +++ b/asset_sources/svg/stack_duo/dice-alt.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/disconnected-button.svg b/asset_sources/svg/stack_duo/disconnected-button.svg new file mode 100644 index 000000000..03a8067d7 --- /dev/null +++ b/asset_sources/svg/stack_duo/disconnected-button.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/dollar-sign-circle.svg b/asset_sources/svg/stack_duo/dollar-sign-circle.svg new file mode 100644 index 000000000..03aacffea --- /dev/null +++ b/asset_sources/svg/stack_duo/dollar-sign-circle.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/dollar-sign.svg b/asset_sources/svg/stack_duo/dollar-sign.svg new file mode 100644 index 000000000..bff9d6ede --- /dev/null +++ b/asset_sources/svg/stack_duo/dollar-sign.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/drd-icon.svg b/asset_sources/svg/stack_duo/drd-icon.svg new file mode 100644 index 000000000..7f65c820d --- /dev/null +++ b/asset_sources/svg/stack_duo/drd-icon.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/ellipsis-vertical1.svg b/asset_sources/svg/stack_duo/ellipsis-vertical1.svg new file mode 100644 index 000000000..8f82c0959 --- /dev/null +++ b/asset_sources/svg/stack_duo/ellipsis-vertical1.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/enabled-button.svg b/asset_sources/svg/stack_duo/enabled-button.svg new file mode 100644 index 000000000..a26359e81 --- /dev/null +++ b/asset_sources/svg/stack_duo/enabled-button.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/envelope.svg b/asset_sources/svg/stack_duo/envelope.svg new file mode 100644 index 000000000..7cbc27195 --- /dev/null +++ b/asset_sources/svg/stack_duo/envelope.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_duo/exchange-3.svg b/asset_sources/svg/stack_duo/exchange-3.svg new file mode 100644 index 000000000..4a3c92524 --- /dev/null +++ b/asset_sources/svg/stack_duo/exchange-3.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/exchange-desktop.svg b/asset_sources/svg/stack_duo/exchange-desktop.svg new file mode 100644 index 000000000..8eacfa84e --- /dev/null +++ b/asset_sources/svg/stack_duo/exchange-desktop.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/exchange_icons/change_now_logo_1.svg b/asset_sources/svg/stack_duo/exchange_icons/change_now_logo_1.svg new file mode 100644 index 000000000..f901f3562 --- /dev/null +++ b/asset_sources/svg/stack_duo/exchange_icons/change_now_logo_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_duo/exchange_icons/mb_blue.svg b/asset_sources/svg/stack_duo/exchange_icons/mb_blue.svg new file mode 100644 index 000000000..d9fea3781 --- /dev/null +++ b/asset_sources/svg/stack_duo/exchange_icons/mb_blue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_duo/exchange_icons/mb_green.svg b/asset_sources/svg/stack_duo/exchange_icons/mb_green.svg new file mode 100644 index 000000000..d5d10ca7e --- /dev/null +++ b/asset_sources/svg/stack_duo/exchange_icons/mb_green.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_duo/exchange_icons/simpleswap-icon.svg b/asset_sources/svg/stack_duo/exchange_icons/simpleswap-icon.svg new file mode 100644 index 000000000..b3986ef2f --- /dev/null +++ b/asset_sources/svg/stack_duo/exchange_icons/simpleswap-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/asset_sources/svg/stack_duo/exchange_icons/trocador.svg b/asset_sources/svg/stack_duo/exchange_icons/trocador.svg new file mode 100644 index 000000000..b3d9171ff --- /dev/null +++ b/asset_sources/svg/stack_duo/exchange_icons/trocador.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/exit-desktop.svg b/asset_sources/svg/stack_duo/exit-desktop.svg new file mode 100644 index 000000000..abba264cd --- /dev/null +++ b/asset_sources/svg/stack_duo/exit-desktop.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/eye-slash.svg b/asset_sources/svg/stack_duo/eye-slash.svg new file mode 100644 index 000000000..62a020289 --- /dev/null +++ b/asset_sources/svg/stack_duo/eye-slash.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/eye.svg b/asset_sources/svg/stack_duo/eye.svg new file mode 100644 index 000000000..cf904a156 --- /dev/null +++ b/asset_sources/svg/stack_duo/eye.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/faceid.svg b/asset_sources/svg/stack_duo/faceid.svg new file mode 100644 index 000000000..52ea3712d --- /dev/null +++ b/asset_sources/svg/stack_duo/faceid.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/file-upload.svg b/asset_sources/svg/stack_duo/file-upload.svg new file mode 100644 index 000000000..0e3576cbe --- /dev/null +++ b/asset_sources/svg/stack_duo/file-upload.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/file.svg b/asset_sources/svg/stack_duo/file.svg new file mode 100644 index 000000000..afe1d662e --- /dev/null +++ b/asset_sources/svg/stack_duo/file.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/filter.svg b/asset_sources/svg/stack_duo/filter.svg new file mode 100644 index 000000000..c689a2090 --- /dev/null +++ b/asset_sources/svg/stack_duo/filter.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/asset_sources/svg/stack_duo/fingerprint.svg b/asset_sources/svg/stack_duo/fingerprint.svg new file mode 100644 index 000000000..5919bdd1a --- /dev/null +++ b/asset_sources/svg/stack_duo/fingerprint.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/asset_sources/svg/stack_duo/folder-down.svg b/asset_sources/svg/stack_duo/folder-down.svg new file mode 100644 index 000000000..4527ce20d --- /dev/null +++ b/asset_sources/svg/stack_duo/folder-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/folder.svg b/asset_sources/svg/stack_duo/folder.svg new file mode 100644 index 000000000..4719338f8 --- /dev/null +++ b/asset_sources/svg/stack_duo/folder.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/framed-address-book.svg b/asset_sources/svg/stack_duo/framed-address-book.svg new file mode 100644 index 000000000..157117097 --- /dev/null +++ b/asset_sources/svg/stack_duo/framed-address-book.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/framed-gear.svg b/asset_sources/svg/stack_duo/framed-gear.svg new file mode 100644 index 000000000..749d9803d --- /dev/null +++ b/asset_sources/svg/stack_duo/framed-gear.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/fusing.svg b/asset_sources/svg/stack_duo/fusing.svg new file mode 100644 index 000000000..1b04f882a --- /dev/null +++ b/asset_sources/svg/stack_duo/fusing.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/gear-3.svg b/asset_sources/svg/stack_duo/gear-3.svg new file mode 100644 index 000000000..83d24bc72 --- /dev/null +++ b/asset_sources/svg/stack_duo/gear-3.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/svg/gear.svg b/asset_sources/svg/stack_duo/gear.svg similarity index 100% rename from assets/svg/gear.svg rename to asset_sources/svg/stack_duo/gear.svg diff --git a/asset_sources/svg/stack_duo/info-circle.svg b/asset_sources/svg/stack_duo/info-circle.svg new file mode 100644 index 000000000..918291dab --- /dev/null +++ b/asset_sources/svg/stack_duo/info-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/key.svg b/asset_sources/svg/stack_duo/key.svg new file mode 100644 index 000000000..101b8e25e --- /dev/null +++ b/asset_sources/svg/stack_duo/key.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/keys.svg b/asset_sources/svg/stack_duo/keys.svg new file mode 100644 index 000000000..cf86daea5 --- /dev/null +++ b/asset_sources/svg/stack_duo/keys.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/language-circle.svg b/asset_sources/svg/stack_duo/language-circle.svg new file mode 100644 index 000000000..700ffede4 --- /dev/null +++ b/asset_sources/svg/stack_duo/language-circle.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/language2.svg b/asset_sources/svg/stack_duo/language2.svg new file mode 100644 index 000000000..df83e02ab --- /dev/null +++ b/asset_sources/svg/stack_duo/language2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/light-mode.svg b/asset_sources/svg/stack_duo/light-mode.svg new file mode 100644 index 000000000..4ff9e2696 --- /dev/null +++ b/asset_sources/svg/stack_duo/light-mode.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/list-ul.svg b/asset_sources/svg/stack_duo/list-ul.svg new file mode 100644 index 000000000..f5cef4eae --- /dev/null +++ b/asset_sources/svg/stack_duo/list-ul.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/loader.svg b/asset_sources/svg/stack_duo/loader.svg new file mode 100644 index 000000000..57dca5679 --- /dev/null +++ b/asset_sources/svg/stack_duo/loader.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/lock-circle.svg b/asset_sources/svg/stack_duo/lock-circle.svg new file mode 100644 index 000000000..f8fd71831 --- /dev/null +++ b/asset_sources/svg/stack_duo/lock-circle.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/lock-keyhole.svg b/asset_sources/svg/stack_duo/lock-keyhole.svg new file mode 100644 index 000000000..6f5523817 --- /dev/null +++ b/asset_sources/svg/stack_duo/lock-keyhole.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/lock-open.svg b/asset_sources/svg/stack_duo/lock-open.svg new file mode 100644 index 000000000..f2b00f341 --- /dev/null +++ b/asset_sources/svg/stack_duo/lock-open.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/lock.svg b/asset_sources/svg/stack_duo/lock.svg new file mode 100644 index 000000000..45e882531 --- /dev/null +++ b/asset_sources/svg/stack_duo/lock.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/magnifying-glass.svg b/asset_sources/svg/stack_duo/magnifying-glass.svg new file mode 100644 index 000000000..e56be51d1 --- /dev/null +++ b/asset_sources/svg/stack_duo/magnifying-glass.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/message-question-1.svg b/asset_sources/svg/stack_duo/message-question-1.svg new file mode 100644 index 000000000..17e066651 --- /dev/null +++ b/asset_sources/svg/stack_duo/message-question-1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/message-question.svg b/asset_sources/svg/stack_duo/message-question.svg new file mode 100644 index 000000000..86cb36500 --- /dev/null +++ b/asset_sources/svg/stack_duo/message-question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_duo/minimize.svg b/asset_sources/svg/stack_duo/minimize.svg new file mode 100644 index 000000000..94292fed4 --- /dev/null +++ b/asset_sources/svg/stack_duo/minimize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/monkey.svg b/asset_sources/svg/stack_duo/monkey.svg new file mode 100644 index 000000000..565ac4fdf --- /dev/null +++ b/asset_sources/svg/stack_duo/monkey.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/network-wired-2.svg b/asset_sources/svg/stack_duo/network-wired-2.svg new file mode 100644 index 000000000..bbbfa056f --- /dev/null +++ b/asset_sources/svg/stack_duo/network-wired-2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/network-wired.svg b/asset_sources/svg/stack_duo/network-wired.svg new file mode 100644 index 000000000..6ecc0bbef --- /dev/null +++ b/asset_sources/svg/stack_duo/network-wired.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/node-alt.svg b/asset_sources/svg/stack_duo/node-alt.svg new file mode 100644 index 000000000..b7a9367c1 --- /dev/null +++ b/asset_sources/svg/stack_duo/node-alt.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/node-circle.svg b/asset_sources/svg/stack_duo/node-circle.svg new file mode 100644 index 000000000..bd9353a2b --- /dev/null +++ b/asset_sources/svg/stack_duo/node-circle.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/ordinal.svg b/asset_sources/svg/stack_duo/ordinal.svg new file mode 100644 index 000000000..7ac863a84 --- /dev/null +++ b/asset_sources/svg/stack_duo/ordinal.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/peers.svg b/asset_sources/svg/stack_duo/peers.svg new file mode 100644 index 000000000..26bc3a2a0 --- /dev/null +++ b/asset_sources/svg/stack_duo/peers.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/pen-solid-fa.svg b/asset_sources/svg/stack_duo/pen-solid-fa.svg new file mode 100644 index 000000000..4fa4fd6b4 --- /dev/null +++ b/asset_sources/svg/stack_duo/pen-solid-fa.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/pending.svg b/asset_sources/svg/stack_duo/pending.svg new file mode 100644 index 000000000..88c43013a --- /dev/null +++ b/asset_sources/svg/stack_duo/pending.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/plus-circle.svg b/asset_sources/svg/stack_duo/plus-circle.svg new file mode 100644 index 000000000..e673b9b0e --- /dev/null +++ b/asset_sources/svg/stack_duo/plus-circle.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/plus.svg b/asset_sources/svg/stack_duo/plus.svg new file mode 100644 index 000000000..962152aa1 --- /dev/null +++ b/asset_sources/svg/stack_duo/plus.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/qrcode1.svg b/asset_sources/svg/stack_duo/qrcode1.svg new file mode 100644 index 000000000..f77d8d1c8 --- /dev/null +++ b/asset_sources/svg/stack_duo/qrcode1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/restore-backup.svg b/asset_sources/svg/stack_duo/restore-backup.svg new file mode 100644 index 000000000..3f4f6adfd --- /dev/null +++ b/asset_sources/svg/stack_duo/restore-backup.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/robot-head.svg b/asset_sources/svg/stack_duo/robot-head.svg new file mode 100644 index 000000000..b6810c227 --- /dev/null +++ b/asset_sources/svg/stack_duo/robot-head.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/rotate-circle.svg b/asset_sources/svg/stack_duo/rotate-circle.svg new file mode 100644 index 000000000..1940da5f5 --- /dev/null +++ b/asset_sources/svg/stack_duo/rotate-circle.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/send.svg b/asset_sources/svg/stack_duo/send.svg new file mode 100644 index 000000000..61fe2a206 --- /dev/null +++ b/asset_sources/svg/stack_duo/send.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/asset_sources/svg/stack_duo/share-2.svg b/asset_sources/svg/stack_duo/share-2.svg new file mode 100644 index 000000000..d002d2bff --- /dev/null +++ b/asset_sources/svg/stack_duo/share-2.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/signal-problem-alt.svg b/asset_sources/svg/stack_duo/signal-problem-alt.svg new file mode 100644 index 000000000..a6fa3d365 --- /dev/null +++ b/asset_sources/svg/stack_duo/signal-problem-alt.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/signal-stream.svg b/asset_sources/svg/stack_duo/signal-stream.svg new file mode 100644 index 000000000..521725390 --- /dev/null +++ b/asset_sources/svg/stack_duo/signal-stream.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/signal-sync-alt.svg b/asset_sources/svg/stack_duo/signal-sync-alt.svg new file mode 100644 index 000000000..82e15a718 --- /dev/null +++ b/asset_sources/svg/stack_duo/signal-sync-alt.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/sliders-solid.svg b/asset_sources/svg/stack_duo/sliders-solid.svg new file mode 100644 index 000000000..c726db908 --- /dev/null +++ b/asset_sources/svg/stack_duo/sliders-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_duo/socials/discord.svg b/asset_sources/svg/stack_duo/socials/discord.svg new file mode 100644 index 000000000..4d6aff6ed --- /dev/null +++ b/asset_sources/svg/stack_duo/socials/discord.svg @@ -0,0 +1,15 @@ + + + + + diff --git a/asset_sources/svg/stack_duo/socials/reddit-alien-brands.svg b/asset_sources/svg/stack_duo/socials/reddit-alien-brands.svg new file mode 100644 index 000000000..e11308f5c --- /dev/null +++ b/asset_sources/svg/stack_duo/socials/reddit-alien-brands.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_duo/socials/telegram-brands.svg b/asset_sources/svg/stack_duo/socials/telegram-brands.svg new file mode 100644 index 000000000..61d09ee08 --- /dev/null +++ b/asset_sources/svg/stack_duo/socials/telegram-brands.svg @@ -0,0 +1,10 @@ + + + + + diff --git a/asset_sources/svg/stack_duo/socials/twitter-brands.svg b/asset_sources/svg/stack_duo/socials/twitter-brands.svg new file mode 100644 index 000000000..96464c99f --- /dev/null +++ b/asset_sources/svg/stack_duo/socials/twitter-brands.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_duo/spark.svg b/asset_sources/svg/stack_duo/spark.svg new file mode 100644 index 000000000..6f7db1b74 --- /dev/null +++ b/asset_sources/svg/stack_duo/spark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_duo/star.svg b/asset_sources/svg/stack_duo/star.svg new file mode 100644 index 000000000..2fe3d756f --- /dev/null +++ b/asset_sources/svg/stack_duo/star.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/sun-bright2.svg b/asset_sources/svg/stack_duo/sun-bright2.svg new file mode 100644 index 000000000..6a1f7fb62 --- /dev/null +++ b/asset_sources/svg/stack_duo/sun-bright2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/sun-circle.svg b/asset_sources/svg/stack_duo/sun-circle.svg new file mode 100644 index 000000000..eba7d031d --- /dev/null +++ b/asset_sources/svg/stack_duo/sun-circle.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/swap.svg b/asset_sources/svg/stack_duo/swap.svg new file mode 100644 index 000000000..57b4216be --- /dev/null +++ b/asset_sources/svg/stack_duo/swap.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/swap2.svg b/asset_sources/svg/stack_duo/swap2.svg new file mode 100644 index 000000000..1c9ce8191 --- /dev/null +++ b/asset_sources/svg/stack_duo/swap2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/tokens.svg b/asset_sources/svg/stack_duo/tokens.svg new file mode 100644 index 000000000..be52b614c --- /dev/null +++ b/asset_sources/svg/stack_duo/tokens.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/tor-circle.svg b/asset_sources/svg/stack_duo/tor-circle.svg new file mode 100644 index 000000000..8268a00f6 --- /dev/null +++ b/asset_sources/svg/stack_duo/tor-circle.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/asset_sources/svg/stack_duo/tor-synced.svg b/asset_sources/svg/stack_duo/tor-synced.svg new file mode 100644 index 000000000..20cff1f37 --- /dev/null +++ b/asset_sources/svg/stack_duo/tor-synced.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/tor-syncing.svg b/asset_sources/svg/stack_duo/tor-syncing.svg new file mode 100644 index 000000000..b51803c70 --- /dev/null +++ b/asset_sources/svg/stack_duo/tor-syncing.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/tor.svg b/asset_sources/svg/stack_duo/tor.svg new file mode 100644 index 000000000..a893c0907 --- /dev/null +++ b/asset_sources/svg/stack_duo/tor.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/trash.svg b/asset_sources/svg/stack_duo/trash.svg new file mode 100644 index 000000000..50aef9fdd --- /dev/null +++ b/asset_sources/svg/stack_duo/trash.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/trocador_rating_a.svg b/asset_sources/svg/stack_duo/trocador_rating_a.svg new file mode 100644 index 000000000..1e75af73b --- /dev/null +++ b/asset_sources/svg/stack_duo/trocador_rating_a.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/trocador_rating_b.svg b/asset_sources/svg/stack_duo/trocador_rating_b.svg new file mode 100644 index 000000000..5d678305a --- /dev/null +++ b/asset_sources/svg/stack_duo/trocador_rating_b.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/trocador_rating_c.svg b/asset_sources/svg/stack_duo/trocador_rating_c.svg new file mode 100644 index 000000000..87ecf6b24 --- /dev/null +++ b/asset_sources/svg/stack_duo/trocador_rating_c.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/trocador_rating_d.svg b/asset_sources/svg/stack_duo/trocador_rating_d.svg new file mode 100644 index 000000000..8973c7e65 --- /dev/null +++ b/asset_sources/svg/stack_duo/trocador_rating_d.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/tx-cashfusion.svg b/asset_sources/svg/stack_duo/tx-cashfusion.svg new file mode 100644 index 000000000..d9055b6c6 --- /dev/null +++ b/asset_sources/svg/stack_duo/tx-cashfusion.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/tx-icon-anonymize-failed.svg b/asset_sources/svg/stack_duo/tx-icon-anonymize-failed.svg new file mode 100644 index 000000000..4a225f36e --- /dev/null +++ b/asset_sources/svg/stack_duo/tx-icon-anonymize-failed.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/tx-icon-anonymize-pending.svg b/asset_sources/svg/stack_duo/tx-icon-anonymize-pending.svg new file mode 100644 index 000000000..48125ec85 --- /dev/null +++ b/asset_sources/svg/stack_duo/tx-icon-anonymize-pending.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/tx-icon-anonymize.svg b/asset_sources/svg/stack_duo/tx-icon-anonymize.svg new file mode 100644 index 000000000..8f8acd695 --- /dev/null +++ b/asset_sources/svg/stack_duo/tx-icon-anonymize.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/unclaimed.svg b/asset_sources/svg/stack_duo/unclaimed.svg new file mode 100644 index 000000000..a6ff2213d --- /dev/null +++ b/asset_sources/svg/stack_duo/unclaimed.svg @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_duo/up-from-line.svg b/asset_sources/svg/stack_duo/up-from-line.svg new file mode 100644 index 000000000..4e1c8f6bf --- /dev/null +++ b/asset_sources/svg/stack_duo/up-from-line.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/user-minus.svg b/asset_sources/svg/stack_duo/user-minus.svg new file mode 100644 index 000000000..a454f5d00 --- /dev/null +++ b/asset_sources/svg/stack_duo/user-minus.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/user-plus.svg b/asset_sources/svg/stack_duo/user-plus.svg new file mode 100644 index 000000000..10795f73c --- /dev/null +++ b/asset_sources/svg/stack_duo/user-plus.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/user.svg b/asset_sources/svg/stack_duo/user.svg new file mode 100644 index 000000000..a9ff9971d --- /dev/null +++ b/asset_sources/svg/stack_duo/user.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/wallet-desktop.svg b/asset_sources/svg/stack_duo/wallet-desktop.svg new file mode 100644 index 000000000..0b0acdae3 --- /dev/null +++ b/asset_sources/svg/stack_duo/wallet-desktop.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/wallet-fa.svg b/asset_sources/svg/stack_duo/wallet-fa.svg new file mode 100644 index 000000000..a91170596 --- /dev/null +++ b/asset_sources/svg/stack_duo/wallet-fa.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/wallet-settings.svg b/asset_sources/svg/stack_duo/wallet-settings.svg new file mode 100644 index 000000000..7815f90e9 --- /dev/null +++ b/asset_sources/svg/stack_duo/wallet-settings.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/whirlpool.svg b/asset_sources/svg/stack_duo/whirlpool.svg new file mode 100644 index 000000000..cf075308f --- /dev/null +++ b/asset_sources/svg/stack_duo/whirlpool.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/x-circle.svg b/asset_sources/svg/stack_duo/x-circle.svg new file mode 100644 index 000000000..d21c6d8f7 --- /dev/null +++ b/asset_sources/svg/stack_duo/x-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_duo/x-fat.svg b/asset_sources/svg/stack_duo/x-fat.svg new file mode 100644 index 000000000..171cd34f7 --- /dev/null +++ b/asset_sources/svg/stack_duo/x-fat.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_duo/x.svg b/asset_sources/svg/stack_duo/x.svg new file mode 100644 index 000000000..416416b45 --- /dev/null +++ b/asset_sources/svg/stack_duo/x.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/Button.svg b/asset_sources/svg/stack_wallet/Button.svg new file mode 100644 index 000000000..37e0d359b --- /dev/null +++ b/asset_sources/svg/stack_wallet/Button.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/asset_sources/svg/stack_wallet/Ellipse-42.svg b/asset_sources/svg/stack_wallet/Ellipse-42.svg new file mode 100644 index 000000000..0ccc38308 --- /dev/null +++ b/asset_sources/svg/stack_wallet/Ellipse-42.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/Ellipse-43.svg b/asset_sources/svg/stack_wallet/Ellipse-43.svg new file mode 100644 index 000000000..9c5b79da7 --- /dev/null +++ b/asset_sources/svg/stack_wallet/Ellipse-43.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/Polygon.svg b/asset_sources/svg/stack_wallet/Polygon.svg new file mode 100644 index 000000000..b79ac9bc3 --- /dev/null +++ b/asset_sources/svg/stack_wallet/Polygon.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/about-desktop.svg b/asset_sources/svg/stack_wallet/about-desktop.svg new file mode 100644 index 000000000..a80067d9c --- /dev/null +++ b/asset_sources/svg/stack_wallet/about-desktop.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/add-backup.svg b/asset_sources/svg/stack_wallet/add-backup.svg new file mode 100644 index 000000000..7c6615e9c --- /dev/null +++ b/asset_sources/svg/stack_wallet/add-backup.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/address-book-desktop.svg b/asset_sources/svg/stack_wallet/address-book-desktop.svg new file mode 100644 index 000000000..fb85e3e11 --- /dev/null +++ b/asset_sources/svg/stack_wallet/address-book-desktop.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/address-book.svg b/asset_sources/svg/stack_wallet/address-book.svg new file mode 100644 index 000000000..b35817889 --- /dev/null +++ b/asset_sources/svg/stack_wallet/address-book.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/address-book2.svg b/asset_sources/svg/stack_wallet/address-book2.svg new file mode 100644 index 000000000..18de31c55 --- /dev/null +++ b/asset_sources/svg/stack_wallet/address-book2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/alert-circle.svg b/asset_sources/svg/stack_wallet/alert-circle.svg new file mode 100644 index 000000000..59f035bc4 --- /dev/null +++ b/asset_sources/svg/stack_wallet/alert-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/alert-circle2.svg b/asset_sources/svg/stack_wallet/alert-circle2.svg new file mode 100644 index 000000000..943cdc978 --- /dev/null +++ b/asset_sources/svg/stack_wallet/alert-circle2.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/anonymize.svg b/asset_sources/svg/stack_wallet/anonymize.svg new file mode 100644 index 000000000..676501302 --- /dev/null +++ b/asset_sources/svg/stack_wallet/anonymize.svg @@ -0,0 +1,83 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/arrow-down-left.svg b/asset_sources/svg/stack_wallet/arrow-down-left.svg new file mode 100644 index 000000000..5e725e700 --- /dev/null +++ b/asset_sources/svg/stack_wallet/arrow-down-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/arrow-down.svg b/asset_sources/svg/stack_wallet/arrow-down.svg new file mode 100644 index 000000000..c96e43ce3 --- /dev/null +++ b/asset_sources/svg/stack_wallet/arrow-down.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/arrow-left-fa.svg b/asset_sources/svg/stack_wallet/arrow-left-fa.svg new file mode 100644 index 000000000..2571d77df --- /dev/null +++ b/asset_sources/svg/stack_wallet/arrow-left-fa.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/arrow-right.svg b/asset_sources/svg/stack_wallet/arrow-right.svg new file mode 100644 index 000000000..abf939da9 --- /dev/null +++ b/asset_sources/svg/stack_wallet/arrow-right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/arrow-rotate.svg b/asset_sources/svg/stack_wallet/arrow-rotate.svg new file mode 100644 index 000000000..2ee129b03 --- /dev/null +++ b/asset_sources/svg/stack_wallet/arrow-rotate.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/arrow-rotate2.svg b/asset_sources/svg/stack_wallet/arrow-rotate2.svg new file mode 100644 index 000000000..59a4866d3 --- /dev/null +++ b/asset_sources/svg/stack_wallet/arrow-rotate2.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/arrow-up-right.svg b/asset_sources/svg/stack_wallet/arrow-up-right.svg new file mode 100644 index 000000000..630c3c4a2 --- /dev/null +++ b/asset_sources/svg/stack_wallet/arrow-up-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/auto-backup.svg b/asset_sources/svg/stack_wallet/auto-backup.svg new file mode 100644 index 000000000..f87d027b4 --- /dev/null +++ b/asset_sources/svg/stack_wallet/auto-backup.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/bars.svg b/asset_sources/svg/stack_wallet/bars.svg new file mode 100644 index 000000000..8af09a5ff --- /dev/null +++ b/asset_sources/svg/stack_wallet/bars.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/bell.svg b/asset_sources/svg/stack_wallet/bell.svg new file mode 100644 index 000000000..b8502d2d3 --- /dev/null +++ b/asset_sources/svg/stack_wallet/bell.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/box-auto.svg b/asset_sources/svg/stack_wallet/box-auto.svg new file mode 100644 index 000000000..1dd771fb1 --- /dev/null +++ b/asset_sources/svg/stack_wallet/box-auto.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/buy/Simplex-Nuvei-Logo-light.svg b/asset_sources/svg/stack_wallet/buy/Simplex-Nuvei-Logo-light.svg new file mode 100644 index 000000000..367ce0de4 --- /dev/null +++ b/asset_sources/svg/stack_wallet/buy/Simplex-Nuvei-Logo-light.svg @@ -0,0 +1,65 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/buy/Simplex-Nuvei-Logo.svg b/asset_sources/svg/stack_wallet/buy/Simplex-Nuvei-Logo.svg new file mode 100644 index 000000000..736f6fd45 --- /dev/null +++ b/asset_sources/svg/stack_wallet/buy/Simplex-Nuvei-Logo.svg @@ -0,0 +1,65 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/calendar-days.svg b/asset_sources/svg/stack_wallet/calendar-days.svg new file mode 100644 index 000000000..3d1717c23 --- /dev/null +++ b/asset_sources/svg/stack_wallet/calendar-days.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/cashfusion-icon.svg b/asset_sources/svg/stack_wallet/cashfusion-icon.svg new file mode 100644 index 000000000..e1d010ada --- /dev/null +++ b/asset_sources/svg/stack_wallet/cashfusion-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/cc.svg b/asset_sources/svg/stack_wallet/cc.svg new file mode 100644 index 000000000..646ae64ce --- /dev/null +++ b/asset_sources/svg/stack_wallet/cc.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/check.svg b/asset_sources/svg/stack_wallet/check.svg new file mode 100644 index 000000000..1acb3cd6a --- /dev/null +++ b/asset_sources/svg/stack_wallet/check.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/chevron-down.svg b/asset_sources/svg/stack_wallet/chevron-down.svg new file mode 100644 index 000000000..74f2e9727 --- /dev/null +++ b/asset_sources/svg/stack_wallet/chevron-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/chevron-right.svg b/asset_sources/svg/stack_wallet/chevron-right.svg new file mode 100644 index 000000000..c8efcde44 --- /dev/null +++ b/asset_sources/svg/stack_wallet/chevron-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/chevron-up.svg b/asset_sources/svg/stack_wallet/chevron-up.svg new file mode 100644 index 000000000..630f8df69 --- /dev/null +++ b/asset_sources/svg/stack_wallet/chevron-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/circle-arrow-up-right2.svg b/asset_sources/svg/stack_wallet/circle-arrow-up-right2.svg new file mode 100644 index 000000000..3f15b1b02 --- /dev/null +++ b/asset_sources/svg/stack_wallet/circle-arrow-up-right2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/circle-check.svg b/asset_sources/svg/stack_wallet/circle-check.svg new file mode 100644 index 000000000..9bf037334 --- /dev/null +++ b/asset_sources/svg/stack_wallet/circle-check.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/circle-plus-filled.svg b/asset_sources/svg/stack_wallet/circle-plus-filled.svg new file mode 100644 index 000000000..3e3244adb --- /dev/null +++ b/asset_sources/svg/stack_wallet/circle-plus-filled.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/circle-plus.svg b/asset_sources/svg/stack_wallet/circle-plus.svg new file mode 100644 index 000000000..a09b12711 --- /dev/null +++ b/asset_sources/svg/stack_wallet/circle-plus.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/circle-question.svg b/asset_sources/svg/stack_wallet/circle-question.svg new file mode 100644 index 000000000..f5394dd6a --- /dev/null +++ b/asset_sources/svg/stack_wallet/circle-question.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/clipboard.svg b/asset_sources/svg/stack_wallet/clipboard.svg new file mode 100644 index 000000000..df78b3127 --- /dev/null +++ b/asset_sources/svg/stack_wallet/clipboard.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/coin_control/frozen.svg b/asset_sources/svg/stack_wallet/coin_control/frozen.svg new file mode 100644 index 000000000..3fe52d57e --- /dev/null +++ b/asset_sources/svg/stack_wallet/coin_control/frozen.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/coin_control/gamepad.svg b/asset_sources/svg/stack_wallet/coin_control/gamepad.svg new file mode 100644 index 000000000..6fe0b6c30 --- /dev/null +++ b/asset_sources/svg/stack_wallet/coin_control/gamepad.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/coin_control/selected.svg b/asset_sources/svg/stack_wallet/coin_control/selected.svg new file mode 100644 index 000000000..454ad8af6 --- /dev/null +++ b/asset_sources/svg/stack_wallet/coin_control/selected.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/coin_control/unfrozen.svg b/asset_sources/svg/stack_wallet/coin_control/unfrozen.svg new file mode 100644 index 000000000..d3d4da221 --- /dev/null +++ b/asset_sources/svg/stack_wallet/coin_control/unfrozen.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/configuration.svg b/asset_sources/svg/stack_wallet/configuration.svg new file mode 100644 index 000000000..516bbf320 --- /dev/null +++ b/asset_sources/svg/stack_wallet/configuration.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/connected-button.svg b/asset_sources/svg/stack_wallet/connected-button.svg new file mode 100644 index 000000000..96a9970c0 --- /dev/null +++ b/asset_sources/svg/stack_wallet/connected-button.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/connecting-button.svg b/asset_sources/svg/stack_wallet/connecting-button.svg new file mode 100644 index 000000000..1bc6e953b --- /dev/null +++ b/asset_sources/svg/stack_wallet/connecting-button.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/copy-fa.svg b/asset_sources/svg/stack_wallet/copy-fa.svg new file mode 100644 index 000000000..9e9d34806 --- /dev/null +++ b/asset_sources/svg/stack_wallet/copy-fa.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/dark-theme.svg b/asset_sources/svg/stack_wallet/dark-theme.svg new file mode 100644 index 000000000..47b5e2d5e --- /dev/null +++ b/asset_sources/svg/stack_wallet/dark-theme.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/delete.svg b/asset_sources/svg/stack_wallet/delete.svg new file mode 100644 index 000000000..68330fa48 --- /dev/null +++ b/asset_sources/svg/stack_wallet/delete.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/asset_sources/svg/stack_wallet/dice-alt.svg b/asset_sources/svg/stack_wallet/dice-alt.svg new file mode 100644 index 000000000..8b7efdec1 --- /dev/null +++ b/asset_sources/svg/stack_wallet/dice-alt.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/disconnected-button.svg b/asset_sources/svg/stack_wallet/disconnected-button.svg new file mode 100644 index 000000000..03a8067d7 --- /dev/null +++ b/asset_sources/svg/stack_wallet/disconnected-button.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/dollar-sign-circle.svg b/asset_sources/svg/stack_wallet/dollar-sign-circle.svg new file mode 100644 index 000000000..03aacffea --- /dev/null +++ b/asset_sources/svg/stack_wallet/dollar-sign-circle.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/dollar-sign.svg b/asset_sources/svg/stack_wallet/dollar-sign.svg new file mode 100644 index 000000000..bff9d6ede --- /dev/null +++ b/asset_sources/svg/stack_wallet/dollar-sign.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/drd-icon.svg b/asset_sources/svg/stack_wallet/drd-icon.svg new file mode 100644 index 000000000..7f65c820d --- /dev/null +++ b/asset_sources/svg/stack_wallet/drd-icon.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/ellipsis-vertical1.svg b/asset_sources/svg/stack_wallet/ellipsis-vertical1.svg new file mode 100644 index 000000000..8f82c0959 --- /dev/null +++ b/asset_sources/svg/stack_wallet/ellipsis-vertical1.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/enabled-button.svg b/asset_sources/svg/stack_wallet/enabled-button.svg new file mode 100644 index 000000000..a26359e81 --- /dev/null +++ b/asset_sources/svg/stack_wallet/enabled-button.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/envelope.svg b/asset_sources/svg/stack_wallet/envelope.svg new file mode 100644 index 000000000..7cbc27195 --- /dev/null +++ b/asset_sources/svg/stack_wallet/envelope.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_wallet/exchange-3.svg b/asset_sources/svg/stack_wallet/exchange-3.svg new file mode 100644 index 000000000..4a3c92524 --- /dev/null +++ b/asset_sources/svg/stack_wallet/exchange-3.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/exchange-desktop.svg b/asset_sources/svg/stack_wallet/exchange-desktop.svg new file mode 100644 index 000000000..8eacfa84e --- /dev/null +++ b/asset_sources/svg/stack_wallet/exchange-desktop.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/exchange_icons/change_now_logo_1.svg b/asset_sources/svg/stack_wallet/exchange_icons/change_now_logo_1.svg new file mode 100644 index 000000000..f901f3562 --- /dev/null +++ b/asset_sources/svg/stack_wallet/exchange_icons/change_now_logo_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_wallet/exchange_icons/mb_blue.svg b/asset_sources/svg/stack_wallet/exchange_icons/mb_blue.svg new file mode 100644 index 000000000..d9fea3781 --- /dev/null +++ b/asset_sources/svg/stack_wallet/exchange_icons/mb_blue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_wallet/exchange_icons/mb_green.svg b/asset_sources/svg/stack_wallet/exchange_icons/mb_green.svg new file mode 100644 index 000000000..d5d10ca7e --- /dev/null +++ b/asset_sources/svg/stack_wallet/exchange_icons/mb_green.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_wallet/exchange_icons/simpleswap-icon.svg b/asset_sources/svg/stack_wallet/exchange_icons/simpleswap-icon.svg new file mode 100644 index 000000000..b3986ef2f --- /dev/null +++ b/asset_sources/svg/stack_wallet/exchange_icons/simpleswap-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/asset_sources/svg/stack_wallet/exchange_icons/trocador.svg b/asset_sources/svg/stack_wallet/exchange_icons/trocador.svg new file mode 100644 index 000000000..b3d9171ff --- /dev/null +++ b/asset_sources/svg/stack_wallet/exchange_icons/trocador.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/exit-desktop.svg b/asset_sources/svg/stack_wallet/exit-desktop.svg new file mode 100644 index 000000000..abba264cd --- /dev/null +++ b/asset_sources/svg/stack_wallet/exit-desktop.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/eye-slash.svg b/asset_sources/svg/stack_wallet/eye-slash.svg new file mode 100644 index 000000000..62a020289 --- /dev/null +++ b/asset_sources/svg/stack_wallet/eye-slash.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/eye.svg b/asset_sources/svg/stack_wallet/eye.svg new file mode 100644 index 000000000..cf904a156 --- /dev/null +++ b/asset_sources/svg/stack_wallet/eye.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/faceid.svg b/asset_sources/svg/stack_wallet/faceid.svg new file mode 100644 index 000000000..52ea3712d --- /dev/null +++ b/asset_sources/svg/stack_wallet/faceid.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/file-upload.svg b/asset_sources/svg/stack_wallet/file-upload.svg new file mode 100644 index 000000000..0e3576cbe --- /dev/null +++ b/asset_sources/svg/stack_wallet/file-upload.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/file.svg b/asset_sources/svg/stack_wallet/file.svg new file mode 100644 index 000000000..afe1d662e --- /dev/null +++ b/asset_sources/svg/stack_wallet/file.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/filter.svg b/asset_sources/svg/stack_wallet/filter.svg new file mode 100644 index 000000000..c689a2090 --- /dev/null +++ b/asset_sources/svg/stack_wallet/filter.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/asset_sources/svg/stack_wallet/fingerprint.svg b/asset_sources/svg/stack_wallet/fingerprint.svg new file mode 100644 index 000000000..5919bdd1a --- /dev/null +++ b/asset_sources/svg/stack_wallet/fingerprint.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/asset_sources/svg/stack_wallet/folder-down.svg b/asset_sources/svg/stack_wallet/folder-down.svg new file mode 100644 index 000000000..4527ce20d --- /dev/null +++ b/asset_sources/svg/stack_wallet/folder-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/folder.svg b/asset_sources/svg/stack_wallet/folder.svg new file mode 100644 index 000000000..4719338f8 --- /dev/null +++ b/asset_sources/svg/stack_wallet/folder.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/framed-address-book.svg b/asset_sources/svg/stack_wallet/framed-address-book.svg new file mode 100644 index 000000000..157117097 --- /dev/null +++ b/asset_sources/svg/stack_wallet/framed-address-book.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/framed-gear.svg b/asset_sources/svg/stack_wallet/framed-gear.svg new file mode 100644 index 000000000..749d9803d --- /dev/null +++ b/asset_sources/svg/stack_wallet/framed-gear.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/fusing.svg b/asset_sources/svg/stack_wallet/fusing.svg new file mode 100644 index 000000000..1b04f882a --- /dev/null +++ b/asset_sources/svg/stack_wallet/fusing.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/gear-3.svg b/asset_sources/svg/stack_wallet/gear-3.svg new file mode 100644 index 000000000..83d24bc72 --- /dev/null +++ b/asset_sources/svg/stack_wallet/gear-3.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/gear.svg b/asset_sources/svg/stack_wallet/gear.svg new file mode 100644 index 000000000..aeed1ef7e --- /dev/null +++ b/asset_sources/svg/stack_wallet/gear.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/info-circle.svg b/asset_sources/svg/stack_wallet/info-circle.svg new file mode 100644 index 000000000..918291dab --- /dev/null +++ b/asset_sources/svg/stack_wallet/info-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/key.svg b/asset_sources/svg/stack_wallet/key.svg new file mode 100644 index 000000000..101b8e25e --- /dev/null +++ b/asset_sources/svg/stack_wallet/key.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/keys.svg b/asset_sources/svg/stack_wallet/keys.svg new file mode 100644 index 000000000..cf86daea5 --- /dev/null +++ b/asset_sources/svg/stack_wallet/keys.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/language-circle.svg b/asset_sources/svg/stack_wallet/language-circle.svg new file mode 100644 index 000000000..700ffede4 --- /dev/null +++ b/asset_sources/svg/stack_wallet/language-circle.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/language2.svg b/asset_sources/svg/stack_wallet/language2.svg new file mode 100644 index 000000000..df83e02ab --- /dev/null +++ b/asset_sources/svg/stack_wallet/language2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/light-mode.svg b/asset_sources/svg/stack_wallet/light-mode.svg new file mode 100644 index 000000000..4ff9e2696 --- /dev/null +++ b/asset_sources/svg/stack_wallet/light-mode.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/list-ul.svg b/asset_sources/svg/stack_wallet/list-ul.svg new file mode 100644 index 000000000..f5cef4eae --- /dev/null +++ b/asset_sources/svg/stack_wallet/list-ul.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/loader.svg b/asset_sources/svg/stack_wallet/loader.svg new file mode 100644 index 000000000..57dca5679 --- /dev/null +++ b/asset_sources/svg/stack_wallet/loader.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/lock-circle.svg b/asset_sources/svg/stack_wallet/lock-circle.svg new file mode 100644 index 000000000..f8fd71831 --- /dev/null +++ b/asset_sources/svg/stack_wallet/lock-circle.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/lock-keyhole.svg b/asset_sources/svg/stack_wallet/lock-keyhole.svg new file mode 100644 index 000000000..6f5523817 --- /dev/null +++ b/asset_sources/svg/stack_wallet/lock-keyhole.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/lock-open.svg b/asset_sources/svg/stack_wallet/lock-open.svg new file mode 100644 index 000000000..f2b00f341 --- /dev/null +++ b/asset_sources/svg/stack_wallet/lock-open.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/lock.svg b/asset_sources/svg/stack_wallet/lock.svg new file mode 100644 index 000000000..45e882531 --- /dev/null +++ b/asset_sources/svg/stack_wallet/lock.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/magnifying-glass.svg b/asset_sources/svg/stack_wallet/magnifying-glass.svg new file mode 100644 index 000000000..e56be51d1 --- /dev/null +++ b/asset_sources/svg/stack_wallet/magnifying-glass.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/message-question-1.svg b/asset_sources/svg/stack_wallet/message-question-1.svg new file mode 100644 index 000000000..17e066651 --- /dev/null +++ b/asset_sources/svg/stack_wallet/message-question-1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/message-question.svg b/asset_sources/svg/stack_wallet/message-question.svg new file mode 100644 index 000000000..86cb36500 --- /dev/null +++ b/asset_sources/svg/stack_wallet/message-question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_wallet/minimize.svg b/asset_sources/svg/stack_wallet/minimize.svg new file mode 100644 index 000000000..94292fed4 --- /dev/null +++ b/asset_sources/svg/stack_wallet/minimize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/monkey.svg b/asset_sources/svg/stack_wallet/monkey.svg new file mode 100644 index 000000000..565ac4fdf --- /dev/null +++ b/asset_sources/svg/stack_wallet/monkey.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/network-wired-2.svg b/asset_sources/svg/stack_wallet/network-wired-2.svg new file mode 100644 index 000000000..bbbfa056f --- /dev/null +++ b/asset_sources/svg/stack_wallet/network-wired-2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/network-wired.svg b/asset_sources/svg/stack_wallet/network-wired.svg new file mode 100644 index 000000000..6ecc0bbef --- /dev/null +++ b/asset_sources/svg/stack_wallet/network-wired.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/node-alt.svg b/asset_sources/svg/stack_wallet/node-alt.svg new file mode 100644 index 000000000..b7a9367c1 --- /dev/null +++ b/asset_sources/svg/stack_wallet/node-alt.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/node-circle.svg b/asset_sources/svg/stack_wallet/node-circle.svg new file mode 100644 index 000000000..bd9353a2b --- /dev/null +++ b/asset_sources/svg/stack_wallet/node-circle.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/ordinal.svg b/asset_sources/svg/stack_wallet/ordinal.svg new file mode 100644 index 000000000..7ac863a84 --- /dev/null +++ b/asset_sources/svg/stack_wallet/ordinal.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/peers.svg b/asset_sources/svg/stack_wallet/peers.svg new file mode 100644 index 000000000..26bc3a2a0 --- /dev/null +++ b/asset_sources/svg/stack_wallet/peers.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/pen-solid-fa.svg b/asset_sources/svg/stack_wallet/pen-solid-fa.svg new file mode 100644 index 000000000..4fa4fd6b4 --- /dev/null +++ b/asset_sources/svg/stack_wallet/pen-solid-fa.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/pending.svg b/asset_sources/svg/stack_wallet/pending.svg new file mode 100644 index 000000000..88c43013a --- /dev/null +++ b/asset_sources/svg/stack_wallet/pending.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/plus-circle.svg b/asset_sources/svg/stack_wallet/plus-circle.svg new file mode 100644 index 000000000..e673b9b0e --- /dev/null +++ b/asset_sources/svg/stack_wallet/plus-circle.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/plus.svg b/asset_sources/svg/stack_wallet/plus.svg new file mode 100644 index 000000000..962152aa1 --- /dev/null +++ b/asset_sources/svg/stack_wallet/plus.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/qrcode1.svg b/asset_sources/svg/stack_wallet/qrcode1.svg new file mode 100644 index 000000000..f77d8d1c8 --- /dev/null +++ b/asset_sources/svg/stack_wallet/qrcode1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/restore-backup.svg b/asset_sources/svg/stack_wallet/restore-backup.svg new file mode 100644 index 000000000..3f4f6adfd --- /dev/null +++ b/asset_sources/svg/stack_wallet/restore-backup.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/robot-head.svg b/asset_sources/svg/stack_wallet/robot-head.svg new file mode 100644 index 000000000..b6810c227 --- /dev/null +++ b/asset_sources/svg/stack_wallet/robot-head.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/rotate-circle.svg b/asset_sources/svg/stack_wallet/rotate-circle.svg new file mode 100644 index 000000000..1940da5f5 --- /dev/null +++ b/asset_sources/svg/stack_wallet/rotate-circle.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/send.svg b/asset_sources/svg/stack_wallet/send.svg new file mode 100644 index 000000000..61fe2a206 --- /dev/null +++ b/asset_sources/svg/stack_wallet/send.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/asset_sources/svg/stack_wallet/share-2.svg b/asset_sources/svg/stack_wallet/share-2.svg new file mode 100644 index 000000000..d002d2bff --- /dev/null +++ b/asset_sources/svg/stack_wallet/share-2.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/signal-problem-alt.svg b/asset_sources/svg/stack_wallet/signal-problem-alt.svg new file mode 100644 index 000000000..a6fa3d365 --- /dev/null +++ b/asset_sources/svg/stack_wallet/signal-problem-alt.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/signal-stream.svg b/asset_sources/svg/stack_wallet/signal-stream.svg new file mode 100644 index 000000000..521725390 --- /dev/null +++ b/asset_sources/svg/stack_wallet/signal-stream.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/signal-sync-alt.svg b/asset_sources/svg/stack_wallet/signal-sync-alt.svg new file mode 100644 index 000000000..82e15a718 --- /dev/null +++ b/asset_sources/svg/stack_wallet/signal-sync-alt.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/sliders-solid.svg b/asset_sources/svg/stack_wallet/sliders-solid.svg new file mode 100644 index 000000000..c726db908 --- /dev/null +++ b/asset_sources/svg/stack_wallet/sliders-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_wallet/socials/discord.svg b/asset_sources/svg/stack_wallet/socials/discord.svg new file mode 100644 index 000000000..4d6aff6ed --- /dev/null +++ b/asset_sources/svg/stack_wallet/socials/discord.svg @@ -0,0 +1,15 @@ + + + + + diff --git a/asset_sources/svg/stack_wallet/socials/reddit-alien-brands.svg b/asset_sources/svg/stack_wallet/socials/reddit-alien-brands.svg new file mode 100644 index 000000000..e11308f5c --- /dev/null +++ b/asset_sources/svg/stack_wallet/socials/reddit-alien-brands.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_wallet/socials/telegram-brands.svg b/asset_sources/svg/stack_wallet/socials/telegram-brands.svg new file mode 100644 index 000000000..61d09ee08 --- /dev/null +++ b/asset_sources/svg/stack_wallet/socials/telegram-brands.svg @@ -0,0 +1,10 @@ + + + + + diff --git a/asset_sources/svg/stack_wallet/socials/twitter-brands.svg b/asset_sources/svg/stack_wallet/socials/twitter-brands.svg new file mode 100644 index 000000000..96464c99f --- /dev/null +++ b/asset_sources/svg/stack_wallet/socials/twitter-brands.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_wallet/spark.svg b/asset_sources/svg/stack_wallet/spark.svg new file mode 100644 index 000000000..6f7db1b74 --- /dev/null +++ b/asset_sources/svg/stack_wallet/spark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/asset_sources/svg/stack_wallet/star.svg b/asset_sources/svg/stack_wallet/star.svg new file mode 100644 index 000000000..2fe3d756f --- /dev/null +++ b/asset_sources/svg/stack_wallet/star.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/sun-bright2.svg b/asset_sources/svg/stack_wallet/sun-bright2.svg new file mode 100644 index 000000000..6a1f7fb62 --- /dev/null +++ b/asset_sources/svg/stack_wallet/sun-bright2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/sun-circle.svg b/asset_sources/svg/stack_wallet/sun-circle.svg new file mode 100644 index 000000000..eba7d031d --- /dev/null +++ b/asset_sources/svg/stack_wallet/sun-circle.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/swap.svg b/asset_sources/svg/stack_wallet/swap.svg new file mode 100644 index 000000000..57b4216be --- /dev/null +++ b/asset_sources/svg/stack_wallet/swap.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/swap2.svg b/asset_sources/svg/stack_wallet/swap2.svg new file mode 100644 index 000000000..1c9ce8191 --- /dev/null +++ b/asset_sources/svg/stack_wallet/swap2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/tokens.svg b/asset_sources/svg/stack_wallet/tokens.svg new file mode 100644 index 000000000..be52b614c --- /dev/null +++ b/asset_sources/svg/stack_wallet/tokens.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/tor-circle.svg b/asset_sources/svg/stack_wallet/tor-circle.svg new file mode 100644 index 000000000..8268a00f6 --- /dev/null +++ b/asset_sources/svg/stack_wallet/tor-circle.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/asset_sources/svg/stack_wallet/tor-synced.svg b/asset_sources/svg/stack_wallet/tor-synced.svg new file mode 100644 index 000000000..20cff1f37 --- /dev/null +++ b/asset_sources/svg/stack_wallet/tor-synced.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/tor-syncing.svg b/asset_sources/svg/stack_wallet/tor-syncing.svg new file mode 100644 index 000000000..b51803c70 --- /dev/null +++ b/asset_sources/svg/stack_wallet/tor-syncing.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/tor.svg b/asset_sources/svg/stack_wallet/tor.svg new file mode 100644 index 000000000..a893c0907 --- /dev/null +++ b/asset_sources/svg/stack_wallet/tor.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/trash.svg b/asset_sources/svg/stack_wallet/trash.svg new file mode 100644 index 000000000..50aef9fdd --- /dev/null +++ b/asset_sources/svg/stack_wallet/trash.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/trocador_rating_a.svg b/asset_sources/svg/stack_wallet/trocador_rating_a.svg new file mode 100644 index 000000000..1e75af73b --- /dev/null +++ b/asset_sources/svg/stack_wallet/trocador_rating_a.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/trocador_rating_b.svg b/asset_sources/svg/stack_wallet/trocador_rating_b.svg new file mode 100644 index 000000000..5d678305a --- /dev/null +++ b/asset_sources/svg/stack_wallet/trocador_rating_b.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/trocador_rating_c.svg b/asset_sources/svg/stack_wallet/trocador_rating_c.svg new file mode 100644 index 000000000..87ecf6b24 --- /dev/null +++ b/asset_sources/svg/stack_wallet/trocador_rating_c.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/trocador_rating_d.svg b/asset_sources/svg/stack_wallet/trocador_rating_d.svg new file mode 100644 index 000000000..8973c7e65 --- /dev/null +++ b/asset_sources/svg/stack_wallet/trocador_rating_d.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/tx-cashfusion.svg b/asset_sources/svg/stack_wallet/tx-cashfusion.svg new file mode 100644 index 000000000..d9055b6c6 --- /dev/null +++ b/asset_sources/svg/stack_wallet/tx-cashfusion.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/tx-icon-anonymize-failed.svg b/asset_sources/svg/stack_wallet/tx-icon-anonymize-failed.svg new file mode 100644 index 000000000..4a225f36e --- /dev/null +++ b/asset_sources/svg/stack_wallet/tx-icon-anonymize-failed.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/tx-icon-anonymize-pending.svg b/asset_sources/svg/stack_wallet/tx-icon-anonymize-pending.svg new file mode 100644 index 000000000..48125ec85 --- /dev/null +++ b/asset_sources/svg/stack_wallet/tx-icon-anonymize-pending.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/tx-icon-anonymize.svg b/asset_sources/svg/stack_wallet/tx-icon-anonymize.svg new file mode 100644 index 000000000..8f8acd695 --- /dev/null +++ b/asset_sources/svg/stack_wallet/tx-icon-anonymize.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/unclaimed.svg b/asset_sources/svg/stack_wallet/unclaimed.svg new file mode 100644 index 000000000..a6ff2213d --- /dev/null +++ b/asset_sources/svg/stack_wallet/unclaimed.svg @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asset_sources/svg/stack_wallet/up-from-line.svg b/asset_sources/svg/stack_wallet/up-from-line.svg new file mode 100644 index 000000000..4e1c8f6bf --- /dev/null +++ b/asset_sources/svg/stack_wallet/up-from-line.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/user-minus.svg b/asset_sources/svg/stack_wallet/user-minus.svg new file mode 100644 index 000000000..a454f5d00 --- /dev/null +++ b/asset_sources/svg/stack_wallet/user-minus.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/user-plus.svg b/asset_sources/svg/stack_wallet/user-plus.svg new file mode 100644 index 000000000..10795f73c --- /dev/null +++ b/asset_sources/svg/stack_wallet/user-plus.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/user.svg b/asset_sources/svg/stack_wallet/user.svg new file mode 100644 index 000000000..a9ff9971d --- /dev/null +++ b/asset_sources/svg/stack_wallet/user.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/wallet-desktop.svg b/asset_sources/svg/stack_wallet/wallet-desktop.svg new file mode 100644 index 000000000..0b0acdae3 --- /dev/null +++ b/asset_sources/svg/stack_wallet/wallet-desktop.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/wallet-fa.svg b/asset_sources/svg/stack_wallet/wallet-fa.svg new file mode 100644 index 000000000..a91170596 --- /dev/null +++ b/asset_sources/svg/stack_wallet/wallet-fa.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/wallet-settings.svg b/asset_sources/svg/stack_wallet/wallet-settings.svg new file mode 100644 index 000000000..7815f90e9 --- /dev/null +++ b/asset_sources/svg/stack_wallet/wallet-settings.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/whirlpool.svg b/asset_sources/svg/stack_wallet/whirlpool.svg new file mode 100644 index 000000000..cf075308f --- /dev/null +++ b/asset_sources/svg/stack_wallet/whirlpool.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/x-circle.svg b/asset_sources/svg/stack_wallet/x-circle.svg new file mode 100644 index 000000000..d21c6d8f7 --- /dev/null +++ b/asset_sources/svg/stack_wallet/x-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/asset_sources/svg/stack_wallet/x-fat.svg b/asset_sources/svg/stack_wallet/x-fat.svg new file mode 100644 index 000000000..171cd34f7 --- /dev/null +++ b/asset_sources/svg/stack_wallet/x-fat.svg @@ -0,0 +1,4 @@ + + + + diff --git a/asset_sources/svg/stack_wallet/x.svg b/asset_sources/svg/stack_wallet/x.svg new file mode 100644 index 000000000..416416b45 --- /dev/null +++ b/asset_sources/svg/stack_wallet/x.svg @@ -0,0 +1,4 @@ + + + + diff --git a/scripts/app_config/shared/link_assets.sh b/scripts/app_config/shared/link_assets.sh index 90074e459..25c016f9c 100755 --- a/scripts/app_config/shared/link_assets.sh +++ b/scripts/app_config/shared/link_assets.sh @@ -17,7 +17,7 @@ ASSETS_DIR="${APP_PROJECT_ROOT_DIR}/assets" # finally update symlinks -for dirname in "default_themes" "icon" "lottie" "in_app_logo_icons"; do +for dirname in "default_themes" "icon" "lottie" "in_app_logo_icons" "svg"; do LINK_SOURCE_DIR="${ASSET_SOURCES_DIR}/${dirname}/${SELECT_ASSETS_DIR}" rm -f "${ASSETS_DIR}/${dirname}" From 6ce5d10244ba5b1433ded53f3c78777ad09a04e7 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 6 Jun 2024 13:41:46 -0600 Subject: [PATCH 207/318] update campfire theme --- .../default_themes/campfire/light.zip | Bin 897669 -> 898738 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/asset_sources/default_themes/campfire/light.zip b/asset_sources/default_themes/campfire/light.zip index d94ce2ac8660b38e4e2889e3ed0e2add9a124c89..5dd67bcb1410f71296acf8fc720de04326f15087 100644 GIT binary patch delta 9248 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 delta 7845 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 Date: Thu, 6 Jun 2024 15:08:56 -0500 Subject: [PATCH 208/318] start efCurrencyPairProvider and efRateTypeProvider if swap enabled --- lib/main.dart | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index ae7d26466..68d1fe48c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -370,20 +370,22 @@ class _MaterialAppWithThemeState extends ConsumerState // TODO: this should probably run unawaited. Keep commented out for now as proper community nodes ui hasn't been implemented yet // unawaited(_nodeService.updateCommunityNodes()); - await ExchangeDataLoadingService.instance.initDB(); - // run without awaiting - if (ref.read(prefsChangeNotifierProvider).externalCalls && - await ref.read(prefsChangeNotifierProvider).isExternalCallsSet()) { - if (Constants.enableExchange) { - await ExchangeDataLoadingService.instance.setCurrenciesIfEmpty( - ref.read(efCurrencyPairProvider), - ref.read(efRateTypeProvider), - ); - unawaited(ExchangeDataLoadingService.instance.loadAll()); + if (AppConfig.hasFeature(AppFeature.swap)) { + await ExchangeDataLoadingService.instance.initDB(); + // run without awaiting + if (ref.read(prefsChangeNotifierProvider).externalCalls && + await ref.read(prefsChangeNotifierProvider).isExternalCallsSet()) { + if (Constants.enableExchange) { + await ExchangeDataLoadingService.instance.setCurrenciesIfEmpty( + ref.read(efCurrencyPairProvider), + ref.read(efRateTypeProvider), + ); + unawaited(ExchangeDataLoadingService.instance.loadAll()); + } + // if (Constants.enableBuy) { + // unawaited(BuyDataLoadingService().loadAll(ref)); + // } } - // if (Constants.enableBuy) { - // unawaited(BuyDataLoadingService().loadAll(ref)); - // } } if (ref.read(prefsChangeNotifierProvider).isAutoBackupEnabled) { From 85f609fa6f0897fa2b7e0ea99563a763ebb9222a Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 6 Jun 2024 14:07:31 -0600 Subject: [PATCH 209/318] add check for settings appearance nav --- .../settings/desktop_settings_view.dart | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/pages_desktop_specific/settings/desktop_settings_view.dart b/lib/pages_desktop_specific/settings/desktop_settings_view.dart index 7ab75026d..d0747f7b6 100644 --- a/lib/pages_desktop_specific/settings/desktop_settings_view.dart +++ b/lib/pages_desktop_specific/settings/desktop_settings_view.dart @@ -10,6 +10,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; + +import '../../app_config.dart'; +import '../../route_generator.dart'; +import '../../themes/stack_colors.dart'; +import '../../utilities/text_styles.dart'; +import '../../widgets/desktop/desktop_app_bar.dart'; +import '../../widgets/desktop/desktop_scaffold.dart'; import 'settings_menu.dart'; import 'settings_menu/advanced_settings/advanced_settings.dart'; import 'settings_menu/appearance_settings/appearance_settings.dart'; @@ -20,11 +27,6 @@ import 'settings_menu/nodes_settings.dart'; import 'settings_menu/security_settings.dart'; import 'settings_menu/syncing_preferences_settings.dart'; import 'settings_menu/tor_settings/tor_settings.dart'; -import '../../route_generator.dart'; -import '../../themes/stack_colors.dart'; -import '../../utilities/text_styles.dart'; -import '../../widgets/desktop/desktop_app_bar.dart'; -import '../../widgets/desktop/desktop_scaffold.dart'; class DesktopSettingsView extends ConsumerStatefulWidget { const DesktopSettingsView({super.key}); @@ -73,11 +75,12 @@ class _DesktopSettingsViewState extends ConsumerState { onGenerateRoute: RouteGenerator.generateRoute, initialRoute: SyncingPreferencesSettings.routeName, ), //syncing prefs - const Navigator( - key: Key("settingsAppearanceDesktopKey"), - onGenerateRoute: RouteGenerator.generateRoute, - initialRoute: AppearanceOptionSettings.routeName, - ), //appearance + if (AppConfig.hasFeature(AppFeature.themeSelection)) + const Navigator( + key: Key("settingsAppearanceDesktopKey"), + onGenerateRoute: RouteGenerator.generateRoute, + initialRoute: AppearanceOptionSettings.routeName, + ), //appearance const Navigator( key: Key("settingsAdvancedDesktopKey"), onGenerateRoute: RouteGenerator.generateRoute, From 20f743932b1dae21add8b416965d07fda0782430 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 6 Jun 2024 14:36:21 -0600 Subject: [PATCH 210/318] used tags cache count fix --- lib/db/sqlite/firo_cache_coordinator.dart | 8 ++++---- lib/db/sqlite/firo_cache_reader.dart | 4 ++-- lib/electrumx_rpc/electrumx_client.dart | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/db/sqlite/firo_cache_coordinator.dart b/lib/db/sqlite/firo_cache_coordinator.dart index 83943f3cc..c0170ef85 100644 --- a/lib/db/sqlite/firo_cache_coordinator.dart +++ b/lib/db/sqlite/firo_cache_coordinator.dart @@ -50,7 +50,7 @@ abstract class FiroCacheCoordinator { static Future runFetchAndUpdateSparkUsedCoinTags( ElectrumXClient client, ) async { - final count = await FiroCacheCoordinator.getUsedCoinTagsLastAddedRowId(); + final count = await FiroCacheCoordinator.getUsedCoinTagsCount(); final unhashedTags = await client.getSparkUnhashedUsedCoinsTags( startNumber: count, ); @@ -101,14 +101,14 @@ abstract class FiroCacheCoordinator { /// Assuming the integrity of the data. Faster than actually calling count on /// a table where no records have been deleted. None should be deleted from /// this table in practice. - static Future getUsedCoinTagsLastAddedRowId() async { - final result = await _Reader._getUsedCoinTagsLastAddedRowId( + static Future getUsedCoinTagsCount() async { + final result = await _Reader._getUsedCoinTagsCount( db: _FiroCache.usedTagsCacheDB, ); if (result.isEmpty) { return 0; } - return result.first["highestId"] as int? ?? 0; + return result.first["count"] as int? ?? 0; } static Future checkTagIsUsed( diff --git a/lib/db/sqlite/firo_cache_reader.dart b/lib/db/sqlite/firo_cache_reader.dart index 10af03922..be761bc04 100644 --- a/lib/db/sqlite/firo_cache_reader.dart +++ b/lib/db/sqlite/firo_cache_reader.dart @@ -75,11 +75,11 @@ abstract class _Reader { return db.select("$query;"); } - static Future _getUsedCoinTagsLastAddedRowId({ + static Future _getUsedCoinTagsCount({ required Database db, }) async { const query = """ - SELECT MAX(id) AS highestId + SELECT COUNT(*) AS count FROM SparkUsedCoinTags; """; diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index 594e73fe3..d0a470cd1 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -954,7 +954,7 @@ class ElectrumXClient { Logging.instance.log( "Finished ElectrumXClient.getSparkUnhashedUsedCoinsTags(startNumber" - "=$startNumber). " + "=$startNumber). # of tags fetched=${tags.length}, " "Duration=${DateTime.now().difference(start)}", level: LogLevel.Info, ); From 7c40dd1546394c3ca01b4d6235d5488571a9366d Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 6 Jun 2024 15:40:10 -0600 Subject: [PATCH 211/318] skip summary view and coin selection when adding wallets on single coin app --- lib/app_config.dart | 2 ++ .../wallets_view/sub_widgets/all_wallets.dart | 29 +++++++++++++-- .../sub_widgets/empty_wallets.dart | 35 +++++++++++++++---- lib/pages/wallets_view/wallets_overview.dart | 12 +++++-- .../my_stack_view/my_wallets.dart | 29 +++++++++++++-- scripts/app_config/configure_campfire.sh | 1 - 6 files changed, 92 insertions(+), 16 deletions(-) diff --git a/lib/app_config.dart b/lib/app_config.dart index a9ea781c7..89e847b93 100644 --- a/lib/app_config.dart +++ b/lib/app_config.dart @@ -24,6 +24,8 @@ abstract class AppConfig { static List get coins => _supportedCoins; + static bool get isSingleCoinApp => coins.length == 1; + static CryptoCurrency? getCryptoCurrencyFor(String coinIdentifier) { try { return coins.firstWhere((e) => e.identifier == coinIdentifier); diff --git a/lib/pages/wallets_view/sub_widgets/all_wallets.dart b/lib/pages/wallets_view/sub_widgets/all_wallets.dart index 067fcdcb3..820da0365 100644 --- a/lib/pages/wallets_view/sub_widgets/all_wallets.dart +++ b/lib/pages/wallets_view/sub_widgets/all_wallets.dart @@ -10,12 +10,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import '../../add_wallet_views/add_wallet_view/add_wallet_view.dart'; -import 'wallet_list_item.dart'; + +import '../../../app_config.dart'; +import '../../../models/add_wallet_list_entity/sub_classes/coin_entity.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/text_styles.dart'; import '../../../wallets/isar/providers/all_wallets_info_provider.dart'; import '../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../add_wallet_views/add_wallet_view/add_wallet_view.dart'; +import '../../add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart'; +import '../wallets_overview.dart'; +import 'wallet_list_item.dart'; class AllWallets extends StatelessWidget { const AllWallets({super.key}); @@ -37,7 +42,19 @@ class AllWallets extends StatelessWidget { CustomTextButton( text: "Add new", onTap: () { - Navigator.of(context).pushNamed(AddWalletView.routeName); + final String route; + final Object? args; + if (AppConfig.isSingleCoinApp) { + route = CreateOrRestoreWalletView.routeName; + args = CoinEntity(AppConfig.coins.first); + } else { + route = AddWalletView.routeName; + args = null; + } + Navigator.of(context).pushNamed( + route, + arguments: args, + ); }, ), ], @@ -50,6 +67,12 @@ class AllWallets extends StatelessWidget { builder: (_, ref, __) { final walletsByCoin = ref.watch(pAllWalletsInfoByCoin); + if (AppConfig.isSingleCoinApp && walletsByCoin.isNotEmpty) { + return WalletsOverview( + coin: AppConfig.coins.first, + ); + } + return ListView.builder( itemCount: walletsByCoin.length, itemBuilder: (builderContext, index) { diff --git a/lib/pages/wallets_view/sub_widgets/empty_wallets.dart b/lib/pages/wallets_view/sub_widgets/empty_wallets.dart index 905ee350f..53581c2f8 100644 --- a/lib/pages/wallets_view/sub_widgets/empty_wallets.dart +++ b/lib/pages/wallets_view/sub_widgets/empty_wallets.dart @@ -13,12 +13,16 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import '../../add_wallet_views/add_wallet_view/add_wallet_view.dart'; + +import '../../../app_config.dart'; +import '../../../models/add_wallet_list_entity/sub_classes/coin_entity.dart'; import '../../../themes/stack_colors.dart'; import '../../../themes/theme_providers.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; +import '../../add_wallet_views/add_wallet_view/add_wallet_view.dart'; +import '../../add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart'; class EmptyWallets extends ConsumerWidget { const EmptyWallets({super.key}); @@ -116,13 +120,30 @@ class AddWalletButton extends ConsumerWidget { .extension()! .getPrimaryEnabledButtonStyle(context), onPressed: () { - if (isDesktop) { - Navigator.of( - context, - rootNavigator: true, - ).pushNamed(AddWalletView.routeName); + if (AppConfig.isSingleCoinApp) { + if (isDesktop) { + Navigator.of( + context, + rootNavigator: true, + ).pushNamed( + CreateOrRestoreWalletView.routeName, + arguments: CoinEntity(AppConfig.coins.first), + ); + } else { + Navigator.of(context).pushNamed( + CreateOrRestoreWalletView.routeName, + arguments: CoinEntity(AppConfig.coins.first), + ); + } } else { - Navigator.of(context).pushNamed(AddWalletView.routeName); + if (isDesktop) { + Navigator.of( + context, + rootNavigator: true, + ).pushNamed(AddWalletView.routeName); + } else { + Navigator.of(context).pushNamed(AddWalletView.routeName); + } } }, child: Center( diff --git a/lib/pages/wallets_view/wallets_overview.dart b/lib/pages/wallets_view/wallets_overview.dart index f557e6f7e..6fb6cc718 100644 --- a/lib/pages/wallets_view/wallets_overview.dart +++ b/lib/pages/wallets_view/wallets_overview.dart @@ -14,6 +14,7 @@ import 'package:flutter_svg/svg.dart'; import 'package:isar/isar.dart'; import 'package:tuple/tuple.dart'; +import '../../app_config.dart'; import '../../models/add_wallet_list_entity/sub_classes/coin_entity.dart'; import '../../models/isar/models/ethereum/eth_contract.dart'; import '../../pages_desktop_specific/my_stack_view/dialogs/desktop_expanding_wallet_card.dart'; @@ -44,10 +45,12 @@ class WalletsOverview extends ConsumerStatefulWidget { super.key, required this.coin, this.navigatorState, + this.overrideSimpleWalletCardPopPreviousValueWith, }); final CryptoCurrency coin; final NavigatorState? navigatorState; + final bool? overrideSimpleWalletCardPopPreviousValueWith; static const routeName = "/walletsOverview"; @@ -176,7 +179,7 @@ class _EthWalletsOverviewState extends ConsumerState { @override Widget build(BuildContext context) { return ConditionalParent( - condition: !isDesktop, + condition: !isDesktop && !AppConfig.isSingleCoinApp, builder: (child) => Background( child: Scaffold( backgroundColor: @@ -321,7 +324,12 @@ class _EthWalletsOverviewState extends ConsumerState { ), child: SimpleWalletCard( walletId: element.item1.walletId, - popPrevious: isDesktop, + popPrevious: widget + .overrideSimpleWalletCardPopPreviousValueWith == + null + ? isDesktop + : widget + .overrideSimpleWalletCardPopPreviousValueWith!, desktopNavigatorState: isDesktop ? widget.navigatorState : null, ), diff --git a/lib/pages_desktop_specific/my_stack_view/my_wallets.dart b/lib/pages_desktop_specific/my_stack_view/my_wallets.dart index 70a756452..66ea03ee7 100644 --- a/lib/pages_desktop_specific/my_stack_view/my_wallets.dart +++ b/lib/pages_desktop_specific/my_stack_view/my_wallets.dart @@ -11,7 +11,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../../app_config.dart'; +import '../../models/add_wallet_list_entity/sub_classes/coin_entity.dart'; import '../../pages/add_wallet_views/add_wallet_view/add_wallet_view.dart'; +import '../../pages/add_wallet_views/create_or_restore_wallet_view/create_or_restore_wallet_view.dart'; +import '../../pages/wallets_view/wallets_overview.dart'; import '../../providers/providers.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/text_styles.dart'; @@ -68,10 +72,23 @@ class _MyWalletsState extends ConsumerState { CustomTextButton( text: "Add new wallet", onTap: () { + final String route; + final Object? args; + if (AppConfig.isSingleCoinApp) { + route = CreateOrRestoreWalletView.routeName; + args = CoinEntity(AppConfig.coins.first); + } else { + route = AddWalletView.routeName; + args = null; + } + Navigator.of( context, rootNavigator: true, - ).pushNamed(AddWalletView.routeName); + ).pushNamed( + route, + arguments: args, + ); }, ), ], @@ -80,8 +97,14 @@ class _MyWalletsState extends ConsumerState { const SizedBox( height: 20, ), - const Expanded( - child: WalletSummaryTable(), + Expanded( + child: AppConfig.isSingleCoinApp + ? WalletsOverview( + coin: AppConfig.coins.first, + navigatorState: Navigator.of(context), + overrideSimpleWalletCardPopPreviousValueWith: false, + ) + : const WalletSummaryTable(), ), ], ), diff --git a/scripts/app_config/configure_campfire.sh b/scripts/app_config/configure_campfire.sh index 6298443db..b629c53ad 100755 --- a/scripts/app_config/configure_campfire.sh +++ b/scripts/app_config/configure_campfire.sh @@ -55,7 +55,6 @@ const ({String light, String dark})? _appIconAsset = ( final List _supportedCoins = List.unmodifiable([ Firo(CryptoCurrencyNetwork.main), - Firo(CryptoCurrencyNetwork.test), ]); EOF \ No newline at end of file From 52e73cc6ba106eb70d53d65df98e03d522e7b192 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 6 Jun 2024 16:01:08 -0600 Subject: [PATCH 212/318] hide top home button bar when there is only a single option --- lib/pages/home_view/home_view.dart | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/pages/home_view/home_view.dart b/lib/pages/home_view/home_view.dart index f5e43eac2..9b6f6eddb 100644 --- a/lib/pages/home_view/home_view.dart +++ b/lib/pages/home_view/home_view.dart @@ -126,8 +126,10 @@ class _HomeViewState extends ConsumerState { _rotateIconController = RotateIconController(); _children = [ const WalletsView(), - if (Constants.enableExchange) const ExchangeView(), - if (Constants.enableExchange) const BuyView(), + if (AppConfig.hasFeature(AppFeature.swap) && Constants.enableExchange) + const ExchangeView(), + if (AppConfig.hasFeature(AppFeature.buy) && Constants.enableExchange) + const BuyView(), ]; ref.read(notificationsProvider).startCheckingWatchedNotifications(); @@ -343,7 +345,7 @@ class _HomeViewState extends ConsumerState { ), body: Column( children: [ - if (Constants.enableExchange) + if (_children.length > 1) Container( decoration: BoxDecoration( color: Theme.of(context) From 337b1c01713607df3926ee6f547af10893ea5257 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 7 Jun 2024 08:36:47 -0600 Subject: [PATCH 213/318] frost info text correction --- .../initiate_resharing/complete_reshare_config_view.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/complete_reshare_config_view.dart b/lib/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/complete_reshare_config_view.dart index b771ef7bd..7adb5b4c3 100644 --- a/lib/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/complete_reshare_config_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/frost_ms/initiate_resharing/complete_reshare_config_view.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:frostdart/frostdart.dart'; + import '../../../../../frost_route_generator.dart'; import '../../../../../pages_desktop_specific/my_stack_view/exit_to_my_stack_button.dart'; import '../../../../../providers/db/main_db_provider.dart'; @@ -426,7 +427,7 @@ class _CompleteReshareConfigViewState ), RoundedWhiteContainer( child: Text( - "The number of participants must be equal to or less than the" + "The number of participants must be equal to or greater than the" " number of required signatures.", style: STextStyles.w500_12(context).copyWith( color: From e76ee79c89247a6004b706e59b273ccc6801162e Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 7 Jun 2024 08:45:56 -0600 Subject: [PATCH 214/318] clean up some TODOs --- lib/pages/intro_view.dart | 3 --- lib/pages/wallet_view/wallet_view.dart | 11 ----------- lib/wallets/crypto_currency/coins/bitcoin.dart | 12 ++++++------ .../crypto_currency/coins/bitcoin_frost.dart | 13 +++++++------ lib/wallets/crypto_currency/coins/bitcoincash.dart | 12 ++++++------ lib/wallets/crypto_currency/coins/dogecoin.dart | 12 ++++++------ lib/wallets/crypto_currency/coins/ecash.dart | 12 ++++++------ lib/wallets/crypto_currency/coins/firo.dart | 12 ++++++------ lib/wallets/crypto_currency/coins/litecoin.dart | 12 ++++++------ lib/wallets/crypto_currency/coins/namecoin.dart | 6 +++--- lib/wallets/crypto_currency/coins/particl.dart | 6 +++--- lib/wallets/crypto_currency/crypto_currency.dart | 3 --- lib/wallets/wallet/impl/firo_wallet.dart | 3 ++- 13 files changed, 51 insertions(+), 66 deletions(-) diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index b1666cd04..576d99e3a 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -195,9 +195,6 @@ class AppNameText extends StatelessWidget { Widget build(BuildContext context) { return Text( AppConfig.appName, - // TODO [prio=high]: appName is now static due to `'appName' can't be - // accessed using static access.`", check that that doesn't cause issues - // elsewhere. textAlign: TextAlign.center, style: !isDesktop ? STextStyles.pageTitleH1(context) diff --git a/lib/pages/wallet_view/wallet_view.dart b/lib/pages/wallet_view/wallet_view.dart index fb21fe42a..e4bc2a755 100644 --- a/lib/pages/wallet_view/wallet_view.dart +++ b/lib/pages/wallet_view/wallet_view.dart @@ -191,17 +191,6 @@ class _WalletViewState extends ConsumerState { _rescanningOnOpen = true; _lelantusRescanRecovery = true; _firoRescanRecovery(); - // } else if (ref.read(managerProvider).rescanOnOpenVersion == - // TODO: [prio=med] - // Constants.rescanV1) { - // _rescanningOnOpen = true; - // ref.read(managerProvider).fullRescan(20, 1000).then( - // (_) => ref.read(managerProvider).resetRescanOnOpen().then( - // (_) => WidgetsBinding.instance.addPostFrameCallback( - // (_) => setState(() => _rescanningOnOpen = false), - // ), - // ), - // ); } else { wallet.refresh(); } diff --git a/lib/wallets/crypto_currency/coins/bitcoin.dart b/lib/wallets/crypto_currency/coins/bitcoin.dart index ffdd4c15d..ae1214e3e 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin.dart @@ -94,9 +94,9 @@ class Bitcoin extends Bip39HDCurrency pubHDPrefix: 0x0488b21e, bech32Hrp: "bc", messagePrefix: '\x18Bitcoin Signed Message:\n', - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); case CryptoCurrencyNetwork.test: return coinlib.Network( @@ -107,9 +107,9 @@ class Bitcoin extends Bip39HDCurrency pubHDPrefix: 0x043587cf, bech32Hrp: "tb", messagePrefix: "\x18Bitcoin Signed Message:\n", - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); default: throw Exception("Unsupported network: $network"); diff --git a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart index ed55766c8..9fe8fcf69 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart @@ -1,6 +1,7 @@ import 'dart:typed_data'; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/amount/amount.dart'; @@ -126,9 +127,9 @@ class BitcoinFrost extends FrostCurrency { pubHDPrefix: 0x0488b21e, bech32Hrp: "bc", messagePrefix: '\x18Bitcoin Signed Message:\n', - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); case CryptoCurrencyNetwork.test: return coinlib.Network( @@ -139,9 +140,9 @@ class BitcoinFrost extends FrostCurrency { pubHDPrefix: 0x043587cf, bech32Hrp: "tb", messagePrefix: "\x18Bitcoin Signed Message:\n", - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); default: throw Exception("Unsupported network: $network"); diff --git a/lib/wallets/crypto_currency/coins/bitcoincash.dart b/lib/wallets/crypto_currency/coins/bitcoincash.dart index fb2f66a92..99724e24b 100644 --- a/lib/wallets/crypto_currency/coins/bitcoincash.dart +++ b/lib/wallets/crypto_currency/coins/bitcoincash.dart @@ -101,9 +101,9 @@ class Bitcoincash extends Bip39HDCurrency with ElectrumXCurrencyInterface { pubHDPrefix: 0x0488b21e, bech32Hrp: "bc", messagePrefix: '\x18Bitcoin Signed Message:\n', - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); case CryptoCurrencyNetwork.test: return coinlib.Network( @@ -114,9 +114,9 @@ class Bitcoincash extends Bip39HDCurrency with ElectrumXCurrencyInterface { pubHDPrefix: 0x043587cf, bech32Hrp: "tb", messagePrefix: "\x18Bitcoin Signed Message:\n", - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); default: throw Exception("Unsupported network: $network"); diff --git a/lib/wallets/crypto_currency/coins/dogecoin.dart b/lib/wallets/crypto_currency/coins/dogecoin.dart index cbb9bea1e..2af03fab5 100644 --- a/lib/wallets/crypto_currency/coins/dogecoin.dart +++ b/lib/wallets/crypto_currency/coins/dogecoin.dart @@ -143,9 +143,9 @@ class Dogecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { pubHDPrefix: 0x02facafd, bech32Hrp: "doge", messagePrefix: '\x18Dogecoin Signed Message:\n', - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); case CryptoCurrencyNetwork.test: return coinlib.Network( @@ -156,9 +156,9 @@ class Dogecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { pubHDPrefix: 0x043587cf, bech32Hrp: "tdge", messagePrefix: "\x18Dogecoin Signed Message:\n", - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); default: throw Exception("Unsupported network: $network"); diff --git a/lib/wallets/crypto_currency/coins/ecash.dart b/lib/wallets/crypto_currency/coins/ecash.dart index 2b05784dd..5f420ad55 100644 --- a/lib/wallets/crypto_currency/coins/ecash.dart +++ b/lib/wallets/crypto_currency/coins/ecash.dart @@ -96,9 +96,9 @@ class Ecash extends Bip39HDCurrency with ElectrumXCurrencyInterface { pubHDPrefix: 0x0488b21e, bech32Hrp: "bc", messagePrefix: '\x18Bitcoin Signed Message:\n', - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); case CryptoCurrencyNetwork.test: return coinlib.Network( @@ -109,9 +109,9 @@ class Ecash extends Bip39HDCurrency with ElectrumXCurrencyInterface { pubHDPrefix: 0x043587cf, bech32Hrp: "tb", messagePrefix: "\x18Bitcoin Signed Message:\n", - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); default: throw Exception("Unsupported network: $network"); diff --git a/lib/wallets/crypto_currency/coins/firo.dart b/lib/wallets/crypto_currency/coins/firo.dart index 6880190b6..530bf39e7 100644 --- a/lib/wallets/crypto_currency/coins/firo.dart +++ b/lib/wallets/crypto_currency/coins/firo.dart @@ -89,9 +89,9 @@ class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { pubHDPrefix: 0x0488b21e, bech32Hrp: "bc", messagePrefix: '\x18Zcoin Signed Message:\n', - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); case CryptoCurrencyNetwork.test: return coinlib.Network( @@ -102,9 +102,9 @@ class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { pubHDPrefix: 0x043587cf, bech32Hrp: "tb", messagePrefix: "\x18Zcoin Signed Message:\n", - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); default: throw Exception("Unsupported network: $network"); diff --git a/lib/wallets/crypto_currency/coins/litecoin.dart b/lib/wallets/crypto_currency/coins/litecoin.dart index 880a3260e..a859f9f64 100644 --- a/lib/wallets/crypto_currency/coins/litecoin.dart +++ b/lib/wallets/crypto_currency/coins/litecoin.dart @@ -96,9 +96,9 @@ class Litecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { pubHDPrefix: 0x0488b21e, bech32Hrp: "ltc", messagePrefix: '\x19Litecoin Signed Message:\n', - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); case CryptoCurrencyNetwork.test: return coinlib.Network( @@ -109,9 +109,9 @@ class Litecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { pubHDPrefix: 0x043587cf, bech32Hrp: "tltc", messagePrefix: "\x19Litecoin Signed Message:\n", - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); default: throw Exception("Unsupported network: $network"); diff --git a/lib/wallets/crypto_currency/coins/namecoin.dart b/lib/wallets/crypto_currency/coins/namecoin.dart index 371406ddf..4bc2521bd 100644 --- a/lib/wallets/crypto_currency/coins/namecoin.dart +++ b/lib/wallets/crypto_currency/coins/namecoin.dart @@ -185,9 +185,9 @@ class Namecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { pubHDPrefix: 0x0488b21e, bech32Hrp: "nc", messagePrefix: '\x18Namecoin Signed Message:\n', - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); // case CryptoCurrencyNetwork.test: // TODO: [prio=low] Add testnet support. diff --git a/lib/wallets/crypto_currency/coins/particl.dart b/lib/wallets/crypto_currency/coins/particl.dart index 595f6fbf4..f250792cc 100644 --- a/lib/wallets/crypto_currency/coins/particl.dart +++ b/lib/wallets/crypto_currency/coins/particl.dart @@ -165,9 +165,9 @@ class Particl extends Bip39HDCurrency with ElectrumXCurrencyInterface { pubHDPrefix: 0x696e82d1, bech32Hrp: "pw", messagePrefix: '\x18Bitcoin Signed Message:\n', - minFee: BigInt.from(1), // TODO [prio=high]. - minOutput: dustLimit.raw, // TODO. - feePerKb: BigInt.from(1), // TODO. + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently ); // case CryptoCurrencyNetwork.test: // TODO: [prio=low] Add testnet. diff --git a/lib/wallets/crypto_currency/crypto_currency.dart b/lib/wallets/crypto_currency/crypto_currency.dart index 7b30c85fe..eb6e88daa 100644 --- a/lib/wallets/crypto_currency/crypto_currency.dart +++ b/lib/wallets/crypto_currency/crypto_currency.dart @@ -29,9 +29,6 @@ enum CryptoCurrencyNetwork { } abstract class CryptoCurrency { - // @Deprecated("[prio=low] Should eventually move away from Coin enum") - // late final CryptoCurrency coin; - final CryptoCurrencyNetwork network; CryptoCurrency(this.network); diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index 89f6cdb3e..faa9df0a6 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -567,7 +567,8 @@ class FiroWallet extends Bip39HDWallet String? label; if (jsonUTXO["value"] is int) { - // TODO: [prio=med] use special electrumx call to verify the 1000 Firo output is masternode + // TODO: [prio=high] use special electrumx call to verify the 1000 Firo output is masternode + // electrumx call should exist now. Unsure if it works though blocked = Amount.fromDecimal( Decimal.fromInt( 1000, // 1000 firo output is a possible master node From 6e3d96cdfa9e991101699e81ea2c1a9ee871ccb4 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 7 Jun 2024 09:11:25 -0600 Subject: [PATCH 215/318] WIP incomplete building docs --- docs/building.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/building.md b/docs/building.md index acda23499..79e1bfb64 100644 --- a/docs/building.md +++ b/docs/building.md @@ -13,12 +13,12 @@ Here you will find instructions on how to install the necessary tools for buildi The following instructions are for building and running on a Linux host. Alternatively, see the [Mac](#mac-host) and/or [Windows](#windows-host) section. This entire section (except for the Android Studio section) needs to be completed in WSL if building on a Windows host. ### Flutter -Install Flutter 3.19.6 by [following their guide](https://docs.flutter.dev/get-started/install/linux/desktop?tab=download#install-the-flutter-sdk). You can also clone https://github.com/flutter/flutter, check out the `3.19.6` tag, and add its `flutter/bin` folder to your PATH as in +Install Flutter 3.22.1 by [following their guide](https://docs.flutter.dev/get-started/install/linux/desktop?tab=download#install-the-flutter-sdk). You can also clone https://github.com/flutter/flutter, check out the `3.22.1` tag, and add its `flutter/bin` folder to your PATH as in ```sh FLUTTER_DIR="$HOME/development/flutter" git clone https://github.com/flutter/flutter.git "$FLUTTER_DIR" cd "$FLUTTER_DIR" -git checkout 3.16.9 +git checkout 3.22.1 echo 'export PATH="$PATH:'"$FLUTTER_DIR"'/bin"' >> "$HOME/.profile" source "$HOME/.profile" flutter precache @@ -119,14 +119,14 @@ or manually by creating the files referenced in that script with the specified c #### Building plugins for Android > Warning: This will take a long time, please be patient ``` -cd scripts/android -./build_all.sh +cd scripts +./build_app.sh -a stack_wallet -p android ``` #### Building plugins for Linux ``` -cd scripts/linux -./build_all.sh +cd scripts +./build_app.sh -a stack_wallet -p linux ``` ##### Remove system packages (may be needed for building flutter_libmonero) @@ -142,11 +142,11 @@ sudo apt-get remove '^libboost.*-dev.*' ``` -#### Building plugins for Windows +#### Building plugins and configure for Windows ``` -cd scripts/windows +cd scripts ./deps.sh -./build_all.sh +./build_app.sh -a stack_wallet -p windows ``` ### Running @@ -203,19 +203,19 @@ rustup target add aarch64-apple-ios aarch64-apple-darwin Optionally download [Android Studio](https://developer.android.com/studio) as an IDE and activate its Dart and Flutter plugins. VS Code may work as an alternative, but this is not recommended. ### Flutter -Install [Flutter](https://docs.flutter.dev/get-started/install) 3.16.8 on your Mac host by following [these instructions](https://docs.flutter.dev/get-started/install/macos). Run `flutter doctor` in a terminal to confirm its installation. +Install [Flutter](https://docs.flutter.dev/get-started/install) 3.22.1 on your Mac host by following [these instructions](https://docs.flutter.dev/get-started/install/macos). Run `flutter doctor` in a terminal to confirm its installation. -### Build plugins +### Build plugins and configure #### Building plugins for iOS ``` -cd scripts/ios -./build_all.sh +cd scripts +./build_app.sh -a stack_wallet -p ios ``` #### Building plugins for macOS ``` -cd scripts/macos -./build_all.sh +cd scripts +./build_app.sh -a stack_wallet -p macos ``` ### Run prebuild script @@ -278,13 +278,13 @@ Copy the resulting `dll`s to their respective positions on the Windows host: Frostdart will be built by the Windows host later. ### Install Flutter on Windows host -Install Flutter 3.19.6 on your Windows host (not in WSL2) by [following their guide](https://docs.flutter.dev/get-started/install/windows/desktop?tab=download#install-the-flutter-sdk) or by cloning https://github.com/flutter/flutter, checking out the `3.19.6` tag, and adding its `flutter/bin` folder to your PATH as in +Install Flutter 3.22.1 on your Windows host (not in WSL2) by [following their guide](https://docs.flutter.dev/get-started/install/windows/desktop?tab=download#install-the-flutter-sdk) or by cloning https://github.com/flutter/flutter, checking out the `3.22.1` tag, and adding its `flutter/bin` folder to your PATH as in ```bat @echo off set "FLUTTER_DIR=%USERPROFILE%\development\flutter" git clone https://github.com/flutter/flutter.git "%FLUTTER_DIR%" cd /d "%FLUTTER_DIR%" -git checkout 3.16.9 +git checkout 3.22.1 setx PATH "%PATH%;%FLUTTER_DIR%\bin" echo Flutter setup completed. Please restart your command prompt. ``` From 82fb5427407f7d2567f2056473ba68a7e6fa5d22 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 7 Jun 2024 10:30:35 -0600 Subject: [PATCH 216/318] allow clearing of spark cache on desktop --- .../more_features/more_features_dialog.dart | 327 ++++++++++++------ 1 file changed, 215 insertions(+), 112 deletions(-) diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart index 1ab2a6781..f88279263 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart @@ -8,12 +8,11 @@ * */ -import 'dart:convert'; - import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import '../../../../../db/sqlite/firo_cache.dart'; import '../../../../../providers/db/main_db_provider.dart'; import '../../../../../providers/global/prefs_provider.dart'; import '../../../../../providers/global/wallets_provider.dart'; @@ -23,10 +22,13 @@ import '../../../../../utilities/text_styles.dart'; import '../../../../../wallets/crypto_currency/coins/banano.dart'; import '../../../../../wallets/crypto_currency/coins/firo.dart'; import '../../../../../wallets/isar/models/wallet_info.dart'; +import '../../../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/coin_control_interface.dart'; +import '../../../../../wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; import '../../../../../widgets/custom_buttons/draggable_switch_button.dart'; import '../../../../../widgets/desktop/desktop_dialog.dart'; import '../../../../../widgets/desktop/desktop_dialog_close_button.dart'; @@ -59,9 +61,26 @@ class MoreFeaturesDialog extends ConsumerStatefulWidget { } class _MoreFeaturesDialogState extends ConsumerState { - bool _enableLelantusScanning = false; bool _isUpdatingLelantusScanning = false; // Mutex. + Future _switchToggled(bool newValue) async { + if (_isUpdatingLelantusScanning) return; + _isUpdatingLelantusScanning = true; // Lock mutex. + + try { + // Toggle enableLelantusScanning in wallet info. + await ref.read(pWalletInfo(widget.walletId)).updateOtherData( + newEntries: { + WalletInfoKeys.enableLelantusScanning: newValue, + }, + isar: ref.read(mainDBProvider).isar, + ); + } finally { + // ensure _isUpdatingLelantusScanning is set to false no matter what + _isUpdatingLelantusScanning = false; + } + } + @override Widget build(BuildContext context) { final wallet = ref.watch( @@ -70,14 +89,6 @@ class _MoreFeaturesDialogState extends ConsumerState { ), ); - // Parse otherDataJsonString to get the enableLelantusScanning value. - if (wallet.info.otherDataJsonString != null) { - final otherDataJson = json.decode(wallet.info.otherDataJsonString!); - _enableLelantusScanning = - otherDataJson[WalletInfoKeys.enableLelantusScanning] as bool? ?? - false; - } - final coinControlPrefEnabled = ref.watch( prefsChangeNotifierProvider.select( (value) => value.enableCoinControl, @@ -108,7 +119,7 @@ class _MoreFeaturesDialogState extends ConsumerState { label: "Anonymize funds", detail: "Anonymize funds", iconAsset: Assets.svg.recycle, - onPressed: () => widget.onAnonymizeAllPressed?.call(), + onPressed: () async => widget.onAnonymizeAllPressed?.call(), ), // TODO: [prio=med] // if (manager.hasWhirlpoolSupport) @@ -123,93 +134,68 @@ class _MoreFeaturesDialogState extends ConsumerState { label: "Coin control", detail: "Control, freeze, and utilize outputs at your discretion", iconAsset: Assets.svg.coinControl.gamePad, - onPressed: () => widget.onCoinControlPressed?.call(), + onPressed: () async => widget.onCoinControlPressed?.call(), ), if (wallet is PaynymInterface) _MoreFeaturesItem( label: "PayNym", detail: "Increased address privacy using BIP47", iconAsset: Assets.svg.robotHead, - onPressed: () => widget.onPaynymPressed?.call(), + onPressed: () async => widget.onPaynymPressed?.call(), ), if (wallet is OrdinalsInterface) _MoreFeaturesItem( label: "Ordinals", detail: "View and control your ordinals in Stack", iconAsset: Assets.svg.ordinal, - onPressed: () => widget.onOrdinalsPressed?.call(), + onPressed: () async => widget.onOrdinalsPressed?.call(), ), if (wallet.info.coin is Banano) _MoreFeaturesItem( label: "MonKey", detail: "Generate Banano MonKey", iconAsset: Assets.svg.monkey, - onPressed: () => widget.onMonkeyPressed?.call(), + onPressed: () async => widget.onMonkeyPressed?.call(), ), if (wallet is CashFusionInterface) _MoreFeaturesItem( label: "Fusion", detail: "Decentralized mixing protocol", iconAsset: Assets.svg.cashFusion, - onPressed: () => widget.onFusionPressed?.call(), + onPressed: () async => widget.onFusionPressed?.call(), ), - if (wallet.info.coin is Firo) - Padding( - padding: const EdgeInsets.symmetric( - vertical: 6, - horizontal: 32, - ), - child: RoundedContainer( - color: Colors.transparent, - borderColor: Theme.of(context) - .extension()! - .textFieldDefaultBG, - child: Row( - children: [ - SizedBox(width: 3), - SizedBox( - height: 20, - width: 40, - child: DraggableSwitchButton( - isOn: _enableLelantusScanning, - onValueChanged: (newValue) async { - if (_isUpdatingLelantusScanning) return; - _isUpdatingLelantusScanning = true; // Lock mutex. - - // Toggle enableLelantusScanning in wallet info. - await wallet.info.updateOtherData( - newEntries: { - WalletInfoKeys.enableLelantusScanning: - !_enableLelantusScanning, - }, - isar: ref.read(mainDBProvider).isar, - ); - - setState(() { - _enableLelantusScanning = !_enableLelantusScanning; - _isUpdatingLelantusScanning = false; // Free mutex. - }); - }, + if (wallet is SparkInterface) + const _MoreFeaturesClearSparkCacheItem(), + if (wallet is LelantusInterface) + _MoreFeaturesItemBase( + child: Row( + children: [ + const SizedBox(width: 3), + SizedBox( + height: 20, + width: 40, + child: DraggableSwitchButton( + isOn: ref.watch( + pWalletInfo(widget.walletId) + .select((value) => value.otherData), + )[WalletInfoKeys.enableLelantusScanning] as bool? ?? + false, + onValueChanged: _switchToggled, + ), + ), + const SizedBox( + width: 16, + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Scan for Lelantus transactions", + style: STextStyles.w600_20(context), ), - ), - const SizedBox( - width: 16, - ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "Scan for Lelantus transactions", - style: STextStyles.w600_20(context), - ), - // Text( - // detail, - // style: STextStyles.desktopTextExtraExtraSmall(context), - // ), - ], - ), - ], - ), + ], + ), + ], ), ), const SizedBox( @@ -221,7 +207,7 @@ class _MoreFeaturesDialogState extends ConsumerState { } } -class _MoreFeaturesItem extends StatelessWidget { +class _MoreFeaturesItem extends StatefulWidget { const _MoreFeaturesItem({ super.key, required this.label, @@ -236,6 +222,78 @@ class _MoreFeaturesItem extends StatelessWidget { final String label; final String detail; final String iconAsset; + final Future Function()? onPressed; + + @override + State<_MoreFeaturesItem> createState() => _MoreFeaturesItemState(); +} + +class _MoreFeaturesItemState extends State<_MoreFeaturesItem> { + bool _onPressedLock = false; + + @override + Widget build(BuildContext context) { + return _MoreFeaturesItemBase( + onPressed: () async { + if (_onPressedLock) { + return; + } + _onPressedLock = true; + try { + await widget.onPressed?.call(); + } finally { + _onPressedLock = false; + } + }, + child: Row( + children: [ + RoundedContainer( + padding: const EdgeInsets.all(0), + color: Theme.of(context).extension()!.settingsIconBack, + width: _MoreFeaturesItem.iconSizeBG, + height: _MoreFeaturesItem.iconSizeBG, + radiusMultiplier: _MoreFeaturesItem.iconSizeBG, + child: Center( + child: SvgPicture.asset( + widget.iconAsset, + width: _MoreFeaturesItem.iconSize, + height: _MoreFeaturesItem.iconSize, + color: Theme.of(context) + .extension()! + .settingsIconIcon, + ), + ), + ), + const SizedBox( + width: 16, + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + widget.label, + style: STextStyles.w600_20(context), + ), + Text( + widget.detail, + style: STextStyles.desktopTextExtraExtraSmall(context), + ), + ], + ), + ], + ), + ); + } +} + +class _MoreFeaturesItemBase extends StatelessWidget { + const _MoreFeaturesItemBase({ + super.key, + required this.child, + this.onPressed, + }); + + final Widget child; final VoidCallback? onPressed; @override @@ -250,44 +308,89 @@ class _MoreFeaturesItem extends StatelessWidget { borderColor: Theme.of(context).extension()!.textFieldDefaultBG, onPressed: onPressed, - child: Row( - children: [ - RoundedContainer( - padding: const EdgeInsets.all(0), - color: - Theme.of(context).extension()!.settingsIconBack, - width: iconSizeBG, - height: iconSizeBG, - radiusMultiplier: iconSizeBG, - child: Center( - child: SvgPicture.asset( - iconAsset, - width: iconSize, - height: iconSize, - color: Theme.of(context) - .extension()! - .settingsIconIcon, - ), - ), - ), - const SizedBox( - width: 16, - ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - label, - style: STextStyles.w600_20(context), - ), - Text( - detail, - style: STextStyles.desktopTextExtraExtraSmall(context), - ), - ], - ), - ], - ), + child: child, + ), + ); + } +} + +class _MoreFeaturesClearSparkCacheItem extends StatefulWidget { + const _MoreFeaturesClearSparkCacheItem({ + super.key, + }); + + static const double iconSizeBG = 46; + static const double iconSize = 24; + + @override + State<_MoreFeaturesClearSparkCacheItem> createState() => + _MoreFeaturesClearSparkCacheItemState(); +} + +class _MoreFeaturesClearSparkCacheItemState + extends State<_MoreFeaturesClearSparkCacheItem> { + bool _onPressedLock = false; + + static const label = "Reset Spark electrumx cache"; + + @override + Widget build(BuildContext context) { + return _MoreFeaturesItemBase( + onPressed: () async { + if (_onPressedLock) { + return; + } + _onPressedLock = true; + try { + await FiroCacheCoordinator.clearSharedCache(); + setState(() { + // trigger rebuild for cache size display + }); + } finally { + _onPressedLock = false; + } + }, + child: Row( + children: [ + RoundedContainer( + padding: const EdgeInsets.all(0), + color: Theme.of(context).extension()!.settingsIconBack, + width: _MoreFeaturesItem.iconSizeBG, + height: _MoreFeaturesItem.iconSizeBG, + radiusMultiplier: _MoreFeaturesItem.iconSizeBG, + child: Center( + child: SvgPicture.asset( + Assets.svg.x, + width: _MoreFeaturesItem.iconSize, + height: _MoreFeaturesItem.iconSize, + color: Theme.of(context) + .extension()! + .settingsIconIcon, + ), + ), + ), + const SizedBox( + width: 16, + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: STextStyles.w600_20(context), + ), + FutureBuilder( + future: FiroCacheCoordinator.getSparkCacheSize(), + builder: (_, snapshot) { + return Text( + snapshot.data ?? "", + style: STextStyles.desktopTextExtraExtraSmall(context), + ); + }, + ), + ], + ), + ], ), ); } From 3b9676f40eaf5360e16241d46ef1da6e11c14f41 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 7 Jun 2024 15:56:57 -0500 Subject: [PATCH 217/318] add and use defaultFeeRate per ElectrumX coin --- lib/electrumx_rpc/electrumx_client.dart | 30 ++++++++++++------- .../crypto_currency/coins/bitcoin.dart | 4 +++ .../crypto_currency/coins/bitcoin_frost.dart | 3 ++ .../crypto_currency/coins/bitcoincash.dart | 3 ++ .../crypto_currency/coins/dogecoin.dart | 4 +++ lib/wallets/crypto_currency/coins/ecash.dart | 3 ++ lib/wallets/crypto_currency/coins/firo.dart | 3 ++ .../crypto_currency/coins/litecoin.dart | 3 ++ .../crypto_currency/coins/namecoin.dart | 3 ++ .../crypto_currency/coins/particl.dart | 3 ++ .../crypto_currency/coins/peercoin.dart | 3 ++ .../electrumx_currency_interface.dart | 3 ++ 12 files changed, 54 insertions(+), 11 deletions(-) diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index d0a470cd1..953939a80 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -10,6 +10,7 @@ import 'dart:async'; import 'dart:io'; +import 'dart:math'; import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:decimal/decimal.dart'; @@ -28,6 +29,7 @@ import '../services/tor_service.dart'; import '../utilities/logger.dart'; import '../utilities/prefs.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; +import '../wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'client_manager.dart'; class WifiOnlyException implements Exception {} @@ -1113,17 +1115,23 @@ class ElectrumXClient { ], ); try { - // If the response is -1 or null, return a temporary hardcoded value for - // Dogecoin. This is a temporary fix until the fee estimation is fixed. - if (cryptoCurrency is Dogecoin && - (response == null || - response == -1 || - Decimal.parse(response.toString()) == Decimal.parse("-1"))) { - // Return 0.05 for slow, 0.2 for average, and 1 for fast txs. - // These numbers produce tx fees in line with txs in the wild on - // https://dogechain.info/ - return Decimal.parse((1 / blocks).toString()); - // TODO [prio=med]: Fix fee estimation. + // If the response is -1 or null, fall back to the defaultFeeRate. + if (response == null || + response == -1 || + Decimal.parse(response.toString()) == Decimal.parse("-1")) { + if (CryptoCurrency is! BitcoinFrost) { + // TODO [prio=low]: Take `blocks` into account. + return Decimal.parse( + ((cryptoCurrency as ElectrumXCurrencyInterface).defaultFeeRate / + pow(10, cryptoCurrency.fractionDigits)) + .toString()); + } else { + // Use Bitcoin's default fee rate for Bitcoin Frost. + return Decimal.parse( + ((Bitcoin(CryptoCurrencyNetwork.main).defaultFeeRate / + pow(10, cryptoCurrency.fractionDigits)) + .toString())); + } } return Decimal.parse(response.toString()); } catch (e, s) { diff --git a/lib/wallets/crypto_currency/coins/bitcoin.dart b/lib/wallets/crypto_currency/coins/bitcoin.dart index ae1214e3e..3c08f98df 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin.dart @@ -295,4 +295,8 @@ class Bitcoin extends Bip39HDCurrency @override int get transactionVersion => 1; + + @override + int get defaultFeeRate => 1000; + // https://github.com/bitcoin/bitcoin/blob/feab35189bc00bc4cf15e9dcb5cf6b34ff3a1e91/test/functional/mempool_limit.py#L259 } diff --git a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart index 9fe8fcf69..386b3806b 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart @@ -201,4 +201,7 @@ class BitcoinFrost extends FrostCurrency { ); } } + + @override + int get defaultFeeRate => 1000; } diff --git a/lib/wallets/crypto_currency/coins/bitcoincash.dart b/lib/wallets/crypto_currency/coins/bitcoincash.dart index 99724e24b..aa8a65885 100644 --- a/lib/wallets/crypto_currency/coins/bitcoincash.dart +++ b/lib/wallets/crypto_currency/coins/bitcoincash.dart @@ -367,4 +367,7 @@ class Bitcoincash extends Bip39HDCurrency with ElectrumXCurrencyInterface { @override int get transactionVersion => 2; + + @override + int get defaultFeeRate => 1000; } diff --git a/lib/wallets/crypto_currency/coins/dogecoin.dart b/lib/wallets/crypto_currency/coins/dogecoin.dart index 2af03fab5..924b7e8d5 100644 --- a/lib/wallets/crypto_currency/coins/dogecoin.dart +++ b/lib/wallets/crypto_currency/coins/dogecoin.dart @@ -252,4 +252,8 @@ class Dogecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { @override int get transactionVersion => 1; + + @override + int get defaultFeeRate => 1000000; + // https://github.com/dogecoin/dogecoin/blob/master/doc/fee-recommendation.md } diff --git a/lib/wallets/crypto_currency/coins/ecash.dart b/lib/wallets/crypto_currency/coins/ecash.dart index 5f420ad55..0ecee375d 100644 --- a/lib/wallets/crypto_currency/coins/ecash.dart +++ b/lib/wallets/crypto_currency/coins/ecash.dart @@ -339,4 +339,7 @@ class Ecash extends Bip39HDCurrency with ElectrumXCurrencyInterface { @override int get transactionVersion => 2; + + @override + int get defaultFeeRate => 200; } diff --git a/lib/wallets/crypto_currency/coins/firo.dart b/lib/wallets/crypto_currency/coins/firo.dart index 530bf39e7..c050272a4 100644 --- a/lib/wallets/crypto_currency/coins/firo.dart +++ b/lib/wallets/crypto_currency/coins/firo.dart @@ -270,4 +270,7 @@ class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { @override int get transactionVersion => 1; + + @override + int get defaultFeeRate => 1000; } diff --git a/lib/wallets/crypto_currency/coins/litecoin.dart b/lib/wallets/crypto_currency/coins/litecoin.dart index a859f9f64..343a387ab 100644 --- a/lib/wallets/crypto_currency/coins/litecoin.dart +++ b/lib/wallets/crypto_currency/coins/litecoin.dart @@ -283,4 +283,7 @@ class Litecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { @override int get transactionVersion => 1; + + @override + int get defaultFeeRate => 1000; } diff --git a/lib/wallets/crypto_currency/coins/namecoin.dart b/lib/wallets/crypto_currency/coins/namecoin.dart index 4bc2521bd..6de96fe2e 100644 --- a/lib/wallets/crypto_currency/coins/namecoin.dart +++ b/lib/wallets/crypto_currency/coins/namecoin.dart @@ -255,4 +255,7 @@ class Namecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { @override int get transactionVersion => 1; + + @override + int get defaultFeeRate => 1000; } diff --git a/lib/wallets/crypto_currency/coins/particl.dart b/lib/wallets/crypto_currency/coins/particl.dart index f250792cc..685c04739 100644 --- a/lib/wallets/crypto_currency/coins/particl.dart +++ b/lib/wallets/crypto_currency/coins/particl.dart @@ -233,4 +233,7 @@ class Particl extends Bip39HDCurrency with ElectrumXCurrencyInterface { @override int get transactionVersion => 1; + + @override + int get defaultFeeRate => 20000; } diff --git a/lib/wallets/crypto_currency/coins/peercoin.dart b/lib/wallets/crypto_currency/coins/peercoin.dart index dec4ab846..eb84c9c87 100644 --- a/lib/wallets/crypto_currency/coins/peercoin.dart +++ b/lib/wallets/crypto_currency/coins/peercoin.dart @@ -257,4 +257,7 @@ class Peercoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { @override int get transactionVersion => 3; + + @override + int get defaultFeeRate => 5000; } diff --git a/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart b/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart index 30ddf7c70..8b8fa9a25 100644 --- a/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart +++ b/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart @@ -2,4 +2,7 @@ import '../intermediate/bip39_hd_currency.dart'; mixin ElectrumXCurrencyInterface on Bip39HDCurrency { int get transactionVersion; + + /// The default fee rate in satoshis per kilobyte. + int get defaultFeeRate; } From 713d8b0cde302b1d864052ace61850fb406613be Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 7 Jun 2024 17:04:42 -0500 Subject: [PATCH 218/318] use BigInt defaultFeeRate, BitcoinFrost's default, right cryptoCurrency --- lib/electrumx_rpc/electrumx_client.dart | 28 ++++++++++--------- .../crypto_currency/coins/bitcoin.dart | 2 +- .../crypto_currency/coins/bitcoin_frost.dart | 5 ++-- .../crypto_currency/coins/bitcoincash.dart | 2 +- .../crypto_currency/coins/dogecoin.dart | 2 +- lib/wallets/crypto_currency/coins/ecash.dart | 2 +- lib/wallets/crypto_currency/coins/firo.dart | 2 +- .../crypto_currency/coins/litecoin.dart | 2 +- .../crypto_currency/coins/namecoin.dart | 2 +- .../crypto_currency/coins/particl.dart | 2 +- .../crypto_currency/coins/peercoin.dart | 2 +- .../electrumx_currency_interface.dart | 2 +- 12 files changed, 28 insertions(+), 25 deletions(-) diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index 953939a80..bae7a3637 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -10,7 +10,6 @@ import 'dart:async'; import 'dart:io'; -import 'dart:math'; import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:decimal/decimal.dart'; @@ -26,6 +25,7 @@ import '../services/event_bus/events/global/tor_connection_status_changed_event. import '../services/event_bus/events/global/tor_status_changed_event.dart'; import '../services/event_bus/global_event_bus.dart'; import '../services/tor_service.dart'; +import '../utilities/amount/amount.dart'; import '../utilities/logger.dart'; import '../utilities/prefs.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; @@ -1115,22 +1115,24 @@ class ElectrumXClient { ], ); try { - // If the response is -1 or null, fall back to the defaultFeeRate. if (response == null || response == -1 || Decimal.parse(response.toString()) == Decimal.parse("-1")) { - if (CryptoCurrency is! BitcoinFrost) { - // TODO [prio=low]: Take `blocks` into account. - return Decimal.parse( - ((cryptoCurrency as ElectrumXCurrencyInterface).defaultFeeRate / - pow(10, cryptoCurrency.fractionDigits)) - .toString()); + if (cryptoCurrency is BitcoinFrost) { + final rate = Amount( + rawValue: (cryptoCurrency as BitcoinFrost).defaultFeeRate, + fractionDigits: cryptoCurrency.fractionDigits, + ); + return rate.decimal; + } else if (cryptoCurrency is ElectrumXCurrencyInterface) { + final rate = Amount( + rawValue: + (cryptoCurrency as ElectrumXCurrencyInterface).defaultFeeRate, + fractionDigits: cryptoCurrency.fractionDigits, + ); + return rate.decimal; } else { - // Use Bitcoin's default fee rate for Bitcoin Frost. - return Decimal.parse( - ((Bitcoin(CryptoCurrencyNetwork.main).defaultFeeRate / - pow(10, cryptoCurrency.fractionDigits)) - .toString())); + throw Exception("Unexpected cryptoCurrency found!"); } } return Decimal.parse(response.toString()); diff --git a/lib/wallets/crypto_currency/coins/bitcoin.dart b/lib/wallets/crypto_currency/coins/bitcoin.dart index 3c08f98df..dd103c794 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin.dart @@ -297,6 +297,6 @@ class Bitcoin extends Bip39HDCurrency int get transactionVersion => 1; @override - int get defaultFeeRate => 1000; + BigInt get defaultFeeRate => BigInt.from(1000); // https://github.com/bitcoin/bitcoin/blob/feab35189bc00bc4cf15e9dcb5cf6b34ff3a1e91/test/functional/mempool_limit.py#L259 } diff --git a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart index 386b3806b..a5f02ac08 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart @@ -202,6 +202,7 @@ class BitcoinFrost extends FrostCurrency { } } - @override - int get defaultFeeRate => 1000; + // @override + BigInt get defaultFeeRate => BigInt.from(1000); + // https://github.com/bitcoin/bitcoin/blob/feab35189bc00bc4cf15e9dcb5cf6b34ff3a1e91/test/functional/mempool_limit.py#L259 } diff --git a/lib/wallets/crypto_currency/coins/bitcoincash.dart b/lib/wallets/crypto_currency/coins/bitcoincash.dart index aa8a65885..e06578ac6 100644 --- a/lib/wallets/crypto_currency/coins/bitcoincash.dart +++ b/lib/wallets/crypto_currency/coins/bitcoincash.dart @@ -369,5 +369,5 @@ class Bitcoincash extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get transactionVersion => 2; @override - int get defaultFeeRate => 1000; + BigInt get defaultFeeRate => BigInt.from(1000); } diff --git a/lib/wallets/crypto_currency/coins/dogecoin.dart b/lib/wallets/crypto_currency/coins/dogecoin.dart index 924b7e8d5..461d70d95 100644 --- a/lib/wallets/crypto_currency/coins/dogecoin.dart +++ b/lib/wallets/crypto_currency/coins/dogecoin.dart @@ -254,6 +254,6 @@ class Dogecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get transactionVersion => 1; @override - int get defaultFeeRate => 1000000; + BigInt get defaultFeeRate => BigInt.from(1000000); // https://github.com/dogecoin/dogecoin/blob/master/doc/fee-recommendation.md } diff --git a/lib/wallets/crypto_currency/coins/ecash.dart b/lib/wallets/crypto_currency/coins/ecash.dart index 0ecee375d..533ed3747 100644 --- a/lib/wallets/crypto_currency/coins/ecash.dart +++ b/lib/wallets/crypto_currency/coins/ecash.dart @@ -341,5 +341,5 @@ class Ecash extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get transactionVersion => 2; @override - int get defaultFeeRate => 200; + BigInt get defaultFeeRate => BigInt.from(200); } diff --git a/lib/wallets/crypto_currency/coins/firo.dart b/lib/wallets/crypto_currency/coins/firo.dart index c050272a4..47ee606c4 100644 --- a/lib/wallets/crypto_currency/coins/firo.dart +++ b/lib/wallets/crypto_currency/coins/firo.dart @@ -272,5 +272,5 @@ class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get transactionVersion => 1; @override - int get defaultFeeRate => 1000; + BigInt get defaultFeeRate => BigInt.from(1000); } diff --git a/lib/wallets/crypto_currency/coins/litecoin.dart b/lib/wallets/crypto_currency/coins/litecoin.dart index 343a387ab..7cf53837a 100644 --- a/lib/wallets/crypto_currency/coins/litecoin.dart +++ b/lib/wallets/crypto_currency/coins/litecoin.dart @@ -285,5 +285,5 @@ class Litecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get transactionVersion => 1; @override - int get defaultFeeRate => 1000; + BigInt get defaultFeeRate => BigInt.from(1000); } diff --git a/lib/wallets/crypto_currency/coins/namecoin.dart b/lib/wallets/crypto_currency/coins/namecoin.dart index 6de96fe2e..bae72281f 100644 --- a/lib/wallets/crypto_currency/coins/namecoin.dart +++ b/lib/wallets/crypto_currency/coins/namecoin.dart @@ -257,5 +257,5 @@ class Namecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get transactionVersion => 1; @override - int get defaultFeeRate => 1000; + BigInt get defaultFeeRate => BigInt.from(1000); } diff --git a/lib/wallets/crypto_currency/coins/particl.dart b/lib/wallets/crypto_currency/coins/particl.dart index 685c04739..fd1aa946f 100644 --- a/lib/wallets/crypto_currency/coins/particl.dart +++ b/lib/wallets/crypto_currency/coins/particl.dart @@ -235,5 +235,5 @@ class Particl extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get transactionVersion => 1; @override - int get defaultFeeRate => 20000; + BigInt get defaultFeeRate => BigInt.from(20000); } diff --git a/lib/wallets/crypto_currency/coins/peercoin.dart b/lib/wallets/crypto_currency/coins/peercoin.dart index eb84c9c87..a199460e7 100644 --- a/lib/wallets/crypto_currency/coins/peercoin.dart +++ b/lib/wallets/crypto_currency/coins/peercoin.dart @@ -259,5 +259,5 @@ class Peercoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get transactionVersion => 3; @override - int get defaultFeeRate => 5000; + BigInt get defaultFeeRate => BigInt.from(5000); } diff --git a/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart b/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart index 8b8fa9a25..387bf4454 100644 --- a/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart +++ b/lib/wallets/crypto_currency/interfaces/electrumx_currency_interface.dart @@ -4,5 +4,5 @@ mixin ElectrumXCurrencyInterface on Bip39HDCurrency { int get transactionVersion; /// The default fee rate in satoshis per kilobyte. - int get defaultFeeRate; + BigInt get defaultFeeRate; } From e53aa9836381cbb7de0e091e7d1be6c0bb47126c Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 10 Jun 2024 11:24:05 -0600 Subject: [PATCH 219/318] add new used tags call that includes txids --- lib/db/sqlite/firo_cache.dart | 5 +- lib/db/sqlite/firo_cache_coordinator.dart | 2 +- lib/db/sqlite/firo_cache_worker.dart | 2 +- lib/db/sqlite/firo_cache_writer.dart | 14 ++-- lib/electrumx_rpc/electrumx_client.dart | 98 +++++++++++++++-------- 5 files changed, 78 insertions(+), 43 deletions(-) diff --git a/lib/db/sqlite/firo_cache.dart b/lib/db/sqlite/firo_cache.dart index 543b63557..b30777643 100644 --- a/lib/db/sqlite/firo_cache.dart +++ b/lib/db/sqlite/firo_cache.dart @@ -30,7 +30,7 @@ void _debugLog(Object? object) { abstract class _FiroCache { static const int _setCacheVersion = 1; - static const int _tagsCacheVersion = 1; + static const int _tagsCacheVersion = 2; static const String sparkSetCacheFileName = "spark_set_v$_setCacheVersion.sqlite3"; static const String sparkUsedTagsCacheFileName = @@ -154,7 +154,8 @@ abstract class _FiroCache { """ CREATE TABLE SparkUsedCoinTags ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, - tag TEXT NOT NULL UNIQUE + tag TEXT NOT NULL UNIQUE, + txid TEXT NOT NULL ); """, ); diff --git a/lib/db/sqlite/firo_cache_coordinator.dart b/lib/db/sqlite/firo_cache_coordinator.dart index c0170ef85..0a15c1b23 100644 --- a/lib/db/sqlite/firo_cache_coordinator.dart +++ b/lib/db/sqlite/firo_cache_coordinator.dart @@ -51,7 +51,7 @@ abstract class FiroCacheCoordinator { ElectrumXClient client, ) async { final count = await FiroCacheCoordinator.getUsedCoinTagsCount(); - final unhashedTags = await client.getSparkUnhashedUsedCoinsTags( + final unhashedTags = await client.getSparkUnhashedUsedCoinsTagsWithTxHashes( startNumber: count, ); if (unhashedTags.isNotEmpty) { diff --git a/lib/db/sqlite/firo_cache_worker.dart b/lib/db/sqlite/firo_cache_worker.dart index a611c54b9..f6bfe68f1 100644 --- a/lib/db/sqlite/firo_cache_worker.dart +++ b/lib/db/sqlite/firo_cache_worker.dart @@ -100,7 +100,7 @@ class _FiroCacheWorker { case FCFuncName._updateSparkUsedTagsWith: result = _updateSparkUsedTagsWith( usedTagsCacheDb, - task.data as List, + task.data as List>, ); break; } diff --git a/lib/db/sqlite/firo_cache_writer.dart b/lib/db/sqlite/firo_cache_writer.dart index b1ee201bd..d42c48834 100644 --- a/lib/db/sqlite/firo_cache_writer.dart +++ b/lib/db/sqlite/firo_cache_writer.dart @@ -15,10 +15,12 @@ class FCResult { /// returns true if successful, otherwise some exception FCResult _updateSparkUsedTagsWith( Database db, - List tags, + List> tags, ) { // hash the tags here since this function is called in a background isolate - final hashedTags = LibSpark.hashTags(base64Tags: tags); + final hashedTags = LibSpark.hashTags( + base64Tags: tags.map((e) => e[0] as String), + ); if (hashedTags.isEmpty) { // nothing to add, return early @@ -27,13 +29,13 @@ FCResult _updateSparkUsedTagsWith( db.execute("BEGIN;"); try { - for (final tag in hashedTags) { + for (int i = 0; i < hashedTags.length; i++) { db.execute( """ - INSERT OR IGNORE INTO SparkUsedCoinTags (tag) - VALUES (?); + INSERT OR IGNORE INTO SparkUsedCoinTags (tag, txid) + VALUES (?, ?); """, - [tag], + [hashedTags[i], (tags[i][1] as String).toHexReversedFromBase64], ); } diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index bae7a3637..442281532 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -932,41 +932,41 @@ class ElectrumXClient { } } - // TODO: update when we get new call to include tx hashes in response + /// NOT USED. See [getSparkUnhashedUsedCoinsTagsWithTxHashes] /// Takes [startNumber], if it is 0, we get the full set, /// otherwise the used tags after that number - Future> getSparkUnhashedUsedCoinsTags({ - String? requestID, - required int startNumber, - }) async { - try { - final start = DateTime.now(); - await _checkElectrumAdapter(); - final Map response = - await (getElectrumAdapter() as FiroElectrumClient) - .getUsedCoinsTags(startNumber: startNumber); - // TODO: Add 2 minute timeout. - // Why 2 minutes? - Logging.instance.log( - "Fetching spark.getusedcoinstags finished", - level: LogLevel.Info, - ); - final map = Map.from(response); - final tags = List.from(map["tags"] as List); - - Logging.instance.log( - "Finished ElectrumXClient.getSparkUnhashedUsedCoinsTags(startNumber" - "=$startNumber). # of tags fetched=${tags.length}, " - "Duration=${DateTime.now().difference(start)}", - level: LogLevel.Info, - ); - - return tags; - } catch (e) { - Logging.instance.log(e, level: LogLevel.Error); - rethrow; - } - } + // Future> getSparkUnhashedUsedCoinsTags({ + // String? requestID, + // required int startNumber, + // }) async { + // try { + // final start = DateTime.now(); + // await _checkElectrumAdapter(); + // final Map response = + // await (getElectrumAdapter() as FiroElectrumClient) + // .getUsedCoinsTags(startNumber: startNumber); + // // TODO: Add 2 minute timeout. + // // Why 2 minutes? + // Logging.instance.log( + // "Fetching spark.getusedcoinstags finished", + // level: LogLevel.Info, + // ); + // final map = Map.from(response); + // final tags = List.from(map["tags"] as List); + // + // Logging.instance.log( + // "Finished ElectrumXClient.getSparkUnhashedUsedCoinsTags(startNumber" + // "=$startNumber). # of tags fetched=${tags.length}, " + // "Duration=${DateTime.now().difference(start)}", + // level: LogLevel.Info, + // ); + // + // return tags; + // } catch (e) { + // Logging.instance.log(e, level: LogLevel.Error); + // rethrow; + // } + // } /// Takes a list of [sparkCoinHashes] and returns the set id and block height /// for each coin @@ -1085,6 +1085,38 @@ class ElectrumXClient { } } + /// Takes [startNumber], if it is 0, we get the full set, + /// otherwise the used tags and txids after that number + Future>> getSparkUnhashedUsedCoinsTagsWithTxHashes({ + String? requestID, + required int startNumber, + }) async { + try { + final start = DateTime.now(); + final response = await request( + requestID: requestID, + command: "spark.getusedcoinstagstxhashes", + args: [ + "$startNumber", + ], + ); + + final map = Map.from(response as Map); + final tags = List>.from(map["tagsandtxids"] as List); + + Logging.instance.log( + "Finished ElectrumXClient.getSparkUnhashedUsedCoinsTagsWithTxHashes(" + "startNumber=$startNumber). # of tags fetched=${tags.length}, " + "Duration=${DateTime.now().difference(start)}", + level: LogLevel.Info, + ); + + return tags; + } catch (e) { + Logging.instance.log(e, level: LogLevel.Error); + rethrow; + } + } // =========================================================================== /// Get the current fee rate. From aa195cb98e1f7b05c2f486d7222a7b800efd3fc0 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 10 Jun 2024 11:49:03 -0600 Subject: [PATCH 220/318] remove incorrect comment --- lib/db/sqlite/firo_cache_coordinator.dart | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/db/sqlite/firo_cache_coordinator.dart b/lib/db/sqlite/firo_cache_coordinator.dart index 0a15c1b23..6604e8919 100644 --- a/lib/db/sqlite/firo_cache_coordinator.dart +++ b/lib/db/sqlite/firo_cache_coordinator.dart @@ -97,10 +97,6 @@ abstract class FiroCacheCoordinator { return result.map((e) => e["tag"] as String).toSet(); } - /// This should be the equivalent of counting the number of tags in the db. - /// Assuming the integrity of the data. Faster than actually calling count on - /// a table where no records have been deleted. None should be deleted from - /// this table in practice. static Future getUsedCoinTagsCount() async { final result = await _Reader._getUsedCoinTagsCount( db: _FiroCache.usedTagsCacheDB, From 929e33406389cf476d11fcf42859069ad8ecb3b6 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 10 Jun 2024 13:28:49 -0600 Subject: [PATCH 221/318] implement usage of scanning for zero change output spark spends --- lib/db/sqlite/firo_cache_coordinator.dart | 36 ++++++++++ lib/db/sqlite/firo_cache_reader.dart | 29 ++++++++ lib/wallets/wallet/impl/firo_wallet.dart | 67 +++++++++++++++++-- .../spark_interface.dart | 26 +++++++ 4 files changed, 151 insertions(+), 7 deletions(-) diff --git a/lib/db/sqlite/firo_cache_coordinator.dart b/lib/db/sqlite/firo_cache_coordinator.dart index 6604e8919..b2b39916a 100644 --- a/lib/db/sqlite/firo_cache_coordinator.dart +++ b/lib/db/sqlite/firo_cache_coordinator.dart @@ -1,5 +1,7 @@ part of 'firo_cache.dart'; +typedef LTagPair = ({String tag, String txid}); + /// Wrapper class for [_FiroCache] as [_FiroCache] should eventually be handled in a /// background isolate and [FiroCacheCoordinator] should manage that isolate abstract class FiroCacheCoordinator { @@ -107,6 +109,40 @@ abstract class FiroCacheCoordinator { return result.first["count"] as int? ?? 0; } + static Future> getUsedCoinTxidsFor({ + required List tags, + }) async { + if (tags.isEmpty) { + return []; + } + final result = await _Reader._getUsedCoinTxidsFor( + tags, + db: _FiroCache.usedTagsCacheDB, + ); + + if (result.isEmpty) { + return []; + } + return result.rows + .map( + (e) => ( + tag: e[0] as String, + txid: e[1] as String, + ), + ) + .toList(); + } + + static Future> getUsedCoinTagsFor({ + required String txid, + }) async { + final result = await _Reader._getUsedCoinTagsFor( + txid, + db: _FiroCache.usedTagsCacheDB, + ); + return result.map((e) => e["tag"] as String).toSet(); + } + static Future checkTagIsUsed( String tag, ) async { diff --git a/lib/db/sqlite/firo_cache_reader.dart b/lib/db/sqlite/firo_cache_reader.dart index be761bc04..33763ba3e 100644 --- a/lib/db/sqlite/firo_cache_reader.dart +++ b/lib/db/sqlite/firo_cache_reader.dart @@ -86,6 +86,35 @@ abstract class _Reader { return db.select("$query;"); } + static Future _getUsedCoinTxidsFor( + List tags, { + required Database db, + }) async { + final tagsConcat = tags.join("', '"); + + final query = """ + SELECT tag, GROUP_CONCAT(txid) AS txids + FROM SparkUsedCoinTags + WHERE tag IN ('$tagsConcat') + GROUP BY tag; + """; + + return db.select("$query;"); + } + + static Future _getUsedCoinTagsFor( + String txid, { + required Database db, + }) async { + final query = """ + SELECT tag + FROM SparkUsedCoinTags + WHERE txid = '$txid'; + """; + + return db.select("$query;"); + } + static Future _checkTagIsUsed( String tag, { required Database db, diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index faa9df0a6..156551be9 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -105,6 +105,13 @@ class FiroWallet extends Bip39HDWallet } } + final missing = await getMissingSparkSpendTransactionIds(); + for (final txid in missing.map((e) => e.txid).toSet()) { + allTxHashes.add({ + "tx_hash": txid, + }); + } + final List> allTransactions = []; // some lelantus transactions aren't fetched via wallet addresses so they @@ -187,12 +194,30 @@ class FiroWallet extends Bip39HDWallet final bool isMasterNodePayment = false; final bool isSparkSpend = txData["type"] == 9 && txData["version"] == 3; final bool isMySpark = sparkTxids.contains(txData["txid"] as String); + final bool isMySpentSpark = + missing.where((e) => e.txid == txData["txid"]).isNotEmpty; - final sparkCoinsInvolved = - sparkCoins.where((e) => e.txHash == txData["txid"]); - if (isMySpark && sparkCoinsInvolved.isEmpty) { + final sparkCoinsInvolvedReceived = sparkCoins.where( + (e) => + e.txHash == txData["txid"] || + missing.where((f) => e.lTagHash == f.tag).isNotEmpty, + ); + + final sparkCoinsInvolvedSpent = sparkCoins.where( + (e) => missing.where((f) => e.lTagHash == f.tag).isNotEmpty, + ); + + if (isMySpark && sparkCoinsInvolvedReceived.isEmpty && !isMySpentSpark) { Logging.instance.log( - "sparkCoinsInvolved is empty and should not be! (ignoring tx parsing)", + "sparkCoinsInvolvedReceived is empty and should not be! (ignoring tx parsing)", + level: LogLevel.Error, + ); + continue; + } + + if (isMySpentSpark && sparkCoinsInvolvedSpent.isEmpty && !isMySpark) { + Logging.instance.log( + "sparkCoinsInvolvedSpent is empty and should not be! (ignoring tx parsing)", level: LogLevel.Error, ); continue; @@ -267,7 +292,7 @@ class FiroWallet extends Bip39HDWallet final serCoin = base64Encode( output.scriptPubKeyHex.substring(2, 488).toUint8ListFromHex, ); - final coin = sparkCoinsInvolved + final coin = sparkCoinsInvolvedReceived .where((e) => e.serializedCoinB64!.startsWith(serCoin)) .firstOrNull; @@ -343,7 +368,7 @@ class FiroWallet extends Bip39HDWallet ); } - if (isSparkSpend) { + void parseAnonFees() { // anon fees final nFee = Decimal.tryParse(map["nFees"].toString()); if (nFee != null) { @@ -354,6 +379,22 @@ class FiroWallet extends Bip39HDWallet anonFees = anonFees! + fees; } + } + + List? spentSparkCoins; + + if (isMySpentSpark) { + parseAnonFees(); + final tags = await FiroCacheCoordinator.getUsedCoinTagsFor( + txid: txData["txid"] as String, + ); + spentSparkCoins = sparkCoinsInvolvedSpent + .where( + (e) => tags.contains(e.lTagHash), + ) + .toList(); + } else if (isSparkSpend) { + parseAnonFees(); } else if (isSparkMint) { final address = map["address"] as String?; final value = map["valueSat"] as int?; @@ -444,6 +485,18 @@ class FiroWallet extends Bip39HDWallet wasSentFromThisWallet = true; } } + } else if (isMySpentSpark && + spentSparkCoins != null && + spentSparkCoins.isNotEmpty) { + input = input.copyWith( + addresses: spentSparkCoins.map((e) => e.address).toList(), + valueStringSats: spentSparkCoins + .map((e) => e.value) + .fold(BigInt.zero, (p, e) => p + e) + .toString(), + walletOwns: true, + ); + wasSentFromThisWallet = true; } inputs.add(input); @@ -514,7 +567,7 @@ class FiroWallet extends Bip39HDWallet if (anonFees != null) { otherData = jsonEncode( { - "overrideFee": anonFees.toJsonString(), + "overrideFee": anonFees!.toJsonString(), }, ); } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index acdd9ae98..5ac6ade90 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -696,6 +696,32 @@ mixin SparkInterface } } + Future> getMissingSparkSpendTransactionIds() async { + final tags = await mainDB.isar.sparkCoins + .where() + .walletIdEqualToAnyLTagHash(walletId) + .filter() + .isUsedEqualTo(true) + .lTagHashProperty() + .findAll(); + + final usedCoinTxidsFoundLocally = await mainDB.isar.transactionV2s + .where() + .walletIdEqualTo(walletId) + .filter() + .subTypeEqualTo(TransactionSubType.sparkSpend) + .txidProperty() + .findAll(); + + final pairs = await FiroCacheCoordinator.getUsedCoinTxidsFor( + tags: tags, + ); + + pairs.removeWhere((e) => usedCoinTxidsFoundLocally.contains(e.txid)); + + return pairs.toSet(); + } + Future refreshSparkBalance() async { final currentHeight = await chainHeight; final unusedCoins = await mainDB.isar.sparkCoins From 29708b15348176b3c3eca4d942e173ae98f35519 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 10 Jun 2024 16:50:26 -0600 Subject: [PATCH 222/318] Show old campfire wallets --- lib/db/db_version_migration.dart | 44 ++-- lib/db/hive/db.dart | 89 ++++---- lib/db/migrate_wallets_to_isar.dart | 16 +- lib/db/special_migrations.dart | 79 +++++++ lib/main.dart | 64 +++--- lib/pages/campfire_migrate_view.dart | 210 ++++++++++++++++++ .../delete_password_warning_view.dart | 3 +- lib/utilities/desktop_password_service.dart | 9 +- lib/utilities/stack_file_system.dart | 13 +- .../tor_has_been_add_dialog.dart | 8 +- 10 files changed, 426 insertions(+), 109 deletions(-) create mode 100644 lib/db/special_migrations.dart create mode 100644 lib/pages/campfire_migrate_view.dart diff --git a/lib/db/db_version_migration.dart b/lib/db/db_version_migration.dart index b5da9f505..1415803e4 100644 --- a/lib/db/db_version_migration.dart +++ b/lib/db/db_version_migration.dart @@ -8,7 +8,6 @@ * */ -import 'package:hive/hive.dart'; import 'package:isar/isar.dart'; import 'package:tuple/tuple.dart'; @@ -40,14 +39,18 @@ class DbVersionMigrator with WalletDB { int fromVersion, { required SecureStorageInterface secureStore, }) async { + if (AppConfig.appName == "Campfire" && fromVersion < 12) { + // safe to skip to v11 for campfire + fromVersion = 11; + } Logging.instance.log( "Running migrate fromVersion $fromVersion", level: LogLevel.Warning, ); switch (fromVersion) { case 0: - await Hive.openBox(DB.boxNameAllWalletsData); - await Hive.openBox(DB.boxNamePrefs); + await DB.instance.hive.openBox(DB.boxNameAllWalletsData); + await DB.instance.hive.openBox(DB.boxNamePrefs); final walletsService = WalletsService(); final nodeService = NodeService(secureStorageInterface: secureStore); final prefs = Prefs.instance; @@ -61,8 +64,8 @@ class DbVersionMigrator with WalletDB { // only instantiate client if there are firo wallets if (walletInfoList.values .any((element) => element.coinIdentifier == firo.identifier)) { - await Hive.openBox(DB.boxNameNodeModels); - await Hive.openBox(DB.boxNamePrimaryNodes); + await DB.instance.hive.openBox(DB.boxNameNodeModels); + await DB.instance.hive.openBox(DB.boxNamePrimaryNodes); final node = nodeService.getPrimaryNodeFor(currency: firo) ?? firo.defaultNode; final List failovers = nodeService @@ -106,7 +109,7 @@ class DbVersionMigrator with WalletDB { for (final walletInfo in walletInfoList.values) { // migrate each firo wallet's lelantus coins if (walletInfo.coinIdentifier == firo.identifier) { - await Hive.openBox(walletInfo.walletId); + await DB.instance.hive.openBox(walletInfo.walletId); final _lelantusCoins = DB.instance.get( boxName: walletInfo.walletId, key: '_lelantus_coins', @@ -157,8 +160,8 @@ class DbVersionMigrator with WalletDB { return await migrate(1, secureStore: secureStore); case 1: - await Hive.openBox(DB.boxNameTrades); - await Hive.openBox(DB.boxNameTradesV2); + await DB.instance.hive.openBox(DB.boxNameTrades); + await DB.instance.hive.openBox(DB.boxNameTradesV2); final trades = DB.instance.values(boxName: DB.boxNameTrades); @@ -184,7 +187,7 @@ class DbVersionMigrator with WalletDB { return await migrate(2, secureStore: secureStore); case 2: - await Hive.openBox(DB.boxNamePrefs); + await DB.instance.hive.openBox(DB.boxNamePrefs); final prefs = Prefs.instance; await prefs.init(); if (!(await prefs.isExternalCallsSet())) { @@ -233,8 +236,8 @@ class DbVersionMigrator with WalletDB { case 5: // migrate - await Hive.openBox("theme"); - await Hive.openBox(DB.boxNamePrefs); + await DB.instance.hive.openBox("theme"); + await DB.instance.hive.openBox(DB.boxNamePrefs); final themeName = DB.instance.get(boxName: "theme", key: "colorScheme") @@ -347,7 +350,7 @@ class DbVersionMigrator with WalletDB { case 8: // migrate - await Hive.openBox(DB.boxNameAllWalletsData); + await DB.instance.hive.openBox(DB.boxNameAllWalletsData); final walletsService = WalletsService(); final walletInfoList = await walletsService.walletNames; await MainDB.instance.initMainDB(); @@ -443,8 +446,8 @@ class DbVersionMigrator with WalletDB { } Future _v4(SecureStorageInterface secureStore) async { - await Hive.openBox(DB.boxNameAllWalletsData); - await Hive.openBox(DB.boxNamePrefs); + await DB.instance.hive.openBox(DB.boxNameAllWalletsData); + await DB.instance.hive.openBox(DB.boxNamePrefs); final walletsService = WalletsService(); final prefs = Prefs.instance; final walletInfoList = await walletsService.walletNames; @@ -455,7 +458,7 @@ class DbVersionMigrator with WalletDB { final info = walletInfoList[walletId]!; assert(info.walletId == walletId); - final walletBox = await Hive.openBox(info.walletId); + final walletBox = await DB.instance.hive.openBox(info.walletId); const receiveAddressesPrefix = "receivingAddresses"; const changeAddressesPrefix = "changeAddresses"; @@ -560,7 +563,7 @@ class DbVersionMigrator with WalletDB { } Future _v7(SecureStorageInterface secureStore) async { - await Hive.openBox(DB.boxNameAllWalletsData); + await DB.instance.hive.openBox(DB.boxNameAllWalletsData); final walletsService = WalletsService(); final walletInfoList = await walletsService.walletNames; await MainDB.instance.initMainDB(); @@ -601,7 +604,8 @@ class DbVersionMigrator with WalletDB { } Future _v9() async { - final addressBookBox = await Hive.openBox(DB.boxNameAddressBook); + final addressBookBox = + await DB.instance.hive.openBox(DB.boxNameAddressBook); await MainDB.instance.initMainDB(); final keys = List.from(addressBookBox.keys); @@ -649,8 +653,8 @@ class DbVersionMigrator with WalletDB { } Future _v10(SecureStorageInterface secureStore) async { - await Hive.openBox(DB.boxNameAllWalletsData); - await Hive.openBox(DB.boxNamePrefs); + await DB.instance.hive.openBox(DB.boxNameAllWalletsData); + await DB.instance.hive.openBox(DB.boxNamePrefs); final walletsService = WalletsService(); final prefs = Prefs.instance; final walletInfoList = await walletsService.walletNames; @@ -669,7 +673,7 @@ class DbVersionMigrator with WalletDB { .walletIdEqualTo(walletId) .countSync() == 0) { - final walletBox = await Hive.openBox(walletId); + final walletBox = await DB.instance.hive.openBox(walletId); final hiveLCoins = DB.instance.get( boxName: walletId, diff --git a/lib/db/hive/db.dart b/lib/db/hive/db.dart index 2e9b5435b..1e4c670e1 100644 --- a/lib/db/hive/db.dart +++ b/lib/db/hive/db.dart @@ -11,7 +11,8 @@ import 'dart:isolate'; import 'package:cw_core/wallet_info.dart' as xmr; -import 'package:hive/hive.dart'; +import 'package:hive/hive.dart' show Box; +import 'package:hive/src/hive_impl.dart'; import 'package:mutex/mutex.dart'; import '../../app_config.dart'; @@ -24,6 +25,8 @@ import '../../utilities/logger.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; class DB { + final hive = HiveImpl(); + // legacy (required for migrations) @Deprecated("Left over for migration from old versions of Stack Wallet") static const String boxNameAddressBook = "addressBook"; @@ -104,52 +107,52 @@ class DB { // open hive boxes Future init() async { - if (Hive.isBoxOpen(boxNameDBInfo)) { - _boxDBInfo = Hive.box(boxNameDBInfo); + if (hive.isBoxOpen(boxNameDBInfo)) { + _boxDBInfo = hive.box(boxNameDBInfo); } else { - _boxDBInfo = await Hive.openBox(boxNameDBInfo); + _boxDBInfo = await hive.openBox(boxNameDBInfo); } - await Hive.openBox(boxNameWalletsToDeleteOnStart); + await hive.openBox(boxNameWalletsToDeleteOnStart); - if (Hive.isBoxOpen(boxNamePrefs)) { - _boxPrefs = Hive.box(boxNamePrefs); + if (hive.isBoxOpen(boxNamePrefs)) { + _boxPrefs = hive.box(boxNamePrefs); } else { - _boxPrefs = await Hive.openBox(boxNamePrefs); + _boxPrefs = await hive.openBox(boxNamePrefs); } - if (Hive.isBoxOpen(boxNameNodeModels)) { - _boxNodeModels = Hive.box(boxNameNodeModels); + if (hive.isBoxOpen(boxNameNodeModels)) { + _boxNodeModels = hive.box(boxNameNodeModels); } else { - _boxNodeModels = await Hive.openBox(boxNameNodeModels); + _boxNodeModels = await hive.openBox(boxNameNodeModels); } - if (Hive.isBoxOpen(boxNamePrimaryNodes)) { - _boxPrimaryNodes = Hive.box(boxNamePrimaryNodes); + if (hive.isBoxOpen(boxNamePrimaryNodes)) { + _boxPrimaryNodes = hive.box(boxNamePrimaryNodes); } else { - _boxPrimaryNodes = await Hive.openBox(boxNamePrimaryNodes); + _boxPrimaryNodes = await hive.openBox(boxNamePrimaryNodes); } - if (Hive.isBoxOpen(boxNameAllWalletsData)) { - _boxAllWalletsData = Hive.box(boxNameAllWalletsData); + if (hive.isBoxOpen(boxNameAllWalletsData)) { + _boxAllWalletsData = hive.box(boxNameAllWalletsData); } else { - _boxAllWalletsData = await Hive.openBox(boxNameAllWalletsData); + _boxAllWalletsData = await hive.openBox(boxNameAllWalletsData); } _boxNotifications = - await Hive.openBox(boxNameNotifications); + await hive.openBox(boxNameNotifications); _boxWatchedTransactions = - await Hive.openBox(boxNameWatchedTransactions); + await hive.openBox(boxNameWatchedTransactions); _boxWatchedTrades = - await Hive.openBox(boxNameWatchedTrades); - _boxTradesV2 = await Hive.openBox(boxNameTradesV2); - _boxTradeNotes = await Hive.openBox(boxNameTradeNotes); - _boxTradeLookup = await Hive.openBox(boxNameTradeLookup); + await hive.openBox(boxNameWatchedTrades); + _boxTradesV2 = await hive.openBox(boxNameTradesV2); + _boxTradeNotes = await hive.openBox(boxNameTradeNotes); + _boxTradeLookup = await hive.openBox(boxNameTradeLookup); _walletInfoSource = - await Hive.openBox(xmr.WalletInfo.boxName); - _boxFavoriteWallets = await Hive.openBox(boxNameFavoriteWallets); + await hive.openBox(xmr.WalletInfo.boxName); + _boxFavoriteWallets = await hive.openBox(boxNameFavoriteWallets); await Future.wait([ - Hive.openBox(boxNamePriceCache), + hive.openBox(boxNamePriceCache), _loadWalletBoxes(), ]); } @@ -177,12 +180,12 @@ class DB { ); for (final entry in mapped.entries) { - if (Hive.isBoxOpen(entry.value.walletId)) { + if (hive.isBoxOpen(entry.value.walletId)) { _walletBoxes[entry.value.walletId] = - Hive.box(entry.value.walletId); + hive.box(entry.value.walletId); } else { _walletBoxes[entry.value.walletId] = - await Hive.openBox(entry.value.walletId); + await hive.openBox(entry.value.walletId); } } } @@ -192,7 +195,7 @@ class DB { _txCacheBoxes.remove(currency.identifier); } return _txCacheBoxes[currency.identifier] ??= - await Hive.openBox(_boxNameTxCache(currency: currency)); + await hive.openBox(_boxNameTxCache(currency: currency)); } Future closeTxCacheBox({required CryptoCurrency currency}) async { @@ -206,7 +209,7 @@ class DB { _setCacheBoxes.remove(currency.identifier); } return _setCacheBoxes[currency.identifier] ??= - await Hive.openBox(_boxNameSetCache(currency: currency)); + await hive.openBox(_boxNameSetCache(currency: currency)); } Future closeAnonymitySetCacheBox({ @@ -222,7 +225,7 @@ class DB { _usedSerialsCacheBoxes.remove(currency.identifier); } return _usedSerialsCacheBoxes[currency.identifier] ??= - await Hive.openBox( + await hive.openBox( _boxNameUsedSerialsCache(currency: currency), ); } @@ -252,7 +255,7 @@ class DB { if (_walletBoxes[walletId] != null) { throw Exception("Attempted overwrite of existing wallet box!"); } - _walletBoxes[walletId] = await Hive.openBox(walletId); + _walletBoxes[walletId] = await hive.openBox(walletId); } Future removeWalletBox({required String walletId}) async { @@ -264,19 +267,19 @@ class DB { // reads List keys({required String boxName}) => - Hive.box(boxName).keys.toList(growable: false); + hive.box(boxName).keys.toList(growable: false); List values({required String boxName}) => - Hive.box(boxName).values.toList(growable: false); + hive.box(boxName).values.toList(growable: false); T? get({ required String boxName, required dynamic key, }) => - Hive.box(boxName).get(key); + hive.box(boxName).get(key); bool containsKey({required String boxName, required dynamic key}) => - Hive.box(boxName).containsKey(key); + hive.box(boxName).containsKey(key); // writes @@ -286,33 +289,33 @@ class DB { required T value, }) async => await mutex - .protect(() async => await Hive.box(boxName).put(key, value)); + .protect(() async => await hive.box(boxName).put(key, value)); Future add({required String boxName, required T value}) async => - await mutex.protect(() async => await Hive.box(boxName).add(value)); + await mutex.protect(() async => await hive.box(boxName).add(value)); Future addAll({ required String boxName, required Iterable values, }) async => await mutex - .protect(() async => await Hive.box(boxName).addAll(values)); + .protect(() async => await hive.box(boxName).addAll(values)); Future delete({ required dynamic key, required String boxName, }) async => - await mutex.protect(() async => await Hive.box(boxName).delete(key)); + await mutex.protect(() async => await hive.box(boxName).delete(key)); Future deleteAll({required String boxName}) async { await mutex.protect(() async { - final box = await Hive.openBox(boxName); + final box = await hive.openBox(boxName); await box.clear(); }); } Future deleteBoxFromDisk({required String boxName}) async => - await mutex.protect(() async => await Hive.deleteBoxFromDisk(boxName)); + await mutex.protect(() async => await hive.deleteBoxFromDisk(boxName)); /////////////////////////////////////////////////////////////////////////// Future deleteEverything() async { diff --git a/lib/db/migrate_wallets_to_isar.dart b/lib/db/migrate_wallets_to_isar.dart index 474924997..11ae18e0a 100644 --- a/lib/db/migrate_wallets_to_isar.dart +++ b/lib/db/migrate_wallets_to_isar.dart @@ -1,6 +1,5 @@ import 'dart:convert'; -import 'package:hive_flutter/hive_flutter.dart'; import 'package:isar/isar.dart'; import '../app_config.dart'; @@ -24,7 +23,8 @@ Future migrateWalletsToIsar({ await MainDB.instance.isar .writeTxn(() async => await MainDB.instance.isar.transactionV2s.clear()); - final allWalletsBox = await Hive.openBox(DB.boxNameAllWalletsData); + final allWalletsBox = + await DB.instance.hive.openBox(DB.boxNameAllWalletsData); final names = DB.instance .get(boxName: DB.boxNameAllWalletsData, key: 'names') as Map?; @@ -55,7 +55,9 @@ Future migrateWalletsToIsar({ // Get current ordered list of favourite wallet Ids // final List favourites = - (await Hive.openBox(DB.boxNameFavoriteWallets)).values.toList(); + (await DB.instance.hive.openBox(DB.boxNameFavoriteWallets)) + .values + .toList(); final List<(WalletInfo, WalletInfoMeta)> newInfo = []; final List tokenInfo = []; @@ -65,7 +67,7 @@ Future migrateWalletsToIsar({ // Convert each old info into the new Isar WalletInfo // for (final old in oldInfo) { - final walletBox = await Hive.openBox(old.walletId); + final walletBox = await DB.instance.hive.openBox(old.walletId); // // First handle transaction notes @@ -212,9 +214,9 @@ Future migrateWalletsToIsar({ } Future _cleanupOnSuccess({required List walletIds}) async { - await Hive.deleteBoxFromDisk(DB.boxNameFavoriteWallets); - await Hive.deleteBoxFromDisk(DB.boxNameAllWalletsData); + await DB.instance.hive.deleteBoxFromDisk(DB.boxNameFavoriteWallets); + await DB.instance.hive.deleteBoxFromDisk(DB.boxNameAllWalletsData); for (final walletId in walletIds) { - await Hive.deleteBoxFromDisk(walletId); + await DB.instance.hive.deleteBoxFromDisk(walletId); } } diff --git a/lib/db/special_migrations.dart b/lib/db/special_migrations.dart new file mode 100644 index 000000000..1092cfc1b --- /dev/null +++ b/lib/db/special_migrations.dart @@ -0,0 +1,79 @@ +import 'dart:io'; + +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:hive/hive.dart' show Box; +import 'package:hive/src/hive_impl.dart'; +import 'package:path_provider/path_provider.dart'; + +import '../app_config.dart'; +import '../utilities/util.dart'; +import 'hive/db.dart'; + +abstract class CampfireMigration { + static const _didRunKey = "campfire_one_time_migration_done_key"; + + static bool get didRun => + DB.instance.get( + boxName: DB.boxNameDBInfo, + key: _didRunKey, + ) as bool? ?? + false; + + static Future setDidRun() async { + await DB.instance.put( + boxName: DB.boxNameDBInfo, + key: _didRunKey, + value: true, + ); + } + + static bool get hasOldWallets => + !didRun && (_wallets?.get("names") as Map?)?.isNotEmpty == true; + + static late final FlutterSecureStorage? _secureStore; + static late final Box? _wallets; + + static Future init() async { + if (didRun || Util.isDesktop) { + return; + } + final Directory appDirectory = await getApplicationDocumentsDirectory(); + + final file = File("${appDirectory.path}/wallets.hive"); + + if (await file.exists()) { + final myHive = HiveImpl(); + myHive.init(appDirectory.path); + _wallets = await myHive.openBox('wallets'); + _secureStore = const FlutterSecureStorage(); + } else { + await setDidRun(); + } + } + + static Future)>> fetch() async { + if (didRun || + Util.isDesktop || + AppConfig.appName != "Campfire" || + _wallets == null) { + return []; + } + + final names = _wallets!.get("names"); + + final List<(String, List)> results = []; + if (names is Map) { + for (final entry in names.entries) { + final name = entry.key as String; + final id = entry.value as String; + final mnemonic = await _secureStore!.read(key: "${id}_mnemonic"); + + if (mnemonic != null) { + results.add((name, mnemonic.split(" "))); + } + } + } + + return results; + } +} diff --git a/lib/main.dart b/lib/main.dart index 68d1fe48c..09ad6f068 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -25,7 +25,6 @@ import 'package:flutter_libmonero/wownero/wownero.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:google_fonts/google_fonts.dart'; -import 'package:hive_flutter/hive_flutter.dart'; import 'package:isar/isar.dart'; import 'package:keyboard_dismisser/keyboard_dismisser.dart'; import 'package:path_provider/path_provider.dart'; @@ -35,6 +34,7 @@ import 'app_config.dart'; import 'db/db_version_migration.dart'; import 'db/hive/db.dart'; import 'db/isar/main_db.dart'; +import 'db/special_migrations.dart'; import 'db/sqlite/firo_cache.dart'; import 'models/exchange/change_now/exchange_transaction.dart'; import 'models/exchange/change_now/exchange_transaction_status.dart'; @@ -44,6 +44,7 @@ import 'models/models.dart'; import 'models/node_model.dart'; import 'models/notification_model.dart'; import 'models/trade_wallet_lookup.dart'; +import 'pages/campfire_migrate_view.dart'; import 'pages/home_view/home_view.dart'; import 'pages/intro_view.dart'; import 'pages/loading_view.dart'; @@ -142,52 +143,59 @@ void main(List args) async { } // Registering Transaction Model Adapters - Hive.registerAdapter(TransactionDataAdapter()); - Hive.registerAdapter(TransactionChunkAdapter()); - Hive.registerAdapter(TransactionAdapter()); - Hive.registerAdapter(InputAdapter()); - Hive.registerAdapter(OutputAdapter()); + DB.instance.hive.registerAdapter(TransactionDataAdapter()); + DB.instance.hive.registerAdapter(TransactionChunkAdapter()); + DB.instance.hive.registerAdapter(TransactionAdapter()); + DB.instance.hive.registerAdapter(InputAdapter()); + DB.instance.hive.registerAdapter(OutputAdapter()); // Registering Utxo Model Adapters - Hive.registerAdapter(UtxoDataAdapter()); - Hive.registerAdapter(UtxoObjectAdapter()); - Hive.registerAdapter(StatusAdapter()); + DB.instance.hive.registerAdapter(UtxoDataAdapter()); + DB.instance.hive.registerAdapter(UtxoObjectAdapter()); + DB.instance.hive.registerAdapter(StatusAdapter()); // Registering Lelantus Model Adapters - Hive.registerAdapter(LelantusCoinAdapter()); + DB.instance.hive.registerAdapter(LelantusCoinAdapter()); // notification model adapter - Hive.registerAdapter(NotificationModelAdapter()); + DB.instance.hive.registerAdapter(NotificationModelAdapter()); // change now trade adapters - Hive.registerAdapter(ExchangeTransactionAdapter()); - Hive.registerAdapter(ExchangeTransactionStatusAdapter()); + DB.instance.hive.registerAdapter(ExchangeTransactionAdapter()); + DB.instance.hive.registerAdapter(ExchangeTransactionStatusAdapter()); - Hive.registerAdapter(TradeAdapter()); + DB.instance.hive.registerAdapter(TradeAdapter()); // reference lookup data adapter - Hive.registerAdapter(TradeWalletLookupAdapter()); + DB.instance.hive.registerAdapter(TradeWalletLookupAdapter()); // node model adapter - Hive.registerAdapter(NodeModelAdapter()); + DB.instance.hive.registerAdapter(NodeModelAdapter()); - Hive.registerAdapter(NodeAdapter()); + DB.instance.hive.registerAdapter(NodeAdapter()); - if (!Hive.isAdapterRegistered(WalletInfoAdapter().typeId)) { - Hive.registerAdapter(WalletInfoAdapter()); + if (!DB.instance.hive.isAdapterRegistered(WalletInfoAdapter().typeId)) { + DB.instance.hive.registerAdapter(WalletInfoAdapter()); } - Hive.registerAdapter(WalletTypeAdapter()); + DB.instance.hive.registerAdapter(WalletTypeAdapter()); - Hive.registerAdapter(UnspentCoinsInfoAdapter()); - await Hive.initFlutter( + DB.instance.hive.registerAdapter(UnspentCoinsInfoAdapter()); + + DB.instance.hive.init( (await StackFileSystem.applicationHiveDirectory()).path, ); - await Hive.openBox(DB.boxNameDBInfo); - await Hive.openBox(DB.boxNamePrefs); + await DB.instance.hive.openBox(DB.boxNameDBInfo); + await DB.instance.hive.openBox(DB.boxNamePrefs); await Prefs.instance.init(); + if (AppConfig.appName == "Campfire" && + !Util.isDesktop && + !CampfireMigration.didRun) { + await CampfireMigration.init(); + } + // TODO: // This should be moved to happen during the loading animation instead of // showing a blank screen for 4-10 seconds. @@ -792,7 +800,13 @@ class _MaterialAppWithThemeState extends ConsumerState biometricsCancelButtonString: "Cancel", ); } else { - return const IntroView(); + if (AppConfig.appName == "Campfire" && + !CampfireMigration.didRun && + CampfireMigration.hasOldWallets) { + return const CampfireMigrateView(); + } else { + return const IntroView(); + } } } else { // CURRENTLY DISABLED as cannot be animated diff --git a/lib/pages/campfire_migrate_view.dart b/lib/pages/campfire_migrate_view.dart new file mode 100644 index 000000000..b70a30279 --- /dev/null +++ b/lib/pages/campfire_migrate_view.dart @@ -0,0 +1,210 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + +import '../db/special_migrations.dart'; +import '../themes/stack_colors.dart'; +import '../utilities/text_styles.dart'; +import '../utilities/util.dart'; +import '../widgets/app_icon.dart'; +import '../widgets/background.dart'; +import '../widgets/custom_buttons/blue_text_button.dart'; +import '../widgets/custom_buttons/checkbox_text_button.dart'; +import '../widgets/desktop/primary_button.dart'; +import '../widgets/loading_indicator.dart'; +import '../widgets/rounded_container.dart'; +import 'add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; +import 'intro_view.dart'; + +class CampfireMigrateView extends StatelessWidget { + const CampfireMigrateView({super.key}); + + @override + Widget build(BuildContext context) { + return Background( + child: Scaffold( + backgroundColor: Theme.of(context).extension()!.background, + body: SafeArea( + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Padding( + padding: EdgeInsets.only(right: 16), + child: AppIcon( + width: 50, + height: 50, + ), + ), + Expanded( + child: Text( + "Your old Campfire wallets are listed below. " + "If you would like to keep them then copy the mnemonics " + "somewhere safe so you can restore them.", + style: STextStyles.w600_12(context), + ), + ), + ], + ), + const SizedBox( + height: 16, + ), + Expanded( + child: Column( + children: [ + Expanded( + child: FutureBuilder( + future: CampfireMigration.fetch(), + builder: (context, snapshot) { + if (snapshot.connectionState == + ConnectionState.done) { + final count = (snapshot.data?.length ?? 0) + 1; + + return ListView.separated( + itemCount: count, + separatorBuilder: (_, __) => const SizedBox( + height: 10, + ), + itemBuilder: (_, index) => index == count - 1 + ? const _ContinueButtonGroup() + : _CampfireWallet( + mnemonic: snapshot.data![index].$2, + name: snapshot.data![index].$1, + ), + ); + } else { + return const Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + LoadingIndicator( + width: 100, + height: 100, + ), + ], + ); + } + }, + ), + ), + ], + ), + ), + ], + ), + ), + ), + ), + ); + } +} + +class _ContinueButtonGroup extends StatefulWidget { + const _ContinueButtonGroup({super.key}); + + @override + State<_ContinueButtonGroup> createState() => _ContinueButtonGroupState(); +} + +class _ContinueButtonGroupState extends State<_ContinueButtonGroup> { + bool _checked = false; + + @override + Widget build(BuildContext context) { + return Column( + children: [ + const SizedBox( + height: 10, + ), + CheckboxTextButton( + label: "I have saved all my mnemonics and double checked each one", + onChanged: (value) { + setState(() { + _checked = value; + }); + }, + ), + const SizedBox( + height: 16, + ), + PrimaryButton( + enabled: _checked, + label: "Continue", + onPressed: () { + CampfireMigration.setDidRun(); + // could do pushReplacementNamed but we won't show this again on next run anyways + Navigator.of(context).pushNamed( + IntroView.routeName, + ); + }, + ), + ], + ); + } +} + +class _CampfireWallet extends StatefulWidget { + const _CampfireWallet({ + super.key, + required this.name, + required this.mnemonic, + }); + + final String name; + final List mnemonic; + + @override + State<_CampfireWallet> createState() => _CampfireWalletState(); +} + +class _CampfireWalletState extends State<_CampfireWallet> { + bool _show = false; + + @override + Widget build(BuildContext context) { + return RoundedContainer( + color: Theme.of(context).extension()!.background, + borderColor: Theme.of(context).extension()!.textDark, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + widget.name, + style: STextStyles.w500_14(context), + ), + CustomTextButton( + text: "Copy mnemonic", + onTap: () => Clipboard.setData( + ClipboardData( + text: widget.mnemonic.join(" "), + ), + ), + ), + ], + ), + const SizedBox( + height: 10, + ), + _show + ? MnemonicTable( + words: widget.mnemonic, + isDesktop: Util.isDesktop, + ) + : Padding( + padding: const EdgeInsets.all(16), + child: PrimaryButton( + label: "Show mnemonic", + onPressed: () => setState(() => _show = true), + ), + ), + ], + ), + ); + } +} diff --git a/lib/pages_desktop_specific/password/delete_password_warning_view.dart b/lib/pages_desktop_specific/password/delete_password_warning_view.dart index 7708c2230..1eab70a5a 100644 --- a/lib/pages_desktop_specific/password/delete_password_warning_view.dart +++ b/lib/pages_desktop_specific/password/delete_password_warning_view.dart @@ -13,7 +13,6 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:hive/hive.dart'; import 'package:isar/isar.dart'; import '../../db/hive/db.dart'; @@ -52,7 +51,7 @@ class _ForgotPasswordDesktopViewState final appRoot = await StackFileSystem.applicationRootDirectory(); try { - await Hive.close(); + await DB.instance.hive.close(); if (Platform.isWindows) { final xmrDir = Directory("${appRoot.path}/wallets"); if (xmrDir.existsSync()) { diff --git a/lib/utilities/desktop_password_service.dart b/lib/utilities/desktop_password_service.dart index 323be414b..3852a8695 100644 --- a/lib/utilities/desktop_password_service.dart +++ b/lib/utilities/desktop_password_service.dart @@ -8,9 +8,10 @@ * */ -import 'package:hive/hive.dart'; +import 'package:hive/hive.dart' show Box; import 'package:stack_wallet_backup/secure_storage.dart'; +import '../db/hive/db.dart'; import 'logger.dart'; const String kBoxNameDesktopData = "desktopData"; @@ -185,7 +186,7 @@ class DPS { Future _put({required String key, required String value}) async { Box? box; try { - box = await Hive.openBox(kBoxNameDesktopData); + box = await DB.instance.hive.openBox(kBoxNameDesktopData); await box.put(key, value); } catch (e, s) { Logging.instance.log( @@ -201,7 +202,7 @@ class DPS { String? value; Box? box; try { - box = await Hive.openBox(kBoxNameDesktopData); + box = await DB.instance.hive.openBox(kBoxNameDesktopData); value = box.get(key); } catch (e, s) { Logging.instance.log( @@ -217,6 +218,6 @@ class DPS { /// Dangerous. Used in one place and should not be called anywhere else. @Deprecated("Don't use this if at all possible") Future deleteBox() async { - await Hive.deleteBoxFromDisk(kBoxNameDesktopData); + await DB.instance.hive.deleteBoxFromDisk(kBoxNameDesktopData); } } diff --git a/lib/utilities/stack_file_system.dart b/lib/utilities/stack_file_system.dart index 579db5de0..53e382ff0 100644 --- a/lib/utilities/stack_file_system.dart +++ b/lib/utilities/stack_file_system.dart @@ -29,6 +29,9 @@ abstract class StackFileSystem { _overrideDirSet = true; } + static bool get _createSubDirs => + Util.isDesktop || AppConfig.appName == "Campfire"; + static Future applicationRootDirectory() async { Directory appDirectory; @@ -80,7 +83,7 @@ abstract class StackFileSystem { static Future applicationIsarDirectory() async { final root = await applicationRootDirectory(); - if (Util.isDesktop) { + if (_createSubDirs) { final dir = Directory("${root.path}/isar"); if (!dir.existsSync()) { await dir.create(); @@ -94,7 +97,7 @@ abstract class StackFileSystem { // Not used in general now. See applicationFiroCacheSQLiteDirectory() // static Future applicationSQLiteDirectory() async { // final root = await applicationRootDirectory(); - // if (Util.isDesktop) { + // if (_createSubDirs) { // final dir = Directory("${root.path}/sqlite"); // if (!dir.existsSync()) { // await dir.create(); @@ -107,7 +110,7 @@ abstract class StackFileSystem { static Future applicationTorDirectory() async { final root = await applicationRootDirectory(); - if (Util.isDesktop) { + if (_createSubDirs) { final dir = Directory("${root.path}/tor"); if (!dir.existsSync()) { await dir.create(); @@ -120,7 +123,7 @@ abstract class StackFileSystem { static Future applicationFiroCacheSQLiteDirectory() async { final root = await applicationRootDirectory(); - if (Util.isDesktop) { + if (_createSubDirs) { final dir = Directory("${root.path}/sqlite/firo_cache"); if (!dir.existsSync()) { await dir.create(recursive: true); @@ -133,7 +136,7 @@ abstract class StackFileSystem { static Future applicationHiveDirectory() async { final root = await applicationRootDirectory(); - if (Util.isDesktop) { + if (_createSubDirs) { final dir = Directory("${root.path}/hive"); if (!dir.existsSync()) { await dir.create(); diff --git a/lib/widgets/onetime_popups/tor_has_been_add_dialog.dart b/lib/widgets/onetime_popups/tor_has_been_add_dialog.dart index ab03f5ae0..9709c46b3 100644 --- a/lib/widgets/onetime_popups/tor_has_been_add_dialog.dart +++ b/lib/widgets/onetime_popups/tor_has_been_add_dialog.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:hive_flutter/hive_flutter.dart'; import '../../db/hive/db.dart'; import '../../utilities/assets.dart'; @@ -17,7 +16,8 @@ const _kOneTimeTorHasBeenAddedDialogWasShown = Future showOneTimeTorHasBeenAddedDialogIfRequired( BuildContext context, ) async { - final box = await Hive.openBox(DB.boxNameOneTimeDialogsShown); + final box = + await DB.instance.hive.openBox(DB.boxNameOneTimeDialogsShown); if (!box.get( _kOneTimeTorHasBeenAddedDialogWasShown, @@ -48,7 +48,9 @@ class _TorHasBeenAddedDialogState extends State<_TorHasBeenAddedDialog> { } _lock = true; try { - final box = await Hive.openBox(DB.boxNameOneTimeDialogsShown); + final box = await DB.instance.hive.openBox( + DB.boxNameOneTimeDialogsShown, + ); await box.put(_kOneTimeTorHasBeenAddedDialogWasShown, true); } catch (_) { // From 22dd11f04aa1b77a545f52cf1776430fbf5b63b0 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 12 Jun 2024 12:12:46 -0600 Subject: [PATCH 223/318] update mocks --- test/cached_electrumx_test.mocks.dart | 59 ++++++++++++++----- .../bitcoin/bitcoin_wallet_test.mocks.dart | 59 ++++++++++++++----- .../bitcoincash_wallet_test.mocks.dart | 59 ++++++++++++++----- .../dogecoin/dogecoin_wallet_test.mocks.dart | 59 ++++++++++++++----- .../namecoin/namecoin_wallet_test.mocks.dart | 59 ++++++++++++++----- .../particl/particl_wallet_test.mocks.dart | 59 ++++++++++++++----- 6 files changed, 258 insertions(+), 96 deletions(-) diff --git a/test/cached_electrumx_test.mocks.dart b/test/cached_electrumx_test.mocks.dart index e8bdc2e53..8a0ea1c71 100644 --- a/test/cached_electrumx_test.mocks.dart +++ b/test/cached_electrumx_test.mocks.dart @@ -428,22 +428,6 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { _i7.Future>.value({}), ) as _i7.Future>); @override - _i7.Future> getSparkUnhashedUsedCoinsTags({ - String? requestID, - required int? startNumber, - }) => - (super.noSuchMethod( - Invocation.method( - #getSparkUnhashedUsedCoinsTags, - [], - { - #requestID: requestID, - #startNumber: startNumber, - }, - ), - returnValue: _i7.Future>.value([]), - ) as _i7.Future>); - @override _i7.Future>> getSparkMintMetaData({ String? requestID, required List? sparkCoinHashes, @@ -471,6 +455,49 @@ class MockElectrumXClient extends _i1.Mock implements _i5.ElectrumXClient { returnValue: _i7.Future.value(0), ) as _i7.Future); @override + _i7.Future> getMempoolTxids({String? requestID}) => + (super.noSuchMethod( + Invocation.method( + #getMempoolTxids, + [], + {#requestID: requestID}, + ), + returnValue: _i7.Future>.value({}), + ) as _i7.Future>); + @override + _i7.Future> getMempoolSparkData({ + String? requestID, + required List? txids, + }) => + (super.noSuchMethod( + Invocation.method( + #getMempoolSparkData, + [], + { + #requestID: requestID, + #txids: txids, + }, + ), + returnValue: + _i7.Future>.value({}), + ) as _i7.Future>); + @override + _i7.Future>> getSparkUnhashedUsedCoinsTagsWithTxHashes({ + String? requestID, + required int? startNumber, + }) => + (super.noSuchMethod( + Invocation.method( + #getSparkUnhashedUsedCoinsTagsWithTxHashes, + [], + { + #requestID: requestID, + #startNumber: startNumber, + }, + ), + returnValue: _i7.Future>>.value(>[]), + ) as _i7.Future>>); + @override _i7.Future> getFeeRate({String? requestID}) => (super.noSuchMethod( Invocation.method( diff --git a/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart b/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart index af94be20b..078584849 100644 --- a/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart +++ b/test/services/coins/bitcoin/bitcoin_wallet_test.mocks.dart @@ -425,22 +425,6 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkUnhashedUsedCoinsTags({ - String? requestID, - required int? startNumber, - }) => - (super.noSuchMethod( - Invocation.method( - #getSparkUnhashedUsedCoinsTags, - [], - { - #requestID: requestID, - #startNumber: startNumber, - }, - ), - returnValue: _i6.Future>.value([]), - ) as _i6.Future>); - @override _i6.Future>> getSparkMintMetaData({ String? requestID, required List? sparkCoinHashes, @@ -468,6 +452,49 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { returnValue: _i6.Future.value(0), ) as _i6.Future); @override + _i6.Future> getMempoolTxids({String? requestID}) => + (super.noSuchMethod( + Invocation.method( + #getMempoolTxids, + [], + {#requestID: requestID}, + ), + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); + @override + _i6.Future> getMempoolSparkData({ + String? requestID, + required List? txids, + }) => + (super.noSuchMethod( + Invocation.method( + #getMempoolSparkData, + [], + { + #requestID: requestID, + #txids: txids, + }, + ), + returnValue: + _i6.Future>.value({}), + ) as _i6.Future>); + @override + _i6.Future>> getSparkUnhashedUsedCoinsTagsWithTxHashes({ + String? requestID, + required int? startNumber, + }) => + (super.noSuchMethod( + Invocation.method( + #getSparkUnhashedUsedCoinsTagsWithTxHashes, + [], + { + #requestID: requestID, + #startNumber: startNumber, + }, + ), + returnValue: _i6.Future>>.value(>[]), + ) as _i6.Future>>); + @override _i6.Future> getFeeRate({String? requestID}) => (super.noSuchMethod( Invocation.method( diff --git a/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart b/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart index 85565e3cf..25ae15056 100644 --- a/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart +++ b/test/services/coins/bitcoincash/bitcoincash_wallet_test.mocks.dart @@ -425,22 +425,6 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkUnhashedUsedCoinsTags({ - String? requestID, - required int? startNumber, - }) => - (super.noSuchMethod( - Invocation.method( - #getSparkUnhashedUsedCoinsTags, - [], - { - #requestID: requestID, - #startNumber: startNumber, - }, - ), - returnValue: _i6.Future>.value([]), - ) as _i6.Future>); - @override _i6.Future>> getSparkMintMetaData({ String? requestID, required List? sparkCoinHashes, @@ -468,6 +452,49 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { returnValue: _i6.Future.value(0), ) as _i6.Future); @override + _i6.Future> getMempoolTxids({String? requestID}) => + (super.noSuchMethod( + Invocation.method( + #getMempoolTxids, + [], + {#requestID: requestID}, + ), + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); + @override + _i6.Future> getMempoolSparkData({ + String? requestID, + required List? txids, + }) => + (super.noSuchMethod( + Invocation.method( + #getMempoolSparkData, + [], + { + #requestID: requestID, + #txids: txids, + }, + ), + returnValue: + _i6.Future>.value({}), + ) as _i6.Future>); + @override + _i6.Future>> getSparkUnhashedUsedCoinsTagsWithTxHashes({ + String? requestID, + required int? startNumber, + }) => + (super.noSuchMethod( + Invocation.method( + #getSparkUnhashedUsedCoinsTagsWithTxHashes, + [], + { + #requestID: requestID, + #startNumber: startNumber, + }, + ), + returnValue: _i6.Future>>.value(>[]), + ) as _i6.Future>>); + @override _i6.Future> getFeeRate({String? requestID}) => (super.noSuchMethod( Invocation.method( diff --git a/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart b/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart index 03e117e4b..24b7bd226 100644 --- a/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart +++ b/test/services/coins/dogecoin/dogecoin_wallet_test.mocks.dart @@ -425,22 +425,6 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkUnhashedUsedCoinsTags({ - String? requestID, - required int? startNumber, - }) => - (super.noSuchMethod( - Invocation.method( - #getSparkUnhashedUsedCoinsTags, - [], - { - #requestID: requestID, - #startNumber: startNumber, - }, - ), - returnValue: _i6.Future>.value([]), - ) as _i6.Future>); - @override _i6.Future>> getSparkMintMetaData({ String? requestID, required List? sparkCoinHashes, @@ -468,6 +452,49 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { returnValue: _i6.Future.value(0), ) as _i6.Future); @override + _i6.Future> getMempoolTxids({String? requestID}) => + (super.noSuchMethod( + Invocation.method( + #getMempoolTxids, + [], + {#requestID: requestID}, + ), + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); + @override + _i6.Future> getMempoolSparkData({ + String? requestID, + required List? txids, + }) => + (super.noSuchMethod( + Invocation.method( + #getMempoolSparkData, + [], + { + #requestID: requestID, + #txids: txids, + }, + ), + returnValue: + _i6.Future>.value({}), + ) as _i6.Future>); + @override + _i6.Future>> getSparkUnhashedUsedCoinsTagsWithTxHashes({ + String? requestID, + required int? startNumber, + }) => + (super.noSuchMethod( + Invocation.method( + #getSparkUnhashedUsedCoinsTagsWithTxHashes, + [], + { + #requestID: requestID, + #startNumber: startNumber, + }, + ), + returnValue: _i6.Future>>.value(>[]), + ) as _i6.Future>>); + @override _i6.Future> getFeeRate({String? requestID}) => (super.noSuchMethod( Invocation.method( diff --git a/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart b/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart index 4e57a7657..e8927e3e7 100644 --- a/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart +++ b/test/services/coins/namecoin/namecoin_wallet_test.mocks.dart @@ -425,22 +425,6 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkUnhashedUsedCoinsTags({ - String? requestID, - required int? startNumber, - }) => - (super.noSuchMethod( - Invocation.method( - #getSparkUnhashedUsedCoinsTags, - [], - { - #requestID: requestID, - #startNumber: startNumber, - }, - ), - returnValue: _i6.Future>.value([]), - ) as _i6.Future>); - @override _i6.Future>> getSparkMintMetaData({ String? requestID, required List? sparkCoinHashes, @@ -468,6 +452,49 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { returnValue: _i6.Future.value(0), ) as _i6.Future); @override + _i6.Future> getMempoolTxids({String? requestID}) => + (super.noSuchMethod( + Invocation.method( + #getMempoolTxids, + [], + {#requestID: requestID}, + ), + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); + @override + _i6.Future> getMempoolSparkData({ + String? requestID, + required List? txids, + }) => + (super.noSuchMethod( + Invocation.method( + #getMempoolSparkData, + [], + { + #requestID: requestID, + #txids: txids, + }, + ), + returnValue: + _i6.Future>.value({}), + ) as _i6.Future>); + @override + _i6.Future>> getSparkUnhashedUsedCoinsTagsWithTxHashes({ + String? requestID, + required int? startNumber, + }) => + (super.noSuchMethod( + Invocation.method( + #getSparkUnhashedUsedCoinsTagsWithTxHashes, + [], + { + #requestID: requestID, + #startNumber: startNumber, + }, + ), + returnValue: _i6.Future>>.value(>[]), + ) as _i6.Future>>); + @override _i6.Future> getFeeRate({String? requestID}) => (super.noSuchMethod( Invocation.method( diff --git a/test/services/coins/particl/particl_wallet_test.mocks.dart b/test/services/coins/particl/particl_wallet_test.mocks.dart index 9cb9db169..3490fc59f 100644 --- a/test/services/coins/particl/particl_wallet_test.mocks.dart +++ b/test/services/coins/particl/particl_wallet_test.mocks.dart @@ -425,22 +425,6 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { _i6.Future>.value({}), ) as _i6.Future>); @override - _i6.Future> getSparkUnhashedUsedCoinsTags({ - String? requestID, - required int? startNumber, - }) => - (super.noSuchMethod( - Invocation.method( - #getSparkUnhashedUsedCoinsTags, - [], - { - #requestID: requestID, - #startNumber: startNumber, - }, - ), - returnValue: _i6.Future>.value([]), - ) as _i6.Future>); - @override _i6.Future>> getSparkMintMetaData({ String? requestID, required List? sparkCoinHashes, @@ -468,6 +452,49 @@ class MockElectrumXClient extends _i1.Mock implements _i4.ElectrumXClient { returnValue: _i6.Future.value(0), ) as _i6.Future); @override + _i6.Future> getMempoolTxids({String? requestID}) => + (super.noSuchMethod( + Invocation.method( + #getMempoolTxids, + [], + {#requestID: requestID}, + ), + returnValue: _i6.Future>.value({}), + ) as _i6.Future>); + @override + _i6.Future> getMempoolSparkData({ + String? requestID, + required List? txids, + }) => + (super.noSuchMethod( + Invocation.method( + #getMempoolSparkData, + [], + { + #requestID: requestID, + #txids: txids, + }, + ), + returnValue: + _i6.Future>.value({}), + ) as _i6.Future>); + @override + _i6.Future>> getSparkUnhashedUsedCoinsTagsWithTxHashes({ + String? requestID, + required int? startNumber, + }) => + (super.noSuchMethod( + Invocation.method( + #getSparkUnhashedUsedCoinsTagsWithTxHashes, + [], + { + #requestID: requestID, + #startNumber: startNumber, + }, + ), + returnValue: _i6.Future>>.value(>[]), + ) as _i6.Future>>); + @override _i6.Future> getFeeRate({String? requestID}) => (super.noSuchMethod( Invocation.method( From f2a66605522be97db3de88cd35c52a047c50eea4 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 12 Jun 2024 15:12:53 -0600 Subject: [PATCH 224/318] add tor functionality to xmr/wow test connection --- .../test_monero_node_connection.dart | 27 ++++++++++---- lib/utilities/test_node_connection.dart | 35 ++++++++++++++----- lib/widgets/node_options_sheet.dart | 14 ++++++-- 3 files changed, 59 insertions(+), 17 deletions(-) diff --git a/lib/utilities/test_monero_node_connection.dart b/lib/utilities/test_monero_node_connection.dart index bc9c95a69..f7bbfeaf2 100644 --- a/lib/utilities/test_monero_node_connection.dart +++ b/lib/utilities/test_monero_node_connection.dart @@ -12,6 +12,7 @@ import 'dart:convert'; import 'dart:io'; import 'package:flutter/material.dart'; +import 'package:socks5_proxy/socks.dart'; import '../widgets/desktop/primary_button.dart'; import '../widgets/desktop/secondary_button.dart'; @@ -30,12 +31,26 @@ class MoneroNodeConnectionResponse { Future testMoneroNodeConnection( Uri uri, - bool allowBadX509Certificate, -) async { - final client = HttpClient(); + bool allowBadX509Certificate, { + required ({ + InternetAddress host, + int port, + })? proxyInfo, +}) async { + final httpClient = HttpClient(); MoneroNodeConnectionResponse? badCertResponse; + try { - client.badCertificateCallback = (cert, url, port) { + if (proxyInfo != null) { + SocksTCPClient.assignToHttpClient(httpClient, [ + ProxySettings( + proxyInfo.host, + proxyInfo.port, + ), + ]); + } + + httpClient.badCertificateCallback = (cert, url, port) { if (allowBadX509Certificate) { return true; } @@ -49,7 +64,7 @@ Future testMoneroNodeConnection( return false; }; - final request = await client.postUrl(uri); + final request = await httpClient.postUrl(uri); final body = utf8.encode( jsonEncode({ @@ -85,7 +100,7 @@ Future testMoneroNodeConnection( return MoneroNodeConnectionResponse(null, null, null, false); } } finally { - client.close(force: true); + httpClient.close(force: true); } } diff --git a/lib/utilities/test_node_connection.dart b/lib/utilities/test_node_connection.dart index 7dd432140..d74c00984 100644 --- a/lib/utilities/test_node_connection.dart +++ b/lib/utilities/test_node_connection.dart @@ -1,27 +1,35 @@ import 'dart:async'; +import 'dart:convert'; +import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:solana/solana.dart'; + +import '../networking/http.dart'; import '../pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; import '../providers/global/prefs_provider.dart'; import '../services/tor_service.dart'; +import '../wallets/api/tezos/tezos_rpc_api.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; +import '../wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../wallets/crypto_currency/intermediate/cryptonote_currency.dart'; +import '../wallets/crypto_currency/intermediate/nano_currency.dart'; import 'connection_check/electrum_connection_check.dart'; import 'logger.dart'; import 'test_epic_box_connection.dart'; import 'test_eth_node_connection.dart'; import 'test_monero_node_connection.dart'; import 'test_stellar_node_connection.dart'; -import '../wallets/api/tezos/tezos_rpc_api.dart'; -import '../wallets/crypto_currency/crypto_currency.dart'; -import '../wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; -import '../wallets/crypto_currency/intermediate/cryptonote_currency.dart'; -import '../wallets/crypto_currency/intermediate/nano_currency.dart'; Future _xmrHelper( NodeFormData nodeFormData, BuildContext context, void Function(NodeFormData)? onSuccess, + ({ + InternetAddress host, + int port, + })? proxyInfo, ) async { final data = nodeFormData; final url = data.host!; @@ -36,6 +44,7 @@ Future _xmrHelper( final response = await testMoneroNodeConnection( Uri.parse(uriString), false, + proxyInfo: proxyInfo, ); if (response.cert != null) { @@ -48,8 +57,11 @@ Future _xmrHelper( ); if (shouldAllowBadCert) { - final response = - await testMoneroNodeConnection(Uri.parse(uriString), true); + final response = await testMoneroNodeConnection( + Uri.parse(uriString), + true, + proxyInfo: proxyInfo, + ); onSuccess?.call(data..host = url); return response.success; } @@ -90,6 +102,10 @@ Future testNodeConnection({ case CryptonoteCurrency(): try { + final proxyInfo = ref.read(prefsChangeNotifierProvider).useTor + ? ref.read(pTorService).getProxyInfo() + : null; + final url = formData.host!; final uri = Uri.tryParse(url); if (uri != null) { @@ -101,9 +117,10 @@ Future testNodeConnection({ ..useSSL = true, context, onSuccess, + proxyInfo, ); - if (testPassed == false) { + if (testPassed == false && context.mounted) { // try http testPassed = await _xmrHelper( formData @@ -111,6 +128,7 @@ Future testNodeConnection({ ..useSSL = false, context, onSuccess, + proxyInfo, ); } } else { @@ -120,6 +138,7 @@ Future testNodeConnection({ ..useSSL = true, context, onSuccess, + proxyInfo, ); } } diff --git a/lib/widgets/node_options_sheet.dart b/lib/widgets/node_options_sheet.dart index 82137ac80..bb5692b1f 100644 --- a/lib/widgets/node_options_sheet.dart +++ b/lib/widgets/node_options_sheet.dart @@ -117,9 +117,12 @@ class NodeOptionsSheet extends ConsumerWidget { final response = await testMoneroNodeConnection( Uri.parse(uriString), false, + proxyInfo: ref.read(prefsChangeNotifierProvider).useTor + ? ref.read(pTorService).getProxyInfo() + : null, ); - if (response.cert != null) { + if (response.cert != null && context.mounted) { // if (mounted) { final shouldAllowBadCert = await showBadX509CertificateDialog( response.cert!, @@ -129,8 +132,13 @@ class NodeOptionsSheet extends ConsumerWidget { ); if (shouldAllowBadCert) { - final response = - await testMoneroNodeConnection(Uri.parse(uriString), true); + final response = await testMoneroNodeConnection( + Uri.parse(uriString), + true, + proxyInfo: ref.read(prefsChangeNotifierProvider).useTor + ? ref.read(pTorService).getProxyInfo() + : null, + ); testPassed = response.success; } // } From a28e9151dbfcfba624e637db88cd6e213f6d1518 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 12 Jun 2024 15:13:34 -0600 Subject: [PATCH 225/318] fix nano test connection in gui --- lib/utilities/test_node_connection.dart | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/utilities/test_node_connection.dart b/lib/utilities/test_node_connection.dart index d74c00984..5578d5fd0 100644 --- a/lib/utilities/test_node_connection.dart +++ b/lib/utilities/test_node_connection.dart @@ -180,8 +180,25 @@ Future testNodeConnection({ break; case NanoCurrency(): - //TODO: check network/node - throw UnimplementedError(); + try { + final uri = Uri.parse(formData.host!); + + final response = await HTTP().post( + url: uri, + headers: {"Content-Type": "application/json"}, + body: jsonEncode( + { + "action": "version", + }, + ), + proxyInfo: ref.read(prefsChangeNotifierProvider).useTor + ? ref.read(pTorService).getProxyInfo() + : null, + ); + + testPassed = response.code == 200; + } catch (_) {} + break; case Tezos(): try { From 1f71fbcc73948d6eeaff591626136c131a48f4ab Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 12 Jun 2024 15:20:53 -0600 Subject: [PATCH 226/318] enable tor for xmr/wow officially --- lib/wallets/crypto_currency/coins/monero.dart | 3 +++ lib/wallets/crypto_currency/coins/wownero.dart | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/lib/wallets/crypto_currency/coins/monero.dart b/lib/wallets/crypto_currency/coins/monero.dart index fa7e32886..6ff147f5b 100644 --- a/lib/wallets/crypto_currency/coins/monero.dart +++ b/lib/wallets/crypto_currency/coins/monero.dart @@ -43,6 +43,9 @@ class Monero extends CryptonoteCurrency { @override int get minConfirms => 10; + @override + bool get torSupport => true; + @override bool validateAddress(String address) { switch (network) { diff --git a/lib/wallets/crypto_currency/coins/wownero.dart b/lib/wallets/crypto_currency/coins/wownero.dart index c7cb41ff7..dd1af1d7d 100644 --- a/lib/wallets/crypto_currency/coins/wownero.dart +++ b/lib/wallets/crypto_currency/coins/wownero.dart @@ -1,4 +1,5 @@ import 'package:cw_wownero/api/wallet.dart' as wownero_wallet; + import '../../../models/node_model.dart'; import '../../../utilities/default_nodes.dart'; import '../../../utilities/enums/derive_path_type_enum.dart'; @@ -42,6 +43,9 @@ class Wownero extends CryptonoteCurrency { @override int get minConfirms => 15; + @override + bool get torSupport => true; + @override bool validateAddress(String address) { return wownero_wallet.addressValid(address); From 0b28832a0ecac9d66b14db3fb895ce3a8e0a7ed5 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 12 Jun 2024 16:58:25 -0500 Subject: [PATCH 227/318] bump arti to 1.2.4 via cypherstack/tor_ffi_plugin and cypherstack/electrum_adapter --- pubspec.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 47dc7ef13..6271130e7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -543,8 +543,8 @@ packages: dependency: "direct main" description: path: "." - ref: "9e9441fc1e9ace8907256fff05fe2c607b0933b6" - resolved-ref: "9e9441fc1e9ace8907256fff05fe2c607b0933b6" + ref: "23f6b42895827ba9202db176781810d085fdd77e" + resolved-ref: "23f6b42895827ba9202db176781810d085fdd77e" url: "https://github.com/cypherstack/electrum_adapter.git" source: git version: "3.0.0" @@ -1807,8 +1807,8 @@ packages: dependency: "direct main" description: path: "." - ref: e37dc4e22f7acb2746b70bdc935f0eb3c50b8b71 - resolved-ref: e37dc4e22f7acb2746b70bdc935f0eb3c50b8b71 + ref: "336f4310226166c7da3b503b2b54f2249e9e0055" + resolved-ref: "336f4310226166c7da3b503b2b54f2249e9e0055" url: "https://github.com/cypherstack/tor.git" source: git version: "0.0.1" From 2594169a4203ba1a01e1b6c78722612fd06a4f74 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 12 Jun 2024 17:13:06 -0600 Subject: [PATCH 228/318] add polyseed eng wordlist and use it --- .../name_your_wallet_view.dart | 3 +- .../restore_options_view.dart | 61 +- .../restore_wallet_view.dart | 10 +- lib/wallets/crypto_currency/coins/monero.dart | 2055 +++++++++++++++- test/sixteen_word_list_sanity_test.dart | 2068 +++++++++++++++++ 5 files changed, 4143 insertions(+), 54 deletions(-) create mode 100644 test/sixteen_word_list_sanity_test.dart diff --git a/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart b/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart index f75328e6a..29742f251 100644 --- a/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart +++ b/lib/pages/add_wallet_views/name_your_wallet_view/name_your_wallet_view.dart @@ -96,7 +96,8 @@ class _NameYourWalletViewState extends ConsumerState { if (mounted) { ref.read(mnemonicWordCountStateProvider.state).state = - coin.possibleMnemonicLengths.last; + coin.defaultSeedPhraseLength; + ref.read(pNewWalletOptions.notifier).state = null; switch (widget.addWalletType) { diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart index 1ba3cef79..8f88e8710 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart @@ -170,6 +170,11 @@ class _RestoreOptionsViewState extends ConsumerState { final lengths = coin.possibleMnemonicLengths; + final isMoneroAnd25 = coin is Monero && + ref.watch(mnemonicWordCountStateProvider.state).state == 25; + final isWowneroAnd25 = coin is Wownero && + ref.watch(mnemonicWordCountStateProvider.state).state == 25; + return MasterScaffold( isDesktop: isDesktop, appBar: isDesktop @@ -222,13 +227,7 @@ class _RestoreOptionsViewState extends ConsumerState { SizedBox( height: isDesktop ? 40 : 24, ), - if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25) || - coin is Epiccash || - (coin is Wownero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25)) + if (isMoneroAnd25 || coin is Epiccash || isWowneroAnd25) Text( "Choose start date", style: isDesktop @@ -240,58 +239,28 @@ class _RestoreOptionsViewState extends ConsumerState { : STextStyles.smallMed12(context), textAlign: TextAlign.left, ), - if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25) || - coin is Epiccash || - (coin is Wownero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25)) + if (isMoneroAnd25 || coin is Epiccash || isWowneroAnd25) SizedBox( height: isDesktop ? 16 : 8, ), - if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25) || - coin is Epiccash || - (coin is Wownero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25)) + if (isMoneroAnd25 || coin is Epiccash || isWowneroAnd25) if (!isDesktop) RestoreFromDatePicker( onTap: chooseDate, controller: _dateController, ), - if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25) || - coin is Epiccash || - (coin is Wownero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25)) + if (isMoneroAnd25 || coin is Epiccash || isWowneroAnd25) if (isDesktop) // TODO desktop date picker RestoreFromDatePicker( onTap: chooseDesktopDate, controller: _dateController, ), - if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25) || - coin is Epiccash || - (coin is Wownero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25)) + if (isMoneroAnd25 || coin is Epiccash || isWowneroAnd25) const SizedBox( height: 8, ), - if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25) || - coin is Epiccash || - (coin is Wownero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25)) + if (isMoneroAnd25 || coin is Epiccash || isWowneroAnd25) RoundedWhiteContainer( child: Center( child: Text( @@ -308,13 +277,7 @@ class _RestoreOptionsViewState extends ConsumerState { ), ), ), - if ((coin is Monero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25) || - coin is Epiccash || - (coin is Wownero && - ref.watch(mnemonicWordCountStateProvider.state).state == - 25)) + if (isMoneroAnd25 || coin is Epiccash || isWowneroAnd25) SizedBox( height: isDesktop ? 24 : 16, ), diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart index a7768b061..4c26ff3fa 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart @@ -179,8 +179,14 @@ class _RestoreWalletViewState extends ConsumerState { bool _isValidMnemonicWord(String word) { // TODO: get the actual language if (widget.coin is Monero) { - final moneroWordList = libxmr.monero.getMoneroWordList("English"); - return moneroWordList.contains(word); + switch (widget.seedWordsLength) { + case 25: + return libxmr.monero.getMoneroWordList("English").contains(word); + case 16: + return Monero.sixteenWordsWordList.contains(word); + default: + return false; + } } if (widget.coin is Wownero) { final wowneroWordList = libwow.wownero.getWowneroWordList( diff --git a/lib/wallets/crypto_currency/coins/monero.dart b/lib/wallets/crypto_currency/coins/monero.dart index 6ff147f5b..e0712d845 100644 --- a/lib/wallets/crypto_currency/coins/monero.dart +++ b/lib/wallets/crypto_currency/coins/monero.dart @@ -79,7 +79,7 @@ class Monero extends CryptonoteCurrency { } @override - int get defaultSeedPhraseLength => 25; + int get defaultSeedPhraseLength => 16; @override int get fractionDigits => 12; @@ -91,7 +91,7 @@ class Monero extends CryptonoteCurrency { bool get hasMnemonicPassphraseSupport => false; @override - List get possibleMnemonicLengths => [defaultSeedPhraseLength]; + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 25]; @override BigInt get satsPerCoin => BigInt.from(1000000000000); @@ -115,4 +115,2055 @@ class Monero extends CryptonoteCurrency { ); } } + + static const sixteenWordsWordList = { + "abandon", + "ability", + "able", + "about", + "above", + "absent", + "absorb", + "abstract", + "absurd", + "abuse", + "access", + "accident", + "account", + "accuse", + "achieve", + "acid", + "acoustic", + "acquire", + "across", + "act", + "action", + "actor", + "actress", + "actual", + "adapt", + "add", + "addict", + "address", + "adjust", + "admit", + "adult", + "advance", + "advice", + "aerobic", + "affair", + "afford", + "afraid", + "again", + "age", + "agent", + "agree", + "ahead", + "aim", + "air", + "airport", + "aisle", + "alarm", + "album", + "alcohol", + "alert", + "alien", + "all", + "alley", + "allow", + "almost", + "alone", + "alpha", + "already", + "also", + "alter", + "always", + "amateur", + "amazing", + "among", + "amount", + "amused", + "analyst", + "anchor", + "ancient", + "anger", + "angle", + "angry", + "animal", + "ankle", + "announce", + "annual", + "another", + "answer", + "antenna", + "antique", + "anxiety", + "any", + "apart", + "apology", + "appear", + "apple", + "approve", + "april", + "arch", + "arctic", + "area", + "arena", + "argue", + "arm", + "armed", + "armor", + "army", + "around", + "arrange", + "arrest", + "arrive", + "arrow", + "art", + "artefact", + "artist", + "artwork", + "ask", + "aspect", + "assault", + "asset", + "assist", + "assume", + "asthma", + "athlete", + "atom", + "attack", + "attend", + "attitude", + "attract", + "auction", + "audit", + "august", + "aunt", + "author", + "auto", + "autumn", + "average", + "avocado", + "avoid", + "awake", + "aware", + "away", + "awesome", + "awful", + "awkward", + "axis", + "baby", + "bachelor", + "bacon", + "badge", + "bag", + "balance", + "balcony", + "ball", + "bamboo", + "banana", + "banner", + "bar", + "barely", + "bargain", + "barrel", + "base", + "basic", + "basket", + "battle", + "beach", + "bean", + "beauty", + "because", + "become", + "beef", + "before", + "begin", + "behave", + "behind", + "believe", + "below", + "belt", + "bench", + "benefit", + "best", + "betray", + "better", + "between", + "beyond", + "bicycle", + "bid", + "bike", + "bind", + "biology", + "bird", + "birth", + "bitter", + "black", + "blade", + "blame", + "blanket", + "blast", + "bleak", + "bless", + "blind", + "blood", + "blossom", + "blouse", + "blue", + "blur", + "blush", + "board", + "boat", + "body", + "boil", + "bomb", + "bone", + "bonus", + "book", + "boost", + "border", + "boring", + "borrow", + "boss", + "bottom", + "bounce", + "box", + "boy", + "bracket", + "brain", + "brand", + "brass", + "brave", + "bread", + "breeze", + "brick", + "bridge", + "brief", + "bright", + "bring", + "brisk", + "broccoli", + "broken", + "bronze", + "broom", + "brother", + "brown", + "brush", + "bubble", + "buddy", + "budget", + "buffalo", + "build", + "bulb", + "bulk", + "bullet", + "bundle", + "bunker", + "burden", + "burger", + "burst", + "bus", + "business", + "busy", + "butter", + "buyer", + "buzz", + "cabbage", + "cabin", + "cable", + "cactus", + "cage", + "cake", + "call", + "calm", + "camera", + "camp", + "can", + "canal", + "cancel", + "candy", + "cannon", + "canoe", + "canvas", + "canyon", + "capable", + "capital", + "captain", + "car", + "carbon", + "card", + "cargo", + "carpet", + "carry", + "cart", + "case", + "cash", + "casino", + "castle", + "casual", + "cat", + "catalog", + "catch", + "category", + "cattle", + "caught", + "cause", + "caution", + "cave", + "ceiling", + "celery", + "cement", + "census", + "century", + "cereal", + "certain", + "chair", + "chalk", + "champion", + "change", + "chaos", + "chapter", + "charge", + "chase", + "chat", + "cheap", + "check", + "cheese", + "chef", + "cherry", + "chest", + "chicken", + "chief", + "child", + "chimney", + "choice", + "choose", + "chronic", + "chuckle", + "chunk", + "churn", + "cigar", + "cinnamon", + "circle", + "citizen", + "city", + "civil", + "claim", + "clap", + "clarify", + "claw", + "clay", + "clean", + "clerk", + "clever", + "click", + "client", + "cliff", + "climb", + "clinic", + "clip", + "clock", + "clog", + "close", + "cloth", + "cloud", + "clown", + "club", + "clump", + "cluster", + "clutch", + "coach", + "coast", + "coconut", + "code", + "coffee", + "coil", + "coin", + "collect", + "color", + "column", + "combine", + "come", + "comfort", + "comic", + "common", + "company", + "concert", + "conduct", + "confirm", + "congress", + "connect", + "consider", + "control", + "convince", + "cook", + "cool", + "copper", + "copy", + "coral", + "core", + "corn", + "correct", + "cost", + "cotton", + "couch", + "country", + "couple", + "course", + "cousin", + "cover", + "coyote", + "crack", + "cradle", + "craft", + "cram", + "crane", + "crash", + "crater", + "crawl", + "crazy", + "cream", + "credit", + "creek", + "crew", + "cricket", + "crime", + "crisp", + "critic", + "crop", + "cross", + "crouch", + "crowd", + "crucial", + "cruel", + "cruise", + "crumble", + "crunch", + "crush", + "cry", + "crystal", + "cube", + "culture", + "cup", + "cupboard", + "curious", + "current", + "curtain", + "curve", + "cushion", + "custom", + "cute", + "cycle", + "dad", + "damage", + "damp", + "dance", + "danger", + "daring", + "dash", + "daughter", + "dawn", + "day", + "deal", + "debate", + "debris", + "decade", + "december", + "decide", + "decline", + "decorate", + "decrease", + "deer", + "defense", + "define", + "defy", + "degree", + "delay", + "deliver", + "demand", + "demise", + "denial", + "dentist", + "deny", + "depart", + "depend", + "deposit", + "depth", + "deputy", + "derive", + "describe", + "desert", + "design", + "desk", + "despair", + "destroy", + "detail", + "detect", + "develop", + "device", + "devote", + "diagram", + "dial", + "diamond", + "diary", + "dice", + "diesel", + "diet", + "differ", + "digital", + "dignity", + "dilemma", + "dinner", + "dinosaur", + "direct", + "dirt", + "disagree", + "discover", + "disease", + "dish", + "dismiss", + "disorder", + "display", + "distance", + "divert", + "divide", + "divorce", + "dizzy", + "doctor", + "document", + "dog", + "doll", + "dolphin", + "domain", + "donate", + "donkey", + "donor", + "door", + "dose", + "double", + "dove", + "draft", + "dragon", + "drama", + "drastic", + "draw", + "dream", + "dress", + "drift", + "drill", + "drink", + "drip", + "drive", + "drop", + "drum", + "dry", + "duck", + "dumb", + "dune", + "during", + "dust", + "dutch", + "duty", + "dwarf", + "dynamic", + "eager", + "eagle", + "early", + "earn", + "earth", + "easily", + "east", + "easy", + "echo", + "ecology", + "economy", + "edge", + "edit", + "educate", + "effort", + "egg", + "eight", + "either", + "elbow", + "elder", + "electric", + "elegant", + "element", + "elephant", + "elevator", + "elite", + "else", + "embark", + "embody", + "embrace", + "emerge", + "emotion", + "employ", + "empower", + "empty", + "enable", + "enact", + "end", + "endless", + "endorse", + "enemy", + "energy", + "enforce", + "engage", + "engine", + "enhance", + "enjoy", + "enlist", + "enough", + "enrich", + "enroll", + "ensure", + "enter", + "entire", + "entry", + "envelope", + "episode", + "equal", + "equip", + "era", + "erase", + "erode", + "erosion", + "error", + "erupt", + "escape", + "essay", + "essence", + "estate", + "eternal", + "ethics", + "evidence", + "evil", + "evoke", + "evolve", + "exact", + "example", + "excess", + "exchange", + "excite", + "exclude", + "excuse", + "execute", + "exercise", + "exhaust", + "exhibit", + "exile", + "exist", + "exit", + "exotic", + "expand", + "expect", + "expire", + "explain", + "expose", + "express", + "extend", + "extra", + "eye", + "eyebrow", + "fabric", + "face", + "faculty", + "fade", + "faint", + "faith", + "fall", + "false", + "fame", + "family", + "famous", + "fan", + "fancy", + "fantasy", + "farm", + "fashion", + "fat", + "fatal", + "father", + "fatigue", + "fault", + "favorite", + "feature", + "february", + "federal", + "fee", + "feed", + "feel", + "female", + "fence", + "festival", + "fetch", + "fever", + "few", + "fiber", + "fiction", + "field", + "figure", + "file", + "film", + "filter", + "final", + "find", + "fine", + "finger", + "finish", + "fire", + "firm", + "first", + "fiscal", + "fish", + "fit", + "fitness", + "fix", + "flag", + "flame", + "flash", + "flat", + "flavor", + "flee", + "flight", + "flip", + "float", + "flock", + "floor", + "flower", + "fluid", + "flush", + "fly", + "foam", + "focus", + "fog", + "foil", + "fold", + "follow", + "food", + "foot", + "force", + "forest", + "forget", + "fork", + "fortune", + "forum", + "forward", + "fossil", + "foster", + "found", + "fox", + "fragile", + "frame", + "frequent", + "fresh", + "friend", + "fringe", + "frog", + "front", + "frost", + "frown", + "frozen", + "fruit", + "fuel", + "fun", + "funny", + "furnace", + "fury", + "future", + "gadget", + "gain", + "galaxy", + "gallery", + "game", + "gap", + "garage", + "garbage", + "garden", + "garlic", + "garment", + "gas", + "gasp", + "gate", + "gather", + "gauge", + "gaze", + "general", + "genius", + "genre", + "gentle", + "genuine", + "gesture", + "ghost", + "giant", + "gift", + "giggle", + "ginger", + "giraffe", + "girl", + "give", + "glad", + "glance", + "glare", + "glass", + "glide", + "glimpse", + "globe", + "gloom", + "glory", + "glove", + "glow", + "glue", + "goat", + "goddess", + "gold", + "good", + "goose", + "gorilla", + "gospel", + "gossip", + "govern", + "gown", + "grab", + "grace", + "grain", + "grant", + "grape", + "grass", + "gravity", + "great", + "green", + "grid", + "grief", + "grit", + "grocery", + "group", + "grow", + "grunt", + "guard", + "guess", + "guide", + "guilt", + "guitar", + "gun", + "gym", + "habit", + "hair", + "half", + "hammer", + "hamster", + "hand", + "happy", + "harbor", + "hard", + "harsh", + "harvest", + "hat", + "have", + "hawk", + "hazard", + "head", + "health", + "heart", + "heavy", + "hedgehog", + "height", + "hello", + "helmet", + "help", + "hen", + "hero", + "hidden", + "high", + "hill", + "hint", + "hip", + "hire", + "history", + "hobby", + "hockey", + "hold", + "hole", + "holiday", + "hollow", + "home", + "honey", + "hood", + "hope", + "horn", + "horror", + "horse", + "hospital", + "host", + "hotel", + "hour", + "hover", + "hub", + "huge", + "human", + "humble", + "humor", + "hundred", + "hungry", + "hunt", + "hurdle", + "hurry", + "hurt", + "husband", + "hybrid", + "ice", + "icon", + "idea", + "identify", + "idle", + "ignore", + "ill", + "illegal", + "illness", + "image", + "imitate", + "immense", + "immune", + "impact", + "impose", + "improve", + "impulse", + "inch", + "include", + "income", + "increase", + "index", + "indicate", + "indoor", + "industry", + "infant", + "inflict", + "inform", + "inhale", + "inherit", + "initial", + "inject", + "injury", + "inmate", + "inner", + "innocent", + "input", + "inquiry", + "insane", + "insect", + "inside", + "inspire", + "install", + "intact", + "interest", + "into", + "invest", + "invite", + "involve", + "iron", + "island", + "isolate", + "issue", + "item", + "ivory", + "jacket", + "jaguar", + "jar", + "jazz", + "jealous", + "jeans", + "jelly", + "jewel", + "job", + "join", + "joke", + "journey", + "joy", + "judge", + "juice", + "jump", + "jungle", + "junior", + "junk", + "just", + "kangaroo", + "keen", + "keep", + "ketchup", + "key", + "kick", + "kid", + "kidney", + "kind", + "kingdom", + "kiss", + "kit", + "kitchen", + "kite", + "kitten", + "kiwi", + "knee", + "knife", + "knock", + "know", + "lab", + "label", + "labor", + "ladder", + "lady", + "lake", + "lamp", + "language", + "laptop", + "large", + "later", + "latin", + "laugh", + "laundry", + "lava", + "law", + "lawn", + "lawsuit", + "layer", + "lazy", + "leader", + "leaf", + "learn", + "leave", + "lecture", + "left", + "leg", + "legal", + "legend", + "leisure", + "lemon", + "lend", + "length", + "lens", + "leopard", + "lesson", + "letter", + "level", + "liar", + "liberty", + "library", + "license", + "life", + "lift", + "light", + "like", + "limb", + "limit", + "link", + "lion", + "liquid", + "list", + "little", + "live", + "lizard", + "load", + "loan", + "lobster", + "local", + "lock", + "logic", + "lonely", + "long", + "loop", + "lottery", + "loud", + "lounge", + "love", + "loyal", + "lucky", + "luggage", + "lumber", + "lunar", + "lunch", + "luxury", + "lyrics", + "machine", + "mad", + "magic", + "magnet", + "maid", + "mail", + "main", + "major", + "make", + "mammal", + "man", + "manage", + "mandate", + "mango", + "mansion", + "manual", + "maple", + "marble", + "march", + "margin", + "marine", + "market", + "marriage", + "mask", + "mass", + "master", + "match", + "material", + "math", + "matrix", + "matter", + "maximum", + "maze", + "meadow", + "mean", + "measure", + "meat", + "mechanic", + "medal", + "media", + "melody", + "melt", + "member", + "memory", + "mention", + "menu", + "mercy", + "merge", + "merit", + "merry", + "mesh", + "message", + "metal", + "method", + "middle", + "midnight", + "milk", + "million", + "mimic", + "mind", + "minimum", + "minor", + "minute", + "miracle", + "mirror", + "misery", + "miss", + "mistake", + "mix", + "mixed", + "mixture", + "mobile", + "model", + "modify", + "mom", + "moment", + "monitor", + "monkey", + "monster", + "month", + "moon", + "moral", + "more", + "morning", + "mosquito", + "mother", + "motion", + "motor", + "mountain", + "mouse", + "move", + "movie", + "much", + "muffin", + "mule", + "multiply", + "muscle", + "museum", + "mushroom", + "music", + "must", + "mutual", + "myself", + "mystery", + "myth", + "naive", + "name", + "napkin", + "narrow", + "nasty", + "nation", + "nature", + "near", + "neck", + "need", + "negative", + "neglect", + "neither", + "nephew", + "nerve", + "nest", + "net", + "network", + "neutral", + "never", + "news", + "next", + "nice", + "night", + "noble", + "noise", + "nominee", + "noodle", + "normal", + "north", + "nose", + "notable", + "note", + "nothing", + "notice", + "novel", + "now", + "nuclear", + "number", + "nurse", + "nut", + "oak", + "obey", + "object", + "oblige", + "obscure", + "observe", + "obtain", + "obvious", + "occur", + "ocean", + "october", + "odor", + "off", + "offer", + "office", + "often", + "oil", + "okay", + "old", + "olive", + "olympic", + "omit", + "once", + "one", + "onion", + "online", + "only", + "open", + "opera", + "opinion", + "oppose", + "option", + "orange", + "orbit", + "orchard", + "order", + "ordinary", + "organ", + "orient", + "original", + "orphan", + "ostrich", + "other", + "outdoor", + "outer", + "output", + "outside", + "oval", + "oven", + "over", + "own", + "owner", + "oxygen", + "oyster", + "ozone", + "pact", + "paddle", + "page", + "pair", + "palace", + "palm", + "panda", + "panel", + "panic", + "panther", + "paper", + "parade", + "parent", + "park", + "parrot", + "party", + "pass", + "patch", + "path", + "patient", + "patrol", + "pattern", + "pause", + "pave", + "payment", + "peace", + "peanut", + "pear", + "peasant", + "pelican", + "pen", + "penalty", + "pencil", + "people", + "pepper", + "perfect", + "permit", + "person", + "pet", + "phone", + "photo", + "phrase", + "physical", + "piano", + "picnic", + "picture", + "piece", + "pig", + "pigeon", + "pill", + "pilot", + "pink", + "pioneer", + "pipe", + "pistol", + "pitch", + "pizza", + "place", + "planet", + "plastic", + "plate", + "play", + "please", + "pledge", + "pluck", + "plug", + "plunge", + "poem", + "poet", + "point", + "polar", + "pole", + "police", + "pond", + "pony", + "pool", + "popular", + "portion", + "position", + "possible", + "post", + "potato", + "pottery", + "poverty", + "powder", + "power", + "practice", + "praise", + "predict", + "prefer", + "prepare", + "present", + "pretty", + "prevent", + "price", + "pride", + "primary", + "print", + "priority", + "prison", + "private", + "prize", + "problem", + "process", + "produce", + "profit", + "program", + "project", + "promote", + "proof", + "property", + "prosper", + "protect", + "proud", + "provide", + "public", + "pudding", + "pull", + "pulp", + "pulse", + "pumpkin", + "punch", + "pupil", + "puppy", + "purchase", + "purity", + "purpose", + "purse", + "push", + "put", + "puzzle", + "pyramid", + "quality", + "quantum", + "quarter", + "question", + "quick", + "quit", + "quiz", + "quote", + "rabbit", + "raccoon", + "race", + "rack", + "radar", + "radio", + "rail", + "rain", + "raise", + "rally", + "ramp", + "ranch", + "random", + "range", + "rapid", + "rare", + "rate", + "rather", + "raven", + "raw", + "razor", + "ready", + "real", + "reason", + "rebel", + "rebuild", + "recall", + "receive", + "recipe", + "record", + "recycle", + "reduce", + "reflect", + "reform", + "refuse", + "region", + "regret", + "regular", + "reject", + "relax", + "release", + "relief", + "rely", + "remain", + "remember", + "remind", + "remove", + "render", + "renew", + "rent", + "reopen", + "repair", + "repeat", + "replace", + "report", + "require", + "rescue", + "resemble", + "resist", + "resource", + "response", + "result", + "retire", + "retreat", + "return", + "reunion", + "reveal", + "review", + "reward", + "rhythm", + "rib", + "ribbon", + "rice", + "rich", + "ride", + "ridge", + "rifle", + "right", + "rigid", + "ring", + "riot", + "ripple", + "risk", + "ritual", + "rival", + "river", + "road", + "roast", + "robot", + "robust", + "rocket", + "romance", + "roof", + "rookie", + "room", + "rose", + "rotate", + "rough", + "round", + "route", + "royal", + "rubber", + "rude", + "rug", + "rule", + "run", + "runway", + "rural", + "sad", + "saddle", + "sadness", + "safe", + "sail", + "salad", + "salmon", + "salon", + "salt", + "salute", + "same", + "sample", + "sand", + "satisfy", + "satoshi", + "sauce", + "sausage", + "save", + "say", + "scale", + "scan", + "scare", + "scatter", + "scene", + "scheme", + "school", + "science", + "scissors", + "scorpion", + "scout", + "scrap", + "screen", + "script", + "scrub", + "sea", + "search", + "season", + "seat", + "second", + "secret", + "section", + "security", + "seed", + "seek", + "segment", + "select", + "sell", + "seminar", + "senior", + "sense", + "sentence", + "series", + "service", + "session", + "settle", + "setup", + "seven", + "shadow", + "shaft", + "shallow", + "share", + "shed", + "shell", + "sheriff", + "shield", + "shift", + "shine", + "ship", + "shiver", + "shock", + "shoe", + "shoot", + "shop", + "short", + "shoulder", + "shove", + "shrimp", + "shrug", + "shuffle", + "shy", + "sibling", + "sick", + "side", + "siege", + "sight", + "sign", + "silent", + "silk", + "silly", + "silver", + "similar", + "simple", + "since", + "sing", + "siren", + "sister", + "situate", + "six", + "size", + "skate", + "sketch", + "ski", + "skill", + "skin", + "skirt", + "skull", + "slab", + "slam", + "sleep", + "slender", + "slice", + "slide", + "slight", + "slim", + "slogan", + "slot", + "slow", + "slush", + "small", + "smart", + "smile", + "smoke", + "smooth", + "snack", + "snake", + "snap", + "sniff", + "snow", + "soap", + "soccer", + "social", + "sock", + "soda", + "soft", + "solar", + "soldier", + "solid", + "solution", + "solve", + "someone", + "song", + "soon", + "sorry", + "sort", + "soul", + "sound", + "soup", + "source", + "south", + "space", + "spare", + "spatial", + "spawn", + "speak", + "special", + "speed", + "spell", + "spend", + "sphere", + "spice", + "spider", + "spike", + "spin", + "spirit", + "split", + "spoil", + "sponsor", + "spoon", + "sport", + "spot", + "spray", + "spread", + "spring", + "spy", + "square", + "squeeze", + "squirrel", + "stable", + "stadium", + "staff", + "stage", + "stairs", + "stamp", + "stand", + "start", + "state", + "stay", + "steak", + "steel", + "stem", + "step", + "stereo", + "stick", + "still", + "sting", + "stock", + "stomach", + "stone", + "stool", + "story", + "stove", + "strategy", + "street", + "strike", + "strong", + "struggle", + "student", + "stuff", + "stumble", + "style", + "subject", + "submit", + "subway", + "success", + "such", + "sudden", + "suffer", + "sugar", + "suggest", + "suit", + "summer", + "sun", + "sunny", + "sunset", + "super", + "supply", + "supreme", + "sure", + "surface", + "surge", + "surprise", + "surround", + "survey", + "suspect", + "sustain", + "swallow", + "swamp", + "swap", + "swarm", + "swear", + "sweet", + "swift", + "swim", + "swing", + "switch", + "sword", + "symbol", + "symptom", + "syrup", + "system", + "table", + "tackle", + "tag", + "tail", + "talent", + "talk", + "tank", + "tape", + "target", + "task", + "taste", + "tattoo", + "taxi", + "teach", + "team", + "tell", + "ten", + "tenant", + "tennis", + "tent", + "term", + "test", + "text", + "thank", + "that", + "theme", + "then", + "theory", + "there", + "they", + "thing", + "this", + "thought", + "three", + "thrive", + "throw", + "thumb", + "thunder", + "ticket", + "tide", + "tiger", + "tilt", + "timber", + "time", + "tiny", + "tip", + "tired", + "tissue", + "title", + "toast", + "tobacco", + "today", + "toddler", + "toe", + "together", + "toilet", + "token", + "tomato", + "tomorrow", + "tone", + "tongue", + "tonight", + "tool", + "tooth", + "top", + "topic", + "topple", + "torch", + "tornado", + "tortoise", + "toss", + "total", + "tourist", + "toward", + "tower", + "town", + "toy", + "track", + "trade", + "traffic", + "tragic", + "train", + "transfer", + "trap", + "trash", + "travel", + "tray", + "treat", + "tree", + "trend", + "trial", + "tribe", + "trick", + "trigger", + "trim", + "trip", + "trophy", + "trouble", + "truck", + "true", + "truly", + "trumpet", + "trust", + "truth", + "try", + "tube", + "tuition", + "tumble", + "tuna", + "tunnel", + "turkey", + "turn", + "turtle", + "twelve", + "twenty", + "twice", + "twin", + "twist", + "two", + "type", + "typical", + "ugly", + "umbrella", + "unable", + "unaware", + "uncle", + "uncover", + "under", + "undo", + "unfair", + "unfold", + "unhappy", + "uniform", + "unique", + "unit", + "universe", + "unknown", + "unlock", + "until", + "unusual", + "unveil", + "update", + "upgrade", + "uphold", + "upon", + "upper", + "upset", + "urban", + "urge", + "usage", + "use", + "used", + "useful", + "useless", + "usual", + "utility", + "vacant", + "vacuum", + "vague", + "valid", + "valley", + "valve", + "van", + "vanish", + "vapor", + "various", + "vast", + "vault", + "vehicle", + "velvet", + "vendor", + "venture", + "venue", + "verb", + "verify", + "version", + "very", + "vessel", + "veteran", + "viable", + "vibrant", + "vicious", + "victory", + "video", + "view", + "village", + "vintage", + "violin", + "virtual", + "virus", + "visa", + "visit", + "visual", + "vital", + "vivid", + "vocal", + "voice", + "void", + "volcano", + "volume", + "vote", + "voyage", + "wage", + "wagon", + "wait", + "walk", + "wall", + "walnut", + "want", + "warfare", + "warm", + "warrior", + "wash", + "wasp", + "waste", + "water", + "wave", + "way", + "wealth", + "weapon", + "wear", + "weasel", + "weather", + "web", + "wedding", + "weekend", + "weird", + "welcome", + "west", + "wet", + "whale", + "what", + "wheat", + "wheel", + "when", + "where", + "whip", + "whisper", + "wide", + "width", + "wife", + "wild", + "will", + "win", + "window", + "wine", + "wing", + "wink", + "winner", + "winter", + "wire", + "wisdom", + "wise", + "wish", + "witness", + "wolf", + "woman", + "wonder", + "wood", + "wool", + "word", + "work", + "world", + "worry", + "worth", + "wrap", + "wreck", + "wrestle", + "wrist", + "write", + "wrong", + "yard", + "year", + "yellow", + "you", + "young", + "youth", + "zebra", + "zero", + "zone", + "zoo", + }; } diff --git a/test/sixteen_word_list_sanity_test.dart b/test/sixteen_word_list_sanity_test.dart new file mode 100644 index 000000000..5e4a3bd79 --- /dev/null +++ b/test/sixteen_word_list_sanity_test.dart @@ -0,0 +1,2068 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart'; + +void main() { + test("Length of set equals length of list (checks for duplicates)", () { + final ourSet = Monero.sixteenWordsWordList.toSet(); + expect(Monero.sixteenWordsWordList.length == ourSet.length, true); + }); + + test("Ensure lengths and words match", () { + final ourSet = Monero.sixteenWordsWordList.toSet(); + final refSet = _cList.toSet(); + expect(ourSet.difference(refSet).isEmpty, true); + expect(refSet.difference(ourSet).isEmpty, true); + }); +} + +// source: https://github.com/tevador/polyseed/blob/e2422254260f38347e3c28e9bcc11dd981d40ba1/src/lang_en.c +const _cList = [ + "abandon", + "ability", + "able", + "about", + "above", + "absent", + "absorb", + "abstract", + "absurd", + "abuse", + "access", + "accident", + "account", + "accuse", + "achieve", + "acid", + "acoustic", + "acquire", + "across", + "act", + "action", + "actor", + "actress", + "actual", + "adapt", + "add", + "addict", + "address", + "adjust", + "admit", + "adult", + "advance", + "advice", + "aerobic", + "affair", + "afford", + "afraid", + "again", + "age", + "agent", + "agree", + "ahead", + "aim", + "air", + "airport", + "aisle", + "alarm", + "album", + "alcohol", + "alert", + "alien", + "all", + "alley", + "allow", + "almost", + "alone", + "alpha", + "already", + "also", + "alter", + "always", + "amateur", + "amazing", + "among", + "amount", + "amused", + "analyst", + "anchor", + "ancient", + "anger", + "angle", + "angry", + "animal", + "ankle", + "announce", + "annual", + "another", + "answer", + "antenna", + "antique", + "anxiety", + "any", + "apart", + "apology", + "appear", + "apple", + "approve", + "april", + "arch", + "arctic", + "area", + "arena", + "argue", + "arm", + "armed", + "armor", + "army", + "around", + "arrange", + "arrest", + "arrive", + "arrow", + "art", + "artefact", + "artist", + "artwork", + "ask", + "aspect", + "assault", + "asset", + "assist", + "assume", + "asthma", + "athlete", + "atom", + "attack", + "attend", + "attitude", + "attract", + "auction", + "audit", + "august", + "aunt", + "author", + "auto", + "autumn", + "average", + "avocado", + "avoid", + "awake", + "aware", + "away", + "awesome", + "awful", + "awkward", + "axis", + "baby", + "bachelor", + "bacon", + "badge", + "bag", + "balance", + "balcony", + "ball", + "bamboo", + "banana", + "banner", + "bar", + "barely", + "bargain", + "barrel", + "base", + "basic", + "basket", + "battle", + "beach", + "bean", + "beauty", + "because", + "become", + "beef", + "before", + "begin", + "behave", + "behind", + "believe", + "below", + "belt", + "bench", + "benefit", + "best", + "betray", + "better", + "between", + "beyond", + "bicycle", + "bid", + "bike", + "bind", + "biology", + "bird", + "birth", + "bitter", + "black", + "blade", + "blame", + "blanket", + "blast", + "bleak", + "bless", + "blind", + "blood", + "blossom", + "blouse", + "blue", + "blur", + "blush", + "board", + "boat", + "body", + "boil", + "bomb", + "bone", + "bonus", + "book", + "boost", + "border", + "boring", + "borrow", + "boss", + "bottom", + "bounce", + "box", + "boy", + "bracket", + "brain", + "brand", + "brass", + "brave", + "bread", + "breeze", + "brick", + "bridge", + "brief", + "bright", + "bring", + "brisk", + "broccoli", + "broken", + "bronze", + "broom", + "brother", + "brown", + "brush", + "bubble", + "buddy", + "budget", + "buffalo", + "build", + "bulb", + "bulk", + "bullet", + "bundle", + "bunker", + "burden", + "burger", + "burst", + "bus", + "business", + "busy", + "butter", + "buyer", + "buzz", + "cabbage", + "cabin", + "cable", + "cactus", + "cage", + "cake", + "call", + "calm", + "camera", + "camp", + "can", + "canal", + "cancel", + "candy", + "cannon", + "canoe", + "canvas", + "canyon", + "capable", + "capital", + "captain", + "car", + "carbon", + "card", + "cargo", + "carpet", + "carry", + "cart", + "case", + "cash", + "casino", + "castle", + "casual", + "cat", + "catalog", + "catch", + "category", + "cattle", + "caught", + "cause", + "caution", + "cave", + "ceiling", + "celery", + "cement", + "census", + "century", + "cereal", + "certain", + "chair", + "chalk", + "champion", + "change", + "chaos", + "chapter", + "charge", + "chase", + "chat", + "cheap", + "check", + "cheese", + "chef", + "cherry", + "chest", + "chicken", + "chief", + "child", + "chimney", + "choice", + "choose", + "chronic", + "chuckle", + "chunk", + "churn", + "cigar", + "cinnamon", + "circle", + "citizen", + "city", + "civil", + "claim", + "clap", + "clarify", + "claw", + "clay", + "clean", + "clerk", + "clever", + "click", + "client", + "cliff", + "climb", + "clinic", + "clip", + "clock", + "clog", + "close", + "cloth", + "cloud", + "clown", + "club", + "clump", + "cluster", + "clutch", + "coach", + "coast", + "coconut", + "code", + "coffee", + "coil", + "coin", + "collect", + "color", + "column", + "combine", + "come", + "comfort", + "comic", + "common", + "company", + "concert", + "conduct", + "confirm", + "congress", + "connect", + "consider", + "control", + "convince", + "cook", + "cool", + "copper", + "copy", + "coral", + "core", + "corn", + "correct", + "cost", + "cotton", + "couch", + "country", + "couple", + "course", + "cousin", + "cover", + "coyote", + "crack", + "cradle", + "craft", + "cram", + "crane", + "crash", + "crater", + "crawl", + "crazy", + "cream", + "credit", + "creek", + "crew", + "cricket", + "crime", + "crisp", + "critic", + "crop", + "cross", + "crouch", + "crowd", + "crucial", + "cruel", + "cruise", + "crumble", + "crunch", + "crush", + "cry", + "crystal", + "cube", + "culture", + "cup", + "cupboard", + "curious", + "current", + "curtain", + "curve", + "cushion", + "custom", + "cute", + "cycle", + "dad", + "damage", + "damp", + "dance", + "danger", + "daring", + "dash", + "daughter", + "dawn", + "day", + "deal", + "debate", + "debris", + "decade", + "december", + "decide", + "decline", + "decorate", + "decrease", + "deer", + "defense", + "define", + "defy", + "degree", + "delay", + "deliver", + "demand", + "demise", + "denial", + "dentist", + "deny", + "depart", + "depend", + "deposit", + "depth", + "deputy", + "derive", + "describe", + "desert", + "design", + "desk", + "despair", + "destroy", + "detail", + "detect", + "develop", + "device", + "devote", + "diagram", + "dial", + "diamond", + "diary", + "dice", + "diesel", + "diet", + "differ", + "digital", + "dignity", + "dilemma", + "dinner", + "dinosaur", + "direct", + "dirt", + "disagree", + "discover", + "disease", + "dish", + "dismiss", + "disorder", + "display", + "distance", + "divert", + "divide", + "divorce", + "dizzy", + "doctor", + "document", + "dog", + "doll", + "dolphin", + "domain", + "donate", + "donkey", + "donor", + "door", + "dose", + "double", + "dove", + "draft", + "dragon", + "drama", + "drastic", + "draw", + "dream", + "dress", + "drift", + "drill", + "drink", + "drip", + "drive", + "drop", + "drum", + "dry", + "duck", + "dumb", + "dune", + "during", + "dust", + "dutch", + "duty", + "dwarf", + "dynamic", + "eager", + "eagle", + "early", + "earn", + "earth", + "easily", + "east", + "easy", + "echo", + "ecology", + "economy", + "edge", + "edit", + "educate", + "effort", + "egg", + "eight", + "either", + "elbow", + "elder", + "electric", + "elegant", + "element", + "elephant", + "elevator", + "elite", + "else", + "embark", + "embody", + "embrace", + "emerge", + "emotion", + "employ", + "empower", + "empty", + "enable", + "enact", + "end", + "endless", + "endorse", + "enemy", + "energy", + "enforce", + "engage", + "engine", + "enhance", + "enjoy", + "enlist", + "enough", + "enrich", + "enroll", + "ensure", + "enter", + "entire", + "entry", + "envelope", + "episode", + "equal", + "equip", + "era", + "erase", + "erode", + "erosion", + "error", + "erupt", + "escape", + "essay", + "essence", + "estate", + "eternal", + "ethics", + "evidence", + "evil", + "evoke", + "evolve", + "exact", + "example", + "excess", + "exchange", + "excite", + "exclude", + "excuse", + "execute", + "exercise", + "exhaust", + "exhibit", + "exile", + "exist", + "exit", + "exotic", + "expand", + "expect", + "expire", + "explain", + "expose", + "express", + "extend", + "extra", + "eye", + "eyebrow", + "fabric", + "face", + "faculty", + "fade", + "faint", + "faith", + "fall", + "false", + "fame", + "family", + "famous", + "fan", + "fancy", + "fantasy", + "farm", + "fashion", + "fat", + "fatal", + "father", + "fatigue", + "fault", + "favorite", + "feature", + "february", + "federal", + "fee", + "feed", + "feel", + "female", + "fence", + "festival", + "fetch", + "fever", + "few", + "fiber", + "fiction", + "field", + "figure", + "file", + "film", + "filter", + "final", + "find", + "fine", + "finger", + "finish", + "fire", + "firm", + "first", + "fiscal", + "fish", + "fit", + "fitness", + "fix", + "flag", + "flame", + "flash", + "flat", + "flavor", + "flee", + "flight", + "flip", + "float", + "flock", + "floor", + "flower", + "fluid", + "flush", + "fly", + "foam", + "focus", + "fog", + "foil", + "fold", + "follow", + "food", + "foot", + "force", + "forest", + "forget", + "fork", + "fortune", + "forum", + "forward", + "fossil", + "foster", + "found", + "fox", + "fragile", + "frame", + "frequent", + "fresh", + "friend", + "fringe", + "frog", + "front", + "frost", + "frown", + "frozen", + "fruit", + "fuel", + "fun", + "funny", + "furnace", + "fury", + "future", + "gadget", + "gain", + "galaxy", + "gallery", + "game", + "gap", + "garage", + "garbage", + "garden", + "garlic", + "garment", + "gas", + "gasp", + "gate", + "gather", + "gauge", + "gaze", + "general", + "genius", + "genre", + "gentle", + "genuine", + "gesture", + "ghost", + "giant", + "gift", + "giggle", + "ginger", + "giraffe", + "girl", + "give", + "glad", + "glance", + "glare", + "glass", + "glide", + "glimpse", + "globe", + "gloom", + "glory", + "glove", + "glow", + "glue", + "goat", + "goddess", + "gold", + "good", + "goose", + "gorilla", + "gospel", + "gossip", + "govern", + "gown", + "grab", + "grace", + "grain", + "grant", + "grape", + "grass", + "gravity", + "great", + "green", + "grid", + "grief", + "grit", + "grocery", + "group", + "grow", + "grunt", + "guard", + "guess", + "guide", + "guilt", + "guitar", + "gun", + "gym", + "habit", + "hair", + "half", + "hammer", + "hamster", + "hand", + "happy", + "harbor", + "hard", + "harsh", + "harvest", + "hat", + "have", + "hawk", + "hazard", + "head", + "health", + "heart", + "heavy", + "hedgehog", + "height", + "hello", + "helmet", + "help", + "hen", + "hero", + "hidden", + "high", + "hill", + "hint", + "hip", + "hire", + "history", + "hobby", + "hockey", + "hold", + "hole", + "holiday", + "hollow", + "home", + "honey", + "hood", + "hope", + "horn", + "horror", + "horse", + "hospital", + "host", + "hotel", + "hour", + "hover", + "hub", + "huge", + "human", + "humble", + "humor", + "hundred", + "hungry", + "hunt", + "hurdle", + "hurry", + "hurt", + "husband", + "hybrid", + "ice", + "icon", + "idea", + "identify", + "idle", + "ignore", + "ill", + "illegal", + "illness", + "image", + "imitate", + "immense", + "immune", + "impact", + "impose", + "improve", + "impulse", + "inch", + "include", + "income", + "increase", + "index", + "indicate", + "indoor", + "industry", + "infant", + "inflict", + "inform", + "inhale", + "inherit", + "initial", + "inject", + "injury", + "inmate", + "inner", + "innocent", + "input", + "inquiry", + "insane", + "insect", + "inside", + "inspire", + "install", + "intact", + "interest", + "into", + "invest", + "invite", + "involve", + "iron", + "island", + "isolate", + "issue", + "item", + "ivory", + "jacket", + "jaguar", + "jar", + "jazz", + "jealous", + "jeans", + "jelly", + "jewel", + "job", + "join", + "joke", + "journey", + "joy", + "judge", + "juice", + "jump", + "jungle", + "junior", + "junk", + "just", + "kangaroo", + "keen", + "keep", + "ketchup", + "key", + "kick", + "kid", + "kidney", + "kind", + "kingdom", + "kiss", + "kit", + "kitchen", + "kite", + "kitten", + "kiwi", + "knee", + "knife", + "knock", + "know", + "lab", + "label", + "labor", + "ladder", + "lady", + "lake", + "lamp", + "language", + "laptop", + "large", + "later", + "latin", + "laugh", + "laundry", + "lava", + "law", + "lawn", + "lawsuit", + "layer", + "lazy", + "leader", + "leaf", + "learn", + "leave", + "lecture", + "left", + "leg", + "legal", + "legend", + "leisure", + "lemon", + "lend", + "length", + "lens", + "leopard", + "lesson", + "letter", + "level", + "liar", + "liberty", + "library", + "license", + "life", + "lift", + "light", + "like", + "limb", + "limit", + "link", + "lion", + "liquid", + "list", + "little", + "live", + "lizard", + "load", + "loan", + "lobster", + "local", + "lock", + "logic", + "lonely", + "long", + "loop", + "lottery", + "loud", + "lounge", + "love", + "loyal", + "lucky", + "luggage", + "lumber", + "lunar", + "lunch", + "luxury", + "lyrics", + "machine", + "mad", + "magic", + "magnet", + "maid", + "mail", + "main", + "major", + "make", + "mammal", + "man", + "manage", + "mandate", + "mango", + "mansion", + "manual", + "maple", + "marble", + "march", + "margin", + "marine", + "market", + "marriage", + "mask", + "mass", + "master", + "match", + "material", + "math", + "matrix", + "matter", + "maximum", + "maze", + "meadow", + "mean", + "measure", + "meat", + "mechanic", + "medal", + "media", + "melody", + "melt", + "member", + "memory", + "mention", + "menu", + "mercy", + "merge", + "merit", + "merry", + "mesh", + "message", + "metal", + "method", + "middle", + "midnight", + "milk", + "million", + "mimic", + "mind", + "minimum", + "minor", + "minute", + "miracle", + "mirror", + "misery", + "miss", + "mistake", + "mix", + "mixed", + "mixture", + "mobile", + "model", + "modify", + "mom", + "moment", + "monitor", + "monkey", + "monster", + "month", + "moon", + "moral", + "more", + "morning", + "mosquito", + "mother", + "motion", + "motor", + "mountain", + "mouse", + "move", + "movie", + "much", + "muffin", + "mule", + "multiply", + "muscle", + "museum", + "mushroom", + "music", + "must", + "mutual", + "myself", + "mystery", + "myth", + "naive", + "name", + "napkin", + "narrow", + "nasty", + "nation", + "nature", + "near", + "neck", + "need", + "negative", + "neglect", + "neither", + "nephew", + "nerve", + "nest", + "net", + "network", + "neutral", + "never", + "news", + "next", + "nice", + "night", + "noble", + "noise", + "nominee", + "noodle", + "normal", + "north", + "nose", + "notable", + "note", + "nothing", + "notice", + "novel", + "now", + "nuclear", + "number", + "nurse", + "nut", + "oak", + "obey", + "object", + "oblige", + "obscure", + "observe", + "obtain", + "obvious", + "occur", + "ocean", + "october", + "odor", + "off", + "offer", + "office", + "often", + "oil", + "okay", + "old", + "olive", + "olympic", + "omit", + "once", + "one", + "onion", + "online", + "only", + "open", + "opera", + "opinion", + "oppose", + "option", + "orange", + "orbit", + "orchard", + "order", + "ordinary", + "organ", + "orient", + "original", + "orphan", + "ostrich", + "other", + "outdoor", + "outer", + "output", + "outside", + "oval", + "oven", + "over", + "own", + "owner", + "oxygen", + "oyster", + "ozone", + "pact", + "paddle", + "page", + "pair", + "palace", + "palm", + "panda", + "panel", + "panic", + "panther", + "paper", + "parade", + "parent", + "park", + "parrot", + "party", + "pass", + "patch", + "path", + "patient", + "patrol", + "pattern", + "pause", + "pave", + "payment", + "peace", + "peanut", + "pear", + "peasant", + "pelican", + "pen", + "penalty", + "pencil", + "people", + "pepper", + "perfect", + "permit", + "person", + "pet", + "phone", + "photo", + "phrase", + "physical", + "piano", + "picnic", + "picture", + "piece", + "pig", + "pigeon", + "pill", + "pilot", + "pink", + "pioneer", + "pipe", + "pistol", + "pitch", + "pizza", + "place", + "planet", + "plastic", + "plate", + "play", + "please", + "pledge", + "pluck", + "plug", + "plunge", + "poem", + "poet", + "point", + "polar", + "pole", + "police", + "pond", + "pony", + "pool", + "popular", + "portion", + "position", + "possible", + "post", + "potato", + "pottery", + "poverty", + "powder", + "power", + "practice", + "praise", + "predict", + "prefer", + "prepare", + "present", + "pretty", + "prevent", + "price", + "pride", + "primary", + "print", + "priority", + "prison", + "private", + "prize", + "problem", + "process", + "produce", + "profit", + "program", + "project", + "promote", + "proof", + "property", + "prosper", + "protect", + "proud", + "provide", + "public", + "pudding", + "pull", + "pulp", + "pulse", + "pumpkin", + "punch", + "pupil", + "puppy", + "purchase", + "purity", + "purpose", + "purse", + "push", + "put", + "puzzle", + "pyramid", + "quality", + "quantum", + "quarter", + "question", + "quick", + "quit", + "quiz", + "quote", + "rabbit", + "raccoon", + "race", + "rack", + "radar", + "radio", + "rail", + "rain", + "raise", + "rally", + "ramp", + "ranch", + "random", + "range", + "rapid", + "rare", + "rate", + "rather", + "raven", + "raw", + "razor", + "ready", + "real", + "reason", + "rebel", + "rebuild", + "recall", + "receive", + "recipe", + "record", + "recycle", + "reduce", + "reflect", + "reform", + "refuse", + "region", + "regret", + "regular", + "reject", + "relax", + "release", + "relief", + "rely", + "remain", + "remember", + "remind", + "remove", + "render", + "renew", + "rent", + "reopen", + "repair", + "repeat", + "replace", + "report", + "require", + "rescue", + "resemble", + "resist", + "resource", + "response", + "result", + "retire", + "retreat", + "return", + "reunion", + "reveal", + "review", + "reward", + "rhythm", + "rib", + "ribbon", + "rice", + "rich", + "ride", + "ridge", + "rifle", + "right", + "rigid", + "ring", + "riot", + "ripple", + "risk", + "ritual", + "rival", + "river", + "road", + "roast", + "robot", + "robust", + "rocket", + "romance", + "roof", + "rookie", + "room", + "rose", + "rotate", + "rough", + "round", + "route", + "royal", + "rubber", + "rude", + "rug", + "rule", + "run", + "runway", + "rural", + "sad", + "saddle", + "sadness", + "safe", + "sail", + "salad", + "salmon", + "salon", + "salt", + "salute", + "same", + "sample", + "sand", + "satisfy", + "satoshi", + "sauce", + "sausage", + "save", + "say", + "scale", + "scan", + "scare", + "scatter", + "scene", + "scheme", + "school", + "science", + "scissors", + "scorpion", + "scout", + "scrap", + "screen", + "script", + "scrub", + "sea", + "search", + "season", + "seat", + "second", + "secret", + "section", + "security", + "seed", + "seek", + "segment", + "select", + "sell", + "seminar", + "senior", + "sense", + "sentence", + "series", + "service", + "session", + "settle", + "setup", + "seven", + "shadow", + "shaft", + "shallow", + "share", + "shed", + "shell", + "sheriff", + "shield", + "shift", + "shine", + "ship", + "shiver", + "shock", + "shoe", + "shoot", + "shop", + "short", + "shoulder", + "shove", + "shrimp", + "shrug", + "shuffle", + "shy", + "sibling", + "sick", + "side", + "siege", + "sight", + "sign", + "silent", + "silk", + "silly", + "silver", + "similar", + "simple", + "since", + "sing", + "siren", + "sister", + "situate", + "six", + "size", + "skate", + "sketch", + "ski", + "skill", + "skin", + "skirt", + "skull", + "slab", + "slam", + "sleep", + "slender", + "slice", + "slide", + "slight", + "slim", + "slogan", + "slot", + "slow", + "slush", + "small", + "smart", + "smile", + "smoke", + "smooth", + "snack", + "snake", + "snap", + "sniff", + "snow", + "soap", + "soccer", + "social", + "sock", + "soda", + "soft", + "solar", + "soldier", + "solid", + "solution", + "solve", + "someone", + "song", + "soon", + "sorry", + "sort", + "soul", + "sound", + "soup", + "source", + "south", + "space", + "spare", + "spatial", + "spawn", + "speak", + "special", + "speed", + "spell", + "spend", + "sphere", + "spice", + "spider", + "spike", + "spin", + "spirit", + "split", + "spoil", + "sponsor", + "spoon", + "sport", + "spot", + "spray", + "spread", + "spring", + "spy", + "square", + "squeeze", + "squirrel", + "stable", + "stadium", + "staff", + "stage", + "stairs", + "stamp", + "stand", + "start", + "state", + "stay", + "steak", + "steel", + "stem", + "step", + "stereo", + "stick", + "still", + "sting", + "stock", + "stomach", + "stone", + "stool", + "story", + "stove", + "strategy", + "street", + "strike", + "strong", + "struggle", + "student", + "stuff", + "stumble", + "style", + "subject", + "submit", + "subway", + "success", + "such", + "sudden", + "suffer", + "sugar", + "suggest", + "suit", + "summer", + "sun", + "sunny", + "sunset", + "super", + "supply", + "supreme", + "sure", + "surface", + "surge", + "surprise", + "surround", + "survey", + "suspect", + "sustain", + "swallow", + "swamp", + "swap", + "swarm", + "swear", + "sweet", + "swift", + "swim", + "swing", + "switch", + "sword", + "symbol", + "symptom", + "syrup", + "system", + "table", + "tackle", + "tag", + "tail", + "talent", + "talk", + "tank", + "tape", + "target", + "task", + "taste", + "tattoo", + "taxi", + "teach", + "team", + "tell", + "ten", + "tenant", + "tennis", + "tent", + "term", + "test", + "text", + "thank", + "that", + "theme", + "then", + "theory", + "there", + "they", + "thing", + "this", + "thought", + "three", + "thrive", + "throw", + "thumb", + "thunder", + "ticket", + "tide", + "tiger", + "tilt", + "timber", + "time", + "tiny", + "tip", + "tired", + "tissue", + "title", + "toast", + "tobacco", + "today", + "toddler", + "toe", + "together", + "toilet", + "token", + "tomato", + "tomorrow", + "tone", + "tongue", + "tonight", + "tool", + "tooth", + "top", + "topic", + "topple", + "torch", + "tornado", + "tortoise", + "toss", + "total", + "tourist", + "toward", + "tower", + "town", + "toy", + "track", + "trade", + "traffic", + "tragic", + "train", + "transfer", + "trap", + "trash", + "travel", + "tray", + "treat", + "tree", + "trend", + "trial", + "tribe", + "trick", + "trigger", + "trim", + "trip", + "trophy", + "trouble", + "truck", + "true", + "truly", + "trumpet", + "trust", + "truth", + "try", + "tube", + "tuition", + "tumble", + "tuna", + "tunnel", + "turkey", + "turn", + "turtle", + "twelve", + "twenty", + "twice", + "twin", + "twist", + "two", + "type", + "typical", + "ugly", + "umbrella", + "unable", + "unaware", + "uncle", + "uncover", + "under", + "undo", + "unfair", + "unfold", + "unhappy", + "uniform", + "unique", + "unit", + "universe", + "unknown", + "unlock", + "until", + "unusual", + "unveil", + "update", + "upgrade", + "uphold", + "upon", + "upper", + "upset", + "urban", + "urge", + "usage", + "use", + "used", + "useful", + "useless", + "usual", + "utility", + "vacant", + "vacuum", + "vague", + "valid", + "valley", + "valve", + "van", + "vanish", + "vapor", + "various", + "vast", + "vault", + "vehicle", + "velvet", + "vendor", + "venture", + "venue", + "verb", + "verify", + "version", + "very", + "vessel", + "veteran", + "viable", + "vibrant", + "vicious", + "victory", + "video", + "view", + "village", + "vintage", + "violin", + "virtual", + "virus", + "visa", + "visit", + "visual", + "vital", + "vivid", + "vocal", + "voice", + "void", + "volcano", + "volume", + "vote", + "voyage", + "wage", + "wagon", + "wait", + "walk", + "wall", + "walnut", + "want", + "warfare", + "warm", + "warrior", + "wash", + "wasp", + "waste", + "water", + "wave", + "way", + "wealth", + "weapon", + "wear", + "weasel", + "weather", + "web", + "wedding", + "weekend", + "weird", + "welcome", + "west", + "wet", + "whale", + "what", + "wheat", + "wheel", + "when", + "where", + "whip", + "whisper", + "wide", + "width", + "wife", + "wild", + "will", + "win", + "window", + "wine", + "wing", + "wink", + "winner", + "winter", + "wire", + "wisdom", + "wise", + "wish", + "witness", + "wolf", + "woman", + "wonder", + "wood", + "wool", + "word", + "work", + "world", + "worry", + "worth", + "wrap", + "wreck", + "wrestle", + "wrist", + "write", + "wrong", + "yard", + "year", + "yellow", + "you", + "young", + "youth", + "zebra", + "zero", + "zone", + "zoo", +]; From 203744d4f035cd6d59499279ac6069a6ffe5fe16 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 12 Jun 2024 18:12:48 -0600 Subject: [PATCH 229/318] use nanoswap's work server --- .../wallet_mixin_interfaces/nano_interface.dart | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart index 9287fe261..94f34c121 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart @@ -3,6 +3,9 @@ import 'dart:convert'; import 'package:isar/isar.dart'; import 'package:nanodart/nanodart.dart'; +import 'package:tuple/tuple.dart'; + +import '../../../external_api_keys.dart'; import '../../../models/balance.dart'; import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; @@ -18,9 +21,9 @@ import '../../../utilities/logger.dart'; import '../../crypto_currency/intermediate/nano_currency.dart'; import '../../models/tx_data.dart'; import '../intermediate/bip39_wallet.dart'; -import 'package:tuple/tuple.dart'; -const _kWorkServer = "https://rpc.nano.to"; +// const _kWorkServer = "https://rpc.nano.to"; +const _kWorkServer = "https://nodes.nanswap.com/XNO"; mixin NanoInterface on Bip39Wallet { // since nano based coins only have a single address/account we can cache @@ -36,7 +39,10 @@ mixin NanoInterface on Bip39Wallet { return _httpClient .post( url: Uri.parse(_kWorkServer), // this should be a - headers: {'Content-type': 'application/json'}, + headers: { + 'Content-type': 'application/json', + "nodes-api-key": kNanoSwapRpcApiKey, + }, body: json.encode( { "action": "work_generate", From 130e1b37d605fc4b560f46aea66c2642779d3ff8 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 12 Jun 2024 19:02:14 -0600 Subject: [PATCH 230/318] update (ba)nano servers --- lib/services/nano_api.dart | 20 ++- lib/wallets/crypto_currency/coins/banano.dart | 4 +- lib/wallets/crypto_currency/coins/nano.dart | 4 +- .../nano_interface.dart | 139 +++++++++++------- 4 files changed, 107 insertions(+), 60 deletions(-) diff --git a/lib/services/nano_api.dart b/lib/services/nano_api.dart index bc2e2b84d..8627b67b3 100644 --- a/lib/services/nano_api.dart +++ b/lib/services/nano_api.dart @@ -1,9 +1,10 @@ import 'dart:convert'; import 'package:nanodart/nanodart.dart'; + import '../networking/http.dart'; -import 'tor_service.dart'; import '../utilities/prefs.dart'; +import 'tor_service.dart'; class NanoAPI { static Future< @@ -14,6 +15,7 @@ class NanoAPI { required Uri server, required bool representative, required String account, + required Map headers, }) async { NAccountInfo? accountInfo; Exception? exception; @@ -23,9 +25,7 @@ class NanoAPI { try { final response = await client.post( url: server, - headers: { - "Content-Type": "application/json", - }, + headers: headers, body: jsonEncode({ "action": "account_info", "representative": "true", @@ -64,6 +64,7 @@ class NanoAPI { required String balance, required String privateKey, required String work, + required Map headers, }) async { final Map block = { "type": "state", @@ -98,7 +99,11 @@ class NanoAPI { block["signature"] = signature; - final map = await postBlock(server: server, block: block); + final map = await postBlock( + server: server, + block: block, + headers: headers, + ); if (map is Map && map["error"] != null) { throw Exception(map["error"].toString()); @@ -111,14 +116,13 @@ class NanoAPI { static Future postBlock({ required Uri server, required Map block, + required Map headers, }) async { final HTTP client = HTTP(); final response = await client.post( url: server, - headers: { - "Content-Type": "application/json", - }, + headers: headers, body: jsonEncode({ "action": "process", "json_block": "true", diff --git a/lib/wallets/crypto_currency/coins/banano.dart b/lib/wallets/crypto_currency/coins/banano.dart index 2dec17825..c372e760a 100644 --- a/lib/wallets/crypto_currency/coins/banano.dart +++ b/lib/wallets/crypto_currency/coins/banano.dart @@ -1,4 +1,5 @@ import 'package:nanodart/nanodart.dart'; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/default_nodes.dart'; @@ -66,7 +67,8 @@ class Banano extends NanoCurrency { switch (network) { case CryptoCurrencyNetwork.main: return NodeModel( - host: "https://kaliumapi.appditto.com/api", + // host: "https://kaliumapi.appditto.com/api", + host: "https://nodes.nanswap.com/BAN", port: 443, name: DefaultNodes.defaultName, id: DefaultNodes.buildId(this), diff --git a/lib/wallets/crypto_currency/coins/nano.dart b/lib/wallets/crypto_currency/coins/nano.dart index b14992812..b11e68192 100644 --- a/lib/wallets/crypto_currency/coins/nano.dart +++ b/lib/wallets/crypto_currency/coins/nano.dart @@ -1,4 +1,5 @@ import 'package:nanodart/nanodart.dart'; + import '../../../models/isar/models/isar_models.dart'; import '../../../models/node_model.dart'; import '../../../utilities/default_nodes.dart'; @@ -66,7 +67,8 @@ class Nano extends NanoCurrency { switch (network) { case CryptoCurrencyNetwork.main: return NodeModel( - host: "https://rainstorm.city/api", + // host: "https://rainstorm.city/api", + host: "https://nodes.nanswap.com/XNO", port: 443, name: DefaultNodes.defaultName, id: DefaultNodes.buildId(this), diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart index 94f34c121..120f964ef 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart @@ -25,6 +25,17 @@ import '../intermediate/bip39_wallet.dart'; // const _kWorkServer = "https://rpc.nano.to"; const _kWorkServer = "https://nodes.nanswap.com/XNO"; +Map _buildHeaders(String url) { + final result = { + 'Content-type': 'application/json', + }; + if (url + case "https://nodes.nanswap.com/XNO" || "https://nodes.nanswap.com/BAN") { + result["nodes-api-key"] = kNanoSwapRpcApiKey; + } + return result; +} + mixin NanoInterface on Bip39Wallet { // since nano based coins only have a single address/account we can cache // the address instead of fetching from db every time we need it in certain @@ -39,10 +50,7 @@ mixin NanoInterface on Bip39Wallet { return _httpClient .post( url: Uri.parse(_kWorkServer), // this should be a - headers: { - 'Content-type': 'application/json', - "nodes-api-key": kNanoSwapRpcApiKey, - }, + headers: _buildHeaders(_kWorkServer), body: json.encode( { "action": "work_generate", @@ -99,10 +107,6 @@ mixin NanoInterface on Bip39Wallet { // TODO: the opening block of an account is a special case bool openBlock = false; - final headers = { - "Content-Type": "application/json", - }; - // first check if the account is open: // get the account info (we need the frontier and representative): final infoBody = jsonEncode({ @@ -110,9 +114,10 @@ mixin NanoInterface on Bip39Wallet { "representative": "true", "account": publicAddress, }); + final node = getCurrentNode(); final infoResponse = await _httpClient.post( - url: Uri.parse(getCurrentNode().host), - headers: headers, + url: Uri.parse(node.host), + headers: _buildHeaders(node.host), body: infoBody, proxyInfo: prefs.useTor ? TorService.sharedInstance.getProxyInfo() : null, ); @@ -130,8 +135,8 @@ mixin NanoInterface on Bip39Wallet { }); final balanceResponse = await _httpClient.post( - url: Uri.parse(getCurrentNode().host), - headers: headers, + url: Uri.parse(node.host), + headers: _buildHeaders(node.host), body: balanceBody, proxyInfo: prefs.useTor ? TorService.sharedInstance.getProxyInfo() : null, ); @@ -204,8 +209,8 @@ mixin NanoInterface on Bip39Wallet { "block": receiveBlock, }); final processResponse = await _httpClient.post( - url: Uri.parse(getCurrentNode().host), - headers: headers, + url: Uri.parse(node.host), + headers: _buildHeaders(node.host), body: processBody, proxyInfo: prefs.useTor ? TorService.sharedInstance.getProxyInfo() : null, ); @@ -218,14 +223,14 @@ mixin NanoInterface on Bip39Wallet { } Future _confirmAllReceivable(String accountAddress) async { + final node = getCurrentNode(); final receivableResponse = await _httpClient.post( - url: Uri.parse(getCurrentNode().host), - headers: {"Content-Type": "application/json"}, + url: Uri.parse(node.host), + headers: _buildHeaders(node.host), body: jsonEncode({ "action": "receivable", "source": "true", "account": accountAddress, - "count": "-1", }), proxyInfo: prefs.useTor ? TorService.sharedInstance.getProxyInfo() : null, ); @@ -253,10 +258,12 @@ mixin NanoInterface on Bip39Wallet { final address = (_cachedAddress ?? await getCurrentReceivingAddress())!.value; + final node = getCurrentNode(); final response = await NanoAPI.getAccountInfo( server: serverURI, representative: true, account: address, + headers: _buildHeaders(node.host), ); return response.accountInfo?.representative ?? @@ -265,7 +272,8 @@ mixin NanoInterface on Bip39Wallet { Future changeRepresentative(String newRepresentative) async { try { - final serverURI = Uri.parse(getCurrentNode().host); + final node = getCurrentNode(); + final serverURI = Uri.parse(node.host); await updateBalance(); final balance = info.cachedBalance.spendable.raw.toString(); final String privateKey = await _getPrivateKeyFromMnemonic(); @@ -276,6 +284,7 @@ mixin NanoInterface on Bip39Wallet { server: serverURI, representative: true, account: address, + headers: _buildHeaders(node.host), ); if (response.accountInfo == null) { @@ -293,6 +302,7 @@ mixin NanoInterface on Bip39Wallet { balance: balance, privateKey: privateKey, work: work!, + headers: _buildHeaders(node.host), ); } catch (_) { rethrow; @@ -337,11 +347,11 @@ mixin NanoInterface on Bip39Wallet { @override Future pingCheck() async { - final uri = Uri.parse(getCurrentNode().host); - + final node = getCurrentNode(); + final uri = Uri.parse(node.host); final response = await _httpClient.post( url: uri, - headers: {"Content-Type": "application/json"}, + headers: _buildHeaders(node.host), body: jsonEncode( { "action": "version", @@ -390,13 +400,10 @@ mixin NanoInterface on Bip39Wallet { "account": publicAddress, }); - final headers = { - "Content-Type": "application/json", - }; - + final node = getCurrentNode(); final infoResponse = await _httpClient.post( - url: Uri.parse(getCurrentNode().host), - headers: headers, + url: Uri.parse(node.host), + headers: _buildHeaders(node.host), body: infoBody, proxyInfo: prefs.useTor ? TorService.sharedInstance.getProxyInfo() : null, @@ -449,8 +456,8 @@ mixin NanoInterface on Bip39Wallet { "block": sendBlock, }); final processResponse = await _httpClient.post( - url: Uri.parse(getCurrentNode().host), - headers: headers, + url: Uri.parse(node.host), + headers: _buildHeaders(node.host), body: processBody, proxyInfo: prefs.useTor ? TorService.sharedInstance.getProxyInfo() : null, @@ -491,6 +498,49 @@ mixin NanoInterface on Bip39Wallet { } } + // recurse over api calls if required + // (if more than 200 history items) + Future> _fetchAll( + String publicAddress, + String? previous, + Map? data, + ) async { + final node = getCurrentNode(); + final body = { + "action": "account_history", + "account": publicAddress, + "count": "200", + }; + + if (previous is String) { + body["head"] = previous; + } + + final response = await _httpClient.post( + url: Uri.parse(node.host), + headers: _buildHeaders(node.host), + body: jsonEncode(body), + proxyInfo: prefs.useTor ? TorService.sharedInstance.getProxyInfo() : null, + ); + + // this should really have proper type checking and error propagation but I'm out of time + final newData = + Map.from((await jsonDecode(response.body)) as Map); + + if (newData["previous"] is String) { + if (data?["history"] is List) { + (newData["history"] as List).addAll(data!["history"] as List); + } + return await _fetchAll( + publicAddress, + newData["previous"] as String, + newData, + ); + } + + return newData; + } + @override Future updateTransactions() async { await updateChainHeight(); @@ -498,17 +548,9 @@ mixin NanoInterface on Bip39Wallet { (_cachedAddress ?? await getCurrentReceivingAddress())!; final String publicAddress = receivingAddress.value; await _confirmAllReceivable(publicAddress); - final response = await _httpClient.post( - url: Uri.parse(getCurrentNode().host), - headers: {"Content-Type": "application/json"}, - body: jsonEncode({ - "action": "account_history", - "account": publicAddress, - "count": "-1", - }), - proxyInfo: prefs.useTor ? TorService.sharedInstance.getProxyInfo() : null, - ); - final data = await jsonDecode(response.body); + + final data = await _fetchAll(publicAddress, null, null); + final transactions = data["history"] is List ? data["history"] as List : []; @@ -577,13 +619,11 @@ mixin NanoInterface on Bip39Wallet { "action": "account_balance", "account": addressString, }); - final headers = { - "Content-Type": "application/json", - }; + final node = getCurrentNode(); final response = await _httpClient.post( - url: Uri.parse(getCurrentNode().host), - headers: headers, + url: Uri.parse(node.host), + headers: _buildHeaders(node.host), body: body, proxyInfo: prefs.useTor ? TorService.sharedInstance.getProxyInfo() : null, @@ -628,12 +668,11 @@ mixin NanoInterface on Bip39Wallet { "action": "account_info", "account": publicAddress, }); - final headers = { - "Content-Type": "application/json", - }; + + final node = getCurrentNode(); final infoResponse = await _httpClient.post( - url: Uri.parse(getCurrentNode().host), - headers: headers, + url: Uri.parse(node.host), + headers: _buildHeaders(node.host), body: infoBody, proxyInfo: prefs.useTor ? TorService.sharedInstance.getProxyInfo() : null, From f31d47f1235b41d1fab9827f7b048f7c720c60a6 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 13 Jun 2024 12:00:03 -0600 Subject: [PATCH 231/318] wownero restore tweaks --- lib/wallets/wallet/impl/wownero_wallet.dart | 27 ++++++++++----------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/lib/wallets/wallet/impl/wownero_wallet.dart b/lib/wallets/wallet/impl/wownero_wallet.dart index ced514aa3..69f42a57d 100644 --- a/lib/wallets/wallet/impl/wownero_wallet.dart +++ b/lib/wallets/wallet/impl/wownero_wallet.dart @@ -12,6 +12,7 @@ import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cw_monero/api/exceptions/creation_transaction_exception.dart'; +import 'package:cw_wownero/api/account_list.dart'; import 'package:cw_wownero/pending_wownero_transaction.dart'; import 'package:cw_wownero/wownero_wallet.dart'; import 'package:decimal/decimal.dart'; @@ -20,6 +21,7 @@ import 'package:flutter_libmonero/view_model/send/output.dart' as wownero_output; import 'package:flutter_libmonero/wownero/wownero.dart' as wow_dart; import 'package:isar/isar.dart'; +import 'package:monero/wownero.dart' as wownerodart; import 'package:mutex/mutex.dart'; import 'package:tuple/tuple.dart'; @@ -383,19 +385,11 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { _walletCreationService.type = WalletType.wownero; // To restore from a seed final wallet = await _walletCreationService.create(credentials); - // - // final bufferedCreateHeight = (seedWordsLength == 14) - // ? getSeedHeightSync(wallet?.seed.trim() as String) - // : wownero.getHeightByDate( - // date: DateTime.now().subtract(const Duration( - // days: - // 2))); // subtract a couple days to ensure we have a buffer for SWB - // TODO(mrcyjanek): implement - const bufferedCreateHeight = - 1; //getSeedHeightSync(wallet!.seed.trim()); + + final height = wownerodart.Wallet_getRefreshFromBlockHeight(wptr!); await info.updateRestoreHeight( - newRestoreHeight: bufferedCreateHeight, + newRestoreHeight: height, isar: mainDB.isar, ); @@ -410,7 +404,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { value: "", ); - walletInfo.restoreHeight = bufferedCreateHeight; + walletInfo.restoreHeight = height; walletInfo.address = wallet.walletAddresses.address; await DB.instance @@ -515,8 +509,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { // extract seed height from 14 word seed if (seedLength == 14) { - // TODO(mrcyjanek): implement - height = 1; // getSeedHeightSync(mnemonic.trim()); + height = 0; } else { height = max(height, 0); } @@ -563,7 +556,13 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface { // To restore from a seed final wallet = await cwWalletCreationService .restoreFromSeed(credentials) as WowneroWalletBase; + height = wownerodart.Wallet_getRefreshFromBlockHeight(wptr!); walletInfo.address = wallet.walletAddresses.address; + walletInfo.restoreHeight = height; + await info.updateRestoreHeight( + newRestoreHeight: height, + isar: mainDB.isar, + ); await DB.instance .add(boxName: WalletInfo.boxName, value: walletInfo); CwBasedInterface.cwWalletBase?.close(); From 87405bc1ddae0fd96474d0ef2d76647e771b8317 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 13 Jun 2024 12:05:59 -0600 Subject: [PATCH 232/318] call `exit(0)` instead of `SystemNavigator.pop()` if xmr or wow is enabled hack to "fix" the native lib code from causing a complete app lockup on attempting to quit gracefully --- lib/pages_desktop_specific/desktop_menu.dart | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/pages_desktop_specific/desktop_menu.dart b/lib/pages_desktop_specific/desktop_menu.dart index 2b4524bf0..81b99fd8f 100644 --- a/lib/pages_desktop_specific/desktop_menu.dart +++ b/lib/pages_desktop_specific/desktop_menu.dart @@ -20,6 +20,7 @@ import '../providers/desktop/current_desktop_menu_item.dart'; import '../themes/stack_colors.dart'; import '../utilities/assets.dart'; import '../utilities/text_styles.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; import '../widgets/desktop/desktop_tor_status_button.dart'; import '../widgets/desktop/living_stack_icon.dart'; import 'desktop_menu_item.dart'; @@ -278,8 +279,14 @@ class _DesktopMenuState extends ConsumerState { value: 7, onChanged: (_) { // todo: save stuff/ notify before exit? - // exit(0); - SystemNavigator.pop(); + if (AppConfig.coins + .where((e) => e is Monero || e is Wownero) + .isNotEmpty) { + // hack to insta kill because xmr/wow native lib code sucks + exit(0); + } else { + SystemNavigator.pop(); + } }, controller: controllers[8], ), From fc180dd8c1ab8ee8892c25acac007e51fb940f42 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 13 Jun 2024 14:46:22 -0600 Subject: [PATCH 233/318] simple async queue to write logs to db without holding up the logger to wait for it to complete --- lib/utilities/logger.dart | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/lib/utilities/logger.dart b/lib/utilities/logger.dart index 6af09473a..83949ec5b 100644 --- a/lib/utilities/logger.dart +++ b/lib/utilities/logger.dart @@ -14,6 +14,7 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:isar/isar.dart'; + import '../models/isar/models/log.dart'; import 'constants.dart'; import 'enums/log_level_enum.dart'; @@ -30,8 +31,10 @@ class Logging { static const core.int defaultPrintLength = 1020; late final Isar? isar; + late final _AsyncLogWriterQueue _queue; Future init(Isar isar) async { + _queue = _AsyncLogWriterQueue(); this.isar = isar; } @@ -62,7 +65,11 @@ class Logging { printFullLength = true; } - isar!.writeTxnSync(() => log.id = isar!.logs.putSync(log)); + _queue.add( + () async => isar!.writeTxn( + () async => await isar!.logs.put(log), + ), + ); if (printToConsole) { final core.String logStr = "Log: ${log.toString()}"; @@ -129,3 +136,33 @@ abstract class Logger { } } } + +/// basic async queue for writing logs in the [Logging] to isar +class _AsyncLogWriterQueue { + final List Function()> _queue = []; + bool _runningLock = false; + + void add(Future Function() futureFunction) { + _queue.add(futureFunction); + _run(); + } + + void _run() async { + if (_runningLock) { + return; + } + _runningLock = true; + try { + while (_queue.isNotEmpty) { + final futureFunction = _queue.removeAt(0); + try { + await futureFunction.call(); + } catch (e, s) { + debugPrint("$e\n$s"); + } + } + } finally { + _runningLock = false; + } + } +} From f4f03b2dd39532bd57e8d58ab4a99025dec43edc Mon Sep 17 00:00:00 2001 From: sneurlax Date: Thu, 13 Jun 2024 17:10:13 -0500 Subject: [PATCH 234/318] tor_ffi_plugin -> tor --- ios/Podfile.lock | 10 +- .../subscribable_electrumx_client.dart | 2 +- lib/services/fusion_tor_service.dart | 3 +- lib/services/tor_service.dart | 5 +- linux/flutter/generated_plugins.cmake | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 2 +- macos/Podfile.lock | 10 +- pubspec.lock | 349 ++++++++++-------- .../ios/Runner.xcodeproj/project.pbxproj | 4 +- scripts/app_config/templates/pubspec.template | 4 +- .../node_options_sheet_test.mocks.dart | 2 +- windows/flutter/generated_plugins.cmake | 2 +- 12 files changed, 215 insertions(+), 179 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index cff46cb7b..e08fc890a 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -102,7 +102,7 @@ PODS: - Flutter - SwiftProtobuf (1.19.0) - SwiftyGif (5.4.3) - - tor_ffi_plugin (0.0.1): + - tor (0.0.1): - Flutter - url_launcher_ios (0.0.1): - Flutter @@ -134,7 +134,7 @@ DEPENDENCIES: - share_plus (from `.symlinks/plugins/share_plus/ios`) - sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/ios`) - stack_wallet_backup (from `.symlinks/plugins/stack_wallet_backup/ios`) - - tor_ffi_plugin (from `.symlinks/plugins/tor_ffi_plugin/ios`) + - tor (from `.symlinks/plugins/tor/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - wakelock (from `.symlinks/plugins/wakelock/ios`) @@ -198,8 +198,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/sqlite3_flutter_libs/ios" stack_wallet_backup: :path: ".symlinks/plugins/stack_wallet_backup/ios" - tor_ffi_plugin: - :path: ".symlinks/plugins/tor_ffi_plugin/ios" + tor: + :path: ".symlinks/plugins/tor/ios" url_launcher_ios: :path: ".symlinks/plugins/url_launcher_ios/ios" wakelock: @@ -238,7 +238,7 @@ SPEC CHECKSUMS: stack_wallet_backup: 5b8563aba5d8ffbf2ce1944331ff7294a0ec7c03 SwiftProtobuf: 6ef3f0e422ef90d6605ca20b21a94f6c1324d6b3 SwiftyGif: 6c3eafd0ce693cad58bb63d2b2fb9bacb8552780 - tor_ffi_plugin: d80e291b649379c8176e1be739e49be007d4ef93 + tor: d80e291b649379c8176e1be739e49be007d4ef93 url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 wakelock: d0fc7c864128eac40eba1617cb5264d9c940b46f diff --git a/lib/electrumx_rpc/subscribable_electrumx_client.dart b/lib/electrumx_rpc/subscribable_electrumx_client.dart index f06771906..e4a5a080c 100644 --- a/lib/electrumx_rpc/subscribable_electrumx_client.dart +++ b/lib/electrumx_rpc/subscribable_electrumx_client.dart @@ -22,7 +22,7 @@ // import 'package:stackwallet/services/tor_service.dart'; // import 'package:stackwallet/utilities/logger.dart'; // import 'package:stackwallet/utilities/prefs.dart'; -// import 'package:tor_ffi_plugin/socks_socket.dart'; +// import 'package:tor/socks_socket.dart'; // // class ElectrumXSubscription { // final StreamController _controller = diff --git a/lib/services/fusion_tor_service.dart b/lib/services/fusion_tor_service.dart index 0d5b29f59..c943409c5 100644 --- a/lib/services/fusion_tor_service.dart +++ b/lib/services/fusion_tor_service.dart @@ -1,7 +1,8 @@ import 'dart:io'; +import 'package:tor/tor.dart'; + import '../utilities/logger.dart'; -import 'package:tor_ffi_plugin/tor_ffi_plugin.dart'; class FusionTorService { Tor? _tor; diff --git a/lib/services/tor_service.dart b/lib/services/tor_service.dart index 8c4ce5e6d..70c19824e 100644 --- a/lib/services/tor_service.dart +++ b/lib/services/tor_service.dart @@ -1,10 +1,11 @@ import 'dart:io'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:tor/tor.dart'; + +import '../utilities/logger.dart'; import 'event_bus/events/global/tor_connection_status_changed_event.dart'; import 'event_bus/global_event_bus.dart'; -import '../utilities/logger.dart'; -import 'package:tor_ffi_plugin/tor_ffi_plugin.dart'; final pTorService = Provider((_) => TorService.sharedInstance); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index a8bc74800..1958f097d 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -19,6 +19,7 @@ list(APPEND FLUTTER_FFI_PLUGIN_LIST coinlib_flutter flutter_libsparkmobile frostdart + tor tor_ffi_plugin ) diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 762e46f56..c0d7042c3 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -33,7 +33,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) IsarFlutterLibsPlugin.register(with: registry.registrar(forPlugin: "IsarFlutterLibsPlugin")) LelantusPlugin.register(with: registry.registrar(forPlugin: "LelantusPlugin")) - FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin")) + FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin")) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index f7100bab5..3ebe0ea74 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -51,7 +51,7 @@ PODS: - sqlite3/rtree - stack_wallet_backup (0.0.1): - FlutterMacOS - - tor_ffi_plugin (0.0.1) + - tor (0.0.1) - url_launcher_macos (0.0.1): - FlutterMacOS - wakelock_macos (0.0.1): @@ -78,7 +78,7 @@ DEPENDENCIES: - share_plus (from `Flutter/ephemeral/.symlinks/plugins/share_plus/macos`) - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos`) - stack_wallet_backup (from `Flutter/ephemeral/.symlinks/plugins/stack_wallet_backup/macos`) - - tor_ffi_plugin (from `Flutter/ephemeral/.symlinks/plugins/tor_ffi_plugin/macos`) + - tor (from `Flutter/ephemeral/.symlinks/plugins/tor/macos`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) - wakelock_macos (from `Flutter/ephemeral/.symlinks/plugins/wakelock_macos/macos`) - window_size (from `Flutter/ephemeral/.symlinks/plugins/window_size/macos`) @@ -125,8 +125,8 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos stack_wallet_backup: :path: Flutter/ephemeral/.symlinks/plugins/stack_wallet_backup/macos - tor_ffi_plugin: - :path: Flutter/ephemeral/.symlinks/plugins/tor_ffi_plugin/macos + tor: + :path: Flutter/ephemeral/.symlinks/plugins/tor/macos url_launcher_macos: :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos wakelock_macos: @@ -155,7 +155,7 @@ SPEC CHECKSUMS: sqlite3: 154b084339ede06960a5b3c8160066adc9176b7d sqlite3_flutter_libs: 1be4459672f8168ded2d8667599b8e3ca5e72b83 stack_wallet_backup: 6ebc60b1bdcf11cf1f1cbad9aa78332e1e15778c - tor_ffi_plugin: 2566c1ed174688cca560fa0c64b7a799c66f07cb + tor: 2566c1ed174688cca560fa0c64b7a799c66f07cb url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 wakelock_macos: bc3f2a9bd8d2e6c89fee1e1822e7ddac3bd004a9 window_size: 339dafa0b27a95a62a843042038fa6c3c48de195 diff --git a/pubspec.lock b/pubspec.lock index 6271130e7..1934151c7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -37,26 +37,26 @@ packages: dependency: "direct main" description: name: archive - sha256: e0902a06f0e00414e4e3438a084580161279f137aeb862274710f29ec10cf01e + sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d url: "https://pub.dev" source: hosted - version: "3.3.9" + version: "3.6.1" args: 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: name: asn1lib - sha256: "21afe4333076c02877d14f4a89df111e658a6d466cbfc802eb705eb91bd5adfd" + sha256: "58082b3f0dca697204dbab0ef9ff208bfaea7767ea771076af9a343488428dda" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.5.3" async: dependency: "direct main" description: @@ -77,10 +77,10 @@ packages: dependency: "direct main" description: name: basic_utils - sha256: "8815477fcf58499e42326bd858e391442425fa57db9a45e48e15224c62049262" + sha256: "2064b21d3c41ed7654bc82cc476fd65542e04d60059b74d5eed490a4da08fc6c" url: "https://pub.dev" source: hosted - version: "5.5.4" + version: "5.7.0" bech32: dependency: "direct main" description: @@ -194,34 +194,34 @@ packages: dependency: transitive description: name: build_daemon - sha256: "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65" + sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.0.1" build_resolvers: dependency: transitive description: name: build_resolvers - sha256: d912852cce27c9e80a93603db721c267716894462e7033165178b91138587972 + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.2" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "10c6bcdbf9d049a0b666702cf1cee4ddfdc38f02a19d35ae392863b47519848b" + sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" url: "https://pub.dev" source: hosted - version: "2.4.6" + version: "2.4.9" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "6d6ee4276b1c5f34f21fdf39425202712d2be82019983d52f351c94aafbc2c41" + sha256: "4ae8ffe5ac758da294ecf1802f2aff01558d8b1b00616aa7538ea9a8a5d50799" url: "https://pub.dev" source: hosted - version: "7.2.10" + version: "7.3.0" built_collection: dependency: transitive description: @@ -234,18 +234,18 @@ packages: dependency: transitive description: name: built_value - sha256: ff627b645b28fb8bdb69e645f910c2458fd6b65f6585c3a53e0626024897dedf + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb url: "https://pub.dev" source: hosted - version: "8.6.2" + version: "8.9.2" calendar_date_picker2: dependency: "direct main" description: name: calendar_date_picker2 - sha256: "7ff3f372faff6814a2ba69427d116fb9a3d52e28644b9de4b06db6638fdac798" + sha256: a46a9c461e17e58e44bc3b115160fa5a90973a16574045e5c48a788a26273314 url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.0.4" characters: dependency: transitive description: @@ -266,10 +266,10 @@ packages: dependency: transitive description: name: cli_util - sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7 + sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19 url: "https://pub.dev" source: hosted - version: "0.4.0" + version: "0.4.1" clock: dependency: transitive description: @@ -282,10 +282,10 @@ packages: dependency: transitive description: name: code_builder - sha256: "315a598c7fbe77f22de1c9da7cfd6fd21816312f16ffa124453b4fc679e540f1" + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 url: "https://pub.dev" source: hosted - version: "4.6.0" + version: "4.10.0" coinlib: dependency: transitive description: @@ -338,10 +338,10 @@ packages: dependency: transitive description: name: coverage - sha256: "8acabb8306b57a409bf4c83522065672ee13179297a6bb0cb9ead73948df7c76" + sha256: "3945034e86ea203af7a056d98e98e42a5518fff200d6e8e6647e1886b07e936e" url: "https://pub.dev" source: hosted - version: "1.7.2" + version: "1.8.0" cross_file: dependency: transitive description: @@ -362,10 +362,10 @@ packages: dependency: transitive description: name: cryptography - sha256: df156c5109286340817d21fa7b62f9140f17915077127dd70f8bd7a2a0997a35 + sha256: d146b76d33d94548cf035233fbc2f4338c1242fa119013bead807d033fc4ae05 url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.7.0" csslib: dependency: transitive description: @@ -431,10 +431,10 @@ packages: dependency: transitive description: name: dart_style - sha256: abd7625e16f51f554ea244d090292945ec4d4be7bfbaf2ec8cccea568919d334 + sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.3.6" dartx: dependency: transitive description: @@ -447,10 +447,10 @@ packages: dependency: transitive description: name: dbus - sha256: "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263" + sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" url: "https://pub.dev" source: hosted - version: "0.7.8" + version: "0.7.10" decimal: dependency: "direct main" description: @@ -463,26 +463,26 @@ packages: dependency: "direct dev" description: name: dependency_validator - sha256: "08349175533ed0bd06eb9b6043cde66c45b2bfc7ebc222a7542cdb1324f1bf03" + sha256: f727a5627aa405965fab4aef4f468e50a9b632ba0737fd2f98c932fec6d712b9 url: "https://pub.dev" source: hosted - version: "3.2.2" + version: "3.2.3" desktop_drop: dependency: "direct main" description: name: desktop_drop - sha256: ebba9c9cb0b54385998a977d741cc06fd8324878c08d5a36e9da61cd56b04cc6 + sha256: d55a010fe46c8e8fcff4ea4b451a9ff84a162217bdb3b2a0aa1479776205e15d url: "https://pub.dev" source: hosted - version: "0.4.3" + version: "0.4.4" device_info_plus: dependency: "direct main" description: name: device_info_plus - sha256: "86add5ef97215562d2e090535b0a16f197902b10c369c558a100e74ea06e8659" + sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" url: "https://pub.dev" source: hosted - version: "9.0.3" + version: "9.1.2" device_info_plus_platform_interface: dependency: transitive description: @@ -527,10 +527,10 @@ packages: dependency: transitive description: name: eip1559 - sha256: de454d6321bd753eb79116e9ec4f8df20895c2e97f9a3839a032f3a728985516 + sha256: c2b81ac85f3e0e71aaf558201dd9a4600f051ece7ebacd0c5d70065c9b458004 url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.6.2" eip55: dependency: transitive description: @@ -543,8 +543,8 @@ packages: dependency: "direct main" description: path: "." - ref: "23f6b42895827ba9202db176781810d085fdd77e" - resolved-ref: "23f6b42895827ba9202db176781810d085fdd77e" + ref: "9e9441fc1e9ace8907256fff05fe2c607b0933b6" + resolved-ref: "9e9441fc1e9ace8907256fff05fe2c607b0933b6" url: "https://github.com/cypherstack/electrum_adapter.git" source: git version: "3.0.0" @@ -600,10 +600,10 @@ packages: dependency: "direct main" description: name: ffi - sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.2" file: dependency: transitive description: @@ -659,10 +659,10 @@ packages: dependency: "direct main" description: name: flutter_hooks - sha256: "7c8db779c2d1010aa7f9ea3fbefe8f86524fcb87b69e8b0af31e1a4b55422dec" + sha256: cde36b12f7188c85286fba9b38cc5a902e7279f36dd676967106c041dc9dde70 url: "https://pub.dev" source: hosted - version: "0.20.3" + version: "0.20.5" flutter_launcher_icons: dependency: "direct dev" description: @@ -698,18 +698,18 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7 + sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" flutter_local_notifications: dependency: "direct main" description: name: flutter_local_notifications - sha256: f9a05409385b77b06c18f200a41c7c2711ebf7415669350bb0f8474c07bd40d1 + sha256: "40e6fbd2da7dcc7ed78432c5cdab1559674b4af035fddbfb2f9a8f9c2112fcef" url: "https://pub.dev" source: hosted - version: "17.0.0" + version: "17.1.2" flutter_local_notifications_linux: dependency: transitive description: @@ -722,26 +722,26 @@ packages: dependency: transitive description: name: flutter_local_notifications_platform_interface - sha256: "7cf643d6d5022f3baed0be777b0662cce5919c0a7b86e700299f22dc4ae660ef" + sha256: "340abf67df238f7f0ef58f4a26d2a83e1ab74c77ab03cd2b2d5018ac64db30b7" url: "https://pub.dev" source: hosted - version: "7.0.0+1" + version: "7.1.0" flutter_mobx: dependency: transitive description: name: flutter_mobx - sha256: "0da4add0016387a7bf309a0d0c41d36c6b3ae25ed7a176409267f166509e723e" + sha256: "859fbf452fa9c2519d2700b125dd7fb14c508bbdd7fb65e26ca8ff6c92280e2e" url: "https://pub.dev" source: hosted - version: "2.0.6+5" + version: "2.2.1+1" flutter_native_splash: dependency: "direct main" description: name: flutter_native_splash - sha256: ecff62b3b893f2f665de7e4ad3de89f738941fcfcaaba8ee601e749efafa4698 + sha256: "17d9671396fb8ec45ad10f4a975eb8a0f70bedf0fdaf0720b31ea9de6da8c4da" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.7" flutter_plugin_android_lifecycle: dependency: transitive description: @@ -770,34 +770,34 @@ packages: dependency: transitive description: name: flutter_secure_storage_linux - sha256: "3d5032e314774ee0e1a7d0a9f5e2793486f0dff2dd9ef5a23f4e3fb2a0ae6a9e" + sha256: "4d91bfc23047422cbcd73ac684bc169859ee766482517c22172c86596bf1464b" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.1" flutter_secure_storage_macos: dependency: transitive description: name: flutter_secure_storage_macos - sha256: bd33935b4b628abd0b86c8ca20655c5b36275c3a3f5194769a7b3f37c905369c + sha256: "1693ab11121a5f925bbea0be725abfcfbbcf36c1e29e571f84a0c0f436147a81" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.1.2" flutter_secure_storage_platform_interface: dependency: transitive description: name: flutter_secure_storage_platform_interface - sha256: "0d4d3a5dd4db28c96ae414d7ba3b8422fd735a8255642774803b2532c9a61d7e" + sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8 url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.1.2" flutter_secure_storage_web: dependency: transitive description: name: flutter_secure_storage_web - sha256: "30f84f102df9dcdaa2241866a958c2ec976902ebdaa8883fbfe525f1f2f3cf20" + sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9 url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.2.1" flutter_secure_storage_windows: dependency: transitive description: @@ -810,10 +810,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: "8c5d68a82add3ca76d792f058b186a0599414f279f00ece4830b9b231b570338" + sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.0.10+1" flutter_test: dependency: "direct dev" description: flutter @@ -873,10 +873,10 @@ packages: dependency: "direct main" description: name: google_fonts - sha256: "6b6f10f0ce3c42f6552d1c70d2c28d764cf22bb487f50f66cca31dcd5194f4d6" + sha256: "2776c66b3e97c6cdd58d1bd3281548b074b64f1fd5c8f82391f7456e38849567" url: "https://pub.dev" source: hosted - version: "4.0.4" + version: "4.0.5" graphs: dependency: transitive description: @@ -961,10 +961,10 @@ packages: dependency: transitive description: name: image - sha256: a72242c9a0ffb65d03de1b7113bc4e189686fc07c7147b8b41811d0dd0e0d9bf + sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" url: "https://pub.dev" source: hosted - version: "4.0.17" + version: "4.2.0" import_sorter: dependency: "direct dev" description: @@ -1030,10 +1030,10 @@ packages: dependency: transitive description: name: json_annotation - sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" url: "https://pub.dev" source: hosted - version: "4.8.1" + version: "4.9.0" json_rpc_2: dependency: transitive description: @@ -1046,10 +1046,10 @@ packages: dependency: transitive description: name: json_serializable - sha256: aa1f5a8912615733e0fdc7a02af03308933c93235bdc8d50d0b0c8a8ccb0b969 + sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b url: "https://pub.dev" source: hosted - version: "6.7.1" + version: "6.8.0" keyboard_dismisser: dependency: "direct main" description: @@ -1117,10 +1117,10 @@ packages: dependency: "direct main" description: name: lottie - sha256: b8bdd54b488c54068c57d41ae85d02808da09e2bee8b8dd1f59f441e7efa60cd + sha256: a93542cc2d60a7057255405f62252533f8e8956e7e06754955669fd32fb4b216 url: "https://pub.dev" source: hosted - version: "2.6.0" + version: "2.7.0" matcher: dependency: transitive description: @@ -1157,18 +1157,18 @@ packages: dependency: transitive description: name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" mobx: dependency: transitive description: name: mobx - sha256: "0afcf88b3ee9d6819890bf16c11a727fc8c62cf736fda8e5d3b9b4eace4e62ea" + sha256: "63920b27b32ad1910adfe767ab1750e4c212e8923232a1f891597b362074ea5e" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.3+2" mockingjay: dependency: "direct dev" description: @@ -1206,10 +1206,10 @@ packages: dependency: "direct main" description: name: mutex - sha256: "03116a4e46282a671b46c12de649d72c0ed18188ffe12a8d0fc63e83f4ad88f4" + sha256: "8827da25de792088eb33e572115a5eb0d61d61a3c01acbc8bcbe76ed78f1a1f2" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.1.0" nanodart: dependency: "direct main" description: @@ -1218,6 +1218,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" nm: dependency: transitive description: @@ -1246,10 +1254,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "6ff267fcd9d48cb61c8df74a82680e8b82e940231bb5f68356672fde0397334a" + sha256: "7e76fad405b3e4016cd39d08f455a4eb5199723cf594cd1b8916d47140d93017" url: "https://pub.dev" source: hosted - version: "4.1.0" + version: "4.2.0" package_info_plus_platform_interface: dependency: transitive description: @@ -1278,26 +1286,26 @@ packages: dependency: "direct main" description: name: path_provider - sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa + sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.3" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: "6b8b19bd80da4f11ce91b2d1fb931f3006911477cec227cce23d3253d80df3f1" + sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.2.4" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.0" path_provider_linux: dependency: transitive description: @@ -1310,10 +1318,10 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: @@ -1326,42 +1334,50 @@ packages: dependency: "direct main" description: name: permission_handler - sha256: ad65ba9af42a3d067203641de3fd9f547ded1410bad3b84400c2b4899faede70 + sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb" url: "https://pub.dev" source: hosted - version: "11.0.0" + version: "11.3.1" permission_handler_android: dependency: transitive description: name: permission_handler_android - sha256: f23cfe9af0d49c6b9fd8a8b09f7b3301ca7e346204939b5afef4404d36d2608f + sha256: b29a799ca03be9f999aa6c39f7de5209482d638e6f857f6b93b0875c618b7e54 url: "https://pub.dev" source: hosted - version: "11.0.1" + version: "12.0.7" permission_handler_apple: dependency: transitive description: name: permission_handler_apple - sha256: "99e220bce3f8877c78e4ace901082fb29fa1b4ebde529ad0932d8d664b34f3f5" + sha256: e6f6d73b12438ef13e648c4ae56bd106ec60d17e90a59c4545db6781229082a0 url: "https://pub.dev" source: hosted - version: "9.1.4" + version: "9.4.5" + permission_handler_html: + dependency: transitive + description: + name: permission_handler_html + sha256: "54bf176b90f6eddd4ece307e2c06cf977fb3973719c35a93b85cc7093eb6070d" + url: "https://pub.dev" + source: hosted + version: "0.1.1" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface - sha256: f2343e9fa9c22ae4fd92d4732755bfe452214e7189afcc097380950cf567b4b2 + sha256: "48d4fcf201a1dad93ee869ab0d4101d084f49136ec82a8a06ed9cfeacab9fd20" url: "https://pub.dev" source: hosted - version: "3.11.5" + version: "4.2.1" permission_handler_windows: dependency: transitive description: name: permission_handler_windows - sha256: cc074aace208760f1eee6aa4fae766b45d947df85bc831cde77009cdb4720098 + sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" url: "https://pub.dev" source: hosted - version: "0.1.3" + version: "0.2.1" petitparser: dependency: transitive description: @@ -1398,10 +1414,10 @@ packages: dependency: "direct main" description: name: pointycastle - sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" + sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" url: "https://pub.dev" source: hosted - version: "3.7.3" + version: "3.9.1" pool: dependency: transitive description: @@ -1434,6 +1450,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.0" + provider: + dependency: transitive + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" pub_semver: dependency: transitive description: @@ -1446,10 +1470,10 @@ packages: dependency: transitive description: name: pubspec_parse - sha256: c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367 + sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 url: "https://pub.dev" source: hosted - version: "1.2.3" + version: "1.3.0" qr: dependency: transitive description: @@ -1478,10 +1502,10 @@ packages: dependency: transitive description: name: rational - sha256: ba58e9e18df9abde280e8b10051e4bce85091e41e8e7e411b6cde2e738d357cf + sha256: cb808fb6f1a839e6fc5f7d8cb3b0a10e1db48b3be102de73938c627f0b636336 url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.3" retry: dependency: transitive description: @@ -1518,18 +1542,18 @@ packages: dependency: "direct main" description: name: share_plus - sha256: "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11" + sha256: "3ef39599b00059db0990ca2e30fca0a29d8b37aae924d60063f8e0184cf20900" url: "https://pub.dev" source: hosted - version: "7.1.0" + version: "7.2.2" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7" + sha256: "251eb156a8b5fa9ce033747d73535bf53911071f8d3b6f4f0b578505ce0d4496" url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "3.4.0" shelf: dependency: transitive description: @@ -1571,19 +1595,19 @@ packages: dependency: "direct main" description: name: socks5_proxy - sha256: "1d21b5606169654bbf4cfb904e8e6ed897e9f763358709f87310c757096d909a" + sha256: "616818a0ea1064a4823b53c9f7eaf8da64ed82dcd51ed71371c7e54751ed5053" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.6" socks_socket: dependency: transitive description: path: "." ref: master - resolved-ref: ac6d721fe655208a6d488a088a35bab0ddc25702 + resolved-ref: b1fa8ca505e7e488edb4c2859f0218d48b15dead url: "https://github.com/cypherstack/socks_socket.git" source: git - version: "0.1.0" + version: "1.0.0" solana: dependency: "direct main" description: @@ -1597,10 +1621,10 @@ packages: dependency: transitive description: name: source_gen - sha256: fc0da689e5302edb6177fdd964efcb7f58912f43c28c2047a808f5bfff643d16 + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.0" source_helper: dependency: transitive description: @@ -1645,10 +1669,10 @@ packages: dependency: "direct main" description: name: sqlite3_flutter_libs - sha256: "1e62698dc1ab396152ccaf3b3990d826244e9f3c8c39b51805f209adcd6dbea3" + sha256: "9f89a7e7dc36eac2035808427eba1c3fbd79e59c3a22093d8dace6d36b1fe89e" url: "https://pub.dev" source: hosted - version: "0.5.22" + version: "0.5.23" stack_trace: dependency: transitive description: @@ -1678,10 +1702,10 @@ packages: dependency: "direct main" description: name: stellar_flutter_sdk - sha256: "574e8f40a1a1a9b18a735272196c8d3c8168a669efc8460a4d5d6f45151e8dce" + sha256: "7d505963fe11d0f90b3f798964c485ed9fa64731c38f14c9b2fb76d5d5bd6cd8" url: "https://pub.dev" source: hosted - version: "1.7.8" + version: "1.8.1" stream_channel: dependency: "direct main" description: @@ -1767,18 +1791,18 @@ packages: dependency: transitive description: name: time - sha256: "83427e11d9072e038364a5e4da559e85869b227cf699a541be0da74f14140124" + sha256: ad8e018a6c9db36cb917a031853a1aae49467a93e0d464683e029537d848c221 url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" timezone: dependency: transitive description: name: timezone - sha256: "1cfd8ddc2d1cfd836bc93e67b9be88c3adaeca6f40a00ca999104c30693cdca0" + sha256: a6ccda4a69a442098b602c44e61a1e2b4bf6f5516e875bbf0f427d5df14745d5 url: "https://pub.dev" source: hosted - version: "0.9.2" + version: "0.9.3" timing: dependency: transitive description: @@ -1803,12 +1827,21 @@ packages: url: "https://pub.dev" source: hosted version: "0.13.1" - tor_ffi_plugin: + tor: dependency: "direct main" description: path: "." - ref: "336f4310226166c7da3b503b2b54f2249e9e0055" - resolved-ref: "336f4310226166c7da3b503b2b54f2249e9e0055" + ref: "9c87dee8c2ade4a41dea3916b9dfcf1f79dcd425" + resolved-ref: "9c87dee8c2ade4a41dea3916b9dfcf1f79dcd425" + url: "https://github.com/cypherstack/tor.git" + source: git + version: "0.0.3" + tor_ffi_plugin: + dependency: transitive + description: + path: "." + ref: e37dc4e22f7acb2746b70bdc935f0eb3c50b8b71 + resolved-ref: e37dc4e22f7acb2746b70bdc935f0eb3c50b8b71 url: "https://github.com/cypherstack/tor.git" source: git version: "0.0.1" @@ -1848,66 +1881,66 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "47e208a6711459d813ba18af120d9663c20bdf6985d6ad39fe165d2538378d27" + sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" url: "https://pub.dev" source: hosted - version: "6.1.14" + version: "6.3.0" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: b04af59516ab45762b2ca6da40fa830d72d0f6045cd97744450b73493fa76330 + sha256: "17cd5e205ea615e2c6ea7a77323a11712dffa0720a8a90540db57a01347f9ad9" url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "6.3.2" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "7c65021d5dee51813d652357bc65b8dd4a6177082a9966bc8ba6ee477baa795f" + sha256: "7068716403343f6ba4969b4173cbf3b84fc768042124bc2c011e5d782b24fe89" url: "https://pub.dev" source: hosted - version: "6.1.5" + version: "6.3.0" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: b651aad005e0cb06a01dbd84b428a301916dc75f0e7ea6165f80057fee2d8e8e + sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 url: "https://pub.dev" source: hosted - version: "3.0.6" + version: "3.1.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: b55486791f666e62e0e8ff825e58a023fd6b1f71c49926483f1128d3bbd8fe88 + sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "3.2.0" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - sha256: "95465b39f83bfe95fcb9d174829d6476216f2d548b79c38ab2506e0458787618" + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" url: "https://pub.dev" source: hosted - version: "2.1.5" + version: "2.3.2" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: ba140138558fcc3eead51a1c42e92a9fb074a1b1149ed3c73e66035b2ccd94f2 + sha256: "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a" url: "https://pub.dev" source: hosted - version: "2.0.19" + version: "2.3.1" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "95fef3129dc7cfaba2bc3d5ba2e16063bb561fc6d78e63eee16162bc70029069" + sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7 url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.1.1" uuid: dependency: "direct main" description: @@ -1920,26 +1953,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "670f6e07aca990b4a2bcdc08a784193c4ccdd1932620244c3a86bb72a0eac67f" + sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.11+1" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "7451721781d967db9933b63f5733b1c4533022c0ba373a01bdd79d1a5457f69f" + sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.11+1" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "80a13c613c8bde758b1464a1755a7b3a8f2b6cec61fbf0f5a53c94c30f03ba2e" + sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.11+1" vector_math: dependency: transitive description: @@ -2001,10 +2034,10 @@ packages: dependency: transitive description: name: wallet - sha256: "569c91c2af13a9e1119c001f9c09218eccf3f383eb8d15ba13a5b558010c1bc0" + sha256: "687fd89a16557649b26189e597792962f405797fc64113e8758eabc2c2605c32" url: "https://pub.dev" source: hosted - version: "0.0.12+1" + version: "0.0.13" wasm_interop: dependency: transitive description: @@ -2065,24 +2098,24 @@ packages: dependency: transitive description: name: win32 - sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" + sha256: "0eaf06e3446824099858367950a813472af675116bf63f008a4c2a75ae13e9cb" url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "5.5.0" win32_registry: dependency: transitive description: name: win32_registry - sha256: e4506d60b7244251bc59df15656a3093501c37fb5af02105a944d73eb95be4c9 + sha256: "10589e0d7f4e053f2c61023a31c9ce01146656a70b7b7f0828c0b46d7da2a9bb" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.3" window_size: dependency: "direct main" description: path: "plugins/window_size" ref: HEAD - resolved-ref: "6c66ad23ee79749f30a8eece542cf54eaf157ed8" + resolved-ref: eb3964990cf19629c89ff8cb4a37640c7b3d5601 url: "https://github.com/google/flutter-desktop-embedding.git" source: git version: "0.1.0" diff --git a/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj b/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj index fdfcd1bfa..f6bfd3065 100644 --- a/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj +++ b/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj @@ -342,7 +342,7 @@ "${BUILT_PRODUCTS_DIR}/path_provider_foundation/path_provider_foundation.framework", "${BUILT_PRODUCTS_DIR}/share_plus/share_plus.framework", "${BUILT_PRODUCTS_DIR}/stack_wallet_backup/stack_wallet_backup.framework", - "${BUILT_PRODUCTS_DIR}/tor_ffi_plugin/tor_ffi_plugin.framework", + "${BUILT_PRODUCTS_DIR}/tor/tor.framework", "${BUILT_PRODUCTS_DIR}/url_launcher_ios/url_launcher_ios.framework", "${BUILT_PRODUCTS_DIR}/wakelock/wakelock.framework", ); @@ -375,7 +375,7 @@ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider_foundation.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/share_plus.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/stack_wallet_backup.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/tor_ffi_plugin.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/tor.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_ios.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/wakelock.framework", ); diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index 4ecd694f0..2796ca15f 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -70,10 +70,10 @@ dependencies: url: https://github.com/cypherstack/bip47.git ref: a6e7941b98a43a613708b1a12564bc17e712cfc7 - tor_ffi_plugin: + tor: git: url: https://github.com/cypherstack/tor.git - ref: e37dc4e22f7acb2746b70bdc935f0eb3c50b8b71 + ref: 9c87dee8c2ade4a41dea3916b9dfcf1f79dcd425 # foundation branch fusiondart: git: diff --git a/test/widget_tests/node_options_sheet_test.mocks.dart b/test/widget_tests/node_options_sheet_test.mocks.dart index 59450b63e..c94b7bc35 100644 --- a/test/widget_tests/node_options_sheet_test.mocks.dart +++ b/test/widget_tests/node_options_sheet_test.mocks.dart @@ -28,7 +28,7 @@ import 'package:stackwallet/wallets/isar/models/wallet_info.dart' as _i11; import 'package:stackwallet/wallets/wallet/wallet.dart' as _i5; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart' as _i6; -import 'package:tor_ffi_plugin/tor_ffi_plugin.dart' as _i21; +import 'package:tor/tor.dart' as _i21; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index b00cd149f..029f2850e 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -20,7 +20,7 @@ list(APPEND FLUTTER_FFI_PLUGIN_LIST coinlib_flutter flutter_libsparkmobile frostdart - tor_ffi_plugin + tor ) set(PLUGIN_BUNDLED_LIBRARIES) From 65879670ad15612dc7d3aa72e7ac686d789af361 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 13 Jun 2024 17:35:40 -0600 Subject: [PATCH 235/318] desktop swap navigation fix --- lib/pages/exchange_view/confirm_change_now_send.dart | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/pages/exchange_view/confirm_change_now_send.dart b/lib/pages/exchange_view/confirm_change_now_send.dart index 09aac4df9..1b52dfdbe 100644 --- a/lib/pages/exchange_view/confirm_change_now_send.dart +++ b/lib/pages/exchange_view/confirm_change_now_send.dart @@ -147,17 +147,15 @@ class _ConfirmChangeNowSendViewState ); // pop back to wallet - if (mounted) { + if (context.mounted) { if (Util.isDesktop) { + // pop sending dialog Navigator.of(context, rootNavigator: true).pop(); - // stupid hack + // one day we'll do routing right + Navigator.of(context, rootNavigator: true).pop(); if (widget.fromDesktopStep4) { Navigator.of(context, rootNavigator: true).pop(); - Navigator.of(context, rootNavigator: true).pop(); - Navigator.of(context, rootNavigator: true).pop(); - Navigator.of(context, rootNavigator: true).pop(); - Navigator.of(context, rootNavigator: true).pop(); } } From 98960cac7729ab303cf9c4fb966c7bf25be7f5a6 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 14 Jun 2024 08:41:16 -0600 Subject: [PATCH 236/318] WIP less cryptic errors in gui --- .../exchange_step_views/step_3_view.dart | 19 ++++++++++++++++--- .../exchange_steps/step_scaffold.dart | 12 +++++++++++- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/lib/pages/exchange_view/exchange_step_views/step_3_view.dart b/lib/pages/exchange_view/exchange_step_views/step_3_view.dart index 93856486e..545e2d41a 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_3_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_3_view.dart @@ -285,17 +285,30 @@ class _Step3ViewState extends ConsumerState { ); if (response.value == null) { - if (mounted) { + if (context.mounted) { Navigator.of(context).pop(); + // TODO: better errors + String? message; + if (response.exception != null) { + message = + response.exception!.toString(); + if (message.startsWith( + "FormatException:", + ) && + message.contains("")) { + message = + "${ref.read(efExchangeProvider).name} server error"; + } + } + unawaited( showDialog( context: context, barrierDismissible: true, builder: (_) => StackDialog( title: "Failed to create trade", - message: response.exception - ?.toString(), + message: message ?? "", ), ), ); diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index 3c0688166..19eea020b 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -117,13 +117,23 @@ class _StepScaffoldState extends ConsumerState { if (mounted) { Navigator.of(context).pop(); + String? message; + if (response.exception != null) { + message = response.exception!.toString(); + // TODO: better errors + if (message.startsWith("FormatException:") && + message.contains("")) { + message = "${ref.read(efExchangeProvider).name} server error"; + } + } + unawaited( showDialog( context: context, barrierDismissible: true, builder: (_) => SimpleDesktopDialog( title: "Failed to create trade", - message: response.exception?.toString() ?? "", + message: message ?? "", ), ), ); From 0b95afc62f72720023630f60df82c2ab8e9654e4 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 14 Jun 2024 10:04:02 -0600 Subject: [PATCH 237/318] wrap long trade payin addresses in trade details view --- .../exchange_view/trade_details_view.dart | 50 ++++++++++++------- 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/lib/pages/exchange_view/trade_details_view.dart b/lib/pages/exchange_view/trade_details_view.dart index 68a75704a..e64c1154b 100644 --- a/lib/pages/exchange_view/trade_details_view.dart +++ b/lib/pages/exchange_view/trade_details_view.dart @@ -669,21 +669,29 @@ class _TradeDetailsViewState extends ConsumerState { mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "${trade.exchangeName} address", - style: STextStyles.itemSubtitle(context), - ), - const SizedBox( - height: 4, - ), - SelectableText( - trade.payInAddress, - style: STextStyles.itemSubtitle12(context), - ), - ], + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "${trade.exchangeName} address", + style: STextStyles.itemSubtitle(context), + ), + const SizedBox( + height: 4, + ), + Row( + children: [ + Flexible( + child: SelectableText( + trade.payInAddress, + style: STextStyles.itemSubtitle12(context), + ), + ), + ], + ), + ], + ), ), if (isDesktop) IconCopyButton( @@ -760,9 +768,15 @@ class _TradeDetailsViewState extends ConsumerState { const SizedBox( height: 4, ), - SelectableText( - trade.payInAddress, - style: STextStyles.itemSubtitle12(context), + Row( + children: [ + Expanded( + child: SelectableText( + trade.payInAddress, + style: STextStyles.itemSubtitle12(context), + ), + ), + ], ), const SizedBox( height: 10, From dcdad38ec7cb28f7b3b010d4e7fdc872a81aac66 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 14 Jun 2024 10:18:11 -0600 Subject: [PATCH 238/318] fix desktop wallet network settings layout --- .../wallet_network_settings_view.dart | 15 ++++----- .../sub_widgets/network_info_button.dart | 31 +++++++++++-------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart index da50b6208..22566804a 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart @@ -15,11 +15,9 @@ import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import '../../global_settings_view/manage_nodes_views/add_edit_node_view.dart'; -import '../../global_settings_view/tor_settings/tor_settings_view.dart'; -import '../../sub_widgets/nodes_list.dart'; -import 'sub_widgets/confirm_full_rescan.dart'; -import 'sub_widgets/rescanning_dialog.dart'; +import 'package:tuple/tuple.dart'; +import 'package:wakelock/wakelock.dart'; + import '../../../../providers/providers.dart'; import '../../../../route_generator.dart'; import '../../../../services/event_bus/events/global/blocks_remaining_event.dart'; @@ -53,8 +51,11 @@ import '../../../../widgets/rounded_container.dart'; import '../../../../widgets/rounded_white_container.dart'; import '../../../../widgets/stack_dialog.dart'; import '../../../../widgets/tor_subscription.dart'; -import 'package:tuple/tuple.dart'; -import 'package:wakelock/wakelock.dart'; +import '../../global_settings_view/manage_nodes_views/add_edit_node_view.dart'; +import '../../global_settings_view/tor_settings/tor_settings_view.dart'; +import '../../sub_widgets/nodes_list.dart'; +import 'sub_widgets/confirm_full_rescan.dart'; +import 'sub_widgets/rescanning_dialog.dart'; /// [eventBus] should only be set during testing class WalletNetworkSettingsView extends ConsumerStatefulWidget { diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/network_info_button.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/network_info_button.dart index b84332c01..7fbcef510 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/network_info_button.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/network_info_button.dart @@ -14,6 +14,8 @@ import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:tuple/tuple.dart'; + import '../../../../pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart'; import '../../../../providers/providers.dart'; import '../../../../route_generator.dart'; @@ -26,7 +28,6 @@ import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; import '../../../../widgets/desktop/desktop_dialog.dart'; import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:tuple/tuple.dart'; class NetworkInfoButton extends ConsumerStatefulWidget { const NetworkInfoButton({ @@ -226,7 +227,7 @@ class _NetworkInfoButtonState extends ConsumerState { return [ FadePageRoute( DesktopDialog( - maxHeight: MediaQuery.of(context).size.height - 64, + maxHeight: null, maxWidth: 580, child: Column( mainAxisSize: MainAxisSize.min, @@ -251,17 +252,21 @@ class _NetworkInfoButtonState extends ConsumerState { ], ), ), - Padding( - padding: const EdgeInsets.only( - top: 16, - left: 32, - right: 32, - bottom: 32, - ), - child: WalletNetworkSettingsView( - walletId: walletId, - initialSyncStatus: _currentSyncStatus, - initialNodeStatus: _currentNodeStatus, + Flexible( + child: Padding( + padding: const EdgeInsets.only( + top: 16, + left: 32, + right: 32, + bottom: 32, + ), + child: SingleChildScrollView( + child: WalletNetworkSettingsView( + walletId: walletId, + initialSyncStatus: _currentSyncStatus, + initialNodeStatus: _currentNodeStatus, + ), + ), ), ), ], From 8510fea4476c2a0bfa9b7161191f9eea338956bf Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 14 Jun 2024 10:49:43 -0600 Subject: [PATCH 239/318] patch applied --- crypto_plugins/flutter_libmonero | 2 +- ios/MoneroWallet.framework/.gitignore | 1 + ios/MoneroWallet.framework/Info.plist | Bin 0 -> 793 bytes ios/WowneroWallet.framework/.gitignore | 1 + ios/WowneroWallet.framework/Info.plist | Bin 0 -> 793 bytes scripts/app_config/templates/pubspec.template | 8 ++++---- 6 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 ios/MoneroWallet.framework/.gitignore create mode 100644 ios/MoneroWallet.framework/Info.plist create mode 100644 ios/WowneroWallet.framework/.gitignore create mode 100644 ios/WowneroWallet.framework/Info.plist diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index 4b87151d4..09a59d938 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit 4b87151d4914606b911f738a8236a6e54a6d8ecb +Subproject commit 09a59d9381e24224ebe545fc9d96dcf51185b7a4 diff --git a/ios/MoneroWallet.framework/.gitignore b/ios/MoneroWallet.framework/.gitignore new file mode 100644 index 000000000..38de9b351 --- /dev/null +++ b/ios/MoneroWallet.framework/.gitignore @@ -0,0 +1 @@ +MoneroWallet \ No newline at end of file diff --git a/ios/MoneroWallet.framework/Info.plist b/ios/MoneroWallet.framework/Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..8858589f7070c754a01b0519387f9cab5f664005 GIT binary patch literal 793 zcmZXQ&rcIU6vtUcNFuadk3vEj@Mp#?9$l6SH&kckVuTD5sjMYb$}%;&g-9bW<~Q zZM}D^YevHoE&4RdtOSg=OldOi)#x7O!nLX6S7?U`$CO6nT8(<$D3gq+BC&RuLrZ$} z+R}_NCw^OacJCKcO2$~3Si7V{jeR%FrsAx=BRs!9QTILObWRro*A2_G6_4zi(o{?q zoVL)I<%d#;xBpMnSX|G)pjP0MZQfgPRoE`$)H9`YwNRnY1Lo0IxFoaaDsjm+HkkGv_d;rn^AA8S~!N+h|T!EDJ4$U?sLt)zkO#Du`Hc+9O4IFXu{|T z6m>O=!l9n16V9pMWbRJ*6kT;$&Km0Cf>O(<`HZSmsPjavWft<8Otuj>8EeJ*x~|H~ z;Y@>-dtgb|mt@71W-MXL#C189!&_uRSLS@rmMu=4j;xx>;q5B%?4|IRh)DH_w(tcP z)~+X?7WL`geF;lo^fcAg#e7D|5UcNFuadk3vEj@Mp#?9$l6SH&kckVuTD5sjMYb$}%;&g-9bW<~Q zZM}D^YevHoE&4RdtOSg=OldOi)#x7O!nLX6S7?U`$CO6nT8(<$D3gq+BC&RuLrZ$} z+R}_NCw^OacJCKcO2$~3Si7V{jeR%FrsAx=BRs!9QTILObWRro*A2_G6_4zi(o{?q zoVL)I<%d#;xBpMnSX|G)pjP0MZQfgPRoE`$)H9`YwNRnY1Lo0IxFoaaDsjm+HkkGv_d;rn^AA8S~!N+h|T!EDJ4$U?sLt)zkO#Du`Hc+9O4IFXu{|T z6m>O=!l9n16V9pMWbRJ*6kT;$&Km0Cf>O(<`HZSmsPjavWft<8Otuj>8EeJ*x~|H~ z;Y@>-dtgb|mt@71W-MXL#C189!&_uRSLS@rmMu=4j;xx>;q5B%?4|IRh)DH_w(tcP z)~+X?7WL`geF;lo^fcAg#e7D|5 Date: Fri, 14 Jun 2024 12:28:06 -0600 Subject: [PATCH 240/318] update ref --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index 09a59d938..f29b2dced 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit 09a59d9381e24224ebe545fc9d96dcf51185b7a4 +Subproject commit f29b2dceddc61ec5e97194c393ab7c0e9ba4eb8b From 13ab2b8ffeceade648c14d8fc40a1527e1004fcd Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 14 Jun 2024 14:20:28 -0500 Subject: [PATCH 241/318] port String extension capitalize() from flutter_native_splash to sw exts --- lib/db/isar/main_db.dart | 2 +- lib/pages/cashfusion/cashfusion_view.dart | 2 +- lib/pages/cashfusion/fusion_rounds_selection_sheet.dart | 3 ++- lib/pages/generic/single_field_edit_view.dart | 3 ++- lib/pages/receive_view/addresses/address_tag.dart | 3 ++- lib/pages/send_view/send_view.dart | 2 +- .../wallet_view/sub_widgets/wallet_summary_info.dart | 7 ++++--- .../cashfusion/desktop_cashfusion_view.dart | 2 +- lib/services/exchange/trocador/trocador_api.dart | 9 +++++---- lib/utilities/extensions/impl/string.dart | 6 ++++++ lib/widgets/desktop/desktop_tor_status_button.dart | 3 ++- 11 files changed, 27 insertions(+), 15 deletions(-) diff --git a/lib/db/isar/main_db.dart b/lib/db/isar/main_db.dart index 1ea6830c5..a16fb2b9a 100644 --- a/lib/db/isar/main_db.dart +++ b/lib/db/isar/main_db.dart @@ -9,7 +9,6 @@ */ import 'package:decimal/decimal.dart'; -import 'package:flutter_native_splash/cli_commands.dart'; import 'package:isar/isar.dart'; import 'package:tuple/tuple.dart'; @@ -21,6 +20,7 @@ import '../../models/isar/models/isar_models.dart'; import '../../models/isar/ordinal.dart'; import '../../models/isar/stack_theme.dart'; import '../../utilities/amount/amount.dart'; +import '../../utilities/extensions/extensions.dart'; import '../../utilities/stack_file_system.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import '../../wallets/isar/models/frost_wallet_info.dart'; diff --git a/lib/pages/cashfusion/cashfusion_view.dart b/lib/pages/cashfusion/cashfusion_view.dart index 46d8a2451..4579dbc52 100644 --- a/lib/pages/cashfusion/cashfusion_view.dart +++ b/lib/pages/cashfusion/cashfusion_view.dart @@ -12,7 +12,6 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:flutter_native_splash/cli_commands.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; @@ -22,6 +21,7 @@ import '../../providers/global/wallets_provider.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; import '../../utilities/constants.dart'; +import '../../utilities/extensions/extensions.dart'; import '../../utilities/text_styles.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import '../../wallets/isar/providers/wallet_info_provider.dart'; diff --git a/lib/pages/cashfusion/fusion_rounds_selection_sheet.dart b/lib/pages/cashfusion/fusion_rounds_selection_sheet.dart index 3994efaa9..72cd027dd 100644 --- a/lib/pages/cashfusion/fusion_rounds_selection_sheet.dart +++ b/lib/pages/cashfusion/fusion_rounds_selection_sheet.dart @@ -10,9 +10,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; -import 'package:flutter_native_splash/cli_commands.dart'; + import '../../themes/stack_colors.dart'; import '../../utilities/constants.dart'; +import '../../utilities/extensions/extensions.dart'; import '../../utilities/text_styles.dart'; enum FusionOption { diff --git a/lib/pages/generic/single_field_edit_view.dart b/lib/pages/generic/single_field_edit_view.dart index b02490db4..5ffb7196f 100644 --- a/lib/pages/generic/single_field_edit_view.dart +++ b/lib/pages/generic/single_field_edit_view.dart @@ -9,9 +9,10 @@ */ import 'package:flutter/material.dart'; -import 'package:flutter_native_splash/cli_commands.dart'; + import '../../themes/stack_colors.dart'; import '../../utilities/constants.dart'; +import '../../utilities/extensions/extensions.dart'; import '../../utilities/text_styles.dart'; import '../../utilities/util.dart'; import '../../widgets/background.dart'; diff --git a/lib/pages/receive_view/addresses/address_tag.dart b/lib/pages/receive_view/addresses/address_tag.dart index 1d7ebaf5b..c6a1efcd4 100644 --- a/lib/pages/receive_view/addresses/address_tag.dart +++ b/lib/pages/receive_view/addresses/address_tag.dart @@ -9,8 +9,9 @@ */ import 'package:flutter/material.dart'; -import 'package:flutter_native_splash/cli_commands.dart'; + import '../../../themes/stack_colors.dart'; +import '../../../utilities/extensions/extensions.dart'; import '../../../utilities/text_styles.dart'; import '../../../widgets/rounded_container.dart'; diff --git a/lib/pages/send_view/send_view.dart b/lib/pages/send_view/send_view.dart index 8d1f12c5d..7851c9954 100644 --- a/lib/pages/send_view/send_view.dart +++ b/lib/pages/send_view/send_view.dart @@ -15,7 +15,6 @@ import 'package:cw_core/monero_transaction_priority.dart'; import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:flutter_native_splash/cli_commands.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:tuple/tuple.dart'; @@ -40,6 +39,7 @@ import '../../utilities/barcode_scanner_interface.dart'; import '../../utilities/clipboard_interface.dart'; import '../../utilities/constants.dart'; import '../../utilities/enums/fee_rate_type_enum.dart'; +import '../../utilities/extensions/extensions.dart'; import '../../utilities/logger.dart'; import '../../utilities/prefs.dart'; import '../../utilities/text_styles.dart'; diff --git a/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart b/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart index 7b44e17eb..6862f878a 100644 --- a/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart +++ b/lib/pages/wallet_view/sub_widgets/wallet_summary_info.dart @@ -12,11 +12,9 @@ import 'dart:io'; import 'dart:typed_data'; import 'package:flutter/material.dart'; -import 'package:flutter_native_splash/cli_commands.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'wallet_balance_toggle_sheet.dart'; -import 'wallet_refresh_button.dart'; + import '../../../providers/providers.dart'; import '../../../providers/wallet/public_private_balance_state_provider.dart'; import '../../../providers/wallet/wallet_balance_toggle_state_provider.dart'; @@ -27,12 +25,15 @@ import '../../../utilities/amount/amount.dart'; import '../../../utilities/amount/amount_formatter.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/enums/wallet_balance_toggle_state.dart'; +import '../../../utilities/extensions/extensions.dart'; import '../../../utilities/text_styles.dart'; import '../../../wallets/crypto_currency/coins/banano.dart'; import '../../../wallets/crypto_currency/coins/firo.dart'; import '../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../wallets/wallet/impl/banano_wallet.dart'; import '../../../widgets/conditional_parent.dart'; +import 'wallet_balance_toggle_sheet.dart'; +import 'wallet_refresh_button.dart'; class WalletSummaryInfo extends ConsumerWidget { const WalletSummaryInfo({ diff --git a/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart b/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart index d35da1a31..e12e72e11 100644 --- a/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart +++ b/lib/pages_desktop_specific/cashfusion/desktop_cashfusion_view.dart @@ -14,7 +14,6 @@ import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:flutter_native_splash/cli_commands.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; @@ -25,6 +24,7 @@ import '../../providers/global/wallets_provider.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; import '../../utilities/constants.dart'; +import '../../utilities/extensions/extensions.dart'; import '../../utilities/text_styles.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import '../../wallets/isar/providers/wallet_info_provider.dart'; diff --git a/lib/services/exchange/trocador/trocador_api.dart b/lib/services/exchange/trocador/trocador_api.dart index 7ef259186..9b497a685 100644 --- a/lib/services/exchange/trocador/trocador_api.dart +++ b/lib/services/exchange/trocador/trocador_api.dart @@ -11,17 +11,18 @@ import 'dart:convert'; import 'package:flutter/foundation.dart'; -import 'package:flutter_native_splash/cli_commands.dart'; + import '../../../exceptions/exchange/exchange_exception.dart'; import '../../../networking/http.dart'; +import '../../../utilities/extensions/extensions.dart'; +import '../../../utilities/logger.dart'; +import '../../../utilities/prefs.dart'; +import '../../tor_service.dart'; import '../exchange_response.dart'; import 'response_objects/trocador_coin.dart'; import 'response_objects/trocador_rate.dart'; import 'response_objects/trocador_trade.dart'; import 'response_objects/trocador_trade_new.dart'; -import '../../tor_service.dart'; -import '../../../utilities/logger.dart'; -import '../../../utilities/prefs.dart'; const kTrocadorApiKey = "8rFqf7QLxX1mUBiNPEMaLUpV2biz6n"; const kTrocadorRefCode = "9eHm9BkQfS"; diff --git a/lib/utilities/extensions/impl/string.dart b/lib/utilities/extensions/impl/string.dart index 6a25f23b6..9ed425611 100644 --- a/lib/utilities/extensions/impl/string.dart +++ b/lib/utilities/extensions/impl/string.dart @@ -9,6 +9,7 @@ */ import 'dart:convert'; +import 'dart:core'; import 'dart:typed_data'; import 'package:dart_bs58/dart_bs58.dart'; @@ -38,4 +39,9 @@ extension StringExtensions on String { .reversed .map((e) => e.toRadixString(16).padLeft(2, '0')) .join(); + + /// Capitalize the first letter of a string. + String capitalize() { + return isEmpty ? this : "${this[0].toUpperCase()}${substring(1)}"; + } } diff --git a/lib/widgets/desktop/desktop_tor_status_button.dart b/lib/widgets/desktop/desktop_tor_status_button.dart index 45d82d9ab..f4df42a64 100644 --- a/lib/widgets/desktop/desktop_tor_status_button.dart +++ b/lib/widgets/desktop/desktop_tor_status_button.dart @@ -2,15 +2,16 @@ import 'dart:async'; import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_native_splash/cli_commands.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; + import '../../pages_desktop_specific/desktop_menu_item.dart'; import '../../services/event_bus/events/global/tor_connection_status_changed_event.dart'; import '../../services/event_bus/global_event_bus.dart'; import '../../services/tor_service.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; +import '../../utilities/extensions/extensions.dart'; import '../../utilities/text_styles.dart'; class DesktopTorStatusButton extends ConsumerStatefulWidget { From 2ada78e4b025b45d58264246288a8d7610d9a162 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 14 Jun 2024 13:33:27 -0600 Subject: [PATCH 242/318] spark mempool electrumx calls --- lib/electrumx_rpc/electrumx_client.dart | 43 +++++++++++++++++++------ 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index 442281532..a49d7675a 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -26,12 +26,20 @@ import '../services/event_bus/events/global/tor_status_changed_event.dart'; import '../services/event_bus/global_event_bus.dart'; import '../services/tor_service.dart'; import '../utilities/amount/amount.dart'; +import '../utilities/extensions/impl/string.dart'; import '../utilities/logger.dart'; import '../utilities/prefs.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; import '../wallets/crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'client_manager.dart'; +typedef SparkMempoolData = ({ + String txid, + List serialContext, + List lTags, + List coins, +}); + class WifiOnlyException implements Exception {} class ElectrumXNode { @@ -1038,10 +1046,9 @@ class ElectrumXClient { command: "spark.getmempooltxids", ); - // TODO verify once server is live - final txids = List.from(response as List).toSet(); - // final map = Map.from(response as Map); - // final txids = List.from(map["tags"] as List).toSet(); + final txids = List.from(response as List) + .map((e) => e.toHexReversedFromBase64) + .toSet(); Logging.instance.log( "Finished ElectrumXClient.getMempoolTxids(). " @@ -1057,7 +1064,7 @@ class ElectrumXClient { } /// Returns the txids of the current transactions found in the mempool - Future> getMempoolSparkData({ + Future> getMempoolSparkData({ String? requestID, required List txids, }) async { @@ -1066,11 +1073,27 @@ class ElectrumXClient { final response = await request( requestID: requestID, command: "spark.getmempooltxs", - args: txids, + args: [ + { + "txids": txids, + }, + ], ); - // TODO verify once server is live final map = Map.from(response as Map); + final List result = []; + for (final entry in map.entries) { + result.add( + ( + txid: entry.key, + serialContext: + List.from(entry.value["Serial_context"] as List), + // the space after lTags is required lol + lTags: List.from(entry.value["lTags "] as List), + coins: List.from(entry.value["Coins"] as List), + ), + ); + } Logging.instance.log( "Finished ElectrumXClient.getMempoolSparkData(txids: $txids). " @@ -1078,9 +1101,9 @@ class ElectrumXClient { level: LogLevel.Info, ); - return map; - } catch (e) { - Logging.instance.log(e, level: LogLevel.Error); + return result; + } catch (e, s) { + Logging.instance.log("$e\n$s", level: LogLevel.Error); rethrow; } } From d1a236be3330e3b7d1b282da185b21af254a3014 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 14 Jun 2024 14:52:01 -0600 Subject: [PATCH 243/318] spark mempool check during refresh --- .../spark_interface.dart | 474 +++++++++++------- 1 file changed, 283 insertions(+), 191 deletions(-) diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index 5ac6ade90..496147da1 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -635,7 +635,9 @@ mixin SparkInterface // been marked as isUsed. // TODO: [prio=med] Could (probably should) throw an exception here if txData.usedSparkCoins is null or empty if (txData.usedSparkCoins != null && txData.usedSparkCoins!.isNotEmpty) { - await _addOrUpdateSparkCoins(txData.usedSparkCoins!); + await mainDB.isar.writeTxn(() async { + await mainDB.isar.sparkCoins.putAll(txData.usedSparkCoins!); + }); } return await updateSentCachedTxData(txData: txData); @@ -648,7 +650,88 @@ mixin SparkInterface } } + // in mem cache + Set _mempoolTxids = {}; + Set _mempoolTxidsChecked = {}; + + Future> _refreshSparkCoinsMempoolCheck({ + required Set privateKeyHexSet, + required int groupId, + }) async { + final start = DateTime.now(); + try { + // update cache + _mempoolTxids = await electrumXClient.getMempoolTxids(); + + // remove any checked txids that are not in the mempool anymore + _mempoolTxidsChecked = _mempoolTxidsChecked.intersection(_mempoolTxids); + + // get all unchecked txids currently in mempool + final txidsToCheck = _mempoolTxids.difference(_mempoolTxidsChecked); + if (txidsToCheck.isEmpty) { + return []; + } + + // fetch spark data to scan if we own any unconfirmed spark coins + final sparkDataToCheck = await electrumXClient.getMempoolSparkData( + txids: txidsToCheck.toList(), + ); + + final Set checkedTxids = {}; + final List> rawCoins = []; + + for (final data in sparkDataToCheck) { + for (int i = 0; i < data.coins.length; i++) { + rawCoins.add([ + data.coins[i], + data.txid, + data.serialContext.first, + ]); + } + + checkedTxids.add(data.txid); + } + + final result = []; + + // if there is new data we try and identify the coins + if (rawCoins.isNotEmpty) { + // run identify off main isolate + final myCoins = await compute( + _identifyCoins, + ( + anonymitySetCoins: rawCoins, + groupId: groupId, + privateKeyHexSet: privateKeyHexSet, + walletId: walletId, + isTestNet: cryptoCurrency.network == CryptoCurrencyNetwork.test, + ), + ); + + // add checked txids after identification + _mempoolTxidsChecked.addAll(checkedTxids); + + result.addAll(myCoins); + } + + return result; + } catch (e) { + Logging.instance.log( + "refreshSparkMempoolData() failed: $e", + level: LogLevel.Error, + ); + return []; + } finally { + Logging.instance.log( + "$walletId ${info.name} refreshSparkCoinsMempoolCheck() run " + "duration: ${DateTime.now().difference(start)}", + level: LogLevel.Debug, + ); + } + } + Future refreshSparkData() async { + final start = DateTime.now(); try { // start by checking if any previous sets are missing from db and add the // missing groupIds to the list if sets to check and update @@ -684,15 +767,210 @@ mixin SparkInterface ), ]); - await _checkAndUpdateCoins(); - // refresh spark balance - await refreshSparkBalance(); + // Get cached timestamps per groupId. These timestamps are used to check + // and try to id coins that were added to the spark anon set cache + // after that timestamp. + final groupIdTimestampUTCMap = + info.otherData[WalletInfoKeys.firoSparkCacheSetTimestampCache] + as Map? ?? + {}; + + // iterate through the cache, fetching spark coin data that hasn't been + // processed by this wallet yet + final Map>> rawCoinsBySetId = {}; + for (int i = 1; i <= latestGroupId; i++) { + final lastCheckedTimeStampUTC = + groupIdTimestampUTCMap[i.toString()] as int? ?? 0; + final info = await FiroCacheCoordinator.getLatestSetInfoForGroupId( + i, + ); + final anonymitySetResult = + await FiroCacheCoordinator.getSetCoinsForGroupId( + i, + newerThanTimeStamp: lastCheckedTimeStampUTC, + ); + final coinsRaw = anonymitySetResult + .map( + (e) => [ + e.serialized, + e.txHash, + e.context, + ], + ) + .toList(); + + if (coinsRaw.isNotEmpty) { + rawCoinsBySetId[i] = coinsRaw; + } + + // update last checked timestamp data + groupIdTimestampUTCMap[i.toString()] = max( + lastCheckedTimeStampUTC, + info?.timestampUTC ?? lastCheckedTimeStampUTC, + ); + } + + // get address(es) to get the private key hex strings required for + // identifying spark coins + final sparkAddresses = await mainDB.isar.addresses + .where() + .walletIdEqualTo(walletId) + .filter() + .typeEqualTo(AddressType.spark) + .findAll(); + final root = await getRootHDNode(); + final Set privateKeyHexSet = sparkAddresses + .map( + (e) => + root.derivePath(e.derivationPath!.value).privateKey.data.toHex, + ) + .toSet(); + + // try to identify any coins in the unchecked set data + final List newlyIdCoins = []; + for (final groupId in rawCoinsBySetId.keys) { + final myCoins = await compute( + _identifyCoins, + ( + anonymitySetCoins: rawCoinsBySetId[groupId]!, + groupId: groupId, + privateKeyHexSet: privateKeyHexSet, + walletId: walletId, + isTestNet: cryptoCurrency.network == CryptoCurrencyNetwork.test, + ), + ); + newlyIdCoins.addAll(myCoins); + } + // if any were found, add to database + if (newlyIdCoins.isNotEmpty) { + await mainDB.isar.writeTxn(() async { + await mainDB.isar.sparkCoins.putAll(newlyIdCoins); + }); + } + + // finally update the cached timestamps in the database + await info.updateOtherData( + newEntries: { + WalletInfoKeys.firoSparkCacheSetTimestampCache: + groupIdTimestampUTCMap, + }, + isar: mainDB.isar, + ); + + // check for spark coins in mempool + final mempoolMyCoins = await _refreshSparkCoinsMempoolCheck( + privateKeyHexSet: privateKeyHexSet, + groupId: latestGroupId, + ); + // if any were found, add to database + if (mempoolMyCoins.isNotEmpty) { + await mainDB.isar.writeTxn(() async { + await mainDB.isar.sparkCoins.putAll(mempoolMyCoins); + }); + } + + // get unused and or unconfirmed coins from db + final coinsToCheck = await mainDB.isar.sparkCoins + .where() + .walletIdEqualToAnyLTagHash(walletId) + .filter() + .heightIsNull() + .or() + .isUsedEqualTo(false) + .findAll(); + + Set? spentCoinTags; + // only fetch tags from db if we need them to compare against any items + // in coinsToCheck + if (coinsToCheck.isNotEmpty) { + spentCoinTags = await FiroCacheCoordinator.getUsedCoinTags(0); + } + + // check and update coins if required + final List updatedCoins = []; + for (final coin in coinsToCheck) { + SparkCoin updated = coin; + + if (updated.height == null) { + final tx = await electrumXCachedClient.getTransaction( + txHash: updated.txHash, + cryptoCurrency: info.coin, + ); + if (tx["height"] is int) { + updated = updated.copyWith(height: tx["height"] as int); + } + } + + if (updated.height != null && + spentCoinTags!.contains(updated.lTagHash)) { + updated = coin.copyWith(isUsed: true); + } + + updatedCoins.add(updated); + } + // update in db if any have changed + if (updatedCoins.isNotEmpty) { + await mainDB.isar.writeTxn(() async { + await mainDB.isar.sparkCoins.putAll(updatedCoins); + }); + } + + // used to check if balance is spendable or total + final currentHeight = await chainHeight; + + // get all unused coins to update wallet spark balance + final unusedCoins = await mainDB.isar.sparkCoins + .where() + .walletIdEqualToAnyLTagHash(walletId) + .filter() + .isUsedEqualTo(false) + .findAll(); + + final total = Amount( + rawValue: unusedCoins + .map((e) => e.value) + .fold(BigInt.zero, (prev, e) => prev + e), + fractionDigits: cryptoCurrency.fractionDigits, + ); + final spendable = Amount( + rawValue: unusedCoins + .where( + (e) => + e.height != null && + e.height! + cryptoCurrency.minConfirms <= currentHeight, + ) + .map((e) => e.value) + .fold(BigInt.zero, (prev, e) => prev + e), + fractionDigits: cryptoCurrency.fractionDigits, + ); + + final sparkBalance = Balance( + total: total, + spendable: spendable, + blockedTotal: Amount( + rawValue: BigInt.zero, + fractionDigits: cryptoCurrency.fractionDigits, + ), + pendingSpendable: total - spendable, + ); + + // finally update balance in db + await info.updateBalanceTertiary( + newBalance: sparkBalance, + isar: mainDB.isar, + ); } catch (e, s) { Logging.instance.log( "$runtimeType $walletId ${info.name}: $e\n$s", level: LogLevel.Error, ); rethrow; + } finally { + Logging.instance.log( + "${info.name} refreshSparkData() duration:" + " ${DateTime.now().difference(start)}", + level: LogLevel.Debug, + ); } } @@ -722,49 +1000,6 @@ mixin SparkInterface return pairs.toSet(); } - Future refreshSparkBalance() async { - final currentHeight = await chainHeight; - final unusedCoins = await mainDB.isar.sparkCoins - .where() - .walletIdEqualToAnyLTagHash(walletId) - .filter() - .isUsedEqualTo(false) - .findAll(); - - final total = Amount( - rawValue: unusedCoins - .map((e) => e.value) - .fold(BigInt.zero, (prev, e) => prev + e), - fractionDigits: cryptoCurrency.fractionDigits, - ); - final spendable = Amount( - rawValue: unusedCoins - .where( - (e) => - e.height != null && - e.height! + cryptoCurrency.minConfirms <= currentHeight, - ) - .map((e) => e.value) - .fold(BigInt.zero, (prev, e) => prev + e), - fractionDigits: cryptoCurrency.fractionDigits, - ); - - final sparkBalance = Balance( - total: total, - spendable: spendable, - blockedTotal: Amount( - rawValue: BigInt.zero, - fractionDigits: cryptoCurrency.fractionDigits, - ), - pendingSpendable: total - spendable, - ); - - await info.updateBalanceTertiary( - newBalance: sparkBalance, - isar: mainDB.isar, - ); - } - /// Should only be called within the standard wallet [recover] function due to /// mutex locking. Otherwise behaviour MAY be undefined. Future recoverSparkWallet({ @@ -777,10 +1012,7 @@ mixin SparkInterface } try { - await _checkAndUpdateCoins(); - - // refresh spark balance - await refreshSparkBalance(); + await refreshSparkData(); } catch (e, s) { Logging.instance.log( "$runtimeType $walletId ${info.name}: $e\n$s", @@ -790,115 +1022,6 @@ mixin SparkInterface } } - Future _checkAndUpdateCoins() async { - final sparkAddresses = await mainDB.isar.addresses - .where() - .walletIdEqualTo(walletId) - .filter() - .typeEqualTo(AddressType.spark) - .findAll(); - final root = await getRootHDNode(); - final Set privateKeyHexSet = sparkAddresses - .map( - (e) => root.derivePath(e.derivationPath!.value).privateKey.data.toHex, - ) - .toSet(); - - final Map>> rawCoinsBySetId = {}; - - final groupIdTimestampUTCMap = - info.otherData[WalletInfoKeys.firoSparkCacheSetTimestampCache] - as Map? ?? - {}; - - final latestSparkCoinId = await electrumXClient.getSparkLatestCoinId(); - for (int i = 1; i <= latestSparkCoinId; i++) { - final lastCheckedTimeStampUTC = - groupIdTimestampUTCMap[i.toString()] as int? ?? 0; - final info = await FiroCacheCoordinator.getLatestSetInfoForGroupId( - i, - ); - final anonymitySetResult = - await FiroCacheCoordinator.getSetCoinsForGroupId( - i, - newerThanTimeStamp: lastCheckedTimeStampUTC, - ); - final coinsRaw = anonymitySetResult - .map( - (e) => [ - e.serialized, - e.txHash, - e.context, - ], - ) - .toList(); - - if (coinsRaw.isNotEmpty) { - rawCoinsBySetId[i] = coinsRaw; - } - - groupIdTimestampUTCMap[i.toString()] = max( - lastCheckedTimeStampUTC, - info?.timestampUTC ?? lastCheckedTimeStampUTC, - ); - } - - await info.updateOtherData( - newEntries: { - WalletInfoKeys.firoSparkCacheSetTimestampCache: groupIdTimestampUTCMap, - }, - isar: mainDB.isar, - ); - - final List newlyIdCoins = []; - for (final groupId in rawCoinsBySetId.keys) { - final myCoins = await compute( - _identifyCoins, - ( - anonymitySetCoins: rawCoinsBySetId[groupId]!, - groupId: groupId, - privateKeyHexSet: privateKeyHexSet, - walletId: walletId, - isTestNet: cryptoCurrency.network == CryptoCurrencyNetwork.test, - ), - ); - newlyIdCoins.addAll(myCoins); - } - - await _checkAndMarkCoinsUsedInDB(coinsNotInDbYet: newlyIdCoins); - } - - Future _checkAndMarkCoinsUsedInDB({ - List coinsNotInDbYet = const [], - }) async { - final List coins = await mainDB.isar.sparkCoins - .where() - .walletIdEqualToAnyLTagHash(walletId) - .filter() - .isUsedEqualTo(false) - .findAll(); - - final List coinsToWrite = []; - - final spentCoinTags = await FiroCacheCoordinator.getUsedCoinTags(0); - - for (final coin in coins) { - if (spentCoinTags.contains(coin.lTagHash)) { - coinsToWrite.add(coin.copyWith(isUsed: true)); - } - } - for (final coin in coinsNotInDbYet) { - if (spentCoinTags.contains(coin.lTagHash)) { - coinsToWrite.add(coin.copyWith(isUsed: true)); - } else { - coinsToWrite.add(coin); - } - } - - // update wallet spark coins in isar - await _addOrUpdateSparkCoins(coinsToWrite); - } - // modelled on CSparkWallet::CreateSparkMintTransactions https://github.com/firoorg/firo/blob/39c41e5e7ec634ced3700fe3f4f5509dc2e480d0/src/spark/sparkwallet.cpp#L752 Future> _createSparkMintTransactions({ required List availableUtxos, @@ -1698,37 +1821,6 @@ mixin SparkInterface // ====================== Private ============================================ - Future _addOrUpdateSparkCoins(List coins) async { - if (coins.isNotEmpty) { - await mainDB.isar.writeTxn(() async { - await mainDB.isar.sparkCoins.putAll(coins); - }); - } - - // update wallet spark coin height - final coinsToCheck = await mainDB.isar.sparkCoins - .where() - .walletIdEqualToAnyLTagHash(walletId) - .filter() - .heightIsNull() - .findAll(); - final List updatedCoins = []; - for (final coin in coinsToCheck) { - final tx = await electrumXCachedClient.getTransaction( - txHash: coin.txHash, - cryptoCurrency: info.coin, - ); - if (tx["height"] is int) { - updatedCoins.add(coin.copyWith(height: tx["height"] as int)); - } - } - if (updatedCoins.isNotEmpty) { - await mainDB.isar.writeTxn(() async { - await mainDB.isar.sparkCoins.putAll(updatedCoins); - }); - } - } - btc.NetworkType get _bitcoinDartNetwork => btc.NetworkType( messagePrefix: cryptoCurrency.networkParams.messagePrefix, bech32: cryptoCurrency.networkParams.bech32Hrp, From 46d0023eb55d814084fbc1385ec962fca39a573a Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 14 Jun 2024 19:26:47 -0500 Subject: [PATCH 244/318] enable tor on init it's dumb that we have to do this and we don't if we revert to cypherstack/tor#main and handle the arti bump better (rather than syncing with Foundation-Devices/tor) --- lib/services/tor_service.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/services/tor_service.dart b/lib/services/tor_service.dart index 70c19824e..27597ec27 100644 --- a/lib/services/tor_service.dart +++ b/lib/services/tor_service.dart @@ -50,6 +50,7 @@ class TorService { }) { _tor ??= mockableOverride ?? Tor.instance; _torDataDirPath ??= torDataDirPath; + _tor?.enable(torDataDirPath: torDataDirPath); } /// Start the Tor service. From 91f4b97cd7bd91640203c91bd318b2aad03fd97c Mon Sep 17 00:00:00 2001 From: Julian Date: Tue, 18 Jun 2024 07:46:35 -0600 Subject: [PATCH 245/318] fix plists and convert to xml --- ios/MoneroWallet.framework/Info.plist | Bin 793 -> 1526 bytes ios/WowneroWallet.framework/Info.plist | Bin 793 -> 1529 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/ios/MoneroWallet.framework/Info.plist b/ios/MoneroWallet.framework/Info.plist index 8858589f7070c754a01b0519387f9cab5f664005..de2be3211f8d9a3b7870502df299bc1c588e9cdf 100644 GIT binary patch literal 1526 zcmbVMU6YzH6n(D0g7PjA_M@E+t5XGMoYj?Cu-iU$vT()B29k!L%fD|xv5Mfdeapu^ z_ndq0N$k;kLbWZ3jIi`UH;sX=K^n4%r168k3a0(f`e@j*KRU}v@WXR8PDv&;Z#ACJ zCYs(y=qu+G5OM-X^X4-@&{PhD+$UYrH&XI12<>(|1D8=o$dWQJL!Mw9ge>MNSziH+ zNJhG%*=IkKqfR3d%3<$={RYKwoD&)?aJV5UEd6R{qw+%CXHqEHL+i%1tXmr$wg=#3 zI?mIGf&*Kij3{8ts85{P363Vs2fE?yqH===>6 z@}SbM#?;iRT+j(7af)RwE*M9nQ70znTv0;gQ7qR?B-xP=3xP|&91TOfjhf%mKh1^e zsLFMCe`oY3}JA0I;%kr|Y3l>sPDW5fJ;(FG@{OK5ky>00I$P}`sh zFAHX>CFe%}L)BI2C*$H_If3sy{*yEne@&IyO7dNON*4w&?`~R3uR>cDnRl)=xW&!7 z7bGP~o-F;YvRfX~YNmb?62cTGgcdF4BB_KJ#88=|UY4G#*VgH=eQvka>=}OLL_oCX gm|%`y2_=%i6&qub+@DRSPHLn54{D?8e;xLI1Bbl(yZ`_I literal 793 zcmZXQ&rcIU6vtUcNFuadk3vEj@Mp#?9$l6SH&kckVuTD5sjMYb$}%;&g-9bW<~Q zZM}D^YevHoE&4RdtOSg=OldOi)#x7O!nLX6S7?U`$CO6nT8(<$D3gq+BC&RuLrZ$} z+R}_NCw^OacJCKcO2$~3Si7V{jeR%FrsAx=BRs!9QTILObWRro*A2_G6_4zi(o{?q zoVL)I<%d#;xBpMnSX|G)pjP0MZQfgPRoE`$)H9`YwNRnY1Lo0IxFoaaDsjm+HkkGv_d;rn^AA8S~!N+h|T!EDJ4$U?sLt)zkO#Du`Hc+9O4IFXu{|T z6m>O=!l9n16V9pMWbRJ*6kT;$&Km0Cf>O(<`HZSmsPjavWft<8Otuj>8EeJ*x~|H~ z;Y@>-dtgb|mt@71W-MXL#C189!&_uRSLS@rmMu=4j;xx>;q5B%?4|IRh)DH_w(tcP z)~+X?7WL`geF;lo^fcAg#e7D|57Ahg@<3|vMTAxp}@40(ca5VCku$@&Ul zL^9G9%|82?9CaFzP!4+^>^CTe8Q}Vc}Oh887usr}L z({Y|g6dc$BWjujYzCf(1Zo)yGv_su@2y=;FDKs%Fwo5^<6{Zwq7km~ePO>H-nsC(@ zBP{qvjX~n@&G@@?>6$sJGpYnEif{W7HZ$KFgDyGGIQhRiJS7pw5ET3ZKb@~0yZHPK z6Y?O_uO`(LtBlYICUJ^oE-n~HqfsX&=Uh=jIHB#+KE8)4A~Pu6Dhp7Y#)kRxq6JX!c%Ww*SflX=xj&muozzDAPt-=$7d!0z2C(h@KL7v# literal 793 zcmZXQ&rcIU6vtUcNFuadk3vEj@Mp#?9$l6SH&kckVuTD5sjMYb$}%;&g-9bW<~Q zZM}D^YevHoE&4RdtOSg=OldOi)#x7O!nLX6S7?U`$CO6nT8(<$D3gq+BC&RuLrZ$} z+R}_NCw^OacJCKcO2$~3Si7V{jeR%FrsAx=BRs!9QTILObWRro*A2_G6_4zi(o{?q zoVL)I<%d#;xBpMnSX|G)pjP0MZQfgPRoE`$)H9`YwNRnY1Lo0IxFoaaDsjm+HkkGv_d;rn^AA8S~!N+h|T!EDJ4$U?sLt)zkO#Du`Hc+9O4IFXu{|T z6m>O=!l9n16V9pMWbRJ*6kT;$&Km0Cf>O(<`HZSmsPjavWft<8Otuj>8EeJ*x~|H~ z;Y@>-dtgb|mt@71W-MXL#C189!&_uRSLS@rmMu=4j;xx>;q5B%?4|IRh)DH_w(tcP z)~+X?7WL`geF;lo^fcAg#e7D|5 Date: Tue, 18 Jun 2024 07:48:44 -0600 Subject: [PATCH 246/318] update ios project template file with manually added xmr and wow frameworks --- .../ios/Runner.xcodeproj/project.pbxproj | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj b/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj index fdfcd1bfa..4b521cca2 100644 --- a/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj +++ b/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj @@ -18,8 +18,8 @@ 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; B49D91439948369648AB0603 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51604430FD0FD1FA5C4767A0 /* Pods_Runner.framework */; }; - CE6B5DF12BF26AAA00CF1F44 /* monero_libwallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE6B5DEF2BF26AAA00CF1F44 /* monero_libwallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; - CE6B5DF22BF26AAA00CF1F44 /* wownero_libwallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE6B5DF02BF26AAA00CF1F44 /* wownero_libwallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + CEFE41202C20387E00086DB4 /* WowneroWallet.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE4F88332C202CF4007A8C67 /* WowneroWallet.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CEFE41212C20387E00086DB4 /* MoneroWallet.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE4F88302C202CEE007A8C67 /* MoneroWallet.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -40,8 +40,8 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - CE6B5DF12BF26AAA00CF1F44 /* monero_libwallet2_api_c.dylib in CopyFiles */, - CE6B5DF22BF26AAA00CF1F44 /* wownero_libwallet2_api_c.dylib in CopyFiles */, + CEFE41202C20387E00086DB4 /* WowneroWallet.framework in CopyFiles */, + CEFE41212C20387E00086DB4 /* MoneroWallet.framework in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -75,8 +75,8 @@ 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 = ""; }; B999088F2ABE1E170012A442 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; - CE6B5DEF2BF26AAA00CF1F44 /* monero_libwallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = monero_libwallet2_api_c.dylib; sourceTree = ""; }; - CE6B5DF02BF26AAA00CF1F44 /* wownero_libwallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = wownero_libwallet2_api_c.dylib; sourceTree = ""; }; + CE4F88302C202CEE007A8C67 /* MoneroWallet.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MoneroWallet.framework; sourceTree = ""; }; + CE4F88332C202CF4007A8C67 /* WowneroWallet.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = WowneroWallet.framework; sourceTree = ""; }; E6F536731AC506735EB76340 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -137,8 +137,8 @@ 97C146E51CF9000F007C117D = { isa = PBXGroup; children = ( - CE6B5DEF2BF26AAA00CF1F44 /* monero_libwallet2_api_c.dylib */, - CE6B5DF02BF26AAA00CF1F44 /* wownero_libwallet2_api_c.dylib */, + CE4F88332C202CF4007A8C67 /* WowneroWallet.framework */, + CE4F88302C202CEE007A8C67 /* MoneroWallet.framework */, 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, @@ -192,9 +192,9 @@ 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, + CE6B5DEA2BF26A3300CF1F44 /* CopyFiles */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, FD1CA371131604E6658D4146 /* [CP] Embed Pods Frameworks */, - CE6B5DEA2BF26A3300CF1F44 /* CopyFiles */, ); buildRules = ( ); @@ -341,6 +341,8 @@ "${BUILT_PRODUCTS_DIR}/package_info_plus/package_info_plus.framework", "${BUILT_PRODUCTS_DIR}/path_provider_foundation/path_provider_foundation.framework", "${BUILT_PRODUCTS_DIR}/share_plus/share_plus.framework", + "${BUILT_PRODUCTS_DIR}/sqlite3/sqlite3.framework", + "${BUILT_PRODUCTS_DIR}/sqlite3_flutter_libs/sqlite3_flutter_libs.framework", "${BUILT_PRODUCTS_DIR}/stack_wallet_backup/stack_wallet_backup.framework", "${BUILT_PRODUCTS_DIR}/tor_ffi_plugin/tor_ffi_plugin.framework", "${BUILT_PRODUCTS_DIR}/url_launcher_ios/url_launcher_ios.framework", @@ -374,6 +376,8 @@ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/package_info_plus.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider_foundation.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/share_plus.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3_flutter_libs.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/stack_wallet_backup.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/tor_ffi_plugin.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_ios.framework", @@ -486,6 +490,7 @@ "$(PROJECT_DIR)/Flutter", "$(PROJECT_DIR)/../crypto_plugins/flutter_liblelantus/scripts/ios/mobileliblelantus", "$(PROJECT_DIR)/../crypto_plugins/flutter_libmonero/cw_shared_external/ios/External/ios", + "$(PROJECT_DIR)", ); HEADER_SEARCH_PATHS = ( "$(inherited)", @@ -677,6 +682,7 @@ "$(PROJECT_DIR)/Flutter", "$(PROJECT_DIR)/../crypto_plugins/flutter_liblelantus/scripts/ios/mobileliblelantus", "$(PROJECT_DIR)/../crypto_plugins/flutter_libmonero/cw_shared_external/ios/External/ios/**", + "$(PROJECT_DIR)", ); HEADER_SEARCH_PATHS = ( "$(inherited)", @@ -760,6 +766,7 @@ "$(PROJECT_DIR)/Flutter", "$(PROJECT_DIR)/../crypto_plugins/flutter_liblelantus/scripts/ios/mobileliblelantus/**", "$(PROJECT_DIR)/../crypto_plugins/flutter_libmonero/cw_shared_external/ios/External/ios", + "$(PROJECT_DIR)", ); HEADER_SEARCH_PATHS = ( "$(inherited)", From 6b368e334c911a52beb4e5d3a4b611e627b2a454 Mon Sep 17 00:00:00 2001 From: Julian Date: Tue, 18 Jun 2024 07:49:10 -0600 Subject: [PATCH 247/318] update ref --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index f29b2dced..b954d52b3 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit f29b2dceddc61ec5e97194c393ab7c0e9ba4eb8b +Subproject commit b954d52b32939eeb98a870b80b50d14fd83a65b6 From 1735fc194395489abc85fe19fbdafad82ab89f8f Mon Sep 17 00:00:00 2001 From: Julian Date: Tue, 18 Jun 2024 08:46:24 -0600 Subject: [PATCH 248/318] update ref --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index b954d52b3..adc7bf50a 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit b954d52b32939eeb98a870b80b50d14fd83a65b6 +Subproject commit adc7bf50abe4bbe90d5050b82fb5751937cbae4e From 14ef66990f7181b7be8a62cb60c514d6e6c06fff Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 11 Jun 2024 23:18:21 -0500 Subject: [PATCH 249/318] add basic RBF UI indicator on tx details --- .../tx_v2/transaction_v2_details_view.dart | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart index 2780b4033..0d64a5df1 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart @@ -1779,6 +1779,52 @@ class _TransactionV2DetailsViewState const SizedBox( height: 12, ), + if (whatIsIt( + _transaction, + currentHeight, + ) != + "Sending") + isDesktop + ? const _Divider() + : const SizedBox( + height: 12, + ), + // Show Replace By Fee UI/controls. + if (whatIsIt( + _transaction, + currentHeight, + ) != + "Sending") + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(16) + : const EdgeInsets.all(12), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Boost transaction", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ) + : STextStyles.itemSubtitle( + context, + ), + ), + Text("TODO add RBF dialog."), + ], + ), + ], + ), + ), ], ), ), From 0407a09083f9b54b0da3c075a6ad94ccc8b507c3 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Tue, 11 Jun 2024 23:21:25 -0500 Subject: [PATCH 250/318] move "Boost transaction" button to fee section of tx details vie --- .../tx_v2/transaction_v2_details_view.dart | 68 +++++++------------ 1 file changed, 26 insertions(+), 42 deletions(-) diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart index 0d64a5df1..d542070c2 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart @@ -16,14 +16,13 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; +import 'package:tuple/tuple.dart'; +import 'package:url_launcher/url_launcher.dart'; + import '../../../../models/isar/models/blockchain_data/transaction.dart'; import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../../models/isar/models/ethereum/eth_contract.dart'; import '../../../../notifications/show_flush_bar.dart'; -import '../../sub_widgets/tx_icon.dart'; -import '../dialogs/cancelling_transaction_progress_dialog.dart'; -import '../edit_note_view.dart'; -import '../../wallet_view.dart'; import '../../../../providers/db/main_db_provider.dart'; import '../../../../providers/global/address_book_service_provider.dart'; import '../../../../providers/providers.dart'; @@ -55,8 +54,10 @@ import '../../../../widgets/icon_widgets/copy_icon.dart'; import '../../../../widgets/icon_widgets/pencil_icon.dart'; import '../../../../widgets/rounded_white_container.dart'; import '../../../../widgets/stack_dialog.dart'; -import 'package:tuple/tuple.dart'; -import 'package:url_launcher/url_launcher.dart'; +import '../../sub_widgets/tx_icon.dart'; +import '../../wallet_view.dart'; +import '../dialogs/cancelling_transaction_progress_dialog.dart'; +import '../edit_note_view.dart'; class TransactionV2DetailsView extends ConsumerStatefulWidget { const TransactionV2DetailsView({ @@ -1330,6 +1331,25 @@ class _TransactionV2DetailsViewState context, ), ), + if (whatIsIt( + _transaction, + currentHeight, + ) == + "Sending") + const SizedBox( + height: 8, + ), + if (whatIsIt( + _transaction, + currentHeight, + ) == + "Sending") + CustomTextButton( + text: "Boost transaction", + onTap: () async { + // TODO [prio=high]: Show RBF UI. + }, + ), ], ), if (!isDesktop) @@ -1789,42 +1809,6 @@ class _TransactionV2DetailsViewState : const SizedBox( height: 12, ), - // Show Replace By Fee UI/controls. - if (whatIsIt( - _transaction, - currentHeight, - ) != - "Sending") - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(16) - : const EdgeInsets.all(12), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - "Boost transaction", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ) - : STextStyles.itemSubtitle( - context, - ), - ), - Text("TODO add RBF dialog."), - ], - ), - ], - ), - ), ], ), ), From 6fa1bc75af2aad6bfeb1ec0c1865f3e23088eff4 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 12 Jun 2024 13:16:49 -0500 Subject: [PATCH 251/318] add WIP boost transaction dialog --- .../tx_v2/boost_transaction_view.dart | 2049 +++++++++++++++++ .../tx_v2/transaction_v2_details_view.dart | 37 +- 2 files changed, 2085 insertions(+), 1 deletion(-) create mode 100644 lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart new file mode 100644 index 000000000..4f7c34f9b --- /dev/null +++ b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart @@ -0,0 +1,2049 @@ +/* + * This file is part of Stack Wallet. + * + * Copyright (c) 2023 Cypher Stack + * All Rights Reserved. + * The code is distributed under GPLv3 license, see LICENSE file for details. + * Generated by Cypher Stack on 2023-05-26 + * + */ + +import 'dart:async'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:isar/isar.dart'; +import 'package:url_launcher/url_launcher.dart'; + +import '../../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../../models/isar/models/ethereum/eth_contract.dart'; +import '../../../../notifications/show_flush_bar.dart'; +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../providers/global/address_book_service_provider.dart'; +import '../../../../providers/providers.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/amount/amount.dart'; +import '../../../../utilities/amount/amount_formatter.dart'; +import '../../../../utilities/block_explorers.dart'; +import '../../../../utilities/constants.dart'; +import '../../../../utilities/logger.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../utilities/util.dart'; +import '../../../../wallets/crypto_currency/crypto_currency.dart'; +import '../../../../wallets/crypto_currency/intermediate/nano_currency.dart'; +import '../../../../wallets/isar/models/spark_coin.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../wallets/wallet/impl/epiccash_wallet.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/conditional_parent.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/blue_text_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; +import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/icon_widgets/copy_icon.dart'; +import '../../../../widgets/icon_widgets/pencil_icon.dart'; +import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../sub_widgets/tx_icon.dart'; +import '../../wallet_view.dart'; +import '../dialogs/cancelling_transaction_progress_dialog.dart'; + +class BoostTransactionView extends ConsumerStatefulWidget { + const BoostTransactionView({ + super.key, + required this.transaction, + required this.walletId, + required this.coin, + }); + + static const String routeName = "/boostTransaction"; + + final TransactionV2 transaction; + final String walletId; + final CryptoCurrency coin; + + @override + ConsumerState createState() => + _BoostTransactionViewState(); +} + +class _BoostTransactionViewState extends ConsumerState { + late final bool isDesktop; + late TransactionV2 _transaction; + late final String walletId; + + late final CryptoCurrency coin; + late final Amount amount; + late final Amount fee; + late final String amountPrefix; + late final String unit; + late final int minConfirms; + late final EthContract? ethContract; + + bool get isTokenTx => ethContract != null; + + late final List<({List addresses, Amount amount})> data; + + bool showFeePending = false; + + String? _sparkMemo; + + @override + void initState() { + isDesktop = Util.isDesktop; + _transaction = widget.transaction; + walletId = widget.walletId; + + coin = widget.coin; + + if (_transaction.subType == TransactionSubType.ethToken) { + ethContract = ref + .read(mainDBProvider) + .getEthContractSync(_transaction.contractAddress!); + + unit = ethContract!.symbol; + } else { + ethContract = null; + unit = coin.ticker; + } + + minConfirms = + ref.read(pWallets).getWallet(walletId).cryptoCurrency.minConfirms; + + final fractionDigits = ethContract?.decimals ?? coin.fractionDigits; + + fee = _transaction.getFee(fractionDigits: fractionDigits); + + if (_transaction.subType == TransactionSubType.cashFusion || + _transaction.type == TransactionType.sentToSelf) { + amountPrefix = ""; + } else { + amountPrefix = _transaction.type == TransactionType.outgoing ? "-" : "+"; + } + + if (_transaction.isEpiccashTransaction) { + switch (_transaction.type) { + case TransactionType.outgoing: + case TransactionType.unknown: + amount = _transaction.getAmountSentFromThisWallet( + fractionDigits: fractionDigits, + ); + break; + + case TransactionType.incoming: + case TransactionType.sentToSelf: + amount = _transaction.getAmountReceivedInThisWallet( + fractionDigits: fractionDigits, + ); + break; + } + data = _transaction.outputs + .map( + (e) => ( + addresses: e.addresses, + amount: Amount( + rawValue: e.value, + fractionDigits: coin.fractionDigits, + ) + ), + ) + .toList(); + } else if (_transaction.subType == TransactionSubType.cashFusion) { + amount = _transaction.getAmountReceivedInThisWallet( + fractionDigits: fractionDigits, + ); + data = _transaction.outputs + .where((e) => e.walletOwns) + .map( + (e) => ( + addresses: e.addresses, + amount: Amount( + rawValue: e.value, + fractionDigits: coin.fractionDigits, + ) + ), + ) + .toList(); + } else { + switch (_transaction.type) { + case TransactionType.outgoing: + amount = _transaction.getAmountSentFromThisWallet( + fractionDigits: fractionDigits, + ); + data = _transaction.outputs + .where((e) => !e.walletOwns) + .map( + (e) => ( + addresses: e.addresses, + amount: Amount( + rawValue: e.value, + fractionDigits: coin.fractionDigits, + ) + ), + ) + .toList(); + break; + + case TransactionType.incoming: + case TransactionType.sentToSelf: + if (_transaction.subType == TransactionSubType.sparkMint || + _transaction.subType == TransactionSubType.sparkSpend) { + _sparkMemo = ref + .read(mainDBProvider) + .isar + .sparkCoins + .where() + .walletIdEqualToAnyLTagHash(walletId) + .filter() + .memoIsNotEmpty() + .and() + .heightEqualTo(_transaction.height) + .anyOf( + _transaction.outputs + .where( + (e) => + e.walletOwns && + e.addresses.isEmpty && + e.scriptPubKeyHex.length >= 488, + ) + .map((e) => e.scriptPubKeyHex.substring(2, 488)) + .toList(), + (q, element) => q.serializedCoinB64StartsWith(element), + ) + .memoProperty() + .findFirstSync(); + } + + if (_transaction.subType == TransactionSubType.sparkMint) { + amount = _transaction.getAmountSparkSelfMinted( + fractionDigits: fractionDigits, + ); + } else if (_transaction.subType == TransactionSubType.sparkSpend) { + final changeAddress = + (ref.read(pWallets).getWallet(walletId) as SparkInterface) + .sparkChangeAddress; + amount = Amount( + rawValue: _transaction.outputs + .where( + (e) => e.walletOwns && !e.addresses.contains(changeAddress), + ) + .fold(BigInt.zero, (p, e) => p + e.value), + fractionDigits: coin.fractionDigits, + ); + } else { + amount = _transaction.getAmountReceivedInThisWallet( + fractionDigits: fractionDigits, + ); + } + data = _transaction.outputs + .where((e) => e.walletOwns) + .map( + (e) => ( + addresses: e.addresses, + amount: Amount( + rawValue: e.value, + fractionDigits: coin.fractionDigits, + ) + ), + ) + .toList(); + break; + + case TransactionType.unknown: + amount = _transaction.getAmountSentFromThisWallet( + fractionDigits: fractionDigits, + ); + data = _transaction.inputs + .where((e) => e.walletOwns) + .map( + (e) => ( + addresses: e.addresses, + amount: Amount( + rawValue: e.value, + fractionDigits: coin.fractionDigits, + ) + ), + ) + .toList(); + break; + } + } + + super.initState(); + } + + @override + void dispose() { + super.dispose(); + } + + String whatIsIt(TransactionV2 tx, int height) => tx.statusLabel( + currentChainHeight: height, + minConfirms: minConfirms, + ); + + Future fetchContactNameFor(String address) async { + if (address.isEmpty) { + return address; + } + try { + final contacts = ref.read(addressBookServiceProvider).contacts.where( + (element) => element.addresses + .where((element) => element.address == address) + .isNotEmpty, + ); + if (contacts.isNotEmpty) { + return contacts.first.name; + } else { + return address; + } + } catch (e, s) { + Logging.instance.log("$e\n$s", level: LogLevel.Warning); + return address; + } + } + + Future showExplorerWarning(String explorer) async { + final bool? shouldContinue = await showDialog( + context: context, + barrierDismissible: false, + builder: (_) { + if (!isDesktop) { + return StackDialog( + title: "Attention", + message: + "You are about to view this transaction in a block explorer. The explorer may log your IP address and link it to the transaction. Only proceed if you trust $explorer.", + icon: Row( + children: [ + Consumer( + builder: (_, ref, __) { + return Checkbox( + value: ref.watch( + prefsChangeNotifierProvider + .select((value) => value.hideBlockExplorerWarning), + ), + onChanged: (value) { + if (value is bool) { + ref + .read(prefsChangeNotifierProvider) + .hideBlockExplorerWarning = value; + setState(() {}); + } + }, + ); + }, + ), + Text( + "Never show again", + style: STextStyles.smallMed14(context), + ), + ], + ), + leftButton: TextButton( + onPressed: () { + Navigator.of(context).pop(false); + }, + child: Text( + "Cancel", + style: STextStyles.button(context).copyWith( + color: Theme.of(context) + .extension()! + .accentColorDark, + ), + ), + ), + rightButton: TextButton( + style: Theme.of(context) + .extension()! + .getPrimaryEnabledButtonStyle(context), + onPressed: () { + Navigator.of(context).pop(true); + }, + child: Text( + "Continue", + style: STextStyles.button(context), + ), + ), + ); + } else { + return DesktopDialog( + maxWidth: 550, + maxHeight: 300, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 20), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Attention", + style: STextStyles.desktopH2(context), + ), + Row( + children: [ + Consumer( + builder: (_, ref, __) { + return Checkbox( + value: ref.watch( + prefsChangeNotifierProvider.select( + (value) => value.hideBlockExplorerWarning, + ), + ), + onChanged: (value) { + if (value is bool) { + ref + .read(prefsChangeNotifierProvider) + .hideBlockExplorerWarning = value; + setState(() {}); + } + }, + ); + }, + ), + Text( + "Never show again", + style: STextStyles.smallMed14(context), + ), + ], + ), + ], + ), + const SizedBox(height: 16), + Text( + "You are about to view this transaction in a block explorer. The explorer may log your IP address and link it to the transaction. Only proceed if you trust $explorer.", + style: STextStyles.desktopTextSmall(context), + ), + const SizedBox(height: 35), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SecondaryButton( + width: 200, + buttonHeight: ButtonHeight.l, + label: "Cancel", + onPressed: () { + Navigator.of( + context, + rootNavigator: true, + ).pop(false); + }, + ), + const SizedBox(width: 20), + PrimaryButton( + width: 200, + buttonHeight: ButtonHeight.l, + label: "Continue", + onPressed: () { + Navigator.of( + context, + rootNavigator: true, + ).pop(true); + }, + ), + ], + ), + ], + ), + ), + ); + } + }, + ); + return shouldContinue ?? false; + } + + @override + Widget build(BuildContext context) { + final currentHeight = ref.watch(pWalletChainHeight(walletId)); + + final String outputLabel; + + if (_transaction.subType == TransactionSubType.cashFusion) { + outputLabel = "Outputs"; + } else if (_transaction.type == TransactionType.incoming) { + if (data.length == 1 && data.first.addresses.length == 1) { + outputLabel = "Receiving address"; + } else { + outputLabel = "Receiving addresses"; + } + } else { + outputLabel = "Sent to"; + } + + return ConditionalParent( + condition: !isDesktop, + builder: (child) => Background( + child: child, + ), + child: Scaffold( + backgroundColor: isDesktop + ? Colors.transparent + : Theme.of(context).extension()!.background, + appBar: isDesktop + ? null + : AppBar( + backgroundColor: + Theme.of(context).extension()!.background, + leading: AppBarBackButton( + onPressed: () async { + // if (FocusScope.of(context).hasFocus) { + // FocusScope.of(context).unfocus(); + // await Future.delayed(Duration(milliseconds: 50)); + // } + Navigator.of(context).pop(); + }, + ), + title: Text( + "Boost transaction", + style: STextStyles.navBarTitle(context), + ), + ), + body: Padding( + padding: isDesktop + ? const EdgeInsets.only(left: 32) + : const EdgeInsets.all(12), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + if (isDesktop) + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Boost transaction", + style: STextStyles.desktopH3(context), + ), + const DesktopDialogCloseButton(), + ], + ), + Flexible( + child: Padding( + padding: isDesktop + ? const EdgeInsets.only( + right: 32, + bottom: 32, + ) + : const EdgeInsets.all(0), + child: ConditionalParent( + condition: isDesktop, + builder: (child) { + return RoundedWhiteContainer( + borderColor: isDesktop + ? Theme.of(context) + .extension()! + .backgroundAppBar + : null, + padding: const EdgeInsets.all(0), + child: child, + ); + }, + child: SingleChildScrollView( + primary: isDesktop ? false : null, + child: Padding( + padding: isDesktop + ? const EdgeInsets.all(0) + : const EdgeInsets.all(4), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(0) + : const EdgeInsets.all(12), + child: Container( + decoration: isDesktop + ? BoxDecoration( + color: Theme.of(context) + .extension()! + .backgroundAppBar, + borderRadius: BorderRadius.vertical( + top: Radius.circular( + Constants.size.circularBorderRadius, + ), + ), + ) + : null, + child: Padding( + padding: isDesktop + ? const EdgeInsets.all(12) + : const EdgeInsets.all(0), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + if (isDesktop) + Row( + children: [ + TxIcon( + transaction: _transaction, + currentHeight: currentHeight, + coin: coin, + ), + const SizedBox( + width: 16, + ), + SelectableText( + whatIsIt( + _transaction, + currentHeight, + ), + style: + STextStyles.desktopTextMedium( + context, + ), + ), + ], + ), + Column( + crossAxisAlignment: isDesktop + ? CrossAxisAlignment.end + : CrossAxisAlignment.start, + children: [ + SelectableText( + "$amountPrefix${ref.watch(pAmountFormatter(coin)).format(amount, ethContract: ethContract)}", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension< + StackColors>()! + .textDark, + ) + : STextStyles.titleBold12( + context, + ), + ), + const SizedBox( + height: 2, + ), + if (ref.watch( + prefsChangeNotifierProvider.select( + (value) => value.externalCalls, + ), + )) + SelectableText( + "$amountPrefix${(amount.decimal * ref.watch( + priceAnd24hChangeNotifierProvider + .select( + (value) => value + .getPrice( + coin, + ) + .item1, + ), + )).toAmount(fractionDigits: 2).fiatString( + locale: ref.watch( + localeServiceChangeNotifierProvider + .select( + (value) => value.locale, + ), + ), + )} ${ref.watch( + prefsChangeNotifierProvider + .select( + (value) => value.currency, + ), + )}", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ) + : STextStyles.itemSubtitle( + context, + ), + ), + ], + ), + if (!isDesktop) + TxIcon( + transaction: _transaction, + currentHeight: currentHeight, + coin: coin, + ), + ], + ), + ), + ), + ), + + isDesktop + ? const _Divider() + : const SizedBox( + height: 12, + ), + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(16) + : const EdgeInsets.all(12), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "Status", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall(context) + : STextStyles.itemSubtitle(context), + ), + // Flexible( + // child: FittedBox( + // fit: BoxFit.scaleDown, + // child: + SelectableText( + whatIsIt( + _transaction, + currentHeight, + ), + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: _transaction.type == + TransactionType + .outgoing && + _transaction.subType != + TransactionSubType + .cashFusion + ? Theme.of(context) + .extension()! + .accentColorOrange + : Theme.of(context) + .extension()! + .accentColorGreen, + ) + : STextStyles.itemSubtitle12(context), + ), + // ), + // ), + ], + ), + ), + if (!((coin is Monero || coin is Wownero) && + _transaction.type == + TransactionType.outgoing) && + !((coin is Firo) && + _transaction.subType == + TransactionSubType.mint)) + isDesktop + ? const _Divider() + : const SizedBox( + height: 12, + ), + if (!((coin is Monero || coin is Wownero) && + _transaction.type == + TransactionType.outgoing) && + !((coin is Firo) && + _transaction.subType == + TransactionSubType.mint)) + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(16) + : const EdgeInsets.all(12), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + ConditionalParent( + condition: kDebugMode, + builder: (child) { + return Row( + mainAxisAlignment: + MainAxisAlignment + .spaceBetween, + children: [ + child, + // CustomTextButton( + // text: "Info", + // onTap: () async { + // final adr = await ref + // .read(mainDBProvider) + // .getAddress(walletId, + // addresses.first); + // if (adr != null && + // mounted) { + // if (isDesktop) { + // await showDialog< + // void>( + // context: context, + // builder: (_) => + // DesktopDialog( + // maxHeight: double + // .infinity, + // child: + // AddressDetailsView( + // addressId: + // adr.id, + // walletId: widget + // .walletId, + // ), + // ), + // ); + // } else { + // await Navigator.of( + // context) + // .pushNamed( + // AddressDetailsView + // .routeName, + // arguments: Tuple2( + // adr.id, + // widget.walletId, + // ), + // ); + // } + // } + // }, + // ) + ], + ); + }, + child: Text( + outputLabel, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ) + : STextStyles.itemSubtitle( + context, + ), + ), + ), + const SizedBox( + height: 8, + ), + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + if (data.length == 1 && + data.first.addresses.length == + 1) + FutureBuilder( + future: fetchContactNameFor( + data.first.addresses.first, + ), + builder: ( + builderContext, + AsyncSnapshot + snapshot, + ) { + String + addressOrContactName = + data.first.addresses + .first; + if (snapshot.connectionState == + ConnectionState + .done && + snapshot.hasData) { + addressOrContactName = + snapshot.data!; + } + return SelectableText( + addressOrContactName, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of( + context, + ) + .extension< + StackColors>()! + .textDark, + ) + : STextStyles + .itemSubtitle12( + context, + ), + ); + }, + ) + else + for (int i = 0; + i < data.length; + i++) + ConditionalParent( + condition: i > 0, + builder: (child) => Column( + crossAxisAlignment: + CrossAxisAlignment + .stretch, + children: [ + const _Divider(), + child, + ], + ), + child: Padding( + padding: + const EdgeInsets.all( + 8.0, + ), + child: Column( + crossAxisAlignment: + CrossAxisAlignment + .start, + children: [ + ...data[i] + .addresses + .map( + (e) { + return FutureBuilder( + future: + fetchContactNameFor( + e, + ), + builder: ( + builderContext, + AsyncSnapshot< + String> + snapshot, + ) { + final String + addressOrContactName; + if (snapshot.connectionState == + ConnectionState + .done && + snapshot + .hasData) { + addressOrContactName = + snapshot + .data!; + } else { + addressOrContactName = + e; + } + + return OutputCard( + address: + addressOrContactName, + amount: data[ + i] + .amount, + coin: coin, + ); + }, + ); + }, + ), + ], + ), + ), + ), + ], + ), + ], + ), + ), + // if (isDesktop) + // IconCopyButton( + // data: addresses.first, + // ), + ], + ), + ), + if (coin is Epiccash) + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(16) + : const EdgeInsets.all(12), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "On chain note", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ) + : STextStyles.itemSubtitle( + context, + ), + ), + const SizedBox( + height: 8, + ), + SelectableText( + _transaction.onChainNote ?? "", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension< + StackColors>()! + .textDark, + ) + : STextStyles.itemSubtitle12( + context, + ), + ), + ], + ), + ), + if (isDesktop) + IconCopyButton( + data: _transaction.onChainNote ?? "", + ), + ], + ), + ), + // isDesktop + // ? const _Divider() + // : const SizedBox( + // height: 12, + // ), + // RoundedWhiteContainer( + // padding: isDesktop + // ? const EdgeInsets.all(16) + // : const EdgeInsets.all(12), + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Row( + // mainAxisAlignment: + // MainAxisAlignment.spaceBetween, + // children: [ + // Text( + // (coin is Epiccash) + // ? "Local Note" + // : "Note ", + // style: isDesktop + // ? STextStyles + // .desktopTextExtraExtraSmall( + // context, + // ) + // : STextStyles.itemSubtitle(context), + // ), + // isDesktop + // ? IconPencilButton( + // onPressed: () { + // showDialog( + // context: context, + // builder: (context) { + // return DesktopDialog( + // maxWidth: 580, + // maxHeight: 360, + // child: EditNoteView( + // txid: _transaction.txid, + // walletId: walletId, + // ), + // ); + // }, + // ); + // }, + // ) + // : GestureDetector( + // onTap: () { + // Navigator.of(context).pushNamed( + // EditNoteView.routeName, + // arguments: Tuple2( + // _transaction.txid, + // walletId, + // ), + // ); + // }, + // child: Row( + // children: [ + // SvgPicture.asset( + // Assets.svg.pencil, + // width: 10, + // height: 10, + // color: Theme.of(context) + // .extension< + // StackColors>()! + // .infoItemIcons, + // ), + // const SizedBox( + // width: 4, + // ), + // Text( + // "Edit", + // style: STextStyles.link2( + // context, + // ), + // ), + // ], + // ), + // ), + // ], + // ), + // const SizedBox( + // height: 8, + // ), + // SelectableText( + // ref + // .watch( + // pTransactionNote( + // ( + // txid: (coin is Epiccash) + // ? _transaction.slateId + // .toString() + // : _transaction.txid, + // walletId: walletId + // ), + // ), + // ) + // ?.value ?? + // "", + // style: isDesktop + // ? STextStyles + // .desktopTextExtraExtraSmall( + // context, + // ).copyWith( + // color: Theme.of(context) + // .extension()! + // .textDark, + // ) + // : STextStyles.itemSubtitle12(context), + // ), + // ], + // ), + // ), + if (_sparkMemo != null) + isDesktop + ? const _Divider() + : const SizedBox( + height: 12, + ), + if (_sparkMemo != null) + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(16) + : const EdgeInsets.all(12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text( + "Memo", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ) + : STextStyles.itemSubtitle( + context, + ), + ), + ], + ), + const SizedBox( + height: 8, + ), + SelectableText( + _sparkMemo!, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textDark, + ) + : STextStyles.itemSubtitle12(context), + ), + ], + ), + ), + // isDesktop + // ? const _Divider() + // : const SizedBox( + // height: 12, + // ), + // RoundedWhiteContainer( + // padding: isDesktop + // ? const EdgeInsets.all(16) + // : const EdgeInsets.all(12), + // child: Row( + // mainAxisAlignment: + // MainAxisAlignment.spaceBetween, + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Column( + // crossAxisAlignment: + // CrossAxisAlignment.start, + // children: [ + // Text( + // "Date", + // style: isDesktop + // ? STextStyles + // .desktopTextExtraExtraSmall( + // context, + // ) + // : STextStyles.itemSubtitle(context), + // ), + // if (isDesktop) + // const SizedBox( + // height: 2, + // ), + // if (isDesktop) + // SelectableText( + // Format.extractDateFrom( + // _transaction.timestamp, + // ), + // style: isDesktop + // ? STextStyles + // .desktopTextExtraExtraSmall( + // context, + // ).copyWith( + // color: Theme.of(context) + // .extension()! + // .textDark, + // ) + // : STextStyles.itemSubtitle12( + // context, + // ), + // ), + // ], + // ), + // if (!isDesktop) + // SelectableText( + // Format.extractDateFrom( + // _transaction.timestamp, + // ), + // style: isDesktop + // ? STextStyles + // .desktopTextExtraExtraSmall( + // context, + // ).copyWith( + // color: Theme.of(context) + // .extension()! + // .textDark, + // ) + // : STextStyles.itemSubtitle12(context), + // ), + // if (isDesktop) + // IconCopyButton( + // data: Format.extractDateFrom( + // _transaction.timestamp, + // ), + // ), + // ], + // ), + // ), + if (coin is! NanoCurrency) + isDesktop + ? const _Divider() + : const SizedBox( + height: 12, + ), + if (coin is! NanoCurrency) + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(16) + : const EdgeInsets.all(12), + child: Builder( + builder: (context) { + final String feeString = showFeePending + ? _transaction.isConfirmed( + currentHeight, + minConfirms, + ) + ? ref + .watch(pAmountFormatter(coin)) + .format( + fee, + ) + : "Pending" + : ref + .watch(pAmountFormatter(coin)) + .format( + fee, + ); + + return Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Transaction fee", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ) + : STextStyles.itemSubtitle( + context, + ), + ), + if (isDesktop) + const SizedBox( + height: 2, + ), + if (isDesktop) + SelectableText( + feeString, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension< + StackColors>()! + .textDark, + ) + : STextStyles + .itemSubtitle12( + context, + ), + ), + // TODO [prio=high]: Boost tx fee UI. + ], + ), + if (!isDesktop) + SelectableText( + feeString, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension< + StackColors>()! + .textDark, + ) + : STextStyles.itemSubtitle12( + context, + ), + ), + if (isDesktop) + IconCopyButton(data: feeString), + ], + ); + }, + ), + ), + // isDesktop + // ? const _Divider() + // : const SizedBox( + // height: 12, + // ), + // RoundedWhiteContainer( + // padding: isDesktop + // ? const EdgeInsets.all(16) + // : const EdgeInsets.all(12), + // child: Builder( + // builder: (context) { + // final String height; + // + // if (widget.coin is Bitcoincash || + // widget.coin is Ecash) { + // height = + // "${_transaction.height != null && _transaction.height! > 0 ? _transaction.height! : "Pending"}"; + // } else { + // height = widget.coin is! Epiccash && + // _transaction.isConfirmed( + // currentHeight, + // minConfirms, + // ) + // ? "${_transaction.height == 0 ? "Unknown" : _transaction.height}" + // : _transaction.getConfirmations( + // currentHeight, + // ) > + // 0 + // ? "${_transaction.height}" + // : "Pending"; + // } + // + // return Row( + // mainAxisAlignment: + // MainAxisAlignment.spaceBetween, + // crossAxisAlignment: + // CrossAxisAlignment.start, + // children: [ + // Column( + // crossAxisAlignment: + // CrossAxisAlignment.start, + // children: [ + // Text( + // "Block height", + // style: isDesktop + // ? STextStyles + // .desktopTextExtraExtraSmall( + // context, + // ) + // : STextStyles.itemSubtitle( + // context, + // ), + // ), + // if (isDesktop) + // const SizedBox( + // height: 2, + // ), + // if (isDesktop) + // SelectableText( + // height, + // style: isDesktop + // ? STextStyles + // .desktopTextExtraExtraSmall( + // context, + // ).copyWith( + // color: Theme.of(context) + // .extension< + // StackColors>()! + // .textDark, + // ) + // : STextStyles.itemSubtitle12( + // context, + // ), + // ), + // ], + // ), + // if (!isDesktop) + // SelectableText( + // height, + // style: isDesktop + // ? STextStyles + // .desktopTextExtraExtraSmall( + // context, + // ).copyWith( + // color: Theme.of(context) + // .extension()! + // .textDark, + // ) + // : STextStyles.itemSubtitle12( + // context, + // ), + // ), + // if (isDesktop) + // IconCopyButton(data: height), + // ], + // ); + // }, + // ), + // ), + + // if (kDebugMode) + // isDesktop + // ? const _Divider() + // : const SizedBox( + // height: 12, + // ), + // if (kDebugMode) + // RoundedWhiteContainer( + // padding: isDesktop + // ? const EdgeInsets.all(16) + // : const EdgeInsets.all(12), + // child: Row( + // crossAxisAlignment: CrossAxisAlignment.start, + // mainAxisAlignment: + // MainAxisAlignment.spaceBetween, + // children: [ + // Text( + // "Tx sub type", + // style: isDesktop + // ? STextStyles + // .desktopTextExtraExtraSmall( + // context, + // ) + // : STextStyles.itemSubtitle(context), + // ), + // SelectableText( + // _transaction.subType.toString(), + // style: isDesktop + // ? STextStyles + // .desktopTextExtraExtraSmall( + // context, + // ).copyWith( + // color: Theme.of(context) + // .extension()! + // .textDark, + // ) + // : STextStyles.itemSubtitle12(context), + // ), + // ], + // ), + // ), + isDesktop + ? const _Divider() + : const SizedBox( + height: 12, + ), + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(16) + : const EdgeInsets.all(12), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Transaction ID", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ) + : STextStyles.itemSubtitle( + context, + ), + ), + const SizedBox( + height: 8, + ), + // Flexible( + // child: FittedBox( + // fit: BoxFit.scaleDown, + // child: + SelectableText( + _transaction.txid, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textDark, + ) + : STextStyles.itemSubtitle12( + context, + ), + ), + if (coin is! Epiccash) + const SizedBox( + height: 8, + ), + if (coin is! Epiccash) + CustomTextButton( + text: "Open in block explorer", + onTap: () async { + final uri = + getBlockExplorerTransactionUrlFor( + coin: coin, + txid: _transaction.txid, + ); + + if (ref + .read( + prefsChangeNotifierProvider, + ) + .hideBlockExplorerWarning == + false) { + final shouldContinue = + await showExplorerWarning( + "${uri.scheme}://${uri.host}", + ); + + if (!shouldContinue) { + return; + } + } + + // ref + // .read( + // shouldShowLockscreenOnResumeStateProvider + // .state) + // .state = false; + try { + await launchUrl( + uri, + mode: LaunchMode + .externalApplication, + ); + } catch (_) { + if (mounted) { + unawaited( + showDialog( + context: context, + builder: (_) => + StackOkDialog( + title: + "Could not open in block explorer", + message: + "Failed to open \"${uri.toString()}\"", + ), + ), + ); + } + } finally { + // Future.delayed( + // const Duration(seconds: 1), + // () => ref + // .read( + // shouldShowLockscreenOnResumeStateProvider + // .state) + // .state = true, + // ); + } + }, + ), + // ), + // ), + ], + ), + ), + if (isDesktop) + const SizedBox( + width: 12, + ), + if (isDesktop) + IconCopyButton( + data: _transaction.txid, + ), + ], + ), + ), + // if ((coin is FiroTestNet || coin is Firo) && + // _transaction.subType == "mint") + // const SizedBox( + // height: 12, + // ), + // if ((coin is FiroTestNet || coin is Firo) && + // _transaction.subType == "mint") + // RoundedWhiteContainer( + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Row( + // mainAxisAlignment: MainAxisAlignment.spaceBetween, + // children: [ + // Text( + // "Mint Transaction ID", + // style: STextStyles.itemSubtitle(context), + // ), + // ], + // ), + // const SizedBox( + // height: 8, + // ), + // // Flexible( + // // child: FittedBox( + // // fit: BoxFit.scaleDown, + // // child: + // SelectableText( + // _transaction.otherData ?? "Unknown", + // style: STextStyles.itemSubtitle12(context), + // ), + // // ), + // // ), + // const SizedBox( + // height: 8, + // ), + // BlueTextButton( + // text: "Open in block explorer", + // onTap: () async { + // final uri = getBlockExplorerTransactionUrlFor( + // coin: coin, + // txid: _transaction.otherData ?? "Unknown", + // ); + // // ref + // // .read( + // // shouldShowLockscreenOnResumeStateProvider + // // .state) + // // .state = false; + // try { + // await launchUrl( + // uri, + // mode: LaunchMode.externalApplication, + // ); + // } catch (_) { + // unawaited(showDialog( + // context: context, + // builder: (_) => StackOkDialog( + // title: "Could not open in block explorer", + // message: + // "Failed to open \"${uri.toString()}\"", + // ), + // )); + // } finally { + // // Future.delayed( + // // const Duration(seconds: 1), + // // () => ref + // // .read( + // // shouldShowLockscreenOnResumeStateProvider + // // .state) + // // .state = true, + // // ); + // } + // }, + // ), + // ], + // ), + // ), + if (coin is Epiccash) + isDesktop + ? const _Divider() + : const SizedBox( + height: 12, + ), + if (coin is Epiccash) + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(16) + : const EdgeInsets.all(12), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Slate ID", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ) + : STextStyles.itemSubtitle( + context, + ), + ), + // Flexible( + // child: FittedBox( + // fit: BoxFit.scaleDown, + // child: + SelectableText( + _transaction.slateId ?? "Unknown", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textDark, + ) + : STextStyles.itemSubtitle12( + context, + ), + ), + // ), + // ), + ], + ), + if (isDesktop) + const SizedBox( + width: 12, + ), + if (isDesktop) + IconCopyButton( + data: _transaction.slateId ?? "Unknown", + ), + ], + ), + ), + if (!isDesktop) + const SizedBox( + height: 12, + ), + if (whatIsIt( + _transaction, + currentHeight, + ) != + "Sending") + isDesktop + ? const _Divider() + : const SizedBox( + height: 12, + ), + ], + ), + ), + ), + ), + ), + ), + ], + ), + ), + floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat, + floatingActionButton: (coin is Epiccash && + _transaction.getConfirmations(currentHeight) < 1 && + _transaction.isCancelled == false) + ? ConditionalParent( + condition: isDesktop, + builder: (child) => Padding( + padding: const EdgeInsets.symmetric( + horizontal: 32, + vertical: 16, + ), + child: child, + ), + child: SizedBox( + width: MediaQuery.of(context).size.width - 32, + child: TextButton( + style: ButtonStyle( + backgroundColor: MaterialStateProperty.all( + Theme.of(context).extension()!.textError, + ), + ), + onPressed: () async { + final wallet = ref.read(pWallets).getWallet(walletId); + + if (wallet is EpiccashWallet) { + final String? id = _transaction.slateId; + if (id == null) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Could not find Epic transaction ID", + context: context, + ), + ); + return; + } + + unawaited( + showDialog( + barrierDismissible: false, + context: context, + builder: (_) => + const CancellingTransactionProgressDialog(), + ), + ); + + final result = + await wallet.cancelPendingTransactionAndPost(id); + if (mounted) { + // pop progress dialog + Navigator.of(context).pop(); + + if (result.isEmpty) { + await showDialog( + context: context, + builder: (_) => StackOkDialog( + title: "Transaction cancelled", + onOkPressed: (_) { + wallet.refresh(); + Navigator.of(context).popUntil( + ModalRoute.withName( + WalletView.routeName, + ), + ); + }, + ), + ); + } else { + await showDialog( + context: context, + builder: (_) => StackOkDialog( + title: "Failed to cancel transaction", + message: result, + ), + ); + } + } + } else { + unawaited( + showFloatingFlushBar( + type: FlushBarType.warning, + message: "ERROR: Wallet type is not Epic Cash", + context: context, + ), + ); + return; + } + }, + child: Text( + "Cancel Transaction", + style: STextStyles.button(context), + ), + ), + ), + ) + : null, + ), + ); + } +} + +class OutputCard extends ConsumerWidget { + const OutputCard({ + super.key, + required this.address, + required this.amount, + required this.coin, + }); + + final String address; + final Amount amount; + final CryptoCurrency coin; + + @override + Widget build(BuildContext context, WidgetRef ref) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Address", + style: Util.isDesktop + ? STextStyles.desktopTextExtraExtraSmall(context) + : STextStyles.itemSubtitle(context), + ), + SelectableText( + address, + style: Util.isDesktop + ? STextStyles.desktopTextExtraExtraSmall(context).copyWith( + color: Theme.of(context).extension()!.textDark, + ) + : STextStyles.itemSubtitle12(context), + ), + const SizedBox( + height: 10, + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Amount", + style: Util.isDesktop + ? STextStyles.desktopTextExtraExtraSmall(context) + : STextStyles.itemSubtitle(context), + ), + SelectableText( + ref.watch(pAmountFormatter(coin)).format(amount), + style: Util.isDesktop + ? STextStyles.desktopTextExtraExtraSmall(context).copyWith( + color: + Theme.of(context).extension()!.textDark, + ) + : STextStyles.itemSubtitle12(context), + ), + ], + ), + ], + ); + } +} + +class _Divider extends StatelessWidget { + const _Divider({super.key}); + + @override + Widget build(BuildContext context) { + return Container( + height: 1, + color: Theme.of(context).extension()!.backgroundAppBar, + ); + } +} + +class IconCopyButton extends StatelessWidget { + const IconCopyButton({ + super.key, + required this.data, + }); + + final String data; + + @override + Widget build(BuildContext context) { + return SizedBox( + height: 26, + width: 26, + child: RawMaterialButton( + fillColor: + Theme.of(context).extension()!.buttonBackSecondary, + elevation: 0, + hoverElevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(6), + ), + onPressed: () async { + await Clipboard.setData(ClipboardData(text: data)); + if (context.mounted) { + unawaited( + showFloatingFlushBar( + type: FlushBarType.info, + message: "Copied to clipboard", + context: context, + ), + ); + } + }, + child: Padding( + padding: const EdgeInsets.all(5), + child: CopyIcon( + width: 16, + height: 16, + color: Theme.of(context).extension()!.textDark, + ), + ), + ), + ); + } +} + +class IconPencilButton extends StatelessWidget { + const IconPencilButton({ + super.key, + this.onPressed, + }); + + final VoidCallback? onPressed; + + @override + Widget build(BuildContext context) { + return SizedBox( + height: 26, + width: 26, + child: RawMaterialButton( + fillColor: + Theme.of(context).extension()!.buttonBackSecondary, + elevation: 0, + hoverElevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(6), + ), + onPressed: () => onPressed?.call(), + child: Padding( + padding: const EdgeInsets.all(5), + child: PencilIcon( + width: 16, + height: 16, + color: Theme.of(context).extension()!.textDark, + ), + ), + ), + ); + } +} diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart index d542070c2..e700d967b 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart @@ -58,6 +58,7 @@ import '../../sub_widgets/tx_icon.dart'; import '../../wallet_view.dart'; import '../dialogs/cancelling_transaction_progress_dialog.dart'; import '../edit_note_view.dart'; +import 'boost_transaction_view.dart'; class TransactionV2DetailsView extends ConsumerStatefulWidget { const TransactionV2DetailsView({ @@ -1347,7 +1348,41 @@ class _TransactionV2DetailsViewState CustomTextButton( text: "Boost transaction", onTap: () async { - // TODO [prio=high]: Show RBF UI. + if (Util.isDesktop) { + await showDialog( + context: context, + builder: (context) => + DesktopDialog( + maxHeight: + MediaQuery.of( + context) + .size + .height - + 64, + maxWidth: 580, + child: + BoostTransactionView( + transaction: + _transaction, + coin: coin, + walletId: walletId, + ), + ), + ); + } else { + unawaited( + Navigator.of(context) + .pushNamed( + BoostTransactionView + .routeName, + arguments: ( + tx: _transaction, + coin: coin, + walletId: walletId, + ), + ), + ); + } }, ), ], From f2ca700a9fdd60750294860e41a9a87173e978c5 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 12 Jun 2024 14:23:04 -0500 Subject: [PATCH 252/318] WIP boost fee slider --- .../tx_v2/boost_transaction_view.dart | 379 +++++++++--------- lib/widgets/boost_fee_slider.dart | 122 ++++++ 2 files changed, 322 insertions(+), 179 deletions(-) create mode 100644 lib/widgets/boost_fee_slider.dart diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart index 4f7c34f9b..4a4f40504 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart @@ -15,7 +15,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:url_launcher/url_launcher.dart'; import '../../../../models/isar/models/blockchain_data/transaction.dart'; import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; @@ -27,7 +26,6 @@ import '../../../../providers/providers.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/amount/amount.dart'; import '../../../../utilities/amount/amount_formatter.dart'; -import '../../../../utilities/block_explorers.dart'; import '../../../../utilities/constants.dart'; import '../../../../utilities/logger.dart'; import '../../../../utilities/text_styles.dart'; @@ -39,9 +37,9 @@ import '../../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../../wallets/wallet/impl/epiccash_wallet.dart'; import '../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; import '../../../../widgets/background.dart'; +import '../../../../widgets/boost_fee_slider.dart'; import '../../../../widgets/conditional_parent.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; -import '../../../../widgets/custom_buttons/blue_text_button.dart'; import '../../../../widgets/desktop/desktop_dialog.dart'; import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../../widgets/desktop/primary_button.dart'; @@ -94,6 +92,8 @@ class _BoostTransactionViewState extends ConsumerState { String? _sparkMemo; + BigInt customFee = BigInt.one; + @override void initState() { isDesktop = Util.isDesktop; @@ -1282,32 +1282,56 @@ class _BoostTransactionViewState extends ConsumerState { fee, ); - return Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: - CrossAxisAlignment.start, + return Column( children: [ - Column( + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - "Transaction fee", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ) - : STextStyles.itemSubtitle( - context, - ), + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Transaction fee", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ) + : STextStyles + .itemSubtitle( + context, + ), + ), + if (isDesktop) + const SizedBox( + height: 2, + ), + if (isDesktop) + SelectableText( + feeString, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of( + context) + .extension< + StackColors>()! + .textDark, + ) + : STextStyles + .itemSubtitle12( + context, + ), + ), + ], ), - if (isDesktop) - const SizedBox( - height: 2, - ), - if (isDesktop) + if (!isDesktop) SelectableText( feeString, style: isDesktop @@ -1325,28 +1349,25 @@ class _BoostTransactionViewState extends ConsumerState { context, ), ), - // TODO [prio=high]: Boost tx fee UI. + // if (isDesktop) + // IconCopyButton(data: feeString), ], ), - if (!isDesktop) - SelectableText( - feeString, - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of(context) - .extension< - StackColors>()! - .textDark, - ) - : STextStyles.itemSubtitle12( - context, - ), + Padding( + padding: const EdgeInsets.only( + bottom: 12, + top: 16, ), - if (isDesktop) - IconCopyButton(data: feeString), + child: BoostFeeSlider( + coin: coin, + onFeeChanged: (fee) { + customFee = fee; + }, + min: fee.raw, + max: fee.raw * BigInt.from(4), + // TODO [prio=med]: The max fee should be set to an absurd fee. + ), + ) ], ); }, @@ -1493,142 +1514,142 @@ class _BoostTransactionViewState extends ConsumerState { // ], // ), // ), - isDesktop - ? const _Divider() - : const SizedBox( - height: 12, - ), - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(16) - : const EdgeInsets.all(12), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - "Transaction ID", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ) - : STextStyles.itemSubtitle( - context, - ), - ), - const SizedBox( - height: 8, - ), - // Flexible( - // child: FittedBox( - // fit: BoxFit.scaleDown, - // child: - SelectableText( - _transaction.txid, - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of(context) - .extension()! - .textDark, - ) - : STextStyles.itemSubtitle12( - context, - ), - ), - if (coin is! Epiccash) - const SizedBox( - height: 8, - ), - if (coin is! Epiccash) - CustomTextButton( - text: "Open in block explorer", - onTap: () async { - final uri = - getBlockExplorerTransactionUrlFor( - coin: coin, - txid: _transaction.txid, - ); - - if (ref - .read( - prefsChangeNotifierProvider, - ) - .hideBlockExplorerWarning == - false) { - final shouldContinue = - await showExplorerWarning( - "${uri.scheme}://${uri.host}", - ); - - if (!shouldContinue) { - return; - } - } - - // ref - // .read( - // shouldShowLockscreenOnResumeStateProvider - // .state) - // .state = false; - try { - await launchUrl( - uri, - mode: LaunchMode - .externalApplication, - ); - } catch (_) { - if (mounted) { - unawaited( - showDialog( - context: context, - builder: (_) => - StackOkDialog( - title: - "Could not open in block explorer", - message: - "Failed to open \"${uri.toString()}\"", - ), - ), - ); - } - } finally { - // Future.delayed( - // const Duration(seconds: 1), - // () => ref - // .read( - // shouldShowLockscreenOnResumeStateProvider - // .state) - // .state = true, - // ); - } - }, - ), - // ), - // ), - ], - ), - ), - if (isDesktop) - const SizedBox( - width: 12, - ), - if (isDesktop) - IconCopyButton( - data: _transaction.txid, - ), - ], - ), - ), + // isDesktop + // ? const _Divider() + // : const SizedBox( + // height: 12, + // ), + // RoundedWhiteContainer( + // padding: isDesktop + // ? const EdgeInsets.all(16) + // : const EdgeInsets.all(12), + // child: Row( + // crossAxisAlignment: CrossAxisAlignment.start, + // mainAxisAlignment: + // MainAxisAlignment.spaceBetween, + // children: [ + // Expanded( + // child: Column( + // crossAxisAlignment: + // CrossAxisAlignment.start, + // children: [ + // Text( + // "Transaction ID", + // style: isDesktop + // ? STextStyles + // .desktopTextExtraExtraSmall( + // context, + // ) + // : STextStyles.itemSubtitle( + // context, + // ), + // ), + // const SizedBox( + // height: 8, + // ), + // // Flexible( + // // child: FittedBox( + // // fit: BoxFit.scaleDown, + // // child: + // SelectableText( + // _transaction.txid, + // style: isDesktop + // ? STextStyles + // .desktopTextExtraExtraSmall( + // context, + // ).copyWith( + // color: Theme.of(context) + // .extension()! + // .textDark, + // ) + // : STextStyles.itemSubtitle12( + // context, + // ), + // ), + // if (coin is! Epiccash) + // const SizedBox( + // height: 8, + // ), + // if (coin is! Epiccash) + // CustomTextButton( + // text: "Open in block explorer", + // onTap: () async { + // final uri = + // getBlockExplorerTransactionUrlFor( + // coin: coin, + // txid: _transaction.txid, + // ); + // + // if (ref + // .read( + // prefsChangeNotifierProvider, + // ) + // .hideBlockExplorerWarning == + // false) { + // final shouldContinue = + // await showExplorerWarning( + // "${uri.scheme}://${uri.host}", + // ); + // + // if (!shouldContinue) { + // return; + // } + // } + // + // // ref + // // .read( + // // shouldShowLockscreenOnResumeStateProvider + // // .state) + // // .state = false; + // try { + // await launchUrl( + // uri, + // mode: LaunchMode + // .externalApplication, + // ); + // } catch (_) { + // if (mounted) { + // unawaited( + // showDialog( + // context: context, + // builder: (_) => + // StackOkDialog( + // title: + // "Could not open in block explorer", + // message: + // "Failed to open \"${uri.toString()}\"", + // ), + // ), + // ); + // } + // } finally { + // // Future.delayed( + // // const Duration(seconds: 1), + // // () => ref + // // .read( + // // shouldShowLockscreenOnResumeStateProvider + // // .state) + // // .state = true, + // // ); + // } + // }, + // ), + // // ), + // // ), + // ], + // ), + // ), + // if (isDesktop) + // const SizedBox( + // width: 12, + // ), + // if (isDesktop) + // IconCopyButton( + // data: _transaction.txid, + // ), + // ], + // ), + // ), // if ((coin is FiroTestNet || coin is Firo) && // _transaction.subType == "mint") // const SizedBox( diff --git a/lib/widgets/boost_fee_slider.dart b/lib/widgets/boost_fee_slider.dart new file mode 100644 index 000000000..2d5f7dd65 --- /dev/null +++ b/lib/widgets/boost_fee_slider.dart @@ -0,0 +1,122 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; + +import '../utilities/amount/amount.dart'; +import '../utilities/amount/amount_formatter.dart'; +import '../wallets/crypto_currency/crypto_currency.dart'; // Update with your actual path + +class BoostFeeSlider extends ConsumerStatefulWidget { + final CryptoCurrency coin; + final Function(BigInt) onFeeChanged; + final BigInt min; + final BigInt max; + + BoostFeeSlider({ + required this.coin, + required this.onFeeChanged, + required this.min, + required this.max, + }); + + @override + _BoostFeeSliderState createState() => _BoostFeeSliderState(); +} + +class _BoostFeeSliderState extends ConsumerState { + double _currentSliderValue = 0; + late TextEditingController _textEditingController; + + @override + void initState() { + super.initState(); + _currentSliderValue = widget.min.toDouble(); + _textEditingController = TextEditingController( + text: ref.read(pAmountFormatter(widget.coin)).format( + Amount( + rawValue: BigInt.from(_currentSliderValue), + fractionDigits: widget.coin.fractionDigits), + withUnitName: false, + ), + ); + _textEditingController.addListener(() { + BigInt? value = + BigInt.tryParse(_textEditingController.text.replaceAll(',', '')); + if (value != null && value >= widget.min && value <= widget.max) { + setState(() { + _currentSliderValue = value.toDouble(); + widget.onFeeChanged(value); + }); + } + }); + } + + @override + void dispose() { + _textEditingController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + Row( + children: [ + Expanded( + child: Slider( + value: _currentSliderValue, + min: widget.min.toDouble(), + max: widget.max.toDouble(), + divisions: (widget.max - widget.min).toInt(), + label: ref.read(pAmountFormatter(widget.coin)).format(Amount( + rawValue: BigInt.from(_currentSliderValue), + fractionDigits: widget.coin.fractionDigits)), + onChanged: (value) { + setState(() { + _currentSliderValue = value; + _textEditingController.text = ref + .read(pAmountFormatter(widget.coin)) + .format(Amount( + rawValue: BigInt.from(_currentSliderValue), + fractionDigits: widget.coin.fractionDigits)); + widget.onFeeChanged(BigInt.from(_currentSliderValue)); + }); + }, + ), + ), + SizedBox(width: 16), + Container( + width: 122, + child: TextField( + controller: _textEditingController, + keyboardType: TextInputType.number, + inputFormatters: [ + FilteringTextInputFormatter.digitsOnly, + ], + decoration: InputDecoration( + border: OutlineInputBorder(), + ), + onChanged: (value) { + BigInt? newValue = + BigInt.tryParse(value.replaceAll(',', '')); + if (newValue != null && + newValue >= widget.min && + newValue <= widget.max) { + setState(() { + _currentSliderValue = newValue.toDouble(); + widget.onFeeChanged(newValue); + }); + } + }, + ), + ), + ], + ), + ], + ), + ); + } +} From 0fea4a78dc3c2ef6468cf40d589c52aa53114081 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Wed, 12 Jun 2024 15:54:47 -0500 Subject: [PATCH 253/318] WIP stash (force push overwrite me later) --- .../blockchain_data/v2/transaction_v2.dart | 7 +- .../tx_v2/boost_transaction_view.dart | 307 +++++++++++------- .../tx_v2/transaction_v2_details_view.dart | 18 +- lib/widgets/boost_fee_slider.dart | 55 ++-- 4 files changed, 242 insertions(+), 145 deletions(-) diff --git a/lib/models/isar/models/blockchain_data/v2/transaction_v2.dart b/lib/models/isar/models/blockchain_data/v2/transaction_v2.dart index b7ba87546..1dfe534b2 100644 --- a/lib/models/isar/models/blockchain_data/v2/transaction_v2.dart +++ b/lib/models/isar/models/blockchain_data/v2/transaction_v2.dart @@ -2,12 +2,13 @@ import 'dart:convert'; import 'dart:math'; import 'package:isar/isar.dart'; -import '../transaction.dart'; -import 'input_v2.dart'; -import 'output_v2.dart'; + import '../../../../../utilities/amount/amount.dart'; import '../../../../../utilities/extensions/extensions.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; +import '../transaction.dart'; +import 'input_v2.dart'; +import 'output_v2.dart'; part 'transaction_v2.g.dart'; diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart index 4a4f40504..b9b53d21c 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart @@ -31,7 +31,6 @@ import '../../../../utilities/logger.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; -import '../../../../wallets/crypto_currency/intermediate/nano_currency.dart'; import '../../../../wallets/isar/models/spark_coin.dart'; import '../../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../../wallets/wallet/impl/epiccash_wallet.dart'; @@ -1252,127 +1251,107 @@ class _BoostTransactionViewState extends ConsumerState { // ], // ), // ), - if (coin is! NanoCurrency) - isDesktop - ? const _Divider() - : const SizedBox( - height: 12, - ), - if (coin is! NanoCurrency) - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(16) - : const EdgeInsets.all(12), - child: Builder( - builder: (context) { - final String feeString = showFeePending - ? _transaction.isConfirmed( - currentHeight, - minConfirms, - ) - ? ref - .watch(pAmountFormatter(coin)) - .format( - fee, - ) - : "Pending" - : ref - .watch(pAmountFormatter(coin)) - .format( - fee, - ); - - return Column( - children: [ - Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - "Transaction fee", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ) - : STextStyles - .itemSubtitle( - context, - ), - ), - if (isDesktop) - const SizedBox( - height: 2, - ), - if (isDesktop) - SelectableText( - feeString, - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .textDark, - ) - : STextStyles - .itemSubtitle12( - context, - ), - ), - ], - ), - if (!isDesktop) - SelectableText( - feeString, + isDesktop + ? const _Divider() + : const SizedBox( + height: 12, + ), + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(16) + : const EdgeInsets.all(12), + child: Builder( + builder: (context) { + final String feeString = showFeePending + ? _transaction.isConfirmed( + currentHeight, + minConfirms, + ) + ? ref + .watch(pAmountFormatter(coin)) + .format( + fee, + ) + : "Pending" + : ref + .watch(pAmountFormatter(coin)) + .format( + fee, + ); + return Column( + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Transaction fee", style: isDesktop ? STextStyles .desktopTextExtraExtraSmall( context, - ).copyWith( - color: Theme.of(context) - .extension< - StackColors>()! - .textDark, ) - : STextStyles - .itemSubtitle12( + : STextStyles.itemSubtitle( context, ), ), - // if (isDesktop) - // IconCopyButton(data: feeString), - ], - ), - Padding( - padding: const EdgeInsets.only( - bottom: 12, - top: 16, + if (isDesktop) + const SizedBox( + height: 2, + ), + if (isDesktop) + SelectableText( + feeString, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of( + context) + .extension< + StackColors>()! + .textDark, + ) + : STextStyles + .itemSubtitle12( + context, + ), + ), + ], ), - child: BoostFeeSlider( - coin: coin, - onFeeChanged: (fee) { - customFee = fee; - }, - min: fee.raw, - max: fee.raw * BigInt.from(4), - // TODO [prio=med]: The max fee should be set to an absurd fee. - ), - ) - ], - ); - }, - ), + if (!isDesktop) + SelectableText( + feeString, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension< + StackColors>()! + .textDark, + ) + : STextStyles.itemSubtitle12( + context, + ), + ), + // if (isDesktop) + // IconCopyButton(data: feeString), + ], + ), + ], + ); + }, ), + ), // isDesktop // ? const _Divider() // : const SizedBox( @@ -1806,6 +1785,110 @@ class _BoostTransactionViewState extends ConsumerState { : const SizedBox( height: 12, ), + + isDesktop + ? const _Divider() + : const SizedBox( + height: 12, + ), + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(16) + : const EdgeInsets.all(12), + child: Builder( + builder: (context) { + final String feeString = showFeePending + ? _transaction.isConfirmed( + currentHeight, + minConfirms, + ) + ? ref + .watch(pAmountFormatter(coin)) + .format( + fee, + ) + : "Pending" + : ref + .watch(pAmountFormatter(coin)) + .format( + fee, + ); + return Column( + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + "Boost fee", + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ) + : STextStyles.itemSubtitle( + context, + ), + ), + ], + ), + if (!isDesktop) + SelectableText( + feeString, + style: isDesktop + ? STextStyles + .desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension< + StackColors>()! + .textDark, + ) + : STextStyles.itemSubtitle12( + context, + ), + ), + // if (isDesktop) + // IconCopyButton(data: feeString), + ], + ), + Padding( + padding: const EdgeInsets.only( + bottom: 12, + top: 16, + ), + child: BoostFeeSlider( + coin: coin, + onFeeChanged: (fee) { + customFee = fee; + }, + min: fee.raw, + max: fee.raw * BigInt.from(4), + // TODO [prio=med]: The max fee should be set to an absurd fee. + ), + ), + const SizedBox( + height: 36, + ), + PrimaryButton( + buttonHeight: ButtonHeight.l, + label: "Preview send", + onPressed: + /* // TODO [prio=high]: define previewSend*/ + () => null, + ), + ], + ); + }, + ), + ), ], ), ), diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart index e700d967b..2d7560247 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart @@ -1333,18 +1333,20 @@ class _TransactionV2DetailsViewState ), ), if (whatIsIt( - _transaction, - currentHeight, - ) == - "Sending") + _transaction, + currentHeight, + ) == + "Sending" && + coin is! NanoCurrency) const SizedBox( height: 8, ), if (whatIsIt( - _transaction, - currentHeight, - ) == - "Sending") + _transaction, + currentHeight, + ) == + "Sending" && + coin is! NanoCurrency) CustomTextButton( text: "Boost transaction", onTap: () async { diff --git a/lib/widgets/boost_fee_slider.dart b/lib/widgets/boost_fee_slider.dart index 2d5f7dd65..00548c5cf 100644 --- a/lib/widgets/boost_fee_slider.dart +++ b/lib/widgets/boost_fee_slider.dart @@ -13,6 +13,7 @@ class BoostFeeSlider extends ConsumerStatefulWidget { final BigInt max; BoostFeeSlider({ + super.key, required this.coin, required this.onFeeChanged, required this.min, @@ -40,13 +41,17 @@ class _BoostFeeSliderState extends ConsumerState { ), ); _textEditingController.addListener(() { - BigInt? value = - BigInt.tryParse(_textEditingController.text.replaceAll(',', '')); - if (value != null && value >= widget.min && value <= widget.max) { - setState(() { - _currentSliderValue = value.toDouble(); - widget.onFeeChanged(value); - }); + final double? value = + double.tryParse(_textEditingController.text.replaceAll(',', '')); + if (value != null) { + final BigInt bigIntValue = BigInt.from( + value * BigInt.from(10).pow(widget.coin.fractionDigits).toInt()); + if (bigIntValue >= widget.min && bigIntValue <= widget.max) { + setState(() { + _currentSliderValue = value; + widget.onFeeChanged(bigIntValue); + }); + } } }); } @@ -87,28 +92,34 @@ class _BoostFeeSliderState extends ConsumerState { }, ), ), - SizedBox(width: 16), - Container( - width: 122, + SizedBox( + width: 16 + // Left and right padding. + 122 / 8 * widget.coin.fractionDigits + // Variable width. + 8 * widget.coin.ticker.length, // End padding for ticker. child: TextField( controller: _textEditingController, - keyboardType: TextInputType.number, + keyboardType: TextInputType.numberWithOptions(decimal: true), inputFormatters: [ - FilteringTextInputFormatter.digitsOnly, + FilteringTextInputFormatter.allow(RegExp(r'^\d*\.?\d*')), ], - decoration: InputDecoration( + decoration: const InputDecoration( border: OutlineInputBorder(), ), onChanged: (value) { - BigInt? newValue = - BigInt.tryParse(value.replaceAll(',', '')); - if (newValue != null && - newValue >= widget.min && - newValue <= widget.max) { - setState(() { - _currentSliderValue = newValue.toDouble(); - widget.onFeeChanged(newValue); - }); + final double? newValue = + double.tryParse(value.replaceAll(',', '')); + if (newValue != null) { + final BigInt bigIntValue = BigInt.from(newValue * + BigInt.from(10) + .pow(widget.coin.fractionDigits) + .toInt()); + if (bigIntValue >= widget.min && + bigIntValue <= widget.max) { + setState(() { + _currentSliderValue = newValue; + widget.onFeeChanged(bigIntValue); + }); + } } }, ), From 425dc1ca5a176f39d8a6f7ecf6c81507bed5ed14 Mon Sep 17 00:00:00 2001 From: julian Date: Sat, 15 Jun 2024 10:27:16 -0600 Subject: [PATCH 254/318] clean up boost txn view --- .../tx_v2/boost_transaction_view.dart | 2196 +---------------- .../tx_v2/transaction_v2_details_view.dart | 134 +- lib/route_generator.dart | 15 + lib/widgets/boost_fee_slider.dart | 50 +- 4 files changed, 258 insertions(+), 2137 deletions(-) diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart index b9b53d21c..3c4ce72f7 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart @@ -8,62 +8,32 @@ * */ -import 'dart:async'; - -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:isar/isar.dart'; -import '../../../../models/isar/models/blockchain_data/transaction.dart'; import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; -import '../../../../models/isar/models/ethereum/eth_contract.dart'; -import '../../../../notifications/show_flush_bar.dart'; -import '../../../../providers/db/main_db_provider.dart'; -import '../../../../providers/global/address_book_service_provider.dart'; -import '../../../../providers/providers.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/amount/amount.dart'; import '../../../../utilities/amount/amount_formatter.dart'; -import '../../../../utilities/constants.dart'; -import '../../../../utilities/logger.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; -import '../../../../wallets/crypto_currency/crypto_currency.dart'; -import '../../../../wallets/isar/models/spark_coin.dart'; import '../../../../wallets/isar/providers/wallet_info_provider.dart'; -import '../../../../wallets/wallet/impl/epiccash_wallet.dart'; -import '../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; import '../../../../widgets/background.dart'; import '../../../../widgets/boost_fee_slider.dart'; import '../../../../widgets/conditional_parent.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; -import '../../../../widgets/desktop/desktop_dialog.dart'; -import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../../widgets/desktop/primary_button.dart'; -import '../../../../widgets/desktop/secondary_button.dart'; -import '../../../../widgets/icon_widgets/copy_icon.dart'; -import '../../../../widgets/icon_widgets/pencil_icon.dart'; import '../../../../widgets/rounded_white_container.dart'; -import '../../../../widgets/stack_dialog.dart'; -import '../../sub_widgets/tx_icon.dart'; -import '../../wallet_view.dart'; -import '../dialogs/cancelling_transaction_progress_dialog.dart'; class BoostTransactionView extends ConsumerStatefulWidget { const BoostTransactionView({ super.key, required this.transaction, - required this.walletId, - required this.coin, }); static const String routeName = "/boostTransaction"; final TransactionV2 transaction; - final String walletId; - final CryptoCurrency coin; @override ConsumerState createState() => @@ -72,2082 +42,190 @@ class BoostTransactionView extends ConsumerStatefulWidget { class _BoostTransactionViewState extends ConsumerState { late final bool isDesktop; - late TransactionV2 _transaction; late final String walletId; - - late final CryptoCurrency coin; - late final Amount amount; + late final TransactionV2 _transaction; late final Amount fee; - late final String amountPrefix; - late final String unit; - late final int minConfirms; - late final EthContract? ethContract; - bool get isTokenTx => ethContract != null; + BigInt? customFee; - late final List<({List addresses, Amount amount})> data; + bool _previewTxnLock = false; + Future _previewTxn() async { + if (_previewTxnLock) { + return; + } + _previewTxnLock = true; + try { + // TODO [prio=high]: define previewSend + // build new tx and show loading/tx generation - bool showFeePending = false; + // on success show confirm tx screen - String? _sparkMemo; - - BigInt customFee = BigInt.one; + // on failure show error message + } finally { + _previewTxnLock = false; + } + } @override void initState() { isDesktop = Util.isDesktop; _transaction = widget.transaction; - walletId = widget.walletId; - - coin = widget.coin; - - if (_transaction.subType == TransactionSubType.ethToken) { - ethContract = ref - .read(mainDBProvider) - .getEthContractSync(_transaction.contractAddress!); - - unit = ethContract!.symbol; - } else { - ethContract = null; - unit = coin.ticker; - } - - minConfirms = - ref.read(pWallets).getWallet(walletId).cryptoCurrency.minConfirms; - - final fractionDigits = ethContract?.decimals ?? coin.fractionDigits; - - fee = _transaction.getFee(fractionDigits: fractionDigits); - - if (_transaction.subType == TransactionSubType.cashFusion || - _transaction.type == TransactionType.sentToSelf) { - amountPrefix = ""; - } else { - amountPrefix = _transaction.type == TransactionType.outgoing ? "-" : "+"; - } - - if (_transaction.isEpiccashTransaction) { - switch (_transaction.type) { - case TransactionType.outgoing: - case TransactionType.unknown: - amount = _transaction.getAmountSentFromThisWallet( - fractionDigits: fractionDigits, - ); - break; - - case TransactionType.incoming: - case TransactionType.sentToSelf: - amount = _transaction.getAmountReceivedInThisWallet( - fractionDigits: fractionDigits, - ); - break; - } - data = _transaction.outputs - .map( - (e) => ( - addresses: e.addresses, - amount: Amount( - rawValue: e.value, - fractionDigits: coin.fractionDigits, - ) - ), - ) - .toList(); - } else if (_transaction.subType == TransactionSubType.cashFusion) { - amount = _transaction.getAmountReceivedInThisWallet( - fractionDigits: fractionDigits, - ); - data = _transaction.outputs - .where((e) => e.walletOwns) - .map( - (e) => ( - addresses: e.addresses, - amount: Amount( - rawValue: e.value, - fractionDigits: coin.fractionDigits, - ) - ), - ) - .toList(); - } else { - switch (_transaction.type) { - case TransactionType.outgoing: - amount = _transaction.getAmountSentFromThisWallet( - fractionDigits: fractionDigits, - ); - data = _transaction.outputs - .where((e) => !e.walletOwns) - .map( - (e) => ( - addresses: e.addresses, - amount: Amount( - rawValue: e.value, - fractionDigits: coin.fractionDigits, - ) - ), - ) - .toList(); - break; - - case TransactionType.incoming: - case TransactionType.sentToSelf: - if (_transaction.subType == TransactionSubType.sparkMint || - _transaction.subType == TransactionSubType.sparkSpend) { - _sparkMemo = ref - .read(mainDBProvider) - .isar - .sparkCoins - .where() - .walletIdEqualToAnyLTagHash(walletId) - .filter() - .memoIsNotEmpty() - .and() - .heightEqualTo(_transaction.height) - .anyOf( - _transaction.outputs - .where( - (e) => - e.walletOwns && - e.addresses.isEmpty && - e.scriptPubKeyHex.length >= 488, - ) - .map((e) => e.scriptPubKeyHex.substring(2, 488)) - .toList(), - (q, element) => q.serializedCoinB64StartsWith(element), - ) - .memoProperty() - .findFirstSync(); - } - - if (_transaction.subType == TransactionSubType.sparkMint) { - amount = _transaction.getAmountSparkSelfMinted( - fractionDigits: fractionDigits, - ); - } else if (_transaction.subType == TransactionSubType.sparkSpend) { - final changeAddress = - (ref.read(pWallets).getWallet(walletId) as SparkInterface) - .sparkChangeAddress; - amount = Amount( - rawValue: _transaction.outputs - .where( - (e) => e.walletOwns && !e.addresses.contains(changeAddress), - ) - .fold(BigInt.zero, (p, e) => p + e.value), - fractionDigits: coin.fractionDigits, - ); - } else { - amount = _transaction.getAmountReceivedInThisWallet( - fractionDigits: fractionDigits, - ); - } - data = _transaction.outputs - .where((e) => e.walletOwns) - .map( - (e) => ( - addresses: e.addresses, - amount: Amount( - rawValue: e.value, - fractionDigits: coin.fractionDigits, - ) - ), - ) - .toList(); - break; - - case TransactionType.unknown: - amount = _transaction.getAmountSentFromThisWallet( - fractionDigits: fractionDigits, - ); - data = _transaction.inputs - .where((e) => e.walletOwns) - .map( - (e) => ( - addresses: e.addresses, - amount: Amount( - rawValue: e.value, - fractionDigits: coin.fractionDigits, - ) - ), - ) - .toList(); - break; - } - } + walletId = _transaction.walletId; + fee = _transaction.getFee( + fractionDigits: ref.read(pWalletCoin(walletId)).fractionDigits, + ); super.initState(); } - @override - void dispose() { - super.dispose(); - } - - String whatIsIt(TransactionV2 tx, int height) => tx.statusLabel( - currentChainHeight: height, - minConfirms: minConfirms, - ); - - Future fetchContactNameFor(String address) async { - if (address.isEmpty) { - return address; - } - try { - final contacts = ref.read(addressBookServiceProvider).contacts.where( - (element) => element.addresses - .where((element) => element.address == address) - .isNotEmpty, - ); - if (contacts.isNotEmpty) { - return contacts.first.name; - } else { - return address; - } - } catch (e, s) { - Logging.instance.log("$e\n$s", level: LogLevel.Warning); - return address; - } - } - - Future showExplorerWarning(String explorer) async { - final bool? shouldContinue = await showDialog( - context: context, - barrierDismissible: false, - builder: (_) { - if (!isDesktop) { - return StackDialog( - title: "Attention", - message: - "You are about to view this transaction in a block explorer. The explorer may log your IP address and link it to the transaction. Only proceed if you trust $explorer.", - icon: Row( - children: [ - Consumer( - builder: (_, ref, __) { - return Checkbox( - value: ref.watch( - prefsChangeNotifierProvider - .select((value) => value.hideBlockExplorerWarning), - ), - onChanged: (value) { - if (value is bool) { - ref - .read(prefsChangeNotifierProvider) - .hideBlockExplorerWarning = value; - setState(() {}); - } - }, - ); - }, - ), - Text( - "Never show again", - style: STextStyles.smallMed14(context), - ), - ], - ), - leftButton: TextButton( - onPressed: () { - Navigator.of(context).pop(false); - }, - child: Text( - "Cancel", - style: STextStyles.button(context).copyWith( - color: Theme.of(context) - .extension()! - .accentColorDark, - ), - ), - ), - rightButton: TextButton( - style: Theme.of(context) - .extension()! - .getPrimaryEnabledButtonStyle(context), - onPressed: () { - Navigator.of(context).pop(true); - }, - child: Text( - "Continue", - style: STextStyles.button(context), - ), - ), - ); - } else { - return DesktopDialog( - maxWidth: 550, - maxHeight: 300, - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 20), - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - "Attention", - style: STextStyles.desktopH2(context), - ), - Row( - children: [ - Consumer( - builder: (_, ref, __) { - return Checkbox( - value: ref.watch( - prefsChangeNotifierProvider.select( - (value) => value.hideBlockExplorerWarning, - ), - ), - onChanged: (value) { - if (value is bool) { - ref - .read(prefsChangeNotifierProvider) - .hideBlockExplorerWarning = value; - setState(() {}); - } - }, - ); - }, - ), - Text( - "Never show again", - style: STextStyles.smallMed14(context), - ), - ], - ), - ], - ), - const SizedBox(height: 16), - Text( - "You are about to view this transaction in a block explorer. The explorer may log your IP address and link it to the transaction. Only proceed if you trust $explorer.", - style: STextStyles.desktopTextSmall(context), - ), - const SizedBox(height: 35), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SecondaryButton( - width: 200, - buttonHeight: ButtonHeight.l, - label: "Cancel", - onPressed: () { - Navigator.of( - context, - rootNavigator: true, - ).pop(false); - }, - ), - const SizedBox(width: 20), - PrimaryButton( - width: 200, - buttonHeight: ButtonHeight.l, - label: "Continue", - onPressed: () { - Navigator.of( - context, - rootNavigator: true, - ).pop(true); - }, - ), - ], - ), - ], - ), - ), - ); - } - }, - ); - return shouldContinue ?? false; - } - @override Widget build(BuildContext context) { - final currentHeight = ref.watch(pWalletChainHeight(walletId)); - - final String outputLabel; - - if (_transaction.subType == TransactionSubType.cashFusion) { - outputLabel = "Outputs"; - } else if (_transaction.type == TransactionType.incoming) { - if (data.length == 1 && data.first.addresses.length == 1) { - outputLabel = "Receiving address"; - } else { - outputLabel = "Receiving addresses"; - } - } else { - outputLabel = "Sent to"; - } + final coin = ref.watch(pWalletCoin(walletId)); + final String feeString = ref.watch(pAmountFormatter(coin)).format( + fee, + ); return ConditionalParent( condition: !isDesktop, builder: (child) => Background( - child: child, + child: Scaffold( + backgroundColor: + Theme.of(context).extension()!.background, + appBar: AppBar( + backgroundColor: + Theme.of(context).extension()!.background, + leading: AppBarBackButton( + onPressed: () async { + Navigator.of(context).pop(); + }, + ), + title: Text( + "Boost transaction", + style: STextStyles.navBarTitle(context), + ), + ), + body: child, + ), ), - child: Scaffold( - backgroundColor: isDesktop - ? Colors.transparent - : Theme.of(context).extension()!.background, - appBar: isDesktop - ? null - : AppBar( - backgroundColor: - Theme.of(context).extension()!.background, - leading: AppBarBackButton( - onPressed: () async { - // if (FocusScope.of(context).hasFocus) { - // FocusScope.of(context).unfocus(); - // await Future.delayed(Duration(milliseconds: 50)); - // } - Navigator.of(context).pop(); - }, - ), - title: Text( - "Boost transaction", - style: STextStyles.navBarTitle(context), - ), - ), - body: Padding( - padding: isDesktop - ? const EdgeInsets.only(left: 32) - : const EdgeInsets.all(12), + child: Padding( + padding: isDesktop + ? const EdgeInsets.only( + left: 32, + right: 32, + bottom: 32, + ) + : const EdgeInsets.all(12), + child: ConditionalParent( + condition: isDesktop, + builder: (child) { + return RoundedWhiteContainer( + borderColor: isDesktop + ? Theme.of(context).extension()!.backgroundAppBar + : null, + padding: const EdgeInsets.all(0), + child: child, + ); + }, child: Column( mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - if (isDesktop) - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + // const _Divider(), + RoundedWhiteContainer( + padding: isDesktop + ? const EdgeInsets.all(16) + : const EdgeInsets.all(12), + child: Column( children: [ - Text( - "Boost transaction", - style: STextStyles.desktopH3(context), - ), - const DesktopDialogCloseButton(), - ], - ), - Flexible( - child: Padding( - padding: isDesktop - ? const EdgeInsets.only( - right: 32, - bottom: 32, - ) - : const EdgeInsets.all(0), - child: ConditionalParent( - condition: isDesktop, - builder: (child) { - return RoundedWhiteContainer( - borderColor: isDesktop - ? Theme.of(context) - .extension()! - .backgroundAppBar - : null, - padding: const EdgeInsets.all(0), - child: child, - ); - }, - child: SingleChildScrollView( - primary: isDesktop ? false : null, - child: Padding( - padding: isDesktop - ? const EdgeInsets.all(0) - : const EdgeInsets.all(4), - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.stretch, + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(0) - : const EdgeInsets.all(12), - child: Container( - decoration: isDesktop - ? BoxDecoration( - color: Theme.of(context) - .extension()! - .backgroundAppBar, - borderRadius: BorderRadius.vertical( - top: Radius.circular( - Constants.size.circularBorderRadius, - ), - ), - ) - : null, - child: Padding( - padding: isDesktop - ? const EdgeInsets.all(12) - : const EdgeInsets.all(0), - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - if (isDesktop) - Row( - children: [ - TxIcon( - transaction: _transaction, - currentHeight: currentHeight, - coin: coin, - ), - const SizedBox( - width: 16, - ), - SelectableText( - whatIsIt( - _transaction, - currentHeight, - ), - style: - STextStyles.desktopTextMedium( - context, - ), - ), - ], - ), - Column( - crossAxisAlignment: isDesktop - ? CrossAxisAlignment.end - : CrossAxisAlignment.start, - children: [ - SelectableText( - "$amountPrefix${ref.watch(pAmountFormatter(coin)).format(amount, ethContract: ethContract)}", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of(context) - .extension< - StackColors>()! - .textDark, - ) - : STextStyles.titleBold12( - context, - ), - ), - const SizedBox( - height: 2, - ), - if (ref.watch( - prefsChangeNotifierProvider.select( - (value) => value.externalCalls, - ), - )) - SelectableText( - "$amountPrefix${(amount.decimal * ref.watch( - priceAnd24hChangeNotifierProvider - .select( - (value) => value - .getPrice( - coin, - ) - .item1, - ), - )).toAmount(fractionDigits: 2).fiatString( - locale: ref.watch( - localeServiceChangeNotifierProvider - .select( - (value) => value.locale, - ), - ), - )} ${ref.watch( - prefsChangeNotifierProvider - .select( - (value) => value.currency, - ), - )}", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ) - : STextStyles.itemSubtitle( - context, - ), - ), - ], - ), - if (!isDesktop) - TxIcon( - transaction: _transaction, - currentHeight: currentHeight, - coin: coin, - ), - ], - ), - ), - ), - ), - - isDesktop - ? const _Divider() - : const SizedBox( - height: 12, - ), - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(16) - : const EdgeInsets.all(12), - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Text( - "Status", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall(context) - : STextStyles.itemSubtitle(context), - ), - // Flexible( - // child: FittedBox( - // fit: BoxFit.scaleDown, - // child: - SelectableText( - whatIsIt( - _transaction, - currentHeight, + Text( + "Boost fee", + style: isDesktop + ? STextStyles.desktopTextExtraExtraSmall( + context, + ) + : STextStyles.itemSubtitle( + context, ), - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: _transaction.type == - TransactionType - .outgoing && - _transaction.subType != - TransactionSubType - .cashFusion - ? Theme.of(context) - .extension()! - .accentColorOrange - : Theme.of(context) - .extension()! - .accentColorGreen, - ) - : STextStyles.itemSubtitle12(context), - ), - // ), - // ), - ], - ), - ), - if (!((coin is Monero || coin is Wownero) && - _transaction.type == - TransactionType.outgoing) && - !((coin is Firo) && - _transaction.subType == - TransactionSubType.mint)) - isDesktop - ? const _Divider() - : const SizedBox( - height: 12, - ), - if (!((coin is Monero || coin is Wownero) && - _transaction.type == - TransactionType.outgoing) && - !((coin is Firo) && - _transaction.subType == - TransactionSubType.mint)) - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(16) - : const EdgeInsets.all(12), - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Expanded( - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - ConditionalParent( - condition: kDebugMode, - builder: (child) { - return Row( - mainAxisAlignment: - MainAxisAlignment - .spaceBetween, - children: [ - child, - // CustomTextButton( - // text: "Info", - // onTap: () async { - // final adr = await ref - // .read(mainDBProvider) - // .getAddress(walletId, - // addresses.first); - // if (adr != null && - // mounted) { - // if (isDesktop) { - // await showDialog< - // void>( - // context: context, - // builder: (_) => - // DesktopDialog( - // maxHeight: double - // .infinity, - // child: - // AddressDetailsView( - // addressId: - // adr.id, - // walletId: widget - // .walletId, - // ), - // ), - // ); - // } else { - // await Navigator.of( - // context) - // .pushNamed( - // AddressDetailsView - // .routeName, - // arguments: Tuple2( - // adr.id, - // widget.walletId, - // ), - // ); - // } - // } - // }, - // ) - ], - ); - }, - child: Text( - outputLabel, - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ) - : STextStyles.itemSubtitle( - context, - ), - ), - ), - const SizedBox( - height: 8, - ), - Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - if (data.length == 1 && - data.first.addresses.length == - 1) - FutureBuilder( - future: fetchContactNameFor( - data.first.addresses.first, - ), - builder: ( - builderContext, - AsyncSnapshot - snapshot, - ) { - String - addressOrContactName = - data.first.addresses - .first; - if (snapshot.connectionState == - ConnectionState - .done && - snapshot.hasData) { - addressOrContactName = - snapshot.data!; - } - return SelectableText( - addressOrContactName, - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of( - context, - ) - .extension< - StackColors>()! - .textDark, - ) - : STextStyles - .itemSubtitle12( - context, - ), - ); - }, - ) - else - for (int i = 0; - i < data.length; - i++) - ConditionalParent( - condition: i > 0, - builder: (child) => Column( - crossAxisAlignment: - CrossAxisAlignment - .stretch, - children: [ - const _Divider(), - child, - ], - ), - child: Padding( - padding: - const EdgeInsets.all( - 8.0, - ), - child: Column( - crossAxisAlignment: - CrossAxisAlignment - .start, - children: [ - ...data[i] - .addresses - .map( - (e) { - return FutureBuilder( - future: - fetchContactNameFor( - e, - ), - builder: ( - builderContext, - AsyncSnapshot< - String> - snapshot, - ) { - final String - addressOrContactName; - if (snapshot.connectionState == - ConnectionState - .done && - snapshot - .hasData) { - addressOrContactName = - snapshot - .data!; - } else { - addressOrContactName = - e; - } - - return OutputCard( - address: - addressOrContactName, - amount: data[ - i] - .amount, - coin: coin, - ); - }, - ); - }, - ), - ], - ), - ), - ), - ], - ), - ], - ), - ), - // if (isDesktop) - // IconCopyButton( - // data: addresses.first, - // ), - ], - ), - ), - if (coin is Epiccash) - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(16) - : const EdgeInsets.all(12), - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Expanded( - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - "On chain note", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ) - : STextStyles.itemSubtitle( - context, - ), - ), - const SizedBox( - height: 8, - ), - SelectableText( - _transaction.onChainNote ?? "", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of(context) - .extension< - StackColors>()! - .textDark, - ) - : STextStyles.itemSubtitle12( - context, - ), - ), - ], - ), - ), - if (isDesktop) - IconCopyButton( - data: _transaction.onChainNote ?? "", - ), - ], - ), - ), - // isDesktop - // ? const _Divider() - // : const SizedBox( - // height: 12, - // ), - // RoundedWhiteContainer( - // padding: isDesktop - // ? const EdgeInsets.all(16) - // : const EdgeInsets.all(12), - // child: Column( - // crossAxisAlignment: CrossAxisAlignment.start, - // children: [ - // Row( - // mainAxisAlignment: - // MainAxisAlignment.spaceBetween, - // children: [ - // Text( - // (coin is Epiccash) - // ? "Local Note" - // : "Note ", - // style: isDesktop - // ? STextStyles - // .desktopTextExtraExtraSmall( - // context, - // ) - // : STextStyles.itemSubtitle(context), - // ), - // isDesktop - // ? IconPencilButton( - // onPressed: () { - // showDialog( - // context: context, - // builder: (context) { - // return DesktopDialog( - // maxWidth: 580, - // maxHeight: 360, - // child: EditNoteView( - // txid: _transaction.txid, - // walletId: walletId, - // ), - // ); - // }, - // ); - // }, - // ) - // : GestureDetector( - // onTap: () { - // Navigator.of(context).pushNamed( - // EditNoteView.routeName, - // arguments: Tuple2( - // _transaction.txid, - // walletId, - // ), - // ); - // }, - // child: Row( - // children: [ - // SvgPicture.asset( - // Assets.svg.pencil, - // width: 10, - // height: 10, - // color: Theme.of(context) - // .extension< - // StackColors>()! - // .infoItemIcons, - // ), - // const SizedBox( - // width: 4, - // ), - // Text( - // "Edit", - // style: STextStyles.link2( - // context, - // ), - // ), - // ], - // ), - // ), - // ], - // ), - // const SizedBox( - // height: 8, - // ), - // SelectableText( - // ref - // .watch( - // pTransactionNote( - // ( - // txid: (coin is Epiccash) - // ? _transaction.slateId - // .toString() - // : _transaction.txid, - // walletId: walletId - // ), - // ), - // ) - // ?.value ?? - // "", - // style: isDesktop - // ? STextStyles - // .desktopTextExtraExtraSmall( - // context, - // ).copyWith( - // color: Theme.of(context) - // .extension()! - // .textDark, - // ) - // : STextStyles.itemSubtitle12(context), - // ), - // ], - // ), - // ), - if (_sparkMemo != null) - isDesktop - ? const _Divider() - : const SizedBox( - height: 12, - ), - if (_sparkMemo != null) - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(16) - : const EdgeInsets.all(12), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - children: [ - Text( - "Memo", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ) - : STextStyles.itemSubtitle( - context, - ), - ), - ], - ), - const SizedBox( - height: 8, - ), - SelectableText( - _sparkMemo!, - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of(context) - .extension()! - .textDark, - ) - : STextStyles.itemSubtitle12(context), - ), - ], - ), - ), - // isDesktop - // ? const _Divider() - // : const SizedBox( - // height: 12, - // ), - // RoundedWhiteContainer( - // padding: isDesktop - // ? const EdgeInsets.all(16) - // : const EdgeInsets.all(12), - // child: Row( - // mainAxisAlignment: - // MainAxisAlignment.spaceBetween, - // crossAxisAlignment: CrossAxisAlignment.start, - // children: [ - // Column( - // crossAxisAlignment: - // CrossAxisAlignment.start, - // children: [ - // Text( - // "Date", - // style: isDesktop - // ? STextStyles - // .desktopTextExtraExtraSmall( - // context, - // ) - // : STextStyles.itemSubtitle(context), - // ), - // if (isDesktop) - // const SizedBox( - // height: 2, - // ), - // if (isDesktop) - // SelectableText( - // Format.extractDateFrom( - // _transaction.timestamp, - // ), - // style: isDesktop - // ? STextStyles - // .desktopTextExtraExtraSmall( - // context, - // ).copyWith( - // color: Theme.of(context) - // .extension()! - // .textDark, - // ) - // : STextStyles.itemSubtitle12( - // context, - // ), - // ), - // ], - // ), - // if (!isDesktop) - // SelectableText( - // Format.extractDateFrom( - // _transaction.timestamp, - // ), - // style: isDesktop - // ? STextStyles - // .desktopTextExtraExtraSmall( - // context, - // ).copyWith( - // color: Theme.of(context) - // .extension()! - // .textDark, - // ) - // : STextStyles.itemSubtitle12(context), - // ), - // if (isDesktop) - // IconCopyButton( - // data: Format.extractDateFrom( - // _transaction.timestamp, - // ), - // ), - // ], - // ), - // ), - isDesktop - ? const _Divider() - : const SizedBox( - height: 12, - ), - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(16) - : const EdgeInsets.all(12), - child: Builder( - builder: (context) { - final String feeString = showFeePending - ? _transaction.isConfirmed( - currentHeight, - minConfirms, - ) - ? ref - .watch(pAmountFormatter(coin)) - .format( - fee, - ) - : "Pending" - : ref - .watch(pAmountFormatter(coin)) - .format( - fee, - ); - return Column( - children: [ - Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - "Transaction fee", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ) - : STextStyles.itemSubtitle( - context, - ), - ), - if (isDesktop) - const SizedBox( - height: 2, - ), - if (isDesktop) - SelectableText( - feeString, - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of( - context) - .extension< - StackColors>()! - .textDark, - ) - : STextStyles - .itemSubtitle12( - context, - ), - ), - ], - ), - if (!isDesktop) - SelectableText( - feeString, - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of(context) - .extension< - StackColors>()! - .textDark, - ) - : STextStyles.itemSubtitle12( - context, - ), - ), - // if (isDesktop) - // IconCopyButton(data: feeString), - ], - ), - ], - ); - }, - ), - ), - // isDesktop - // ? const _Divider() - // : const SizedBox( - // height: 12, - // ), - // RoundedWhiteContainer( - // padding: isDesktop - // ? const EdgeInsets.all(16) - // : const EdgeInsets.all(12), - // child: Builder( - // builder: (context) { - // final String height; - // - // if (widget.coin is Bitcoincash || - // widget.coin is Ecash) { - // height = - // "${_transaction.height != null && _transaction.height! > 0 ? _transaction.height! : "Pending"}"; - // } else { - // height = widget.coin is! Epiccash && - // _transaction.isConfirmed( - // currentHeight, - // minConfirms, - // ) - // ? "${_transaction.height == 0 ? "Unknown" : _transaction.height}" - // : _transaction.getConfirmations( - // currentHeight, - // ) > - // 0 - // ? "${_transaction.height}" - // : "Pending"; - // } - // - // return Row( - // mainAxisAlignment: - // MainAxisAlignment.spaceBetween, - // crossAxisAlignment: - // CrossAxisAlignment.start, - // children: [ - // Column( - // crossAxisAlignment: - // CrossAxisAlignment.start, - // children: [ - // Text( - // "Block height", - // style: isDesktop - // ? STextStyles - // .desktopTextExtraExtraSmall( - // context, - // ) - // : STextStyles.itemSubtitle( - // context, - // ), - // ), - // if (isDesktop) - // const SizedBox( - // height: 2, - // ), - // if (isDesktop) - // SelectableText( - // height, - // style: isDesktop - // ? STextStyles - // .desktopTextExtraExtraSmall( - // context, - // ).copyWith( - // color: Theme.of(context) - // .extension< - // StackColors>()! - // .textDark, - // ) - // : STextStyles.itemSubtitle12( - // context, - // ), - // ), - // ], - // ), - // if (!isDesktop) - // SelectableText( - // height, - // style: isDesktop - // ? STextStyles - // .desktopTextExtraExtraSmall( - // context, - // ).copyWith( - // color: Theme.of(context) - // .extension()! - // .textDark, - // ) - // : STextStyles.itemSubtitle12( - // context, - // ), - // ), - // if (isDesktop) - // IconCopyButton(data: height), - // ], - // ); - // }, - // ), - // ), - - // if (kDebugMode) - // isDesktop - // ? const _Divider() - // : const SizedBox( - // height: 12, - // ), - // if (kDebugMode) - // RoundedWhiteContainer( - // padding: isDesktop - // ? const EdgeInsets.all(16) - // : const EdgeInsets.all(12), - // child: Row( - // crossAxisAlignment: CrossAxisAlignment.start, - // mainAxisAlignment: - // MainAxisAlignment.spaceBetween, - // children: [ - // Text( - // "Tx sub type", - // style: isDesktop - // ? STextStyles - // .desktopTextExtraExtraSmall( - // context, - // ) - // : STextStyles.itemSubtitle(context), - // ), - // SelectableText( - // _transaction.subType.toString(), - // style: isDesktop - // ? STextStyles - // .desktopTextExtraExtraSmall( - // context, - // ).copyWith( - // color: Theme.of(context) - // .extension()! - // .textDark, - // ) - // : STextStyles.itemSubtitle12(context), - // ), - // ], - // ), - // ), - // isDesktop - // ? const _Divider() - // : const SizedBox( - // height: 12, - // ), - // RoundedWhiteContainer( - // padding: isDesktop - // ? const EdgeInsets.all(16) - // : const EdgeInsets.all(12), - // child: Row( - // crossAxisAlignment: CrossAxisAlignment.start, - // mainAxisAlignment: - // MainAxisAlignment.spaceBetween, - // children: [ - // Expanded( - // child: Column( - // crossAxisAlignment: - // CrossAxisAlignment.start, - // children: [ - // Text( - // "Transaction ID", - // style: isDesktop - // ? STextStyles - // .desktopTextExtraExtraSmall( - // context, - // ) - // : STextStyles.itemSubtitle( - // context, - // ), - // ), - // const SizedBox( - // height: 8, - // ), - // // Flexible( - // // child: FittedBox( - // // fit: BoxFit.scaleDown, - // // child: - // SelectableText( - // _transaction.txid, - // style: isDesktop - // ? STextStyles - // .desktopTextExtraExtraSmall( - // context, - // ).copyWith( - // color: Theme.of(context) - // .extension()! - // .textDark, - // ) - // : STextStyles.itemSubtitle12( - // context, - // ), - // ), - // if (coin is! Epiccash) - // const SizedBox( - // height: 8, - // ), - // if (coin is! Epiccash) - // CustomTextButton( - // text: "Open in block explorer", - // onTap: () async { - // final uri = - // getBlockExplorerTransactionUrlFor( - // coin: coin, - // txid: _transaction.txid, - // ); - // - // if (ref - // .read( - // prefsChangeNotifierProvider, - // ) - // .hideBlockExplorerWarning == - // false) { - // final shouldContinue = - // await showExplorerWarning( - // "${uri.scheme}://${uri.host}", - // ); - // - // if (!shouldContinue) { - // return; - // } - // } - // - // // ref - // // .read( - // // shouldShowLockscreenOnResumeStateProvider - // // .state) - // // .state = false; - // try { - // await launchUrl( - // uri, - // mode: LaunchMode - // .externalApplication, - // ); - // } catch (_) { - // if (mounted) { - // unawaited( - // showDialog( - // context: context, - // builder: (_) => - // StackOkDialog( - // title: - // "Could not open in block explorer", - // message: - // "Failed to open \"${uri.toString()}\"", - // ), - // ), - // ); - // } - // } finally { - // // Future.delayed( - // // const Duration(seconds: 1), - // // () => ref - // // .read( - // // shouldShowLockscreenOnResumeStateProvider - // // .state) - // // .state = true, - // // ); - // } - // }, - // ), - // // ), - // // ), - // ], - // ), - // ), - // if (isDesktop) - // const SizedBox( - // width: 12, - // ), - // if (isDesktop) - // IconCopyButton( - // data: _transaction.txid, - // ), - // ], - // ), - // ), - // if ((coin is FiroTestNet || coin is Firo) && - // _transaction.subType == "mint") - // const SizedBox( - // height: 12, - // ), - // if ((coin is FiroTestNet || coin is Firo) && - // _transaction.subType == "mint") - // RoundedWhiteContainer( - // child: Column( - // crossAxisAlignment: CrossAxisAlignment.start, - // children: [ - // Row( - // mainAxisAlignment: MainAxisAlignment.spaceBetween, - // children: [ - // Text( - // "Mint Transaction ID", - // style: STextStyles.itemSubtitle(context), - // ), - // ], - // ), - // const SizedBox( - // height: 8, - // ), - // // Flexible( - // // child: FittedBox( - // // fit: BoxFit.scaleDown, - // // child: - // SelectableText( - // _transaction.otherData ?? "Unknown", - // style: STextStyles.itemSubtitle12(context), - // ), - // // ), - // // ), - // const SizedBox( - // height: 8, - // ), - // BlueTextButton( - // text: "Open in block explorer", - // onTap: () async { - // final uri = getBlockExplorerTransactionUrlFor( - // coin: coin, - // txid: _transaction.otherData ?? "Unknown", - // ); - // // ref - // // .read( - // // shouldShowLockscreenOnResumeStateProvider - // // .state) - // // .state = false; - // try { - // await launchUrl( - // uri, - // mode: LaunchMode.externalApplication, - // ); - // } catch (_) { - // unawaited(showDialog( - // context: context, - // builder: (_) => StackOkDialog( - // title: "Could not open in block explorer", - // message: - // "Failed to open \"${uri.toString()}\"", - // ), - // )); - // } finally { - // // Future.delayed( - // // const Duration(seconds: 1), - // // () => ref - // // .read( - // // shouldShowLockscreenOnResumeStateProvider - // // .state) - // // .state = true, - // // ); - // } - // }, - // ), - // ], - // ), - // ), - if (coin is Epiccash) - isDesktop - ? const _Divider() - : const SizedBox( - height: 12, - ), - if (coin is Epiccash) - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(16) - : const EdgeInsets.all(12), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - "Slate ID", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ) - : STextStyles.itemSubtitle( - context, - ), - ), - // Flexible( - // child: FittedBox( - // fit: BoxFit.scaleDown, - // child: - SelectableText( - _transaction.slateId ?? "Unknown", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of(context) - .extension()! - .textDark, - ) - : STextStyles.itemSubtitle12( - context, - ), - ), - // ), - // ), - ], - ), - if (isDesktop) - const SizedBox( - width: 12, - ), - if (isDesktop) - IconCopyButton( - data: _transaction.slateId ?? "Unknown", - ), - ], - ), - ), - if (!isDesktop) - const SizedBox( - height: 12, - ), - if (whatIsIt( - _transaction, - currentHeight, - ) != - "Sending") - isDesktop - ? const _Divider() - : const SizedBox( - height: 12, - ), - - isDesktop - ? const _Divider() - : const SizedBox( - height: 12, - ), - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(16) - : const EdgeInsets.all(12), - child: Builder( - builder: (context) { - final String feeString = showFeePending - ? _transaction.isConfirmed( - currentHeight, - minConfirms, - ) - ? ref - .watch(pAmountFormatter(coin)) - .format( - fee, - ) - : "Pending" - : ref - .watch(pAmountFormatter(coin)) - .format( - fee, - ); - return Column( - children: [ - Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - "Boost fee", - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ) - : STextStyles.itemSubtitle( - context, - ), - ), - ], - ), - if (!isDesktop) - SelectableText( - feeString, - style: isDesktop - ? STextStyles - .desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of(context) - .extension< - StackColors>()! - .textDark, - ) - : STextStyles.itemSubtitle12( - context, - ), - ), - // if (isDesktop) - // IconCopyButton(data: feeString), - ], - ), - Padding( - padding: const EdgeInsets.only( - bottom: 12, - top: 16, - ), - child: BoostFeeSlider( - coin: coin, - onFeeChanged: (fee) { - customFee = fee; - }, - min: fee.raw, - max: fee.raw * BigInt.from(4), - // TODO [prio=med]: The max fee should be set to an absurd fee. - ), - ), - const SizedBox( - height: 36, - ), - PrimaryButton( - buttonHeight: ButtonHeight.l, - label: "Preview send", - onPressed: - /* // TODO [prio=high]: define previewSend*/ - () => null, - ), - ], - ); - }, - ), ), ], ), + if (!isDesktop) + SelectableText( + feeString, + style: isDesktop + ? STextStyles.desktopTextExtraExtraSmall( + context, + ).copyWith( + color: Theme.of(context) + .extension()! + .textDark, + ) + : STextStyles.itemSubtitle12( + context, + ), + ), + // if (isDesktop) + // IconCopyButton(data: feeString), + ], + ), + Padding( + padding: const EdgeInsets.only( + bottom: 12, + top: 16, + ), + child: BoostFeeSlider( + coin: coin, + onFeeChanged: (fee) { + customFee = fee; + }, + min: _transaction + .getFee(fractionDigits: coin.fractionDigits) + .raw, + max: _transaction + .getFee(fractionDigits: coin.fractionDigits) + .raw * + BigInt.from(4), + // TODO [prio=med]: The max fee should be set to an absurd fee. ), ), - ), + const _Divider(), + PrimaryButton( + buttonHeight: ButtonHeight.l, + label: "Preview send", + onPressed: _previewTxn, + ), + ], ), ), ], ), ), - floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat, - floatingActionButton: (coin is Epiccash && - _transaction.getConfirmations(currentHeight) < 1 && - _transaction.isCancelled == false) - ? ConditionalParent( - condition: isDesktop, - builder: (child) => Padding( - padding: const EdgeInsets.symmetric( - horizontal: 32, - vertical: 16, - ), - child: child, - ), - child: SizedBox( - width: MediaQuery.of(context).size.width - 32, - child: TextButton( - style: ButtonStyle( - backgroundColor: MaterialStateProperty.all( - Theme.of(context).extension()!.textError, - ), - ), - onPressed: () async { - final wallet = ref.read(pWallets).getWallet(walletId); - - if (wallet is EpiccashWallet) { - final String? id = _transaction.slateId; - if (id == null) { - unawaited( - showFloatingFlushBar( - type: FlushBarType.warning, - message: "Could not find Epic transaction ID", - context: context, - ), - ); - return; - } - - unawaited( - showDialog( - barrierDismissible: false, - context: context, - builder: (_) => - const CancellingTransactionProgressDialog(), - ), - ); - - final result = - await wallet.cancelPendingTransactionAndPost(id); - if (mounted) { - // pop progress dialog - Navigator.of(context).pop(); - - if (result.isEmpty) { - await showDialog( - context: context, - builder: (_) => StackOkDialog( - title: "Transaction cancelled", - onOkPressed: (_) { - wallet.refresh(); - Navigator.of(context).popUntil( - ModalRoute.withName( - WalletView.routeName, - ), - ); - }, - ), - ); - } else { - await showDialog( - context: context, - builder: (_) => StackOkDialog( - title: "Failed to cancel transaction", - message: result, - ), - ); - } - } - } else { - unawaited( - showFloatingFlushBar( - type: FlushBarType.warning, - message: "ERROR: Wallet type is not Epic Cash", - context: context, - ), - ); - return; - } - }, - child: Text( - "Cancel Transaction", - style: STextStyles.button(context), - ), - ), - ), - ) - : null, ), ); } } -class OutputCard extends ConsumerWidget { - const OutputCard({ - super.key, - required this.address, - required this.amount, - required this.coin, - }); - - final String address; - final Amount amount; - final CryptoCurrency coin; - - @override - Widget build(BuildContext context, WidgetRef ref) { - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "Address", - style: Util.isDesktop - ? STextStyles.desktopTextExtraExtraSmall(context) - : STextStyles.itemSubtitle(context), - ), - SelectableText( - address, - style: Util.isDesktop - ? STextStyles.desktopTextExtraExtraSmall(context).copyWith( - color: Theme.of(context).extension()!.textDark, - ) - : STextStyles.itemSubtitle12(context), - ), - const SizedBox( - height: 10, - ), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - "Amount", - style: Util.isDesktop - ? STextStyles.desktopTextExtraExtraSmall(context) - : STextStyles.itemSubtitle(context), - ), - SelectableText( - ref.watch(pAmountFormatter(coin)).format(amount), - style: Util.isDesktop - ? STextStyles.desktopTextExtraExtraSmall(context).copyWith( - color: - Theme.of(context).extension()!.textDark, - ) - : STextStyles.itemSubtitle12(context), - ), - ], - ), - ], - ); - } -} - class _Divider extends StatelessWidget { const _Divider({super.key}); @override Widget build(BuildContext context) { - return Container( - height: 1, - color: Theme.of(context).extension()!.backgroundAppBar, - ); - } -} - -class IconCopyButton extends StatelessWidget { - const IconCopyButton({ - super.key, - required this.data, - }); - - final String data; - - @override - Widget build(BuildContext context) { - return SizedBox( - height: 26, - width: 26, - child: RawMaterialButton( - fillColor: - Theme.of(context).extension()!.buttonBackSecondary, - elevation: 0, - hoverElevation: 0, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(6), - ), - onPressed: () async { - await Clipboard.setData(ClipboardData(text: data)); - if (context.mounted) { - unawaited( - showFloatingFlushBar( - type: FlushBarType.info, - message: "Copied to clipboard", - context: context, - ), - ); - } - }, - child: Padding( - padding: const EdgeInsets.all(5), - child: CopyIcon( - width: 16, - height: 16, - color: Theme.of(context).extension()!.textDark, - ), - ), - ), - ); - } -} - -class IconPencilButton extends StatelessWidget { - const IconPencilButton({ - super.key, - this.onPressed, - }); - - final VoidCallback? onPressed; - - @override - Widget build(BuildContext context) { - return SizedBox( - height: 26, - width: 26, - child: RawMaterialButton( - fillColor: - Theme.of(context).extension()!.buttonBackSecondary, - elevation: 0, - hoverElevation: 0, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(6), - ), - onPressed: () => onPressed?.call(), - child: Padding( - padding: const EdgeInsets.all(5), - child: PencilIcon( - width: 16, - height: 16, - color: Theme.of(context).extension()!.textDark, - ), - ), - ), - ); + if (Util.isDesktop) { + return Container( + height: 1, + color: Theme.of(context).extension()!.backgroundAppBar, + ); + } else { + return const SizedBox( + height: 12, + ); + } } } diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart index 2d7560247..77e753681 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart @@ -101,6 +101,59 @@ class _TransactionV2DetailsViewState String? _sparkMemo; + bool _boostButtonLock = false; + Future _boostPressed() async { + if (_boostButtonLock) { + return; + } + _boostButtonLock = true; + try { + if (Util.isDesktop) { + await showDialog( + context: context, + builder: (context) => DesktopDialog( + maxHeight: null, + maxWidth: 580, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.only(left: 32), + child: Text( + "Boost transaction", + style: STextStyles.desktopH3(context), + ), + ), + const DesktopDialogCloseButton(), + ], + ), + Flexible( + child: SingleChildScrollView( + child: BoostTransactionView( + transaction: _transaction, + ), + ), + ), + ], + ), + ), + ); + } else { + unawaited( + Navigator.of(context).pushNamed( + BoostTransactionView.routeName, + arguments: (tx: _transaction,), + ), + ); + } + } finally { + _boostButtonLock = false; + } + } + @override void initState() { isDesktop = Util.isDesktop; @@ -484,6 +537,15 @@ class _TransactionV2DetailsViewState outputLabel = "Sent to"; } + // TODO [prio=high]: set to true for ui testing + final showBoost = true; + // final showBoost = coin is! NanoCurrency && + // _transaction.type == TransactionType.outgoing && + // !_transaction.isConfirmed( + // currentHeight, + // coin.minConfirms, + // ); + return ConditionalParent( condition: !isDesktop, builder: (child) => Background( @@ -1332,60 +1394,14 @@ class _TransactionV2DetailsViewState context, ), ), - if (whatIsIt( - _transaction, - currentHeight, - ) == - "Sending" && - coin is! NanoCurrency) + if (showBoost) const SizedBox( height: 8, ), - if (whatIsIt( - _transaction, - currentHeight, - ) == - "Sending" && - coin is! NanoCurrency) + if (showBoost) CustomTextButton( text: "Boost transaction", - onTap: () async { - if (Util.isDesktop) { - await showDialog( - context: context, - builder: (context) => - DesktopDialog( - maxHeight: - MediaQuery.of( - context) - .size - .height - - 64, - maxWidth: 580, - child: - BoostTransactionView( - transaction: - _transaction, - coin: coin, - walletId: walletId, - ), - ), - ); - } else { - unawaited( - Navigator.of(context) - .pushNamed( - BoostTransactionView - .routeName, - arguments: ( - tx: _transaction, - coin: coin, - walletId: walletId, - ), - ), - ); - } - }, + onTap: _boostPressed, ), ], ), @@ -1836,16 +1852,16 @@ class _TransactionV2DetailsViewState const SizedBox( height: 12, ), - if (whatIsIt( - _transaction, - currentHeight, - ) != - "Sending") - isDesktop - ? const _Divider() - : const SizedBox( - height: 12, - ), + // if (whatIsIt( + // _transaction, + // currentHeight, + // ) != + // "Sending") + // isDesktop + // ? const _Divider() + // : const SizedBox( + // height: 12, + // ), ], ), ), diff --git a/lib/route_generator.dart b/lib/route_generator.dart index ccedb0a6a..6af7982e2 100644 --- a/lib/route_generator.dart +++ b/lib/route_generator.dart @@ -144,6 +144,7 @@ import 'pages/wallet_view/transaction_views/edit_note_view.dart'; import 'pages/wallet_view/transaction_views/transaction_details_view.dart'; import 'pages/wallet_view/transaction_views/transaction_search_filter_view.dart'; import 'pages/wallet_view/transaction_views/tx_v2/all_transactions_v2_view.dart'; +import 'pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart'; import 'pages/wallet_view/transaction_views/tx_v2/fusion_group_details_view.dart'; import 'pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart'; import 'pages/wallet_view/wallet_view.dart'; @@ -2173,6 +2174,20 @@ class RouteGenerator { } return _routeError("${settings.name} invalid args: ${args.toString()}"); + case BoostTransactionView.routeName: + if (args is TransactionV2) { + return getRoute( + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => BoostTransactionView( + transaction: args, + ), + settings: RouteSettings( + name: settings.name, + ), + ); + } + return _routeError("${settings.name} invalid args: ${args.toString()}"); + case BackupRestoreSettings.routeName: return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, diff --git a/lib/widgets/boost_fee_slider.dart b/lib/widgets/boost_fee_slider.dart index 00548c5cf..275774d65 100644 --- a/lib/widgets/boost_fee_slider.dart +++ b/lib/widgets/boost_fee_slider.dart @@ -8,11 +8,11 @@ import '../wallets/crypto_currency/crypto_currency.dart'; // Update with your ac class BoostFeeSlider extends ConsumerStatefulWidget { final CryptoCurrency coin; - final Function(BigInt) onFeeChanged; + final void Function(BigInt) onFeeChanged; final BigInt min; final BigInt max; - BoostFeeSlider({ + const BoostFeeSlider({ super.key, required this.coin, required this.onFeeChanged, @@ -21,7 +21,7 @@ class BoostFeeSlider extends ConsumerStatefulWidget { }); @override - _BoostFeeSliderState createState() => _BoostFeeSliderState(); + ConsumerState createState() => _BoostFeeSliderState(); } class _BoostFeeSliderState extends ConsumerState { @@ -35,17 +35,20 @@ class _BoostFeeSliderState extends ConsumerState { _textEditingController = TextEditingController( text: ref.read(pAmountFormatter(widget.coin)).format( Amount( - rawValue: BigInt.from(_currentSliderValue), - fractionDigits: widget.coin.fractionDigits), + rawValue: BigInt.from(_currentSliderValue), + fractionDigits: widget.coin.fractionDigits, + ), withUnitName: false, ), ); _textEditingController.addListener(() { + // TODO: value.replaceAll(',', '') doesn't work for certain locales final double? value = double.tryParse(_textEditingController.text.replaceAll(',', '')); if (value != null) { final BigInt bigIntValue = BigInt.from( - value * BigInt.from(10).pow(widget.coin.fractionDigits).toInt()); + value * BigInt.from(10).pow(widget.coin.fractionDigits).toInt(), + ); if (bigIntValue >= widget.min && bigIntValue <= widget.max) { setState(() { _currentSliderValue = value; @@ -76,17 +79,22 @@ class _BoostFeeSliderState extends ConsumerState { min: widget.min.toDouble(), max: widget.max.toDouble(), divisions: (widget.max - widget.min).toInt(), - label: ref.read(pAmountFormatter(widget.coin)).format(Amount( - rawValue: BigInt.from(_currentSliderValue), - fractionDigits: widget.coin.fractionDigits)), + label: ref.read(pAmountFormatter(widget.coin)).format( + Amount( + rawValue: BigInt.from(_currentSliderValue), + fractionDigits: widget.coin.fractionDigits, + ), + ), onChanged: (value) { setState(() { _currentSliderValue = value; - _textEditingController.text = ref - .read(pAmountFormatter(widget.coin)) - .format(Amount( - rawValue: BigInt.from(_currentSliderValue), - fractionDigits: widget.coin.fractionDigits)); + _textEditingController.text = + ref.read(pAmountFormatter(widget.coin)).format( + Amount( + rawValue: BigInt.from(_currentSliderValue), + fractionDigits: widget.coin.fractionDigits, + ), + ); widget.onFeeChanged(BigInt.from(_currentSliderValue)); }); }, @@ -98,7 +106,8 @@ class _BoostFeeSliderState extends ConsumerState { 8 * widget.coin.ticker.length, // End padding for ticker. child: TextField( controller: _textEditingController, - keyboardType: TextInputType.numberWithOptions(decimal: true), + keyboardType: + const TextInputType.numberWithOptions(decimal: true), inputFormatters: [ FilteringTextInputFormatter.allow(RegExp(r'^\d*\.?\d*')), ], @@ -106,13 +115,16 @@ class _BoostFeeSliderState extends ConsumerState { border: OutlineInputBorder(), ), onChanged: (value) { + // TODO: value.replaceAll(',', '') doesn't work for certain locales final double? newValue = double.tryParse(value.replaceAll(',', '')); if (newValue != null) { - final BigInt bigIntValue = BigInt.from(newValue * - BigInt.from(10) - .pow(widget.coin.fractionDigits) - .toInt()); + final BigInt bigIntValue = BigInt.from( + newValue * + BigInt.from(10) + .pow(widget.coin.fractionDigits) + .toInt(), + ); if (bigIntValue >= widget.min && bigIntValue <= widget.max) { setState(() { From ac07aee9c389e4bf8d56cc5a12269db7bca32147 Mon Sep 17 00:00:00 2001 From: julian Date: Sat, 15 Jun 2024 11:36:53 -0600 Subject: [PATCH 255/318] add RBF wallet interface mixin --- .../tx_v2/transaction_v2_details_view.dart | 97 +++++++++++-------- lib/wallets/wallet/impl/bitcoin_wallet.dart | 7 +- lib/wallets/wallet/impl/litecoin_wallet.dart | 7 +- .../rbf_interface.dart | 23 +++++ 4 files changed, 94 insertions(+), 40 deletions(-) create mode 100644 lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart index 77e753681..25c2b3fd6 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart @@ -34,6 +34,7 @@ import '../../../../utilities/block_explorers.dart'; import '../../../../utilities/constants.dart'; import '../../../../utilities/format.dart'; import '../../../../utilities/logger.dart'; +import '../../../../utilities/show_loading.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; @@ -41,6 +42,7 @@ import '../../../../wallets/crypto_currency/intermediate/nano_currency.dart'; import '../../../../wallets/isar/models/spark_coin.dart'; import '../../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../../wallets/wallet/impl/epiccash_wallet.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart'; import '../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; import '../../../../widgets/background.dart'; import '../../../../widgets/conditional_parent.dart'; @@ -92,6 +94,7 @@ class _TransactionV2DetailsViewState late final String unit; late final int minConfirms; late final EthContract? ethContract; + late final bool supportsRbf; bool get isTokenTx => ethContract != null; @@ -103,44 +106,57 @@ class _TransactionV2DetailsViewState bool _boostButtonLock = false; Future _boostPressed() async { - if (_boostButtonLock) { + final wallet = ref.read(pWallets).getWallet(walletId); + if (_boostButtonLock || wallet is! RbfInterface) { return; } _boostButtonLock = true; try { if (Util.isDesktop) { - await showDialog( + // TODO fetch size from _transaction after its added to db schema, if not there, + // then fetch using the function below + final size = await showLoading( + whileFuture: wallet.getVSize(_transaction.txid), context: context, - builder: (context) => DesktopDialog( - maxHeight: null, - maxWidth: 580, - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: const EdgeInsets.only(left: 32), - child: Text( - "Boost transaction", - style: STextStyles.desktopH3(context), + message: "Fetching transaction vSize...", + ); + + // TODO pass the size in to the rbf screen + + if (mounted) { + await showDialog( + context: context, + builder: (context) => DesktopDialog( + maxHeight: null, + maxWidth: 580, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.only(left: 32), + child: Text( + "Boost transaction", + style: STextStyles.desktopH3(context), + ), + ), + const DesktopDialogCloseButton(), + ], + ), + Flexible( + child: SingleChildScrollView( + child: BoostTransactionView( + transaction: _transaction, ), ), - const DesktopDialogCloseButton(), - ], - ), - Flexible( - child: SingleChildScrollView( - child: BoostTransactionView( - transaction: _transaction, - ), ), - ), - ], + ], + ), ), - ), - ); + ); + } } else { unawaited( Navigator.of(context).pushNamed( @@ -160,6 +176,13 @@ class _TransactionV2DetailsViewState _transaction = widget.transaction; walletId = widget.walletId; + if (_transaction.type + case TransactionType.sentToSelf || TransactionType.outgoing) { + supportsRbf = ref.read(pWallets).getWallet(walletId) is RbfInterface; + } else { + supportsRbf = false; + } + coin = widget.coin; if (_transaction.subType == TransactionSubType.ethToken) { @@ -537,14 +560,12 @@ class _TransactionV2DetailsViewState outputLabel = "Sent to"; } - // TODO [prio=high]: set to true for ui testing - final showBoost = true; - // final showBoost = coin is! NanoCurrency && - // _transaction.type == TransactionType.outgoing && - // !_transaction.isConfirmed( - // currentHeight, - // coin.minConfirms, - // ); + // TODO: [prio=high]: revert the following when done testing + final confirmedTxn = false; + // final confirmedTxn = _transaction.isConfirmed( + // currentHeight, + // coin.minConfirms, + // ); return ConditionalParent( condition: !isDesktop, @@ -1394,11 +1415,11 @@ class _TransactionV2DetailsViewState context, ), ), - if (showBoost) + if (supportsRbf && !confirmedTxn) const SizedBox( height: 8, ), - if (showBoost) + if (supportsRbf && !confirmedTxn) CustomTextButton( text: "Boost transaction", onTap: _boostPressed, diff --git a/lib/wallets/wallet/impl/bitcoin_wallet.dart b/lib/wallets/wallet/impl/bitcoin_wallet.dart index 5487d8083..d028136dc 100644 --- a/lib/wallets/wallet/impl/bitcoin_wallet.dart +++ b/lib/wallets/wallet/impl/bitcoin_wallet.dart @@ -8,9 +8,14 @@ import '../intermediate/bip39_hd_wallet.dart'; import '../wallet_mixin_interfaces/coin_control_interface.dart'; import '../wallet_mixin_interfaces/electrumx_interface.dart'; import '../wallet_mixin_interfaces/paynym_interface.dart'; +import '../wallet_mixin_interfaces/rbf_interface.dart'; class BitcoinWallet extends Bip39HDWallet - with ElectrumXInterface, CoinControlInterface, PaynymInterface { + with + ElectrumXInterface, + CoinControlInterface, + PaynymInterface, + RbfInterface { @override int get isarTransactionVersion => 2; diff --git a/lib/wallets/wallet/impl/litecoin_wallet.dart b/lib/wallets/wallet/impl/litecoin_wallet.dart index 97c9bd42c..0bcbf38d5 100644 --- a/lib/wallets/wallet/impl/litecoin_wallet.dart +++ b/lib/wallets/wallet/impl/litecoin_wallet.dart @@ -14,10 +14,15 @@ import '../intermediate/bip39_hd_wallet.dart'; import '../wallet_mixin_interfaces/coin_control_interface.dart'; import '../wallet_mixin_interfaces/electrumx_interface.dart'; import '../wallet_mixin_interfaces/ordinals_interface.dart'; +import '../wallet_mixin_interfaces/rbf_interface.dart'; class LitecoinWallet extends Bip39HDWallet - with ElectrumXInterface, CoinControlInterface, OrdinalsInterface { + with + ElectrumXInterface, + CoinControlInterface, + RbfInterface, + OrdinalsInterface { @override int get isarTransactionVersion => 2; diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart new file mode 100644 index 000000000..a44ea2443 --- /dev/null +++ b/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart @@ -0,0 +1,23 @@ +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import 'electrumx_interface.dart'; + +typedef TxSize = ({int real, int virtual}); + +mixin RbfInterface + on ElectrumXInterface { + // TODO actually save the size + Future getVSize(String txid) async { + final tx = await electrumXCachedClient.getTransaction( + txHash: txid, + cryptoCurrency: cryptoCurrency, + ); + + try { + return (real: tx["size"] as int, virtual: tx["vsize"] as int); + } catch (_) { + return null; + } + } + +// TODO more RBF specific logic +} From 1426495474ffa3442a12eb45ecdeb06eff2b4f99 Mon Sep 17 00:00:00 2001 From: julian Date: Sun, 16 Jun 2024 10:27:54 -0600 Subject: [PATCH 256/318] add size and vSize to btc and ltc transactions to use and display in rbf boost txn view --- .../blockchain_data/v2/transaction_v2.dart | 64 ++++++++-- .../tx_v2/boost_transaction_view.dart | 115 +++++++++--------- .../tx_v2/transaction_v2_details_view.dart | 26 ++-- lib/wallets/wallet/impl/litecoin_wallet.dart | 12 +- .../paynym_interface.dart | 10 +- 5 files changed, 155 insertions(+), 72 deletions(-) diff --git a/lib/models/isar/models/blockchain_data/v2/transaction_v2.dart b/lib/models/isar/models/blockchain_data/v2/transaction_v2.dart index 1dfe534b2..4f4c123c7 100644 --- a/lib/models/isar/models/blockchain_data/v2/transaction_v2.dart +++ b/lib/models/isar/models/blockchain_data/v2/transaction_v2.dart @@ -57,17 +57,52 @@ class TransactionV2 { required this.otherData, }); + TransactionV2 copyWith({ + String? walletId, + String? txid, + String? hash, + int? timestamp, + int? height, + String? blockHash, + int? version, + List? inputs, + List? outputs, + TransactionType? type, + TransactionSubType? subType, + String? otherData, + }) { + return TransactionV2( + walletId: walletId ?? this.walletId, + txid: txid ?? this.txid, + hash: hash ?? this.hash, + timestamp: timestamp ?? this.timestamp, + height: height ?? this.height, + blockHash: blockHash ?? this.blockHash, + version: version ?? this.version, + inputs: inputs ?? this.inputs, + outputs: outputs ?? this.outputs, + type: type ?? this.type, + subType: subType ?? this.subType, + otherData: otherData ?? this.otherData, + ); + } + + int? get size => _getFromOtherData(key: TxV2OdKeys.size) as int?; + int? get vSize => _getFromOtherData(key: TxV2OdKeys.vSize) as int?; + bool get isEpiccashTransaction => - _getFromOtherData(key: "isEpiccashTransaction") == true; + _getFromOtherData(key: TxV2OdKeys.isEpiccashTransaction) == true; int? get numberOfMessages => - _getFromOtherData(key: "numberOfMessages") as int?; - String? get slateId => _getFromOtherData(key: "slateId") as String?; - String? get onChainNote => _getFromOtherData(key: "onChainNote") as String?; - bool get isCancelled => _getFromOtherData(key: "isCancelled") == true; + _getFromOtherData(key: TxV2OdKeys.numberOfMessages) as int?; + String? get slateId => _getFromOtherData(key: TxV2OdKeys.slateId) as String?; + String? get onChainNote => + _getFromOtherData(key: TxV2OdKeys.onChainNote) as String?; + bool get isCancelled => + _getFromOtherData(key: TxV2OdKeys.isCancelled) == true; String? get contractAddress => - _getFromOtherData(key: "contractAddress") as String?; - int? get nonce => _getFromOtherData(key: "nonce") as int?; + _getFromOtherData(key: TxV2OdKeys.contractAddress) as String?; + int? get nonce => _getFromOtherData(key: TxV2OdKeys.nonce) as int?; int getConfirmations(int currentChainHeight) { if (height == null || height! <= 0) return 0; @@ -146,7 +181,7 @@ class TransactionV2 { Amount? _getOverrideFee() { try { return Amount.fromSerializedJsonString( - _getFromOtherData(key: "overrideFee") as String, + _getFromOtherData(key: TxV2OdKeys.overrideFee) as String, ); } catch (_) { return null; @@ -250,3 +285,16 @@ class TransactionV2 { ')'; } } + +abstract final class TxV2OdKeys { + static const size = "size"; + static const vSize = "vSize"; + static const isEpiccashTransaction = "isEpiccashTransaction"; + static const numberOfMessages = "numberOfMessages"; + static const slateId = "slateId"; + static const onChainNote = "onChainNote"; + static const isCancelled = "isCancelled"; + static const contractAddress = "contractAddress"; + static const nonce = "nonce"; + static const overrideFee = "overrideFee"; +} diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart index 3c4ce72f7..6536b3f6c 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart @@ -23,6 +23,7 @@ import '../../../../widgets/boost_fee_slider.dart'; import '../../../../widgets/conditional_parent.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/desktop/primary_button.dart'; +import '../../../../widgets/detail_item.dart'; import '../../../../widgets/rounded_white_container.dart'; class BoostTransactionView extends ConsumerStatefulWidget { @@ -45,6 +46,7 @@ class _BoostTransactionViewState extends ConsumerState { late final String walletId; late final TransactionV2 _transaction; late final Amount fee; + late final Amount amount; BigInt? customFee; @@ -74,6 +76,9 @@ class _BoostTransactionViewState extends ConsumerState { fee = _transaction.getFee( fractionDigits: ref.read(pWalletCoin(walletId)).fractionDigits, ); + amount = _transaction.getAmountSentFromThisWallet( + fractionDigits: ref.read(pWalletCoin(walletId)).fractionDigits, + ); super.initState(); } @@ -84,6 +89,12 @@ class _BoostTransactionViewState extends ConsumerState { final String feeString = ref.watch(pAmountFormatter(coin)).format( fee, ); + final String amountString = ref.watch(pAmountFormatter(coin)).format( + amount, + ); + final String feeRateString = + "${(fee.raw / BigInt.from(_transaction.vSize!)).toStringAsFixed(1)}" + " sats/vByte"; return ConditionalParent( condition: !isDesktop, @@ -118,68 +129,58 @@ class _BoostTransactionViewState extends ConsumerState { child: ConditionalParent( condition: isDesktop, builder: (child) { - return RoundedWhiteContainer( - borderColor: isDesktop - ? Theme.of(context).extension()!.backgroundAppBar - : null, - padding: const EdgeInsets.all(0), - child: child, + return Column( + children: [ + RoundedWhiteContainer( + borderColor: isDesktop + ? Theme.of(context) + .extension()! + .backgroundAppBar + : null, + padding: const EdgeInsets.all(0), + child: child, + ), + const SizedBox( + height: 32, + ), + PrimaryButton( + buttonHeight: ButtonHeight.l, + label: "Preview send", + onPressed: _previewTxn, + ), + ], ); }, child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - // const _Divider(), RoundedWhiteContainer( padding: isDesktop - ? const EdgeInsets.all(16) + ? const EdgeInsets.all(0) : const EdgeInsets.all(12), child: Column( children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "Boost fee", - style: isDesktop - ? STextStyles.desktopTextExtraExtraSmall( - context, - ) - : STextStyles.itemSubtitle( - context, - ), - ), - ], - ), - if (!isDesktop) - SelectableText( - feeString, - style: isDesktop - ? STextStyles.desktopTextExtraExtraSmall( - context, - ).copyWith( - color: Theme.of(context) - .extension()! - .textDark, - ) - : STextStyles.itemSubtitle12( - context, - ), - ), - // if (isDesktop) - // IconCopyButton(data: feeString), - ], + DetailItem( + title: "Send amount", + detail: amountString, + horizontal: true, ), + const _Divider(), + DetailItem( + title: "Current fee", + detail: feeString, + horizontal: true, + ), + const _Divider(), + DetailItem( + title: "Current fee rate", + detail: feeRateString, + horizontal: true, + ), + const _Divider(), Padding( - padding: const EdgeInsets.only( - bottom: 12, - top: 16, - ), + padding: const EdgeInsets.all(10), child: BoostFeeSlider( coin: coin, onFeeChanged: (fee) { @@ -195,15 +196,19 @@ class _BoostTransactionViewState extends ConsumerState { // TODO [prio=med]: The max fee should be set to an absurd fee. ), ), - const _Divider(), - PrimaryButton( - buttonHeight: ButtonHeight.l, - label: "Preview send", - onPressed: _previewTxn, - ), ], ), ), + if (!isDesktop) + const SizedBox( + height: 20, + ), + if (!isDesktop) + PrimaryButton( + buttonHeight: ButtonHeight.l, + label: "Preview send", + onPressed: _previewTxn, + ), ], ), ), diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart index 25c2b3fd6..c971142d1 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart @@ -9,6 +9,7 @@ */ import 'dart:async'; +import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -104,6 +105,14 @@ class _TransactionV2DetailsViewState String? _sparkMemo; + Future _updateVSize(RbfInterface rbfWallet) async { + final size = await rbfWallet.getVSize(_transaction.txid); + final otherData = jsonDecode(_transaction.otherData ?? "{}"); + otherData[TxV2OdKeys.vSize] = size!.virtual; + otherData[TxV2OdKeys.size] = size.real; + return _transaction.copyWith(otherData: jsonEncode(otherData)); + } + bool _boostButtonLock = false; Future _boostPressed() async { final wallet = ref.read(pWallets).getWallet(walletId); @@ -113,13 +122,16 @@ class _TransactionV2DetailsViewState _boostButtonLock = true; try { if (Util.isDesktop) { - // TODO fetch size from _transaction after its added to db schema, if not there, - // then fetch using the function below - final size = await showLoading( - whileFuture: wallet.getVSize(_transaction.txid), - context: context, - message: "Fetching transaction vSize...", - ); + if (_transaction.vSize == null) { + final updatedTx = await showLoading( + whileFuture: _updateVSize(wallet), + context: context, + message: "Fetching transaction vSize...", + ); + + // TODO handle errors if null + _transaction = updatedTx!; + } // TODO pass the size in to the rbf screen diff --git a/lib/wallets/wallet/impl/litecoin_wallet.dart b/lib/wallets/wallet/impl/litecoin_wallet.dart index 0bcbf38d5..63c9d7420 100644 --- a/lib/wallets/wallet/impl/litecoin_wallet.dart +++ b/lib/wallets/wallet/impl/litecoin_wallet.dart @@ -1,3 +1,5 @@ +import 'dart:convert'; + import 'package:isar/isar.dart'; import '../../../models/isar/models/blockchain_data/address.dart'; @@ -290,6 +292,14 @@ class LitecoinWallet continue; } + String? otherData; + if (txData["size"] is int || txData["vsize"] is int) { + otherData = jsonEncode({ + TxV2OdKeys.size: txData["size"] as int?, + TxV2OdKeys.vSize: txData["vsize"] as int?, + }); + } + final tx = TransactionV2( walletId: walletId, blockHash: txData["blockhash"] as String?, @@ -303,7 +313,7 @@ class LitecoinWallet outputs: List.unmodifiable(outputs), type: type, subType: subType, - otherData: null, + otherData: otherData, ); txns.add(tx); diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart index 86cd8b66b..fad63f39d 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart @@ -1794,6 +1794,14 @@ mixin PaynymInterface continue; } + String? otherData; + if (txData["size"] is int || txData["vsize"] is int) { + otherData = jsonEncode({ + TxV2OdKeys.size: txData["size"] as int?, + TxV2OdKeys.vSize: txData["vsize"] as int?, + }); + } + final tx = TransactionV2( walletId: walletId, blockHash: txData["blockhash"] as String?, @@ -1807,7 +1815,7 @@ mixin PaynymInterface outputs: List.unmodifiable(outputs), type: type, subType: subType, - otherData: null, + otherData: otherData, ); txns.add(tx); From 741c0be88bc51ec30ab3a08157cde4d519ccf223 Mon Sep 17 00:00:00 2001 From: julian Date: Sun, 16 Jun 2024 10:33:54 -0600 Subject: [PATCH 257/318] refactor updateVSize function --- .../tx_v2/transaction_v2_details_view.dart | 11 +---------- .../wallet_mixin_interfaces/rbf_interface.dart | 14 +++++++++++++- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart index c971142d1..17479eaa6 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart @@ -9,7 +9,6 @@ */ import 'dart:async'; -import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -105,14 +104,6 @@ class _TransactionV2DetailsViewState String? _sparkMemo; - Future _updateVSize(RbfInterface rbfWallet) async { - final size = await rbfWallet.getVSize(_transaction.txid); - final otherData = jsonDecode(_transaction.otherData ?? "{}"); - otherData[TxV2OdKeys.vSize] = size!.virtual; - otherData[TxV2OdKeys.size] = size.real; - return _transaction.copyWith(otherData: jsonEncode(otherData)); - } - bool _boostButtonLock = false; Future _boostPressed() async { final wallet = ref.read(pWallets).getWallet(walletId); @@ -124,7 +115,7 @@ class _TransactionV2DetailsViewState if (Util.isDesktop) { if (_transaction.vSize == null) { final updatedTx = await showLoading( - whileFuture: _updateVSize(wallet), + whileFuture: wallet.updateVSize(_transaction), context: context, message: "Fetching transaction vSize...", ); diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart index a44ea2443..22c011699 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart @@ -1,3 +1,6 @@ +import 'dart:convert'; + +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import 'electrumx_interface.dart'; @@ -5,7 +8,6 @@ typedef TxSize = ({int real, int virtual}); mixin RbfInterface on ElectrumXInterface { - // TODO actually save the size Future getVSize(String txid) async { final tx = await electrumXCachedClient.getTransaction( txHash: txid, @@ -19,5 +21,15 @@ mixin RbfInterface } } + Future updateVSize(TransactionV2 transactionV2) async { + final size = await getVSize(transactionV2.txid); + final otherData = jsonDecode(transactionV2.otherData ?? "{}"); + otherData[TxV2OdKeys.vSize] = size!.virtual; + otherData[TxV2OdKeys.size] = size.real; + final updatedTx = transactionV2.copyWith(otherData: jsonEncode(otherData)); + await mainDB.updateOrPutTransactionV2s([updatedTx]); + return updatedTx; + } + // TODO more RBF specific logic } From a566af8eb430b9b2424270fbbfbd60a468f33fd1 Mon Sep 17 00:00:00 2001 From: julian Date: Sun, 16 Jun 2024 13:25:07 -0600 Subject: [PATCH 258/318] WIP: basic full rbf --- .../tx_v2/boost_transaction_view.dart | 130 ++++++++++++++---- .../tx_v2/transaction_v2_details_view.dart | 15 +- lib/wallets/models/tx_data.dart | 12 +- .../electrumx_interface.dart | 3 +- .../rbf_interface.dart | 86 +++++++++++- lib/widgets/fee_slider.dart | 28 +++- 6 files changed, 229 insertions(+), 45 deletions(-) diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart index 6536b3f6c..f161b3268 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart @@ -8,23 +8,33 @@ * */ +import 'dart:async'; + import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../../pages_desktop_specific/desktop_home_view.dart'; +import '../../../../providers/providers.dart'; +import '../../../../route_generator.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/amount/amount.dart'; import '../../../../utilities/amount/amount_formatter.dart'; +import '../../../../utilities/show_loading.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart'; import '../../../../widgets/background.dart'; -import '../../../../widgets/boost_fee_slider.dart'; import '../../../../widgets/conditional_parent.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/desktop/desktop_dialog.dart'; import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/fee_slider.dart'; import '../../../../widgets/rounded_white_container.dart'; +import '../../../../widgets/stack_dialog.dart'; +import '../../../send_view/confirm_transaction_view.dart'; class BoostTransactionView extends ConsumerStatefulWidget { const BoostTransactionView({ @@ -47,9 +57,12 @@ class _BoostTransactionViewState extends ConsumerState { late final TransactionV2 _transaction; late final Amount fee; late final Amount amount; + late final int rate; BigInt? customFee; + int _newRate = 0; + bool _previewTxnLock = false; Future _previewTxn() async { if (_previewTxnLock) { @@ -57,12 +70,79 @@ class _BoostTransactionViewState extends ConsumerState { } _previewTxnLock = true; try { - // TODO [prio=high]: define previewSend - // build new tx and show loading/tx generation + if (_newRate <= rate) { + await showDialog( + context: context, + builder: (_) => const StackOkDialog( + title: "Error", + message: "New fee rate must be greater than the current rate.", + ), + ); + return; + } - // on success show confirm tx screen + final wallet = (ref.read(pWallets).getWallet(walletId) as RbfInterface); + + Exception? ex; + // build new tx and show loading/tx generation + final txData = await showLoading( + whileFuture: wallet.prepareRbfSend( + oldTransaction: _transaction, + newRate: _newRate, + ), + context: context, + message: "Preparing RBF Transaction...", + onException: (e) => ex = e, + ); // on failure show error message + if (txData == null && mounted) { + await showDialog( + context: context, + builder: (_) => StackOkDialog( + title: "RBF send error", + message: ex?.toString() ?? "Unknown error found", + ), + ); + return; + } else { + // on success show confirm tx screen + if (isDesktop && mounted) { + unawaited( + showDialog( + context: context, + builder: (context) => DesktopDialog( + maxHeight: MediaQuery.of(context).size.height - 64, + maxWidth: 580, + child: ConfirmTransactionView( + txData: txData!, + walletId: walletId, + onSuccess: () {}, + // isPaynymTransaction: isPaynymSend, TODO ? + routeOnSuccessName: DesktopHomeView.routeName, + ), + ), + ), + ); + } else if (mounted) { + unawaited( + Navigator.of(context).push( + RouteGenerator.getRoute( + shouldUseMaterialRoute: RouteGenerator.useMaterialPageRoute, + builder: (_) => ConfirmTransactionView( + txData: txData!, + walletId: walletId, + // isPaynymTransaction: isPaynymSend, TODO ? + onSuccess: () {}, + ), + settings: const RouteSettings( + name: ConfirmTransactionView.routeName, + ), + ), + ), + ); + } + } } finally { _previewTxnLock = false; } @@ -79,6 +159,8 @@ class _BoostTransactionViewState extends ConsumerState { amount = _transaction.getAmountSentFromThisWallet( fractionDigits: ref.read(pWalletCoin(walletId)).fractionDigits, ); + rate = (fee.raw ~/ BigInt.from(_transaction.vSize!)).toInt(); + _newRate = rate + 1; super.initState(); } @@ -92,9 +174,7 @@ class _BoostTransactionViewState extends ConsumerState { final String amountString = ref.watch(pAmountFormatter(coin)).format( amount, ); - final String feeRateString = - "${(fee.raw / BigInt.from(_transaction.vSize!)).toStringAsFixed(1)}" - " sats/vByte"; + final String feeRateString = "$rate sats/vByte"; return ConditionalParent( condition: !isDesktop, @@ -155,10 +235,12 @@ class _BoostTransactionViewState extends ConsumerState { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - RoundedWhiteContainer( - padding: isDesktop - ? const EdgeInsets.all(0) - : const EdgeInsets.all(12), + ConditionalParent( + condition: isDesktop, + builder: (child) => RoundedWhiteContainer( + padding: EdgeInsets.zero, + child: child, + ), child: Column( children: [ DetailItem( @@ -174,38 +256,32 @@ class _BoostTransactionViewState extends ConsumerState { ), const _Divider(), DetailItem( - title: "Current fee rate", + title: "Current rate", detail: feeRateString, horizontal: true, ), const _Divider(), Padding( - padding: const EdgeInsets.all(10), - child: BoostFeeSlider( + padding: const EdgeInsets.all(16), + child: FeeSlider( + overrideLabel: "Select a higher rate", + onSatVByteChanged: (value) => _newRate = value, coin: coin, - onFeeChanged: (fee) { - customFee = fee; - }, - min: _transaction - .getFee(fractionDigits: coin.fractionDigits) - .raw, - max: _transaction - .getFee(fractionDigits: coin.fractionDigits) - .raw * - BigInt.from(4), - // TODO [prio=med]: The max fee should be set to an absurd fee. + min: rate.toDouble() + 1, + max: rate * 5.0, + pow: 1, ), ), ], ), ), + if (!isDesktop) const Spacer(), if (!isDesktop) const SizedBox( - height: 20, + height: 16, ), if (!isDesktop) PrimaryButton( - buttonHeight: ButtonHeight.l, label: "Preview send", onPressed: _previewTxn, ), diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart index 17479eaa6..ce5635c1c 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_details_view.dart @@ -164,7 +164,7 @@ class _TransactionV2DetailsViewState unawaited( Navigator.of(context).pushNamed( BoostTransactionView.routeName, - arguments: (tx: _transaction,), + arguments: _transaction, ), ); } @@ -181,7 +181,8 @@ class _TransactionV2DetailsViewState if (_transaction.type case TransactionType.sentToSelf || TransactionType.outgoing) { - supportsRbf = ref.read(pWallets).getWallet(walletId) is RbfInterface; + supportsRbf = _transaction.subType == TransactionSubType.none && + ref.read(pWallets).getWallet(walletId) is RbfInterface; } else { supportsRbf = false; } @@ -563,12 +564,10 @@ class _TransactionV2DetailsViewState outputLabel = "Sent to"; } - // TODO: [prio=high]: revert the following when done testing - final confirmedTxn = false; - // final confirmedTxn = _transaction.isConfirmed( - // currentHeight, - // coin.minConfirms, - // ); + final confirmedTxn = _transaction.isConfirmed( + currentHeight, + coin.minConfirms, + ); return ConditionalParent( condition: !isDesktop, diff --git a/lib/wallets/models/tx_data.dart b/lib/wallets/models/tx_data.dart index 6a6008742..3efa82f4c 100644 --- a/lib/wallets/models/tx_data.dart +++ b/lib/wallets/models/tx_data.dart @@ -1,13 +1,14 @@ import 'package:cw_monero/pending_monero_transaction.dart'; import 'package:cw_wownero/pending_wownero_transaction.dart'; +import 'package:tezart/tezart.dart' as tezart; +import 'package:web3dart/web3dart.dart' as web3dart; + import '../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../models/isar/models/isar_models.dart'; import '../../models/paynym/paynym_account_lite.dart'; import '../../utilities/amount/amount.dart'; import '../../utilities/enums/fee_rate_type_enum.dart'; import '../isar/models/spark_coin.dart'; -import 'package:tezart/tezart.dart' as tezart; -import 'package:web3dart/web3dart.dart' as web3dart; class TxData { final FeeRateType? feeRateType; @@ -76,6 +77,8 @@ class TxData { final TransactionV2? tempTx; + final bool ignoreCachedBalanceChecks; + TxData({ this.feeRateType, this.feeRateAmount, @@ -112,6 +115,7 @@ class TxData { this.sparkMints, this.usedSparkCoins, this.tempTx, + this.ignoreCachedBalanceChecks = false, }); Amount? get amount => recipients != null && recipients!.isNotEmpty @@ -196,6 +200,7 @@ class TxData { List? sparkMints, List? usedSparkCoins, TransactionV2? tempTx, + bool? ignoreCachedBalanceChecks, }) { return TxData( feeRateType: feeRateType ?? this.feeRateType, @@ -235,6 +240,8 @@ class TxData { sparkMints: sparkMints ?? this.sparkMints, usedSparkCoins: usedSparkCoins ?? this.usedSparkCoins, tempTx: tempTx ?? this.tempTx, + ignoreCachedBalanceChecks: + ignoreCachedBalanceChecks ?? this.ignoreCachedBalanceChecks, ); } @@ -274,5 +281,6 @@ class TxData { 'sparkMints: $sparkMints, ' 'usedSparkCoins: $usedSparkCoins, ' 'tempTx: $tempTx, ' + 'ignoreCachedBalanceChecks: $ignoreCachedBalanceChecks, ' '}'; } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart index 81af17ff6..e7388f245 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart @@ -1648,7 +1648,8 @@ mixin ElectrumXInterface if (customSatsPerVByte != null) { // check for send all bool isSendAll = false; - if (txData.amount == info.cachedBalance.spendable) { + if (txData.ignoreCachedBalanceChecks || + txData.amount == info.cachedBalance.spendable) { isSendAll = true; } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart index 22c011699..d853db7dc 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart @@ -1,7 +1,13 @@ import 'dart:convert'; +import 'package:isar/isar.dart'; + import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../models/isar/models/isar_models.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/fee_rate_type_enum.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../../models/tx_data.dart'; import 'electrumx_interface.dart'; typedef TxSize = ({int real, int virtual}); @@ -31,5 +37,83 @@ mixin RbfInterface return updatedTx; } -// TODO more RBF specific logic + Future prepareRbfSend({ + required TransactionV2 oldTransaction, + required int newRate, + }) async { + final Set utxos = {}; + for (final input in oldTransaction.inputs) { + final utxo = UTXO( + walletId: walletId, + txid: input.outpoint!.txid, + vout: input.outpoint!.vout, + value: input.value.toInt(), + name: "rbf", + isBlocked: false, + blockedReason: null, + isCoinbase: false, + blockHash: "rbf", + blockHeight: 1, + blockTime: 1, + used: false, + address: input.addresses.first, + ); + + utxos.add(utxo); + } + + Amount sendAmount = oldTransaction.getAmountSentFromThisWallet( + fractionDigits: cryptoCurrency.fractionDigits, + ); + + // TODO: fix fragile firstWhere (or at least add some error checking) + final address = oldTransaction.outputs + .firstWhere( + (e) => e.value == sendAmount.raw, + ) + .addresses + .first; + + final inSum = utxos + .map((e) => BigInt.from(e.value)) + .fold(BigInt.zero, (p, e) => p + e); + + if (oldTransaction + .getFee(fractionDigits: cryptoCurrency.fractionDigits) + .raw + + sendAmount.raw == + inSum) { + sendAmount = Amount( + rawValue: oldTransaction + .getFee(fractionDigits: cryptoCurrency.fractionDigits) + .raw + + sendAmount.raw, + fractionDigits: cryptoCurrency.fractionDigits, + ); + } + + final note = await mainDB.isar.transactionNotes + .where() + .walletIdEqualTo(walletId) + .filter() + .txidEqualTo(oldTransaction.txid) + .findFirst(); + + final txData = TxData( + recipients: [ + ( + address: address, + amount: sendAmount, + isChange: false, + ), + ], + feeRateType: FeeRateType.custom, + satsPerVByte: newRate, + utxos: utxos, + ignoreCachedBalanceChecks: true, + note: note?.value ?? "", + ); + + return await prepareSend(txData: txData); + } } diff --git a/lib/widgets/fee_slider.dart b/lib/widgets/fee_slider.dart index aff7fc131..6a8bcf5b7 100644 --- a/lib/widgets/fee_slider.dart +++ b/lib/widgets/fee_slider.dart @@ -1,32 +1,45 @@ import 'dart:math'; import 'package:flutter/material.dart'; + import '../utilities/text_styles.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; +/// This has limitations. At least one of [pow] or [min] must be set to 1 class FeeSlider extends StatefulWidget { const FeeSlider({ super.key, required this.onSatVByteChanged, required this.coin, + this.min = 1, + this.max = 5, + this.pow = 4, this.showWU = false, + this.overrideLabel, }); final CryptoCurrency coin; + final double min; + final double max; + final double pow; final bool showWU; final void Function(int) onSatVByteChanged; + final String? overrideLabel; @override State createState() => _FeeSliderState(); } class _FeeSliderState extends State { - static const double min = 1; - static const double max = 4; - double sliderValue = 0; - int rate = min.toInt(); + late int rate; + + @override + void initState() { + rate = widget.min.toInt(); + super.initState(); + } @override Widget build(BuildContext context) { @@ -36,7 +49,7 @@ class _FeeSliderState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - widget.showWU ? "sat/WU" : "sat/vByte", + widget.overrideLabel ?? (widget.showWU ? "sat/WU" : "sat/vByte"), style: STextStyles.smallMed12(context), ), Text( @@ -50,7 +63,10 @@ class _FeeSliderState extends State { onChanged: (value) { setState(() { sliderValue = value; - final number = pow(sliderValue * (max - min) + min, 4).toDouble(); + final number = pow( + sliderValue * (widget.max - widget.min) + widget.min, + widget.pow, + ).toDouble(); if (widget.coin is Dogecoin) { rate = (number * 1000).toInt(); } else { From ddda4666bb40a8ecc0a2223483f8b81e39f11326 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 18 Jun 2024 14:35:31 -0600 Subject: [PATCH 259/318] basic optional max width (used on rbf boost error dialog) --- .../tx_v2/boost_transaction_view.dart | 1 + lib/widgets/stack_dialog.dart | 92 ++++++++++--------- 2 files changed, 52 insertions(+), 41 deletions(-) diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart index f161b3268..34abbb43e 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/boost_transaction_view.dart @@ -102,6 +102,7 @@ class _BoostTransactionViewState extends ConsumerState { builder: (_) => StackOkDialog( title: "RBF send error", message: ex?.toString() ?? "Unknown error found", + maxWidth: 600, ), ); return; diff --git a/lib/widgets/stack_dialog.dart b/lib/widgets/stack_dialog.dart index 147e83bbd..1c189e660 100644 --- a/lib/widgets/stack_dialog.dart +++ b/lib/widgets/stack_dialog.dart @@ -9,6 +9,7 @@ */ import 'package:flutter/material.dart'; + import '../themes/stack_colors.dart'; import '../utilities/text_styles.dart'; import '../utilities/util.dart'; @@ -148,6 +149,7 @@ class StackOkDialog extends StatelessWidget { required this.title, this.message, this.desktopPopRootNavigator = false, + this.maxWidth, }); final bool desktopPopRootNavigator; @@ -158,6 +160,7 @@ class StackOkDialog extends StatelessWidget { final String title; final String? message; + final double? maxWidth; @override Widget build(BuildContext context) { @@ -165,17 +168,20 @@ class StackOkDialog extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Flexible( - child: Text( - title, - style: STextStyles.pageTitleH2(context), + ConstrainedBox( + constraints: BoxConstraints(maxWidth: maxWidth ?? double.infinity), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + child: Text( + title, + style: STextStyles.pageTitleH2(context), + ), ), - ), - icon != null ? icon! : Container(), - ], + icon != null ? icon! : Container(), + ], + ), ), if (message != null) const SizedBox( @@ -194,40 +200,44 @@ class StackOkDialog extends StatelessWidget { const SizedBox( height: 20, ), - Row( - children: [ - leftButton == null - ? const Spacer() - : Expanded(child: leftButton!), - const SizedBox( - width: 8, - ), - Expanded( - child: TextButton( - onPressed: !Util.isDesktop - ? () { - Navigator.of(context).pop(); - onOkPressed?.call("OK"); - } - : () { - if (desktopPopRootNavigator) { - Navigator.of(context, rootNavigator: true).pop(); - } else { - int count = 0; - Navigator.of(context).popUntil((_) => count++ >= 2); - // onOkPressed?.call("OK"); + ConstrainedBox( + constraints: BoxConstraints(maxWidth: maxWidth ?? double.infinity), + child: Row( + children: [ + leftButton == null + ? const Spacer() + : Expanded(child: leftButton!), + const SizedBox( + width: 8, + ), + Expanded( + child: TextButton( + onPressed: !Util.isDesktop + ? () { + Navigator.of(context).pop(); + onOkPressed?.call("OK"); } - }, - style: Theme.of(context) - .extension()! - .getPrimaryEnabledButtonStyle(context), - child: Text( - "Ok", - style: STextStyles.button(context), + : () { + if (desktopPopRootNavigator) { + Navigator.of(context, rootNavigator: true).pop(); + } else { + int count = 0; + Navigator.of(context) + .popUntil((_) => count++ >= 2); + // onOkPressed?.call("OK"); + } + }, + style: Theme.of(context) + .extension()! + .getPrimaryEnabledButtonStyle(context), + child: Text( + "Ok", + style: STextStyles.button(context), + ), ), ), - ), - ], + ], + ), ), ], ), From e85c9b1747275f9e7bffa38f07c97b9df0f8cb17 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 18 Jun 2024 17:38:22 -0600 Subject: [PATCH 260/318] handle unconfirmed txns in ui when they do not exist in mempool anymore --- .../paynym_interface.dart | 54 ++++++++++++++++--- 1 file changed, 46 insertions(+), 8 deletions(-) diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart index fad63f39d..0d9ebf75b 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart @@ -1617,6 +1617,24 @@ mixin PaynymInterface final List> allTxHashes = await fetchHistory(allAddressesSet); + final unconfirmedTxs = await mainDB.isar.transactionV2s + .where() + .walletIdEqualTo(walletId) + .filter() + .heightIsNull() + .or() + .heightEqualTo(0) + .txidProperty() + .findAll(); + + allTxHashes.addAll( + unconfirmedTxs.map( + (e) => { + "tx_hash": e, + }, + ), + ); + // Only parse new txs (not in db yet). final List> allTransactions = []; for (final txHash in allTxHashes) { @@ -1630,16 +1648,36 @@ mixin PaynymInterface // storedTx.height == null || // (storedTx.height != null && storedTx.height! <= 0)) { // Tx not in db yet. - final tx = await electrumXCachedClient.getTransaction( - txHash: txHash["tx_hash"] as String, - verbose: true, - cryptoCurrency: cryptoCurrency, - ); + final txid = txHash["tx_hash"] as String; + final Map tx; + try { + tx = await electrumXCachedClient.getTransaction( + txHash: txid, + verbose: true, + cryptoCurrency: cryptoCurrency, + ); + } catch (e) { + // tx no longer exists then delete from local db + if (e.toString().contains( + "JSON-RPC error 2: daemon error: DaemonError({'code': -5, " + "'message': 'No such mempool or blockchain transaction", + )) { + await mainDB.isar.writeTxn( + () async => await mainDB.isar.transactionV2s + .where() + .walletIdEqualTo(walletId) + .filter() + .txidEqualTo(txid) + .deleteFirst(), + ); + continue; + } else { + rethrow; + } + } // Only tx to list once. - if (allTransactions - .indexWhere((e) => e["txid"] == tx["txid"] as String) == - -1) { + if (allTransactions.indexWhere((e) => e["txid"] == txid) == -1) { tx["height"] = txHash["height"]; allTransactions.add(tx); } From 02dc543b2f99933de8031e187953e23045bf91de Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 18 Jun 2024 17:38:47 -0600 Subject: [PATCH 261/318] typedef txdata recipients --- lib/wallets/models/tx_data.dart | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/wallets/models/tx_data.dart b/lib/wallets/models/tx_data.dart index 3efa82f4c..774d85e06 100644 --- a/lib/wallets/models/tx_data.dart +++ b/lib/wallets/models/tx_data.dart @@ -10,6 +10,8 @@ import '../../utilities/amount/amount.dart'; import '../../utilities/enums/fee_rate_type_enum.dart'; import '../isar/models/spark_coin.dart'; +typedef TxRecipient = ({String address, Amount amount, bool isChange}); + class TxData { final FeeRateType? feeRateType; final int? feeRateAmount; @@ -28,7 +30,7 @@ class TxData { final String? memo; - final List<({String address, Amount amount, bool isChange})>? recipients; + final List? recipients; final Set? utxos; final List? usedUTXOs; @@ -165,13 +167,7 @@ class TxData { String? memo, Set? utxos, List? usedUTXOs, - List< - ({ - String address, - Amount amount, - bool isChange, - })>? - recipients, + List? recipients, String? frostMSConfig, List? frostSigners, String? changeAddress, From 16c89e37ab8058118815c12d19284dfafc079ddd Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 18 Jun 2024 17:39:49 -0600 Subject: [PATCH 262/318] WIP comprehensive full RBF --- .../rbf_interface.dart | 234 +++++++++++++++--- 1 file changed, 196 insertions(+), 38 deletions(-) diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart index d853db7dc..120f2b5f0 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart @@ -6,6 +6,7 @@ import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../models/isar/models/isar_models.dart'; import '../../../utilities/amount/amount.dart'; import '../../../utilities/enums/fee_rate_type_enum.dart'; +import '../../../utilities/logger.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../../models/tx_data.dart'; import 'electrumx_interface.dart'; @@ -41,6 +42,13 @@ mixin RbfInterface required TransactionV2 oldTransaction, required int newRate, }) async { + final note = await mainDB.isar.transactionNotes + .where() + .walletIdEqualTo(walletId) + .filter() + .txidEqualTo(oldTransaction.txid) + .findFirst(); + final Set utxos = {}; for (final input in oldTransaction.inputs) { final utxo = UTXO( @@ -62,51 +70,56 @@ mixin RbfInterface utxos.add(utxo); } - Amount sendAmount = oldTransaction.getAmountSentFromThisWallet( - fractionDigits: cryptoCurrency.fractionDigits, - ); + final List recipients = []; + for (final output in oldTransaction.outputs) { + if (output.addresses.length != 1) { + throw UnsupportedError( + "Unexpected output.addresses.length: ${output.addresses.length}", + ); + } + final address = output.addresses.first; + final addressModel = await mainDB.getAddress(walletId, address); + final isChange = addressModel?.subType == AddressSubType.change; - // TODO: fix fragile firstWhere (or at least add some error checking) - final address = oldTransaction.outputs - .firstWhere( - (e) => e.value == sendAmount.raw, - ) - .addresses - .first; + recipients.add( + ( + address: address, + amount: Amount( + rawValue: output.value, + fractionDigits: cryptoCurrency.fractionDigits), + isChange: isChange, + ), + ); + } + final oldFee = oldTransaction + .getFee(fractionDigits: cryptoCurrency.fractionDigits) + .raw; final inSum = utxos .map((e) => BigInt.from(e.value)) .fold(BigInt.zero, (p, e) => p + e); - if (oldTransaction - .getFee(fractionDigits: cryptoCurrency.fractionDigits) - .raw + - sendAmount.raw == - inSum) { - sendAmount = Amount( - rawValue: oldTransaction - .getFee(fractionDigits: cryptoCurrency.fractionDigits) - .raw + - sendAmount.raw, - fractionDigits: cryptoCurrency.fractionDigits, - ); - } - - final note = await mainDB.isar.transactionNotes - .where() - .walletIdEqualTo(walletId) + final noChange = + recipients.map((e) => e.isChange).fold(false, (p, e) => p || e) == + false; + final otherAvailableUtxos = await mainDB + .getUTXOs(walletId) .filter() - .txidEqualTo(oldTransaction.txid) - .findFirst(); + .usedIsNull() + .or() + .usedEqualTo(false) + .findAll(); - final txData = TxData( - recipients: [ - ( - address: address, - amount: sendAmount, - isChange: false, - ), - ], + final height = await chainHeight; + otherAvailableUtxos.removeWhere( + (e) => !e.isConfirmed( + height, + cryptoCurrency.minConfirms, + ), + ); + + TxData txData = TxData( + recipients: recipients, feeRateType: FeeRateType.custom, satsPerVByte: newRate, utxos: utxos, @@ -114,6 +127,151 @@ mixin RbfInterface note: note?.value ?? "", ); - return await prepareSend(txData: txData); + if (otherAvailableUtxos.isEmpty && noChange && recipients.length == 1) { + // safe to assume send all? + txData = txData.copyWith( + recipients: [ + ( + address: recipients.first.address, + amount: Amount( + rawValue: inSum, + fractionDigits: cryptoCurrency.fractionDigits, + ), + isChange: false, + ), + ], + ); + Logging.instance.log( + "RBF on assumed send all", + level: LogLevel.Debug, + ); + return await prepareSend(txData: txData); + } else if (txData.recipients!.where((e) => e.isChange).length == 1) { + final newFee = BigInt.from(oldTransaction.vSize! * newRate); + final feeDifferenceRequired = newFee - oldFee; + if (feeDifferenceRequired < BigInt.zero) { + throw Exception("Negative new fee in RBF found"); + } else if (feeDifferenceRequired == BigInt.zero) { + throw Exception("New fee in RBF has not changed at all"); + } + + final indexOfChangeOutput = + txData.recipients!.indexWhere((e) => e.isChange); + + final removed = txData.recipients!.removeAt(indexOfChangeOutput); + + BigInt newChangeAmount = removed.amount.raw - feeDifferenceRequired; + + if (newChangeAmount >= BigInt.zero) { + if (newChangeAmount >= cryptoCurrency.dustLimit.raw) { + // yay we have enough + // update recipients + txData.recipients!.insert( + indexOfChangeOutput, + ( + address: removed.address, + amount: Amount( + rawValue: newChangeAmount, + fractionDigits: cryptoCurrency.fractionDigits, + ), + isChange: removed.isChange, + ), + ); + Logging.instance.log( + "RBF with same utxo set with increased fee and reduced change", + level: LogLevel.Debug, + ); + } else { + // new change amount is less than dust limit. + // TODO: check if worth adding another utxo? + // depending on several factors, it may be cheaper to just add] + // the dust to the fee... + // we'll do that for now... aka remove the change output entirely + // which now that I think about it, will reduce the size of the tx... + // oh well... + + // do nothing here as we already removed the change output above + Logging.instance.log( + "RBF with same utxo set with increased fee and no change", + level: LogLevel.Debug, + ); + } + return await buildTransaction( + txData: txData.copyWith( + usedUTXOs: txData.utxos!.toList(), + fee: Amount( + rawValue: newFee, + fractionDigits: cryptoCurrency.fractionDigits, + ), + ), + utxoSigningData: await fetchBuildTxData(txData.utxos!.toList()), + ); + + // if change amount is negative + } else { + // we need more utxos + if (otherAvailableUtxos.isEmpty) { + throw Exception("Insufficient funds to pay for increased fee"); + } + + final List extraUtxos = []; + for (int i = 0; i < otherAvailableUtxos.length; i++) { + final utxoToAdd = otherAvailableUtxos[i]; + newChangeAmount += BigInt.from(utxoToAdd.value); + extraUtxos.add(utxoToAdd); + + if (newChangeAmount >= cryptoCurrency.dustLimit.raw) { + break; + } + } + + if (newChangeAmount < cryptoCurrency.dustLimit.raw) { + throw Exception("Insufficient funds to pay for increased fee"); + } + txData.recipients!.insert( + indexOfChangeOutput, + ( + address: removed.address, + amount: Amount( + rawValue: newChangeAmount, + fractionDigits: cryptoCurrency.fractionDigits, + ), + isChange: removed.isChange, + ), + ); + + final newUtxoSet = { + ...txData.utxos!, + ...extraUtxos, + }; + + // TODO: remove assert + assert(newUtxoSet.length == txData.utxos!.length + extraUtxos.length); + + Logging.instance.log( + "RBF with ${extraUtxos.length} extra utxo(s)" + " added to pay for the new fee", + level: LogLevel.Debug, + ); + + return await buildTransaction( + txData: txData.copyWith( + utxos: newUtxoSet, + usedUTXOs: newUtxoSet.toList(), + fee: Amount( + rawValue: newFee, + fractionDigits: cryptoCurrency.fractionDigits, + ), + ), + utxoSigningData: await fetchBuildTxData(newUtxoSet.toList()), + ); + } + } else { + // TODO handle building a tx here in this case + throw Exception( + "Unexpected number of change outputs found:" + " ${txData.recipients!.where((e) => e.isChange).length}", + ); + } } } From 37f23a09f5e331b61cf6f1ba838127583ab4323d Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 19 Jun 2024 09:15:49 -0600 Subject: [PATCH 263/318] btc testnet4 --- .../add_wallet_view/add_wallet_view.dart | 2 +- .../address_book_views/address_book_view.dart | 7 +++--- .../subviews/address_book_filter_view.dart | 2 +- .../subviews/coin_select_sheet.dart | 5 +++-- .../new_contact_address_entry_form.dart | 7 +++--- lib/pages/send_view/send_view.dart | 3 +-- .../manage_nodes_views/manage_nodes_view.dart | 2 +- lib/pages/wallet_view/wallet_view.dart | 4 ++-- .../desktop_address_book.dart | 7 +++--- .../wallet_view/sub_widgets/desktop_send.dart | 5 ++--- .../settings_menu/nodes_settings.dart | 2 +- lib/services/frost.dart | 6 ++--- lib/wallets/api/lelantus_ffi_wrapper.dart | 17 ++++++-------- .../crypto_currency/coins/bitcoin.dart | 22 +++++++++++++++++++ .../crypto_currency/coins/bitcoin_frost.dart | 22 +++++++++++++++++++ .../crypto_currency/coins/bitcoincash.dart | 2 +- lib/wallets/crypto_currency/coins/firo.dart | 2 +- .../crypto_currency/crypto_currency.dart | 6 ++++- .../bcash_interface.dart | 5 ++--- .../lelantus_interface.dart | 10 ++++----- .../paynym_interface.dart | 16 +++++++------- .../spark_interface.dart | 15 ++++++------- scripts/app_config/configure_stack_duo.sh | 2 ++ scripts/app_config/configure_stack_wallet.sh | 10 +++++---- 24 files changed, 115 insertions(+), 66 deletions(-) diff --git a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart index 57f707700..deb38a648 100644 --- a/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart +++ b/lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart @@ -63,7 +63,7 @@ class _AddWalletViewState extends ConsumerState { String _searchTerm = ""; final _coinsTestnet = [ - ...AppConfig.coins.where((e) => e.network == CryptoCurrencyNetwork.test), + ...AppConfig.coins.where((e) => e.network.isTestNet), ]; final _coins = [ ...AppConfig.coins.where((e) => e.network == CryptoCurrencyNetwork.main), diff --git a/lib/pages/address_book_views/address_book_view.dart b/lib/pages/address_book_views/address_book_view.dart index dc5cc6f99..852803f6f 100644 --- a/lib/pages/address_book_views/address_book_view.dart +++ b/lib/pages/address_book_views/address_book_view.dart @@ -11,11 +11,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../app_config.dart'; import '../../models/isar/models/blockchain_data/address.dart'; import '../../models/isar/models/contact_entry.dart'; -import 'subviews/add_address_book_entry_view.dart'; -import 'subviews/address_book_filter_view.dart'; import '../../providers/db/main_db_provider.dart'; import '../../providers/global/address_book_service_provider.dart'; import '../../providers/providers.dart'; @@ -35,6 +34,8 @@ import '../../widgets/icon_widgets/x_icon.dart'; import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_text_field.dart'; import '../../widgets/textfield_icon_button.dart'; +import 'subviews/add_address_book_entry_view.dart'; +import 'subviews/address_book_filter_view.dart'; class AddressBookView extends ConsumerStatefulWidget { const AddressBookView({ @@ -67,7 +68,7 @@ class _AddressBookViewState extends ConsumerState { if (widget.coin == null) { final coins = [...AppConfig.coins]; coins.removeWhere( - (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + (e) => e is Firo && e.network.isTestNet, ); final bool showTestNet = diff --git a/lib/pages/address_book_views/subviews/address_book_filter_view.dart b/lib/pages/address_book_views/subviews/address_book_filter_view.dart index 124cf142f..9feaa0a37 100644 --- a/lib/pages/address_book_views/subviews/address_book_filter_view.dart +++ b/lib/pages/address_book_views/subviews/address_book_filter_view.dart @@ -43,7 +43,7 @@ class _AddressBookFilterViewState extends ConsumerState { void initState() { final coins = [...AppConfig.coins]; coins.removeWhere( - (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + (e) => e is Firo && e.network.isTestNet, ); final showTestNet = ref.read(prefsChangeNotifierProvider).showTestNetCoins; diff --git a/lib/pages/address_book_views/subviews/coin_select_sheet.dart b/lib/pages/address_book_views/subviews/coin_select_sheet.dart index 7e2cd0710..64cc5124d 100644 --- a/lib/pages/address_book_views/subviews/coin_select_sheet.dart +++ b/lib/pages/address_book_views/subviews/coin_select_sheet.dart @@ -13,8 +13,9 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import '../../../providers/global/prefs_provider.dart'; + import '../../../app_config.dart'; +import '../../../providers/global/prefs_provider.dart'; import '../../../themes/coin_image_provider.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/constants.dart'; @@ -29,7 +30,7 @@ class CoinSelectSheet extends StatelessWidget { final maxHeight = MediaQuery.of(context).size.height * 0.60; final coins_ = [...AppConfig.coins]; coins_.removeWhere( - (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + (e) => e is Firo && e.network.isTestNet, ); return Container( decoration: BoxDecoration( diff --git a/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart b/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart index fc4c8f900..2bad87bc6 100644 --- a/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart +++ b/lib/pages/address_book_views/subviews/new_contact_address_entry_form.dart @@ -15,11 +15,11 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'coin_select_sheet.dart'; + +import '../../../app_config.dart'; import '../../../providers/providers.dart'; // import 'package:stackwallet/providers/global/should_show_lockscreen_on_resume_state_provider.dart'; import '../../../providers/ui/address_book_providers/address_entry_data_provider.dart'; -import '../../../app_config.dart'; import '../../../themes/coin_icon_provider.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/address_utils.dart'; @@ -36,6 +36,7 @@ import '../../../widgets/icon_widgets/qrcode_icon.dart'; import '../../../widgets/icon_widgets/x_icon.dart'; import '../../../widgets/stack_text_field.dart'; import '../../../widgets/textfield_icon_button.dart'; +import 'coin_select_sheet.dart'; class NewContactAddressEntryForm extends ConsumerStatefulWidget { const NewContactAddressEntryForm({ @@ -92,7 +93,7 @@ class _NewContactAddressEntryFormState if (isDesktop) { coins = [...AppConfig.coins]; coins.removeWhere( - (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + (e) => e is Firo && e.network.isTestNet, ); final showTestNet = diff --git a/lib/pages/send_view/send_view.dart b/lib/pages/send_view/send_view.dart index 8d1f12c5d..c64ce53f3 100644 --- a/lib/pages/send_view/send_view.dart +++ b/lib/pages/send_view/send_view.dart @@ -392,8 +392,7 @@ class _SendViewState extends ConsumerState { ref.read(pValidSparkSendToAddress.notifier).state = SparkInterface.validateSparkAddress( address: address ?? "", - isTestNet: - wallet.cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestNet: wallet.cryptoCurrency.network.isTestNet, ); } diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart index 34b37b621..e44d352f4 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/manage_nodes_view.dart @@ -44,7 +44,7 @@ class _ManageNodesViewState extends ConsumerState { void initState() { _coins = _coins.toList(); _coins.removeWhere( - (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + (e) => e is Firo && e.network.isTestNet, ); super.initState(); } diff --git a/lib/pages/wallet_view/wallet_view.dart b/lib/pages/wallet_view/wallet_view.dart index e4bc2a755..bfe2cb8c5 100644 --- a/lib/pages/wallet_view/wallet_view.dart +++ b/lib/pages/wallet_view/wallet_view.dart @@ -377,7 +377,7 @@ class _WalletViewState extends ConsumerState { Future _onExchangePressed(BuildContext context) async { final CryptoCurrency coin = ref.read(pWalletCoin(walletId)); - if (coin.network == CryptoCurrencyNetwork.test) { + if (coin.network.isTestNet) { await showDialog( context: context, builder: (_) => const StackOkDialog( @@ -423,7 +423,7 @@ class _WalletViewState extends ConsumerState { Future _onBuyPressed(BuildContext context) async { final CryptoCurrency coin = ref.read(pWalletCoin(walletId)); - if (coin.network == CryptoCurrencyNetwork.test) { + if (coin.network.isTestNet) { await showDialog( context: context, builder: (_) => const StackOkDialog( diff --git a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart index c68b9c058..f27147cb3 100644 --- a/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart +++ b/lib/pages_desktop_specific/address_book_view/desktop_address_book.dart @@ -11,13 +11,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../app_config.dart'; import '../../models/isar/models/blockchain_data/address.dart'; import '../../models/isar/models/contact_entry.dart'; import '../../pages/address_book_views/subviews/add_address_book_entry_view.dart'; import '../../pages/address_book_views/subviews/address_book_filter_view.dart'; -import 'subwidgets/desktop_address_book_scaffold.dart'; -import 'subwidgets/desktop_contact_details.dart'; import '../../providers/db/main_db_provider.dart'; import '../../providers/global/address_book_service_provider.dart'; import '../../providers/providers.dart'; @@ -40,6 +39,8 @@ import '../../widgets/rounded_container.dart'; import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_text_field.dart'; import '../../widgets/textfield_icon_button.dart'; +import 'subwidgets/desktop_address_book_scaffold.dart'; +import 'subwidgets/desktop_contact_details.dart'; class DesktopAddressBook extends ConsumerStatefulWidget { const DesktopAddressBook({super.key}); @@ -99,7 +100,7 @@ class _DesktopAddressBook extends ConsumerState { // if (widget.coin == null) { final coins = AppConfig.coins.toList(); coins.removeWhere( - (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + (e) => e is Firo && e.network.isTestNet, ); final bool showTestNet = diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart index 6c7c28296..aa325a653 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart @@ -704,8 +704,7 @@ class _DesktopSendState extends ConsumerState { ref.read(pValidSparkSendToAddress.notifier).state = SparkInterface.validateSparkAddress( address: address ?? "", - isTestNet: - wallet.cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestNet: wallet.cryptoCurrency.network.isTestNet, ); } @@ -1468,7 +1467,7 @@ class _DesktopSendState extends ConsumerState { if (_data != null && _data!.contactLabel == _address) { error = SparkInterface.validateSparkAddress( address: _data!.address, - isTestNet: coin.network == CryptoCurrencyNetwork.test, + isTestNet: coin.network.isTestNet, ) ? "Lelantus to Spark not supported" : null; diff --git a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart index 517073f4c..bf6914869 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart @@ -69,7 +69,7 @@ class _NodesSettings extends ConsumerState { void initState() { _coins = _coins.toList(); _coins.removeWhere( - (e) => e is Firo && e.network == CryptoCurrencyNetwork.test, + (e) => e is Firo && e.network.isTestNet, ); searchNodeController = TextEditingController(); diff --git a/lib/services/frost.dart b/lib/services/frost.dart index 932ee61ed..632299e37 100644 --- a/lib/services/frost.dart +++ b/lib/services/frost.dart @@ -6,6 +6,7 @@ import 'package:frostdart/frostdart.dart'; import 'package:frostdart/frostdart_bindings_generated.dart'; import 'package:frostdart/output.dart'; import 'package:frostdart/util.dart'; + import '../models/isar/models/blockchain_data/utxo.dart'; import '../utilities/amount/amount.dart'; import '../utilities/extensions/extensions.dart'; @@ -83,9 +84,8 @@ abstract class Frost { required CryptoCurrency coin, }) { try { - final network = coin.network == CryptoCurrencyNetwork.test - ? Network.Testnet - : Network.Mainnet; + final network = + coin.network.isTestNet ? Network.Testnet : Network.Mainnet; final signConfigPointer = decodedSignConfig( encodedConfig: signConfig, network: network, diff --git a/lib/wallets/api/lelantus_ffi_wrapper.dart b/lib/wallets/api/lelantus_ffi_wrapper.dart index d43f504c4..44e446507 100644 --- a/lib/wallets/api/lelantus_ffi_wrapper.dart +++ b/lib/wallets/api/lelantus_ffi_wrapper.dart @@ -11,7 +11,6 @@ import '../../utilities/extensions/impl/string.dart'; import '../../utilities/extensions/impl/uint8_list.dart'; import '../../utilities/format.dart'; import '../../utilities/logger.dart'; -import '../crypto_currency/crypto_currency.dart'; import '../crypto_currency/intermediate/bip39_hd_currency.dart'; import '../models/tx_data.dart'; @@ -92,7 +91,7 @@ abstract final class LelantusFfiWrapper { mintKeyPair.privateKey!.toHex, currentIndex, mintKeyPair.identifier.toHex, - isTestnet: args.cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestnet: args.cryptoCurrency.network.isTestNet, ); for (int setId = 1; setId <= args.latestSetId; setId++) { @@ -117,8 +116,7 @@ abstract final class LelantusFfiWrapper { amount, mintKeyPair.privateKey!.toHex, currentIndex, - isTestnet: - args.cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestnet: args.cryptoCurrency.network.isTestNet, ); final bool isUsed = args.usedSerialNumbers.contains(serialNumber); @@ -162,8 +160,7 @@ abstract final class LelantusFfiWrapper { amount, aesPrivateKey, currentIndex, - isTestnet: - args.cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestnet: args.cryptoCurrency.network.isTestNet, ); final bool isUsed = args.usedSerialNumbers.contains(serialNumber); @@ -314,7 +311,7 @@ abstract final class LelantusFfiWrapper { spendAmount: spendAmount, subtractFeeFromAmount: arg.subtractFeeFromAmount, lelantusEntries: arg.lelantusEntries, - isTestNet: arg.cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestNet: arg.cryptoCurrency.network.isTestNet, ), ); final changeToMint = estimateJoinSplitFee.changeToMint; @@ -364,7 +361,7 @@ abstract final class LelantusFfiWrapper { changeToMint, jmintprivatekey, arg.index, - isTestnet: arg.cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestnet: arg.cryptoCurrency.network.isTestNet, ); final _derivePath = "${arg.partialDerivationPath}$JMINT_INDEX/$keyPath"; @@ -378,7 +375,7 @@ abstract final class LelantusFfiWrapper { arg.index, Format.uint8listToString(jmintKeyPair.identifier), aesPrivateKey, - isTestnet: arg.cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestnet: arg.cryptoCurrency.network.isTestNet, ); tx.addOutput( @@ -434,7 +431,7 @@ abstract final class LelantusFfiWrapper { anonymitySets, anonymitySetHashes, groupBlockHashes, - isTestnet: arg.cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestnet: arg.cryptoCurrency.network.isTestNet, ); final finalTx = bitcoindart.TransactionBuilder(network: _network); diff --git a/lib/wallets/crypto_currency/coins/bitcoin.dart b/lib/wallets/crypto_currency/coins/bitcoin.dart index dd103c794..c303124c3 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin.dart @@ -24,6 +24,10 @@ class Bitcoin extends Bip39HDCurrency _id = "bitcoinTestNet"; _name = "tBitcoin"; _ticker = "tBTC"; + case CryptoCurrencyNetwork.test4: + _id = "bitcoinTestNet4"; + _name = "t4Bitcoin"; + _ticker = "t4BTC"; default: throw Exception("Unsupported network: $network"); } @@ -71,6 +75,8 @@ class Bitcoin extends Bip39HDCurrency return "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f"; case CryptoCurrencyNetwork.test: return "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943"; + case CryptoCurrencyNetwork.test4: + return "00000000da84f2bafbbc53dee25a72ae507ff4914b867c565be350b0da8bf043"; default: throw Exception("Unsupported network: $network"); } @@ -99,6 +105,7 @@ class Bitcoin extends Bip39HDCurrency feePerKb: BigInt.from(1), // Not used in stack wallet currently ); case CryptoCurrencyNetwork.test: + case CryptoCurrencyNetwork.test4: return coinlib.Network( wifPrefix: 0xef, p2pkhPrefix: 0x6f, @@ -247,6 +254,19 @@ class Bitcoin extends Bip39HDCurrency isDown: false, ); + case CryptoCurrencyNetwork.test4: + return NodeModel( + host: "bitcoin-testnet4.stackwallet.com", + port: 50002, + name: DefaultNodes.defaultName, + id: DefaultNodes.buildId(this), + useSSL: true, + enabled: true, + coinName: identifier, + isFailover: true, + isDown: false, + ); + default: throw UnimplementedError(); } @@ -286,6 +306,8 @@ class Bitcoin extends Bip39HDCurrency return Uri.parse("https://mempool.space/tx/$txid"); case CryptoCurrencyNetwork.test: return Uri.parse("https://mempool.space/testnet/tx/$txid"); + case CryptoCurrencyNetwork.test4: + return Uri.parse("https://mempool.space/testnet4/tx/$txid"); default: throw Exception( "Unsupported network for defaultBlockExplorer(): $network", diff --git a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart index a5f02ac08..c5e0049b7 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart @@ -24,6 +24,10 @@ class BitcoinFrost extends FrostCurrency { _id = "bitcoinFrostTestNet"; _name = "tBitcoin Frost"; _ticker = "tBTC"; + case CryptoCurrencyNetwork.test4: + _id = "bitcoinFrostTestNet4"; + _name = "t4Bitcoin Frost"; + _ticker = "t4BTC"; default: throw Exception("Unsupported network: $network"); } @@ -84,6 +88,19 @@ class BitcoinFrost extends FrostCurrency { isDown: false, ); + case CryptoCurrencyNetwork.test4: + return NodeModel( + host: "bitcoin-testnet4.stackwallet.com", + port: 50002, + name: DefaultNodes.defaultName, + id: DefaultNodes.buildId(this), + useSSL: true, + enabled: true, + coinName: identifier, + isFailover: true, + isDown: false, + ); + default: throw UnimplementedError(); } @@ -96,6 +113,8 @@ class BitcoinFrost extends FrostCurrency { return "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f"; case CryptoCurrencyNetwork.test: return "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943"; + case CryptoCurrencyNetwork.test4: + return "00000000da84f2bafbbc53dee25a72ae507ff4914b867c565be350b0da8bf043"; default: throw Exception("Unsupported network: $network"); } @@ -132,6 +151,7 @@ class BitcoinFrost extends FrostCurrency { feePerKb: BigInt.from(1), // Not used in stack wallet currently ); case CryptoCurrencyNetwork.test: + case CryptoCurrencyNetwork.test4: return coinlib.Network( wifPrefix: 0xef, p2pkhPrefix: 0x6f, @@ -195,6 +215,8 @@ class BitcoinFrost extends FrostCurrency { return Uri.parse("https://mempool.space/tx/$txid"); case CryptoCurrencyNetwork.test: return Uri.parse("https://mempool.space/testnet/tx/$txid"); + case CryptoCurrencyNetwork.test4: + return Uri.parse("https://mempool.space/testnet4/tx/$txid"); default: throw Exception( "Unsupported network for defaultBlockExplorer(): $network", diff --git a/lib/wallets/crypto_currency/coins/bitcoincash.dart b/lib/wallets/crypto_currency/coins/bitcoincash.dart index e06578ac6..c0014039d 100644 --- a/lib/wallets/crypto_currency/coins/bitcoincash.dart +++ b/lib/wallets/crypto_currency/coins/bitcoincash.dart @@ -211,7 +211,7 @@ class Bitcoincash extends Bip39HDCurrency with ElectrumXCurrencyInterface { // 0 for bitcoincash: address scheme, 1 for legacy address final format = bitbox.Address.detectFormat(address); - if (network == CryptoCurrencyNetwork.test) { + if (network.isTestNet) { return true; } diff --git a/lib/wallets/crypto_currency/coins/firo.dart b/lib/wallets/crypto_currency/coins/firo.dart index 47ee606c4..ae73f13b7 100644 --- a/lib/wallets/crypto_currency/coins/firo.dart +++ b/lib/wallets/crypto_currency/coins/firo.dart @@ -176,7 +176,7 @@ class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { bool validateSparkAddress(String address) { return SparkInterface.validateSparkAddress( address: address, - isTestNet: network == CryptoCurrencyNetwork.test, + isTestNet: network.isTestNet, ); } diff --git a/lib/wallets/crypto_currency/crypto_currency.dart b/lib/wallets/crypto_currency/crypto_currency.dart index eb6e88daa..5ea51e557 100644 --- a/lib/wallets/crypto_currency/crypto_currency.dart +++ b/lib/wallets/crypto_currency/crypto_currency.dart @@ -25,7 +25,11 @@ export 'coins/wownero.dart'; enum CryptoCurrencyNetwork { main, test, - stage; + stage, + test4; + + bool get isTestNet => + this == CryptoCurrencyNetwork.test || this == CryptoCurrencyNetwork.test4; } abstract class CryptoCurrency { diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart index be0727bfc..0fd65ba0d 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/bcash_interface.dart @@ -8,7 +8,6 @@ import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../models/isar/models/isar_models.dart'; import '../../../models/signing_data.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../../models/tx_data.dart'; import '../intermediate/bip39_hd_wallet.dart'; @@ -27,7 +26,7 @@ mixin BCashInterface // TODO: use coinlib final builder = bitbox.Bitbox.transactionBuilder( - testnet: cryptoCurrency.network == CryptoCurrencyNetwork.test, + testnet: cryptoCurrency.network.isTestNet, ); builder.setVersion(cryptoCurrency.transactionVersion); @@ -100,7 +99,7 @@ mixin BCashInterface network: bitbox_utils.Network( cryptoCurrency.networkParams.privHDPrefix, cryptoCurrency.networkParams.pubHDPrefix, - cryptoCurrency.network == CryptoCurrencyNetwork.test, + cryptoCurrency.network.isTestNet, cryptoCurrency.networkParams.p2pkhPrefix, cryptoCurrency.networkParams.wifPrefix, cryptoCurrency.networkParams.p2pkhPrefix, diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart index 9d536197a..7116f6c7d 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart @@ -6,6 +6,8 @@ import 'package:bitcoindart/bitcoindart.dart' as bitcoindart; import 'package:decimal/decimal.dart'; import 'package:isar/isar.dart'; import 'package:lelantus/lelantus.dart' as lelantus; +import 'package:tuple/tuple.dart'; + import '../../../models/balance.dart'; import '../../../models/isar/models/isar_models.dart'; import '../../../models/lelantus_fee_data.dart'; @@ -15,12 +17,10 @@ import '../../../utilities/extensions/impl/uint8_list.dart'; import '../../../utilities/format.dart'; import '../../../utilities/logger.dart'; import '../../api/lelantus_ffi_wrapper.dart'; -import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../../models/tx_data.dart'; import '../intermediate/bip39_hd_wallet.dart'; import 'electrumx_interface.dart'; -import 'package:tuple/tuple.dart'; mixin LelantusInterface on Bip39HDWallet, ElectrumXInterface { @@ -38,7 +38,7 @@ mixin LelantusInterface spendAmount: amount, subtractFeeFromAmount: true, lelantusEntries: lelantusEntries, - isTestNet: cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestNet: cryptoCurrency.network.isTestNet, ); return Amount( @@ -526,7 +526,7 @@ mixin LelantusInterface int.parse(coin.value), mintKeyPair.privateKey.data.toHex, coin.mintIndex, - isTestnet: cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestnet: cryptoCurrency.network.isTestNet, ); final bool isUsed = usedSerialNumbersSet.contains(serialNumber); @@ -1033,7 +1033,7 @@ mixin LelantusInterface await mainDB.getHighestUsedMintIndex(walletId: walletId); final nextFreeMintIndex = (lastUsedIndex ?? 0) + 1; - final isTestnet = cryptoCurrency.network == CryptoCurrencyNetwork.test; + final isTestnet = cryptoCurrency.network.isTestNet; final root = await getRootHDNode(); diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart index 0d9ebf75b..f86e76d0d 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart @@ -68,7 +68,7 @@ mixin PaynymInterface final root = await _getRootNode(); final node = root.derivePath( _basePaynymDerivePath( - testnet: info.coin.network == CryptoCurrencyNetwork.test, + testnet: info.coin.network.isTestNet, ), ); return node; @@ -159,7 +159,7 @@ mixin PaynymInterface final root = await _getRootNode(); final node = root.derivePath( _basePaynymDerivePath( - testnet: info.coin.network == CryptoCurrencyNetwork.test, + testnet: info.coin.network.isTestNet, ), ); @@ -182,7 +182,7 @@ mixin PaynymInterface derivationPath: DerivationPath() ..value = _receivingPaynymAddressDerivationPath( index, - testnet: info.coin.network == CryptoCurrencyNetwork.test, + testnet: info.coin.network.isTestNet, ), type: generateSegwitAddress ? AddressType.p2wpkh : AddressType.p2pkh, subType: AddressSubType.paynymReceive, @@ -219,7 +219,7 @@ mixin PaynymInterface derivationPath: DerivationPath() ..value = _sendPaynymAddressDerivationPath( index, - testnet: info.coin.network == CryptoCurrencyNetwork.test, + testnet: info.coin.network.isTestNet, ), type: AddressType.nonWallet, subType: AddressSubType.paynymSend, @@ -314,7 +314,7 @@ mixin PaynymInterface final node = root .derivePath( _basePaynymDerivePath( - testnet: info.coin.network == CryptoCurrencyNetwork.test, + testnet: info.coin.network.isTestNet, ), ) .derive(0); @@ -330,7 +330,7 @@ mixin PaynymInterface final paymentCode = PaymentCode.fromBip32Node( node.derivePath( _basePaynymDerivePath( - testnet: info.coin.network == CryptoCurrencyNetwork.test, + testnet: info.coin.network.isTestNet, ), ), networkType: networkType, @@ -1469,7 +1469,7 @@ mixin PaynymInterface final root = await _getRootNode(); final node = root.derivePath( _basePaynymDerivePath( - testnet: info.coin.network == CryptoCurrencyNetwork.test, + testnet: info.coin.network.isTestNet, ), ); final paymentCode = PaymentCode.fromBip32Node( @@ -1497,7 +1497,7 @@ mixin PaynymInterface derivationIndex: 0, derivationPath: DerivationPath() ..value = _notificationDerivationPath( - testnet: info.coin.network == CryptoCurrencyNetwork.test, + testnet: info.coin.network.isTestNet, ), type: AddressType.p2pkh, subType: AddressSubType.paynymNotification, diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index 496147da1..90f7cfe31 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -18,7 +18,6 @@ import '../../../utilities/amount/amount.dart'; import '../../../utilities/enums/derive_path_type_enum.dart'; import '../../../utilities/extensions/extensions.dart'; import '../../../utilities/logger.dart'; -import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../../isar/models/spark_coin.dart'; import '../../isar/models/wallet_info.dart'; @@ -86,7 +85,7 @@ mixin SparkInterface if (_sparkChangeAddressCached == null) { final root = await getRootHDNode(); final String derivationPath; - if (cryptoCurrency.network == CryptoCurrencyNetwork.test) { + if (cryptoCurrency.network.isTestNet) { derivationPath = "$kSparkBaseDerivationPathTestnet$kDefaultSparkIndex"; } else { @@ -98,7 +97,7 @@ mixin SparkInterface privateKey: keys.privateKey.data, index: kDefaultSparkIndex, diversifier: kSparkChange, - isTestNet: cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestNet: cryptoCurrency.network.isTestNet, ); } } catch (e, s) { @@ -158,7 +157,7 @@ mixin SparkInterface final root = await getRootHDNode(); final String derivationPath; - if (cryptoCurrency.network == CryptoCurrencyNetwork.test) { + if (cryptoCurrency.network.isTestNet) { derivationPath = "$kSparkBaseDerivationPathTestnet$kDefaultSparkIndex"; } else { derivationPath = "$kSparkBaseDerivationPath$kDefaultSparkIndex"; @@ -169,7 +168,7 @@ mixin SparkInterface privateKey: keys.privateKey.data, index: kDefaultSparkIndex, diversifier: diversifier, - isTestNet: cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestNet: cryptoCurrency.network.isTestNet, ); return Address( @@ -335,7 +334,7 @@ mixin SparkInterface final root = await getRootHDNode(); final String derivationPath; - if (cryptoCurrency.network == CryptoCurrencyNetwork.test) { + if (cryptoCurrency.network.isTestNet) { derivationPath = "$kSparkBaseDerivationPathTestnet$kDefaultSparkIndex"; } else { derivationPath = "$kSparkBaseDerivationPath$kDefaultSparkIndex"; @@ -704,7 +703,7 @@ mixin SparkInterface groupId: groupId, privateKeyHexSet: privateKeyHexSet, walletId: walletId, - isTestNet: cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestNet: cryptoCurrency.network.isTestNet, ), ); @@ -836,7 +835,7 @@ mixin SparkInterface groupId: groupId, privateKeyHexSet: privateKeyHexSet, walletId: walletId, - isTestNet: cryptoCurrency.network == CryptoCurrencyNetwork.test, + isTestNet: cryptoCurrency.network.isTestNet, ), ); newlyIdCoins.addAll(myCoins); diff --git a/scripts/app_config/configure_stack_duo.sh b/scripts/app_config/configure_stack_duo.sh index 56c12bd37..7c1b2ff36 100755 --- a/scripts/app_config/configure_stack_duo.sh +++ b/scripts/app_config/configure_stack_duo.sh @@ -56,7 +56,9 @@ final List _supportedCoins = List.unmodifiable([ Monero(CryptoCurrencyNetwork.main), BitcoinFrost(CryptoCurrencyNetwork.main), Bitcoin(CryptoCurrencyNetwork.test), + Bitcoin(CryptoCurrencyNetwork.test4), BitcoinFrost(CryptoCurrencyNetwork.test), + BitcoinFrost(CryptoCurrencyNetwork.test4), ]); EOF \ No newline at end of file diff --git a/scripts/app_config/configure_stack_wallet.sh b/scripts/app_config/configure_stack_wallet.sh index 7c0dc2a67..fb2438182 100755 --- a/scripts/app_config/configure_stack_wallet.sh +++ b/scripts/app_config/configure_stack_wallet.sh @@ -69,13 +69,15 @@ final List _supportedCoins = List.unmodifiable([ Tezos(CryptoCurrencyNetwork.main), Wownero(CryptoCurrencyNetwork.main), Bitcoin(CryptoCurrencyNetwork.test), - BitcoinFrost(CryptoCurrencyNetwork.test), - Litecoin(CryptoCurrencyNetwork.test), + Bitcoin(CryptoCurrencyNetwork.test4), Bitcoincash(CryptoCurrencyNetwork.test), - Firo(CryptoCurrencyNetwork.test), + BitcoinFrost(CryptoCurrencyNetwork.test), + BitcoinFrost(CryptoCurrencyNetwork.test4), Dogecoin(CryptoCurrencyNetwork.test), - Stellar(CryptoCurrencyNetwork.test), + Firo(CryptoCurrencyNetwork.test), + Litecoin(CryptoCurrencyNetwork.test), Peercoin(CryptoCurrencyNetwork.test), + Stellar(CryptoCurrencyNetwork.test), ]); EOF \ No newline at end of file From e2c81a1af06df50349d95e725ce89465183e9a38 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 19 Jun 2024 10:15:39 -0600 Subject: [PATCH 264/318] fix: rbf should not touch blocked/frozen utxos --- .../wallet/wallet_mixin_interfaces/rbf_interface.dart | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart index 120f2b5f0..04286fbd5 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart @@ -105,9 +105,11 @@ mixin RbfInterface final otherAvailableUtxos = await mainDB .getUTXOs(walletId) .filter() - .usedIsNull() - .or() - .usedEqualTo(false) + .isBlockedEqualTo(false) + .and() + .group( + (q) => q.usedIsNull().or().usedEqualTo(false), + ) .findAll(); final height = await chainHeight; From 318932022ea5e77b602e1e51a921556b31576568 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 19 Jun 2024 10:22:41 -0600 Subject: [PATCH 265/318] WIP: very basic CPFP --- lib/wallets/wallet/impl/bitcoin_wallet.dart | 4 +++- .../wallet_mixin_interfaces/cpfp_interface.dart | 7 +++++++ .../electrumx_interface.dart | 15 ++++++++++++++- 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 lib/wallets/wallet/wallet_mixin_interfaces/cpfp_interface.dart diff --git a/lib/wallets/wallet/impl/bitcoin_wallet.dart b/lib/wallets/wallet/impl/bitcoin_wallet.dart index d028136dc..cbe49e180 100644 --- a/lib/wallets/wallet/impl/bitcoin_wallet.dart +++ b/lib/wallets/wallet/impl/bitcoin_wallet.dart @@ -6,6 +6,7 @@ import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/paynym_currency_interface.dart'; import '../intermediate/bip39_hd_wallet.dart'; import '../wallet_mixin_interfaces/coin_control_interface.dart'; +import '../wallet_mixin_interfaces/cpfp_interface.dart'; import '../wallet_mixin_interfaces/electrumx_interface.dart'; import '../wallet_mixin_interfaces/paynym_interface.dart'; import '../wallet_mixin_interfaces/rbf_interface.dart'; @@ -15,7 +16,8 @@ class BitcoinWallet extends Bip39HDWallet ElectrumXInterface, CoinControlInterface, PaynymInterface, - RbfInterface { + RbfInterface, + CpfpInterface { @override int get isarTransactionVersion => 2; diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/cpfp_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/cpfp_interface.dart new file mode 100644 index 000000000..9bc636af6 --- /dev/null +++ b/lib/wallets/wallet/wallet_mixin_interfaces/cpfp_interface.dart @@ -0,0 +1,7 @@ +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import 'electrumx_interface.dart'; + +mixin CpfpInterface + on ElectrumXInterface { + // +} diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart index e7388f245..a6179b491 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart @@ -26,6 +26,7 @@ import '../../models/tx_data.dart'; import '../impl/bitcoin_wallet.dart'; import '../impl/peercoin_wallet.dart'; import '../intermediate/bip39_hd_wallet.dart'; +import 'cpfp_interface.dart'; import 'paynym_interface.dart'; mixin ElectrumXInterface @@ -122,12 +123,16 @@ mixin ElectrumXInterface utxos ?? await mainDB.getUTXOs(walletId).findAll(); final currentChainHeight = await chainHeight; + final canCPFP = this is CpfpInterface && coinControl; + final spendableOutputs = availableOutputs .where( (e) => !e.isBlocked && (e.used != true) && - e.isConfirmed(currentChainHeight, cryptoCurrency.minConfirms), + (canCPFP || + e.isConfirmed( + currentChainHeight, cryptoCurrency.minConfirms)), ) .toList(); final spendableSatoshiValue = @@ -1655,6 +1660,14 @@ mixin ElectrumXInterface final bool coinControl = utxos != null; + if (coinControl && + this is CpfpInterface && + txData.amount == + (info.cachedBalance.spendable + + info.cachedBalance.pendingSpendable)) { + isSendAll = true; + } + final result = await coinSelection( txData: txData.copyWith(feeRateAmount: -1), isSendAll: isSendAll, From 92850270068351ff1e5e6ab0aa5ddae6dd177b98 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 19 Jun 2024 13:54:14 -0600 Subject: [PATCH 266/318] fix: provider refresh causing issues --- .../my_stack_view/wallet_view/sub_widgets/desktop_send.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart index aa325a653..d54e262f6 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart @@ -882,7 +882,9 @@ class _DesktopSendState extends ConsumerState { _cryptoFocus.addListener(() { if (!_cryptoFocus.hasFocus && !_baseFocus.hasFocus) { if (ref.read(pSendAmount) == null) { - ref.refresh(sendAmountProvider); + if (ref.read(sendAmountProvider) != Amount.zero && mounted) { + ref.read(sendAmountProvider.state).state = Amount.zero; + } } else { ref.read(sendAmountProvider.state).state = ref.read(pSendAmount)!; } From a22a97aee1a17792157a4c48231bbe1a9ac1a9c7 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 19 Jun 2024 13:54:34 -0600 Subject: [PATCH 267/318] make coin control string amount values selectable --- lib/pages/coin_control/coin_control_view.dart | 4 ++-- .../coin_control/desktop_coin_control_use_dialog.dart | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/pages/coin_control/coin_control_view.dart b/lib/pages/coin_control/coin_control_view.dart index f4347a586..095046736 100644 --- a/lib/pages/coin_control/coin_control_view.dart +++ b/lib/pages/coin_control/coin_control_view.dart @@ -694,7 +694,7 @@ class _CoinControlViewState extends ConsumerState { selectedSumInt.toAmountAsRaw( fractionDigits: coin.fractionDigits, ); - return Text( + return SelectableText( ref .watch(pAmountFormatter(coin)) .format(selectedSum), @@ -739,7 +739,7 @@ class _CoinControlViewState extends ConsumerState { "Amount to send", style: STextStyles.w600_14(context), ), - Text( + SelectableText( ref .watch(pAmountFormatter(coin)) .format(widget.requestedTotal!), diff --git a/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart b/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart index dce4eeafc..c66fb387d 100644 --- a/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart +++ b/lib/pages_desktop_specific/coin_control/desktop_coin_control_use_dialog.dart @@ -488,7 +488,7 @@ class _DesktopCoinControlUseDialogState .textDark, ), ), - Text( + SelectableText( "${widget.amountToSend!.decimal.toStringAsFixed( coin.fractionDigits, )}" @@ -523,7 +523,7 @@ class _DesktopCoinControlUseDialogState .textDark, ), ), - Text( + SelectableText( "${selectedSum.decimal.toStringAsFixed( coin.fractionDigits, )} ${coin.ticker}", From e9075741eed2bb4249bd809d761b948e81fc2646 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 19 Jun 2024 14:16:08 -0600 Subject: [PATCH 268/318] fix mobile wallet settings showing firo specifics to all wallets --- .../wallet_settings_wallet_settings_view.dart | 127 ++++++++++-------- 1 file changed, 68 insertions(+), 59 deletions(-) diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart index 9c874514e..87fcfb6cf 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart @@ -11,11 +11,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../../../../providers/providers.dart'; import '../../../../route_generator.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/constants.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; import '../../../../widgets/background.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/rounded_white_container.dart'; @@ -183,73 +186,79 @@ class WalletSettingsWalletSettingsView extends ConsumerWidget { ), ), ), - const SizedBox( - height: 8, - ), - RoundedWhiteContainer( - padding: const EdgeInsets.all(0), - child: RawMaterialButton( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius, + if (ref.watch(pWallets).getWallet(walletId) + is LelantusInterface) + const SizedBox( + height: 8, + ), + if (ref.watch(pWallets).getWallet(walletId) + is LelantusInterface) + RoundedWhiteContainer( + padding: const EdgeInsets.all(0), + child: RawMaterialButton( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), ), - ), - materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, - onPressed: () { - Navigator.of(context).pushNamed( - LelantusSettingsView.routeName, - arguments: walletId, - ); - }, - child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 12.0, - vertical: 20, - ), - child: Row( - children: [ - Text( - "Lelantus settings", - style: STextStyles.titleBold12(context), - ), - ], + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + onPressed: () { + Navigator.of(context).pushNamed( + LelantusSettingsView.routeName, + arguments: walletId, + ); + }, + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 12.0, + vertical: 20, + ), + child: Row( + children: [ + Text( + "Lelantus settings", + style: STextStyles.titleBold12(context), + ), + ], + ), ), ), ), - ), - const SizedBox( - height: 8, - ), - RoundedWhiteContainer( - padding: const EdgeInsets.all(0), - child: RawMaterialButton( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius, + if (ref.watch(pWallets).getWallet(walletId) is SparkInterface) + const SizedBox( + height: 8, + ), + if (ref.watch(pWallets).getWallet(walletId) is SparkInterface) + RoundedWhiteContainer( + padding: const EdgeInsets.all(0), + child: RawMaterialButton( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), ), - ), - materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, - onPressed: () { - Navigator.of(context).pushNamed( - SparkInfoView.routeName, - ); - }, - child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 12.0, - vertical: 20, - ), - child: Row( - children: [ - Text( - "Spark info", - style: STextStyles.titleBold12(context), - ), - ], + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + onPressed: () { + Navigator.of(context).pushNamed( + SparkInfoView.routeName, + ); + }, + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 12.0, + vertical: 20, + ), + child: Row( + children: [ + Text( + "Spark info", + style: STextStyles.titleBold12(context), + ), + ], + ), ), ), ), - ), ], ), ), From 44c5f1551e6f95a47bdcef63e03112c2d71bfc37 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 19 Jun 2024 14:40:40 -0600 Subject: [PATCH 269/318] default to taproot for bitcoin --- lib/wallets/crypto_currency/coins/bitcoin.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/wallets/crypto_currency/coins/bitcoin.dart b/lib/wallets/crypto_currency/coins/bitcoin.dart index c303124c3..88943d0ea 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin.dart @@ -288,7 +288,7 @@ class Bitcoin extends Bip39HDCurrency List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; @override - AddressType get primaryAddressType => AddressType.p2wpkh; + AddressType get primaryAddressType => AddressType.p2tr; @override BigInt get satsPerCoin => BigInt.from(100000000); @@ -297,7 +297,7 @@ class Bitcoin extends Bip39HDCurrency int get targetBlockTimeSeconds => 600; @override - DerivePathType get primaryDerivePathType => DerivePathType.bip84; + DerivePathType get primaryDerivePathType => DerivePathType.bip86; @override Uri defaultBlockExplorer(String txid) { From 3f2fe2b2ce6e68c7eb67f1f4801c5c6ad2b24985 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 19 Jun 2024 14:42:08 -0600 Subject: [PATCH 270/318] add wallet level toggle to flag outgoing transactions as opt-in RBF --- .../more_features/more_features_dialog.dart | 54 +++++++++++++++++++ lib/wallets/isar/models/wallet_info.dart | 1 + .../electrumx_interface.dart | 14 +++-- .../rbf_interface.dart | 4 ++ 4 files changed, 69 insertions(+), 4 deletions(-) diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart index f88279263..d440b9c4e 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart @@ -28,6 +28,7 @@ import '../../../../../wallets/wallet/wallet_mixin_interfaces/coin_control_inter import '../../../../../wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/ordinals_interface.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/paynym_interface.dart'; +import '../../../../../wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; import '../../../../../widgets/custom_buttons/draggable_switch_button.dart'; import '../../../../../widgets/desktop/desktop_dialog.dart'; @@ -81,6 +82,27 @@ class _MoreFeaturesDialogState extends ConsumerState { } } + bool _switchRbfToggledLock = false; // Mutex. + Future _switchRbfToggled(bool newValue) async { + if (_switchRbfToggledLock) { + return; + } + _switchRbfToggledLock = true; // Lock mutex. + + try { + // Toggle enableOptInRbf in wallet info. + await ref.read(pWalletInfo(widget.walletId)).updateOtherData( + newEntries: { + WalletInfoKeys.enableOptInRbf: newValue, + }, + isar: ref.read(mainDBProvider).isar, + ); + } finally { + // ensure _switchRbfToggledLock is set to false no matter what + _switchRbfToggledLock = false; + } + } + @override Widget build(BuildContext context) { final wallet = ref.watch( @@ -198,6 +220,38 @@ class _MoreFeaturesDialogState extends ConsumerState { ], ), ), + if (wallet is RbfInterface) + _MoreFeaturesItemBase( + child: Row( + children: [ + const SizedBox(width: 3), + SizedBox( + height: 20, + width: 40, + child: DraggableSwitchButton( + isOn: ref.watch( + pWalletInfo(widget.walletId) + .select((value) => value.otherData), + )[WalletInfoKeys.enableOptInRbf] as bool? ?? + false, + onValueChanged: _switchRbfToggled, + ), + ), + const SizedBox( + width: 16, + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Flag outgoing transactions with opt-in RBF", + style: STextStyles.w600_20(context), + ), + ], + ), + ], + ), + ), const SizedBox( height: 28, ), diff --git a/lib/wallets/isar/models/wallet_info.dart b/lib/wallets/isar/models/wallet_info.dart index 55fc5e8a6..21ab499f0 100644 --- a/lib/wallets/isar/models/wallet_info.dart +++ b/lib/wallets/isar/models/wallet_info.dart @@ -510,4 +510,5 @@ abstract class WalletInfoKeys { static const String enableLelantusScanning = "enableLelantusScanningKey"; static const String firoSparkCacheSetTimestampCache = "firoSparkCacheSetTimestampCacheKey"; + static const String enableOptInRbf = "enableOptInRbfKey"; } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart index a6179b491..3ff1d65c3 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart @@ -28,6 +28,7 @@ import '../impl/peercoin_wallet.dart'; import '../intermediate/bip39_hd_wallet.dart'; import 'cpfp_interface.dart'; import 'paynym_interface.dart'; +import 'rbf_interface.dart'; mixin ElectrumXInterface on Bip39HDWallet { @@ -633,6 +634,11 @@ mixin ElectrumXInterface outputs: [], ); + // TODO: [prio=high]: check this opt in rbf + final sequence = this is RbfInterface && (this as RbfInterface).flagOptInRBF + ? 0xffffffff - 10 + : 0xffffffff - 1; + // Add transaction inputs for (var i = 0; i < utxoSigningData.length; i++) { final txid = utxoSigningData[i].utxo.txid; @@ -664,7 +670,7 @@ mixin ElectrumXInterface input = coinlib.P2PKHInput( prevOut: prevOutpoint, publicKey: utxoSigningData[i].keyPair!.publicKey, - sequence: 0xffffffff - 1, + sequence: sequence, ); // TODO: fix this as it is (probably) wrong! @@ -675,14 +681,14 @@ mixin ElectrumXInterface // program: coinlib.MultisigProgram.decompile( // utxoSigningData[i].redeemScript!, // ), - // sequence: 0xffffffff - 1, + // sequence: sequence, // ); case DerivePathType.bip84: input = coinlib.P2WPKHInput( prevOut: prevOutpoint, publicKey: utxoSigningData[i].keyPair!.publicKey, - sequence: 0xffffffff - 1, + sequence: sequence, ); case DerivePathType.bip86: @@ -700,7 +706,7 @@ mixin ElectrumXInterface InputV2.isarCantDoRequiredInDefaultConstructor( scriptSigHex: input.scriptSig.toHex, scriptSigAsm: null, - sequence: 0xffffffff - 1, + sequence: sequence, outpoint: OutpointV2.isarCantDoRequiredInDefaultConstructor( txid: utxoSigningData[i].utxo.txid, vout: utxoSigningData[i].utxo.vout, diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart index 04286fbd5..c71fa4c36 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart @@ -8,6 +8,7 @@ import '../../../utilities/amount/amount.dart'; import '../../../utilities/enums/fee_rate_type_enum.dart'; import '../../../utilities/logger.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../../isar/models/wallet_info.dart'; import '../../models/tx_data.dart'; import 'electrumx_interface.dart'; @@ -15,6 +16,9 @@ typedef TxSize = ({int real, int virtual}); mixin RbfInterface on ElectrumXInterface { + bool get flagOptInRBF => + info.otherData[WalletInfoKeys.enableOptInRbf] as bool? ?? false; + Future getVSize(String txid) async { final tx = await electrumXCachedClient.getTransaction( txHash: txid, From a81fb14f133880c74b2d8c8c266b04659fb454bb Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 20 Jun 2024 08:56:50 -0600 Subject: [PATCH 271/318] add opt in rbf setting on mobile --- .../rbf_settings_view.dart | 105 ++++++++++++++++++ .../wallet_settings_wallet_settings_view.dart | 38 +++++++ lib/route_generator.dart | 13 +++ 3 files changed, 156 insertions(+) create mode 100644 lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rbf_settings_view.dart diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rbf_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rbf_settings_view.dart new file mode 100644 index 000000000..088b33379 --- /dev/null +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rbf_settings_view.dart @@ -0,0 +1,105 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; + +import '../../../../providers/db/main_db_provider.dart'; +import '../../../../themes/stack_colors.dart'; +import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/isar/models/wallet_info.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../widgets/background.dart'; +import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; +import '../../../../widgets/custom_buttons/draggable_switch_button.dart'; + +class RbfSettingsView extends ConsumerStatefulWidget { + const RbfSettingsView({ + super.key, + required this.walletId, + }); + + static const String routeName = "/rbfSettings"; + + final String walletId; + + @override + ConsumerState createState() => _RbfSettingsViewState(); +} + +class _RbfSettingsViewState extends ConsumerState { + bool _switchRbfToggledLock = false; // Mutex. + Future _switchRbfToggled(bool newValue) async { + if (_switchRbfToggledLock) { + return; + } + _switchRbfToggledLock = true; // Lock mutex. + + try { + // Toggle enableOptInRbf in wallet info. + await ref.read(pWalletInfo(widget.walletId)).updateOtherData( + newEntries: { + WalletInfoKeys.enableOptInRbf: newValue, + }, + isar: ref.read(mainDBProvider).isar, + ); + } finally { + // ensure _switchRbfToggledLock is set to false no matter what + _switchRbfToggledLock = false; + } + } + + @override + Widget build(BuildContext context) { + return Background( + child: Scaffold( + backgroundColor: Theme.of(context).extension()!.background, + appBar: AppBar( + leading: AppBarBackButton( + onPressed: () { + Navigator.of(context).pop(); + }, + ), + title: Text( + "RBF settings", + style: STextStyles.navBarTitle(context), + ), + ), + body: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Row( + children: [ + const SizedBox(width: 3), + SizedBox( + height: 20, + width: 40, + child: DraggableSwitchButton( + isOn: ref.watch( + pWalletInfo(widget.walletId) + .select((value) => value.otherData), + )[WalletInfoKeys.enableOptInRbf] as bool? ?? + false, + onValueChanged: _switchRbfToggled, + ), + ), + const SizedBox( + width: 16, + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Enable opt-in RBF", + style: STextStyles.w600_20(context), + ), + ], + ), + ], + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart index 87fcfb6cf..d7e58ece5 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart @@ -18,6 +18,7 @@ import '../../../../utilities/constants.dart'; import '../../../../utilities/text_styles.dart'; import '../../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../../wallets/wallet/wallet_mixin_interfaces/lelantus_interface.dart'; +import '../../../../wallets/wallet/wallet_mixin_interfaces/rbf_interface.dart'; import '../../../../wallets/wallet/wallet_mixin_interfaces/spark_interface.dart'; import '../../../../widgets/background.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; @@ -26,6 +27,7 @@ import '../../../../widgets/stack_dialog.dart'; import '../../../pinpad_views/lock_screen_view.dart'; import 'delete_wallet_warning_view.dart'; import 'lelantus_settings_view.dart'; +import 'rbf_settings_view.dart'; import 'rename_wallet_view.dart'; import 'spark_info.dart'; @@ -259,6 +261,42 @@ class WalletSettingsWalletSettingsView extends ConsumerWidget { ), ), ), + if (ref.watch(pWallets).getWallet(walletId) is RbfInterface) + const SizedBox( + height: 8, + ), + if (ref.watch(pWallets).getWallet(walletId) is RbfInterface) + RoundedWhiteContainer( + padding: const EdgeInsets.all(0), + child: RawMaterialButton( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), + ), + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + onPressed: () { + Navigator.of(context).pushNamed( + RbfSettingsView.routeName, + arguments: walletId, + ); + }, + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 12.0, + vertical: 20, + ), + child: Row( + children: [ + Text( + "RBF settings", + style: STextStyles.titleBold12(context), + ), + ], + ), + ), + ), + ), ], ), ), diff --git a/lib/route_generator.dart b/lib/route_generator.dart index 6af7982e2..593d9e511 100644 --- a/lib/route_generator.dart +++ b/lib/route_generator.dart @@ -130,6 +130,7 @@ import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_setting import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_recovery_phrase_view.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/delete_wallet_warning_view.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/lelantus_settings_view.dart'; +import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rbf_settings_view.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/rename_wallet_view.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/spark_info.dart'; import 'pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart'; @@ -1968,6 +1969,18 @@ class RouteGenerator { } return _routeError("${settings.name} invalid args: ${args.toString()}"); + case RbfSettingsView.routeName: + if (args is String) { + return getRoute( + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => RbfSettingsView(walletId: args), + settings: RouteSettings( + name: settings.name, + ), + ); + } + return _routeError("${settings.name} invalid args: ${args.toString()}"); + case SparkInfoView.routeName: return getRoute( shouldUseMaterialRoute: useMaterialPageRoute, From 57ebacd51988dde9ecbc5acb6753f291c9bfe35d Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 20 Jun 2024 10:16:12 -0600 Subject: [PATCH 272/318] fix issue where changing the primary/default address type for a coin would break older wallets with a mismatching type --- lib/db/migrate_wallets_to_isar.dart | 2 +- lib/pages/receive_view/receive_view.dart | 4 +- .../helpers/restore_create_backup.dart | 2 +- lib/wallets/crypto_currency/coins/banano.dart | 4 +- .../crypto_currency/coins/bitcoin.dart | 4 +- .../crypto_currency/coins/bitcoin_frost.dart | 4 +- .../crypto_currency/coins/bitcoincash.dart | 4 +- .../crypto_currency/coins/dogecoin.dart | 4 +- lib/wallets/crypto_currency/coins/ecash.dart | 4 +- .../crypto_currency/coins/epiccash.dart | 5 ++- .../crypto_currency/coins/ethereum.dart | 5 ++- lib/wallets/crypto_currency/coins/firo.dart | 4 +- .../crypto_currency/coins/litecoin.dart | 4 +- lib/wallets/crypto_currency/coins/monero.dart | 2 +- .../crypto_currency/coins/namecoin.dart | 4 +- lib/wallets/crypto_currency/coins/nano.dart | 4 +- .../crypto_currency/coins/particl.dart | 4 +- .../crypto_currency/coins/peercoin.dart | 4 +- lib/wallets/crypto_currency/coins/solana.dart | 4 +- .../crypto_currency/coins/stellar.dart | 4 +- lib/wallets/crypto_currency/coins/tezos.dart | 4 +- .../crypto_currency/coins/wownero.dart | 2 +- .../crypto_currency/crypto_currency.dart | 4 +- .../intermediate/cryptonote_currency.dart | 2 +- lib/wallets/isar/models/wallet_info.dart | 2 +- lib/wallets/wallet/impl/solana_wallet.dart | 2 +- lib/wallets/wallet/impl/tezos_wallet.dart | 7 ++-- .../wallet/intermediate/bip39_hd_wallet.dart | 40 +++++++++++++++++-- .../nano_interface.dart | 4 +- 29 files changed, 89 insertions(+), 54 deletions(-) diff --git a/lib/db/migrate_wallets_to_isar.dart b/lib/db/migrate_wallets_to_isar.dart index 11ae18e0a..cd54a4063 100644 --- a/lib/db/migrate_wallets_to_isar.dart +++ b/lib/db/migrate_wallets_to_isar.dart @@ -171,7 +171,7 @@ Future migrateWalletsToIsar({ walletId: old.walletId, name: old.name, mainAddressType: AppConfig.getCryptoCurrencyFor(old.coinIdentifier)! - .primaryAddressType, + .defaultAddressType, favouriteOrderIndex: favourites.indexOf(old.walletId), cachedChainHeight: walletBox.get( DBKeys.storedChainHeight, diff --git a/lib/pages/receive_view/receive_view.dart b/lib/pages/receive_view/receive_view.dart index 844950949..2be05937f 100644 --- a/lib/pages/receive_view/receive_view.dart +++ b/lib/pages/receive_view/receive_view.dart @@ -188,7 +188,7 @@ class _ReceiveViewState extends ConsumerState { wallet is Bip39HDWallet && wallet.supportedAddressTypes.length > 1); - _walletAddressTypes.add(coin.primaryAddressType); + _walletAddressTypes.add(wallet.info.mainAddressType); if (_showMultiType) { if (_supportsSpark) { @@ -197,7 +197,7 @@ class _ReceiveViewState extends ConsumerState { _walletAddressTypes.addAll( (wallet as Bip39HDWallet) .supportedAddressTypes - .where((e) => e != coin.primaryAddressType), + .where((e) => e != wallet.info.mainAddressType), ); } } diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart index 8a635e39a..3dcdd45d5 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart @@ -814,7 +814,7 @@ abstract class SWB { coinName: coin.identifier, walletId: walletId, name: walletName, - mainAddressType: coin.primaryAddressType, + mainAddressType: coin.defaultAddressType, restoreHeight: walletbackup['restoreHeight'] as int? ?? 0, otherDataJsonString: otherData == null ? null : jsonEncode(otherData), cachedChainHeight: walletbackup['storedChainHeight'] as int? ?? 0, diff --git a/lib/wallets/crypto_currency/coins/banano.dart b/lib/wallets/crypto_currency/coins/banano.dart index c372e760a..4bb5184d2 100644 --- a/lib/wallets/crypto_currency/coins/banano.dart +++ b/lib/wallets/crypto_currency/coins/banano.dart @@ -53,7 +53,7 @@ class Banano extends NanoCurrency { int get minConfirms => 1; @override - AddressType get primaryAddressType => AddressType.banano; + AddressType get defaultAddressType => AddressType.banano; @override String get defaultRepresentative => @@ -97,7 +97,7 @@ class Banano extends NanoCurrency { } @override - DerivePathType get primaryDerivePathType => throw UnsupportedError( + DerivePathType get defaultDerivePathType => throw UnsupportedError( "$runtimeType does not use bitcoin style derivation paths", ); } diff --git a/lib/wallets/crypto_currency/coins/bitcoin.dart b/lib/wallets/crypto_currency/coins/bitcoin.dart index 88943d0ea..3b75e2186 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin.dart @@ -288,7 +288,7 @@ class Bitcoin extends Bip39HDCurrency List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; @override - AddressType get primaryAddressType => AddressType.p2tr; + AddressType get defaultAddressType => defaultDerivePathType.getAddressType(); @override BigInt get satsPerCoin => BigInt.from(100000000); @@ -297,7 +297,7 @@ class Bitcoin extends Bip39HDCurrency int get targetBlockTimeSeconds => 600; @override - DerivePathType get primaryDerivePathType => DerivePathType.bip86; + DerivePathType get defaultDerivePathType => DerivePathType.bip86; @override Uri defaultBlockExplorer(String txid) { diff --git a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart index c5e0049b7..f09d1865e 100644 --- a/lib/wallets/crypto_currency/coins/bitcoin_frost.dart +++ b/lib/wallets/crypto_currency/coins/bitcoin_frost.dart @@ -195,7 +195,7 @@ class BitcoinFrost extends FrostCurrency { List get possibleMnemonicLengths => []; @override - AddressType get primaryAddressType => AddressType.frostMS; + AddressType get defaultAddressType => AddressType.frostMS; @override BigInt get satsPerCoin => BigInt.from(100000000); @@ -204,7 +204,7 @@ class BitcoinFrost extends FrostCurrency { int get targetBlockTimeSeconds => 600; @override - DerivePathType get primaryDerivePathType => throw UnsupportedError( + DerivePathType get defaultDerivePathType => throw UnsupportedError( "$runtimeType does not use bitcoin style derivation paths", ); diff --git a/lib/wallets/crypto_currency/coins/bitcoincash.dart b/lib/wallets/crypto_currency/coins/bitcoincash.dart index c0014039d..5950fc913 100644 --- a/lib/wallets/crypto_currency/coins/bitcoincash.dart +++ b/lib/wallets/crypto_currency/coins/bitcoincash.dart @@ -336,7 +336,7 @@ class Bitcoincash extends Bip39HDCurrency with ElectrumXCurrencyInterface { List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; @override - AddressType get primaryAddressType => AddressType.p2pkh; + AddressType get defaultAddressType => defaultDerivePathType.getAddressType(); @override BigInt get satsPerCoin => BigInt.from(100000000); @@ -345,7 +345,7 @@ class Bitcoincash extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get targetBlockTimeSeconds => 600; @override - DerivePathType get primaryDerivePathType => DerivePathType.bip44; + DerivePathType get defaultDerivePathType => DerivePathType.bip44; @override Uri defaultBlockExplorer(String txid) { diff --git a/lib/wallets/crypto_currency/coins/dogecoin.dart b/lib/wallets/crypto_currency/coins/dogecoin.dart index 461d70d95..1de949edc 100644 --- a/lib/wallets/crypto_currency/coins/dogecoin.dart +++ b/lib/wallets/crypto_currency/coins/dogecoin.dart @@ -225,7 +225,7 @@ class Dogecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; @override - AddressType get primaryAddressType => AddressType.p2pkh; + AddressType get defaultAddressType => defaultDerivePathType.getAddressType(); @override BigInt get satsPerCoin => BigInt.from(100000000); @@ -234,7 +234,7 @@ class Dogecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get targetBlockTimeSeconds => 60; @override - DerivePathType get primaryDerivePathType => DerivePathType.bip44; + DerivePathType get defaultDerivePathType => DerivePathType.bip44; @override Uri defaultBlockExplorer(String txid) { diff --git a/lib/wallets/crypto_currency/coins/ecash.dart b/lib/wallets/crypto_currency/coins/ecash.dart index 533ed3747..102f509c8 100644 --- a/lib/wallets/crypto_currency/coins/ecash.dart +++ b/lib/wallets/crypto_currency/coins/ecash.dart @@ -314,7 +314,7 @@ class Ecash extends Bip39HDCurrency with ElectrumXCurrencyInterface { List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; @override - AddressType get primaryAddressType => AddressType.p2pkh; + AddressType get defaultAddressType => defaultDerivePathType.getAddressType(); @override BigInt get satsPerCoin => BigInt.from(100); @@ -323,7 +323,7 @@ class Ecash extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get targetBlockTimeSeconds => 600; @override - DerivePathType get primaryDerivePathType => DerivePathType.eCash44; + DerivePathType get defaultDerivePathType => DerivePathType.eCash44; @override Uri defaultBlockExplorer(String txid) { diff --git a/lib/wallets/crypto_currency/coins/epiccash.dart b/lib/wallets/crypto_currency/coins/epiccash.dart index f90832473..6e47eb411 100644 --- a/lib/wallets/crypto_currency/coins/epiccash.dart +++ b/lib/wallets/crypto_currency/coins/epiccash.dart @@ -1,4 +1,5 @@ import 'package:flutter_libepiccash/lib.dart' as epic; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/default_nodes.dart'; @@ -102,7 +103,7 @@ class Epiccash extends Bip39Currency { List get possibleMnemonicLengths => [defaultSeedPhraseLength, 12]; @override - AddressType get primaryAddressType => AddressType.mimbleWimble; + AddressType get defaultAddressType => AddressType.mimbleWimble; @override BigInt get satsPerCoin => BigInt.from(100000000); @@ -111,7 +112,7 @@ class Epiccash extends Bip39Currency { int get targetBlockTimeSeconds => 60; @override - DerivePathType get primaryDerivePathType => throw UnsupportedError( + DerivePathType get defaultDerivePathType => throw UnsupportedError( "$runtimeType does not use bitcoin style derivation paths", ); diff --git a/lib/wallets/crypto_currency/coins/ethereum.dart b/lib/wallets/crypto_currency/coins/ethereum.dart index eb20d05e3..5c0f5b06d 100644 --- a/lib/wallets/crypto_currency/coins/ethereum.dart +++ b/lib/wallets/crypto_currency/coins/ethereum.dart @@ -1,4 +1,5 @@ import 'package:ethereum_addresses/ethereum_addresses.dart'; + import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/default_nodes.dart'; @@ -86,7 +87,7 @@ class Ethereum extends Bip39Currency { List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; @override - AddressType get primaryAddressType => AddressType.ethereum; + AddressType get defaultAddressType => defaultDerivePathType.getAddressType(); @override BigInt get satsPerCoin => BigInt.from(1000000000000000000); @@ -95,7 +96,7 @@ class Ethereum extends Bip39Currency { int get targetBlockTimeSeconds => 15; @override - DerivePathType get primaryDerivePathType => DerivePathType.eth; + DerivePathType get defaultDerivePathType => DerivePathType.eth; @override Uri defaultBlockExplorer(String txid) { diff --git a/lib/wallets/crypto_currency/coins/firo.dart b/lib/wallets/crypto_currency/coins/firo.dart index ae73f13b7..cf36840c7 100644 --- a/lib/wallets/crypto_currency/coins/firo.dart +++ b/lib/wallets/crypto_currency/coins/firo.dart @@ -243,7 +243,7 @@ class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; @override - AddressType get primaryAddressType => AddressType.p2pkh; + AddressType get defaultAddressType => defaultDerivePathType.getAddressType(); @override BigInt get satsPerCoin => BigInt.from(100000000); @@ -252,7 +252,7 @@ class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get targetBlockTimeSeconds => 150; @override - DerivePathType get primaryDerivePathType => DerivePathType.bip44; + DerivePathType get defaultDerivePathType => DerivePathType.bip44; @override Uri defaultBlockExplorer(String txid) { diff --git a/lib/wallets/crypto_currency/coins/litecoin.dart b/lib/wallets/crypto_currency/coins/litecoin.dart index 7cf53837a..1c09a0c2a 100644 --- a/lib/wallets/crypto_currency/coins/litecoin.dart +++ b/lib/wallets/crypto_currency/coins/litecoin.dart @@ -256,7 +256,7 @@ class Litecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; @override - AddressType get primaryAddressType => AddressType.p2wpkh; + AddressType get defaultAddressType => defaultDerivePathType.getAddressType(); @override BigInt get satsPerCoin => BigInt.from(100000000); @@ -265,7 +265,7 @@ class Litecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get targetBlockTimeSeconds => 150; @override - DerivePathType get primaryDerivePathType => DerivePathType.bip84; + DerivePathType get defaultDerivePathType => DerivePathType.bip84; @override Uri defaultBlockExplorer(String txid) { diff --git a/lib/wallets/crypto_currency/coins/monero.dart b/lib/wallets/crypto_currency/coins/monero.dart index e0712d845..edd389ec3 100644 --- a/lib/wallets/crypto_currency/coins/monero.dart +++ b/lib/wallets/crypto_currency/coins/monero.dart @@ -100,7 +100,7 @@ class Monero extends CryptonoteCurrency { int get targetBlockTimeSeconds => 120; @override - DerivePathType get primaryDerivePathType => throw UnsupportedError( + DerivePathType get defaultDerivePathType => throw UnsupportedError( "$runtimeType does not use bitcoin style derivation paths", ); diff --git a/lib/wallets/crypto_currency/coins/namecoin.dart b/lib/wallets/crypto_currency/coins/namecoin.dart index bae72281f..9f0134b9a 100644 --- a/lib/wallets/crypto_currency/coins/namecoin.dart +++ b/lib/wallets/crypto_currency/coins/namecoin.dart @@ -230,7 +230,7 @@ class Namecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { List get possibleMnemonicLengths => [defaultSeedPhraseLength, 12]; @override - AddressType get primaryAddressType => AddressType.p2wpkh; + AddressType get defaultAddressType => defaultDerivePathType.getAddressType(); @override BigInt get satsPerCoin => BigInt.from(100000000); @@ -239,7 +239,7 @@ class Namecoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get targetBlockTimeSeconds => 600; @override - DerivePathType get primaryDerivePathType => DerivePathType.bip84; + DerivePathType get defaultDerivePathType => DerivePathType.bip84; @override Uri defaultBlockExplorer(String txid) { diff --git a/lib/wallets/crypto_currency/coins/nano.dart b/lib/wallets/crypto_currency/coins/nano.dart index b11e68192..32f49cbec 100644 --- a/lib/wallets/crypto_currency/coins/nano.dart +++ b/lib/wallets/crypto_currency/coins/nano.dart @@ -53,7 +53,7 @@ class Nano extends NanoCurrency { int get minConfirms => 1; @override - AddressType get primaryAddressType => AddressType.nano; + AddressType get defaultAddressType => AddressType.nano; @override String get defaultRepresentative => @@ -85,7 +85,7 @@ class Nano extends NanoCurrency { } @override - DerivePathType get primaryDerivePathType => throw UnsupportedError( + DerivePathType get defaultDerivePathType => throw UnsupportedError( "$runtimeType does not use bitcoin style derivation paths", ); diff --git a/lib/wallets/crypto_currency/coins/particl.dart b/lib/wallets/crypto_currency/coins/particl.dart index fd1aa946f..e83eaf4ed 100644 --- a/lib/wallets/crypto_currency/coins/particl.dart +++ b/lib/wallets/crypto_currency/coins/particl.dart @@ -208,7 +208,7 @@ class Particl extends Bip39HDCurrency with ElectrumXCurrencyInterface { List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; @override - AddressType get primaryAddressType => AddressType.p2wpkh; + AddressType get defaultAddressType => defaultDerivePathType.getAddressType(); @override BigInt get satsPerCoin => BigInt.from(100000000); @@ -217,7 +217,7 @@ class Particl extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get targetBlockTimeSeconds => 600; @override - DerivePathType get primaryDerivePathType => DerivePathType.bip84; + DerivePathType get defaultDerivePathType => DerivePathType.bip84; @override Uri defaultBlockExplorer(String txid) { diff --git a/lib/wallets/crypto_currency/coins/peercoin.dart b/lib/wallets/crypto_currency/coins/peercoin.dart index a199460e7..ba291cc14 100644 --- a/lib/wallets/crypto_currency/coins/peercoin.dart +++ b/lib/wallets/crypto_currency/coins/peercoin.dart @@ -228,7 +228,7 @@ class Peercoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; @override - AddressType get primaryAddressType => AddressType.p2wpkh; + AddressType get defaultAddressType => defaultDerivePathType.getAddressType(); @override BigInt get satsPerCoin => BigInt.from(1000000); // 1*10^6. @@ -237,7 +237,7 @@ class Peercoin extends Bip39HDCurrency with ElectrumXCurrencyInterface { int get targetBlockTimeSeconds => 600; @override - DerivePathType get primaryDerivePathType => DerivePathType.bip84; + DerivePathType get defaultDerivePathType => DerivePathType.bip84; @override Uri defaultBlockExplorer(String txid) { diff --git a/lib/wallets/crypto_currency/coins/solana.dart b/lib/wallets/crypto_currency/coins/solana.dart index 7ae69ed43..1505abead 100644 --- a/lib/wallets/crypto_currency/coins/solana.dart +++ b/lib/wallets/crypto_currency/coins/solana.dart @@ -94,7 +94,7 @@ class Solana extends Bip39Currency { List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; @override - AddressType get primaryAddressType => AddressType.solana; + AddressType get defaultAddressType => defaultDerivePathType.getAddressType(); @override BigInt get satsPerCoin => BigInt.from(1000000000); @@ -103,7 +103,7 @@ class Solana extends Bip39Currency { int get targetBlockTimeSeconds => 1; @override - DerivePathType get primaryDerivePathType => DerivePathType.solana; + DerivePathType get defaultDerivePathType => DerivePathType.solana; @override Uri defaultBlockExplorer(String txid) { diff --git a/lib/wallets/crypto_currency/coins/stellar.dart b/lib/wallets/crypto_currency/coins/stellar.dart index e9749c515..f0606f1f0 100644 --- a/lib/wallets/crypto_currency/coins/stellar.dart +++ b/lib/wallets/crypto_currency/coins/stellar.dart @@ -108,7 +108,7 @@ class Stellar extends Bip39Currency { List get possibleMnemonicLengths => [defaultSeedPhraseLength, 12]; @override - AddressType get primaryAddressType => AddressType.stellar; + AddressType get defaultAddressType => AddressType.stellar; @override BigInt get satsPerCoin => BigInt.from( @@ -119,7 +119,7 @@ class Stellar extends Bip39Currency { int get targetBlockTimeSeconds => 5; @override - DerivePathType get primaryDerivePathType => throw UnsupportedError( + DerivePathType get defaultDerivePathType => throw UnsupportedError( "$runtimeType does not use bitcoin style derivation paths", ); diff --git a/lib/wallets/crypto_currency/coins/tezos.dart b/lib/wallets/crypto_currency/coins/tezos.dart index 96f2acc0d..e99831ca5 100644 --- a/lib/wallets/crypto_currency/coins/tezos.dart +++ b/lib/wallets/crypto_currency/coins/tezos.dart @@ -195,7 +195,7 @@ class Tezos extends Bip39Currency { List get possibleMnemonicLengths => [defaultSeedPhraseLength, 12]; @override - AddressType get primaryAddressType => AddressType.tezos; + AddressType get defaultAddressType => AddressType.tezos; @override BigInt get satsPerCoin => BigInt.from(1000000); @@ -204,7 +204,7 @@ class Tezos extends Bip39Currency { int get targetBlockTimeSeconds => 60; @override - DerivePathType get primaryDerivePathType => + DerivePathType get defaultDerivePathType => throw UnsupportedError("Is this even used?"); @override diff --git a/lib/wallets/crypto_currency/coins/wownero.dart b/lib/wallets/crypto_currency/coins/wownero.dart index dd1af1d7d..8624ecb75 100644 --- a/lib/wallets/crypto_currency/coins/wownero.dart +++ b/lib/wallets/crypto_currency/coins/wownero.dart @@ -95,7 +95,7 @@ class Wownero extends CryptonoteCurrency { int get targetBlockTimeSeconds => 120; @override - DerivePathType get primaryDerivePathType => throw UnsupportedError( + DerivePathType get defaultDerivePathType => throw UnsupportedError( "$runtimeType does not use bitcoin style derivation paths", ); diff --git a/lib/wallets/crypto_currency/crypto_currency.dart b/lib/wallets/crypto_currency/crypto_currency.dart index 5ea51e557..a498aa53d 100644 --- a/lib/wallets/crypto_currency/crypto_currency.dart +++ b/lib/wallets/crypto_currency/crypto_currency.dart @@ -71,10 +71,10 @@ abstract class CryptoCurrency { bool get hasBuySupport; bool get hasMnemonicPassphraseSupport; List get possibleMnemonicLengths; - AddressType get primaryAddressType; + AddressType get defaultAddressType; BigInt get satsPerCoin; int get targetBlockTimeSeconds; - DerivePathType get primaryDerivePathType; + DerivePathType get defaultDerivePathType; Uri defaultBlockExplorer(String txid); diff --git a/lib/wallets/crypto_currency/intermediate/cryptonote_currency.dart b/lib/wallets/crypto_currency/intermediate/cryptonote_currency.dart index b7bf7c645..496336235 100644 --- a/lib/wallets/crypto_currency/intermediate/cryptonote_currency.dart +++ b/lib/wallets/crypto_currency/intermediate/cryptonote_currency.dart @@ -10,5 +10,5 @@ abstract class CryptonoteCurrency extends CryptoCurrency { } @override - AddressType get primaryAddressType => AddressType.cryptonote; + AddressType get defaultAddressType => AddressType.cryptonote; } diff --git a/lib/wallets/isar/models/wallet_info.dart b/lib/wallets/isar/models/wallet_info.dart index 21ab499f0..6f6e12a42 100644 --- a/lib/wallets/isar/models/wallet_info.dart +++ b/lib/wallets/isar/models/wallet_info.dart @@ -458,7 +458,7 @@ class WalletInfo implements IsarId { coinName: coin.identifier, walletId: walletIdOverride ?? const Uuid().v1(), name: name, - mainAddressType: coin.primaryAddressType, + mainAddressType: coin.defaultAddressType, restoreHeight: restoreHeight, otherDataJsonString: otherDataJsonString, ); diff --git a/lib/wallets/wallet/impl/solana_wallet.dart b/lib/wallets/wallet/impl/solana_wallet.dart index 55ecafade..50ff0b31a 100644 --- a/lib/wallets/wallet/impl/solana_wallet.dart +++ b/lib/wallets/wallet/impl/solana_wallet.dart @@ -46,7 +46,7 @@ class SolanaWallet extends Bip39Wallet { publicKey: List.empty(), derivationIndex: 0, derivationPath: DerivationPath()..value = _addressDerivationPath, - type: cryptoCurrency.primaryAddressType, + type: info.mainAddressType, subType: AddressSubType.receiving, ); return addressStruct; diff --git a/lib/wallets/wallet/impl/tezos_wallet.dart b/lib/wallets/wallet/impl/tezos_wallet.dart index f4c8c0ebe..a1728c10a 100644 --- a/lib/wallets/wallet/impl/tezos_wallet.dart +++ b/lib/wallets/wallet/impl/tezos_wallet.dart @@ -1,6 +1,9 @@ import 'dart:io'; import 'package:isar/isar.dart'; +import 'package:tezart/tezart.dart' as tezart; +import 'package:tuple/tuple.dart'; + import '../../../models/balance.dart'; import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/isar/models/blockchain_data/transaction.dart'; @@ -18,8 +21,6 @@ import '../../crypto_currency/crypto_currency.dart'; import '../../isar/models/wallet_info.dart'; import '../../models/tx_data.dart'; import '../intermediate/bip39_wallet.dart'; -import 'package:tezart/tezart.dart' as tezart; -import 'package:tuple/tuple.dart'; // const kDefaultTransactionStorageLimit = 496; // const kDefaultTransactionGasLimit = 10600; @@ -83,7 +84,7 @@ class TezosWallet extends Bip39Wallet { publicKey: keyStore.publicKey.toUint8ListFromBase58CheckEncoded, derivationIndex: 0, derivationPath: DerivationPath()..value = derivationPath, - type: info.coin.primaryAddressType, + type: info.mainAddressType, subType: AddressSubType.receiving, ); } diff --git a/lib/wallets/wallet/intermediate/bip39_hd_wallet.dart b/lib/wallets/wallet/intermediate/bip39_hd_wallet.dart index c276d758a..6d87b7ace 100644 --- a/lib/wallets/wallet/intermediate/bip39_hd_wallet.dart +++ b/lib/wallets/wallet/intermediate/bip39_hd_wallet.dart @@ -1,13 +1,14 @@ import 'package:bip39/bip39.dart' as bip39; import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; import 'package:isar/isar.dart'; + import '../../../models/balance.dart'; import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../utilities/amount/amount.dart'; import '../../../utilities/enums/derive_path_type_enum.dart'; import '../../crypto_currency/intermediate/bip39_hd_currency.dart'; -import 'bip39_wallet.dart'; import '../wallet_mixin_interfaces/multi_address_interface.dart'; +import 'bip39_wallet.dart'; abstract class Bip39HDWallet extends Bip39Wallet with MultiAddressInterface { @@ -66,7 +67,7 @@ abstract class Bip39HDWallet extends Bip39Wallet final address = await _generateAddress( chain: chain, index: index, - derivePathType: info.coin.primaryDerivePathType, + derivePathType: _fromAddressType(info.mainAddressType), ); await mainDB.updateOrPutAddresses([address]); @@ -88,7 +89,7 @@ abstract class Bip39HDWallet extends Bip39Wallet final address = await _generateAddress( chain: chain, index: index, - derivePathType: info.coin.primaryDerivePathType, + derivePathType: _fromAddressType(info.mainAddressType), ); await mainDB.updateOrPutAddresses([address]); @@ -101,7 +102,7 @@ abstract class Bip39HDWallet extends Bip39Wallet final address = await _generateAddress( chain: 0, // receiving index: 0, // initial index - derivePathType: info.coin.primaryDerivePathType, + derivePathType: _fromAddressType(info.mainAddressType), ); await mainDB.updateOrPutAddresses([address]); @@ -118,6 +119,37 @@ abstract class Bip39HDWallet extends Bip39Wallet // ========== Private ======================================================== + DerivePathType _fromAddressType(AddressType addressType) { + switch (addressType) { + case AddressType.p2pkh: + // DerivePathType.bip44: + // DerivePathType.bch44: + // DerivePathType.eCash44: + // Should be one of the above due to silly case due to bch and ecash + return info.coin.defaultDerivePathType; + + case AddressType.p2sh: + return DerivePathType.bip49; + + case AddressType.p2wpkh: + return DerivePathType.bip84; + + case AddressType.p2tr: + return DerivePathType.bip86; + + case AddressType.solana: + return DerivePathType.solana; + + case AddressType.ethereum: + return DerivePathType.eth; + + default: + throw ArgumentError( + "Incompatible AddressType \"$addressType\" passed to DerivePathType.fromAddressType()", + ); + } + } + Future

    _generateAddress({ required int chain, required int index, diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart index 120f964ef..39d16497e 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/nano_interface.dart @@ -93,7 +93,7 @@ mixin NanoInterface on Bip39Wallet { publicKey: publicKey.toUint8ListFromHex, derivationIndex: 0, derivationPath: null, - type: cryptoCurrency.primaryAddressType, + type: info.mainAddressType, subType: AddressSubType.receiving, ); } @@ -599,7 +599,7 @@ mixin NanoInterface on Bip39Wallet { value: tx["account"].toString(), derivationIndex: 0, derivationPath: null, - type: info.coin.primaryAddressType, + type: info.mainAddressType, subType: AddressSubType.nonWallet, ); final Tuple2 tuple = Tuple2(transaction, address); From cb83fccc68308528f85183ed4c42a52e434fa5ef Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 20 Jun 2024 10:36:02 -0600 Subject: [PATCH 273/318] add short description to app config --- lib/app_config.dart | 1 + lib/pages/intro_view.dart | 2 +- lib/pages_desktop_specific/password/desktop_login_view.dart | 2 +- scripts/app_config/configure_campfire.sh | 1 + scripts/app_config/configure_stack_duo.sh | 1 + scripts/app_config/configure_stack_wallet.sh | 1 + 6 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/app_config.dart b/lib/app_config.dart index 89e847b93..64ce682fa 100644 --- a/lib/app_config.dart +++ b/lib/app_config.dart @@ -16,6 +16,7 @@ abstract class AppConfig { static const suffix = _suffix; static String get appDefaultDataDirName => _appDataDirName; + static String get shortDescriptionText => _shortDescriptionText; static String get commitHash => _commitHash; static bool hasFeature(AppFeature feature) => _features.contains(feature); diff --git a/lib/pages/intro_view.dart b/lib/pages/intro_view.dart index 576d99e3a..27e694ff4 100644 --- a/lib/pages/intro_view.dart +++ b/lib/pages/intro_view.dart @@ -213,7 +213,7 @@ class IntroAboutText extends StatelessWidget { @override Widget build(BuildContext context) { return Text( - "An open-source, multicoin wallet for everyone", + AppConfig.shortDescriptionText, textAlign: TextAlign.center, style: !isDesktop ? STextStyles.subtitle(context) diff --git a/lib/pages_desktop_specific/password/desktop_login_view.dart b/lib/pages_desktop_specific/password/desktop_login_view.dart index 54d00c789..89447ee57 100644 --- a/lib/pages_desktop_specific/password/desktop_login_view.dart +++ b/lib/pages_desktop_specific/password/desktop_login_view.dart @@ -208,7 +208,7 @@ class _DesktopLoginViewState extends ConsumerState { SizedBox( width: 350, child: Text( - "Open source multicoin wallet for everyone", + AppConfig.shortDescriptionText, textAlign: TextAlign.center, style: STextStyles.desktopSubtitleH1(context), ), diff --git a/scripts/app_config/configure_campfire.sh b/scripts/app_config/configure_campfire.sh index b629c53ad..9033255d9 100755 --- a/scripts/app_config/configure_campfire.sh +++ b/scripts/app_config/configure_campfire.sh @@ -44,6 +44,7 @@ const _prefix = "Campfire"; const _separator = ""; const _suffix = ""; const _appDataDirName = "campfire"; +const _shortDescriptionText = "Your privacy. Your wallet. Your Firo."; const _commitHash = "$BUILT_COMMIT_HASH"; const Set _features = {}; diff --git a/scripts/app_config/configure_stack_duo.sh b/scripts/app_config/configure_stack_duo.sh index 7c1b2ff36..135d03958 100755 --- a/scripts/app_config/configure_stack_duo.sh +++ b/scripts/app_config/configure_stack_duo.sh @@ -38,6 +38,7 @@ const _prefix = "Stack"; const _separator = " "; const _suffix = "Duo"; const _appDataDirName = "stackduo"; +const _shortDescriptionText = "An open-source, multicoin wallet for everyone"; const _commitHash = "$BUILT_COMMIT_HASH"; const Set _features = { diff --git a/scripts/app_config/configure_stack_wallet.sh b/scripts/app_config/configure_stack_wallet.sh index fb2438182..cb9bbf46c 100755 --- a/scripts/app_config/configure_stack_wallet.sh +++ b/scripts/app_config/configure_stack_wallet.sh @@ -38,6 +38,7 @@ const _prefix = "Stack"; const _separator = " "; const _suffix = "Wallet"; const _appDataDirName = "stackwallet"; +const _shortDescriptionText = "An open-source, multicoin wallet for everyone"; const _commitHash = "$BUILT_COMMIT_HASH"; const Set _features = { From 33ec9f1fb99bcae5b2a5f6c766b6a23e9c6aa82d Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 20 Jun 2024 14:40:52 -0600 Subject: [PATCH 274/318] WIP initial dash support --- lib/wallets/crypto_currency/coins/dash.dart | 257 ++++++++++++++ .../crypto_currency/crypto_currency.dart | 1 + lib/wallets/wallet/impl/dash_wallet.dart | 314 ++++++++++++++++++ lib/wallets/wallet/wallet.dart | 4 + scripts/app_config/configure_stack_wallet.sh | 2 + 5 files changed, 578 insertions(+) create mode 100644 lib/wallets/crypto_currency/coins/dash.dart create mode 100644 lib/wallets/wallet/impl/dash_wallet.dart diff --git a/lib/wallets/crypto_currency/coins/dash.dart b/lib/wallets/crypto_currency/coins/dash.dart new file mode 100644 index 000000000..fd2f39bcb --- /dev/null +++ b/lib/wallets/crypto_currency/coins/dash.dart @@ -0,0 +1,257 @@ +import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; + +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/node_model.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/enums/derive_path_type_enum.dart'; +import '../crypto_currency.dart'; +import '../interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_currency.dart'; + +class Dash extends Bip39HDCurrency with ElectrumXCurrencyInterface { + Dash(super.network) { + _idMain = "dash"; + _uriScheme = "dash"; + switch (network) { + case CryptoCurrencyNetwork.main: + _id = _idMain; + _name = "Dash"; + _ticker = "DASH"; + case CryptoCurrencyNetwork.test: + _id = "dashTestNet"; + _name = "tDash"; + _ticker = "tDASH"; + default: + throw Exception("Unsupported network: $network"); + } + } + + late final String _id; + @override + String get identifier => _id; + + late final String _idMain; + @override + String get mainNetId => _idMain; + + late final String _name; + @override + String get prettyName => _name; + + late final String _uriScheme; + @override + String get uriScheme => _uriScheme; + + late final String _ticker; + @override + String get ticker => _ticker; + + @override + bool get torSupport => true; + + @override + List get supportedDerivationPathTypes => [ + DerivePathType.bip44, + ]; + + @override + String constructDerivePath({ + required DerivePathType derivePathType, + int account = 0, + required int chain, + required int index, + }) { + String coinType; + + switch (networkParams.wifPrefix) { + case 204: // dash mainnet wif + coinType = "5"; // dash mainnet + break; + case 239: // dash testnet wif + coinType = "1"; // dash testnet + break; + default: + throw Exception("Invalid Dash network wif used!"); + } + + int purpose; + switch (derivePathType) { + case DerivePathType.bip44: + purpose = 44; + break; + + default: + throw Exception("DerivePathType $derivePathType not supported"); + } + + return "m/$purpose'/$coinType'/$account'/$chain/$index"; + } + + @override + Amount get dustLimit => Amount( + rawValue: BigInt.from(1000000), + fractionDigits: fractionDigits, + ); + + @override + String get genesisHash { + switch (network) { + // TODO + // case CryptoCurrencyNetwork.main: + // return " "; + // case CryptoCurrencyNetwork.test: + // return " "; + default: + throw Exception("Unsupported network: $network"); + } + } + + @override + ({ + coinlib.Address address, + AddressType addressType, + }) getAddressForPublicKey({ + required coinlib.ECPublicKey publicKey, + required DerivePathType derivePathType, + }) { + switch (derivePathType) { + case DerivePathType.bip44: + final addr = coinlib.P2PKHAddress.fromPublicKey( + publicKey, + version: networkParams.p2pkhPrefix, + ); + + return (address: addr, addressType: AddressType.p2pkh); + + default: + throw Exception("DerivePathType $derivePathType not supported"); + } + } + + @override + int get minConfirms => 1; + + @override + coinlib.Network get networkParams { + switch (network) { + case CryptoCurrencyNetwork.main: + return coinlib.Network( + p2pkhPrefix: 76, + p2shPrefix: 16, + wifPrefix: 204, + pubHDPrefix: 0x0488B21E, + privHDPrefix: 0x0488ADE4, + bech32Hrp: "dash", // TODO ????? + messagePrefix: '\x18Dash Signed Message:\n', // TODO ????? + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently + ); + case CryptoCurrencyNetwork.test: + return coinlib.Network( + p2pkhPrefix: 140, + p2shPrefix: 19, + wifPrefix: 239, + pubHDPrefix: 0x043587CF, + privHDPrefix: 0x04358394, + bech32Hrp: "tdash", // TODO ????? + messagePrefix: '\x18Dash Signed Message:\n', // TODO ????? + minFee: BigInt.from(1), // Not used in stack wallet currently + minOutput: dustLimit.raw, // Not used in stack wallet currently + feePerKb: BigInt.from(1), // Not used in stack wallet currently + ); + default: + throw Exception("Unsupported network: $network"); + } + } + + @override + bool validateAddress(String address) { + try { + coinlib.Address.fromString(address, networkParams); + return true; + } catch (_) { + return false; + } + } + + @override + NodeModel get defaultNode { + switch (network) { + // case CryptoCurrencyNetwork.main: + // return NodeModel( + // host: "dash.stackwallet.com", + // port: 50022, + // name: DefaultNodes.defaultName, + // id: DefaultNodes.buildId(this), + // useSSL: true, + // enabled: true, + // coinName: identifier, + // isFailover: true, + // isDown: false, + // ); + // + // case CryptoCurrencyNetwork.test: + // return NodeModel( + // host: "dash-testnet.stackwallet.com", + // port: 50022, + // name: DefaultNodes.defaultName, + // id: DefaultNodes.buildId(this), + // useSSL: true, + // enabled: true, + // coinName: identifier, + // isFailover: true, + // isDown: false, + // ); + + default: + throw UnimplementedError(); + } + } + + @override + int get defaultSeedPhraseLength => 12; + + @override + int get fractionDigits => 8; + + @override + bool get hasBuySupport => true; + + @override + bool get hasMnemonicPassphraseSupport => true; + + @override + List get possibleMnemonicLengths => [defaultSeedPhraseLength, 24]; + + @override + AddressType get defaultAddressType => defaultDerivePathType.getAddressType(); + + @override + BigInt get satsPerCoin => BigInt.from(100000000); + + @override + int get targetBlockTimeSeconds => 60; + + @override + DerivePathType get defaultDerivePathType => DerivePathType.bip44; + + @override + Uri defaultBlockExplorer(String txid) { + switch (network) { + // TODO + // case CryptoCurrencyNetwork.main: + // case CryptoCurrencyNetwork.test: + default: + throw Exception( + "Unsupported network for defaultBlockExplorer(): $network", + ); + } + } + + @override + int get transactionVersion => 1; + + @override + BigInt get defaultFeeRate => BigInt.from(1000); // TODO check for dash? +} diff --git a/lib/wallets/crypto_currency/crypto_currency.dart b/lib/wallets/crypto_currency/crypto_currency.dart index a498aa53d..788c87b4f 100644 --- a/lib/wallets/crypto_currency/crypto_currency.dart +++ b/lib/wallets/crypto_currency/crypto_currency.dart @@ -6,6 +6,7 @@ export 'coins/banano.dart'; export 'coins/bitcoin.dart'; export 'coins/bitcoin_frost.dart'; export 'coins/bitcoincash.dart'; +export 'coins/dash.dart'; export 'coins/dogecoin.dart'; export 'coins/ecash.dart'; export 'coins/epiccash.dart'; diff --git a/lib/wallets/wallet/impl/dash_wallet.dart b/lib/wallets/wallet/impl/dash_wallet.dart new file mode 100644 index 000000000..75d724a92 --- /dev/null +++ b/lib/wallets/wallet/impl/dash_wallet.dart @@ -0,0 +1,314 @@ +import 'package:isar/isar.dart'; + +import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../models/isar/models/blockchain_data/transaction.dart'; +import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; +import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; +import '../../../utilities/amount/amount.dart'; +import '../../../utilities/logger.dart'; +import '../../crypto_currency/crypto_currency.dart'; +import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; +import '../intermediate/bip39_hd_wallet.dart'; +import '../wallet_mixin_interfaces/coin_control_interface.dart'; +import '../wallet_mixin_interfaces/electrumx_interface.dart'; + +class DashWallet extends Bip39HDWallet + with ElectrumXInterface, CoinControlInterface { + DashWallet(CryptoCurrencyNetwork network) : super(Dash(network) as T); + + @override + int get maximumFeerate => 2500; + + @override + int get isarTransactionVersion => 2; + + @override + FilterOperation? get changeAddressFilterOperation => + FilterGroup.and(standardChangeAddressFilters); + + @override + FilterOperation? get receivingAddressFilterOperation => + FilterGroup.and(standardReceivingAddressFilters); + + // =========================================================================== + + @override + Future> fetchAddressesForElectrumXScan() async { + final allAddresses = await mainDB + .getAddresses(walletId) + .filter() + .not() + .group( + (q) => q + .typeEqualTo(AddressType.nonWallet) + .or() + .subTypeEqualTo(AddressSubType.nonWallet), + ) + .findAll(); + return allAddresses; + } + + // =========================================================================== + + @override + Future updateTransactions() async { + // Get all addresses. + final List
    allAddressesOld = + await fetchAddressesForElectrumXScan(); + + // Separate receiving and change addresses. + final Set receivingAddresses = allAddressesOld + .where((e) => e.subType == AddressSubType.receiving) + .map((e) => e.value) + .toSet(); + final Set changeAddresses = allAddressesOld + .where((e) => e.subType == AddressSubType.change) + .map((e) => e.value) + .toSet(); + + // Remove duplicates. + final allAddressesSet = {...receivingAddresses, ...changeAddresses}; + + // Fetch history from ElectrumX. + final List> allTxHashes = + await fetchHistory(allAddressesSet); + + // Only parse new txs (not in db yet). + final List> allTransactions = []; + for (final txHash in allTxHashes) { + // Check for duplicates by searching for tx by tx_hash in db. + final storedTx = await mainDB.isar.transactionV2s + .where() + .txidWalletIdEqualTo(txHash["tx_hash"] as String, walletId) + .findFirst(); + + if (storedTx == null || + storedTx.height == null || + (storedTx.height != null && storedTx.height! <= 0)) { + // Tx not in db yet. + final tx = await electrumXCachedClient.getTransaction( + txHash: txHash["tx_hash"] as String, + verbose: true, + cryptoCurrency: cryptoCurrency, + ); + + // Only tx to list once. + if (allTransactions + .indexWhere((e) => e["txid"] == tx["txid"] as String) == + -1) { + tx["height"] = txHash["height"]; + allTransactions.add(tx); + } + } + } + + // Parse all new txs. + final List txns = []; + for (final txData in allTransactions) { + bool wasSentFromThisWallet = false; + // Set to true if any inputs were detected as owned by this wallet. + + bool wasReceivedInThisWallet = false; + // Set to true if any outputs were detected as owned by this wallet. + + // Parse inputs. + BigInt amountReceivedInThisWallet = BigInt.zero; + BigInt changeAmountReceivedInThisWallet = BigInt.zero; + final List inputs = []; + for (final jsonInput in txData["vin"] as List) { + final map = Map.from(jsonInput as Map); + + final List addresses = []; + String valueStringSats = "0"; + OutpointV2? outpoint; + + final coinbase = map["coinbase"] as String?; + + if (coinbase == null) { + // Not a coinbase (ie a typical input). + final txid = map["txid"] as String; + final vout = map["vout"] as int; + + final inputTx = await electrumXCachedClient.getTransaction( + txHash: txid, + cryptoCurrency: cryptoCurrency, + ); + + final prevOutJson = Map.from( + (inputTx["vout"] as List).firstWhere((e) => e["n"] == vout) as Map, + ); + + final prevOut = OutputV2.fromElectrumXJson( + prevOutJson, + decimalPlaces: cryptoCurrency.fractionDigits, + isFullAmountNotSats: true, + walletOwns: false, // Doesn't matter here as this is not saved. + ); + + outpoint = OutpointV2.isarCantDoRequiredInDefaultConstructor( + txid: txid, + vout: vout, + ); + valueStringSats = prevOut.valueStringSats; + addresses.addAll(prevOut.addresses); + } + + InputV2 input = InputV2.isarCantDoRequiredInDefaultConstructor( + scriptSigHex: map["scriptSig"]?["hex"] as String?, + scriptSigAsm: map["scriptSig"]?["asm"] as String?, + sequence: map["sequence"] as int?, + outpoint: outpoint, + valueStringSats: valueStringSats, + addresses: addresses, + witness: map["witness"] as String?, + coinbase: coinbase, + innerRedeemScriptAsm: map["innerRedeemscriptAsm"] as String?, + // Need addresses before we can know if the wallet owns this input. + walletOwns: false, + ); + + // Check if input was from this wallet. + if (allAddressesSet.intersection(input.addresses.toSet()).isNotEmpty) { + wasSentFromThisWallet = true; + input = input.copyWith(walletOwns: true); + } + + inputs.add(input); + } + + // Parse outputs. + final List outputs = []; + for (final outputJson in txData["vout"] as List) { + OutputV2 output = OutputV2.fromElectrumXJson( + Map.from(outputJson as Map), + decimalPlaces: cryptoCurrency.fractionDigits, + isFullAmountNotSats: true, + // Need addresses before we can know if the wallet owns this input. + walletOwns: false, + ); + + // If output was to my wallet, add value to amount received. + if (receivingAddresses + .intersection(output.addresses.toSet()) + .isNotEmpty) { + wasReceivedInThisWallet = true; + amountReceivedInThisWallet += output.value; + output = output.copyWith(walletOwns: true); + } else if (changeAddresses + .intersection(output.addresses.toSet()) + .isNotEmpty) { + wasReceivedInThisWallet = true; + changeAmountReceivedInThisWallet += output.value; + output = output.copyWith(walletOwns: true); + } + + outputs.add(output); + } + + final totalOut = outputs + .map((e) => e.value) + .fold(BigInt.zero, (value, element) => value + element); + + TransactionType type; + final TransactionSubType subType = TransactionSubType.none; + + // At least one input was owned by this wallet. + if (wasSentFromThisWallet) { + type = TransactionType.outgoing; + + if (wasReceivedInThisWallet) { + if (changeAmountReceivedInThisWallet + amountReceivedInThisWallet == + totalOut) { + // Definitely sent all to self. + type = TransactionType.sentToSelf; + } else if (amountReceivedInThisWallet == BigInt.zero) { + // Most likely just a typical send, do nothing here yet. + } + + // This is where we would check for them. + // TODO: [prio=high] Check for special Dash outputs. + } + } else if (wasReceivedInThisWallet) { + // Only found outputs owned by this wallet. + type = TransactionType.incoming; + } else { + Logging.instance.log( + "Unexpected tx found (ignoring it): $txData", + level: LogLevel.Error, + ); + continue; + } + + final tx = TransactionV2( + walletId: walletId, + blockHash: txData["blockhash"] as String?, + hash: txData["hash"] as String, + txid: txData["txid"] as String, + height: txData["height"] as int?, + version: txData["version"] as int, + timestamp: txData["blocktime"] as int? ?? + DateTime.timestamp().millisecondsSinceEpoch ~/ 1000, + inputs: List.unmodifiable(inputs), + outputs: List.unmodifiable(outputs), + type: type, + subType: subType, + otherData: null, + ); + + txns.add(tx); + } + + await mainDB.updateOrPutTransactionV2s(txns); + } + + @override + Future<({String? blockedReason, bool blocked, String? utxoLabel})> + checkBlockUTXO( + Map jsonUTXO, + String? scriptPubKeyHex, + Map jsonTX, + String? utxoOwnerAddress, + ) async { + bool blocked = false; + String? blockedReason; + + // // check for bip47 notification + // final outputs = jsonTX["vout"] as List; + // for (final output in outputs) { + // final List? scriptChunks = + // (output['scriptPubKey']?['asm'] as String?)?.split(" "); + // if (scriptChunks?.length == 2 && scriptChunks?[0] == "OP_RETURN") { + // final blindedPaymentCode = scriptChunks![1]; + // final bytes = blindedPaymentCode.toUint8ListFromHex; + // + // // https://en.bitcoin.it/wiki/BIP_0047#Sending + // if (bytes.length == 80 && bytes.first == 1) { + // blocked = true; + // blockedReason = "Paynym notification output. Incautious " + // "handling of outputs from notification transactions " + // "may cause unintended loss of privacy."; + // break; + // } + // } + // } + + return (blockedReason: blockedReason, blocked: blocked, utxoLabel: null); + } + + @override + Amount roughFeeEstimate(int inputCount, int outputCount, int feeRatePerKB) { + return Amount( + rawValue: BigInt.from( + ((181 * inputCount) + (34 * outputCount) + 10) * + (feeRatePerKB / 1000).ceil(), + ), + fractionDigits: cryptoCurrency.fractionDigits, + ); + } + + @override + int estimateTxFee({required int vSize, required int feeRatePerKB}) { + return vSize * (feeRatePerKB / 1000).ceil(); + } +} diff --git a/lib/wallets/wallet/wallet.dart b/lib/wallets/wallet/wallet.dart index 7b0851ee5..1bca3c858 100644 --- a/lib/wallets/wallet/wallet.dart +++ b/lib/wallets/wallet/wallet.dart @@ -28,6 +28,7 @@ import 'impl/banano_wallet.dart'; import 'impl/bitcoin_frost_wallet.dart'; import 'impl/bitcoin_wallet.dart'; import 'impl/bitcoincash_wallet.dart'; +import 'impl/dash_wallet.dart'; import 'impl/dogecoin_wallet.dart'; import 'impl/ecash_wallet.dart'; import 'impl/epiccash_wallet.dart'; @@ -323,6 +324,9 @@ abstract class Wallet { case const (Bitcoincash): return BitcoincashWallet(net); + case const (Dash): + return DashWallet(net); + case const (Dogecoin): return DogecoinWallet(net); diff --git a/scripts/app_config/configure_stack_wallet.sh b/scripts/app_config/configure_stack_wallet.sh index cb9bbf46c..ead2df85f 100755 --- a/scripts/app_config/configure_stack_wallet.sh +++ b/scripts/app_config/configure_stack_wallet.sh @@ -55,6 +55,7 @@ final List _supportedCoins = List.unmodifiable([ Banano(CryptoCurrencyNetwork.main), Bitcoincash(CryptoCurrencyNetwork.main), BitcoinFrost(CryptoCurrencyNetwork.main), + Dash(CryptoCurrencyNetwork.main), Dogecoin(CryptoCurrencyNetwork.main), Ecash(CryptoCurrencyNetwork.main), Epiccash(CryptoCurrencyNetwork.main), @@ -74,6 +75,7 @@ final List _supportedCoins = List.unmodifiable([ Bitcoincash(CryptoCurrencyNetwork.test), BitcoinFrost(CryptoCurrencyNetwork.test), BitcoinFrost(CryptoCurrencyNetwork.test4), + Dash(CryptoCurrencyNetwork.test), Dogecoin(CryptoCurrencyNetwork.test), Firo(CryptoCurrencyNetwork.test), Litecoin(CryptoCurrencyNetwork.test), From 7d2a903da40eb536aaccb9fd236954970ec4004f Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 21 Jun 2024 12:14:31 -0600 Subject: [PATCH 275/318] dash tweaks and theme updates --- .../default_themes/stack_duo/dark.zip | Bin 949779 -> 1006992 bytes .../default_themes/stack_duo/light.zip | Bin 897669 -> 954883 bytes .../default_themes/stack_wallet/dark.zip | Bin 949779 -> 1006992 bytes .../default_themes/stack_wallet/light.zip | Bin 897669 -> 954883 bytes lib/wallets/crypto_currency/coins/dash.dart | 98 ++++++++---------- lib/wallets/wallet/impl/dash_wallet.dart | 3 +- scripts/app_config/configure_stack_wallet.sh | 1 - 7 files changed, 46 insertions(+), 56 deletions(-) diff --git a/asset_sources/default_themes/stack_duo/dark.zip b/asset_sources/default_themes/stack_duo/dark.zip index c6d417500341f8b5116761339875b0ab24860283..1e5f6136e3bcdb12c953ed144a203d6ac35d9fe0 100644 GIT binary patch delta 65019 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 delta 7027 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 DwCh$l diff --git a/asset_sources/default_themes/stack_wallet/dark.zip b/asset_sources/default_themes/stack_wallet/dark.zip index c6d417500341f8b5116761339875b0ab24860283..1e5f6136e3bcdb12c953ed144a203d6ac35d9fe0 100644 GIT binary patch delta 65019 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 delta 7027 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 DwCh$l diff --git a/lib/wallets/crypto_currency/coins/dash.dart b/lib/wallets/crypto_currency/coins/dash.dart index fd2f39bcb..366bbbcc8 100644 --- a/lib/wallets/crypto_currency/coins/dash.dart +++ b/lib/wallets/crypto_currency/coins/dash.dart @@ -3,6 +3,7 @@ import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/amount/amount.dart'; +import '../../../utilities/default_nodes.dart'; import '../../../utilities/enums/derive_path_type_enum.dart'; import '../crypto_currency.dart'; import '../interfaces/electrumx_currency_interface.dart'; @@ -17,10 +18,10 @@ class Dash extends Bip39HDCurrency with ElectrumXCurrencyInterface { _id = _idMain; _name = "Dash"; _ticker = "DASH"; - case CryptoCurrencyNetwork.test: - _id = "dashTestNet"; - _name = "tDash"; - _ticker = "tDASH"; + // case CryptoCurrencyNetwork.test: + // _id = "dashTestNet"; + // _name = "tDash"; + // _ticker = "tDASH"; default: throw Exception("Unsupported network: $network"); } @@ -67,9 +68,9 @@ class Dash extends Bip39HDCurrency with ElectrumXCurrencyInterface { case 204: // dash mainnet wif coinType = "5"; // dash mainnet break; - case 239: // dash testnet wif - coinType = "1"; // dash testnet - break; + // case 239: // dash testnet wif + // coinType = "1"; // dash testnet + // break; default: throw Exception("Invalid Dash network wif used!"); } @@ -96,11 +97,10 @@ class Dash extends Bip39HDCurrency with ElectrumXCurrencyInterface { @override String get genesisHash { switch (network) { - // TODO - // case CryptoCurrencyNetwork.main: - // return " "; + case CryptoCurrencyNetwork.main: + return "00000ffd590b1485b3caadc19b22e6379c733355108f107a430458cdf3407ab6"; // case CryptoCurrencyNetwork.test: - // return " "; + // return "00000bafbc94add76cb75e2ec92894837288a481e5c005f6563d91623bf8bc2c"; default: throw Exception("Unsupported network: $network"); } @@ -129,7 +129,7 @@ class Dash extends Bip39HDCurrency with ElectrumXCurrencyInterface { } @override - int get minConfirms => 1; + int get minConfirms => 6; @override coinlib.Network get networkParams { @@ -147,19 +147,19 @@ class Dash extends Bip39HDCurrency with ElectrumXCurrencyInterface { minOutput: dustLimit.raw, // Not used in stack wallet currently feePerKb: BigInt.from(1), // Not used in stack wallet currently ); - case CryptoCurrencyNetwork.test: - return coinlib.Network( - p2pkhPrefix: 140, - p2shPrefix: 19, - wifPrefix: 239, - pubHDPrefix: 0x043587CF, - privHDPrefix: 0x04358394, - bech32Hrp: "tdash", // TODO ????? - messagePrefix: '\x18Dash Signed Message:\n', // TODO ????? - minFee: BigInt.from(1), // Not used in stack wallet currently - minOutput: dustLimit.raw, // Not used in stack wallet currently - feePerKb: BigInt.from(1), // Not used in stack wallet currently - ); + // case CryptoCurrencyNetwork.test: + // return coinlib.Network( + // p2pkhPrefix: 140, + // p2shPrefix: 19, + // wifPrefix: 239, + // pubHDPrefix: 0x043587CF, + // privHDPrefix: 0x04358394, + // bech32Hrp: "tdash", // TODO ????? + // messagePrefix: '\x18Dash Signed Message:\n', // TODO ????? + // minFee: BigInt.from(1), // Not used in stack wallet currently + // minOutput: dustLimit.raw, // Not used in stack wallet currently + // feePerKb: BigInt.from(1), // Not used in stack wallet currently + // ); default: throw Exception("Unsupported network: $network"); } @@ -178,31 +178,18 @@ class Dash extends Bip39HDCurrency with ElectrumXCurrencyInterface { @override NodeModel get defaultNode { switch (network) { - // case CryptoCurrencyNetwork.main: - // return NodeModel( - // host: "dash.stackwallet.com", - // port: 50022, - // name: DefaultNodes.defaultName, - // id: DefaultNodes.buildId(this), - // useSSL: true, - // enabled: true, - // coinName: identifier, - // isFailover: true, - // isDown: false, - // ); - // - // case CryptoCurrencyNetwork.test: - // return NodeModel( - // host: "dash-testnet.stackwallet.com", - // port: 50022, - // name: DefaultNodes.defaultName, - // id: DefaultNodes.buildId(this), - // useSSL: true, - // enabled: true, - // coinName: identifier, - // isFailover: true, - // isDown: false, - // ); + case CryptoCurrencyNetwork.main: + return NodeModel( + host: "dash.stackwallet.com", + port: 60002, + name: DefaultNodes.defaultName, + id: DefaultNodes.buildId(this), + useSSL: true, + enabled: true, + coinName: identifier, + isFailover: true, + isDown: false, + ); default: throw UnimplementedError(); @@ -231,7 +218,7 @@ class Dash extends Bip39HDCurrency with ElectrumXCurrencyInterface { BigInt get satsPerCoin => BigInt.from(100000000); @override - int get targetBlockTimeSeconds => 60; + int get targetBlockTimeSeconds => 150; @override DerivePathType get defaultDerivePathType => DerivePathType.bip44; @@ -239,9 +226,12 @@ class Dash extends Bip39HDCurrency with ElectrumXCurrencyInterface { @override Uri defaultBlockExplorer(String txid) { switch (network) { - // TODO - // case CryptoCurrencyNetwork.main: + case CryptoCurrencyNetwork.main: + return Uri.parse("https://insight.dash.org/insight/tx/$txid"); // case CryptoCurrencyNetwork.test: + // return Uri.parse( + // "https://insight.testnet.networks.dash.org:3002/insight/tx/$txid", + // ); default: throw Exception( "Unsupported network for defaultBlockExplorer(): $network", @@ -250,7 +240,7 @@ class Dash extends Bip39HDCurrency with ElectrumXCurrencyInterface { } @override - int get transactionVersion => 1; + int get transactionVersion => 2; @override BigInt get defaultFeeRate => BigInt.from(1000); // TODO check for dash? diff --git a/lib/wallets/wallet/impl/dash_wallet.dart b/lib/wallets/wallet/impl/dash_wallet.dart index 75d724a92..93a0a15cf 100644 --- a/lib/wallets/wallet/impl/dash_wallet.dart +++ b/lib/wallets/wallet/impl/dash_wallet.dart @@ -7,6 +7,7 @@ import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../utilities/amount/amount.dart'; import '../../../utilities/logger.dart'; +import '../../../utilities/util.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../intermediate/bip39_hd_wallet.dart'; @@ -243,7 +244,7 @@ class DashWallet extends Bip39HDWallet final tx = TransactionV2( walletId: walletId, blockHash: txData["blockhash"] as String?, - hash: txData["hash"] as String, + hash: txData["txid"] as String, txid: txData["txid"] as String, height: txData["height"] as int?, version: txData["version"] as int, diff --git a/scripts/app_config/configure_stack_wallet.sh b/scripts/app_config/configure_stack_wallet.sh index ead2df85f..2c798e53f 100755 --- a/scripts/app_config/configure_stack_wallet.sh +++ b/scripts/app_config/configure_stack_wallet.sh @@ -75,7 +75,6 @@ final List _supportedCoins = List.unmodifiable([ Bitcoincash(CryptoCurrencyNetwork.test), BitcoinFrost(CryptoCurrencyNetwork.test), BitcoinFrost(CryptoCurrencyNetwork.test4), - Dash(CryptoCurrencyNetwork.test), Dogecoin(CryptoCurrencyNetwork.test), Firo(CryptoCurrencyNetwork.test), Litecoin(CryptoCurrencyNetwork.test), From c1de87c0e6e0d2f9a0a4d55971d468064d3527aa Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 21 Jun 2024 12:25:24 -0600 Subject: [PATCH 276/318] mobile node connection management fix --- lib/widgets/node_options_sheet.dart | 200 +++++----------------------- 1 file changed, 33 insertions(+), 167 deletions(-) diff --git a/lib/widgets/node_options_sheet.dart b/lib/widgets/node_options_sheet.dart index bb5692b1f..553f60c05 100644 --- a/lib/widgets/node_options_sheet.dart +++ b/lib/widgets/node_options_sheet.dart @@ -13,26 +13,19 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:solana/solana.dart'; import 'package:tuple/tuple.dart'; -import '../models/node_model.dart'; -import '../notifications/show_flush_bar.dart'; import '../pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart'; import '../pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart'; import '../providers/global/active_wallet_provider.dart'; +import '../providers/global/secure_store_provider.dart'; import '../providers/providers.dart'; -import '../services/tor_service.dart'; import '../themes/stack_colors.dart'; import '../utilities/assets.dart'; -import '../utilities/connection_check/electrum_connection_check.dart'; import '../utilities/constants.dart'; import '../utilities/default_nodes.dart'; import '../utilities/enums/sync_type_enum.dart'; -import '../utilities/logger.dart'; -import '../utilities/test_epic_box_connection.dart'; -import '../utilities/test_eth_node_connection.dart'; -import '../utilities/test_monero_node_connection.dart'; +import '../utilities/test_node_connection.dart'; import '../utilities/text_styles.dart'; import '../wallets/crypto_currency/crypto_currency.dart'; import 'rounded_white_container.dart'; @@ -82,150 +75,6 @@ class NodeOptionsSheet extends ConsumerWidget { } } - Future _testConnection( - NodeModel node, - BuildContext context, - WidgetRef ref, - ) async { - bool testPassed = false; - - switch (coin.runtimeType) { - case const (Epiccash): - try { - testPassed = await testEpicNodeConnection( - NodeFormData() - ..host = node.host - ..useSSL = node.useSSL - ..port = node.port, - ) != - null; - } catch (e, s) { - Logging.instance.log("$e\n$s", level: LogLevel.Warning); - } - break; - - case const (Monero): - case const (Wownero): - try { - final uri = Uri.parse(node.host); - if (uri.scheme.startsWith("http")) { - final String path = uri.path.isEmpty ? "/json_rpc" : uri.path; - - final String uriString = - "${uri.scheme}://${uri.host}:${node.port}$path"; - - final response = await testMoneroNodeConnection( - Uri.parse(uriString), - false, - proxyInfo: ref.read(prefsChangeNotifierProvider).useTor - ? ref.read(pTorService).getProxyInfo() - : null, - ); - - if (response.cert != null && context.mounted) { - // if (mounted) { - final shouldAllowBadCert = await showBadX509CertificateDialog( - response.cert!, - response.url!, - response.port!, - context, - ); - - if (shouldAllowBadCert) { - final response = await testMoneroNodeConnection( - Uri.parse(uriString), - true, - proxyInfo: ref.read(prefsChangeNotifierProvider).useTor - ? ref.read(pTorService).getProxyInfo() - : null, - ); - testPassed = response.success; - } - // } - } else { - testPassed = response.success; - } - } - } catch (e, s) { - Logging.instance.log("$e\n$s", level: LogLevel.Warning); - } - - break; - - case const (Bitcoin): - case const (Litecoin): - case const (Dogecoin): - case const (Firo): - case const (Particl): - case const (Bitcoincash): - case const (Namecoin): - case const (Ecash): - case const (BitcoinFrost): - case const (Peercoin): - try { - testPassed = await checkElectrumServer( - host: node.host, - port: node.port, - useSSL: node.useSSL, - overridePrefs: ref.read(prefsChangeNotifierProvider), - overrideTorService: ref.read(pTorService), - ); - } catch (_) { - testPassed = false; - } - - break; - - case const (Ethereum): - try { - testPassed = await testEthNodeConnection(node.host); - } catch (_) { - testPassed = false; - } - break; - - case const (Nano): - case const (Banano): - case const (Tezos): - case const (Stellar): - throw UnimplementedError(); - //TODO: check network/node - - case const (Solana): - try { - RpcClient rpcClient; - if (node.host.startsWith("http") || node.host.startsWith("https")) { - rpcClient = RpcClient("${node.host}:${node.port}"); - } else { - rpcClient = RpcClient("http://${node.host}:${node.port}"); - } - await rpcClient.getEpochInfo().then((value) => testPassed = true); - } catch (_) { - testPassed = false; - } - break; - } - - if (testPassed) { - // showFloatingFlushBar( - // type: FlushBarType.success, - // message: "Server ping success", - // context: context, - // ); - } else { - unawaited( - showFloatingFlushBar( - type: FlushBarType.warning, - iconAsset: Assets.svg.circleAlert, - message: "Could not connect to node", - context: context, - ), - ); - } - - return testPassed; - } - @override Widget build(BuildContext context, WidgetRef ref) { final maxHeight = MediaQuery.of(context).size.height * 0.60; @@ -403,21 +252,38 @@ class NodeOptionsSheet extends ConsumerWidget { onPressed: status == "Connected" ? null : () async { - final canConnect = - await _testConnection(node, context, ref); - if (!canConnect) { - return; + final pw = await node.getPassword( + ref.read(secureStoreProvider), + ); + if (context.mounted) { + final canConnect = await testNodeConnection( + context: context, + nodeFormData: NodeFormData() + ..name = node.name + ..host = node.host + ..login = node.loginName + ..password = pw + ..port = node.port + ..useSSL = node.useSSL + ..isFailover = node.isFailover + ..trusted = node.trusted, + cryptoCurrency: coin, + ref: ref, + ); + if (!canConnect) { + return; + } + + await ref + .read(nodeServiceChangeNotifierProvider) + .setPrimaryNodeFor( + coin: coin, + node: node, + shouldNotifyListeners: true, + ); + + await _notifyWalletsOfUpdatedNode(ref); } - - await ref - .read(nodeServiceChangeNotifierProvider) - .setPrimaryNodeFor( - coin: coin, - node: node, - shouldNotifyListeners: true, - ); - - await _notifyWalletsOfUpdatedNode(ref); }, child: Text( // status == "Connected" ? "Disconnect" : "Connect", From bf3bd152b6e4af0dae3eca2094a15f562cb08fe0 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 21 Jun 2024 12:30:08 -0600 Subject: [PATCH 277/318] unused import --- lib/wallets/wallet/impl/dash_wallet.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/wallets/wallet/impl/dash_wallet.dart b/lib/wallets/wallet/impl/dash_wallet.dart index 93a0a15cf..8138b684b 100644 --- a/lib/wallets/wallet/impl/dash_wallet.dart +++ b/lib/wallets/wallet/impl/dash_wallet.dart @@ -7,7 +7,6 @@ import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; import '../../../utilities/amount/amount.dart'; import '../../../utilities/logger.dart'; -import '../../../utilities/util.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../intermediate/bip39_hd_wallet.dart'; From e8131c5ad255c80f80854684e37e6742af4e338d Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 21 Jun 2024 12:32:33 -0600 Subject: [PATCH 278/318] add dash id to price service --- lib/services/price.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/services/price.dart b/lib/services/price.dart index 83470c125..dc4f3d8d8 100644 --- a/lib/services/price.dart +++ b/lib/services/price.dart @@ -30,6 +30,7 @@ class PriceAPI { BitcoinFrost: "bitcoin", Litecoin: "litecoin", Bitcoincash: "bitcoin-cash", + Dash: "dash", Dogecoin: "dogecoin", Epiccash: "epic-cash", Ecash: "ecash", From 6bcbbdfbbb19dab549de3f55fad188b44ffcbd42 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 21 Jun 2024 12:41:05 -0600 Subject: [PATCH 279/318] desktop nodes sublist views ui layout fixes --- .../manage_nodes_views/coin_nodes_view.dart | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart index 26f54fc27..1cacd431e 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart @@ -13,8 +13,8 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'add_edit_node_view.dart'; -import '../../sub_widgets/nodes_list.dart'; +import 'package:tuple/tuple.dart'; + import '../../../../themes/coin_icon_provider.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/assets.dart'; @@ -26,7 +26,8 @@ import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/custom_buttons/blue_text_button.dart'; import '../../../../widgets/desktop/desktop_dialog.dart'; import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; -import 'package:tuple/tuple.dart'; +import '../../sub_widgets/nodes_list.dart'; +import 'add_edit_node_view.dart'; class CoinNodesView extends ConsumerStatefulWidget { const CoinNodesView({ @@ -59,7 +60,10 @@ class _CoinNodesViewState extends ConsumerState { Widget build(BuildContext context) { if (Util.isDesktop) { return DesktopDialog( + maxHeight: null, + maxWidth: 580, child: Column( + mainAxisSize: MainAxisSize.min, children: [ Row( children: [ @@ -129,11 +133,15 @@ class _CoinNodesViewState extends ConsumerState { const SizedBox( width: 12, ), - Padding( - padding: const EdgeInsets.all(20), - child: NodesList( - coin: widget.coin, - popBackToRoute: CoinNodesView.routeName, + Flexible( + child: Padding( + padding: const EdgeInsets.all(20), + child: SingleChildScrollView( + child: NodesList( + coin: widget.coin, + popBackToRoute: CoinNodesView.routeName, + ), + ), ), ), ], From c31575eaf32f17f385543f1e59efb7d64b82a615 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 21 Jun 2024 13:08:52 -0600 Subject: [PATCH 280/318] fix desktop base price currency search --- .../global_settings_view/currency_view.dart | 41 ++++++++----------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/lib/pages/settings_views/global_settings_view/currency_view.dart b/lib/pages/settings_views/global_settings_view/currency_view.dart index 18c8a6a12..2f85dc445 100644 --- a/lib/pages/settings_views/global_settings_view/currency_view.dart +++ b/lib/pages/settings_views/global_settings_view/currency_view.dart @@ -48,18 +48,17 @@ class _CurrencyViewState extends ConsumerState { final _searchFocusNode = FocusNode(); void onTap(int index) { + if (currenciesWithoutSelected[index] == current || current.isEmpty) { + // ignore if already selected currency + return; + } + current = currenciesWithoutSelected[index]; + currenciesWithoutSelected.remove(current); + currenciesWithoutSelected.insert(0, current); + if (Util.isDesktop) { - setState(() { - current = currenciesWithoutSelected[index]; - }); + setState(() {}); } else { - if (currenciesWithoutSelected[index] == current || current.isEmpty) { - // ignore if already selected currency - return; - } - current = currenciesWithoutSelected[index]; - currenciesWithoutSelected.remove(current); - currenciesWithoutSelected.insert(0, current); ref.read(prefsChangeNotifierProvider).currency = current; if (ref.read(prefsChangeNotifierProvider).externalCalls) { @@ -104,13 +103,7 @@ class _CurrencyViewState extends ConsumerState { void initState() { _searchController = TextEditingController(); if (Util.isDesktop) { - currenciesWithoutSelected = - ref.read(baseCurrenciesProvider).map.keys.toList(); current = ref.read(prefsChangeNotifierProvider).currency; - if (current.isNotEmpty) { - currenciesWithoutSelected.remove(current); - currenciesWithoutSelected.insert(0, current); - } } super.initState(); } @@ -129,16 +122,16 @@ class _CurrencyViewState extends ConsumerState { if (!isDesktop) { current = ref .watch(prefsChangeNotifierProvider.select((value) => value.currency)); + } - currenciesWithoutSelected = ref - .watch(baseCurrenciesProvider.select((value) => value.map)) - .keys - .toList(); + currenciesWithoutSelected = ref + .watch(baseCurrenciesProvider.select((value) => value.map)) + .keys + .toList(); - if (current.isNotEmpty) { - currenciesWithoutSelected.remove(current); - currenciesWithoutSelected.insert(0, current); - } + if (current.isNotEmpty) { + currenciesWithoutSelected.remove(current); + currenciesWithoutSelected.insert(0, current); } currenciesWithoutSelected = _filtered(); From 6d3ce31cf67f91e38ddc9a99d658c431633ae54d Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 21 Jun 2024 16:26:50 -0600 Subject: [PATCH 281/318] fix desktop chans sending pop up layout --- .../send_view/sub_widgets/sending_transaction_dialog.dart | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart b/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart index 710cbfa1c..c16792d11 100644 --- a/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart +++ b/lib/pages/send_view/sub_widgets/sending_transaction_dialog.dart @@ -13,6 +13,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:lottie/lottie.dart'; + import '../../../themes/coin_image_provider.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; @@ -64,6 +65,7 @@ class _RestoringDialogState extends ConsumerState { if (Util.isDesktop) { return DesktopDialog( + maxHeight: assetPath.endsWith(".gif") ? double.infinity : null, child: Padding( padding: const EdgeInsets.all(40), child: Column( @@ -77,8 +79,10 @@ class _RestoringDialogState extends ConsumerState { height: 40, ), assetPath.endsWith(".gif") - ? Image.file( - File(assetPath), + ? Flexible( + child: Image.file( + File(assetPath), + ), ) : ProgressAndSuccess( controller: _progressAndSuccessController!, From 523639edd42294350845b214c15ad29a5b378c16 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Sat, 22 Jun 2024 11:43:20 -0500 Subject: [PATCH 282/318] Revert "tor_ffi_plugin -> tor" This reverts commit f4f03b2dd39532bd57e8d58ab4a99025dec43edc. --- ios/Podfile.lock | 10 +- .../subscribable_electrumx_client.dart | 2 +- lib/services/fusion_tor_service.dart | 3 +- lib/services/tor_service.dart | 5 +- linux/flutter/generated_plugins.cmake | 1 - macos/Flutter/GeneratedPluginRegistrant.swift | 2 +- macos/Podfile.lock | 10 +- pubspec.lock | 349 ++++++++---------- .../ios/Runner.xcodeproj/project.pbxproj | 4 +- scripts/app_config/templates/pubspec.template | 4 +- .../node_options_sheet_test.mocks.dart | 2 +- windows/flutter/generated_plugins.cmake | 2 +- 12 files changed, 179 insertions(+), 215 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index e08fc890a..cff46cb7b 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -102,7 +102,7 @@ PODS: - Flutter - SwiftProtobuf (1.19.0) - SwiftyGif (5.4.3) - - tor (0.0.1): + - tor_ffi_plugin (0.0.1): - Flutter - url_launcher_ios (0.0.1): - Flutter @@ -134,7 +134,7 @@ DEPENDENCIES: - share_plus (from `.symlinks/plugins/share_plus/ios`) - sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/ios`) - stack_wallet_backup (from `.symlinks/plugins/stack_wallet_backup/ios`) - - tor (from `.symlinks/plugins/tor/ios`) + - tor_ffi_plugin (from `.symlinks/plugins/tor_ffi_plugin/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - wakelock (from `.symlinks/plugins/wakelock/ios`) @@ -198,8 +198,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/sqlite3_flutter_libs/ios" stack_wallet_backup: :path: ".symlinks/plugins/stack_wallet_backup/ios" - tor: - :path: ".symlinks/plugins/tor/ios" + tor_ffi_plugin: + :path: ".symlinks/plugins/tor_ffi_plugin/ios" url_launcher_ios: :path: ".symlinks/plugins/url_launcher_ios/ios" wakelock: @@ -238,7 +238,7 @@ SPEC CHECKSUMS: stack_wallet_backup: 5b8563aba5d8ffbf2ce1944331ff7294a0ec7c03 SwiftProtobuf: 6ef3f0e422ef90d6605ca20b21a94f6c1324d6b3 SwiftyGif: 6c3eafd0ce693cad58bb63d2b2fb9bacb8552780 - tor: d80e291b649379c8176e1be739e49be007d4ef93 + tor_ffi_plugin: d80e291b649379c8176e1be739e49be007d4ef93 url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 wakelock: d0fc7c864128eac40eba1617cb5264d9c940b46f diff --git a/lib/electrumx_rpc/subscribable_electrumx_client.dart b/lib/electrumx_rpc/subscribable_electrumx_client.dart index e4a5a080c..f06771906 100644 --- a/lib/electrumx_rpc/subscribable_electrumx_client.dart +++ b/lib/electrumx_rpc/subscribable_electrumx_client.dart @@ -22,7 +22,7 @@ // import 'package:stackwallet/services/tor_service.dart'; // import 'package:stackwallet/utilities/logger.dart'; // import 'package:stackwallet/utilities/prefs.dart'; -// import 'package:tor/socks_socket.dart'; +// import 'package:tor_ffi_plugin/socks_socket.dart'; // // class ElectrumXSubscription { // final StreamController _controller = diff --git a/lib/services/fusion_tor_service.dart b/lib/services/fusion_tor_service.dart index c943409c5..0d5b29f59 100644 --- a/lib/services/fusion_tor_service.dart +++ b/lib/services/fusion_tor_service.dart @@ -1,8 +1,7 @@ import 'dart:io'; -import 'package:tor/tor.dart'; - import '../utilities/logger.dart'; +import 'package:tor_ffi_plugin/tor_ffi_plugin.dart'; class FusionTorService { Tor? _tor; diff --git a/lib/services/tor_service.dart b/lib/services/tor_service.dart index 27597ec27..b31de58f3 100644 --- a/lib/services/tor_service.dart +++ b/lib/services/tor_service.dart @@ -1,11 +1,10 @@ import 'dart:io'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:tor/tor.dart'; - -import '../utilities/logger.dart'; import 'event_bus/events/global/tor_connection_status_changed_event.dart'; import 'event_bus/global_event_bus.dart'; +import '../utilities/logger.dart'; +import 'package:tor_ffi_plugin/tor_ffi_plugin.dart'; final pTorService = Provider((_) => TorService.sharedInstance); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 1958f097d..a8bc74800 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -19,7 +19,6 @@ list(APPEND FLUTTER_FFI_PLUGIN_LIST coinlib_flutter flutter_libsparkmobile frostdart - tor tor_ffi_plugin ) diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index c0d7042c3..762e46f56 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -33,7 +33,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) IsarFlutterLibsPlugin.register(with: registry.registrar(forPlugin: "IsarFlutterLibsPlugin")) LelantusPlugin.register(with: registry.registrar(forPlugin: "LelantusPlugin")) - FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) + FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin")) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 3ebe0ea74..f7100bab5 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -51,7 +51,7 @@ PODS: - sqlite3/rtree - stack_wallet_backup (0.0.1): - FlutterMacOS - - tor (0.0.1) + - tor_ffi_plugin (0.0.1) - url_launcher_macos (0.0.1): - FlutterMacOS - wakelock_macos (0.0.1): @@ -78,7 +78,7 @@ DEPENDENCIES: - share_plus (from `Flutter/ephemeral/.symlinks/plugins/share_plus/macos`) - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos`) - stack_wallet_backup (from `Flutter/ephemeral/.symlinks/plugins/stack_wallet_backup/macos`) - - tor (from `Flutter/ephemeral/.symlinks/plugins/tor/macos`) + - tor_ffi_plugin (from `Flutter/ephemeral/.symlinks/plugins/tor_ffi_plugin/macos`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) - wakelock_macos (from `Flutter/ephemeral/.symlinks/plugins/wakelock_macos/macos`) - window_size (from `Flutter/ephemeral/.symlinks/plugins/window_size/macos`) @@ -125,8 +125,8 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos stack_wallet_backup: :path: Flutter/ephemeral/.symlinks/plugins/stack_wallet_backup/macos - tor: - :path: Flutter/ephemeral/.symlinks/plugins/tor/macos + tor_ffi_plugin: + :path: Flutter/ephemeral/.symlinks/plugins/tor_ffi_plugin/macos url_launcher_macos: :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos wakelock_macos: @@ -155,7 +155,7 @@ SPEC CHECKSUMS: sqlite3: 154b084339ede06960a5b3c8160066adc9176b7d sqlite3_flutter_libs: 1be4459672f8168ded2d8667599b8e3ca5e72b83 stack_wallet_backup: 6ebc60b1bdcf11cf1f1cbad9aa78332e1e15778c - tor: 2566c1ed174688cca560fa0c64b7a799c66f07cb + tor_ffi_plugin: 2566c1ed174688cca560fa0c64b7a799c66f07cb url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 wakelock_macos: bc3f2a9bd8d2e6c89fee1e1822e7ddac3bd004a9 window_size: 339dafa0b27a95a62a843042038fa6c3c48de195 diff --git a/pubspec.lock b/pubspec.lock index 1934151c7..6271130e7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -37,26 +37,26 @@ packages: dependency: "direct main" description: name: archive - sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d + sha256: e0902a06f0e00414e4e3438a084580161279f137aeb862274710f29ec10cf01e url: "https://pub.dev" source: hosted - version: "3.6.1" + version: "3.3.9" args: dependency: transitive description: name: args - sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.4.2" asn1lib: dependency: transitive description: name: asn1lib - sha256: "58082b3f0dca697204dbab0ef9ff208bfaea7767ea771076af9a343488428dda" + sha256: "21afe4333076c02877d14f4a89df111e658a6d466cbfc802eb705eb91bd5adfd" url: "https://pub.dev" source: hosted - version: "1.5.3" + version: "1.5.0" async: dependency: "direct main" description: @@ -77,10 +77,10 @@ packages: dependency: "direct main" description: name: basic_utils - sha256: "2064b21d3c41ed7654bc82cc476fd65542e04d60059b74d5eed490a4da08fc6c" + sha256: "8815477fcf58499e42326bd858e391442425fa57db9a45e48e15224c62049262" url: "https://pub.dev" source: hosted - version: "5.7.0" + version: "5.5.4" bech32: dependency: "direct main" description: @@ -194,34 +194,34 @@ packages: dependency: transitive description: name: build_daemon - sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" + sha256: "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65" url: "https://pub.dev" source: hosted - version: "4.0.1" + version: "4.0.0" build_resolvers: dependency: transitive description: name: build_resolvers - sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + sha256: d912852cce27c9e80a93603db721c267716894462e7033165178b91138587972 url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.3.2" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + sha256: "10c6bcdbf9d049a0b666702cf1cee4ddfdc38f02a19d35ae392863b47519848b" url: "https://pub.dev" source: hosted - version: "2.4.9" + version: "2.4.6" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "4ae8ffe5ac758da294ecf1802f2aff01558d8b1b00616aa7538ea9a8a5d50799" + sha256: "6d6ee4276b1c5f34f21fdf39425202712d2be82019983d52f351c94aafbc2c41" url: "https://pub.dev" source: hosted - version: "7.3.0" + version: "7.2.10" built_collection: dependency: transitive description: @@ -234,18 +234,18 @@ packages: dependency: transitive description: name: built_value - sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb + sha256: ff627b645b28fb8bdb69e645f910c2458fd6b65f6585c3a53e0626024897dedf url: "https://pub.dev" source: hosted - version: "8.9.2" + version: "8.6.2" calendar_date_picker2: dependency: "direct main" description: name: calendar_date_picker2 - sha256: a46a9c461e17e58e44bc3b115160fa5a90973a16574045e5c48a788a26273314 + sha256: "7ff3f372faff6814a2ba69427d116fb9a3d52e28644b9de4b06db6638fdac798" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.2" characters: dependency: transitive description: @@ -266,10 +266,10 @@ packages: dependency: transitive description: name: cli_util - sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19 + sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7 url: "https://pub.dev" source: hosted - version: "0.4.1" + version: "0.4.0" clock: dependency: transitive description: @@ -282,10 +282,10 @@ packages: dependency: transitive description: name: code_builder - sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 + sha256: "315a598c7fbe77f22de1c9da7cfd6fd21816312f16ffa124453b4fc679e540f1" url: "https://pub.dev" source: hosted - version: "4.10.0" + version: "4.6.0" coinlib: dependency: transitive description: @@ -338,10 +338,10 @@ packages: dependency: transitive description: name: coverage - sha256: "3945034e86ea203af7a056d98e98e42a5518fff200d6e8e6647e1886b07e936e" + sha256: "8acabb8306b57a409bf4c83522065672ee13179297a6bb0cb9ead73948df7c76" url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.7.2" cross_file: dependency: transitive description: @@ -362,10 +362,10 @@ packages: dependency: transitive description: name: cryptography - sha256: d146b76d33d94548cf035233fbc2f4338c1242fa119013bead807d033fc4ae05 + sha256: df156c5109286340817d21fa7b62f9140f17915077127dd70f8bd7a2a0997a35 url: "https://pub.dev" source: hosted - version: "2.7.0" + version: "2.5.0" csslib: dependency: transitive description: @@ -431,10 +431,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" + sha256: abd7625e16f51f554ea244d090292945ec4d4be7bfbaf2ec8cccea568919d334 url: "https://pub.dev" source: hosted - version: "2.3.6" + version: "2.3.3" dartx: dependency: transitive description: @@ -447,10 +447,10 @@ packages: dependency: transitive description: name: dbus - sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" + sha256: "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263" url: "https://pub.dev" source: hosted - version: "0.7.10" + version: "0.7.8" decimal: dependency: "direct main" description: @@ -463,26 +463,26 @@ packages: dependency: "direct dev" description: name: dependency_validator - sha256: f727a5627aa405965fab4aef4f468e50a9b632ba0737fd2f98c932fec6d712b9 + sha256: "08349175533ed0bd06eb9b6043cde66c45b2bfc7ebc222a7542cdb1324f1bf03" url: "https://pub.dev" source: hosted - version: "3.2.3" + version: "3.2.2" desktop_drop: dependency: "direct main" description: name: desktop_drop - sha256: d55a010fe46c8e8fcff4ea4b451a9ff84a162217bdb3b2a0aa1479776205e15d + sha256: ebba9c9cb0b54385998a977d741cc06fd8324878c08d5a36e9da61cd56b04cc6 url: "https://pub.dev" source: hosted - version: "0.4.4" + version: "0.4.3" device_info_plus: dependency: "direct main" description: name: device_info_plus - sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" + sha256: "86add5ef97215562d2e090535b0a16f197902b10c369c558a100e74ea06e8659" url: "https://pub.dev" source: hosted - version: "9.1.2" + version: "9.0.3" device_info_plus_platform_interface: dependency: transitive description: @@ -527,10 +527,10 @@ packages: dependency: transitive description: name: eip1559 - sha256: c2b81ac85f3e0e71aaf558201dd9a4600f051ece7ebacd0c5d70065c9b458004 + sha256: de454d6321bd753eb79116e9ec4f8df20895c2e97f9a3839a032f3a728985516 url: "https://pub.dev" source: hosted - version: "0.6.2" + version: "0.6.1" eip55: dependency: transitive description: @@ -543,8 +543,8 @@ packages: dependency: "direct main" description: path: "." - ref: "9e9441fc1e9ace8907256fff05fe2c607b0933b6" - resolved-ref: "9e9441fc1e9ace8907256fff05fe2c607b0933b6" + ref: "23f6b42895827ba9202db176781810d085fdd77e" + resolved-ref: "23f6b42895827ba9202db176781810d085fdd77e" url: "https://github.com/cypherstack/electrum_adapter.git" source: git version: "3.0.0" @@ -600,10 +600,10 @@ packages: dependency: "direct main" description: name: ffi - sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.0" file: dependency: transitive description: @@ -659,10 +659,10 @@ packages: dependency: "direct main" description: name: flutter_hooks - sha256: cde36b12f7188c85286fba9b38cc5a902e7279f36dd676967106c041dc9dde70 + sha256: "7c8db779c2d1010aa7f9ea3fbefe8f86524fcb87b69e8b0af31e1a4b55422dec" url: "https://pub.dev" source: hosted - version: "0.20.5" + version: "0.20.3" flutter_launcher_icons: dependency: "direct dev" description: @@ -698,18 +698,18 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" + sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7 url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.1" flutter_local_notifications: dependency: "direct main" description: name: flutter_local_notifications - sha256: "40e6fbd2da7dcc7ed78432c5cdab1559674b4af035fddbfb2f9a8f9c2112fcef" + sha256: f9a05409385b77b06c18f200a41c7c2711ebf7415669350bb0f8474c07bd40d1 url: "https://pub.dev" source: hosted - version: "17.1.2" + version: "17.0.0" flutter_local_notifications_linux: dependency: transitive description: @@ -722,26 +722,26 @@ packages: dependency: transitive description: name: flutter_local_notifications_platform_interface - sha256: "340abf67df238f7f0ef58f4a26d2a83e1ab74c77ab03cd2b2d5018ac64db30b7" + sha256: "7cf643d6d5022f3baed0be777b0662cce5919c0a7b86e700299f22dc4ae660ef" url: "https://pub.dev" source: hosted - version: "7.1.0" + version: "7.0.0+1" flutter_mobx: dependency: transitive description: name: flutter_mobx - sha256: "859fbf452fa9c2519d2700b125dd7fb14c508bbdd7fb65e26ca8ff6c92280e2e" + sha256: "0da4add0016387a7bf309a0d0c41d36c6b3ae25ed7a176409267f166509e723e" url: "https://pub.dev" source: hosted - version: "2.2.1+1" + version: "2.0.6+5" flutter_native_splash: dependency: "direct main" description: name: flutter_native_splash - sha256: "17d9671396fb8ec45ad10f4a975eb8a0f70bedf0fdaf0720b31ea9de6da8c4da" + sha256: ecff62b3b893f2f665de7e4ad3de89f738941fcfcaaba8ee601e749efafa4698 url: "https://pub.dev" source: hosted - version: "2.3.7" + version: "2.3.2" flutter_plugin_android_lifecycle: dependency: transitive description: @@ -770,34 +770,34 @@ packages: dependency: transitive description: name: flutter_secure_storage_linux - sha256: "4d91bfc23047422cbcd73ac684bc169859ee766482517c22172c86596bf1464b" + sha256: "3d5032e314774ee0e1a7d0a9f5e2793486f0dff2dd9ef5a23f4e3fb2a0ae6a9e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.0" flutter_secure_storage_macos: dependency: transitive description: name: flutter_secure_storage_macos - sha256: "1693ab11121a5f925bbea0be725abfcfbbcf36c1e29e571f84a0c0f436147a81" + sha256: bd33935b4b628abd0b86c8ca20655c5b36275c3a3f5194769a7b3f37c905369c url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.0.1" flutter_secure_storage_platform_interface: dependency: transitive description: name: flutter_secure_storage_platform_interface - sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8 + sha256: "0d4d3a5dd4db28c96ae414d7ba3b8422fd735a8255642774803b2532c9a61d7e" url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.0.2" flutter_secure_storage_web: dependency: transitive description: name: flutter_secure_storage_web - sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9 + sha256: "30f84f102df9dcdaa2241866a958c2ec976902ebdaa8883fbfe525f1f2f3cf20" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.1.2" flutter_secure_storage_windows: dependency: transitive description: @@ -810,10 +810,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" + sha256: "8c5d68a82add3ca76d792f058b186a0599414f279f00ece4830b9b231b570338" url: "https://pub.dev" source: hosted - version: "2.0.10+1" + version: "2.0.7" flutter_test: dependency: "direct dev" description: flutter @@ -873,10 +873,10 @@ packages: dependency: "direct main" description: name: google_fonts - sha256: "2776c66b3e97c6cdd58d1bd3281548b074b64f1fd5c8f82391f7456e38849567" + sha256: "6b6f10f0ce3c42f6552d1c70d2c28d764cf22bb487f50f66cca31dcd5194f4d6" url: "https://pub.dev" source: hosted - version: "4.0.5" + version: "4.0.4" graphs: dependency: transitive description: @@ -961,10 +961,10 @@ packages: dependency: transitive description: name: image - sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" + sha256: a72242c9a0ffb65d03de1b7113bc4e189686fc07c7147b8b41811d0dd0e0d9bf url: "https://pub.dev" source: hosted - version: "4.2.0" + version: "4.0.17" import_sorter: dependency: "direct dev" description: @@ -1030,10 +1030,10 @@ packages: dependency: transitive description: name: json_annotation - sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 url: "https://pub.dev" source: hosted - version: "4.9.0" + version: "4.8.1" json_rpc_2: dependency: transitive description: @@ -1046,10 +1046,10 @@ packages: dependency: transitive description: name: json_serializable - sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b + sha256: aa1f5a8912615733e0fdc7a02af03308933c93235bdc8d50d0b0c8a8ccb0b969 url: "https://pub.dev" source: hosted - version: "6.8.0" + version: "6.7.1" keyboard_dismisser: dependency: "direct main" description: @@ -1117,10 +1117,10 @@ packages: dependency: "direct main" description: name: lottie - sha256: a93542cc2d60a7057255405f62252533f8e8956e7e06754955669fd32fb4b216 + sha256: b8bdd54b488c54068c57d41ae85d02808da09e2bee8b8dd1f59f441e7efa60cd url: "https://pub.dev" source: hosted - version: "2.7.0" + version: "2.6.0" matcher: dependency: transitive description: @@ -1157,18 +1157,18 @@ packages: dependency: transitive description: name: mime - sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" + sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e url: "https://pub.dev" source: hosted - version: "1.0.5" + version: "1.0.4" mobx: dependency: transitive description: name: mobx - sha256: "63920b27b32ad1910adfe767ab1750e4c212e8923232a1f891597b362074ea5e" + sha256: "0afcf88b3ee9d6819890bf16c11a727fc8c62cf736fda8e5d3b9b4eace4e62ea" url: "https://pub.dev" source: hosted - version: "2.3.3+2" + version: "2.2.0" mockingjay: dependency: "direct dev" description: @@ -1206,10 +1206,10 @@ packages: dependency: "direct main" description: name: mutex - sha256: "8827da25de792088eb33e572115a5eb0d61d61a3c01acbc8bcbe76ed78f1a1f2" + sha256: "03116a4e46282a671b46c12de649d72c0ed18188ffe12a8d0fc63e83f4ad88f4" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.0.1" nanodart: dependency: "direct main" description: @@ -1218,14 +1218,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" - nested: - dependency: transitive - description: - name: nested - sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" - url: "https://pub.dev" - source: hosted - version: "1.0.0" nm: dependency: transitive description: @@ -1254,10 +1246,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "7e76fad405b3e4016cd39d08f455a4eb5199723cf594cd1b8916d47140d93017" + sha256: "6ff267fcd9d48cb61c8df74a82680e8b82e940231bb5f68356672fde0397334a" url: "https://pub.dev" source: hosted - version: "4.2.0" + version: "4.1.0" package_info_plus_platform_interface: dependency: transitive description: @@ -1286,26 +1278,26 @@ packages: dependency: "direct main" description: name: path_provider - sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 + sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.1" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d + sha256: "6b8b19bd80da4f11ce91b2d1fb931f3006911477cec227cce23d3253d80df3f1" url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.2.0" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.3.1" path_provider_linux: dependency: transitive description: @@ -1318,10 +1310,10 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.1" path_provider_windows: dependency: transitive description: @@ -1334,50 +1326,42 @@ packages: dependency: "direct main" description: name: permission_handler - sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb" + sha256: ad65ba9af42a3d067203641de3fd9f547ded1410bad3b84400c2b4899faede70 url: "https://pub.dev" source: hosted - version: "11.3.1" + version: "11.0.0" permission_handler_android: dependency: transitive description: name: permission_handler_android - sha256: b29a799ca03be9f999aa6c39f7de5209482d638e6f857f6b93b0875c618b7e54 + sha256: f23cfe9af0d49c6b9fd8a8b09f7b3301ca7e346204939b5afef4404d36d2608f url: "https://pub.dev" source: hosted - version: "12.0.7" + version: "11.0.1" permission_handler_apple: dependency: transitive description: name: permission_handler_apple - sha256: e6f6d73b12438ef13e648c4ae56bd106ec60d17e90a59c4545db6781229082a0 + sha256: "99e220bce3f8877c78e4ace901082fb29fa1b4ebde529ad0932d8d664b34f3f5" url: "https://pub.dev" source: hosted - version: "9.4.5" - permission_handler_html: - dependency: transitive - description: - name: permission_handler_html - sha256: "54bf176b90f6eddd4ece307e2c06cf977fb3973719c35a93b85cc7093eb6070d" - url: "https://pub.dev" - source: hosted - version: "0.1.1" + version: "9.1.4" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface - sha256: "48d4fcf201a1dad93ee869ab0d4101d084f49136ec82a8a06ed9cfeacab9fd20" + sha256: f2343e9fa9c22ae4fd92d4732755bfe452214e7189afcc097380950cf567b4b2 url: "https://pub.dev" source: hosted - version: "4.2.1" + version: "3.11.5" permission_handler_windows: dependency: transitive description: name: permission_handler_windows - sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" + sha256: cc074aace208760f1eee6aa4fae766b45d947df85bc831cde77009cdb4720098 url: "https://pub.dev" source: hosted - version: "0.2.1" + version: "0.1.3" petitparser: dependency: transitive description: @@ -1414,10 +1398,10 @@ packages: dependency: "direct main" description: name: pointycastle - sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" + sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" url: "https://pub.dev" source: hosted - version: "3.9.1" + version: "3.7.3" pool: dependency: transitive description: @@ -1450,14 +1434,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.0" - provider: - dependency: transitive - description: - name: provider - sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c - url: "https://pub.dev" - source: hosted - version: "6.1.2" pub_semver: dependency: transitive description: @@ -1470,10 +1446,10 @@ packages: dependency: transitive description: name: pubspec_parse - sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 + sha256: c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.2.3" qr: dependency: transitive description: @@ -1502,10 +1478,10 @@ packages: dependency: transitive description: name: rational - sha256: cb808fb6f1a839e6fc5f7d8cb3b0a10e1db48b3be102de73938c627f0b636336 + sha256: ba58e9e18df9abde280e8b10051e4bce85091e41e8e7e411b6cde2e738d357cf url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.2.2" retry: dependency: transitive description: @@ -1542,18 +1518,18 @@ packages: dependency: "direct main" description: name: share_plus - sha256: "3ef39599b00059db0990ca2e30fca0a29d8b37aae924d60063f8e0184cf20900" + sha256: "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11" url: "https://pub.dev" source: hosted - version: "7.2.2" + version: "7.1.0" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "251eb156a8b5fa9ce033747d73535bf53911071f8d3b6f4f0b578505ce0d4496" + sha256: "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7" url: "https://pub.dev" source: hosted - version: "3.4.0" + version: "3.3.0" shelf: dependency: transitive description: @@ -1595,19 +1571,19 @@ packages: dependency: "direct main" description: name: socks5_proxy - sha256: "616818a0ea1064a4823b53c9f7eaf8da64ed82dcd51ed71371c7e54751ed5053" + sha256: "1d21b5606169654bbf4cfb904e8e6ed897e9f763358709f87310c757096d909a" url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "1.0.4" socks_socket: dependency: transitive description: path: "." ref: master - resolved-ref: b1fa8ca505e7e488edb4c2859f0218d48b15dead + resolved-ref: ac6d721fe655208a6d488a088a35bab0ddc25702 url: "https://github.com/cypherstack/socks_socket.git" source: git - version: "1.0.0" + version: "0.1.0" solana: dependency: "direct main" description: @@ -1621,10 +1597,10 @@ packages: dependency: transitive description: name: source_gen - sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" + sha256: fc0da689e5302edb6177fdd964efcb7f58912f43c28c2047a808f5bfff643d16 url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.4.0" source_helper: dependency: transitive description: @@ -1669,10 +1645,10 @@ packages: dependency: "direct main" description: name: sqlite3_flutter_libs - sha256: "9f89a7e7dc36eac2035808427eba1c3fbd79e59c3a22093d8dace6d36b1fe89e" + sha256: "1e62698dc1ab396152ccaf3b3990d826244e9f3c8c39b51805f209adcd6dbea3" url: "https://pub.dev" source: hosted - version: "0.5.23" + version: "0.5.22" stack_trace: dependency: transitive description: @@ -1702,10 +1678,10 @@ packages: dependency: "direct main" description: name: stellar_flutter_sdk - sha256: "7d505963fe11d0f90b3f798964c485ed9fa64731c38f14c9b2fb76d5d5bd6cd8" + sha256: "574e8f40a1a1a9b18a735272196c8d3c8168a669efc8460a4d5d6f45151e8dce" url: "https://pub.dev" source: hosted - version: "1.8.1" + version: "1.7.8" stream_channel: dependency: "direct main" description: @@ -1791,18 +1767,18 @@ packages: dependency: transitive description: name: time - sha256: ad8e018a6c9db36cb917a031853a1aae49467a93e0d464683e029537d848c221 + sha256: "83427e11d9072e038364a5e4da559e85869b227cf699a541be0da74f14140124" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.3" timezone: dependency: transitive description: name: timezone - sha256: a6ccda4a69a442098b602c44e61a1e2b4bf6f5516e875bbf0f427d5df14745d5 + sha256: "1cfd8ddc2d1cfd836bc93e67b9be88c3adaeca6f40a00ca999104c30693cdca0" url: "https://pub.dev" source: hosted - version: "0.9.3" + version: "0.9.2" timing: dependency: transitive description: @@ -1827,21 +1803,12 @@ packages: url: "https://pub.dev" source: hosted version: "0.13.1" - tor: + tor_ffi_plugin: dependency: "direct main" description: path: "." - ref: "9c87dee8c2ade4a41dea3916b9dfcf1f79dcd425" - resolved-ref: "9c87dee8c2ade4a41dea3916b9dfcf1f79dcd425" - url: "https://github.com/cypherstack/tor.git" - source: git - version: "0.0.3" - tor_ffi_plugin: - dependency: transitive - description: - path: "." - ref: e37dc4e22f7acb2746b70bdc935f0eb3c50b8b71 - resolved-ref: e37dc4e22f7acb2746b70bdc935f0eb3c50b8b71 + ref: "336f4310226166c7da3b503b2b54f2249e9e0055" + resolved-ref: "336f4310226166c7da3b503b2b54f2249e9e0055" url: "https://github.com/cypherstack/tor.git" source: git version: "0.0.1" @@ -1881,66 +1848,66 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" + sha256: "47e208a6711459d813ba18af120d9663c20bdf6985d6ad39fe165d2538378d27" url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.1.14" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "17cd5e205ea615e2c6ea7a77323a11712dffa0720a8a90540db57a01347f9ad9" + sha256: b04af59516ab45762b2ca6da40fa830d72d0f6045cd97744450b73493fa76330 url: "https://pub.dev" source: hosted - version: "6.3.2" + version: "6.1.0" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "7068716403343f6ba4969b4173cbf3b84fc768042124bc2c011e5d782b24fe89" + sha256: "7c65021d5dee51813d652357bc65b8dd4a6177082a9966bc8ba6ee477baa795f" url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.1.5" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 + sha256: b651aad005e0cb06a01dbd84b428a301916dc75f0e7ea6165f80057fee2d8e8e url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.0.6" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" + sha256: b55486791f666e62e0e8ff825e58a023fd6b1f71c49926483f1128d3bbd8fe88 url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.0.7" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + sha256: "95465b39f83bfe95fcb9d174829d6476216f2d548b79c38ab2506e0458787618" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.1.5" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a" + sha256: ba140138558fcc3eead51a1c42e92a9fb074a1b1149ed3c73e66035b2ccd94f2 url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.0.19" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7 + sha256: "95fef3129dc7cfaba2bc3d5ba2e16063bb561fc6d78e63eee16162bc70029069" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.0.8" uuid: dependency: "direct main" description: @@ -1953,26 +1920,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" + sha256: "670f6e07aca990b4a2bcdc08a784193c4ccdd1932620244c3a86bb72a0eac67f" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.7" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da + sha256: "7451721781d967db9933b63f5733b1c4533022c0ba373a01bdd79d1a5457f69f" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.7" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" + sha256: "80a13c613c8bde758b1464a1755a7b3a8f2b6cec61fbf0f5a53c94c30f03ba2e" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.7" vector_math: dependency: transitive description: @@ -2034,10 +2001,10 @@ packages: dependency: transitive description: name: wallet - sha256: "687fd89a16557649b26189e597792962f405797fc64113e8758eabc2c2605c32" + sha256: "569c91c2af13a9e1119c001f9c09218eccf3f383eb8d15ba13a5b558010c1bc0" url: "https://pub.dev" source: hosted - version: "0.0.13" + version: "0.0.12+1" wasm_interop: dependency: transitive description: @@ -2098,24 +2065,24 @@ packages: dependency: transitive description: name: win32 - sha256: "0eaf06e3446824099858367950a813472af675116bf63f008a4c2a75ae13e9cb" + sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" url: "https://pub.dev" source: hosted - version: "5.5.0" + version: "5.2.0" win32_registry: dependency: transitive description: name: win32_registry - sha256: "10589e0d7f4e053f2c61023a31c9ce01146656a70b7b7f0828c0b46d7da2a9bb" + sha256: e4506d60b7244251bc59df15656a3093501c37fb5af02105a944d73eb95be4c9 url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "1.1.1" window_size: dependency: "direct main" description: path: "plugins/window_size" ref: HEAD - resolved-ref: eb3964990cf19629c89ff8cb4a37640c7b3d5601 + resolved-ref: "6c66ad23ee79749f30a8eece542cf54eaf157ed8" url: "https://github.com/google/flutter-desktop-embedding.git" source: git version: "0.1.0" diff --git a/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj b/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj index 9b2728c2d..4b521cca2 100644 --- a/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj +++ b/scripts/app_config/templates/ios/Runner.xcodeproj/project.pbxproj @@ -344,7 +344,7 @@ "${BUILT_PRODUCTS_DIR}/sqlite3/sqlite3.framework", "${BUILT_PRODUCTS_DIR}/sqlite3_flutter_libs/sqlite3_flutter_libs.framework", "${BUILT_PRODUCTS_DIR}/stack_wallet_backup/stack_wallet_backup.framework", - "${BUILT_PRODUCTS_DIR}/tor/tor.framework", + "${BUILT_PRODUCTS_DIR}/tor_ffi_plugin/tor_ffi_plugin.framework", "${BUILT_PRODUCTS_DIR}/url_launcher_ios/url_launcher_ios.framework", "${BUILT_PRODUCTS_DIR}/wakelock/wakelock.framework", ); @@ -379,7 +379,7 @@ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3_flutter_libs.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/stack_wallet_backup.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/tor.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/tor_ffi_plugin.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_ios.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/wakelock.framework", ); diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index 9d3fc88ca..26e9410cd 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -70,10 +70,10 @@ dependencies: url: https://github.com/cypherstack/bip47.git ref: a6e7941b98a43a613708b1a12564bc17e712cfc7 - tor: + tor_ffi_plugin: git: url: https://github.com/cypherstack/tor.git - ref: 9c87dee8c2ade4a41dea3916b9dfcf1f79dcd425 # foundation branch + ref: e37dc4e22f7acb2746b70bdc935f0eb3c50b8b71 fusiondart: git: diff --git a/test/widget_tests/node_options_sheet_test.mocks.dart b/test/widget_tests/node_options_sheet_test.mocks.dart index c94b7bc35..59450b63e 100644 --- a/test/widget_tests/node_options_sheet_test.mocks.dart +++ b/test/widget_tests/node_options_sheet_test.mocks.dart @@ -28,7 +28,7 @@ import 'package:stackwallet/wallets/isar/models/wallet_info.dart' as _i11; import 'package:stackwallet/wallets/wallet/wallet.dart' as _i5; import 'package:stackwallet/wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart' as _i6; -import 'package:tor/tor.dart' as _i21; +import 'package:tor_ffi_plugin/tor_ffi_plugin.dart' as _i21; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 029f2850e..b00cd149f 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -20,7 +20,7 @@ list(APPEND FLUTTER_FFI_PLUGIN_LIST coinlib_flutter flutter_libsparkmobile frostdart - tor + tor_ffi_plugin ) set(PLUGIN_BUNDLED_LIBRARIES) From e0623fbe19699c964b53f38358066f44a18f3f49 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Sat, 22 Jun 2024 11:44:04 -0500 Subject: [PATCH 283/318] bump arti (again) --- scripts/app_config/templates/pubspec.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index 26e9410cd..2a11dca5d 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -73,7 +73,7 @@ dependencies: tor_ffi_plugin: git: url: https://github.com/cypherstack/tor.git - ref: e37dc4e22f7acb2746b70bdc935f0eb3c50b8b71 + ref: 1bdf3ae7b625312832d09cd6e8f8b1e89213bb31 fusiondart: git: From e5044543ba2df163d4a39261f090d1b0db1e50bd Mon Sep 17 00:00:00 2001 From: sneurlax Date: Sat, 22 Jun 2024 12:23:59 -0500 Subject: [PATCH 284/318] udpate tor client methods for arti 1.2.4 --- lib/services/tor_service.dart | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/services/tor_service.dart b/lib/services/tor_service.dart index b31de58f3..81cf127b8 100644 --- a/lib/services/tor_service.dart +++ b/lib/services/tor_service.dart @@ -1,10 +1,11 @@ import 'dart:io'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:tor_ffi_plugin/tor_ffi_plugin.dart'; + +import '../utilities/logger.dart'; import 'event_bus/events/global/tor_connection_status_changed_event.dart'; import 'event_bus/global_event_bus.dart'; -import '../utilities/logger.dart'; -import 'package:tor_ffi_plugin/tor_ffi_plugin.dart'; final pTorService = Provider((_) => TorService.sharedInstance); @@ -49,7 +50,7 @@ class TorService { }) { _tor ??= mockableOverride ?? Tor.instance; _torDataDirPath ??= torDataDirPath; - _tor?.enable(torDataDirPath: torDataDirPath); + _tor?.start(torDataDirPath: torDataDirPath); } /// Start the Tor service. From d6b8ccab09c43defeea99926c7629447f979232a Mon Sep 17 00:00:00 2001 From: sneurlax Date: Sat, 22 Jun 2024 12:27:39 -0500 Subject: [PATCH 285/318] bump tor in electrum_adapter --- scripts/app_config/templates/pubspec.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index 2a11dca5d..2e538bec4 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -175,7 +175,7 @@ dependencies: electrum_adapter: git: url: https://github.com/cypherstack/electrum_adapter.git - ref: 9e9441fc1e9ace8907256fff05fe2c607b0933b6 + ref: dbcd460494d075920271eeba11cb691fc9e4b0bd stream_channel: ^2.1.0 solana: git: # TODO [prio=low]: Revert to official package once Tor support is merged upstream. From ced64b12d677dd4091d677fa3aa835105058d7c8 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Sat, 22 Jun 2024 18:39:51 -0500 Subject: [PATCH 286/318] use ssl appropriately re: onion services in electrum_adapter package --- scripts/app_config/templates/pubspec.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index 2e538bec4..f62d3f87c 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -175,7 +175,7 @@ dependencies: electrum_adapter: git: url: https://github.com/cypherstack/electrum_adapter.git - ref: dbcd460494d075920271eeba11cb691fc9e4b0bd + ref: 1e0acd16159fe6920f73d86d2318204df4f90a47 stream_channel: ^2.1.0 solana: git: # TODO [prio=low]: Revert to official package once Tor support is merged upstream. From 535d7bf85eeaeb1c3180c43cae3cf92d3eb090ca Mon Sep 17 00:00:00 2001 From: sneurlax Date: Sat, 22 Jun 2024 18:40:30 -0500 Subject: [PATCH 287/318] increase timeout durations for proxied calls and pass bools accordingly --- .../connection_check/electrum_connection_check.dart | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/utilities/connection_check/electrum_connection_check.dart b/lib/utilities/connection_check/electrum_connection_check.dart index 480434ce3..85ff83511 100644 --- a/lib/utilities/connection_check/electrum_connection_check.dart +++ b/lib/utilities/connection_check/electrum_connection_check.dart @@ -47,16 +47,18 @@ Future checkElectrumServer({ final client = await ElectrumClient.connect( host: host, port: port, - useSSL: useSSL, + useSSL: useSSL && !host.endsWith('.onion'), proxyInfo: proxyInfo, ).timeout( - const Duration(seconds: 5), + Duration(seconds: (proxyInfo == null ? 5 : 30)), onTimeout: () => throw Exception( "The checkElectrumServer connect() call timed out.", ), ); - await client.ping().timeout(const Duration(seconds: 5)); + await client + .ping() + .timeout(Duration(seconds: (proxyInfo == null ? 5 : 30))); return true; } catch (_) { From c2d08120255ebf054d77df7681cb467943743098 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Sat, 22 Jun 2024 18:55:15 -0500 Subject: [PATCH 288/318] update tor and electrum_adapter packages re: onion domains & SSL usage --- scripts/app_config/templates/pubspec.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index f62d3f87c..6227fcb33 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -73,7 +73,7 @@ dependencies: tor_ffi_plugin: git: url: https://github.com/cypherstack/tor.git - ref: 1bdf3ae7b625312832d09cd6e8f8b1e89213bb31 + ref: 88318df1993b46b51f880f77546fe08210a45e08 fusiondart: git: @@ -175,7 +175,7 @@ dependencies: electrum_adapter: git: url: https://github.com/cypherstack/electrum_adapter.git - ref: 1e0acd16159fe6920f73d86d2318204df4f90a47 + ref: 0a3a447a0dbcf5c3c74fcb5b4ef7f75ab49fde07 stream_channel: ^2.1.0 solana: git: # TODO [prio=low]: Revert to official package once Tor support is merged upstream. From fd3bac27eb674004504d8c91396f0fd993358ad5 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Sat, 22 Jun 2024 19:30:24 -0500 Subject: [PATCH 289/318] WIP monero test onion node works sometimes but fails most of the time, ffs --- .../test_monero_node_connection.dart | 94 ++++++++++++++----- 1 file changed, 70 insertions(+), 24 deletions(-) diff --git a/lib/utilities/test_monero_node_connection.dart b/lib/utilities/test_monero_node_connection.dart index f7bbfeaf2..7af89f6d8 100644 --- a/lib/utilities/test_monero_node_connection.dart +++ b/lib/utilities/test_monero_node_connection.dart @@ -13,6 +13,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:socks5_proxy/socks.dart'; +import 'package:tor_ffi_plugin/socks_socket.dart'; import '../widgets/desktop/primary_button.dart'; import '../widgets/desktop/secondary_button.dart'; @@ -64,34 +65,79 @@ Future testMoneroNodeConnection( return false; }; - final request = await httpClient.postUrl(uri); + if (!uri.host.endsWith('.onion')) { + final request = await httpClient.postUrl(uri); - final body = utf8.encode( - jsonEncode({ - "jsonrpc": "2.0", - "id": "0", - "method": "get_info", - }), - ); + final body = utf8.encode( + jsonEncode({ + "jsonrpc": "2.0", + "id": "0", + "method": "get_info", + }), + ); - request.headers.add( - 'Content-Length', - body.length.toString(), - preserveHeaderCase: true, - ); - request.headers.set( - 'Content-Type', - 'application/json', - preserveHeaderCase: true, - ); + request.headers.add( + 'Content-Length', + body.length.toString(), + preserveHeaderCase: true, + ); + request.headers.set( + 'Content-Type', + 'application/json', + preserveHeaderCase: true, + ); - request.add(body); + request.add(body); - final response = await request.close(); - final result = await response.transform(utf8.decoder).join(); - // TODO: json decoded without error so assume connection exists? - // or we can check for certain values in the response to decide - return MoneroNodeConnectionResponse(null, null, null, true); + final response = await request.close(); + final result = await response.transform(utf8.decoder).join(); + // TODO: json decoded without error so assume connection exists? + // or we can check for certain values in the response to decide + return MoneroNodeConnectionResponse(null, null, null, true); + } else { + // If the URL ends in .onion, we can't use an httpClient to connect to it. + // + // The SOCKSSocket class from the tor_ffi_plugin package can be used to + // connect to .onion addresses. We'll do the same things as above but + // with SOCKSSocket instead of httpClient. + final socket = await SOCKSSocket.create( + proxyHost: proxyInfo!.host.address, + proxyPort: proxyInfo.port, + sslEnabled: false, + ); + await socket.connect(); + await socket.connectTo(uri.host, uri.port); + + final body = utf8.encode( + jsonEncode({ + "jsonrpc": "2.0", + "id": "0", + "method": "get_info", + }), + ); + + // Write the request body to the socket. + socket.write(body); + + // Read the response. + final response = await socket.inputStream.first; + final result = utf8.decode(response); + + // Close the socket. + await socket.close(); + return MoneroNodeConnectionResponse(null, null, null, true); + + // Parse the response. + // + // This is commented because any issues should throw. + // final Map jsonResponse = jsonDecode(result); + // print(jsonResponse); + // if (jsonResponse.containsKey('result')) { + // return MoneroNodeConnectionResponse(null, null, null, true); + // } else { + // return MoneroNodeConnectionResponse(null, null, null, false); + // } + } } catch (e, s) { if (badCertResponse != null) { return badCertResponse!; From ea780a03e46f60d3302f5db94dbbebb7368bbf25 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Sun, 23 Jun 2024 01:56:05 -0500 Subject: [PATCH 290/318] update electrum_adapter to respect sslEnabled flag instead of checking if the host ends in ".onion", we should handle SSL some other way so that .onion nodes don't immediately cail their calls. --- scripts/app_config/templates/pubspec.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index 6227fcb33..91debb179 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -175,7 +175,7 @@ dependencies: electrum_adapter: git: url: https://github.com/cypherstack/electrum_adapter.git - ref: 0a3a447a0dbcf5c3c74fcb5b4ef7f75ab49fde07 + ref: 6f17558259324542647c9795e68ea70a71330110 stream_channel: ^2.1.0 solana: git: # TODO [prio=low]: Revert to official package once Tor support is merged upstream. From aeb7179ab41c2697eada9c875abaa526d31fd418 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 24 Jun 2024 10:53:45 -0500 Subject: [PATCH 291/318] remove out of order tor.start --- lib/services/tor_service.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/services/tor_service.dart b/lib/services/tor_service.dart index 81cf127b8..849b9f5c6 100644 --- a/lib/services/tor_service.dart +++ b/lib/services/tor_service.dart @@ -50,7 +50,6 @@ class TorService { }) { _tor ??= mockableOverride ?? Tor.instance; _torDataDirPath ??= torDataDirPath; - _tor?.start(torDataDirPath: torDataDirPath); } /// Start the Tor service. From f2e50c958d3e8a308d2f3bcedcf0474645e8ddbc Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 24 Jun 2024 11:05:20 -0500 Subject: [PATCH 292/318] improve tor exception message if port is null --- scripts/app_config/templates/pubspec.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index 91debb179..e91eb3b9b 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -73,7 +73,7 @@ dependencies: tor_ffi_plugin: git: url: https://github.com/cypherstack/tor.git - ref: 88318df1993b46b51f880f77546fe08210a45e08 + ref: f9511607828261d6a2f9fbab3695f5694cca5fe8 fusiondart: git: From 7b4b4632d9c5b5b810cd7af6ce382c1355963440 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 24 Jun 2024 11:54:11 -0500 Subject: [PATCH 293/318] update tor to add stop fn --- pubspec.lock | 14 +++++++------- scripts/app_config/templates/pubspec.template | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 6271130e7..39553e6a3 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -543,8 +543,8 @@ packages: dependency: "direct main" description: path: "." - ref: "23f6b42895827ba9202db176781810d085fdd77e" - resolved-ref: "23f6b42895827ba9202db176781810d085fdd77e" + ref: "0a3a447a0dbcf5c3c74fcb5b4ef7f75ab49fde07" + resolved-ref: "0a3a447a0dbcf5c3c74fcb5b4ef7f75ab49fde07" url: "https://github.com/cypherstack/electrum_adapter.git" source: git version: "3.0.0" @@ -1197,9 +1197,9 @@ packages: dependency: "direct main" description: path: "." - ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac" - resolved-ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac" - url: "https://www.github.com/mrcyjanek/monero.dart" + ref: d46753eca865e9e56c2f0ef6fe485c42e11982c5 + resolved-ref: d46753eca865e9e56c2f0ef6fe485c42e11982c5 + url: "https://github.com/mrcyjanek/monero.dart" source: git version: "0.0.0" mutex: @@ -1807,8 +1807,8 @@ packages: dependency: "direct main" description: path: "." - ref: "336f4310226166c7da3b503b2b54f2249e9e0055" - resolved-ref: "336f4310226166c7da3b503b2b54f2249e9e0055" + ref: "88318df1993b46b51f880f77546fe08210a45e08" + resolved-ref: "88318df1993b46b51f880f77546fe08210a45e08" url: "https://github.com/cypherstack/tor.git" source: git version: "0.0.1" diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index e91eb3b9b..cf7aabba4 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -73,7 +73,7 @@ dependencies: tor_ffi_plugin: git: url: https://github.com/cypherstack/tor.git - ref: f9511607828261d6a2f9fbab3695f5694cca5fe8 + ref: 1e71dc8da0e50e2fb178d499f5fabd703bbc900e fusiondart: git: From 765e2b9b2e184bbec4c65cc890a21a192b8358b4 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 24 Jun 2024 12:04:01 -0500 Subject: [PATCH 294/318] bump tor in electrum_adapter --- pubspec.lock | 8 ++++---- scripts/app_config/templates/pubspec.template | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 39553e6a3..567e99200 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -543,8 +543,8 @@ packages: dependency: "direct main" description: path: "." - ref: "0a3a447a0dbcf5c3c74fcb5b4ef7f75ab49fde07" - resolved-ref: "0a3a447a0dbcf5c3c74fcb5b4ef7f75ab49fde07" + ref: "7bff7a86c9150f5d7fccded4467513f67b9b2f7f" + resolved-ref: "7bff7a86c9150f5d7fccded4467513f67b9b2f7f" url: "https://github.com/cypherstack/electrum_adapter.git" source: git version: "3.0.0" @@ -1807,8 +1807,8 @@ packages: dependency: "direct main" description: path: "." - ref: "88318df1993b46b51f880f77546fe08210a45e08" - resolved-ref: "88318df1993b46b51f880f77546fe08210a45e08" + ref: "1e71dc8da0e50e2fb178d499f5fabd703bbc900e" + resolved-ref: "1e71dc8da0e50e2fb178d499f5fabd703bbc900e" url: "https://github.com/cypherstack/tor.git" source: git version: "0.0.1" diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index cf7aabba4..739b63742 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -175,7 +175,7 @@ dependencies: electrum_adapter: git: url: https://github.com/cypherstack/electrum_adapter.git - ref: 6f17558259324542647c9795e68ea70a71330110 + ref: 7bff7a86c9150f5d7fccded4467513f67b9b2f7f stream_channel: ^2.1.0 solana: git: # TODO [prio=low]: Revert to official package once Tor support is merged upstream. From a12b6955a991dd4f79e8bbfa49bf6f29b33d51f8 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 24 Jun 2024 12:05:23 -0500 Subject: [PATCH 295/318] stop tor in disable fn --- lib/services/tor_service.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/services/tor_service.dart b/lib/services/tor_service.dart index 849b9f5c6..8eebd758f 100644 --- a/lib/services/tor_service.dart +++ b/lib/services/tor_service.dart @@ -100,17 +100,19 @@ class TorService { } } - /// disable tor + /// Disable Tor. Future disable() async { if (_tor == null) { throw Exception("TorService.init has not been called!"); } - // no need to update status and fire event if status won't change + // No need to update status and fire event if status won't change. if (_status == TorConnectionStatus.disconnected) { return; } + await _tor?.stop(); + _updateStatusAndFireEvent( status: TorConnectionStatus.disconnected, message: "TorService.disable call success", From 531eeecb1053c14f37109d4539dde4c01c4f35d6 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 24 Jun 2024 12:13:24 -0500 Subject: [PATCH 296/318] patch tor's stop fn re: assert --- scripts/app_config/templates/pubspec.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index 739b63742..16a8097d6 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -73,7 +73,7 @@ dependencies: tor_ffi_plugin: git: url: https://github.com/cypherstack/tor.git - ref: 1e71dc8da0e50e2fb178d499f5fabd703bbc900e + ref: f1d02f7ad489df3119a540a7f31485db6d837843 fusiondart: git: @@ -175,7 +175,7 @@ dependencies: electrum_adapter: git: url: https://github.com/cypherstack/electrum_adapter.git - ref: 7bff7a86c9150f5d7fccded4467513f67b9b2f7f + ref: 6bf385b2e1e18c8aa23783cb8afeabace299cf68 stream_channel: ^2.1.0 solana: git: # TODO [prio=low]: Revert to official package once Tor support is merged upstream. From 3dfc1df0ba7a59a0d0e0ed4683594b898a479ef8 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Mon, 24 Jun 2024 12:38:05 -0500 Subject: [PATCH 297/318] pubspec lock update --- pubspec.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 567e99200..47107034f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -543,8 +543,8 @@ packages: dependency: "direct main" description: path: "." - ref: "7bff7a86c9150f5d7fccded4467513f67b9b2f7f" - resolved-ref: "7bff7a86c9150f5d7fccded4467513f67b9b2f7f" + ref: "6bf385b2e1e18c8aa23783cb8afeabace299cf68" + resolved-ref: "6bf385b2e1e18c8aa23783cb8afeabace299cf68" url: "https://github.com/cypherstack/electrum_adapter.git" source: git version: "3.0.0" @@ -1807,8 +1807,8 @@ packages: dependency: "direct main" description: path: "." - ref: "1e71dc8da0e50e2fb178d499f5fabd703bbc900e" - resolved-ref: "1e71dc8da0e50e2fb178d499f5fabd703bbc900e" + ref: f1d02f7ad489df3119a540a7f31485db6d837843 + resolved-ref: f1d02f7ad489df3119a540a7f31485db6d837843 url: "https://github.com/cypherstack/tor.git" source: git version: "0.0.1" From 2a10301a59a5a61f0390dcdaefd7b6dfe620d92e Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 24 Jun 2024 13:01:49 -0600 Subject: [PATCH 298/318] route missed post call through custom http wrapper --- lib/services/ethereum/ethereum_api.dart | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/services/ethereum/ethereum_api.dart b/lib/services/ethereum/ethereum_api.dart index faacec22e..a74bca89e 100644 --- a/lib/services/ethereum/ethereum_api.dart +++ b/lib/services/ethereum/ethereum_api.dart @@ -10,7 +10,6 @@ import 'dart:convert'; -import 'package:http/http.dart'; import 'package:tuple/tuple.dart'; import '../../dto/ethereum/eth_token_tx_dto.dart'; @@ -120,8 +119,8 @@ abstract class EthereumAPI { String txid, ) async { try { - final response = await post( - Uri.parse( + final response = await client.post( + url: Uri.parse( "$stackBaseServer/v1/mainnet", ), headers: {'Content-Type': 'application/json'}, @@ -133,9 +132,12 @@ abstract class EthereumAPI { ], "id": DateTime.now().millisecondsSinceEpoch, }), + proxyInfo: Prefs.instance.useTor + ? TorService.sharedInstance.getProxyInfo() + : null, ); - if (response.statusCode == 200) { + if (response.code == 200) { if (response.body.isNotEmpty) { try { final json = jsonDecode(response.body) as Map; @@ -153,13 +155,13 @@ abstract class EthereumAPI { } else { throw EthApiException( "getEthTransactionByHash($txid) response is empty but status code is " - "${response.statusCode}", + "${response.code}", ); } } else { throw EthApiException( "getEthTransactionByHash($txid) failed with status code: " - "${response.statusCode}", + "${response.code}", ); } } on EthApiException catch (e) { From ea8944191410f65a47f873ef1cb8cb10603c61c1 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 24 Jun 2024 13:36:24 -0600 Subject: [PATCH 299/318] stop tor fully, marking tor status as off which allows it to be restarted properly --- lib/services/tor_service.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/services/tor_service.dart b/lib/services/tor_service.dart index 8eebd758f..6904f8789 100644 --- a/lib/services/tor_service.dart +++ b/lib/services/tor_service.dart @@ -111,6 +111,7 @@ class TorService { return; } + _tor!.disable(); await _tor?.stop(); _updateStatusAndFireEvent( From f4b01ee64220d34abec379021e59f5d99609ddf7 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 24 Jun 2024 14:23:39 -0600 Subject: [PATCH 300/318] bandaid hack --- lib/electrumx_rpc/electrumx_client.dart | 28 +++++++++---------- .../electrumx_interface.dart | 7 ++++- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index a49d7675a..f08202612 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -208,7 +208,7 @@ class ElectrumXClient { await getElectrumAdapter()?.close(); } - Future _checkElectrumAdapter() async { + Future checkElectrumAdapter() async { ({InternetAddress host, int port})? proxyInfo; // If we're supposed to use Tor... @@ -311,9 +311,9 @@ class ElectrumXClient { if (_requireMutex) { await _torConnectingLock - .protect(() async => await _checkElectrumAdapter()); + .protect(() async => await checkElectrumAdapter()); } else { - await _checkElectrumAdapter(); + await checkElectrumAdapter(); } try { @@ -397,9 +397,9 @@ class ElectrumXClient { if (_requireMutex) { await _torConnectingLock - .protect(() async => await _checkElectrumAdapter()); + .protect(() async => await checkElectrumAdapter()); } else { - await _checkElectrumAdapter(); + await checkElectrumAdapter(); } try { @@ -780,7 +780,7 @@ class ElectrumXClient { "attempting to fetch blockchain.transaction.get...", level: LogLevel.Info, ); - await _checkElectrumAdapter(); + await checkElectrumAdapter(); final dynamic response = await getElectrumAdapter()!.getTransaction(txHash); Logging.instance.log( "Fetching blockchain.transaction.get finished", @@ -817,7 +817,7 @@ class ElectrumXClient { "attempting to fetch lelantus.getanonymityset...", level: LogLevel.Info, ); - await _checkElectrumAdapter(); + await checkElectrumAdapter(); final Map response = await (getElectrumAdapter() as FiroElectrumClient) .getLelantusAnonymitySet(groupId: groupId, blockHash: blockhash); @@ -840,7 +840,7 @@ class ElectrumXClient { "attempting to fetch lelantus.getmintmetadata...", level: LogLevel.Info, ); - await _checkElectrumAdapter(); + await checkElectrumAdapter(); final dynamic response = await (getElectrumAdapter() as FiroElectrumClient) .getLelantusMintData(mints: mints); Logging.instance.log( @@ -860,7 +860,7 @@ class ElectrumXClient { "attempting to fetch lelantus.getusedcoinserials...", level: LogLevel.Info, ); - await _checkElectrumAdapter(); + await checkElectrumAdapter(); int retryCount = 3; dynamic response; @@ -888,7 +888,7 @@ class ElectrumXClient { "attempting to fetch lelantus.getlatestcoinid...", level: LogLevel.Info, ); - await _checkElectrumAdapter(); + await checkElectrumAdapter(); final int response = await (getElectrumAdapter() as FiroElectrumClient).getLatestCoinId(); Logging.instance.log( @@ -920,7 +920,7 @@ class ElectrumXClient { }) async { try { final start = DateTime.now(); - await _checkElectrumAdapter(); + await checkElectrumAdapter(); final Map response = await (getElectrumAdapter() as FiroElectrumClient) .getSparkAnonymitySet( @@ -995,7 +995,7 @@ class ElectrumXClient { "attempting to fetch spark.getsparkmintmetadata...", level: LogLevel.Info, ); - await _checkElectrumAdapter(); + await checkElectrumAdapter(); final List response = await (getElectrumAdapter() as FiroElectrumClient) .getSparkMintMetaData(sparkCoinHashes: sparkCoinHashes); @@ -1021,7 +1021,7 @@ class ElectrumXClient { "attempting to fetch spark.getsparklatestcoinid...", level: LogLevel.Info, ); - await _checkElectrumAdapter(); + await checkElectrumAdapter(); final int response = await (getElectrumAdapter() as FiroElectrumClient) .getSparkLatestCoinId(); Logging.instance.log( @@ -1150,7 +1150,7 @@ class ElectrumXClient { /// "rate": 1000, /// } Future> getFeeRate({String? requestID}) async { - await _checkElectrumAdapter(); + await checkElectrumAdapter(); return await getElectrumAdapter()!.getFeeRate(); } diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart index 3ff1d65c3..5858517fd 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart @@ -810,12 +810,17 @@ mixin ElectrumXInterface ); } - Future fetchChainHeight() async { + Future fetchChainHeight({int retries = 1}) async { try { return await ClientManager.sharedInstance.getChainHeightFor( cryptoCurrency, ); } catch (e, s) { + if (retries > 0) { + retries--; + await electrumXClient.checkElectrumAdapter(); + return await fetchChainHeight(retries: retries); + } Logging.instance.log( "Exception rethrown in fetchChainHeight\nError: $e\nStack trace: $s", level: LogLevel.Error, From 2a784e58da8891849e509ea79236bebe025e1a87 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 24 Jun 2024 15:59:09 -0600 Subject: [PATCH 301/318] update tor lib with temp ios fix --- scripts/app_config/templates/pubspec.template | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/app_config/templates/pubspec.template b/scripts/app_config/templates/pubspec.template index 16a8097d6..e7eb439f7 100644 --- a/scripts/app_config/templates/pubspec.template +++ b/scripts/app_config/templates/pubspec.template @@ -73,7 +73,7 @@ dependencies: tor_ffi_plugin: git: url: https://github.com/cypherstack/tor.git - ref: f1d02f7ad489df3119a540a7f31485db6d837843 + ref: 647cadc3c82c276dc07915b02d24538fd610f220 fusiondart: git: @@ -210,6 +210,11 @@ flutter_native_splash: android_disable_fullscreen: true dependency_overrides: + # adding here due to pure laziness + tor_ffi_plugin: + git: + url: https://github.com/cypherstack/tor.git + ref: 647cadc3c82c276dc07915b02d24538fd610f220 monero: git: From 2917b111cf8e3793e93a5d0a3c50671253364ce4 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 25 Jun 2024 13:24:02 -0600 Subject: [PATCH 302/318] update ref --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index adc7bf50a..f1cfc0cbb 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit adc7bf50abe4bbe90d5050b82fb5751937cbae4e +Subproject commit f1cfc0cbb675c5e2d03c30152514fcbb28a465f4 From 0c3fbfef6c75f205316dfc127021df6333b94813 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 25 Jun 2024 11:59:55 -0600 Subject: [PATCH 303/318] call electrumx mn collat call --- lib/electrumx_rpc/electrumx_client.dart | 32 ++++++++++++++++++++++++ lib/wallets/wallet/impl/firo_wallet.dart | 11 ++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index f08202612..0333854e4 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -1142,6 +1142,38 @@ class ElectrumXClient { } // =========================================================================== + Future isMasterNodeCollateral({ + String? requestID, + required String txid, + required int index, + }) async { + try { + final start = DateTime.now(); + final response = await request( + requestID: requestID, + command: "blockchain.checkifmncollateral", + args: [ + txid, + index.toString(), + ], + ); + + Logging.instance.log( + "Finished ElectrumXClient.isMasterNodeCollateral, " + "response: $response, " + "Duration=${DateTime.now().difference(start)}", + level: LogLevel.Info, + ); + + return response as bool? ?? false; + } catch (e) { + Logging.instance.log(e, level: LogLevel.Error); + rethrow; + } + } + + // =========================================================================== + /// Get the current fee rate. /// /// Returns a map with the kay "rate" that corresponds to the free rate in satoshis diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index 156551be9..68185db60 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -631,9 +631,16 @@ class FiroWallet extends Bip39HDWallet BigInt.from(jsonUTXO["value"] as int); if (blocked) { - blockedReason = "Possible masternode output. " + blocked = await electrumXClient.isMasterNodeCollateral( + txid: jsonTX!["txid"] as String, + index: jsonUTXO["tx_pos"] as int, + ); + } + + if (blocked) { + blockedReason = "Masternode collateral. " "Unlock and spend at your own risk."; - label = "Possible masternode"; + label = "Masternode collateral"; } } From 7f0d4bc126227f474bf4cfe23dfdaf8103f81673 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 25 Jun 2024 12:13:38 -0600 Subject: [PATCH 304/318] update firo spark mempool electrumx methods --- lib/electrumx_rpc/electrumx_client.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index 0333854e4..547db53bb 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -1043,7 +1043,7 @@ class ElectrumXClient { final start = DateTime.now(); final response = await request( requestID: requestID, - command: "spark.getmempooltxids", + command: "spark.getmempoolsparktxids", ); final txids = List.from(response as List) @@ -1072,7 +1072,7 @@ class ElectrumXClient { final start = DateTime.now(); final response = await request( requestID: requestID, - command: "spark.getmempooltxs", + command: "spark.getmempoolsparktxs", args: [ { "txids": txids, From eb7aa24a0ad930d6acc9e047871672fb9714596f Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 25 Jun 2024 12:53:28 -0600 Subject: [PATCH 305/318] default to locked if mn collat call fails for safety reasons --- lib/electrumx_rpc/electrumx_client.dart | 2 +- lib/wallets/wallet/impl/firo_wallet.dart | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index 547db53bb..19b7ac562 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -1165,7 +1165,7 @@ class ElectrumXClient { level: LogLevel.Info, ); - return response as bool? ?? false; + return response as bool; } catch (e) { Logging.instance.log(e, level: LogLevel.Error); rethrow; diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index 68185db60..9d77396ee 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -631,16 +631,23 @@ class FiroWallet extends Bip39HDWallet BigInt.from(jsonUTXO["value"] as int); if (blocked) { - blocked = await electrumXClient.isMasterNodeCollateral( - txid: jsonTX!["txid"] as String, - index: jsonUTXO["tx_pos"] as int, - ); + try { + blocked = await electrumXClient.isMasterNodeCollateral( + txid: jsonTX!["txid"] as String, + index: jsonUTXO["tx_pos"] as int, + ); + } catch (_) { + // call failed, lock utxo just in case + // it should logically already be blocked + // but just in case + blocked = true; + } } if (blocked) { - blockedReason = "Masternode collateral. " + blockedReason = "Possible masternode collateral. " "Unlock and spend at your own risk."; - label = "Masternode collateral"; + label = "Possible masternode collateral"; } } From 8639309e70ee4edc19223e47d18190e368c8f3b3 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 25 Jun 2024 13:38:32 -0600 Subject: [PATCH 306/318] modify stack dialog --- lib/widgets/stack_dialog.dart | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/widgets/stack_dialog.dart b/lib/widgets/stack_dialog.dart index 1c189e660..1541256a0 100644 --- a/lib/widgets/stack_dialog.dart +++ b/lib/widgets/stack_dialog.dart @@ -188,14 +188,19 @@ class StackOkDialog extends StatelessWidget { height: 8, ), if (message != null) - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - message!, - style: STextStyles.smallMed14(context), - ), - ], + ConstrainedBox( + constraints: + BoxConstraints(maxWidth: maxWidth ?? double.infinity), + child: Row( + children: [ + Flexible( + child: Text( + message!, + style: STextStyles.smallMed14(context), + ), + ), + ], + ), ), const SizedBox( height: 20, From f634ce870142ba42e92982551c5b6780245bac25 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 25 Jun 2024 14:46:36 -0600 Subject: [PATCH 307/318] WIP firo exchange addresses --- lib/models/coinlib/exp2pkh_address.dart | 87 +++++++++++++++++++ lib/pages/send_view/send_view.dart | 22 ++++- .../wallet_view/sub_widgets/desktop_send.dart | 29 ++++--- .../ui/preview_tx_button_state_provider.dart | 28 ++++-- lib/wallets/crypto_currency/coins/firo.dart | 36 +++++++- .../electrumx_interface.dart | 22 ++++- .../spark_interface.dart | 4 +- .../dialogs/firo_exchange_address_dialog.dart | 26 ++++++ pubspec.lock | 4 +- 9 files changed, 229 insertions(+), 29 deletions(-) create mode 100644 lib/models/coinlib/exp2pkh_address.dart create mode 100644 lib/widgets/dialogs/firo_exchange_address_dialog.dart diff --git a/lib/models/coinlib/exp2pkh_address.dart b/lib/models/coinlib/exp2pkh_address.dart new file mode 100644 index 000000000..839c5f124 --- /dev/null +++ b/lib/models/coinlib/exp2pkh_address.dart @@ -0,0 +1,87 @@ +import 'dart:typed_data'; + +import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; + +const OP_EXCHANGEADDR = 0xe0; + +class EXP2PKHAddress implements coinlib.Address { + /// The 160bit public key or redeemScript hash for the base58 address + final Uint8List _hash; + + /// The network and address type version of the address + final Uint8List version; + + String? _encodedCache; + + EXP2PKHAddress._(Uint8List hash, this.version) : _hash = hash { + if (version.length != 3) { + throw ArgumentError( + "version bytes length must be 3", + ); + } + } + + factory EXP2PKHAddress.fromString(String encoded, Uint8List versionBytes) { + if (versionBytes.length != 3) { + throw ArgumentError( + "version bytes length must be 3", + ); + } + + final data = coinlib.base58Decode(encoded); + if (data.length != 23) throw coinlib.InvalidAddress(); + + final version = data.sublist(0, 3); + + for (int i = 0; i < 3; i++) { + if (version[i] != versionBytes[i]) { + throw Exception("EX address version bytes do not match"); + } + } + + final payload = data.sublist(3); + + final addr = EXP2PKHAddress._(payload, version); + + addr._encodedCache = encoded; + return addr; + } + + @override + String toString() => _encodedCache.toString(); + + @override + coinlib.Program get program => EXP2PKH.fromHash(_hash); +} + +class EXP2PKH implements coinlib.Program { + static const template = + "OP_EXCHANGEADDR OP_DUP OP_HASH160 <20-bytes> OP_EQUALVERIFY OP_CHECKSIG"; + + @override + final coinlib.Script script; + + EXP2PKH.fromScript(this.script); + + factory EXP2PKH.fromHash(Uint8List pkHash) { + final List ops = [ + coinlib.ScriptOpCode(OP_EXCHANGEADDR), + ]; + final parts = template.split(" ").sublist(1); + for (final name in parts) { + if (name.startsWith("OP_")) { + ops.add( + coinlib.ScriptOpCode( + coinlib.scriptOpNameToCode[name.substring(3)]!, + ), + ); + } else if (name == "<20-bytes>") { + ops.add(coinlib.ScriptPushData(pkHash)); + } else { + throw Exception("Something went wrong in this hacked code"); + } + } + + return EXP2PKH.fromScript(coinlib.Script(ops)); + } +} diff --git a/lib/pages/send_view/send_view.dart b/lib/pages/send_view/send_view.dart index 376f66d9d..9d1d4f8fc 100644 --- a/lib/pages/send_view/send_view.dart +++ b/lib/pages/send_view/send_view.dart @@ -56,6 +56,7 @@ import '../../widgets/animated_text.dart'; import '../../widgets/background.dart'; import '../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../widgets/custom_buttons/blue_text_button.dart'; +import '../../widgets/dialogs/firo_exchange_address_dialog.dart'; import '../../widgets/fee_slider.dart'; import '../../widgets/icon_widgets/addressbook_icon.dart'; import '../../widgets/icon_widgets/clipboard_icon.dart'; @@ -394,6 +395,14 @@ class _SendViewState extends ConsumerState { address: address ?? "", isTestNet: wallet.cryptoCurrency.network.isTestNet, ); + + ref.read(pIsExchangeAddress.state).state = + (coin as Firo).isExchangeAddress(_address ?? ""); + + if (ref.read(publicPrivateBalanceStateProvider) == FiroType.spark && + ref.read(pIsExchangeAddress)) { + showFiroExchangeAddressWarning(context); + } } ref.read(pValidSendToAddress.notifier).state = @@ -875,7 +884,10 @@ class _SendViewState extends ConsumerState { @override void initState() { coin = widget.coin; - ref.refresh(feeSheetSessionCacheProvider); + WidgetsBinding.instance.addPostFrameCallback((_) { + ref.refresh(feeSheetSessionCacheProvider); + ref.refresh(pIsExchangeAddress); + }); _currentFee = 0.toAmountAsRaw(fractionDigits: coin.fractionDigits); _calculateFeesFuture = @@ -1003,6 +1015,8 @@ class _SendViewState extends ConsumerState { : true); if (isFiro) { + final isExchangeAddress = ref.watch(pIsExchangeAddress); + ref.listen(publicPrivateBalanceStateProvider, (previous, next) { selectedUTXOs = {}; @@ -1019,6 +1033,12 @@ class _SendViewState extends ConsumerState { ); }); } + + if (previous != next && next == FiroType.spark && isExchangeAddress) { + WidgetsBinding.instance.addPostFrameCallback( + (_) => showFiroExchangeAddressWarning(context), + ); + } }); } diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart index d54e262f6..57ba79d68 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart @@ -60,6 +60,7 @@ import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../../widgets/desktop/desktop_fee_dialog.dart'; import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/dialogs/firo_exchange_address_dialog.dart'; import '../../../../widgets/fee_slider.dart'; import '../../../../widgets/icon_widgets/addressbook_icon.dart'; import '../../../../widgets/icon_widgets/clipboard_icon.dart'; @@ -706,6 +707,9 @@ class _DesktopSendState extends ConsumerState { address: address ?? "", isTestNet: wallet.cryptoCurrency.network.isTestNet, ); + + ref.read(pIsExchangeAddress.state).state = + (coin as Firo).isExchangeAddress(_address ?? ""); } ref.read(pValidSendToAddress.notifier).state = @@ -842,6 +846,7 @@ class _DesktopSendState extends ConsumerState { void initState() { WidgetsBinding.instance.addPostFrameCallback((_) { ref.refresh(feeSheetSessionCacheProvider); + ref.refresh(pIsExchangeAddress); ref.read(pValidSendToAddress.state).state = false; ref.read(pValidSparkSendToAddress.state).state = false; }); @@ -944,15 +949,22 @@ class _DesktopSendState extends ConsumerState { }); } + final firoType = ref.watch(publicPrivateBalanceStateProvider); + if (coin is Firo && firoType == FiroType.spark) { + if (ref.watch(pIsExchangeAddress)) { + WidgetsBinding.instance.addPostFrameCallback( + (_) => showFiroExchangeAddressWarning(context), + ); + } + } + final showCoinControl = ref.watch( prefsChangeNotifierProvider.select( (value) => value.enableCoinControl, ), ) && ref.watch(pWallets).getWallet(walletId) is CoinControlInterface && - (coin is Firo - ? ref.watch(publicPrivateBalanceStateProvider) == FiroType.public - : true); + (coin is Firo ? firoType == FiroType.public : true); return Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -978,7 +990,7 @@ class _DesktopSendState extends ConsumerState { DropdownButtonHideUnderline( child: DropdownButton2( isExpanded: true, - value: ref.watch(publicPrivateBalanceStateProvider.state).state, + value: firoType, items: [ DropdownMenuItem( value: FiroType.spark, @@ -1464,8 +1476,7 @@ class _DesktopSendState extends ConsumerState { if (_address == null || _address!.isEmpty) { error = null; } else if (coin is Firo) { - if (ref.watch(publicPrivateBalanceStateProvider) == - FiroType.lelantus) { + if (firoType == FiroType.lelantus) { if (_data != null && _data!.contactLabel == _address) { error = SparkInterface.validateSparkAddress( address: _data!.address, @@ -1526,15 +1537,13 @@ class _DesktopSendState extends ConsumerState { ), if (isStellar || (ref.watch(pValidSparkSendToAddress) && - ref.watch(publicPrivateBalanceStateProvider) != - FiroType.lelantus)) + firoType != FiroType.lelantus)) const SizedBox( height: 10, ), if (isStellar || (ref.watch(pValidSparkSendToAddress) && - ref.watch(publicPrivateBalanceStateProvider) != - FiroType.lelantus)) + firoType != FiroType.lelantus)) ClipRRect( borderRadius: BorderRadius.circular( Constants.size.circularBorderRadius, diff --git a/lib/providers/ui/preview_tx_button_state_provider.dart b/lib/providers/ui/preview_tx_button_state_provider.dart index 89d960743..196fe298d 100644 --- a/lib/providers/ui/preview_tx_button_state_provider.dart +++ b/lib/providers/ui/preview_tx_button_state_provider.dart @@ -9,27 +9,37 @@ */ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import '../wallet/public_private_balance_state_provider.dart'; + import '../../utilities/amount/amount.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; +import '../wallet/public_private_balance_state_provider.dart'; final pSendAmount = StateProvider.autoDispose((_) => null); final pValidSendToAddress = StateProvider.autoDispose((_) => false); final pValidSparkSendToAddress = StateProvider.autoDispose((_) => false); +final pIsExchangeAddress = StateProvider((_) => false); + final pPreviewTxButtonEnabled = Provider.autoDispose.family((ref, coin) { final amount = ref.watch(pSendAmount) ?? Amount.zero; if (coin is Firo) { - if (ref.watch(publicPrivateBalanceStateProvider) == FiroType.lelantus) { - return ref.watch(pValidSendToAddress) && - !ref.watch(pValidSparkSendToAddress) && - amount > Amount.zero; - } else { - return (ref.watch(pValidSendToAddress) || - ref.watch(pValidSparkSendToAddress)) && - amount > Amount.zero; + final firoType = ref.watch(publicPrivateBalanceStateProvider); + switch (firoType) { + case FiroType.lelantus: + return ref.watch(pValidSendToAddress) && + !ref.watch(pValidSparkSendToAddress) && + amount > Amount.zero; + + case FiroType.spark: + return (ref.watch(pValidSendToAddress) || + ref.watch(pValidSparkSendToAddress)) && + !ref.watch(pIsExchangeAddress) && + amount > Amount.zero; + + case FiroType.public: + return ref.watch(pValidSendToAddress) && amount > Amount.zero; } } else { return ref.watch(pValidSendToAddress) && amount > Amount.zero; diff --git a/lib/wallets/crypto_currency/coins/firo.dart b/lib/wallets/crypto_currency/coins/firo.dart index cf36840c7..9e4a3bddf 100644 --- a/lib/wallets/crypto_currency/coins/firo.dart +++ b/lib/wallets/crypto_currency/coins/firo.dart @@ -1,5 +1,8 @@ +import 'dart:typed_data'; + import 'package:coinlib_flutter/coinlib_flutter.dart' as coinlib; +import '../../../models/coinlib/exp2pkh_address.dart'; import '../../../models/isar/models/blockchain_data/address.dart'; import '../../../models/node_model.dart'; import '../../../utilities/amount/amount.dart'; @@ -77,6 +80,21 @@ class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { fractionDigits: fractionDigits, ); + Uint8List get exAddressVersion { + switch (network) { + case CryptoCurrencyNetwork.main: + // https://github.com/firoorg/firo/blob/master/src/chainparams.cpp#L357 + return Uint8List.fromList([0x01, 0xb9, 0xbb]); + + case CryptoCurrencyNetwork.test: + // https://github.com/firoorg/firo/blob/master/src/chainparams.cpp#L669 + return Uint8List.fromList([0x01, 0xb9, 0xb1]); + + default: + throw Exception("Unsupported network: $network"); + } + } + @override coinlib.Network get networkParams { switch (network) { @@ -169,7 +187,11 @@ class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { coinlib.Address.fromString(address, networkParams); return true; } catch (_) { - return validateSparkAddress(address); + if (validateSparkAddress(address)) { + return true; + } else { + return isExchangeAddress(address); + } } } @@ -180,6 +202,18 @@ class Firo extends Bip39HDCurrency with ElectrumXCurrencyInterface { ); } + bool isExchangeAddress(String address) { + try { + EXP2PKHAddress.fromString( + address, + exAddressVersion, + ); + return true; + } catch (_) { + return false; + } + } + @override NodeModel get defaultNode { switch (network) { diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart index 5858517fd..c7b8aa259 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart @@ -8,6 +8,7 @@ import 'package:isar/isar.dart'; import '../../../electrumx_rpc/cached_electrumx_client.dart'; import '../../../electrumx_rpc/client_manager.dart'; import '../../../electrumx_rpc/electrumx_client.dart'; +import '../../../models/coinlib/exp2pkh_address.dart'; import '../../../models/isar/models/blockchain_data/v2/input_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/output_v2.dart'; import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; @@ -24,6 +25,7 @@ import '../../crypto_currency/coins/firo.dart'; import '../../crypto_currency/interfaces/electrumx_currency_interface.dart'; import '../../models/tx_data.dart'; import '../impl/bitcoin_wallet.dart'; +import '../impl/firo_wallet.dart'; import '../impl/peercoin_wallet.dart'; import '../intermediate/bip39_hd_wallet.dart'; import 'cpfp_interface.dart'; @@ -725,11 +727,23 @@ mixin ElectrumXInterface // Add transaction output for (var i = 0; i < txData.recipients!.length; i++) { - final address = coinlib.Address.fromString( - normalizeAddress(txData.recipients![i].address), - cryptoCurrency.networkParams, - ); + late final coinlib.Address address; + try { + address = coinlib.Address.fromString( + normalizeAddress(txData.recipients![i].address), + cryptoCurrency.networkParams, + ); + } catch (_) { + if (this is FiroWallet) { + address = EXP2PKHAddress.fromString( + normalizeAddress(txData.recipients![i].address), + (cryptoCurrency as Firo).exAddressVersion, + ); + } else { + rethrow; + } + } final output = coinlib.Output.fromAddress( txData.recipients![i].amount.raw, address, diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index 90f7cfe31..8ebebc7ca 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -716,13 +716,13 @@ mixin SparkInterface return result; } catch (e) { Logging.instance.log( - "refreshSparkMempoolData() failed: $e", + "_refreshSparkCoinsMempoolCheck() failed: $e", level: LogLevel.Error, ); return []; } finally { Logging.instance.log( - "$walletId ${info.name} refreshSparkCoinsMempoolCheck() run " + "$walletId ${info.name} _refreshSparkCoinsMempoolCheck() run " "duration: ${DateTime.now().difference(start)}", level: LogLevel.Debug, ); diff --git a/lib/widgets/dialogs/firo_exchange_address_dialog.dart b/lib/widgets/dialogs/firo_exchange_address_dialog.dart new file mode 100644 index 000000000..fc30c43d4 --- /dev/null +++ b/lib/widgets/dialogs/firo_exchange_address_dialog.dart @@ -0,0 +1,26 @@ +import 'package:flutter/material.dart'; + +import '../../utilities/util.dart'; +import '../stack_dialog.dart'; + +class FiroExchangeAddressDialog extends StatelessWidget { + const FiroExchangeAddressDialog({super.key}); + + @override + Widget build(BuildContext context) { + return StackOkDialog( + title: "Firo exchange address detected", + message: "Sending to an exchange address from a Spark balance is not" + " allowed. Please send from your transparent balance.", + desktopPopRootNavigator: Util.isDesktop, + maxWidth: Util.isDesktop ? 500 : null, + ); + } +} + +Future showFiroExchangeAddressWarning(BuildContext context) async { + return await showDialog( + context: context, + builder: (_) => const FiroExchangeAddressDialog(), + ); +} diff --git a/pubspec.lock b/pubspec.lock index 47107034f..7a25ed30b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1807,8 +1807,8 @@ packages: dependency: "direct main" description: path: "." - ref: f1d02f7ad489df3119a540a7f31485db6d837843 - resolved-ref: f1d02f7ad489df3119a540a7f31485db6d837843 + ref: "647cadc3c82c276dc07915b02d24538fd610f220" + resolved-ref: "647cadc3c82c276dc07915b02d24538fd610f220" url: "https://github.com/cypherstack/tor.git" source: git version: "0.0.1" From 769edc3bc0198597857c309b005f88417a1bc61f Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 25 Jun 2024 15:20:55 -0600 Subject: [PATCH 308/318] ensure only one firo ex addr popup is active at any one time --- lib/pages/send_view/send_view.dart | 22 +++++++++++++++---- .../wallet_view/sub_widgets/desktop_send.dart | 10 +++++++-- .../dialogs/firo_exchange_address_dialog.dart | 8 +++++-- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/lib/pages/send_view/send_view.dart b/lib/pages/send_view/send_view.dart index 9d1d4f8fc..96c7236a4 100644 --- a/lib/pages/send_view/send_view.dart +++ b/lib/pages/send_view/send_view.dart @@ -128,6 +128,8 @@ class _SendViewState extends ConsumerState { bool _addressToggleFlag = false; + bool _isFiroExWarningDisplayed = false; + bool _cryptoAmountChangeLock = false; late VoidCallback onCryptoAmountChanged; @@ -400,8 +402,13 @@ class _SendViewState extends ConsumerState { (coin as Firo).isExchangeAddress(_address ?? ""); if (ref.read(publicPrivateBalanceStateProvider) == FiroType.spark && - ref.read(pIsExchangeAddress)) { - showFiroExchangeAddressWarning(context); + ref.read(pIsExchangeAddress) && + !_isFiroExWarningDisplayed) { + _isFiroExWarningDisplayed = true; + showFiroExchangeAddressWarning( + context, + () => _isFiroExWarningDisplayed = false, + ); } } @@ -1034,9 +1041,16 @@ class _SendViewState extends ConsumerState { }); } - if (previous != next && next == FiroType.spark && isExchangeAddress) { + if (previous != next && + next == FiroType.spark && + isExchangeAddress && + !_isFiroExWarningDisplayed) { + _isFiroExWarningDisplayed = true; WidgetsBinding.instance.addPostFrameCallback( - (_) => showFiroExchangeAddressWarning(context), + (_) => showFiroExchangeAddressWarning( + context, + () => _isFiroExWarningDisplayed = false, + ), ); } }); diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart index 57ba79d68..8c982fa9f 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart @@ -122,6 +122,8 @@ class _DesktopSendState extends ConsumerState { bool _addressToggleFlag = false; + bool _isFiroExWarningDisplayed = false; + bool _cryptoAmountChangeLock = false; late VoidCallback onCryptoAmountChanged; @@ -951,9 +953,13 @@ class _DesktopSendState extends ConsumerState { final firoType = ref.watch(publicPrivateBalanceStateProvider); if (coin is Firo && firoType == FiroType.spark) { - if (ref.watch(pIsExchangeAddress)) { + if (ref.watch(pIsExchangeAddress) && !_isFiroExWarningDisplayed) { + _isFiroExWarningDisplayed = true; WidgetsBinding.instance.addPostFrameCallback( - (_) => showFiroExchangeAddressWarning(context), + (_) => showFiroExchangeAddressWarning( + context, + () => _isFiroExWarningDisplayed = false, + ), ); } } diff --git a/lib/widgets/dialogs/firo_exchange_address_dialog.dart b/lib/widgets/dialogs/firo_exchange_address_dialog.dart index fc30c43d4..46ae13b88 100644 --- a/lib/widgets/dialogs/firo_exchange_address_dialog.dart +++ b/lib/widgets/dialogs/firo_exchange_address_dialog.dart @@ -18,9 +18,13 @@ class FiroExchangeAddressDialog extends StatelessWidget { } } -Future showFiroExchangeAddressWarning(BuildContext context) async { - return await showDialog( +Future showFiroExchangeAddressWarning( + BuildContext context, + VoidCallback onClosed, +) async { + await showDialog( context: context, builder: (_) => const FiroExchangeAddressDialog(), ); + onClosed(); } From 66661a3f90b3ff234e693fd2c6473c6d39acaed4 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 25 Jun 2024 15:31:18 -0600 Subject: [PATCH 309/318] lol.... --- lib/electrumx_rpc/electrumx_client.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/electrumx_rpc/electrumx_client.dart b/lib/electrumx_rpc/electrumx_client.dart index 19b7ac562..c31a8eac5 100644 --- a/lib/electrumx_rpc/electrumx_client.dart +++ b/lib/electrumx_rpc/electrumx_client.dart @@ -1087,10 +1087,10 @@ class ElectrumXClient { ( txid: entry.key, serialContext: - List.from(entry.value["Serial_context"] as List), + List.from(entry.value["serial_context"] as List), // the space after lTags is required lol lTags: List.from(entry.value["lTags "] as List), - coins: List.from(entry.value["Coins"] as List), + coins: List.from(entry.value["coins"] as List), ), ); } From 5b617441243634d448e4fe3c823708c68a47f493 Mon Sep 17 00:00:00 2001 From: Julian Date: Wed, 26 Jun 2024 11:12:34 -0600 Subject: [PATCH 310/318] fix dialog popping up too often on desktop --- lib/pages/send_view/send_view.dart | 2 +- .../wallet_view/sub_widgets/desktop_send.dart | 23 +++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/pages/send_view/send_view.dart b/lib/pages/send_view/send_view.dart index 96c7236a4..60c6799a3 100644 --- a/lib/pages/send_view/send_view.dart +++ b/lib/pages/send_view/send_view.dart @@ -399,7 +399,7 @@ class _SendViewState extends ConsumerState { ); ref.read(pIsExchangeAddress.state).state = - (coin as Firo).isExchangeAddress(_address ?? ""); + (coin as Firo).isExchangeAddress(address ?? ""); if (ref.read(publicPrivateBalanceStateProvider) == FiroType.spark && ref.read(pIsExchangeAddress) && diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart index 8c982fa9f..e5cc93d92 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send.dart @@ -711,7 +711,17 @@ class _DesktopSendState extends ConsumerState { ); ref.read(pIsExchangeAddress.state).state = - (coin as Firo).isExchangeAddress(_address ?? ""); + (coin as Firo).isExchangeAddress(address ?? ""); + + if (ref.read(publicPrivateBalanceStateProvider) == FiroType.spark && + ref.read(pIsExchangeAddress) && + !_isFiroExWarningDisplayed) { + _isFiroExWarningDisplayed = true; + showFiroExchangeAddressWarning( + context, + () => _isFiroExWarningDisplayed = false, + ); + } } ref.read(pValidSendToAddress.notifier).state = @@ -952,8 +962,13 @@ class _DesktopSendState extends ConsumerState { } final firoType = ref.watch(publicPrivateBalanceStateProvider); - if (coin is Firo && firoType == FiroType.spark) { - if (ref.watch(pIsExchangeAddress) && !_isFiroExWarningDisplayed) { + + final isExchangeAddress = ref.watch(pIsExchangeAddress); + ref.listen(publicPrivateBalanceStateProvider, (previous, next) { + if (previous != next && + next == FiroType.spark && + isExchangeAddress && + !_isFiroExWarningDisplayed) { _isFiroExWarningDisplayed = true; WidgetsBinding.instance.addPostFrameCallback( (_) => showFiroExchangeAddressWarning( @@ -962,7 +977,7 @@ class _DesktopSendState extends ConsumerState { ), ); } - } + }); final showCoinControl = ref.watch( prefsChangeNotifierProvider.select( From 0ef1726a00253c01eb9bfd78825ebe04ea39e2d7 Mon Sep 17 00:00:00 2001 From: Julian Date: Wed, 26 Jun 2024 12:10:32 -0600 Subject: [PATCH 311/318] fix firo spark cache being shared with test net --- lib/db/sqlite/firo_cache.dart | 79 +++++++++++-------- lib/db/sqlite/firo_cache_coordinator.dart | 56 ++++++++----- lib/db/sqlite/firo_cache_worker.dart | 7 +- .../wallet_settings_view.dart | 4 +- .../spark_info.dart | 8 +- .../wallet_settings_wallet_settings_view.dart | 1 + .../wallet_view/desktop_wallet_view.dart | 4 +- .../more_features/more_features_dialog.dart | 19 +++-- lib/route_generator.dart | 19 +++-- lib/wallets/wallet/impl/firo_wallet.dart | 3 + .../spark_interface.dart | 17 +++- 11 files changed, 143 insertions(+), 74 deletions(-) diff --git a/lib/db/sqlite/firo_cache.dart b/lib/db/sqlite/firo_cache.dart index b30777643..eac511aaa 100644 --- a/lib/db/sqlite/firo_cache.dart +++ b/lib/db/sqlite/firo_cache.dart @@ -12,6 +12,7 @@ import '../../electrumx_rpc/electrumx_client.dart'; import '../../utilities/extensions/extensions.dart'; import '../../utilities/logger.dart'; import '../../utilities/stack_file_system.dart'; +import '../../wallets/crypto_currency/crypto_currency.dart'; part 'firo_cache_coordinator.dart'; part 'firo_cache_reader.dart'; @@ -31,29 +32,39 @@ void _debugLog(Object? object) { abstract class _FiroCache { static const int _setCacheVersion = 1; static const int _tagsCacheVersion = 2; - static const String sparkSetCacheFileName = - "spark_set_v$_setCacheVersion.sqlite3"; - static const String sparkUsedTagsCacheFileName = - "spark_tags_v$_tagsCacheVersion.sqlite3"; - static Database? _setCacheDB; - static Database? _usedTagsCacheDB; - static Database get setCacheDB { - if (_setCacheDB == null) { + static final networks = [ + CryptoCurrencyNetwork.main, + CryptoCurrencyNetwork.test, + ]; + + static String sparkSetCacheFileName(CryptoCurrencyNetwork network) => + network == CryptoCurrencyNetwork.main + ? "spark_set_v$_setCacheVersion.sqlite3" + : "spark_set_v${_setCacheVersion}_${network.name}.sqlite3"; + static String sparkUsedTagsCacheFileName(CryptoCurrencyNetwork network) => + network == CryptoCurrencyNetwork.main + ? "spark_tags_v$_tagsCacheVersion.sqlite3" + : "spark_tags_v${_tagsCacheVersion}_${network.name}.sqlite3"; + + static final Map _setCacheDB = {}; + static final Map _usedTagsCacheDB = {}; + static Database setCacheDB(CryptoCurrencyNetwork network) { + if (_setCacheDB[network] == null) { throw Exception( "FiroCache.init() must be called before accessing FiroCache.db!", ); } - return _setCacheDB!; + return _setCacheDB[network]!; } - static Database get usedTagsCacheDB { - if (_usedTagsCacheDB == null) { + static Database usedTagsCacheDB(CryptoCurrencyNetwork network) { + if (_usedTagsCacheDB[network] == null) { throw Exception( "FiroCache.init() must be called before accessing FiroCache.db!", ); } - return _usedTagsCacheDB!; + return _usedTagsCacheDB[network]!; } static Future? _initFuture; @@ -63,30 +74,34 @@ abstract class _FiroCache { final sqliteDir = await StackFileSystem.applicationFiroCacheSQLiteDirectory(); - final sparkSetCacheFile = File("${sqliteDir.path}/$sparkSetCacheFileName"); - final sparkUsedTagsCacheFile = - File("${sqliteDir.path}/$sparkUsedTagsCacheFileName"); + for (final network in networks) { + final sparkSetCacheFile = + File("${sqliteDir.path}/${sparkSetCacheFileName(network)}"); - if (!(await sparkSetCacheFile.exists())) { - await _createSparkSetCacheDb(sparkSetCacheFile.path); - } - if (!(await sparkUsedTagsCacheFile.exists())) { - await _createSparkUsedTagsCacheDb(sparkUsedTagsCacheFile.path); - } + final sparkUsedTagsCacheFile = + File("${sqliteDir.path}/${sparkUsedTagsCacheFileName(network)}"); - _setCacheDB = sqlite3.open( - sparkSetCacheFile.path, - mode: OpenMode.readWrite, - ); - _usedTagsCacheDB = sqlite3.open( - sparkUsedTagsCacheFile.path, - mode: OpenMode.readWrite, - ); + if (!(await sparkSetCacheFile.exists())) { + await _createSparkSetCacheDb(sparkSetCacheFile.path); + } + if (!(await sparkUsedTagsCacheFile.exists())) { + await _createSparkUsedTagsCacheDb(sparkUsedTagsCacheFile.path); + } + + _setCacheDB[network] = sqlite3.open( + sparkSetCacheFile.path, + mode: OpenMode.readWrite, + ); + _usedTagsCacheDB[network] = sqlite3.open( + sparkUsedTagsCacheFile.path, + mode: OpenMode.readWrite, + ); + } } - static Future _deleteAllCache() async { + static Future _deleteAllCache(CryptoCurrencyNetwork network) async { final start = DateTime.now(); - setCacheDB.execute( + setCacheDB(network).execute( """ DELETE FROM SparkSet; DELETE FROM SparkCoin; @@ -94,7 +109,7 @@ abstract class _FiroCache { VACUUM; """, ); - usedTagsCacheDB.execute( + usedTagsCacheDB(network).execute( """ DELETE FROM SparkUsedCoinTags; VACUUM; diff --git a/lib/db/sqlite/firo_cache_coordinator.dart b/lib/db/sqlite/firo_cache_coordinator.dart index b2b39916a..fe720f804 100644 --- a/lib/db/sqlite/firo_cache_coordinator.dart +++ b/lib/db/sqlite/firo_cache_coordinator.dart @@ -5,7 +5,7 @@ typedef LTagPair = ({String tag, String txid}); /// Wrapper class for [_FiroCache] as [_FiroCache] should eventually be handled in a /// background isolate and [FiroCacheCoordinator] should manage that isolate abstract class FiroCacheCoordinator { - static _FiroCacheWorker? _worker; + static final Map _workers = {}; static bool _init = false; static Future init() async { @@ -14,20 +14,22 @@ abstract class FiroCacheCoordinator { } _init = true; await _FiroCache.init(); - _worker = await _FiroCacheWorker.spawn(); + for (final network in _FiroCache.networks) { + _workers[network] = await _FiroCacheWorker.spawn(network); + } } - static Future clearSharedCache() async { - return await _FiroCache._deleteAllCache(); + static Future clearSharedCache(CryptoCurrencyNetwork network) async { + return await _FiroCache._deleteAllCache(network); } - static Future getSparkCacheSize() async { + static Future getSparkCacheSize(CryptoCurrencyNetwork network) async { final dir = await StackFileSystem.applicationFiroCacheSQLiteDirectory(); final setCacheFile = File( - "${dir.path}/${_FiroCache.sparkSetCacheFileName}", + "${dir.path}/${_FiroCache.sparkSetCacheFileName(network)}", ); final usedTagsCacheFile = File( - "${dir.path}/${_FiroCache.sparkUsedTagsCacheFileName}", + "${dir.path}/${_FiroCache.sparkUsedTagsCacheFileName(network)}", ); final int bytes = ((await setCacheFile.exists()) ? await setCacheFile.length() : 0) + @@ -51,13 +53,14 @@ abstract class FiroCacheCoordinator { static Future runFetchAndUpdateSparkUsedCoinTags( ElectrumXClient client, + CryptoCurrencyNetwork network, ) async { - final count = await FiroCacheCoordinator.getUsedCoinTagsCount(); + final count = await FiroCacheCoordinator.getUsedCoinTagsCount(network); final unhashedTags = await client.getSparkUnhashedUsedCoinsTagsWithTxHashes( startNumber: count, ); if (unhashedTags.isNotEmpty) { - await _worker!.runTask( + await _workers[network]!.runTask( FCTask( func: FCFuncName._updateSparkUsedTagsWith, data: unhashedTags, @@ -69,10 +72,12 @@ abstract class FiroCacheCoordinator { static Future runFetchAndUpdateSparkAnonSetCacheForGroupId( int groupId, ElectrumXClient client, + CryptoCurrencyNetwork network, ) async { final blockhashResult = await FiroCacheCoordinator.getLatestSetInfoForGroupId( groupId, + network, ); final blockHash = blockhashResult?.blockHash ?? ""; @@ -81,7 +86,7 @@ abstract class FiroCacheCoordinator { startBlockHash: blockHash.toHexReversedFromBase64, ); - await _worker!.runTask( + await _workers[network]!.runTask( FCTask( func: FCFuncName._updateSparkAnonSetCoinsWith, data: (groupId, json), @@ -91,17 +96,22 @@ abstract class FiroCacheCoordinator { // =========================================================================== - static Future> getUsedCoinTags(int startNumber) async { + static Future> getUsedCoinTags( + int startNumber, + CryptoCurrencyNetwork network, + ) async { final result = await _Reader._getSparkUsedCoinTags( startNumber, - db: _FiroCache.usedTagsCacheDB, + db: _FiroCache.usedTagsCacheDB(network), ); return result.map((e) => e["tag"] as String).toSet(); } - static Future getUsedCoinTagsCount() async { + static Future getUsedCoinTagsCount( + CryptoCurrencyNetwork network, + ) async { final result = await _Reader._getUsedCoinTagsCount( - db: _FiroCache.usedTagsCacheDB, + db: _FiroCache.usedTagsCacheDB(network), ); if (result.isEmpty) { return 0; @@ -111,13 +121,14 @@ abstract class FiroCacheCoordinator { static Future> getUsedCoinTxidsFor({ required List tags, + required CryptoCurrencyNetwork network, }) async { if (tags.isEmpty) { return []; } final result = await _Reader._getUsedCoinTxidsFor( tags, - db: _FiroCache.usedTagsCacheDB, + db: _FiroCache.usedTagsCacheDB(network), ); if (result.isEmpty) { @@ -135,20 +146,22 @@ abstract class FiroCacheCoordinator { static Future> getUsedCoinTagsFor({ required String txid, + required CryptoCurrencyNetwork network, }) async { final result = await _Reader._getUsedCoinTagsFor( txid, - db: _FiroCache.usedTagsCacheDB, + db: _FiroCache.usedTagsCacheDB(network), ); return result.map((e) => e["tag"] as String).toSet(); } static Future checkTagIsUsed( String tag, + CryptoCurrencyNetwork network, ) async { return await _Reader._checkTagIsUsed( tag, - db: _FiroCache.usedTagsCacheDB, + db: _FiroCache.usedTagsCacheDB(network), ); } @@ -161,10 +174,11 @@ abstract class FiroCacheCoordinator { })>> getSetCoinsForGroupId( int groupId, { int? newerThanTimeStamp, + required CryptoCurrencyNetwork network, }) async { final resultSet = await _Reader._getSetCoinsForGroupId( groupId, - db: _FiroCache.setCacheDB, + db: _FiroCache.setCacheDB(network), newerThanTimeStamp: newerThanTimeStamp, ); return resultSet @@ -187,10 +201,11 @@ abstract class FiroCacheCoordinator { int timestampUTC, })?> getLatestSetInfoForGroupId( int groupId, + CryptoCurrencyNetwork network, ) async { final result = await _Reader._getLatestSetInfoForGroupId( groupId, - db: _FiroCache.setCacheDB, + db: _FiroCache.setCacheDB(network), ); if (result.isEmpty) { @@ -206,10 +221,11 @@ abstract class FiroCacheCoordinator { static Future checkSetInfoForGroupIdExists( int groupId, + CryptoCurrencyNetwork network, ) async { return await _Reader._checkSetInfoForGroupIdExists( groupId, - db: _FiroCache.setCacheDB, + db: _FiroCache.setCacheDB(network), ); } } diff --git a/lib/db/sqlite/firo_cache_worker.dart b/lib/db/sqlite/firo_cache_worker.dart index f6bfe68f1..71e407992 100644 --- a/lib/db/sqlite/firo_cache_worker.dart +++ b/lib/db/sqlite/firo_cache_worker.dart @@ -25,11 +25,12 @@ class _FiroCacheWorker { return await completer.future; } - static Future<_FiroCacheWorker> spawn() async { + static Future<_FiroCacheWorker> spawn(CryptoCurrencyNetwork network) async { final dir = await StackFileSystem.applicationFiroCacheSQLiteDirectory(); - final setCacheFilePath = "${dir.path}/${_FiroCache.sparkSetCacheFileName}"; + final setCacheFilePath = + "${dir.path}/${_FiroCache.sparkSetCacheFileName(network)}"; final usedTagsCacheFilePath = - "${dir.path}/${_FiroCache.sparkUsedTagsCacheFileName}"; + "${dir.path}/${_FiroCache.sparkUsedTagsCacheFileName(network)}"; final initPort = RawReceivePort(); final connection = Completer<(ReceivePort, SendPort)>.sync(); diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart index 004bd57df..098c1c285 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_view.dart @@ -430,7 +430,9 @@ class _WalletSettingsViewState extends ConsumerState { ), if (coin is Firo) FiroCacheCoordinator - .clearSharedCache(), + .clearSharedCache( + coin.network, + ), ], ), context: context, diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/spark_info.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/spark_info.dart index 7cb9b91f3..934736311 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/spark_info.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/spark_info.dart @@ -4,6 +4,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../../db/sqlite/firo_cache.dart'; import '../../../../themes/stack_colors.dart'; import '../../../../utilities/text_styles.dart'; +import '../../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../../widgets/background.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/detail_item.dart'; @@ -11,10 +12,13 @@ import '../../../../widgets/detail_item.dart'; class SparkInfoView extends ConsumerWidget { const SparkInfoView({ super.key, + required this.walletId, }); static const String routeName = "/sparkInfo"; + final String walletId; + @override Widget build(BuildContext context, WidgetRef ref) { return Background( @@ -37,7 +41,9 @@ class SparkInfoView extends ConsumerWidget { crossAxisAlignment: CrossAxisAlignment.stretch, children: [ FutureBuilder( - future: FiroCacheCoordinator.getSparkCacheSize(), + future: FiroCacheCoordinator.getSparkCacheSize( + ref.watch(pWalletCoin(walletId)).network, + ), builder: (_, snapshot) { String detail = "Loading..."; if (snapshot.connectionState == ConnectionState.done) { diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart index d7e58ece5..37040ab71 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/wallet_settings_wallet_settings_view.dart @@ -243,6 +243,7 @@ class WalletSettingsWalletSettingsView extends ConsumerWidget { onPressed: () { Navigator.of(context).pushNamed( SparkInfoView.routeName, + arguments: walletId, ); }, child: Padding( diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart index cf47215d1..0105c0006 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart @@ -294,7 +294,9 @@ class _DesktopWalletViewState extends ConsumerState { width: 2, ), FutureBuilder( - future: FiroCacheCoordinator.getSparkCacheSize(), + future: FiroCacheCoordinator.getSparkCacheSize( + wallet.cryptoCurrency.network, + ), builder: (_, snapshot) => Text( snapshot.data ?? "", ), diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart index d440b9c4e..76fa097a4 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/more_features/more_features_dialog.dart @@ -19,8 +19,7 @@ import '../../../../../providers/global/wallets_provider.dart'; import '../../../../../themes/stack_colors.dart'; import '../../../../../utilities/assets.dart'; import '../../../../../utilities/text_styles.dart'; -import '../../../../../wallets/crypto_currency/coins/banano.dart'; -import '../../../../../wallets/crypto_currency/coins/firo.dart'; +import '../../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../../wallets/isar/models/wallet_info.dart'; import '../../../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../../../wallets/wallet/wallet_mixin_interfaces/cash_fusion_interface.dart'; @@ -187,7 +186,9 @@ class _MoreFeaturesDialogState extends ConsumerState { onPressed: () async => widget.onFusionPressed?.call(), ), if (wallet is SparkInterface) - const _MoreFeaturesClearSparkCacheItem(), + _MoreFeaturesClearSparkCacheItem( + cryptoCurrency: wallet.cryptoCurrency, + ), if (wallet is LelantusInterface) _MoreFeaturesItemBase( child: Row( @@ -371,10 +372,10 @@ class _MoreFeaturesItemBase extends StatelessWidget { class _MoreFeaturesClearSparkCacheItem extends StatefulWidget { const _MoreFeaturesClearSparkCacheItem({ super.key, + required this.cryptoCurrency, }); - static const double iconSizeBG = 46; - static const double iconSize = 24; + final CryptoCurrency cryptoCurrency; @override State<_MoreFeaturesClearSparkCacheItem> createState() => @@ -396,7 +397,9 @@ class _MoreFeaturesClearSparkCacheItemState } _onPressedLock = true; try { - await FiroCacheCoordinator.clearSharedCache(); + await FiroCacheCoordinator.clearSharedCache( + widget.cryptoCurrency.network, + ); setState(() { // trigger rebuild for cache size display }); @@ -434,7 +437,9 @@ class _MoreFeaturesClearSparkCacheItemState style: STextStyles.w600_20(context), ), FutureBuilder( - future: FiroCacheCoordinator.getSparkCacheSize(), + future: FiroCacheCoordinator.getSparkCacheSize( + widget.cryptoCurrency.network, + ), builder: (_, snapshot) { return Text( snapshot.data ?? "", diff --git a/lib/route_generator.dart b/lib/route_generator.dart index 593d9e511..be011c90f 100644 --- a/lib/route_generator.dart +++ b/lib/route_generator.dart @@ -1982,13 +1982,18 @@ class RouteGenerator { return _routeError("${settings.name} invalid args: ${args.toString()}"); case SparkInfoView.routeName: - return getRoute( - shouldUseMaterialRoute: useMaterialPageRoute, - builder: (_) => const SparkInfoView(), - settings: RouteSettings( - name: settings.name, - ), - ); + if (args is String) { + return getRoute( + shouldUseMaterialRoute: useMaterialPageRoute, + builder: (_) => SparkInfoView( + walletId: args, + ), + settings: RouteSettings( + name: settings.name, + ), + ); + } + return _routeError("${settings.name} invalid args: ${args.toString()}"); // == Desktop specific routes ============================================ case CreatePasswordView.routeName: diff --git a/lib/wallets/wallet/impl/firo_wallet.dart b/lib/wallets/wallet/impl/firo_wallet.dart index 9d77396ee..61c9346f7 100644 --- a/lib/wallets/wallet/impl/firo_wallet.dart +++ b/lib/wallets/wallet/impl/firo_wallet.dart @@ -387,6 +387,7 @@ class FiroWallet extends Bip39HDWallet parseAnonFees(); final tags = await FiroCacheCoordinator.getUsedCoinTagsFor( txid: txData["txid"] as String, + network: cryptoCurrency.network, ); spentSparkCoins = sparkCoinsInvolvedSpent .where( @@ -712,12 +713,14 @@ class FiroWallet extends Bip39HDWallet FiroCacheCoordinator.runFetchAndUpdateSparkAnonSetCacheForGroupId( i, electrumXClient, + cryptoCurrency.network, ), ); } final sparkUsedCoinTagsFuture = FiroCacheCoordinator.runFetchAndUpdateSparkUsedCoinTags( electrumXClient, + cryptoCurrency.network, ); // receiving addresses diff --git a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart index 8ebebc7ca..09d4dc6f1 100644 --- a/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart +++ b/lib/wallets/wallet/wallet_mixin_interfaces/spark_interface.dart @@ -278,13 +278,17 @@ mixin SparkInterface final List> setMaps = []; final List<({int groupId, String blockHash})> idAndBlockHashes = []; for (int i = 1; i <= currentId; i++) { - final resultSet = await FiroCacheCoordinator.getSetCoinsForGroupId(i); + final resultSet = await FiroCacheCoordinator.getSetCoinsForGroupId( + i, + network: cryptoCurrency.network, + ); if (resultSet.isEmpty) { continue; } final info = await FiroCacheCoordinator.getLatestSetInfoForGroupId( i, + cryptoCurrency.network, ); if (info == null) { throw Exception("The `info` should never be null here"); @@ -741,6 +745,7 @@ mixin SparkInterface final setExists = await FiroCacheCoordinator.checkSetInfoForGroupIdExists( id, + cryptoCurrency.network, ); if (!setExists) { groupIds.add(id); @@ -755,6 +760,7 @@ mixin SparkInterface FiroCacheCoordinator.runFetchAndUpdateSparkAnonSetCacheForGroupId( e, electrumXClient, + cryptoCurrency.network, ), ); @@ -763,6 +769,7 @@ mixin SparkInterface ...possibleFutures, FiroCacheCoordinator.runFetchAndUpdateSparkUsedCoinTags( electrumXClient, + cryptoCurrency.network, ), ]); @@ -782,11 +789,13 @@ mixin SparkInterface groupIdTimestampUTCMap[i.toString()] as int? ?? 0; final info = await FiroCacheCoordinator.getLatestSetInfoForGroupId( i, + cryptoCurrency.network, ); final anonymitySetResult = await FiroCacheCoordinator.getSetCoinsForGroupId( i, newerThanTimeStamp: lastCheckedTimeStampUTC, + network: cryptoCurrency.network, ); final coinsRaw = anonymitySetResult .map( @@ -882,7 +891,10 @@ mixin SparkInterface // only fetch tags from db if we need them to compare against any items // in coinsToCheck if (coinsToCheck.isNotEmpty) { - spentCoinTags = await FiroCacheCoordinator.getUsedCoinTags(0); + spentCoinTags = await FiroCacheCoordinator.getUsedCoinTags( + 0, + cryptoCurrency.network, + ); } // check and update coins if required @@ -992,6 +1004,7 @@ mixin SparkInterface final pairs = await FiroCacheCoordinator.getUsedCoinTxidsFor( tags: tags, + network: cryptoCurrency.network, ); pairs.removeWhere((e) => usedCoinTxidsFoundLocally.contains(e.txid)); From 6690581b518e9ad68f8fb501e7a92c533365d041 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 27 Jun 2024 13:18:26 -0600 Subject: [PATCH 312/318] limit external Qr code lib import to a single file and change colors of all qr codes --- .../new/steps/frost_create_step_1a.dart | 12 +++------ .../reshare/frost_reshare_step_1a.dart | 9 ++----- .../exchange_step_views/step_4_view.dart | 7 ++--- .../exchange_view/trade_details_view.dart | 10 ++----- .../paynym/dialogs/paynym_details_popup.dart | 19 +++++++------ lib/pages/paynym/dialogs/paynym_qr_popup.dart | 9 +++---- .../subwidgets/desktop_paynym_details.dart | 14 +++++----- .../receive_view/addresses/address_card.dart | 10 ++----- .../addresses/address_details_view.dart | 17 +++--------- .../addresses/address_qr_popup.dart | 8 ++---- .../generate_receiving_uri_qr_code_view.dart | 17 +++--------- lib/pages/receive_view/receive_view.dart | 7 ++--- .../send_steps/frost_send_step_1a.dart | 12 +++------ .../wallet_backup_view.dart | 10 ++----- .../xpub_view.dart | 6 ++--- .../exchange_steps/step_scaffold.dart | 7 ++--- .../sub_widgets/desktop_receive.dart | 6 ++--- .../qr_code_desktop_popup_content.dart | 8 +++--- .../dialogs/frost/frost_step_qr_dialog.dart | 14 +++------- lib/widgets/qr.dart | 27 +++++++++++++++++++ 20 files changed, 86 insertions(+), 143 deletions(-) create mode 100644 lib/widgets/qr.dart diff --git a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1a.dart b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1a.dart index cd2f0ea1d..7b9efb7aa 100644 --- a/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1a.dart +++ b/lib/pages/add_wallet_views/frost_ms/new/steps/frost_create_step_1a.dart @@ -1,9 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:qr_flutter/qr_flutter.dart'; + import '../../../../../frost_route_generator.dart'; -import '../../../../wallet_view/transaction_views/transaction_details_view.dart'; import '../../../../../providers/frost_wallet/frost_wallet_providers.dart'; import '../../../../../services/frost.dart'; import '../../../../../themes/stack_colors.dart'; @@ -17,6 +16,8 @@ import '../../../../../widgets/desktop/secondary_button.dart'; import '../../../../../widgets/detail_item.dart'; import '../../../../../widgets/dialogs/simple_mobile_dialog.dart'; import '../../../../../widgets/frost_step_user_steps.dart'; +import '../../../../../widgets/qr.dart'; +import '../../../../wallet_view/transaction_views/transaction_details_view.dart'; class FrostCreateStep1a extends ConsumerStatefulWidget { const FrostCreateStep1a({super.key}); @@ -162,14 +163,9 @@ class _FrostCreateStep1aState extends ConsumerState { child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - QrImageView( + QR( data: ref.watch(pFrostMultisigConfig.state).state ?? "Error", size: 220, - backgroundColor: - Theme.of(context).extension()!.background, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, ), ], ), diff --git a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1a.dart b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1a.dart index ff8f03c71..a83e22d40 100644 --- a/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1a.dart +++ b/lib/pages/add_wallet_views/frost_ms/reshare/frost_reshare_step_1a.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:qr_flutter/qr_flutter.dart'; import '../../../../frost_route_generator.dart'; import '../../../../providers/db/main_db_provider.dart'; @@ -23,6 +22,7 @@ import '../../../../widgets/detail_item.dart'; import '../../../../widgets/dialogs/frost/frost_error_dialog.dart'; import '../../../../widgets/dialogs/simple_mobile_dialog.dart'; import '../../../../widgets/frost_step_user_steps.dart'; +import '../../../../widgets/qr.dart'; import '../../../wallet_view/transaction_views/transaction_details_view.dart'; class FrostReshareStep1a extends ConsumerStatefulWidget { @@ -239,14 +239,9 @@ class _FrostReshareStep1aState extends ConsumerState { child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - QrImageView( + QR( data: ref.watch(pFrostResharingData).resharerRConfig!, size: 220, - backgroundColor: - Theme.of(context).extension()!.background, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, ), ], ), diff --git a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart index d992451a7..79655f8a6 100644 --- a/lib/pages/exchange_view/exchange_step_views/step_4_view.dart +++ b/lib/pages/exchange_view/exchange_step_views/step_4_view.dart @@ -14,7 +14,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:qr_flutter/qr_flutter.dart'; import 'package:tuple/tuple.dart'; import '../../../app_config.dart'; @@ -37,6 +36,7 @@ import '../../../wallets/wallet/impl/firo_wallet.dart'; import '../../../widgets/background.dart'; import '../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/qr.dart'; import '../../../widgets/rounded_container.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_dialog.dart'; @@ -751,7 +751,7 @@ class _Step4ViewState extends ConsumerState { height: 24, ), Center( - child: QrImageView( + child: QR( // TODO: grab coin uri scheme from somewhere // data: "${coin.uriScheme}:$receivingAddress", data: model.trade!.payInAddress, @@ -759,9 +759,6 @@ class _Step4ViewState extends ConsumerState { .size .width / 2, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, ), ), const SizedBox( diff --git a/lib/pages/exchange_view/trade_details_view.dart b/lib/pages/exchange_view/trade_details_view.dart index e64c1154b..fd56c4a59 100644 --- a/lib/pages/exchange_view/trade_details_view.dart +++ b/lib/pages/exchange_view/trade_details_view.dart @@ -16,7 +16,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:qr_flutter/qr_flutter.dart'; import 'package:tuple/tuple.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -50,6 +49,7 @@ import '../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../widgets/custom_buttons/blue_text_button.dart'; import '../../widgets/desktop/desktop_dialog.dart'; import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/qr.dart'; import '../../widgets/rounded_container.dart'; import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_dialog.dart'; @@ -808,15 +808,9 @@ class _TradeDetailsViewState extends ConsumerState { child: SizedBox( width: width + 20, height: width + 20, - child: QrImageView( + child: QR( data: trade.payInAddress, size: width, - backgroundColor: Theme.of(context) - .extension()! - .popupBG, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, ), ), ), diff --git a/lib/pages/paynym/dialogs/paynym_details_popup.dart b/lib/pages/paynym/dialogs/paynym_details_popup.dart index 832f97422..693061482 100644 --- a/lib/pages/paynym/dialogs/paynym_details_popup.dart +++ b/lib/pages/paynym/dialogs/paynym_details_popup.dart @@ -14,15 +14,11 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:qr_flutter/qr_flutter.dart'; +import 'package:tuple/tuple.dart'; + import '../../../exceptions/wallet/insufficient_balance_exception.dart'; import '../../../models/paynym/paynym_account_lite.dart'; import '../../../notifications/show_flush_bar.dart'; -import 'confirm_paynym_connect_dialog.dart'; -import '../paynym_home_view.dart'; -import '../subwidgets/paynym_bot.dart'; -import '../../send_view/confirm_transaction_view.dart'; -import '../../send_view/send_view.dart'; import '../../../providers/global/locale_provider.dart'; import '../../../providers/global/wallets_provider.dart'; import '../../../route_generator.dart'; @@ -37,9 +33,14 @@ import '../../../widgets/desktop/desktop_dialog.dart'; import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/desktop/secondary_button.dart'; import '../../../widgets/loading_indicator.dart'; +import '../../../widgets/qr.dart'; import '../../../widgets/rounded_container.dart'; import '../../../widgets/stack_dialog.dart'; -import 'package:tuple/tuple.dart'; +import '../../send_view/confirm_transaction_view.dart'; +import '../../send_view/send_view.dart'; +import '../paynym_home_view.dart'; +import '../subwidgets/paynym_bot.dart'; +import 'confirm_paynym_connect_dialog.dart'; class PaynymDetailsPopup extends ConsumerStatefulWidget { const PaynymDetailsPopup({ @@ -365,12 +366,10 @@ class _PaynymDetailsPopupState extends ConsumerState { const SizedBox( width: 20, ), - QrImageView( + QR( padding: const EdgeInsets.all(0), size: 100, data: widget.accountLite.code, - foregroundColor: - Theme.of(context).extension()!.textDark, ), ], ), diff --git a/lib/pages/paynym/dialogs/paynym_qr_popup.dart b/lib/pages/paynym/dialogs/paynym_qr_popup.dart index b3cb3a1d0..520d6e16e 100644 --- a/lib/pages/paynym/dialogs/paynym_qr_popup.dart +++ b/lib/pages/paynym/dialogs/paynym_qr_popup.dart @@ -12,10 +12,9 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:qr_flutter/qr_flutter.dart'; + import '../../../models/paynym/paynym_account.dart'; import '../../../notifications/show_flush_bar.dart'; -import '../subwidgets/paynym_bot.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; import '../../../utilities/text_styles.dart'; @@ -23,6 +22,8 @@ import '../../../utilities/util.dart'; import '../../../widgets/custom_buttons/blue_text_button.dart'; import '../../../widgets/desktop/desktop_dialog.dart'; import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/qr.dart'; +import '../subwidgets/paynym_bot.dart'; class PaynymQrPopup extends StatelessWidget { const PaynymQrPopup({ @@ -157,12 +158,10 @@ class PaynymQrPopup extends StatelessWidget { const SizedBox( width: 20, ), - QrImageView( + QR( padding: const EdgeInsets.all(0), size: 130, data: paynymAccount.nonSegwitPaymentCode.code, - foregroundColor: - Theme.of(context).extension()!.textDark, ), ], ), diff --git a/lib/pages/paynym/subwidgets/desktop_paynym_details.dart b/lib/pages/paynym/subwidgets/desktop_paynym_details.dart index c33d5ed24..1c2b0cb81 100644 --- a/lib/pages/paynym/subwidgets/desktop_paynym_details.dart +++ b/lib/pages/paynym/subwidgets/desktop_paynym_details.dart @@ -14,19 +14,15 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:qr_flutter/qr_flutter.dart'; + import '../../../exceptions/wallet/insufficient_balance_exception.dart'; import '../../../models/paynym/paynym_account_lite.dart'; import '../../../notifications/show_flush_bar.dart'; -import '../dialogs/confirm_paynym_connect_dialog.dart'; -import 'paynym_bot.dart'; -import '../../send_view/confirm_transaction_view.dart'; import '../../../pages_desktop_specific/my_stack_view/paynym/desktop_paynym_send_dialog.dart'; import '../../../providers/global/locale_provider.dart'; import '../../../providers/global/wallets_provider.dart'; import '../../../themes/stack_colors.dart'; import '../../../utilities/assets.dart'; - import '../../../utilities/text_styles.dart'; import '../../../wallets/isar/providers/wallet_info_provider.dart'; import '../../../wallets/models/tx_data.dart'; @@ -36,8 +32,12 @@ import '../../../widgets/custom_buttons/paynym_follow_toggle_button.dart'; import '../../../widgets/desktop/desktop_dialog.dart'; import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/loading_indicator.dart'; +import '../../../widgets/qr.dart'; import '../../../widgets/rounded_container.dart'; import '../../../widgets/rounded_white_container.dart'; +import '../../send_view/confirm_transaction_view.dart'; +import '../dialogs/confirm_paynym_connect_dialog.dart'; +import 'paynym_bot.dart'; class DesktopPaynymDetails extends ConsumerStatefulWidget { const DesktopPaynymDetails({ @@ -359,12 +359,10 @@ class _PaynymDetailsPopupState extends ConsumerState { const SizedBox( width: 20, ), - QrImageView( + QR( padding: const EdgeInsets.all(0), size: 100, data: widget.accountLite.code, - foregroundColor: - Theme.of(context).extension()!.textDark, ), ], ), diff --git a/lib/pages/receive_view/addresses/address_card.dart b/lib/pages/receive_view/addresses/address_card.dart index a13ec17a7..db14fd979 100644 --- a/lib/pages/receive_view/addresses/address_card.dart +++ b/lib/pages/receive_view/addresses/address_card.dart @@ -20,7 +20,6 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:qr_flutter/qr_flutter.dart'; import 'package:share_plus/share_plus.dart'; import '../../../db/isar/main_db.dart'; @@ -39,6 +38,7 @@ import '../../../widgets/custom_buttons/blue_text_button.dart'; import '../../../widgets/custom_buttons/simple_edit_button.dart'; import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/qr.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/stack_dialog.dart'; @@ -302,19 +302,13 @@ class _AddressCardState extends ConsumerState { Center( child: RepaintBoundary( key: _qrKey, - child: QrImageView( + child: QR( data: AddressUtils.buildUriString( widget.coin, address.value, {}, ), size: 220, - backgroundColor: Theme.of(context) - .extension()! - .popupBG, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, ), ), ), diff --git a/lib/pages/receive_view/addresses/address_details_view.dart b/lib/pages/receive_view/addresses/address_details_view.dart index 120bfa48b..103a5729d 100644 --- a/lib/pages/receive_view/addresses/address_details_view.dart +++ b/lib/pages/receive_view/addresses/address_details_view.dart @@ -11,7 +11,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import 'package:qr_flutter/qr_flutter.dart'; import '../../../db/isar/main_db.dart'; import '../../../models/isar/models/blockchain_data/v2/transaction_v2.dart'; @@ -31,6 +30,7 @@ import '../../../widgets/custom_buttons/simple_copy_button.dart'; import '../../../widgets/custom_buttons/simple_edit_button.dart'; import '../../../widgets/desktop/desktop_dialog.dart'; import '../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../widgets/qr.dart'; import '../../../widgets/rounded_white_container.dart'; import '../../../widgets/transaction_card.dart'; import '../../wallet_view/sub_widgets/no_transactions_found.dart'; @@ -92,18 +92,13 @@ class _AddressDetailsViewState extends ConsumerState { Center( child: RepaintBoundary( key: _qrKey, - child: QrImageView( + child: QR( data: AddressUtils.buildUriString( ref.watch(pWalletCoin(widget.walletId)), address.value, {}, ), size: 220, - backgroundColor: - Theme.of(context).extension()!.popupBG, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, ), ), ), @@ -289,19 +284,13 @@ class _AddressDetailsViewState extends ConsumerState { Center( child: RepaintBoundary( key: _qrKey, - child: QrImageView( + child: QR( data: AddressUtils.buildUriString( coin, address.value, {}, ), size: 220, - backgroundColor: Theme.of(context) - .extension()! - .background, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, ), ), ), diff --git a/lib/pages/receive_view/addresses/address_qr_popup.dart b/lib/pages/receive_view/addresses/address_qr_popup.dart index 7b25003b2..5a8bc1592 100644 --- a/lib/pages/receive_view/addresses/address_qr_popup.dart +++ b/lib/pages/receive_view/addresses/address_qr_popup.dart @@ -18,7 +18,6 @@ import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; import 'package:flutter_svg/svg.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:qr_flutter/qr_flutter.dart'; import 'package:share_plus/share_plus.dart'; import '../../../notifications/show_flush_bar.dart'; @@ -31,6 +30,7 @@ import '../../../utilities/util.dart'; import '../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/desktop/secondary_button.dart'; +import '../../../widgets/qr.dart'; import '../../../widgets/stack_dialog.dart'; class AddressQrPopup extends StatefulWidget { @@ -140,17 +140,13 @@ class _AddressQrPopupState extends State { Center( child: RepaintBoundary( key: _qrKey, - child: QrImageView( + child: QR( data: AddressUtils.buildUriString( widget.coin, widget.addressString, {}, ), size: 220, - backgroundColor: - Theme.of(context).extension()!.popupBG, - foregroundColor: - Theme.of(context).extension()!.accentColorDark, ), ), ), diff --git a/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart b/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart index e7d6d7e5f..7a7497d0e 100644 --- a/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart +++ b/lib/pages/receive_view/generate_receiving_uri_qr_code_view.dart @@ -20,7 +20,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter_svg/svg.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:qr_flutter/qr_flutter.dart'; import 'package:share_plus/share_plus.dart'; import '../../notifications/show_flush_bar.dart'; @@ -39,6 +38,7 @@ import '../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../widgets/desktop/primary_button.dart'; import '../../widgets/desktop/secondary_button.dart'; import '../../widgets/icon_widgets/x_icon.dart'; +import '../../widgets/qr.dart'; import '../../widgets/rounded_white_container.dart'; import '../../widgets/stack_dialog.dart'; import '../../widgets/stack_text_field.dart'; @@ -215,14 +215,9 @@ class _GenerateUriQrCodeViewState extends State { child: SizedBox( width: width + 20, height: width + 20, - child: QrImageView( + child: QR( data: uriString, size: width, - backgroundColor: - Theme.of(context).extension()!.popupBG, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, ), ), ), @@ -556,15 +551,9 @@ class _GenerateUriQrCodeViewState extends State { child: SizedBox( width: 234, height: 234, - child: QrImageView( + child: QR( data: _uriString, size: 220, - backgroundColor: Theme.of(context) - .extension()! - .popupBG, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, ), ), ), diff --git a/lib/pages/receive_view/receive_view.dart b/lib/pages/receive_view/receive_view.dart index 2be05937f..2beaab5f2 100644 --- a/lib/pages/receive_view/receive_view.dart +++ b/lib/pages/receive_view/receive_view.dart @@ -16,7 +16,6 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; -import 'package:qr_flutter/qr_flutter.dart'; import '../../models/isar/models/isar_models.dart'; import '../../notifications/show_flush_bar.dart'; @@ -44,6 +43,7 @@ import '../../widgets/custom_buttons/blue_text_button.dart'; import '../../widgets/custom_loading_overlay.dart'; import '../../widgets/desktop/primary_button.dart'; import '../../widgets/desktop/secondary_button.dart'; +import '../../widgets/qr.dart'; import '../../widgets/rounded_white_container.dart'; import 'addresses/wallet_addresses_view.dart'; import 'generate_receiving_uri_qr_code_view.dart'; @@ -575,16 +575,13 @@ class _ReceiveViewState extends ConsumerState { child: Center( child: Column( children: [ - QrImageView( + QR( data: AddressUtils.buildUriString( coin, address, {}, ), size: MediaQuery.of(context).size.width / 2, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, ), const SizedBox( height: 20, diff --git a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1a.dart b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1a.dart index c25090fca..0ec725d00 100644 --- a/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1a.dart +++ b/lib/pages/send_view/frost_ms/send_steps/frost_send_step_1a.dart @@ -1,8 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:qr_flutter/qr_flutter.dart'; + import '../../../../frost_route_generator.dart'; -import '../../../wallet_view/transaction_views/transaction_details_view.dart'; import '../../../../providers/frost_wallet/frost_wallet_providers.dart'; import '../../../../providers/global/wallets_provider.dart'; import '../../../../themes/stack_colors.dart'; @@ -14,7 +13,9 @@ import '../../../../widgets/custom_buttons/checkbox_text_button.dart'; import '../../../../widgets/custom_buttons/simple_copy_button.dart'; import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/qr.dart'; import '../../../../widgets/rounded_white_container.dart'; +import '../../../wallet_view/transaction_views/transaction_details_view.dart'; class FrostSendStep1a extends ConsumerStatefulWidget { const FrostSendStep1a({super.key}); @@ -169,14 +170,9 @@ class _FrostSendStep1aState extends ConsumerState { child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - QrImageView( + QR( data: ref.watch(pFrostTxData.state).state!.frostMSConfig!, size: qrImageSize, - backgroundColor: - Theme.of(context).extension()!.background, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, ), ], ), diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart index e2b861db1..70bbdd294 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_backup_views/wallet_backup_view.dart @@ -14,7 +14,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:qr_flutter/qr_flutter.dart'; import '../../../../app_config.dart'; import '../../../../notifications/show_flush_bar.dart'; @@ -30,6 +29,7 @@ import '../../../../widgets/background.dart'; import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/custom_buttons/simple_copy_button.dart'; import '../../../../widgets/detail_item.dart'; +import '../../../../widgets/qr.dart'; import '../../../../widgets/rounded_white_container.dart'; import '../../../../widgets/stack_dialog.dart'; import '../../../add_wallet_views/new_wallet_recovery_phrase_view/sub_widgets/mnemonic_table.dart'; @@ -317,15 +317,9 @@ class WalletBackupView extends ConsumerWidget { child: SizedBox( width: width + 20, height: width + 20, - child: QrImageView( + child: QR( data: data, size: width, - backgroundColor: Theme.of(context) - .extension()! - .popupBG, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, ), ), ), diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart index ad245d321..c8fa245f0 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/xpub_view.dart @@ -14,7 +14,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:qr_flutter/qr_flutter.dart'; import '../../../../notifications/show_flush_bar.dart'; import '../../../../providers/global/wallets_provider.dart'; @@ -32,6 +31,7 @@ import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../../widgets/desktop/primary_button.dart'; import '../../../../widgets/desktop/secondary_button.dart'; import '../../../../widgets/loading_indicator.dart'; +import '../../../../widgets/qr.dart'; import '../../../../widgets/rounded_white_container.dart'; class XPubView extends ConsumerStatefulWidget { @@ -256,11 +256,9 @@ class _XPub extends StatelessWidget { builder: (child) => RoundedWhiteContainer( child: child, ), - child: QrImageView( + child: QR( data: xpub, size: isDesktop ? 280 : MediaQuery.of(context).size.width / 1.5, - foregroundColor: - Theme.of(context).extension()!.accentColorDark, ), ), const SizedBox(height: 25), diff --git a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart index 19eea020b..63275921d 100644 --- a/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart +++ b/lib/pages_desktop_specific/desktop_exchange/exchange_steps/step_scaffold.dart @@ -13,7 +13,6 @@ import 'dart:async'; import 'package:decimal/decimal.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:qr_flutter/qr_flutter.dart'; import '../../../app_config.dart'; import '../../../models/exchange/incomplete_exchange.dart'; @@ -37,6 +36,7 @@ import '../../../widgets/desktop/primary_button.dart'; import '../../../widgets/desktop/secondary_button.dart'; import '../../../widgets/desktop/simple_desktop_dialog.dart'; import '../../../widgets/fade_stack.dart'; +import '../../../widgets/qr.dart'; import '../subwidgets/desktop_exchange_steps_indicator.dart'; import 'subwidgets/desktop_step_1.dart'; import 'subwidgets/desktop_step_2.dart'; @@ -397,7 +397,7 @@ class _StepScaffoldState extends ConsumerState { height: 48, ), Center( - child: QrImageView( + child: QR( // TODO: grab coin uri scheme from somewhere // data: "${coin.uriScheme}:$receivingAddress", data: ref.watch( @@ -406,9 +406,6 @@ class _StepScaffoldState extends ConsumerState { ), ), size: 290, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, ), ), const SizedBox( diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart index 78031971e..0da2a6607 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_receive.dart @@ -16,7 +16,6 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:isar/isar.dart'; -import 'package:qr_flutter/qr_flutter.dart'; import 'package:tuple/tuple.dart'; import '../../../../models/isar/models/isar_models.dart'; @@ -42,6 +41,7 @@ import '../../../../widgets/custom_buttons/app_bar_icon_button.dart'; import '../../../../widgets/custom_loading_overlay.dart'; import '../../../../widgets/desktop/desktop_dialog.dart'; import '../../../../widgets/desktop/secondary_button.dart'; +import '../../../../widgets/qr.dart'; import '../../../../widgets/rounded_white_container.dart'; class DesktopReceive extends ConsumerStatefulWidget { @@ -476,15 +476,13 @@ class _DesktopReceiveState extends ConsumerState { height: 32, ), Center( - child: QrImageView( + child: QR( data: AddressUtils.buildUriString( coin, _qrcodeContent ?? "", {}, ), size: 200, - foregroundColor: - Theme.of(context).extension()!.accentColorDark, ), ), const SizedBox( diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart index 9fb269448..d1012f1e2 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/qr_code_desktop_popup_content.dart @@ -9,10 +9,10 @@ */ import 'package:flutter/material.dart'; -import 'package:qr_flutter/qr_flutter.dart'; -import '../../../../themes/stack_colors.dart'; + import '../../../../widgets/desktop/desktop_dialog.dart'; import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; +import '../../../../widgets/qr.dart'; class QRCodeDesktopPopupContent extends StatelessWidget { const QRCodeDesktopPopupContent({ @@ -39,11 +39,9 @@ class QRCodeDesktopPopupContent extends StatelessWidget { const SizedBox( height: 14, ), - QrImageView( + QR( data: value, size: 300, - foregroundColor: - Theme.of(context).extension()!.accentColorDark, ), ], ), diff --git a/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart b/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart index c19eb2b2c..949e2fed7 100644 --- a/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart +++ b/lib/widgets/dialogs/frost/frost_step_qr_dialog.dart @@ -7,7 +7,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:qr_flutter/qr_flutter.dart'; + import 'package:share_plus/share_plus.dart'; import '../../../notifications/show_flush_bar.dart'; @@ -17,6 +17,7 @@ import '../../../utilities/text_styles.dart'; import '../../../utilities/util.dart'; import '../../conditional_parent.dart'; import '../../desktop/secondary_button.dart'; +import '../../qr.dart'; import '../../rounded_container.dart'; import '../../rounded_white_container.dart'; import '../simple_mobile_dialog.dart'; @@ -154,18 +155,9 @@ class _FrostStepQrDialogState extends State { padding: const EdgeInsets.all(16), child: AspectRatio( aspectRatio: 1, - child: QrImageView( + child: QR( data: widget.data, padding: EdgeInsets.zero, - foregroundColor: Theme.of(context) - .extension()! - .accentColorDark, - // dataModuleStyle: QrDataModuleStyle( - // dataModuleShape: QrDataModuleShape.square, - // color: Theme.of(context) - // .extension()! - // .accentColorDark, - // ), ), ), ), diff --git a/lib/widgets/qr.dart b/lib/widgets/qr.dart new file mode 100644 index 000000000..39e874474 --- /dev/null +++ b/lib/widgets/qr.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; +import 'package:qr_flutter/qr_flutter.dart'; + +/// Centralised Qr code image widget +class QR extends StatelessWidget { + const QR({super.key, required this.data, this.size, this.padding}); + + final String data; + final double? size; + final EdgeInsets? padding; + + @override + Widget build(BuildContext context) { + return QrImageView( + data: data, + size: size, + padding: padding ?? const EdgeInsets.all(10), + backgroundColor: Colors.white, + foregroundColor: Colors.black, + // backgroundColor: + // Theme.of(context).extension()!.background, + // foregroundColor: Theme.of(context) + // .extension()! + // .accentColorDark, + ); + } +} From f9f93efd55627ae9a7fa5293633d2251ad77b78f Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 27 Jun 2024 14:20:52 -0600 Subject: [PATCH 313/318] re enable address details on mobile --- .../addresses/wallet_addresses_view.dart | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/lib/pages/receive_view/addresses/wallet_addresses_view.dart b/lib/pages/receive_view/addresses/wallet_addresses_view.dart index 620bfe244..f464d0e57 100644 --- a/lib/pages/receive_view/addresses/wallet_addresses_view.dart +++ b/lib/pages/receive_view/addresses/wallet_addresses_view.dart @@ -249,17 +249,15 @@ class _WalletAddressesViewState extends ConsumerState { walletId: widget.walletId, addressId: snapshot.data![index], coin: coin, - onPressed: !isDesktop - ? null - : () { - Navigator.of(context).pushNamed( - AddressDetailsView.routeName, - arguments: Tuple2( - snapshot.data![index], - widget.walletId, - ), - ); - }, + onPressed: () { + Navigator.of(context).pushNamed( + AddressDetailsView.routeName, + arguments: Tuple2( + snapshot.data![index], + widget.walletId, + ), + ); + }, ), ); } else { From 43071c01dfcb5bdadd0b1dc13c32877ade27cb8a Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 27 Jun 2024 14:34:15 -0600 Subject: [PATCH 314/318] show current height in wallet network info screen/view --- .../wallet_network_settings_view.dart | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart index 22566804a..e15fad011 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart @@ -759,6 +759,32 @@ class _WalletNetworkSettingsViewState ), ), ), + SizedBox( + height: isDesktop ? 12 : 9, + ), + RoundedWhiteContainer( + borderColor: isDesktop + ? Theme.of(context).extension()!.background + : null, + padding: + isDesktop ? const EdgeInsets.all(16) : const EdgeInsets.all(12), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Current height", + textAlign: TextAlign.left, + style: isDesktop + ? STextStyles.desktopTextExtraExtraSmall(context) + : STextStyles.smallMed12(context), + ), + Text( + ref.watch(pWalletChainHeight(widget.walletId)).toString(), + style: STextStyles.desktopTextExtraExtraSmall(context), + ), + ], + ), + ), SizedBox( height: isDesktop ? 32 : 20, ), From c8a868a8406f8327e00055425fa869eade91145c Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 27 Jun 2024 14:53:39 -0600 Subject: [PATCH 315/318] add breathing effect to recent activity on desktop --- .../tx_v2/transaction_v2_list_item.dart | 195 +++++++++--------- .../my_stack_view/wallet_summary_table.dart | 107 +++++----- lib/widgets/breathing.dart | 32 +++ 3 files changed, 180 insertions(+), 154 deletions(-) create mode 100644 lib/widgets/breathing.dart diff --git a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart index f51c9f609..0ae641401 100644 --- a/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart +++ b/lib/pages/wallet_view/transaction_views/tx_v2/transaction_v2_list_item.dart @@ -13,6 +13,7 @@ import '../../../../utilities/text_styles.dart'; import '../../../../utilities/util.dart'; import '../../../../wallets/crypto_currency/crypto_currency.dart'; import '../../../../wallets/isar/providers/wallet_info_provider.dart'; +import '../../../../widgets/breathing.dart'; import '../../../../widgets/desktop/desktop_dialog.dart'; import '../../../../widgets/desktop/desktop_dialog_close_button.dart'; import '../../../../widgets/trade_card.dart'; @@ -49,98 +50,100 @@ class TxListItem extends ConsumerWidget { color: Theme.of(context).extension()!.popupBG, borderRadius: radius, ), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - TransactionCardV2( - key: UniqueKey(), - transaction: _tx, - ), - TradeCard( - key: Key( - _tx.txid + - _tx.type.name + - _tx.hashCode.toString() + - trade.uuid, - ), // - trade: trade, - onTap: () async { - if (Util.isDesktop) { - await showDialog( - context: context, - builder: (context) => Navigator( - initialRoute: TradeDetailsView.routeName, - onGenerateRoute: RouteGenerator.generateRoute, - onGenerateInitialRoutes: (_, __) { - return [ - FadePageRoute( - DesktopDialog( - maxHeight: null, - maxWidth: 580, - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Padding( - padding: const EdgeInsets.only( - left: 32, - bottom: 16, + child: Breathing( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + TransactionCardV2( + key: UniqueKey(), + transaction: _tx, + ), + TradeCard( + key: Key( + _tx.txid + + _tx.type.name + + _tx.hashCode.toString() + + trade.uuid, + ), // + trade: trade, + onTap: () async { + if (Util.isDesktop) { + await showDialog( + context: context, + builder: (context) => Navigator( + initialRoute: TradeDetailsView.routeName, + onGenerateRoute: RouteGenerator.generateRoute, + onGenerateInitialRoutes: (_, __) { + return [ + FadePageRoute( + DesktopDialog( + maxHeight: null, + maxWidth: 580, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.only( + left: 32, + bottom: 16, + ), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "Trade details", + style: STextStyles.desktopH3( + context), + ), + DesktopDialogCloseButton( + onPressedOverride: Navigator.of( + context, + rootNavigator: true, + ).pop, + ), + ], + ), ), - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Text( - "Trade details", - style: - STextStyles.desktopH3(context), - ), - DesktopDialogCloseButton( - onPressedOverride: Navigator.of( - context, - rootNavigator: true, - ).pop, - ), - ], + Flexible( + child: TradeDetailsView( + tradeId: trade.tradeId, + // TODO: [prio:med] + // transactionIfSentFromStack: tx, + transactionIfSentFromStack: null, + walletName: ref + .watch(pWalletName(_tx.walletId)), + walletId: _tx.walletId, + ), ), - ), - Flexible( - child: TradeDetailsView( - tradeId: trade.tradeId, - // TODO: [prio:med] - // transactionIfSentFromStack: tx, - transactionIfSentFromStack: null, - walletName: ref - .watch(pWalletName(_tx.walletId)), - walletId: _tx.walletId, - ), - ), - ], + ], + ), + ), + const RouteSettings( + name: TradeDetailsView.routeName, ), ), - const RouteSettings( - name: TradeDetailsView.routeName, - ), - ), - ]; - }, - ), - ); - } else { - unawaited( - Navigator.of(context).pushNamed( - TradeDetailsView.routeName, - arguments: Tuple4( - trade.tradeId, - _tx, - _tx.walletId, - ref.read(pWalletName(_tx.walletId)), + ]; + }, ), - ), - ); - } - }, - ), - ], + ); + } else { + unawaited( + Navigator.of(context).pushNamed( + TradeDetailsView.routeName, + arguments: Tuple4( + trade.tradeId, + _tx, + _tx.walletId, + ref.read(pWalletName(_tx.walletId)), + ), + ), + ); + } + }, + ), + ], + ), ), ); } else { @@ -149,10 +152,12 @@ class TxListItem extends ConsumerWidget { color: Theme.of(context).extension()!.popupBG, borderRadius: radius, ), - child: TransactionCardV2( - // this may mess with combined firo transactions - key: UniqueKey(), - transaction: _tx, + child: Breathing( + child: TransactionCardV2( + // this may mess with combined firo transactions + key: UniqueKey(), + transaction: _tx, + ), ), ); } @@ -165,9 +170,11 @@ class TxListItem extends ConsumerWidget { color: Theme.of(context).extension()!.popupBG, borderRadius: radius, ), - child: FusionTxGroupCard( - key: UniqueKey(), - group: group, + child: Breathing( + child: FusionTxGroupCard( + key: UniqueKey(), + group: group, + ), ), ); } diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart b/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart index f38296cd5..983f01a42 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_summary_table.dart @@ -13,6 +13,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; + import '../../pages/wallets_view/wallets_overview.dart'; import '../../providers/providers.dart'; import '../../themes/coin_icon_provider.dart'; @@ -21,6 +22,7 @@ import '../../utilities/amount/amount.dart'; import '../../utilities/text_styles.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; import '../../wallets/isar/providers/all_wallets_info_provider.dart'; +import '../../widgets/breathing.dart'; import '../../widgets/conditional_parent.dart'; import '../../widgets/desktop/desktop_dialog.dart'; import '../../widgets/desktop/desktop_dialog_close_button.dart'; @@ -146,71 +148,56 @@ class _DesktopWalletSummaryRowState @override Widget build(BuildContext context) { - return MouseRegion( - onEnter: (_) => setState( - () => _hovering = true, - ), - onExit: (_) => setState( - () => _hovering = false, - ), - child: AnimatedScale( - scale: _hovering ? 1.00 : 0.98, - duration: const Duration( - milliseconds: 200, - ), - child: RoundedWhiteContainer( - padding: const EdgeInsets.all(20), - hoverColor: Colors.transparent, - onPressed: _onPressed, - child: Row( - children: [ - Expanded( - flex: 4, - child: Row( - children: [ - SvgPicture.file( - File( - ref.watch(coinIconProvider(widget.coin)), - ), - width: 28, - height: 28, + return Breathing( + child: RoundedWhiteContainer( + padding: const EdgeInsets.all(20), + hoverColor: Colors.transparent, + onPressed: _onPressed, + child: Row( + children: [ + Expanded( + flex: 4, + child: Row( + children: [ + SvgPicture.file( + File( + ref.watch(coinIconProvider(widget.coin)), ), - const SizedBox( - width: 10, - ), - Text( - widget.coin.prettyName, - style: - STextStyles.desktopTextExtraSmall(context).copyWith( - color: Theme.of(context) - .extension()! - .textDark, - ), - ), - ], - ), - ), - Expanded( - flex: 4, - child: Text( - widget.walletCount == 1 - ? "${widget.walletCount} wallet" - : "${widget.walletCount} wallets", - style: STextStyles.desktopTextExtraSmall(context).copyWith( - color: Theme.of(context) - .extension()! - .textSubtitle1, + width: 28, + height: 28, ), + const SizedBox( + width: 10, + ), + Text( + widget.coin.prettyName, + style: STextStyles.desktopTextExtraSmall(context).copyWith( + color: + Theme.of(context).extension()!.textDark, + ), + ), + ], + ), + ), + Expanded( + flex: 4, + child: Text( + widget.walletCount == 1 + ? "${widget.walletCount} wallet" + : "${widget.walletCount} wallets", + style: STextStyles.desktopTextExtraSmall(context).copyWith( + color: + Theme.of(context).extension()!.textSubtitle1, ), ), - Expanded( - flex: 6, - child: TablePriceInfo( - coin: widget.coin, - ), + ), + Expanded( + flex: 6, + child: TablePriceInfo( + coin: widget.coin, ), - ], - ), + ), + ], ), ), ); diff --git a/lib/widgets/breathing.dart b/lib/widgets/breathing.dart new file mode 100644 index 000000000..af4721d90 --- /dev/null +++ b/lib/widgets/breathing.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; + +class Breathing extends StatefulWidget { + const Breathing({super.key, required this.child}); + + final Widget child; + + @override + State createState() => _BreathingState(); +} + +class _BreathingState extends State { + bool _hovering = false; + @override + Widget build(BuildContext context) { + return MouseRegion( + onEnter: (_) => setState( + () => _hovering = true, + ), + onExit: (_) => setState( + () => _hovering = false, + ), + child: AnimatedScale( + scale: _hovering ? 1.00 : 0.98, + duration: const Duration( + milliseconds: 200, + ), + child: widget.child, + ), + ); + } +} From 8f605c4b1cbcf8ea03d7b39f6475ca94f554eaa9 Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 27 Jun 2024 15:07:01 -0600 Subject: [PATCH 316/318] https://github.com/cypherstack/stack_wallet/issues/317 --- lib/pages/wallet_view/wallet_view.dart | 60 +++++++++++++------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/lib/pages/wallet_view/wallet_view.dart b/lib/pages/wallet_view/wallet_view.dart index bfe2cb8c5..ea9ca50e4 100644 --- a/lib/pages/wallet_view/wallet_view.dart +++ b/lib/pages/wallet_view/wallet_view.dart @@ -80,7 +80,6 @@ import '../buy_view/buy_in_wallet_view.dart'; import '../cashfusion/cashfusion_view.dart'; import '../coin_control/coin_control_view.dart'; import '../exchange_view/wallet_initiated_exchange_view.dart'; -import '../home_view/home_view.dart'; import '../monkey/monkey_view.dart'; import '../notification_views/notifications_view.dart'; import '../ordinals/ordinals_view.dart'; @@ -257,40 +256,43 @@ class _WalletViewState extends ConsumerState { super.dispose(); } - DateTime? _cachedTime; + // DateTime? _cachedTime; Future _onWillPop() async { if (_rescanningOnOpen || _lelantusRescanRecovery) { return false; } - final now = DateTime.now(); - const timeout = Duration(milliseconds: 1500); - if (_cachedTime == null || now.difference(_cachedTime!) > timeout) { - _cachedTime = now; - unawaited( - showDialog( - context: context, - barrierDismissible: false, - builder: (_) => WillPopScope( - onWillPop: () async { - Navigator.of(context).popUntil( - ModalRoute.withName(HomeView.routeName), - ); - _logout(); - return false; - }, - child: const StackDialog(title: "Tap back again to exit wallet"), - ), - ).timeout( - timeout, - onTimeout: () => Navigator.of(context).popUntil( - ModalRoute.withName(WalletView.routeName), - ), - ), - ); - } - return false; + _logout(); + + return true; + // final now = DateTime.now(); + // const timeout = Duration(milliseconds: 1500); + // if (_cachedTime == null || now.difference(_cachedTime!) > timeout) { + // _cachedTime = now; + // unawaited( + // showDialog( + // context: context, + // barrierDismissible: false, + // builder: (_) => WillPopScope( + // onWillPop: () async { + // Navigator.of(context).popUntil( + // ModalRoute.withName(HomeView.routeName), + // ); + // _logout(); + // return false; + // }, + // child: const StackDialog(title: "Tap back again to exit wallet"), + // ), + // ).timeout( + // timeout, + // onTimeout: () => Navigator.of(context).popUntil( + // ModalRoute.withName(WalletView.routeName), + // ), + // ), + // ); + // } + // return false; } void _logout() async { From d30e7240416d05a78141836a41450b1d9193e4bf Mon Sep 17 00:00:00 2001 From: julian Date: Thu, 27 Jun 2024 15:09:45 -0600 Subject: [PATCH 317/318] its a shame --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index f1cfc0cbb..dd2d49319 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit f1cfc0cbb675c5e2d03c30152514fcbb28a465f4 +Subproject commit dd2d493199dd9c697abc8bc6bc94f466005bf70a From e0366b77b26315bc26c571a9657fea90696df7ed Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 28 Jun 2024 23:51:26 -0500 Subject: [PATCH 318/318] windows fix --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index dd2d49319..982f5ab19 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit dd2d493199dd9c697abc8bc6bc94f466005bf70a +Subproject commit 982f5ab19fe0dd3dd3f6be2c46f8dff13d49027c

    Fgh-b@56ni>4S^Kx5;gST2SO1q4@P)4aG<}Q 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%0A&j#((fHt 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�-xM_79n+o^ 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®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 {aVlDke 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

  • Fgh-b@56ni>4S^Kx5;gST2SO1q4@P)4aG<}Q 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%0A&j#((fHt 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�-xM_79n+o^ zO;x0Z!KvBpxA8x|e3n+u+b>@FJ$8VjN_DyJYRO82Kuu@ep3TXtx>C{6 z7NOf{+)Aq>JqR@s zmpmkz1RFBi+WIN^n$X0f#A5e7Bix{(0E6-F%_%}{1DfbX2HJ9cy*Wvz>R=PC2s~MCpi^VnMsJ*RPrq{bXBs9;NXOw<}*R>+wy*V z|CrES`ft*dz>7$su;hh3aO9K5k06@;LTp#M-DDtQfp(!0OUC*c4sfAo+}#OkG^(yn zMhlD;qqVezaEoYHlE!+9#Oi8abN>dVn97gYj_i`m)CX;5CDfhI6FNAI2ElYGxx%ax zK$X3{7#+Yxhw`9xX-UyJqo&`_;ZSR6YWMLGcAZ$>`*A%!cJGICXCF&BPI?L+Ws@?} zm`)^Ar64>}%Ls)i`9-jzRF~i;4-Szcl60EZt2~it1-~R^z5uf;!_KS>hlka*vNlY` z;!Ja_$vKc?cFVbp_l<;LcPkT#$kzBTnVH{KXG=1tuP9Y%fDT2bO~N3gem>+EL1f}# zK}>#0bAxATx-Ls)bhXM7a^>z115uXSN{4JGI*Fl4*;i>$t)tMyssXzo&qunN|CDH&E_U~UTL@L?%+Y%`Fx(;cB+?G+veg+|9pLYk>W2IO(LxC|54QpV_y;J!#c;IXSy_trnBF;G@ zoO*03Ur2f!Y)WBThvx0uqEg=|0O+r>SKZqMpyFI9vq+W(hPLbqUs7=&f+J-w%{HQv zatWjln$R`NdR|-H!qsAb`COL6A=B^DRjPbAV0y?VnxCr~y5zK{^0P0gD)ZDO$0CJ* z@g)QK+wQTQZ}X?Z^U&IdFtpR>DtUuYMw14RuP?!MmuYA=5>YMN7(uZVs?%&gQ;;`# zWh!C3OitB_)hp~_wIX&@-RXu!fqd!kFASrGW~=2yGDVxWX(dRh38mjYHvcnE`j77) zInVF1a+0G7rd_WaakT8m+AiAJ}+B$yN1oRM>|FTG1MM$SC@w?Znvo}ts!mrW>@!a zMp{Gkg7VrYB8ab*l6(=kXhapE(8K%y2IcU5F%&gHyCR~H-F6t0Oz|&@jZ!-cR5=`g z13O=Fx%guG)pb*F2Wvv$OBlJC*`&R`k`CWlr<(1#4{7&uJelQfZ2Nn7Zj z*Rq9jQx@fn5Hv%|hZwYSRP!&B_kjsyFfC5Qw)aVxV@aokkJO>!*EY4wSxaVODG$ux zNoX?xCs^|UI=V90Dbc!b%UcHhyOb<^PZf5iZ3lY3*npeXySZqb#Inf35H8UBr8FY@ zfxovzL5GBU7{06nz)YfM5ltH&YgTvYCM&Sit`7R0Q`j&H1M!}xuVV*zK70PG8X)^j zlmfUvf3^V8X;GA9**)5nA>T-{3I=VZg(o(4oC=;-DM%NXmqRN&;&gx6^E7R}>$| z$Klzm^%rN#yZb->vUe=ha!m&~C4M<$+mL2-xHk+fSgA+%L7Q_~Zcq9n6pO)CUK;|8 z%|d0#1H>2CVx{0g8_hAY-yvU54n&k0_@FjIvG)~C_-}jykLo(`I&R*s*LiC(yZ2YK z|KeT#@%^>_`|~FrS+S2y4G!aoBh5osXO?E`xsDWkKYUemb>Jn!cVOL=n`HzqJd`+b zh(s^B0w{PnOB;H)Vm-NOK8rxytqdL#Jet&Bhm@X*S02kN8%2{(VCk;RkGqZPD0`nN zj(}KK;uyQ{Wlht{Qt$%8U@osy&tzA8HR~_lrBIK)CTu{c*3PUHCo2t$$dQ^P+o$*N z{8&EbxH^39fRSpnEw@4A9RCsPSx$C%v``)|*EBJZswvOHbVUIP zN)bT%7)GZdP>`=@gAvsry1?$UTu7EbgA-y&S><$|=*_JA>b~xn(}z_(lArOGlRSDz zzJ}^Z9)-S2U`nf5MNaxi)wCRskL5|VdYz8|;fDHhiFN3n9C_zN`!JZ)o20ZQFGu-e z%7`PE5l4TZK$@}{4@KyrpOcmJt>%f1Y`Zsp-2~Z{)L)ngOj!s2Q?VTw>S<$X({`F3W?`b@$LwZKR;pDS&B;DN%AMt?sir z&2{sBeE*pKT>-^vlgI=>$O=^#1=aVnX&%11QmJJ{m4R%fMOLNFMFL+lTU z5vv%8L!O8gM^U9K5xa@PK%Xx5fjqSJm2|c8z)^49LN6|pCc^S&Jw&9*Y$zNs2>%-= z3LtN|fF!SQeZ>p_=iS3I_r1>4m7_G*n9T_-vyIg&K`IXCJ)v5H?7Ag^VOA;6;DjMO z#gUQnv^680mVJ+)=DEe&RVbS?S=jDy=_$JZqsm#R3SHpgFD@JI1T7~}?lM®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 {aVlDke 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 z zE;Hn{yV*7`e;Y;=T>RV?M_z86WXAEs1mj?G^eDE$LeVj`AGXm3oR1xZGp~f1T$o!U z`4q zzRli^W9DqnI%aPWJ~JJ-OA*RtyUYvuMN7kemHovZ7##+)E6G(n5Z}itzubbDGSPsc&BU#iW{%KvJ(Sl41g=o6OV>`ar!KJNuG&`*gca4 z^=irD!p z>j-8+5uTobXHtO>x~MP^sA!r4s>vyyIJq>lx2cs9bBS1Z1I+F&q*r+dy|f(qwz z2tLUMmJN))fE%~liOYs@xm&&}9CtT-8^?u?tj86Y5lOjmE;uMHrozpG%#S0TPjT5= zJ2+u>g<5(c&88qBz1&sRVa+n0n(B3{GL=$s2Wl@lvpY_8@K+WP%!^{a?%F*wEf>dO zt2+1QY>AWmUJxE`adf28UKE4udwRB+&K>q7v>%Khm^-W;y;K;@4u?9-(Ed`mGAJgq zt^IfujNzO=06%gRvaGoM^n#d9dn|ak^WyCjPyainPKQ(bgWZoBm>G!IBhGm2l8pwR zUa&Y2YYtW8I<>5ehFw$L41Q>&*M@L)x2xm;Lpbhb6B#hc)~ovTQ-SG+FqXjsw&jX` zwfNXzv4L7|!}qL5aQzZE?386N#DAiiD!o!)OF+pB3V_y_?AIC6Xpmo`L zF_#W!nQkjr@{O7nw?cRvdF|wQYN>xRVRi4*mS!ep^vVj$c1i9ki9dv5E(ONOc%Nvs za;k68JZGMu__x)oB?;{xhKi@H@^Hfpy)cU19Hc%O!p*0xEXEn@t8h?8k}Y2eo8=74zgrnwfFW&L}a z1VeX(N=)xgptIwIRf%{B|Z*#b)2RHmzV(rmNmPhccS;3vBiF-r7I(d)c z$@nSErNC@Xw){jMGqahiSB;N+Whi@UtJlqn8nN>eotMm#7Tla9=gP#v%LgCVZWg`Y zb1Znc3L38&+$`5_i&vNQs(lpQ%PY5kd)}?HkroHi43>w>IPIaQ;RA!mSwhn-- z2UMNAa%LQmX5+#jH`>K)=?1dp5WEfHPS4fDLVWjNs=$V@`vlJdQ5VVmi1P_Km#rIn zKa;D&MdA!qicZINO%?GMpBm|Pd!jjH@?U7VWNn_X+1}g|QDK&C%>}Gv!!@~J%uEH_ zJlC}yXGT$BtwneVRN)+CKWmr@5BKeXGs8TPXSdhQuFDHC`D{*YIC=LMyy)S_2lDK! zkUTbwS%uL=T-Z9?QL~CZ!1*?Zm<`^%MO1Z5e48x|Rwm7R!7Ks7XXSeY^5Q*CzX7X@ z+)?}v9*8rZS96@z;_2k+5Kk@j+UiBb&Q2*7UCF#*8!Ul4+J=S5J+T!nOT))X#VKv+ z*9pW7&u^W*on;m&Zn&i!e2n0M#?a#`hzI4~>IU-?!n|eXJ;?n!sc-ZZg(IH0 zS2!#9gcr$ISG0DrBo>R?*Y(s+|73PLkC|1_F3H{FXScOdQBGnS(_ALZ-+N94YaJW5 zb*_8G;A7&_=7?vG2i&}XCU-VmJypxU2M4J)Ms4v~kHbmk=#7G+HBR#Fk@&u`A{xQR zHQSj=nCpNw6&LpcGkz-iP%x$~Yzuf?>c5p#!08Rlj?vK>9Fw^%0JgDGQBPvjl(`<0arApe1rITae5_od&0N({c?xV007^vfb!;j zzM8oYSQByaEXTWlmKWE6>shbcK&SJ1w;ISAiStqxOjW~;XTjDPn-jgXUALgzNI3LV?g4m z><&*^WtxSHcY$>>MSKxXGW+OUaMOFGk$IT)DPBLp@i`PfsxroSPHWmOR2c^+%w8EY zxt2|7j7spkeb(R)ZS=Z1u^a8%M9n3SGt$diNye&yFLD68M*3uRSv(rdrXWS{9b|$J z(;wk%ZN&LY^y7_d@?FC-b9z?54ocjOdoRmjUYOmt$fRO#`idv)$3z=mueyEChCKjH zy}kHVV5Zy-55iHZ^C(ZS(QoxEq*($xnz&DRAVo%b5{RzQY!*B#Or7o~b~i-5pYTiK z<2-s0hQ<~hN-nwCP}X|==3U{8R?PjZ z`d(X1-*!!%% zV!jYZ!*4~Wd%LETd}AK|)KV`SmD8d2=(0~T@w}j2#!9m4+K#YgzAEh1=Rh~S?;;_1 zot?W&(QotCD-OZLFJQZSeCP;fZU&>+&3z)zxGk0j4<|0280e7hwCf}B-IrVxoH+-X zK^P;X>*-wLI^m8OvAcpfR|VguFP=NZ!h1_ML#yvKbeybE49WBNzIg+*p^B~If?1tVjB8r&@+<)_3kP9 z1yg=SXZ(WCVgqMx;~2LYET=U{Bfz{(=8M$XOe#LJr$RJ>y~u_JQS?oBNq*ltF@o@V z9L<$h5VwFe{}%TNpQRM-MRnmX#lMZ;M(_0jFfoT7ot>+}yoWIFnb_-b+PiV~Mo1oi z-{B3j25G)j`S{adEtXPSmiKPuk8Sn3Re52g7*H>X>?wz>)GFFZ%!-J)RagtpV$c^E zD0-B$2UpQ=^HysO$vyKAhbIm4Tf?UvI-1?wNuF(|hg&B+>l5Uq0q+A5&7G#-`zG{? z)^WYLnp-sw>3dDV;p6<(N{XUy!Wmb<+x%Vb!95ElPO;+5#IZwHz?H{I=PK`o)P+mp zI7kkk72G)Cq%PaiSSrE&&E;9)&l~D>lQLV9TN731b4Cr8$&!4|z~Fc&<`M8Rp^Cp}nV#UXGhx|Ae z_~kbb*Bqu+~w;g>clXqTgn4rT=iu-r@^o9drTOuZdK3pkHN25k5YqXlmeoDbaM`*;CM z$>J%?@+>%$ADD%E_?Wrm7wPRrM?JRVi&OB~n5d6xnj5LJ0(~>Vn@kY>ZOi3y>hzi9 zdW`UXwrI9DpL1RC(GpveaB-P1>nN75gri**|F(lCJy_2x;)PaLenvfR;Cq2urmM#q zU*c$<$JN-vyeb^LIpT)A>`O6y+|_l`kK_++^}1ENy4lb&j`zGqgU=w{?GGA(sxV&x z)6G1w+8{=bgI9quIpN#RrPUE<&on%|f-DC%d~bLxS$-I!(i6^pc&&4A=svlz;Y~c* z(TGnhR&ev~`FNnR$Be=p0c$cYt`pXZpyGFh-{+X#En)Rx_7{jNgJ?1;18(uC5BppZKw{UN`Fwe~faX^Aayx&G!mCXZ#f& zv=8ixVf^WzO|9M*jW3`bpIAvDIPk(8Un9)qFLAgK4Tm;N8=IR>Ql2*Uid=H@>_vt) z%t|M$vxv#q>wf$dgww}iEE#hPSQB#C)4)+s#EL%yZm1NczdAhV!u|s3fKlYik2}%5 zbfd)-m^woKLLMev%11o&J{FRmPrfuGcU`-$y1JY`<^0%GuO~E>?xz&k6`9PoF}Uzn zC9?)~T637M4G(HQxg86a{TU8l6Xv8Bd|SL)dPrs;-Z6PeUv6v|)epBL-|02UoR^24 zZeVW=nC;UrdjjFb(T3!=%@aKczIRhIu`tJiJN-=DDlF%OqIbd>VHE$}Bu04zE5PC= z`z1J?2(ozz5t;r@I^l0W3g%>llWfXL`Q?78>5%H2I{F z&6Q$lT~zV&FN_ffS9h9yc26L?h) zzBnrdWZM#`7tO2Y1@TJi;wf>QfQKhcF3hSJT>V1ce^=CgJ6-sBBfU0$ah#8PPx2!< z9|xYBH*^uN?ZXIj+pyN3#dW}e9MP>7b)py!w^utW5A2p$$Gjz6u57pi=&Z9noWz+l znQiN0XLJc?--5BgVYZGU|F(IeErR#)J~N>(j|DgUed1MNt*R*cR`@=X;M*21>bm;w zub9cNvXg(|{9EAQdE&8=zm9zO+)xLL%+X=`ndH5qBqLKyv0PUhuJnkfrurwd)P3Bz zI;icl8-|C_0m*)_-JA2X&Fb7=C zb$iwsH&ZU`jIQ|ZV=6Bk?lVj#KutXo$D0c}wt4CCXG+e{BJsubUMW zVhay#=l!sW_hNju&n3RM$FjQ}ZmcSc=YVlZOWt<6P87qpz3X*|%Fv~7l=4}!R5&dG zzn@fIq)&~C-|xLx9d6zckwd^Sr-%2XZb&PDiS;<4(RVPK0@k!#9Mw+jBVHAp&k!GD zxL)*OJuJlGmrbn+qxj*$<6!HK-7T-L)46PInWMn?)-Asz&uM8fb>zC*u;xBbP4(LP zrFjt5@{aerR#2^(Sd@dI*F@}!>D2C-T@4sJN8vWp^%}yr!Aq+n-^rmY+I!Kmfamm- zyffxX@>I~_n1ttJx}z6yc4H^6PUB1eU~M%^E;g{`{V|8KubH{HskmpEMV}9Z&w0ms z8^oPXoIKshPy@;@OOh~y089hI8gY^XdGR>q8|(0P`FAx}rUdfrzlO5~2&RL8%q+}J+1KP;JSwcE7Db}%mb*&vx;8`tCjS<_kimPs}4lEKt(NoL>9Odc6q zNl((In<#A=ic81vdLn!4xA;ODBd1Avb9-_tG%8rGm6(aeQrcO{WDW$7cyms5YaHQB z7ht}?!?H7QxDICIITGf6w~`<}^|Y=r0E)l;5LaYN7NJA-hLJ8o`3JRjG# za$7R@@MtQ`Osy_l6#aaQP)95&EPI}pQqSJ3s_7GXCgm_*$&vilO8=}qv15BanL&SK zMzm5N-CrA7ebX}HLMd1TiY5+P6hGuP4u6ra?c{-}UXt0mw~{eHvl3A`NvxHS*rssF zydPB@lE%NhQ<{fHvcHH(?4U|#rglX#p5C3zLK3NWGMmhvN77?s5lkh`WY%1aF|(ws z=)q(<#qr*p=wp^-uH7b_)xDkajK__~(*_w%F;+5PP%h$9r?MN7ZG_oFIIm`QV==+{ zLZifExb#=*X?XOJ%wNRW{0VE9*;6~cY*G|9Jd=B(o=e!ui)9T1)-(fQ6Zz zfjDZjCF5Ni$$07fHQp8^-^p$=<0;9psR5><3fZTVnXi(?Wu>=@`$+l7^iKSlf2p3> zgrl5l%5#h{k}nz}!!sRSi=OG!F0SGHW*QIpQaB6InP0e5d`^cHaqBMrwT9$ZqkQa7 zMILV<%xs~3@u|69wd~}PIRY_p8u>oW&Aepzi+1^@%uP+#kB;=V?hvg(k1662HJKhWA8@ZLnE@GjJ{}jzm=egd z8rhRm?jrr}{L+LM;Whu=Jfo9;dYX95p5QM=80R)tjxwJVqP=D)gOqDW=tjvFncC?%3GaR z`3*=94NH2gR(EsB=jls$1$nw|GW&=~AIp0u586}dN2$qd=^_1|`Ay`|F~M9!T*TQ$ z$v)l8-1dXwmAcL6bLtVu>-*fvncN^81yxd>?U_rDFErF(2RYBfkI=;DYj2r(sOsrK z;T75{Prn#u#4B9*s7>yW;zx{x+Aq6wsV^yOHAfw}u`c*+g(r@@&dk$;{(y8f>GYQQk;Do#z8>~ zPV7Z=6k@W6XdhRtDXuXg8HYm3$HiEcj1#=VDL0cR?fVdCIyzoFNPnwBn?FmY^!wV$ zSj8>V?_@Wb$v@$2Y?$KRR&tgSLOnbvTrb@`DD1@c6<@6+qxK2s4NGynCQT2ov=Sdh zP~ru}3H#!1k|pyLlJIL$_zXu~Q~1H?f;{?Jg|AsTaNqej(joKwd%)VV`P5Rc8dV=+ z#@Np&1M}K9b_E5%V8SHBQltQNCR01ryb$Lw8mPux97!rm(d*TdIn@hi@5dluni=<3 zVZI3No~hx{uTz|cb8=wjN_?)8%;Gol%w~J?U~pFQF?RB@T|2gO8*CpLGQ#tH7SCRi z86=G|;LGl!F(?|lHh4H&h&2IVBv#^qvDA6PT5>7^8MSnOHoQV43x* znOQOmHt=B5VjjqI-eHM5#u7W1t}~~aJDI@|rd=MZRdh_^kj=9gyGb2upa`#?1!>%( zZ}Cm5<==v-#NVqXGl@~+tcp8G00~; zCa)p&uhi=`WiqcFdU(lJf`jzQrGn4BNzKY$IKKlbkhT}M2$t)LiaaK{X4s?S>6G-2TPxRO&nR#eSF7)9u z!9@NdyU9aeupoOS%xmxDP6so$E$h9{VlK$z53R{4@tQ2v_=X#-RCAXeo!@-c& zDzKHlyoLWoY#@>pOeRi;DfGxG0!PVG$N=Sy6sqUGn3Mjv#1!QjQC>l;QJyPk+Ze3i zG}0P0loy!#g41YF9!b~WQ*u-vh1Sw9+xf$^g$IoLWP&aijE*~qB-l)80&A2Vy_ znP*?0!Epq&9i%dbmo6_cPV}p*Xs*R{M64p~8F$IXU`EFky(M5S(S1mAL###UzO{$o(04$mG^aeMpOai!;kgQ z=UOGob9xhkTZ#Ik&|Zz8w?9t5paRC7VnLiU2gY;;?GDQrSeT&gf6nJjd4`6PRKJb{ z$z?5rS1d`-BE4=r!`slr+6AxL`1XSZ9T(_79hcmBW{7$aTORtalt%q@UD|rFv{by9&vk^M@c_~BP^;hF)=xhAzTB-X|!~fqdZ54XMB4Q91+1c#;4rC z%&6eJT91~35F*^f7_1DK(bNLg43~#IS9E$5Tvsiqav2G_H=G)eNIF=PEAk%$_5amx zSb~YhLMjQ3`Oq^G3hGzT)iWGI&oVd%U@d|?jhG2+HOW`U6`ijX_l(teo-yMI>C0PK z8PDNo&A~={#B?hOwUM5YJEhXfI**tjQQB(^064Z452?_ ztGQ1>X!!|vl^ zAsq<0Y;ACfA&9_SFwY8qdd9_qM{RuL!CH9a=sFIEw}U=aXz27vhpsEjQ9V>la9TO1 z%QNdd)8|M2YoPw`m_iSc8|iC+vc~-Dm}gim`zzQQvZCmS!mbAySXmOZ$}(aHodi8& ze>^FpJR|D?_M-xwghVC~L4Q<-*ej}o5j4bHgghlTJO(qxJ#$Ld;B;=aXY3Hwo{?7l z@hVZf3azEjaN)2B(JkXo3!!E_V#Ew83ASD9z`_J|FD;!fnDPu6j^iO4Xrx5kn=Y>~ zPKcvW{Q}W5V#b44ZP9#*)nuVN(hmq2t*7PMjEZxG-osYw7_23ZYf2tdSlxhO{-o#s z7_9%Vf3b6tlkdpz#4ya!&T~Zn|5vazn58^pHe=ipDz6@JDbwApC+cY zJxGzFyS_Qv;wFob5>=iZQmQzN*2WqNLz%$Jke0PtfngCnW4VZ;>UE@id05ntQ{)WQ zxsahHUq=OIAw?-Ui@}Op&%rmr`C9YfJvvGCM@;>Am#ANb=F+M@)Q2sGV8q^C(B|9( zX3lpP(>f>SRt0Gv&Zn3i?v6A#9x{R2!sgKB4UWRp%HX>y;*h`PP=hg$(P1cVNr$;W z=M`L7VvW+2mZiEQ&OLK_CBa6489hn=Ia2?3Op%w2EO|l#9*2T4ke+F0gI2i7jL^4M z)6Qud(8gLz+)6?Q!4A8s1Q-UT@BYOouJBDvw#bX=nAbUY+-p@#&qWvGwtDAmtd za9DlgfexeK=$C^3Yn1-K^7SJIkxXlBpf)K6<{4=O@hjBo85{7x3R7)hi}D6h4q^vE z$Q<+(osR`ESdqz5JB3UvB1cp^rYc{Whm|CZCSFb~sl0=@jlu9h8Sb)1c^Ghyh!&za z8Ua>#w|rx88uJXFjFVOt8ce^W>=~C;#0)y0Va5xngEY23r<1mY)%OGi>_{jJX6fRZ zq^yC#@XT?OiG{)0sKv(MNQb_lPhb{)2MR72u?%0pL12~2TSvD>a1{U9;~^=7|6k+u z|CMi8?gNjJLnTpemy;i)mH8EGC6CiZV1*!jV1@FCatM^Cr^wLm6Gm()9?ksus6GTs z;QFC@*d(u#z=oW-u*wUpQ5?62Q*mXbXC!J-oFiL79;1>dPBEe2Q9>nI7g|d{C+v?~ zZx%^e9tgeEl->u2Y&0zZx1KR5w6KFSa>}?wX%Vur z3>tvYD&tW>)>3I>xM$;AgyQh+v}a!#kcIRHXF0C9^{(BwZTr7w+Z z>cEVVq~||pOG}bJxau$k5J%y+u5ocnmx3cLu;O|=X@P*|tI8H|Q!g~;o#2rF@iNR6CkqmiB#i=-Iqffe^w1Bzx zY;bd_b}5Z#7Zfaap|uLXoF_?dI}Y~cv5t z3Ym0251*U?a;}5Fs=&XJwhHU=ftmva`c8*K4j0iRN2f=c1%K7w8?aO|_^VRV)tLqR zdyLln=UDw;c?7dT4y3|54efaN;cL7x_E&tBkixCV5xanv1gtVtIC$Mi^I7trU84nn-be!b6(k!rYLCvGD6n!it~+ZY%{ zp*P3`5KG}Xq)@?9gx*JrQ+dlB-5u>v9;sB1w5{>KhU)*0Dy?f(VZAM$m#{R&b3{2s zEhH>eNQD}3SeO779OYq|cwp#tiQFwthe7nn{pnP@uaL)wnw5Iukf@ zo-sLz7_4|$eG3JK^R+UbeSJ(*^$}w~z9j08LThPXyRVOO5Y97h6QkC1&I3ypYnXRo z0!Jv1`W&5atnwV8Ue6)_r@5m5mOwcS6XGXSe}uRhIAm@qPQqg_!*QAiG#%#x{f91R z#F~fxGp8WNxXipy$*csxryxW59e;1KGe#DpSd z2o2FrY#ta&36GZas6y`E!C#}=O;{zasdB`LP?`UeKB)ykK*+80$RTZG;z)Rwv~K~Y z3t>F_+JH1#9(^%dVjWs4=u`D*7^7Wfw6rFu@`wk9P_py}2Sz_pnWM9nwVq-AaV>+j zZHRB<*5le_NTHi0s;7M~j+hx-9p|Au7Au6lm=G>^3~deDR!|(~jdA!2E(U97=+69d zIXKWzBKE&V>HiKWJYw2Q?N5PHQvMVmM5g)`V9^y~Nm(M@vZe%vS? z79Dc~rbMhSZeU`0SfdSe-xniwcBWVnh&ak%#?_>2z46|LqC9wn-m zp|!Y-#BojuX-1cEo-s=XgicbvSfq%h4cgdR6eriyb1?pl0x6Kz5Xr%1bz!}QrrKdX z0t>CFwVcPmhz^IeF0n)39ke2`bfNDN?u|kxRd874&+-liRDz-gl9=^IM_yDOjXMBzmL@a*S>I79Ch!B7y$n~)2#q&?vmca?JF<8=ZO~QlNDDqpCG+@~0kTq68k8{oF z_85oq=mwaP)cCK_`u_@8A$k@T+(Ij9(vF@D<&Q$3HDp4KN5im{g;;VZR9Z3{7(F!# zF%vpnKr7KAOy=2PRkbf~L*`W?`GfKfGnHo!|A;t3c`2cAsk~Flv!Q*d;K(}95EUq| zLw-X=LDCvY&4snoIE>A2gvPO;&y@%q4500(1LHt{X!+6VuFCLbPaTzj! zV9wFju;m5L19gp>6azIKRtK2RYoz|a z0EXiu$ssa$UW6e%#8E}$TaM8XHl#wKt!40Ez$)S-X_aAt(NkpmP+Y+*dW4(j$p2!# zunl=vI71ADUC7JQ&1S@$ThAPpJO(pz9uWrdlM!Ni4G{ zpw%i!bIAfTNzz>@O>8U+(jKQ9hw!Io6`XcFhtl}+ST!0vV~#Lkg68MhMICz{Zznv}6_>9B`&WlrE&XJR{!$R#=ne%fps&*8ZU zdpo%TlYkNtef1D1$ng`T!*IIPAxFxz^sFh&5d2D1uc)~KRvv>&X^6m1I5Z#67qPXz zepq)Y10&l9|2CXYW)-)G8yx@1{vkS|f?JHESdRXa!R3K{$&lbh<%lT*5y6ynI1=c) z!#yCDBJ^E&qXD*D1+SH%Jl+woqD9UBHCF#uC_#()+X`==JIL9H9y&*HW%timD?ABK zjNuW)#tG81QaG^WF04Hk(&BvX!qQ{w461h&Q!<vfsN!ro=1*YJ5K6dav50Jpzi5> zPAPJuVEZN2&$%SQ?1bCS$Os?G!NK4YQ( z%owU)Md%;H;~KmV0gfno_Fu#G|0Qtv+!g;7pk-Lp;Tf3(@e^_lj;D;k*k~LOidh)E zro;+jNjS(gI-Qn=;EO3hj7wPBp{aI<35M2k00qPVC*)Ro77)2Hn340SX^kXK7r3oZ z(ikR8&Eco|gQyiQG!~b2oJ2Fzfo+I3<1r&PTKn=G3n>B%l=t<~`Sckd!(H&%MaTjg zj$mMLj2UTK1LJ|_LBbI;gXY5#L3w=b0vvX&fRX58xUAGvUQp+`VlhZN&-7cGKdU=9 z*wVB3p9A%OZ7_zNoXKAiS~$mw93oBF-3=TSZ`~g zlV}sM@XRT2`YYZVvZ3JM$ANW(@^GF-VDuC!gZ=nZEG#>g8Z7@D)^$WwyP^mY*htg{ zK|qMM&LM2^Dv-+lk`H$C%gW zfdj8m9OmlBom7y>p{-nzl-9J++j`c}CY~uMgX0)R((BCVzzTgsb(WZkp!ZFLSn6{sv?9EBaWK-lAuFg8Jf^PjD(jD^~r1;aaH zzxl6m`oBZU5OAlpr!h34wPBs9#52cmgOz6(crff7Ck_f08i~-ik%t^EPSzBHMxw)@ zVhE;KbMf<)BHtz)mY9+}3gm5xBcVNO%zRYbDUbB!GZ1~?Mj>E@(u~p?!Hpz!99pWv zMKrDP2IB^aAjYKw5HT@dq9)A>9KV&6I(NA6FNI<|)6`V_1JbLPv3{Vkq< z^0jz~eCxrQj%!kj#Omi0Oz02EJ?mL(E%lg9tQ{`V6WpR&j99CO+_N^nb9HlMX`@qJRcId0Z*|2_|eQiIBcO~bsaxk7D zgBS^vmza{mCQc)WIS(00E^G{D)}0x4+vQCaXpCcf-`*r4YaU&HXw#-j=89 z;cve^Ozzjs`}attF@?P{k^dJIX{M$2@FyarmDJ)7p#wkd^M9S~H|HiEQFH+CudDc@ zSKr`YjpV+PU+oO^Kkm%0>iplS%~b7wxBjO>E$qMbTXXr_|LF95a-aN#PEDVWtG`Ys zw}qB}-1M`J_A9CsSEr2sr{3wU^Szb-+fn-ej7M>1g#VvRZVrE0W%B!ctKXKH#b+Kb z*ZnAM(#!OG;nejwd8=;iGRT(;`E%{izU|J*Y2R+gt8Y19&Y#QWZlzGj4=UU8p}I@X zt$yuv+ng)!&9a{!KAtINO3mi8sg8%^)25~Urk7(So{iFdtc?-F#UF|*GCqkZmyPCgz3QZ6E{5Z2 zPwzYBe&adZiteRfJI+!m=hRu*)MUJT3Vm2`A)LBB9*2W_J}Sfhz7)Um>%`xnRxI23 zW~o{ppY;BnN#a(uy8l?Q{iaio#?e0~H>EF|?KfwPDc1e<`om7T#Fh+>`(XxpfMc4j?)pm_yE?0U!m-B^aP8&!6K-7!d)~oo5qTZBW zxtTv6)9KWt>JObt6*A?xm02aLMY2vB}8+BY#hf6u&H+%^`I(J1=v zKj&fnyL~>V)xO!bPpozn+T}{!^Dg>6(?(BRnQzxNE!O6{6>0n8A8TjR!?|2<)VAqV zs@Uv|(w%KSn~7VyOj5|qvc5|jS<%<{RNN%ZT)C{==-cPt@lDiLt=VEynvO=T<#o#z z_rZ3EYfY`qd zJZeVQ<#c*|j90B%X?$!oOy~7;ol2n{pWM*+_kq$R>Rk-)yWms{*UQ8lW+S+I-TZsE=q+`PuGjNdE+tc-u%6Mjc&p}va9p_ zcz?UHdcRh?!ZvQ~x7@7Xqo~o(op!zt^gQGCfPJs{oLU`@3hvt^(?+#jk+wJ)7xYuo!f7w z^;Q2~{0!T+zA$b+o_;6g!p0zlTxWvN%-J$z0SUe z19y*4#R+jd9{DV;w>Is9x%+0Q*0W@es#Duq)}Jret@e4|tA)1LCAHn9+0e*GlF4@; zpUz@=&mWqd$+))d-#gd$oAY9kw>K(3t8+bX_0O_3TP};a3!B`AcG1s$qWPn_^Aptu zwyKlKXI4$vdpSJ}^=_BRH@A;R%GSy=8gG>OVIhc|zT=7pY!9^Nv&LRO5PU-7>d`=G`|eme9uED&ZfjcCw14#KZ|7}Tp*;{=6ce|AUX zsMf|X(z}{eU&&_qD7t&cwN{-H5OEbg5W$x4V}Bllts* z8%&ekmMxp6-Wd*$mopz4V>yE+t;T6$g_EM_Awgyc)-4%0T|5MA4bw(wh%W#$Ob`mWn zh0cAjFT9?gmhj4>Ub@+c^Qe^^)6IQiyr5bA*u}@7gt;;`XJ6M{*R%1aFu&L9b+zku zzu$KM#xu4)IQ3?YPIFR@`hNC2dX*4g)6FIN; z{5&Im{>`l9e)hRXNxjnQK()zS+uP;=8HS2WkBw~&v0f5IlLKkc28_vA8o@@FOM=kVU} zd^~>DVeg_gLPM%4z z;fmZpcay_x(JZQGv)Q!i)H`?XpzRoj)`@2}h16-votmFyrFiug<$7ChmWiL6-rJ<~ z-Q5Py>HQMz7pdp)`m#|i-#whJg=n3m@5AHsKJHCw#cb)cyd3{I@9j#~&wJm`))XJT zOeXJzMQXud#=70^w&rcuX4Rdnt*#VHgKhJ{tA*`%kV>cflT82775R8Ss1qtv)ty^$Q+)7s~7TX_GbBP>e9QeGFzHE z&;5%Rxo2KbkIgxsTU7a1q*Jx1s_S?Rmp%_wji@?5DSr#Zyk7&3fG|vZZ!*Sue3uI+w}i)7dxtfWz8r z%v!;w8pYE6o+K%8E+?#?jBlyMa9;JVO4Nm42H(jW;*~tlm)^DDxoknEQe1oogW=Ho zdGm8|ncLQnH!oYhStdl$OOfSpn5(%#@#^2Drhk{b$!v{k#Y4-xOSSkgtmTLKQ8X)F zFZH@Jqsimj634@Jy30*cS@*54^0T{R{GfK9@#vDR#iI&)Wb`h-OfN?3hgWIUU;5`% zeR*Fie>Lg*GJh3mnbexyid#GfFE?0zc~W}#2k>$!cE`6tF;_WvcPrul84mrsyj+Yv zpHy1-CvsU^t=DW7Z|tb!C*Q$#>uUGqcDox-3Wr-x>SFQY2G`U4{(iSzvQYRymg zQKhviZJE9g2iN2@@QyRwi)Lx_O1h#d zrA<#C*TJ>@=$}^o4(8#P>DF)0RoYzr<+g>%^TIj5oxQCr6<)*Bixp0I*2&MWKzkey zh5lzLl2djmF6;Kme!ZXW9yYhgjJ?lsIOzFfF*8e~HP!JK%$15{>Mn*4n>P*MSeoc+;t1 ztFDdx_qHjw-_Q1=d2}kyx<~5s*?jufN&G0El3{Ik9PRU;{5>~Ra+mXOcYVD{uEu!# z+ik1|=ZVYc)HBM~I{V?3nfbG6wC0C-`+NIm3}?|vyhd3p+&6kY``Rw5MU{SDuiYur zuJu)JwZ1hPDQiFP^5=Fd)V{AX-?puOX3fOKtJQok$`8GOD!SA6lU0-Ew&k*g`m$E5 z*Was7OS{pnQ_WqX;j??+$z}H7{G7MiUj4gwf2_v6cWG1n`hda9WmWpzQnSZ!o~ZS5 z)c$3AYP-3Q+oWqH8CT}#)MwJ`ypKn(v!~-(@vyISa^e%^Yt3@+rF!?m^?a;ZwI6M! z#gzA#$5ok&@A+M^dR~3+#bT?u+s!M5q28v)Ewy^DQ?O;a|Jq!Kd{FJ*56kw&oez~q zE>fr5yw=Vf3XMi1pD(_SxAKtB{9Kgk+#8+T>H4qn_6Gc&Pd8hA|J-GI+s1lWFP7A! zJ3d9X>5*^FJ+7*LaIbYXsidS_U8ZsNcrRZ2cdwPUI#Z3;_AtJmt5K?6u2#R^|2w_j zsn+ZASPITHTb|V7*6TKgr$j~T+4{K59GpsJzO7EnEz;wf^Fpgj?Fn;wyO+y%UoPgW zwS_%q=XQ1G{f7M`(_Md#5p-B+iwJ{@MOVcT_2-qiYtggVw& z%f{imY@YH3A8yg}a#tH4@td9-rvl%8q6Oco; zxx&kPaW7SM{!qKROlLC7nr3vL&ld--y7#ihd=hMSd*!v)dy{02r9yf$@U~Zc&!hC} z({5)sQTH@#PrQTfriEU)UYz9{yZ8`q`guRdKK8kurt7O!bGa>_x?VxcWidak-3wj$ zTEDCH&c3=I-45R8YSyCOY&o5Y%J$i5Z_0=KcX1rNjZn(RHeEGi#DSkvNkJVRnenFW z{g$71VzVLNqV4k6+aQzN-zU4ATIqeP&owo@UM?3eb2?dFDA!MwM@bHN%CX+WHufob z;97qs@5#O6L%Qu@s?@jUw4ZuA&aU0@`{d(>ja}AR*UU9%GQZ8&60b2nucSDg&U0t3 z#{D6Gj@0Qk8r*hl)#;w%N%woXR2rMhasJAk5)l=XRJ!RyZsT_`^`gg-ba^K^c&+Rz zoBY|V;TzXVhgGd+H^s>f`g*nf;=S@A_H#$I@G-TqXnY#mW&57# zh(%MpqMB^4dbizld-;sK2<`BVJC{pM?@T?sU)Il6_x1B9{crF1X$hMiU0tcx;rVQ( zI8I(eAGMy%$2I<5mL;F|&%2>6PdA;o(8}iX`Cht}+n3qs?3}xnj*Ca7TuzsZ^=8KR zjWedds@SX@i`(Kc>NURY?yVVO(A`!#Urajte)3LU#lqN?syx4a6}!7nIX|uspOLN? z+A7NUaN?lZ+jMks*snESw;vsyEhn4YrmrfZJRP_DwPf{W-<%heb@DelbuXv}mvK#| z)56E(eT=r96|FmW%i{Z;*~ibr@M2p!SGak>S1nxb1FtTwugA1H=YBTZ38 zZ;4Gd^RE~wd(3zXJY2`awOFrg_wZURnzIAnO_KcTt9$_KovyR*p@297y^jU56%~^& zNcg>7T(85|wla-g*-j<>HmT`pmp5b6y*x@^m-0ToJI^oUL-qN7wQtqKW8ZtI+Pva+ zwa<8xil^E8VQc!`N>ZOKpQmxp?lz)cIBe4E;dP-aTj%c2rheS#l~(f@AH@E4PezAp zdiG3JccaN+P~To2XdC(0*-k5WqWZ1$2` zoHOoTEXhZu)Q{zZ$CpZNF#oh?KEPUjt@NwSvisYiTV~HqZo4lP?KeK{yz_D&)w(9r z93K{&{cu-&jWTJoEglxncO})f-Fn&$ulw&fbx3cn_870dj;xJKyJJ#MW}l0jSVjzGlNT^C2VgygcRgt$ci|G$@Qpg^Wl=>(BaZ{VVPo6~51`^WGVmOeV|m;I_)w zRpGjOEMDH%9^AL?bXpvz+4g)kYS`&{nVi^Yc5OY{N;@9hUKOSa=D%Gz} z*P~3UQjGlb{HiQVsl_5C)g|%~)A4+MdRF+Uci5CSk1jXjPkqNG2dOCM$6{#wR}CQt@8DKpVTIsxbEW<&s6pnJ!|v4 zOZs*jztXn3+9#)}{HUaVRB3;m@7yOMG}GQG&h)yf(Jr^16u%tRa;?4g_qOz{`{0@u z)68^NvEA9ewOlKu*zq%;c^~GziQCWo_Au)dq|XC=zpec4A52`wvYX5jejpa)v?S*Y z60jpDfh3~f>F;poza*6ACh@ZuZg{Z=PzMDOjvq zusjM#6T*Q&%HlBP?FV`1RX`QS;h5?imOBR#$;wU8oYVBY0%Zn~#+bfnM?5*6@}4@e z+ZHg9mWB^1eLIC@7?>6>Uj7-Mf-iOd;PAPXJf>LCcQZNu>8%4L#<|rEzYUyv3%l-w zFzjtfEmN~&$LV@YJ09hK%q}%m-7s2x@w0Zx|DvfaJY{n&o-1sV5U05+kE+r7lJdN>YK#W6jcqe4? zMe@$c!-~kO-m^>xU1}w@$3+2vEiRII%Yst9oZ+!-0f+8pRBzAZqwKLLN$+1fKvWe*T<< zU|VfTCy`}2t~ZL$+tFJv-ZCMsZcTBv*qUl;h+Ws+9<`X;#7+El%_mS34|GS~&h{8% zP-JXKA)p0a+Z2gG#*RGy{HML&B0~yub~&!=))u~F>>2OYBl4v61=Ez;_v<9f(A_aQ zLq4O&eLpNN#TxiK77iwu+tY``Ruy6*lD9h{-%Te3Pi|ehAXW>Hcn+Tw0nTpDaII$}5TyF(i0AwVsrRXph&quEv!ztoCdbMEUfs)jkmu z?tWG*{j!j2tpqfVOqQGKBALS;t2ffn8cX)klu03lW#a7T(pU1N$k+77K$@v-m7ib> zN*YnAwNy;~nanD^z|0V>HXnQ3;(P*H?5?t%gKgGQquUwe_y&yFrP zY_UHvUTt```tdrxiTIuw?|WuA@$uVn1VP~EGo`+=OYll-hoBRzvpUY&r;-NoWvgf2 zg}e*7JMdiCyj26F)%noY&R2qnG)CE~xVu1a|2;nOC^&i<+4|tcvgHh2nz`dV5cIGC zPk(3{JL1IP0oC+LZ`yTCqj~B+r+{I^KgOP|^x_xAi~e?*iyT)?H`3j<-_pU0=tMCC z{e5!p^8HuyHU}`yDif(2*KLF3xvCG3HLoc7P{6EJed!p#HbypdD-(ywb4P(&u~B!f5D5UkXoJv*>w{%< zd6)z-8Q#XQPfb_K-Ca@&RO+Y*Bqm<8-OWOF1xWW$~P}OakClJoC_&p zqRWQ%D&{QH#>r!{Fa9v-38XKRW?+n&%Jug zrJCsMhM|F{V{BfpMBfHAUY-U7-(UW^Nc1BF9GBMfu|(YK%LF8YyLjUhV2z{Om@5Jw_Is^U4e=9*z#ByfWFSLB4(5a{Z~09)dTyZxNkRW`Zb z=<)U5LJvJ%zQHCxU*(sy)*4*nKMbd(8Yt8k3DaKbIQ!|d`qhkvwlOdCWwq7*DL!MGM%rpJ#hGU@T z;35d;tSEeW@ZZD0yb278AUVS7nF#i22xPsl7vyC?6{^fq>ckeFD!9tw-eRGPjp4Co zC_56 zA%`W}M?^bScKhIACug3Qj?zi_(-{@A2*GFrbE)Z@$#$m?%+CFr@x0c13i!sR9C?d6 z1c;zjL|wd^C>p(0!!^8~B~KH;!_x$@dod~d?uePR$WL!yT+0qfOg25}{ z;+l{xv^jl+~ZiZ0Za+rp$Uxnb2`&EJ-L0 zXQ&KQF@ZrQP)Q?AS+}r(yM6;+{|0a~UTPYZsw$7~&Uo~b5x)Qpk01*Oh{7geJ$Z`m z``3-Q;$-E)M3RcE7SZ0`xNnGew&VzLo_AXJkN^?Hw8u9inICw(TRNXS>X#>>Y8?GY z9d5#Zrw)2H#GMDZ5v`<#_83|RdG3f=?BZjVhb#Hyo!aW8=}WhljSG&bR!&ux?EG~H z>Y|&bNq(LA=#Fq1%t4;2GW6O==5DG73BoT~7JIsYyG=oE4&dp}lyGkOKtX7ob>AU5 zAdMGTcjOcKw3ty*RlXBY%$5RtGGQ-mD@PD$wt7ba<(3d*Fd9j1q#TmP#eFsyUn4KM zGVr`;=s!L)H$ei3J?K&QJfEhO+gc}P7{Y$GJO_&Tr8UY$qPnkAI_N>rVr2QLMamS)Xiv+`K*tHMIIWvI%RO@=AbwYExoV2VZQ=WK(<>}_D zJN1NX+kF?oJ#_b3hNK(637iq?2!q`^+xjIw{eJ#@e|5EK6lSWyv=%(4uW$&u$1;K4 z93QA_GfuB%SG&lE`^?)TNlrzo43&I;IWfMqeNb~2TIy}7IZ*z)buXhHc<2>rf~E-C z!Vx~EuQ{rd{t^BjXZ~Apmc>xVD-sIxzWp&m-tWWyuu--*c|-r)dz zOqS5WJ_Jz00dIW`NLI7n{4w>n>}>_b@0?-uBtD)uokX!XRUeFlNdcTtj^&}1x(9lM zP57GC81Y4X$(Q);qbFV-=V&ZlWIWsxZ^-gbBdwV>5_3sBk`{bh4u}n05c&K=D*IKk zE7NB_(YsGRHMQxWtw~C3!{J5KrX!-UfIgZ|QaPD#z z_o|kq5=MffzQBRJQAow%@hf?7W1xB2Ef#FOrV)@8bgf~$RZ;AB3)uaRgFUE|as9mb zDZXnPf7b<;;!7(EH~u2PGtfT*@p;K-(|+n^D_99vpgZ^QlywqlYvYqPP@t_FM_=ZT z`}3W^dCyH($AC1ZdE(m>5g%^7;ek`4MBQjT-yEEfYn?&3K#BYd!RZZK(b>AA+x+OT z8HrYfwYq4rEXQFR+3p{#kpF;7|4R$;JHMJQKM0oRfb#&=2zVPyR_rnfKo8JtN_%X> z6GI0G&v#&_fPwnE*Hw5n2hXRF7ycp>NJhi!1y{}&zm$-GqzfDg?c;KrqU-+Ylqdpz_#QUuB4n@}st zFIixvNxrVN5a2XHWgA}(pd)@0gMt`jp6yx2XuJ89j~^s?^3X{94ESBBN%BS>;mQqu z1U<8_EBXtjaGj*9V9nWqf5EeUM7Cu5i6BQ67Yym+`wH~slQl?eOCk$rROw90dCdQ; zBSZIuPK#l8yq-A94>g6jT??fPnxVO{A=;q4`MsleL6DivHgj7iHun@R1&x;%A5Rq9{u`aDYjf>XL2l#{eJzkMS-|5C?pLg4vZh32t5a zc(a_Qz3Mw?nyYB;!|#JmP0L0f+rCn4MegAH?hg40zi76_?`Jmn|Mq0p!ct!@6<`;@lpQe)MIZV21;rjTvq!B!ye^nJd*B4c3a!VQESp*X_ItX) z-$Yf#A;gYf07t_pib9h+@bo|VQ%&PFlMsD`vW4_Y!?Ni0#}!D38l2DHc}b5Fht6k*KKupo#6Z+`-;w4pf_|tp z7a0;Ea!;MT=klM9n*xl=HP%*jU5A{m+M{O;mP+I`U>zM@1k{8c_k?@>_reVI*@)e~ zxRF?AV3)unmDFc$Xd)(t0Mk9%^E>qf>ga!&I6(vD0fuL2z5X;~fdaF3VB#J0vD)Um zqL2WSeph&Y=k6~PXpf&IIQ`*DKOM`mbgmAIcLG;>BCk_%kpDjKEdp?TS+?bv5F7^{ zXn7WqQusHI|A5O@U4_1XlHI(Bg2A)W7+yR!!Td}+vwggg%fA z1XVugpF(+0!2M6365c-tT341bgvumn90rZAn?{24US!pXNKLUT3)i#_Zn=(#0HOak zzYKnRYG+;Ax{mH)eut{L7y5YpZv4zu+z|D3YmMQZ*A%DjF~82Vc7bjQD;ZW>B@HhB zyR18uIluJujJd2YX+qlnc$xrFazL4;XE0R0DbRZfd83j|znhro34S0$ws?_>Knnzj=nCYOy+)zVmZ#UAwmZ z4SkdLIU!AK?ns8(pi$dq5hVE#ug(B6(3y@``bM)vh6n<|mFeK7EZgt%wDS-Czbv!D z{pJ2v8zbT!r+(=|n0{tH0zvbnCeeJC(y#EEUNYzU1?Ab?)VHl)jbiZRRT;F+M?63> zisO&xU}8A38rHw_>7J)?kNDm{5t@%LTKr6tMkA*|!+`L)6Bv_%tI|wS)M0sNuaPm1 zYHD3cD#Kk+zttpGOc-9j7Mx|>Ujv)TZ8ciTkNLoIcN#IbsA>)s*A74kL}W|o|8wuV3xlSdB?&?O zwnw9iKeBj#(P#nJUftOv7!1x4%dn^8x`CcK?>0xX&*Q4Y55fX>-37!lNf0xk5xCxK z_{!L7e;5$nuf{($1ys|g&Dqa1a1G|VXnJ(EZKEheq4uYcD4a%eI5E}xUKiPAD$b$+ zf$)LR<&x_!e?c;yNBeJTk4I7z{iFU*wiD+5+0$gNg4??1Up5-XYSugg(B%ma$Tq(X z8pn|`1k0t-8Ha#_j^rQo0bS*`_bo#EuNZOM(DT6MQ}lmljs&=VUBmdpR^SSE&f_?! z5qz^vtG?;h0r|bD_=&gR%M|h)EOlSn)GSX~2u@NK?+M0{{p`VN(EK8p%CIiV692m= zKy0*G-tg;lH=zMLLddND`h-FHfiV3HHeWGvyw`O9;UHv=58(0$@wWna`TZ$cN+Uu0 zd|wvZ*Gc@J+(9Fl-ZnjEhhzu9_vW{ZJ{ID^dA_PCwLD`qV6*^F*6tU>RoyI@WnHnb z7;~@&mgULd`2@5dkBhkOe|P{;p&nM?8ON|;9dXzo>FV?0d{Gl>ReU+CeVLbSuj?>9 zsh39-PE=2j*waM9S?N8m{_(s;QY(ed_x9Oc1Ga+elcIl=d1G2hkh=$Tud^=TLGN~e zs8(#>?-Tr~O(%6aR0eqX_!!IJDE^y|VtAFf^Y@oAPSf~d;ctJLe_WLB1Ub+kL;W!1 z2k(j?b5wAO4(Vd{&o@ggKMI8yTz6RxWk8hoLI25~%Y5UG{5I1=>mvX^`-Jn&D$t`l zP3KUi+Wj|ClXsp~I_0keQN$ac&NHYkdNFmKWD3Wxp*kvxA_|`*Yw-W6H%TBQa)Ig` zn;+j1bgAq!#MAZr#XK6$h=1<~(uBS9u@u#&wB)QD!!ULSjV>9~=j9Vbp+r$<)#{zP z!714Nc*1{sT+Mx~DZH}3y?k?xI;#i$?Kv0&$FpjgzO%^hk9J9*#~hsHrYik{aadZ$ z*c8QyQng9?+1r&e&~j0Q*e3t1*L(8=u7cj5rx*l*d;O!U@cWqnQE~+Zcso|NuMntd zB-OAs&2wEwS%aRD1KA!iV9AItI-uu3Hx{5!}i3#^RhkJ3GK!G1q*!tve zFRpp#1op=k2j0Jrd28H~V1o5s0NQW!Jh=gSicm;L6EUa(+mmiypIeG%r}D1jcRoEm zuIIg{<3kqU}e|E*OhwXhW^;JY?DG&@JdmP6Z7~qh1eg5hA4Pv5n z2?J4SGro6yI(6SP4F3E5*!|A*rr`NfSOI3h@w>CcKt5F|YysnmknY^760ZB53pKLz z0>EbN;1_T*JH7yX2nd?M_@^I_*P0ST$?>hs<}k|ovHL7gO7Ljvx-+V?t`nYkwY?VCW@Jh=E3n}c^X zpQN!@&%$HTzeT`t`Y&ZEs(W2`9&(&NC`Eq20K?-D4AWosyK~RHRH$sVVBlWo6_^Ag zX?1=(orQ0|!ma}F52o-sFG-gg(=Y%xK*+y9w?HuXSpC~0-2)tX5rTK;k2%gQ0MG~t z$Z_0*ankNl3_L6AS?%~eHRI?VRO^)>HThp zq2q!xw$-4oN8)#VCrRpL&jGXLiRe+AP%jR8fLcF&fm?|exXK=(mFM5S@@IT%k4Wdm zoYwC#TRGa`8Gz?mpzbYRppDn_>x-f1YB2Go(+|R=-@}{B&&y!(9?TrYWqET&DJ%mu zkt7QP>J9M@hSd3HMw%-)G(g8jp6Qr_H=yPv(OMBW~)4 z{*iJR@WS1`*YTx#K>~r3r^tI${NJocS_6JHf{ov~-#;GqG&JE@0;JUdX%55o*&1(y zm1-Yv*%d)&VVl@@dmZSWxg#7;LD`x+uioxyKuSkAQ%OI zZ9#k#ZoXiZI)Bvn0Qz+^@Ic&UA*g-^$L|=J(dQK!O{4s60)o26%itp84`62RpS-SF z>dx7Tz~0^=j5jS$A$GsEU*h%T%_d+6P#`M9v+O#lxv9$XOVu$SAD>)Bh*+Ch8P+o~ zjG~Y75p*jJsgI#=`KG9hDmu+VkBkNfwa~$BS=aGnNG5~^{XTqueVi`b;U_qxuYozn zNKZ?y%M!G;cR&E}kAF?;)wR!y%p5QuzV1oZEU^CE2_qDdZ<{cu2Pg_mqBWojVnp9Q z(@q-Z<7x!q0Wp=TrpeiG!h7Mm6fYMX=$c9KU^jyrTcELcVW3SEATXFQJMSM9cmZs@ zie;?vWQyO2p!)RwsRSheR!#-hlL>TlB)7_qAQ^Pk;?q|8XAp$t+?p0G*={-rvKYF6 z0~i17IWGuN(FkxKXi7D74do03NWKrldFtJ(>G)buxRI!?pjG9teNUZ#=ala2q6sK( zVm`K0?JGqixf0luV%ahu?`%X!2lU<+;L_ZKNQzpS^j{L?h&%3^b*81zAV728+S1WExgyw+&%_AyMBqzV+;YB?)hSZsm1^QL6ce(^W8N3rtFNM{s-~rebUX2%WrIEj7S(Ff`+Az&jdOGOp zWQ=)7?Gt+*bnn+3k;Ur+QGX+YF%gYcj8OUb@IR9DLA^;Le-KDcgTA!A zut-2mpygJtGZ5tSA%Gj^1=>zTc?LS>TeRwlIDsiBqk6wdV`2g~b`oC~Z0;ZU;F`k4 zQIuV!eIucz`$B}KnH|tEvgJG*m)nikm3OuwGrF9It;X=8a7DnpPK)g+1-h1K9lgWE z`WzHwoA+(|F74$9rZoI;imi4Lr6;s9IxP~pcf4VOBm{Sl0~**0<~3x#HKdZ|sZIl@|?d}g+U-8M%7tKZupifgwW@N;I74^%`72;j>waYwuq*qBrnIKP+W zv}df;sP%%0vOz%Y%AWyev~GmzPf0zbZ_5jQUDG6qZm`SD)+aCoSffL?c~M4Tt5`Ta z1P+E5Qr7|E*kXUtMa6-(`{&Zg*j9aCvU9PW} z5MdvBCcAjCV1s1OD~w}BC(07R_t&DN%4|mC=NXxY0T3B>`X&#=Bn@MMJ6G4*FVi(jrUE3haGo56@B5aAk?-r19-R24(&&DX+_$NERQPEe)+ps z6T+y5YTu&s$z;AeX7ikEY>r=5!7yxIydxN{nGk;}fB-lw*%#6f zf2CH2i1#o7lEvtf(SYgu&pRA$jvQvLW-B=)bXTR}cyI3eBqg30m_DulX%sNLe`Y`Z zwh8DzO?KELe{0fZCnH6RjO`Q>E)sZ<=m z0X=w?JkS%Es5Xif(mE?puOC!iF($vA=o_>eSQ_0hK+8eo`f;czr!_!#@UX8x{F4P;Gj~0vw&}0bpD5d*gkbOoh0f^r5G0pui7MhhlJQ zWDC?`f&bmO-e+nZNYWk)UP4*Gl9I8#z#BjNdf=rIjSy6d?J~^LT9#W%J zUg1%2^fCeS;O$lBfAmoUulolclT#NAL8kjfFl8ctK0S+=ap+V0ZLauM1xXS@YA|p+ z49^pK3EXRqF@%Mf1VZP2(}6>#{A&0E&0Ycb_Sy*{C(AJRabkGw)Q)f?-8`omcAgV= z!A`8{GI{&%70LLl{uZRvmKII$g*Wf{Pg4fg4$dB5LwAjwXuut|S?O6Gk5hbT0quO} z`O5#^$7IB*o!2uga7Shf%}Ea`c4ICTV6GAFTY`CVzc;UXT>Y`>Q&jQsG*n_Wd_>xm zvWkd|j!D30lFu)-Nt&jyp8nQ3dcEni^_5PgJ*ur!#vLckbFubOYd&L=rfSO5XE43;M@)brtEn&b92_0b2a=$v~-El~eU16~aY2e27of zUqykI5%EvPs?(uv=~Ha= zP9|IAws`;Gx4A0vBaZmB#CO4E{LJ^*14!p-EidtSx1T&oqUdXSn%31};;K|DGqV>J zB&2vYKLDFe1@z()Okzp*b?5+h&9$6o_(TDXwhYIUa%skC7TOb;@z^)yQXhFtKd$h( z-!p|VDIoI?#+&h0K$9PV^%Npq_IPP69@suU(_q%D58@{-D$2yxFN_A@^ArFF5(L56 z-(=NlixLd^kvhTgHtjsS_W^zes{BsgkB@&z-}jv$ZhMh1+VzoumI!7vul@=)qG4l= zFRcoQ&f=)rjkh79F-n&^BCtEOVjFlfdz3hj81k4iJu9iokqpgOESM056~GMj-mYo= z?O*>m&o_#zZK1*KG{ZWISWp#fFXr0?J|HnMYF+nhU$j;rpe)ZBdjG{frad^}Pa`%z z80~-X!<>gND< zBBe+`I0;~*4a8sGZI(1pw#Om=Q1lUFZlF-p@=PlnW}YlD4c~8=HGYk&-KNZPjEGgL zX+r&3?6PAY)?ho37e$Q*X*lR=jbbtn{+k0YX<5H6;`;eo-+S^$<(*_48i-FLNlJ_( zS$wDz0Oo?K@k~_!)=}U-nsA zaa*(zqin_`dHXMY_>IQp7(NI(yhr0a8l-t(ary43ttNa<31sf$^0JJg!|f@Ct(pi;xZej#T%osF>bUQ7n7qN|6?v$T7rsUD?W zdN3)wH1i$QvU!zm6(Lo_Z)2z8hQfG~6CSPt|Hc@kNeCceh$`kqUUJ!8*>JL^ZF0Bu z3UX|LS4L_+(S&CP3(QPGj{kDS0BUx^h@}{eweUL|Zjp=PrmFHcCm(#1fdM>bai^?) zx(Z3f&R0!6{yCHu^+2V(+1|hA92okIGxcWa^M7-Lj!}h?-mhbal+ovrnK*uGt|K0l zC(supcN>xcZ2 z;_oN?eP0#Qg7~|{7(13=`~UBN{FgCXmm{(%`^?NyI+|2@u8R^qIQevE*6 zyv(C@audeahchZ5M*iC;$uK4aI6i@&_=zCE;qx8K9ASvA-R64oJBrGNX-}RPGG1y* zeUqogupqx2`vh2XERQMB<0lY3r!U0w>vR@VDf)f>^bd4nZ6$yA03StfKss<52k}}C zN)sF4kCsSBNYYwo_vdXMjRv0IkcJC#VD%I0`=d9bG2-4F@X@w#E2A(x9&Cu~u=3{q z`qf~7NIp+&6Be~H#0cdnm_qysx~-M>23K3wGe_t1F%q$&fmgoSYI}0dfFgDRRnm=+r%vrqe zT!E>>B=#az4G?RJjy4*HO*k2JW=3s5bi*X#)B_Onwes$cYBX1S_H$$1`~%CCDec1S& zCkalQ?`d}6JHe^JC%>~+v_@FCOe09~&*y{sdOv&_q%tqUT*Yh~L@?|&R|;m-!Nz`% zZ%Y99x2lqbM^OYuZOkfd{9U?r{yh@Z{b+I`@c?S52y;cSWFU`H36qN0KV{17b449z zo~Q+L>ar_-=wb}NWNz9Vhg8xRfy(j|OHYVG3QghZv~6$vGma#Yx=Y|Z0{^xXu=3$+ z44tZoZs@1c@rpqH=5kka7Lm>UJ0C*uow`Kadqj0j%d)k9(9q@yuiA5SPQGzGdE?0a zStAlI0$m!z%pBgU%pQ|Jj$x6V&Y%Nl=Rw|31h>`@M-l@#UEQ8r4$7Jl z??PcpL*V!r2IX4Vuk{i`^1^iv6aWrq81h;zV>lIeDp?6W|D06fy2n<69`P~z5ZdF*dqYBT z$S!P;%7lI35CZmGjur((uOd<{&@PRYGNX31*gRm^KG)4P47aTgrQMg3x3hMAM>v|8R)JW!A!caM=^#9UzuCb{tG4Shr?jCm1k6 zZb3in+x&SO8N+x)G9GK326#EY)um!Hm+k}txqwHSItlTeI3z&OjzhGB%Vn6R-*4o- z=Fs2yjhZXM;u+?|8_%~yR(srwg!-xv7BWj>vZ!N)O8&fF&o6}<12o=%mzS9*t_BiT z1j^gfS~K(t@@!hOc)L;A@I4N{yVZb;k6L%GU0tVCs7B}MTv9KpAdfRVamPYIISUQw z)MJgSQ*q^3Z+GFk- zd-!>dsw(#f%4QP)qa1&e*kryyRuYEv>*YwbS2Gd^y5foWfx*f}6{U$I;L~;o{F~zJ z)I1~NP-^lUPX&QN%;F_gyN&BA-?qN1xw7Xg1Qm#b_opfD6C+d~ft`g(9tp69{gmkm zuG`k{{A**|fBh6h!(@Vj9H$~eFvvBJ%}g5dM83msp0w#y9h=HbdRytcRC{cEXZy|D zfDyeQHpR^^2}9fTTqsC4a8AHZ62Ju=|c z_1E*7ordobNqS_pT9osJ&4c0Cdd3$9t~hoa4P`=JTI6(2!!MlX zbmhlGb916yN2b@ec+H3;t_xDKW%MgnOgTivWtYN8g+VQg$MtSDkQ_r@gvuq5p`w?02(qK5Uv7 z9PBgOomuP}qbB37EWtlK+Z&F(;8N7vOhR3RZ_co)pP^I(q`9q9z{!Shpw(rGmaBv( z_p+X^*8`s?fI*)vO8Bc9Ow*}KgpWA-KvERIJmh7bjN2wRIU1M8D4eRM0N8zz&}TzT zxE_3=V-5Goe)C50GrPhxHgT4z0ZA;Au%>zuB`Tw8hMav74lA1YZ^pV>-EMsaN&*PD zw<(d12YM5dD&@Ft>;%cf5DtxUuY%K937n z4`^=u8sPoLhvf92XUZ^waBWgpk)BNqMPb-5FWW+nESz&Pd#hLOyR)3@k;zh0fqZCL zVZjl{^P%w8E1%lyi-3e)we$pwk;-vjs(xs-z{NrS^ZW1qxcE`zYvxTsZ0ATV!GC3}Fa3Y=F1dMdsjL(|7O@Wq$uG z3sThv#Q|&2;A{E{Ro7vB&2f?kwjF8Es?fVQW8|$f=96p^>J(=Zn98MG%`$6VE`H7$ z8w-SF=rD?oOD}@d`bG9Al1+2h;K%4Piumg_av^+r-^{_L4G7RrT;3aWZQI6yy#T_+ zKzu>S&<`cq`Ul8H)rC3sexsV)ZqQUbxdJKF;rL`-r8VG7_K+$bk zMG^QfG<=(^EFH94H!jZ@#^*N&X>hLS61KWvVkpk*XH zO34YH3{ym9sLSgE-jj2%WBLJgJ@C@uYqEU?D8Rbqc^)Tb$Md@5DsFBwFy#6Ekv>9X z%zVE?raC(TjiH=enfN#lWn0yIKJ7=MJ{&=Pqm8JDO#)tj?&vtis(p)|Xi428S=HE( zdr75srRC@@F=cW+y6$0g!>pGtiqdv1l0~dzv}>( zFx0_-akUS>wJeTduA}H}q#a)YekJRV766i$yLdl#a1Kfx{uZzGciub_zPU?_3?`C1 z3vig*#UVtQG+9hlREvwTao3fo&WWEa(GONb2N*-cvAUIKojlSgScD=k3~K z(_GNfp1g4G>k?Q^F0v{swvO+z1x)2}_MRmEJ@4s9WeCu+&T$;8pu#ffLfIiId9p;$ z8wcUWkSbhMOjhe6Y`;$57M*9+UUsj1urc|V&4O`6h0Dud-&R}(y3asDQn#J0^Xt$> zVdYY9q~)QX_)hP_yj!3$0T6v6XF9+`GE_XJfA#joLRhxl|WbVNfCk7AlB}f`%S+{{lmjzJ_JguPQ z)up#M9WL$8B*?=Q=fyHNm7WgMfnEdP7`whWc786Mo%EpYNx7{8@{g`sL<^g}gSdM} zEk%2Gg3x4k$t%kf!FIC)_VeH7ajd4mAi>+Sm+fb)_{eOZr}9)=?p2@^%b}Q^EYCuR z*Z_d9=Z-N|r$+cB(U*3U&)8xF((zE6KCZw?zDQIq`sTgX=50+C+wqZ>4IQFAO`3Ro zq)@$2Gu3-wb+Z)W5SQmYB9KBPsPjx22%f2e7LHWM=b*b-IgZwtr`8QS?$?1yP%C;A zZr_emAFz@hsAK>TIy()$68Ce56V~eDCO;ESbLr9pq%CRDTEW+&T>oSItQat$zKlgyrL|>E~&}{?%^>d4@(o`tm zT>O=^jQ-`DXZn)zzU^n6hML)JV??T`i9gBP+c*wWDzwnuK=~X=z^qu(Rl~+f=bALY z;~k&em0lUaztx0a1ga@NJ4r2kmHI*keS?oHmmK_V;tId2Zq&<|Znw*UmDjI3CZ z=pI$0wd{i4!-pC5)FY~}i<(Bl?3K6bn!9_I3|`Z zpfXys7mNEk4-oYIdW)%TpV={l^|Oe4uZ)dK_-jNRl&9vw(b-m7~V*y)_KGq-vakGLh`-21U5*k~G^(=8>@;_JhFR9Flqf zEGKdE^AUZs)tq|D>-H4D0gACGIcUaBUTw2FhypoqopW0dR9Y#u zqPmrk+_gb8)JUcu$46I@Zd#!&KEjvQ@bZlv4+(l0Pt9i&Ys0Lt#hr3<^$Udr)EmLO zm3bQ4qt#`KBtLw62n!TNanifhL*)vu6ID-DjlK*9Nd2lg?b`;9h~EQ6+b`a_JvlOx zsY&$Qj;QlW7nfrn0+9eM&zo=XPS;j=kj>ReTt>*@b7T8T8PXH^m@cy9=7D@fM(3qI?nidVa8!8HIy2p1mzAu` znij^2ozN?akr!+A`cSYc5}c%nOddsio6Ew~w&!f=it-z(gv+fT9N6A<9qji)+?~u+ zC2`mx z0`Bk$@+R*auS3lYw!#dEz%n9$r;e>+uUwKqMY?a>HT>?{)e8UXo96YG#PJ+R0S?o# zrzQ}-G*xqKfh59-urYIhN53wjRCavExn)hhEW53M(tUuQiYXy=zvzl{If0Ypj)xS* zqRNu2jY)_)JIq}Go=Ri>n3Mb(F;HpzCaYSFo_;;|6PnyKScXX@%~?I?!Qr}Obe}E1$+8W0`sJf) ztyQ+BQRqTn69n5hPKMU`)G=?bbit-|IKyQEd{F6c02-Zzy?rYlAk2Cl-K2cS39B9ZjZfwe~^YIwT*19U*W#AsK4y`V_{Suk* zJ451Ej~DXd_aWn5csC4zxTOMne%S2NTPOQM``h#J6&V8#_(VUwGD?@jD_l;*!ZRfD zQ=?D<5XGzfY$)b3n#Vc4-MA0a{eCvT2Np@8J?k}+13+;zXL~?+8D=klj8wc`n}yS{ zW%r~i!y?R$;=W#C@g40LV1QYkD4r|k7={2dnXw@?fiH;Hct-)aU z?+c;}-#*S=P$#fU_#LwLJ{?p<-Zn!<2KJl>4rS|DF@>H`47t7Ixr=M3q2EX9f?_k} z>n9SuGk=g?E>x4js5TddPvR`xV~(&^XRDQ}y7B<@DcA}d2C&|npP$NzqyEUDve2G0r`nM-%)iYrI6~bY9x}Sn*{6I6rlRA*zI9kR27jo z=g*8qzwhwsoGn#j-%Hn%s7BU~To4RZGK8GkpD#s;M=x+boiM5PZd*D^XaO;{v|f3F zW5tTfy`b7e{G#Y-!xPc+gA`Wk=l0%GUP;J|)x8cS{0JYQRUO35D`YXNo|9n!195+I zIyFc>^R&C_rW_oj1q`cln*Q->%9(mw=&}y^5O0Vo27igQ^Cw!X3}-pf56`v8)_x(Wqb5$*f*X>F0m*n9Lzu z9Ia486%B%z%JxYCJzaBHjeHjiFz@|?Ch*_rqPxWg&T^aj=ZlxepEfKM`tGrh4Cdv7 zgcWT|VTZLIx`RShy5e@!C(^tod*>2t z$nd6jFY0>4ay%RgCOoQHy4sMidf55X6~v268W@kC(I}SMv3XvOORFz8@or5W+(85M zYoZap?{q)@J15UJs~tJ7;&Z-MW`W(f zb2KRzf?9#K=ENf8fI7nWb)t39i1=WZD64P+=YxjJ${2ic=fC$nXbi&)Ip?-KEN*ww zJ@23AzL`iv$E#krubu3hBUWV9eFdejpA$s0f-s%j>87f{)#Fb>w;y;@UKkAEO%ZNs4Duo|`$I`)8GQ#z!!++Q!Lh;*^@ zJ}-|A`==)}0vFe(oAkV=wGJNb^Xu0)fpILuzeukN1V%Xey8*euVA3X**!^M-+V_?a9KtY$wlo`1bAb>fbA}m$hkqxh3x5XUU*P&Z<)|Cx4E}HK8V|b z32dMQv3aDTG6-yId9kql?>;Z?(4Ht-&j3g(#%w6A>zJ38cqvBT7(GZdw%>dVSJ!6v3yr$e!9jq%X#-C>etV!ZkYSe7kLut2l z{gA-!Yh%cVb?3w;%Xtbj1@hNUXP*-$Fxo4w~E`Ntkyv*RnD+)<@&3OKKT?fL^ul(P8&jpkPD4su)ENJ*!tzDji3jzmZ<=P$l^Zs_tZ*D*#qyeQb-5@ad@=`Yd zW)W$EN2lrQ^ux8B&64}vIiL$03O>>6E2mBV?`|29ai2QaoOFL(7t+Qj-71O@Z;A5# zlE;+~xOO$6_k0rMU0mR=$zh(?&HH-#Z(avTMO9X)@(n+d$Ji(L{WGy@=hsV_wi$R( zn?zPX%rE$3!ieAI{JPRqK?MTqQSJ5A#TIOLuSEWxwa{@Q14ru4x3IJmfFncc(*G=i zOuYr21WWZrJo#IsZ)*rkJ(>{+2vz&+UcV7e=Tb(X0+NOG)l@7fht~YiQ6nY~$Jr*T z8CwM#Y(^itT_35#wmI&CjGeRqK>2r;3>OP94B!4&9B$xyygT3>3{MC$${IspC5Ibz>!Rl9o2{o+Z*-=6pzD}Dd{CQKJE!nj&Q4nk3^vv029 zPKDiXAgbF^TiVcUPz5WK1mP7KP-YiYg|2H{7^M5HlYcc8C$wK@yuqjC;sFqoLlWccpAe#yTFmfP*Kxx(-7h=zwcqKHE3zVG*-@@g^P7c>I( z`M+As7VLeKW7t<(#1}9?Pt#@YN3W>T7C1# zlJW08T$1{VP0zVfB~;J)GBc(p*Y>Lqwq8JS4uVx_(DkxLcHf+_g+@ zbc{gH@f=|p{el{P5)G2M1^LKfQt2a zWh!Ekd(=~%{(7g0l2%9l(8h6`KcX5NuZ5y%{2Y1oVX&BhqGQYBn?t~R+w!jwY^#?e zc!>0zXwzIrfz&~qRC6#4^Y#cBz4o)K^&Xde$6F5ez@W_#^J&lkzx zma+kWx5-AGoFG64_dN?$*eE|RyfA&|+6c}sgN!2I&-#K^8GQ{A+y#5g-3M9!nxV*2 z>Z2pKY9YJD5{oX=KZVrx>5Xi=_1jycfDJ_1NazNhyhe4+Sm16qzZ;%N1ymd zr#XZ?%3ot8t6>4GlW^9wD2iqpw?I8Bia`;1U8_#_g#0>FyP-~qcsw51%wNGwK_EJC zd&BW(r0BsPH;QXn8TR)5rfJ$Ju_m>v%INT14`Qh?-(^WZ=x>V1%qvUE;rX&3t+b$P zQg)tyYk(Ox?0Z=X0i;cJW!K4}m_Rt|l%H|kRHDB-BLoQ0m-DRr?3)Zqkwj`AvjEzS%Y0b6!ko;B9H zk|dAY872axrI_qnne-vZa;}(fp(k%)UVIq$M=xiv z`3}p{*3|Z`>LRjervbe!x=8P%y$-WfedcAQwzU4tf!h8B3 zo|6>!!}6zcw5)w~Hxp$$x;~1gr~|d52G965o~5)Hs}|O!vGPHrhpfD)X*_qk8pSxb z!<+xRCxhp^*2Rz%c&>Q}`3N?SlH?=r1RaVJ)5^d5_(qK`iy38InJFD^1<0ryq8;LV zU|9EZ+^;-EyLoun?28Buxm92yNp&>;c`H~ z;dJHq#l~=Ldjm{t!+t98aa^`#XB`gv?pM^kT?X<;<05EV7ajV^M|=oMgR*^dM4G0b zk7rSMv2$MO**Fo36BbEvou1R{UDB6}j$Wwb$?$OUW436v^WQ8d$>{al3lSYa{L5ri z)Aes&ufU~JXLx!{p%c_eA^}j6*rQH7#oyj<36>md%Zeh6TTkF05$TSJ2k0*c^LnX} zx#4#-b7_Q@F1uVW<19N5e7l(tJo#s_vZ_=d6D3Z?h}wfC@VgaOc)tX)QzSN!jb5|s zD_VT@1#2`3y>d9LQdk6~9@n4J!HX=t@1CqupC3uM9T2pZ4GVI!w(B3=apEz#HLIBplHY`by)kiSn%~r-N^^XYomqTUgWLD`-gerJ=_~UF@cYFD3t*9px-r;q6Law#|WI%V1FFVL#oo@~L%BXYmv_Vy|@e^yzXU zU5jhj`1Du8_OPeiC~+GDCCI3Tt=)1sUC?p45p19;$|JVLSZ#h>=_rSE?LA{^gcZPG zhIXfG((H$U`qD}WC+h8y55+exNHuGzfHwxVJiNUSdtY@f3weptO?QE6{h{&w zzsvbs&a53MJT9?tvnSPvS4;~-jD1YOXkC+7d9>=@uyB#k2io6SI1e<~i@Az-p7ty{ z7GIa6Ud*>9+9WQ1J-O|BWPz&w!hL?pUnS;ijCTd8zPjX)&^@J&F+7PFmIv1(!pNb_NXIiG;hH zm%&lc{hUG)=*z#WQ%P1ywDP(VgRf`k@hESrFUrcXdl?`UZIG*sN$RF^g)uk zoMK@JQkqV=dOlBxvzk+-$jsJOolpHj^&CD$F@kl0f+^o2BaE=+#osM zVN_Av;&tvrTNx_ghc}WLT)MW^b~$R&H$x4*gb)t3Uo8WF=^Iwh=$ z7q8&ZJ^TO+h6OYi=gOuX38Z+ngX|V}`$UI5dn>dd z-YFkTpisrH!K0!DI_o#smlMsT>diMLZpT5z@^7Z*$+M+Q=H}~{v#9khI1x^%_ga$B zmy8hJ1-&MrK4Ygn3XEfxr)DtpNWUuycTRqiaOe?(4?)p*2m6RYIQk$iS{dja>D;ZX zkHr#)#hAM8f$Bdk!&3NIGpzH)NErUs6g&lC*moKWDVzfX)~X zN?T=`6T>GIl?2I?+ASFE3o3}cnK_D~Ni@=w^^wd0jz$7;8IM{R0vkTM#curXgM{%3 zCqVde#<EfD^n>F(9g?ORZh*eSpPdixvXCw zgaaF*9-j*Ro;wUfIq?fb2-s5@V(3YQwelI)FIYOt?`Z&Ig|{Ra2sqlc@e+? z|1`&4zrU#q>2J8D?D!Lpnt==W3Rki>VWe3Q4D?NZ2ls#dxMy@W=q$oN7+u+8Fv;-U zP)*05H}%dHC{8)Zt1>DDC;Dl&pa9x@WiaL!o4?bFg=) zsmh?!5q@m}%-=5~CS_kp4Dk1xPsuWZODtBRmEud>ta{vdr@>xf9<8L|~Q;*seVs zd4Ph9>mAFK9c=N|RYaLgJ~-iQlm91lSPAXRM&KUzWjKK(e~jAfjC%3aox?n zzf~lSI~6vj29`s+J@p(ZbPUJO${jcEb^xt}t?R9IkJ-of(uKd^+&UcVkvEI2XWNrz z>lJmLj3|=u_N~9oaKDkNw94Wqder%`MHBI8wk@lk%jX0B)PL(K3P?2mZ8hD&&0h}# z?CdcLpu2H|+t?mjVE9co($HT%ju*>B_pCLdlf6C1bYd!OF@1l=TfAhSz%61xkCc+emR(K1DfybMS5RwrAKZiCamae`4o~J5KxQZhhSMyGZty&+ z4z09gwQmC{EAg%CG_+H906y>U48y*A2Cwz4C6h(bkeAgOKn>Z;zZcZ5caAycyHIl_ zGdR?)xsYW5)*F1~3FY=UmtCiPilyzzK?k6co2&u3cB_tbcQxOt2p1hn--hW2=6 z7WFf+7V#Z-#BB}M*N`XtIh{NVHkB(os4+1j`kOdZMRDJ!%c6$Yt3hO3PcrTm?B)UOSKucm8)zn(9S6 z$lTSR8Agkc^#)^Q;Z6xGx!x5$P^6TX_ z@_m51?_^YWVV5O%RffRV<82{7GVOa=1wif7vAx-c)V)B;V=qT6Y<~?no2!TxwGMO)VG);4pz=>bD&V!^Vn}rgH&ubw<-l)Rdr&QgrbO_w9m!mR=JmB zPQicYGSeLAfgW|N@~Z9c*!U6#aQ+Jvh{AB3gljPPECQxK2MkTW-pgvE8F!tkzx#ci z!uWpoP2Bw@S4izLAey#;FMp{E#78JK4lBKA{{4m0^gB-Y&CqGXa#{UE67R4gGSRQ1 zdn^rFp;~v}u^>s+(8LFj*+@pTVWrJ!H#{~Nb#VA}{iAiv(S4e7*qv@pqDs-#R6(qi z03Uzz;`lQD)z)4gPw~t#?gDw~qzmcC7u1R_5!slaZnVzPCaSfUd^IqpkRHs#NBd@G zUZ1}+`x&v3rjD<{Yp=Q2*CPrU7?#PDhSw4rG;6ay`9{LzJ@B@51APNO(qgi#5a>pQ zR;NoGhBNJew@wP{kDvn^`jIo^8kl6!eslJ>)-6teMM!{07-v;9pf?m|uVbuXFC-1@5+v z7#oTD-A%DzOABLa$izhm6LhBe3iP$!zg&P1_P;9zo7WuKli7%c%ZAd953KJOu`80v zY2N8EuNd743nx;i)y5jIdCtCJ!BM3tBlvO4LxC1OtBLStAuNV`$+nW#=C0-g_MYQe80_{3F z{2YmQMc=C@9=c$alzdriMP~dYif^aEP?}SO{=v7hGg^H40>$@{UIuO;ODcIn z6cwiroHXF?qns3jUX*cvR>iS~pprH#bhsPONcKD;Umv!^ zLe!v+G+v)bqd~-G3gFI_*fiaxkTZc6q2cDeo)_Gayv3d187z0?PSFDQ@PRLq(oml(d1*dH#GYm|ty z-#m5vR}BKHI+j{3~?@ z?XNzL@OJ5wAy}V<5B(O1z}XF8hTT5 z0`rtGG0m2P|ErnWj0`_c9Vu0pU}Y;ltx(ynkVTFMV)Dg+9A3A-Uz>$nR#WztHLx(E zfSSy@u8O~~m;b=7x*r@ydn`*+S`C9Y&Vp)dal{e=$=|2>c z9>YtVa9k^0KwfonQbD-RWIoH4>H8bGh5l9hha~znv>DeB$}hsB!FAC}1I&x3Rm)xeSX?qho%A@qW^RzWcdS@vJh> zahrPNKA?l)3aW56ThVkNR4ZzH6!`pRPKwk;tykhX#La&*qLx-KNx-u|@lGbC?PGlI zsh3oUW$2NC(JYqqLbaaJVq`sU>4^;jXrF zjn9qa4^(Iz*Qj1O$}C8`H_8^zI4|3<-{KU)`fcHoXb2!2!v`5VhXsan|Jmb+6sHNZ&E!zg9?Fq zM1ObYP-V?md&$rqZaj>f*G2#PHy2WjAlO`@!8pqnBiHhhLOa-G?;KVN+t7m9c|EU8 zET(OFvc1S&lvBzLXt4pB;bOoslhJU~wyO*#5OcHHB!#s{6@bbND^FUfj7v((43FAR zjkoP#le&g*GAI>YJ$j_r}ayPg%B|vVPO&rgn*Ya7ON4hd|0BEg= zd3zp-VH#KUQ_d~)MLt{ylkwWaGO~3TrMY!w^p(1O%xBy}$2*3P)X|}M;&@^#c)6Z9 z->7iN)9ed!QdHYC(H0qRiTsmHOw0PJT12TkrsJ&RjPEz=J~Ce% zf%IU*n(U>Ix(t%%x}S*jj9H&2`Vky%&K8{OUXZ~Uw{O&M`@s95gc()v{kXO_-FEfL z@rC3&oVf_BHelrn5+#f@h4+HtmhM8RCG4$*g&FB8_5;*p!`4Ng{rE**_-7+Lt0#)2 z`YwA0HtqV=`Co`-Fe9Wu9+EwKEjN-Wx-f@s)iNm?z6XBpC6jzEi6K5dBS5ZFko~T_ zgH^!-Hk99Pp}Mr}Q;ku3HswHk^QJRorf62~fz7MoC?k{qiXvBx<|tQ?XIqfzpQ{5!W?IU#et{rK;~8Xh_Xr)!$f4xC+lEhe7(c|J6JC4^I3hk&Ef z4~HVPNQWn~i()gsB&fdp!7CrDR2|rdGyRnOh&-+uRf$%ey}S43!ETzZ(Sa;>+%+Uc zXhxpbyGg!qQMRbEjS_xa4In*>MO@QBI#>9UcLXArDP8+QA#qq*{q7_RXsk_rd45z< zjd=uNUJ0XnpJNR6@Yi))X0`jZ4t{@nGw@Uum9f_L#OW5f$njexI*LK)WwR**%~H%ivPJyOXU`BNgE; zR?;um38L>EDaa@(ypuWP_F%Fp+QRqOa~Q$5CECH;k8DW8GFvB;wh-V$m1TDdZs>bE z%O*Jju9qMo8`)(B`Ke<|#y-+RbJ_-b-lzaa+`HK~CV%m>b`Lh?eUQvb ze@v~EC#$6UDxGmou)i=}#p|cxO86$hS7BdB>0d6-BlUD_p9goV)H%1! zQQhsrHT>~aY-oE$I?vjVd1!9pb*aA&jA*$bxV>U)#b0lban>yD^f5%oC@6Qmb-hy` zA*ncP3#DD<`mwqnU|Qx;R!H%sp#6P=#{pqE%c5{XzfZ!;KRi!+P%b#x;gV)HG-YXj zl5DA?(uj<&OSRG@zbC8fc9TJe(jc*wwwD{Vn9|n$rO=qC9w_Q+^mqESHa^)*oWx&K zYnhsGg;0UL(z0^^x7S6;0fxpu;cfpil1(hn91S_DkcK05S(}EK(R-41Vp5(N-ptxD$Hn2{VV8))Re$%Y#q-`Y z#4Azv$03k&c#5W7d<+Ya5p*-U@<|6QgZEK;6Octxl)-TE{+rz}^|HexjDbTCgwowb z$a9y;fi67gS(PION44jM`R(rj5+_TCdMfBE5~n81@Sg8OM|q8hG8r!W&c0nD>-?<% zj&jdD`ARGfA7DW0GghDV5c+;uW5?g0aZ)E3f zC3=orLY@OJiHI0CA6YE65+98I^Uc!d&8>a8zc_d>ufl}oSSAYHZlxPtw$o!W!X zL)2daW%3?RB=WmBPmy`m;S__i?)v6UtROdc$|Tjj(gf}!e zR=!h#2NohqoVwhc{So1`A^&EHT{MtMj1DWkmy4R-6+OSwFzlwjyeRCo=iV+OIx|P*0iOzedMQTDE%|;_M36sKvjlz-5@u-9 z#Ya%6<{^K4Onz<}hCLua{ztQ;%7u~N4A9;v+?(5qAj_2#FOSgh=EPoaijgR9^}Rn0 zFb0gQq&x_C5xnp{8h+fQb%4@L^N(Q|Y0!_V7Nn`;|K|LWyv}AXguG9$S(=aC4JWx7 zv%QStQNa)dpdG*bt1q626TV9s?Bzf%B|0A>xh1WPPlRPz%{t$JKL6}VWprMZ^)S#v zPDB_<_0o$%L2O^pe(xQkc+Imu3R(v+x(57S1N{D8tjUn>9DZr_6Ut#3Wq|hziCntB zeUjxvX@!e<)M!q|G4eX;`q3u6TuD?xeC7ucroJ*oG7Wt1O*^#%pYpgZu4paNpmMwK zqL5c8B|5&S#NpNawU00UUmwEFh-Er>_S?8#pZ7}e=J)c;UQ(N0j{}dB!~Xv3S_ z=l1$RbT|I8(VOL19K{I?Lr`{H4?3dEW@f=Honh>Hwra}FnC$t=C>JLv zv#LZyi0xT{poESmIeGs7_nY7ESFeFK$+~@CxsxbP_cGY3+O(ekgHeUU)VwGf^^QsM zsj+XtN&aR(FcB<(?C_)Wh+n>ZPwNT=zY)^us2$0&o_^tVvRK9b(tDlQKHXNnNH3GJeWg&_VRTKQ z1lT=x|7Oza-zKrG6U$@&&%UgmeHF)B>yAj|!=9;7n4Ca8yKZwpz+U`gXs~xl(*VR> z-(dnX&5^{A1gII!`LJu2WdF^Umun$qh?QEm?egjh3HoQMbVkWj`+#Cli2lyD2&wFw zn*H+w2;j5`uN3}LpM6QjIz_M0MHry#g4_6UW1Pqy`h36pc>);;vzx1KdmHj*rHHoFayJAJeyb9@)o7$D?3%_`3l-j<7rFw>Gn!X>r z24PjZ9}S{0)q!xegUz97I@aw`wK>ZmR$%Pn8qoXsd;~dQ3y239>oks#Tzx(LZ#*_z zdVhEJ(+4RN6YVpjNKq6#ToKx_M_51~ybB#iQ9r%PO8Z8E?8xh5_JIyF zwTzplmvQh|pR8=yGM^#b>$N7U2<<>Qg+iOA0!%0d(YbZu2CV(l-oG4#N4YDoy+QJd zyx79OdVoao63|9;uw0E~*MBp>EmG*9QZ3-`qyQr=;G;>LTRav8=KtB2W}BBRp-j(1 z9P@_CFho!1*%9_LdjGi7NH4%WJcA%KQ7WuOt#=KUhP%I&p1I=PS^4>o|5(7!6$xu& z|2g1=1+e8;D|tf-WwU=YY)ol2$+Kw5`JWc*0p`b*w^-bK=r#$%5?4an9>>$7NPq99 z(l&c3=H+fHxD=)eVCpbvw*Q_Fo@*T4rEPL3)x8N*3DFwTEEtg_aP*zA#MI zXfi0K1wH9kvH&~bft@%|1h_(T8PDFm(5I+s{P1SHdin9uir1PIJWCN&YLx~Hz*2jn zgcCj>20$tG__*KTq7Fg`1#U%pu-ZUdxNnFHcCHAPy&$N=~@BAs85kLiiSPqyAFYGn-t4|z`*v)=Z z>~}an@_j7Xz5Vr-gDecgmnk-AiWGXb{Z5s(ehVhvn<*niTc~#L6sTc4+~BYHhQ7!j z_jX5$PQf}LW>Qm$DMNbg$jDyk&zbqmGKg{VIeL)X^x?M{|~v|r+L=OfU%DefLDk3=dU#{*N_jZcpiZPc~uC*VXuy8nb{ zV?qS}ubnu+PBi7<$B>3&e}8M11>JqKeU{X+znWNSlKPf>W$pXXOn2oTaOLMi6&Ng- zomwT#YE(k!1+^KlYJ)kp*1YkU7c`*1z28nGRpXjj_PV@t; zF&lBs`qTbMYwvfz1BP*ffV@w+t+@fjFwxXZsfe?TR)Z0?(YeL0yEAKnc?cA$wFBl_ ztR#^cfp784z4^HB7a6XI-t7AcV9oVd(?N#Ki$CmXLmpLe5g6oHnkN{jULzl z{eHi$U*CiT91oYH2rzGt$nC2+l zGN%=Nb^$b~+b%Dr;c1u@Y%S}ea-L5NwrHkDECK8X1#ILSH<1Q#k*<$?4Ho4q`t(si zNR_>kC_5k`P137NsC>PcgwD{)~KK)dMxhtruTu7a9zSwskC-qT%CPTSsKp8i5 zV9PO#fEIcE>3g9N((uP{j%?cysb=Y<%3slklSJ;+7Q294a5R{mu-o7MX$+aLfFGpe zx8(Fjdm_M(0J7jH`K=#Y7753Y`ODJ-Ge8;Fj(tF_$S8QJN2qC%$$s2z`&DVC`G*CJ zbv91$Tt_!Jg+#oABxidBf{=wo^5T*B-2`P^HEdtrde6Pj7%RWlLtk|`>g4`Vy{$hW zz;lYf`ZGR!JX#XyaIgHqiY!AIswh=aJo61V1}v})fc=g&bx(svE3c}m-~5)k>&r=+_QC`+6#}K!cp-JfKmXz9GADTs(CN081xx#! z5TkwwF7JyXpHN)cd ziah;yg!tEvF5xwHbbKEmDe%Ah-kJ`{G!8}S37ezMR)Q~PN}u$>*MGiknix*VPRD^s z!iVcbr2x!z%XQaI_rE|uoP7O(@vM`kBacR@Ae zT>|d1_bFoXPs(Bnx$xr7s2FF&DVaB3(>x;nx?#ENRGTIJ(;Hl^2W}Py_=nRNC0Id_ zrw7lGC9FIiM`fjSeWE%=)9=rP1D-p(r;Fi$@A_Z5aftZ#iznBrkR0-N@6sJZBJM@D z0)i7rgH@;eFm)DSDUJM{eGKg1b8)f2T{*y_XLS)inzE~aNBh1Jz2q}6o?7+bIfX5X z3G)$cVoKv8Ugeb_#hIFCfjp4jRct)J>vpdIhL{BAn538z;xGT*xSc2&Oa+yW$nz93 z%clC++^LP93i(c?wA&A;)-(XKLf;->FBnSuYi$8glOfZ~spPmU$v1s+idNO#?Kc|^Nd25)SgxF(Z=MVv zA6?y^Gt&=ISJ$VjSyg9z#+f|MwnL5@HHj`!{xn5U{e+i)RKN9L?pg_Q0)H*Qkviiz zvZ+E+e{qrI7nNHq1L5*$8VB`aNgK_5$HM)Tb~bec6>3Yjwaf~#Xs5 zzTj}7yR4@o@QRbBX_-z017TYpyKh@P0a#+4q;f;LoL{o}Y>N0I-iz0)YpUB)#%AAV zBrR*W#l|NEyO10Xwf4xrbHbI;x5&aN6P4 zSrj-jeCOH5mYJBpM){i0^TbzMk|hVT6ikmUlA)foCc`3xc9QdWi9Oaq{Q&?>j3?%JU$3Sj&3a$Jm=^DRc}*Uk=r02cN+L|tbMmL_168S(U5{eY{tS@*+8|m2W~-iRR!!F{la0QsyHBVRrX7l@RP4H`{A_%6ES>!^y@c? zOp1vP;h46F6j7AA47xcy&*Ps#J56Dv_srNo5A`ycH4R-|OayhLAKv>^81%8$`v{RF z(2d{NMqVCs=Li1!`(H^_!N+kliXw@qR`HM8{bY{s8TN_Tm{FIm*Ar7|4^y0P*xL^t zDJjG~|0+vUp@vMc`oVWNAjb072l@Ie@IcGejTMO9yz+{UFD_F0x(h1M}swOU(Hia>d8sY~{Ab1TEL z#NBn13w1wKNxWAqfh2-*m8qM>yXI@rGWU#Oa}XcTj=_w!^kIP)(Y8xoi;e*FRRZd%+%XgkRW!csQ!tf&Q&X81)idi8U2vE8nqvcjRch?JYu-#}M$HJoErf*@8D#vrs z+2=-{rW3FSh?tFz`%-K9W$TUK0GA}1@=%8ObhhpLrFQZ?b(wR_ra^`zB!16Ra_=-$ z$vYeim*;g+XGNX>M`R7~qUb4;jr43D4C3<_svtvtdO(iVwwf%&7|(2wcNLV-&V#1r zLA^W)*s=!36*GDeyceJoMU|xQzA$GIn1z&jLa_&yhQG0`k95;BM+GSCXFd5-rh2km zqSa@V6<7G@4h|ypxI=&nIMvUnY6{yk#=blE&x>O4Al=T8V{aVl%_>$9wN_j`DURY7 z4_66X>TB3P>ZrNmXVajfW?7<2XEiF`ov0$0COmjG&-tRJGqpYAj@jvc&)tH08@%||89OZy=e#Hc}w zq9}_)^91_H=YuECuXl5!@%Fvy^NM#Z_dIQY^{XK4`8DwF0eq))`_7$}bU6>+fV7(;k4|!ooW$ovbM>B%Vb`m7 z+~VX<{tkR!a~e$4EYmE-o@X9w(QH*>qCJ&|@R_r^NaE_l?cLw`eq&c#r+us#VI0$>6Gw)Jg-074;Y(N~txr{wB#~D(_=L z7L90-1?bPB2J0d{rxONTiH5oTl~}vjR5S583w9;?GZ=dJ-*?2j`ALgBdcz_rU_a;$ zg}mwOwcR~oAU`6f(b6*M5o!P9_8Tv`j0>ph=_Bu{;SF55mdoM@=r_U_9=%{4|HDYI zMqrxV*P8ue7P2)T&DZWCHf#*$c2s0#um0{yRNegMl7;hf-0k<*+o<>o4_tdFhPPe@ z{GB$O5DsVh%U7Ct#wbpgoG(^=cja%gLZh6AaCntQw`LEZX*|i1jGSe^r-dZ7<;32pR+ zcZF5`@k%GXeTQl4KKavP&OhU>4mMhiy9Y8c^C*JL533YV24*iTAS+;pD0_$>bi(UnG@7)5Fo*wMWNbnSys5h1mU6M6F(!#nvG z3!J^~?Wo1vVlN`;Z*D}_l^ogd-uK*S*`3bn-XHyN;3bBk&rAINn3tKCdknB%0_*8; zcQ3-c>PVkwQ!btG{2&QB*=PKx2pdA2rS{}R)w7)a!-s-e6JYuBZhU>T3C*aas4cV( z^kCcFqKfSv%g600Iu`*+?LYbK-Fq(4+{^FilRETR!L;&j;<@+T7551-N=4u&nL;@qOL|n8ogF_tT>lrD+H_aWnyWnLmCGZ#O(yJ+Z;Sfi~sZn6`sStu$|!oUaA{WOsCsNbgWVu@(RYf z4$R@J`~k6D11l_F_85H*p7#pk$=x+OT%r@}+O#b(A4D#SV)t8!S=y4o+0<-dx^q0S zjsRF&fN{eBYh&4{BpZLwKG~z=fXE`>hbCjuF!Dk0%mRELPbc?|Z|FL|>kteNOW**4 zz5gr+U$FQ4J$>eQjAJi`cHo3tpo6h*zs{fVt~35;9T5FRrnA0pQCQOoJpwq8J~Tu> zS@?r{`MR^lIv0Q6uIye}{rdg`qhnxm>49nc9Sa?HB)2|3>pQ6txuI(Q<%6;4HNvd! z-uv|*TTX#D$zM?rTv#Nf<8osgc5C#&$vL##1u$2FB8egTz8`|eW$MRKsv&!1%{co7dc{r132wp`Ol z*qr$>^XeKX8?H6wCDe^u$bAP*IhBP&5>pV~=tv_7&=rdt0r3+>-na6+?hl`x8=n~` z(!3Vcqw{)6!D`wo3#1{c7X+SP3)H#Jow;!=2!h}d(1cZ!{?Ws#80uRP6*S2>)|RBn z00EI}S(mnvBEU1vIRT(r#1GKr%Y^!O65iY*{)byE4*0#R0HhQ(?dw6b2f31ex#D$s zZU+Q>7z?y%pMIa(1K_&f++)`63^fBmCMV~puwd}F$mziIwpyx1yqWbzMP$)2|J;C~rTb zeA@tvTxI)lE>_=CE%w;KnjpXq@Pq9}*^qT#^tB(n5`asRvt_XeGGQ1Cu_X8~Bwdm4 zFE$#AwWRA6wsWR4*x-jDhD6EcXMQ<4mcGI_3cS3m*g@R&(W~?;&SH7sZ2jFVpvu0= zF#)J?=W};e5ZebyL8spJ?h|I<`aut1Hq0nE8HX(~;8&dHrdPiHW`uFX$&WYfNdoj* z_B2KF5_^7@*l~FHD=(NP(Ep9L=Qrk~vCQM~zMg$%=AM{J zir@?)@c(c)krD2moGm;8%??{&UEusBd}AEwk}?ZJggEYf{bT!WgTU4U$R9Q;c>lM3 z1y!Dl)`bnjI21#mK~=b$Pvdc{=W9q?G2w}&zw6GcD--_iofH}%bz}NXsnGA~I5a^V zowvOm$FZz#YEUG#9+uI7eXS_Z{H5A=2X}!70G5jW{f)~D&hH%Ir7{2mTkW!5)vaEQ zXdMuPTVvzx-sd%N<}97pKfJl)=l;G=(5exg-F$-x9~|E z-;fV>T`Wn{7)r4axwcPxuvL>s@!->#xqO$-O z50e2E20T0QD>u&C{H);%IJJfmWhK;(wLarn=x`jsQP2vWK&pbJ-g(*v;WhsKX3`$&@O(TT5qayHx9K?Wxubz5$}+{W5x{hvf}mkG-g-S1Eci`;0oVKI zj0%onL1LZRFpk6Wk}BS_;XFwg-1820eZQ~MSDYkCiZtd3U?d#pLbQHs9eL8TkJMfi zMbYw9heANL z{CWdnuXgF>&e?9UD4!rd>h$ZhsLA#reWnyH%rTM z>v{FjDl3G+U8JQw}S)uhq4hIwUkPqF3PFAJFC+D_FT&TnkXP=E=toLSFx0K2N; zrLBFxmyfQmhrP9R&D^Goj#ik`bpDLB5JEGyz-$Qc-ZQeTCx{6Pymg<8=>5q0i9F{h zEm@0A19#QJD}xXyjn=i6BB@6!`CvzSOGIC1MF2(7S+9Fs>E%mZ{)<0olB)5y#_&_| z@AGnBV#tt+Y~(hD6&&HiVjuagD2mW)l!kakF7V4KfFWCp&Fy`?FdZ?q&V=Ne8~F1a zyf(pwm=`p$V(hZ2=sf$1{YB0-AQD%QEtvZIcp<($;}|3UdW9AYL6T@KG+UxCURbR< zJArR34eOD(`9(~|(EhZXo(!3PUkq>)-rwxX?$a9ErmeGCR6IvP4F()a_e~o(NZ0B8x383c_SG!G-t`DE zGqc$<3&H^|h(PA2)mA4+{xp7Q=izWQqq)TfU1rYPB||DT&C-$IxwDp)$ny*WxYp6+ z%h*2v{vJgzTFU3XpBU5L0K99aZL37t7ctM5H8ozq4x!VHCR=%cf2-Tv$ttt%J6~fu z`66kL?l@>9fo9k^MzZWy`~-gdKJ825vC&O#BDfF`*G1UX_+Gk^+V`X@flo34_yySD z*PS@|Tp2iKkZT)55QKil>Xpj&zN@gwOy09ct%2tcaw?##X$psVn@lNXgp`nXEVF-} z$Wl5|3z?X5*;F5!kLVJ)8XDeL#=p`!8upXKu??Xx@oxW)NAcG~j8WP(VUlVvzjY*( zjWF)%Se*Ie#hDZgy;}McpB}qQ%rOKuX%<6Mst=PU?_4B6w9kiP+ae!{N>iikwa+1CoMr=*}NRY0jJA1zlML%(P5=B>ch1}rVRpkxyt z&bG4yO>s`TegE$AH|te%Yv(mdlIT-=9c$ci@(WZ7dy|oT4An!R9`g6@L$rR}WSY(y zzH@Yo#mjKrhi~YqswpEBg``m=;L?p3O`BnRxbIyqJM>E?Sc4>}WpwIcF0lvv=8*eN zJT%OnWo4nfJrS-T6nC7tp|!GjP5^9oy!)g%#BJ2P{v7D~xP?V1#Z>nEhcIC!lr#6XC<1P%(tP>)8F!${uHCnt9 z5k_7VU&79CJu!)9!JfpBAxP)$^y+LwkN!xeC~AHrYgrBkaY~@G(sV5rAc_7E0SaJe z!q~G=O#@t=UWjzcCOP|R{!jm_z99flVlHY_B^E8kU$w#R6aq0$H!GgG-hpbCXWA`R zj_DVxOaN$K0|FfQg79ier@d&j24NbcR3&-i=+?+>D60;26VW3yFMgt28@>ip!!8B# zH!$60G^~2#82%i7tyG)>)z!0F8vvi6Q^K*;cGq}ws3qoENy^TgB&DTh?#NN#jFkuC zcSvb8FjEsdmk`fNtr7y(Pv-dJH9#P=57?w@<@}0ljn^Efa=hkAkC5&|%zlc#+gJhM zQYCysENkhB`i#C%6Pa&P2yJd1^6<=q>pDC&Br#H&R*`XeyIhVD;Xkp>KY%?&DaZPJ z+O@Fzqt#cXnUZO-Eb~Rs>1}7>uxLCt%enR3o@FUN9{Z6w?Hr9t`~)cwpkX>Z_BMva zByvHlFXjFyLDQ|zZe%5LMY9w0mP-B7Pu|&|wqmuvxY*&{x`IgAx7@9`>uXJ$=EVu< zfFgxm9lh)E8ir@lmhs@)wK@wnJ>xV4Q^198XDE0YN%<*i2#}_Z`4?8Sfx~R&$GcL; z&5;_->Kqc15dIWZCD;Txd8p#Nuro7x;zhGbo7fJj!QIu}w4W^-Iy4DiJ+2IWAFj4g znmr1;JY5$|js}S;FmHM2Pn*{y6@>#|q=sy9UEx-NBh^q7%~)!#?H&I8q**t0Z!~7b z-|Rfq3E?NinZ0Mbe(NujOL-%GAF5UpoFe@S3co^CZhKwjzOIE|F{~iUClM#+(z#EX z0G@Z^ooH`E{C&{gx8J3@+OKZ^P===N9YUH;uP825@%wVwy$bVn2wlJKvF^==y+_r; zT-z&OZ#@eLK~c?*pHgzKpVIJ8AB($w+4O(1P{)vWg_@3=J-0R=dCzGg&{8R<-e;|) zMdb#XOf|_6y>c(YTTb}RcJ)q1@*PyA?ks)cs=eb*XpccO9i;iYGv??zLC70DQt@~J0?<(mw!AC7_Oe!Xniz|Bq!g`GJEk& zNu1OtDnb@f%L+Wrly1c4~e86Wa$sts_dr)Rwr++6a9dJ)m)zsXl?ys+)J!N9%v4XLnRBGWp#* zR3F{1s>+grEdr@h%T*iSnhlA2qj@W7GT87GbH%sGev{ieT&I z$hqK--Q|fQ5l=^TV){=5>VRmT8NjQ4$ydtn)fb@2kHWXY|MgV4_1s(8GH8Zpt@n{2 zeR?hgL!Gt}!YmJx`0@wYZ3h+hpjn<|?K<#NfAIa(&B)_S`%+aah!km7luW5YC?$Zj z=f!?W18)w9ke<8XySec?Jm47m8Y$|+shhA*Ody4L?c?iv`j;yd+`qm^?j3LGkF)Y& zRBu~k41JbnD7ayvm^D}rTm5$YU`@72L@V7r$sR5Hg{gufUOZN8@ee8_ zhzEqXG3TX|jCB#;&JNdNg+kJu;Huhd+I-BP#!N*z$Pw!#L}WaNR>i?o=4BrYZlkjlHK5DMTiBH*PhMu<1Jw3)}I`! z8Zm8iHz<&eRDWkI0lt&}#Esab`DyAPG=UWKP;&_#bcZTXSuN5?QE)u$nucN0v-W*s z;&2A4oNbDi$4Q0@{-W9^DZ^q#KR{3*AI=kkSHac03m$?8AuvkW(XU`>;*%0tm>erO zeQ$Vr?XeV!s-=E^$1jnNDW3@|1Q5O=NoQ&5` z0A=(32!TIJGLLLC4FT`BvdwUp|6=AHJN(PTD3^K|B8_^0{a2G|Z9Vu#TETjmXm$u4L_MfNe;s#jsKUw_y768;*N)kU6(A>*DzIl493LYy@OUEny@X| z8o7EjWNc4(W1_mMT3v`izK9e z=J^G-M$H%AhDw3I9OMdo8$M3&KC>|A`T70z$m%$iVjpy5gz@&M`G4^8y@PMI zL+=vmg1YOg79-N~Q@SWDXsmLb(e3X%xiFVmf2A1xS|Y6@h6csM#ts~KB)YxQ#}Oy8 zHC(-tcyfQ=-}1m`y$RACRh`G=VOb&f%i}%}4$N*L&>pZ(D}wXZ^2T*uH#Yc)q+JNedNlg=W7ThS&@m%nwq@ zZSdL1ET|mi@t{(gg(&YQ2ifm84#QcYR*Y7eVY087{N4Tg3l>ZP*`KYOIi!TO-d%SY zao9bleTc>y3QvKCcOpixcXdi!hmr@;S`+E{aY3hYHy~4d#|2^X? z-Fa7+65DMZn6fg>^z~*)n{wTq)Sxd$2azu-*^<4nHzTN&_L&72TQ>(EV;!}l{KLOn zH1KqaeEk|FWd0pL_RsiVv2NrLQxuh$xEAe>!-0e8pNBlB=@eHC!zeS`hN%6AJ=zk= z(v-QR)^n^o_nW*(7{-z71(5|{X5)B_ex(TJUpzIU9nX8cddZbvE7-#bFHq`RP{!X^ za;I;*V(N&)5Eh=5v*5|h;5k%@7Ov3X%?^dZ(enFtRTMIlT$Xl#32x=!Cpsfk_pg0s z_qjJimlvm|D<_VkJpqiv(C+i?Cw4MSkq>`ot>Nd3`TbfZ#T^)4VVHrTH=R9lf7F_K zh#dtF$s$fih_j1jS#J*cYQDIgTOD{M{4-b*Wd}Hx<44=X!`*M@U0ywN=6xoIr*gyW3OFLi~G9TLpyZ=3VmBj$Sej+kO!27n-yWs+x>Zd&-YzSJA{32W7#C z-Rsen=TtlUL; z3TH*C>hL^Vd|6MYm5OV4^97O^2t$Y`gZx*UNE9`Qsmw8wlb|m5&!bVDZncQYcGR6Cou( zD6$13Q{TFxA2u;kMSNL~VAStp-=GcrEiN*oG-A4eiaNP_SZN6cb@sGvwytR{+!Q+v zb*gjy8W6i_186QD1@|wWV&Dus#w7g|pS)Y9$;k=&&wq^f1Q8{A-V;`0upEavj_rH; zowMn@`R`upt-t!6Px!P9k;o9r;=~-!(2KNuAIY+wVwZo53px} zK7WPx-*c^TkH37+{hDfHf4we)gLQNzm^AwO86Gb&9(CqK&8kJWGz5N#*~ZG&Gkv2p zu_5q`uj8E2PC|OfLVfo3JOC?82NkLE;^MkHC^f&nV5QM>Jz*Gryz&etu?kg1+Gki% z`e8a>ZXP(H+c-KD37vz37_ASEURtdghGA%ob@1c!x327;!3XCcl?`nnHBOnKGku<1 z?zT*$iBXgA2xdYMdjn+sK&mu7RBJ&VENd^+LQ4Tkjc9yrgn0S@`Ar*ZCyY~C(Mp(f zX-hf#EGIbN55T=K;gn9jVVY@M>bsV}ASx+A(EeWIK6I(dwv#&tJqRP`>n4AE%w>l= zZ_P>5>~AI}0lwKwtXwOTlC^vk1qgS~EHFmj$~ND1X+#jNqqyhue0v)>55R$@ zi1>m1q5z+i$VyDST$Je_kd`ALC?8hWt+c%7%(wzCHdg%#70P{zkM+DRD&n;0qOf3m0mL5gYS!ehO8Si+!tuPc)Rz-0cwh35BUiMomUMb;ue<4 zT|b0H0PW%L03K{(H@U_K(eQ@giEjkH;Tvv+7`Q0JW z9*|w{>)OjMH+hbjGF0)cD48UBvTw!OTg{8H*hYuu}}L$z5G069R$zvXj9I#^Tx-AIGMWA*Ck zW2)TsgLjYwTkK4+&fXuZiFJ&jx5K^A=hm#do z0Gxc3PaNfa5b1c2clcUyN;bPrso1?2>G_ak-a_jnbOS&*i!LDRNe*pr)`25G7Mt9yhW(0=E+lWXxlER`e><~`HJ&C`SV#_C=vjh z2MxF^q3j$fZS{oTcZ?|dwgYp8gt9FFD4;CB0K;4f`h}w=BahtM`>!r{p5mP^HtRYO z$vI{iGy&AaB{#Yz4ySpD9aTI`6=u5j%4GNReOOLyO-`qX^;{SF_o znG7_ulr{RJ-C?LYMnM4o5gI5mZF?47?BGew{uNC%D6+1+cwPOFk94%#4Bp?DJ!hEo zuOCvoHEbnMSvKWa6$$9it{+xZJEzJ)htv3}7rDcmqJnBK-!|1CSm~YbUw=9@?@E~u zSIKt|U?->Gx;z{AzuaK2#Je8p@zo6|DTQOloXET{=>q}+3)s7_u|tP4KD&tP9$|z8 z^vP?ybNf)pP3;D%G0t{TZ4!-sX9U-&=Kk+){F9F^T7Vo7k?Z?SQ>lp8M70%3tD#NC zstL!$f6-*5_oK^ZtjRXfw|8YywU_YM<2>kqC^ok@Z*ATq3$AMaM_+LC&BKVD(lz&* zm<alWpDpEg_i<-*fbS#}j+$)TnS*jiQp}|BMg)CSHgscxlp4&BJNFmPdQD6hHzv zDsbp0Zb*Efj3xi)SL2;hv9u2-_G3PA-Q3fjY9k8xCSIMKBg=u`fVROM^A{x!G^}#q zt+`z@9pQuZ5S7-H;m;5AE&uwyO<@f%iC6pKPzvXZ=ZZkX!Mp^c8=h7k6neF{m}l&_CiaMvAru<1O?PC91?}Lc zfWILa1|a2-6O3v=rxJ0mP)YrIEs8Eut+Xjgy22SAglc^t6k3Jahl+k(zRPedOzU0G z*}dhzv#8JX?St`o74jA3Pq$UlOyDGtEMeyzLlEdK$v@KYV4-Bv*9L>~0fN@5{;-UX zZrf{?nrnJNi9j}=r$n-(XjSJ={30dU9G?$!0(m>76u+#llWHHv5Tt8X!{vR9ni?yv z`a`Yto}imHP=!(AOFEBjU`Yh!@_ zkV~oknxr^w=A@VnkVuoYsVempkWS>D}VibYB^5`UNYUM;g!G6BwoJ_kKQy z?cD#t3B@sQ9wXW><*pNH&ahS+mu`8Va6&F#18`>@F}^wel{HPQ4iB}*B=VJcvZIP~ zY@$pa>Td-gq_0sd2C&luXYr|^DdRdsOAJV?Nkb6sGS3gr(&RWnpgMiW;>6*-#l%$K@8f+P+r1#$D#~E z;K8zy@0X^mZhq147?6t)&F9W@ilT(5!NwX(AtsWdy1}xbeSZ^l6gEZMo6p*17Vt>L z*Xx$>5*C&?6rKp5Y$ZVov~{;;)Vpmj)Z1@T9Ii&%xn#|FR&@CrOV6WAeiGT<1MMZ_ z^}=-dC*E_mDR!nmGQ`HON@N7t9~H#U^44ldNMR3os=t8^pWxU1~3XsT~+%=7j z6LnBRIg1{0$cA$7J5Kmb%IV)4ESw}{2in<&^Qw<$d7aC=?a`y$yGDfkdv2;=kqi-i zuKECcY=z=E)UKR7!w_gdHEk{-PgBW~(1P)MSSO=2&FkwrJypwPD9Y*P{ru#@e6TRy z_uFc`0Pg8x^G)cxVEG~9iixwdvrYn~X9d0tf#DQv*~&-A9HfAsK)pUKpq0YE{Qkv@ zX5W~aAFyvkeAi;Dwhd#*5I#;Op2o?;yr&&gUWWMW@RIMCGtHHK&c>BLW5P=O0-!aA zCKr$8DRsPgJRT2>dn+b^kU)!GtMWZJuht9j@+$I3G-<1F#B>9G0!M;3d1cyo-gv{A zEtuWK)&7DpISDhW!PcCTwiE9n(II*?5`8Q&X-icqq;_|f zrR|;w5Q%Xh%Y9YEDPI(^WT-MZic;*wZ!_IZpGKPB*8Sy>^H~3=@zz^DM0xx~<^u)P zDml{b{@sa$hVHm<@%9=ATubFWwz)cZFCF^uk*)smO&TYil6gForx+OyVER#07hLBD zX^7i8;CrwEv#g7aDv81s@65h}<9!eWY4kx9<+)7s0AR9ww0Px*t}>L-Dguz$!pEkU zPT&CEq)4)==UI{@>HGePPv|#cX6zuwXG700l~-7GL5k#6MEnOSld+Gfsr)V{ABRzeQ?|Z_x`D>&q6$L z1xQC!E6dK`WBb13V@u6-Ep$Jx>`VT~OQ$Fd(|`!O!Akpj(QtD zRKGkASJwOi+qQj@jh@CRuh@SvUujZ)A+1=-=l0_VdT{myN~C37lSmPFRFxV_GBk6Z z!wh2~9Ti^O=+cs{J166fYGacvYr!AWWFT?)H0{^1q3l(N^NeHfW*rcV;7&ncxB-c% zji}F@0oy0jfh)EFhG5ehX64q{Aa5j$Brt0Ad)|Ij!%dS!k-72U7iAeQY_K{+X4YZM z-I#rR&FKVYX#T73hk5!>7p|qTH-L3fF7kLMX``Ht!EVJGCe#_y1nxf{zS>+0^z)(a zx7{85quX^e$Opv9gwm8^vFCtSeT_x*?5c&z+%(_LCcBNOYl@9c_;*2n!`e3rlw;>Z zk$CJ{U2hIUmh9w|>iG^SyPpee3W6?&IsDs$+3K#No{`&9zF)`=va%d+`41 zR`l;9^Fd0QP+P*|KxZGl)GO}k?$o)`JBsnq^Y?UV&G7$C@+_z)W6kr5wNq1egkvkhP{je-BSjk_0PwBZ1u z)C2CvKs>u9G}-}~JXP@K!*0`oGgmama)3unegX-HiGOis=Z-V8FI}4%A3yYKkliD~ zF<@hYIhu9lVd8{gnF9685=z9JHOej8i;&~t+Jq){Hfy!tO>rVvkW8&%3;Rt*FbKHy zI1~4b8G%iWHpRkmfDC@$%*KV~>9x@;-gKLd>((;CPS>PcmVed~aMBIZ|9F-45P^xO zuSGI);1=}Q$z~Pm!kb?8c2$McWBI%SM3*R_(4tyvI3=hI)*kEUmR8ri)&r`R66wMu zbN5a{&hu+?w3zPy^x(7EzkF4BwZPfnQolbAST(aXej_JW?QC}_TJeM7^+Ab=5b?_x zFBhZ3+M^*|c~^fbh8ewW`e+yA>nAcLsQ5AX%j>jv15MjY`ir?mI^N0q89{RKRSWtf zeh%&Xl0%_gkyw(n=7hWV>^?B3e!cZ0{@B`lMa7{Ii_n@FCZRywJ8DFfO`(QG^C>C^ zA6`(Jd71i-m^JXliC|DOlZ4yu9Wu&$!}s&)Hxrj}9M59UI|*Q?Fp_m;zK9y7wtxQa`vmCs~X}qZ1yI?2C5{JNNT!{VnvL(a4ES z5K6}l+at)>yx6P9=BO@*dOg|F_q^+JImUWBj*oFsO$S7Jfy6E6mh~%6$ddOmUfENt zc1B}ZPoxw>uG2s>Swhu1MaL#b5C;{H90_ENE)MG)chH7ldaNLf=R=Jh zL2O5n=ZGKllVL)SN2XWqSX_tmzt1O6&1g$cZ2W!(?Lom<80>^0wzQaSpQ-g-h?>9O zZxQ9O()^Rl6WqBeNpkw09fvyEiB|@1Q-%K;?KdPU1D)4(#enOPk0EwFYZXnD`oZLJ zJRka1-<_CQu@#+{mmk{dAr;S7DV3`bxU+E;oq*uy7=&(5A~y{Qa9IE(C`G>pmzaLF#$QAp^M8iN%yuflLFQKcDYJq)09gA2v&`AH6wM<_wc@W9kra z{dH7so>LRMmj0gO^xXFcb+OTFniyazHj5u@#Awy^v1+c61#3i*EA zeWrgK`37um+p8qEbrsOG8XAW4r8XKvA|Zsst<)` z^+kY6JApO#U>M1wb(9Iz!cl6)Qu|tX*UoY(KjYoB59(*+PbXAe?*m|ukbb^|dMn@I z)jdO!$M>1E`AFe7@zR@~w~A7%Up}4xOtEn)FZdQyoMm1msG)&h)~DVdmS-}-_7knz z8-vAzp}X%Pd8`PLHXJ*sh1&Z0@vO^Z1mHM?`U`6#kvX{>N-;cM{&XKQzd3lhwW{|T zT5x&63)3G;-O0oXmEnmfMop7`>P@fscUomNYSiW80F;tm^upaL#)eGe3g{+5r;74} zeD!F-(8y_>hKDe(upOyWu2w_mO&}qtV)jOQKzPQWnD`&Art^QYo>wr3m_60KjMo@Yjx{;&owem_W6=+rEi#8ZAo%>OkT|cpE=lO zd&Bv*wm3X9u$C^*Lysv2=6Yu_UJ?D2+or_HR>^Z)0H6CU3+1^;AjNi=>G|GvfBEq0 zQ6lq)03eKgrP5P}SG>H3sF;F3z8op(UoTH6SB5r-(pUPh;K-8U>*os(N^q^0r|LxD zOn}Rn%bu#S$nO$e=Ld6ql4*`uUM&sc)*|9SawH-p#9eoJy|-@1AK5Pz8&2W3p1*J;_Zhw`9{gqhOuA zq!cSe5Wgxyrpevv4$51yPNs!;3+@l|xjA`S+~YyK!LvS*J*O&qAd5yxej?G}UzFhM zhDYAX-5h4`)<-lwVbypvUw1_4JfRg;Jt{s_^eLzp`qyGSPcx%gh{)imN*y;RJNX~F zX12}rVEQ-AFQ3GOiUsGOU`ZO^jw3kb6Ke`bn=kp~v8Y*>Vs@oRTps;2tB zrJ*;Fg*(>XJu?yTtP%vt>0dusb4)XYb-u1WC}_nVdi!L8=&w(&B-W5pdVa!d-b9(t zA&4#Gxe_K3+V7dEp)Ut)t1d>jPqzM6%N<96|yzTs;ahQ|o>apf59BY2Xq$q)|(LZN?pM2Lp-b~_WQVfIQ6+v#u!eqId@R+Bu zHd*J;U~QB5*QXuf6<2#a5@61n5y4oK=j2W$743oQQSs|T53Unv1A9(DkP5%HnB&5w zJEJsc_nQI5rg1jjowB4?a>G&EZ9Ha=`s-~xvE1Ej{)=6RhPWGS*9Tfd_F>ZW6R!Os ze%0^C-J0^p-*fU`^!oxw=6Ryp@$vksnBMDv?+(v??n1Zm_B}Sof#IPOE#`qB2)cl! zJBehe(HCG~pETbap_@zm>Q0B`#S=(j>WMv!JX+z?Xz2P++C{d@=HU1l3v00UM@``wE{ zy^eZ&vf~!4?rx@|G5|Ff7P4j~!UiT7G8 zX2ZV2My=r|KBF1m@qaIrVP5a1{@~kUCRXGASQ&j64l+W{wQ4udnp2rs{`$Z>GH`co zzQ8>P)j)A8_n^5JKb$f?VX+cJk+An1{dPLXQ{2fcSv-xhy=^8ySHRV86kQ$aG$4%t?}@N2k87s&F`*w2;l?}-cb>iZkP#=p8ir`x)SQMBd}Tz; zlb*caP;U1aJ)HQM)Htsy;pw<+qZiv=H+5dQK4)H$%46sDE7m?hip-gv%NQV!<~P2P z#V@oh3`K6oGU}( z7x7clC(~hef)uZ(^!+W?NIN|L<6m9`*`E!&_^~J+`eLisMf?z5JHz(tW)C1U;7ie4 z9f*}6ESWndu@r#qe@@yGE{f6(jAo_9Af^Mu05(NotdN1w9}D0~(t8(KUyNh&^4u3t zI^*3l#T3`KF81Fo^{LdgqBpAQuTv5CA!N~aj@`LQUTN79si%a&|8D5pXPfUi3(qx3 z+C@s%Ia*Ar2x_@V;Gv)!KCXUAbHG-CtLFiu#*Mp6yBqP5Yyhf1ycsp1)B*97>+TQB zUeE8{L{Lfk>CUP7+A~gJ%&f`zgc@Cv-Bd5;l}l50$Hry(&*pszp3s|zz#w)0{Y7M<}FP;$|v^&5B6uRCP<^A3hg zm9?KpQ#!rUs`$@&eX<$W71J5H{AdR=mkne@IL@igkKpU4Ju&n4`6MXhQY_uZ?>MA4 zR>7j7!;dV0zTyxMCxCT(VU$z~-}#^Z2%C*#7#s3Cw~V}Bhe`g(VFuOMOq|6l8UFI!ffun?U%zMoi6Ax1{| zr*S&beHsgduh`g|ggzUaj$+SV$St~$qQEu!lsSM3hldA2l$9>wFLXcu=|4<`OhE8J z^H+59s_t_Uv3J-|(1NE&zS3wvTHn?z?Yq;_s89xWgj0?30|&H?c+u274ty|2EkfUi zj}GzE#xRVACsZ6=&8~BCe~viNO$wn{0s5Jy&-bd(6es*yY><)xc-x|MhApd%is_(u z9YvH$7xZx6q-FHi$FbpcsltE1#}^%1$CIq5uC~fQefgrmvylT?As}0khG`;gjwbf?x*Ngk73@zA6!tRGC&nTh~zq_V6=xp^Q*u zo_>p5naPXb8HrS&KW_sMWXSsGyI{;V;0Dml97i&c;#S9cXn;Lq88~l|mX(ik2Sygg ziFSoXSczD`1q*2*TtXE5G<1U z6tYDq4#;E>V|m*ozyZ-e=GZYLW&ZI@ys&_)7(y_ix!rERDj5^y^E(^Y_OO`At&jYT zqHpw*S0_hk${7ONY!DiXy~yl3e{UdT>7(O9C8-lf-hO}NmCI+<4)bixW>hM2IH?gm ze8d!v1Ji0NF!Q#AQa-IP z@WHX$P4LI{E1)sT^sx5y(QY&No5U*IXPq5f@2T4F3S-VP8-{5FIw1%m-;nm6&c>I< zPJ5@8eTP;A?{LD+I5e<1gi>+}tmyO!&A{|Q>(lDUG7wZTVH;w^Xj~ZLPuMv3)EmxP zh&*$5lH^Xm{tr>tvE-_<1V4xcAp8>Vy=RB;AYp_6!PmcL&W(7)>}Fzsrn@S$yDD?O zx00-H;JenrVA2z6xWYZn4kkRvrXy|;DPrV(rys}h%wmjz}hn3qGc*C*wjs^3!5K`>!V zB>DzBqx%-0a$VPXrbUChlR_g56B0JDT5E|U0ZI#-wB6>_)6NlMzN3=lvqo1)K;rB^%; z=X52aU}qyQ9H(LIg{Q8^ggN`sNu<)X?K9vVH3SfEZifMZbT}D!(x6cNHi?|JoCNT- zA`D8AXhTl>d)K{TL?;>QkV};-TVru}F0*MgiKaA~3&C6EQ)rL^M#$BGH@Ip5C)*x> zvXuez!+J&|z95EV7=ju%W9$4`*YfaIJ)ZcX-@Z&Xt?YM7}%uhUDb`Ga5hu+s0 z)8eT)oOEQSx>$WjQ#pN)VW5DMtmA{~#Eg3UC!+T9DcQy7Ya-u_oCY`v5q7X<8Um)d z!IGWq@JaN>)BEC|W*-8ELOaPSAg9JxJ=SUY)Ql||8Buu)@&z6QdeL5ha~(}y#>?x8 zz`AQR5~+)H%}_Uog%diWf-g#1B3aFJ3v=S7gTsrj_*^_uZw|H@#3!sM6?H=3Pur(&kVyDt*XSuoCacJ#EUGxmd{E2&#!La%dm!qODW!o zI=ClW@Tg-vu!ki=#&qUHSrpSq;Hv4c10#(Q^>FHO7zhW_Fu4A;-~DOkjzYjla!GKb z^dww%f~5u0Q*&(1_4O`fecD^`LKb`%fkFzt2pZorV@8d;9+_o5+uq*8Y*#_&+@cnO`~HF+a*xu%0&vMbiH6>XYXNd3?#qybB1jl%7pmO848dbLcDLg< zo_D>S_-?_mtW_(H!&T)SH`9M{SW%^zZRu%weTaSf;ygh*qZS4L8-Dj+9C`1`t}2L}A)6@w z^l%Qu{Am~X{k~T_0Hp$a2DzRYV|28SHASJA30`Cs={-B;)@$S>RUL7rf-|$?nu3lt zG=IfKQSvCCDyqt{h+W$SH$=X--DAM}Dk4-)3iyZYt7Tlj=Tvr_9q{}5GtYITNJ_BgLwk$B`~(L2C8rIQvJJhNWa@X}g6Yug1M=JQlkKV+;Pt4J zR2(j$oy543RBJIw%e*RrxX#vk0{LY|1kHzwKd)cbPW?3OHs@-0C5<81Q}4D7^3)sB zN#9`3Pho^Hh%R+fLir}3M7wgRl?@T@aDiM*SRMVb{4FWJZc8kH-uqti^rj*Bu18i* zkaJy$|1!=tp_>sbtC%-^UxQvK`iM(iU>)&8WLs7Z(;Zh}b>g&JOEe!wNB7K>PeAVP z*n~6N7jc$cWPc8R6>AJ!V_l5fMF8^c>nZzM=zV?>X6JFOdB{VkYP$jW9+Oj*+_Qn?6S_Eu;zSF=V1UL9y#*PmuLQM&0e>VmAy ze7H3K1m+8SUgy2P@+hX1a2O#ZFuOk}OHF+T!a58~@=L2URk^GmJ_Ng3+hqTJdKH72 zB_ie5^QVhyEcWY2EYxIeW%DAb1bVY@tQI|qG-_cx8F(Kc7lDXFAuwo7OTP| z^hQz%^;fj?+#%-kY81s#)hY*LN2x@>X%N-=1w`fclUfjfUT2Q!nt}BJ9J8)3MnBg9 zyfj(|%3QpD;*(Q5xiq1vL96zOAJHOp8r5}H~PAu{~To07G|;3__B1quKX1 zR^QxMgbB&$2vKiWs4w7H-kbaDe-6<&u-eHuJ&-<4k=FKWxJbx)z?EZ*EaObpND-lbE%nxQ*!qrGF12K8k`K9l zcwHxQF5i$<{B*x!2l$$+x~AJa8T`UriWe}tu<)^_sAn-MiN5c3enO<$9!KGdb7qG; z=`vGH?s31;f0YR|_L7xnnii!X`>}6Ft7ku}rzQB`mn7dYQKNt|S=-0oORGwYyPjKM0d7lj&|7#mbZdNH-Fv!aQ`_?P|MH{ zvwQ`Gv;27_O9x1=VQ+?)j|^+)@spq`G1wDVw&v@)g}L8)9a|YsRYH%K`^jwxCzxG+ z*RZq^D8SL|rMcURWoF~T3`0Nx!9b%YKtZn`nF8q`*$8BYfykX(acz&{?|}vxuL>&2 zuQD7zAjYZ`xdfoH;-Kj7EPUZ!C_$d_Ns@WaF$b=V zHOl9021h)cTQ-g+J@x0y1E0ja|D3i%hO9#kirKK>Id6_bzI4xx-I*XreM{P8?AtbX z6Ft0S@m5(r?&qO3vwj4;%v@Xg)PBdXCg}u?e0o8W31Lh&0* zKA(?g9!r#e->>&C9pd&)K6@UQJ2e9UNz83UdmYGSPPFh;*wg&;`l;E!CYpoH#@BX> z7k;?b1#|Sn6>#>cf8YNEKdWAf{cg|pVhksK0J!aB9W)>8HgqIPH$z5{eKmS6edVuqq=^Ec&OYxqbV$jG}jUhsi~C88jZUYca|;GUm&bSpJuEp~)w zgsdDjy-L2CAI!y5-yg-p5d*_XjQP1AmkdG7*h5`F0GmQnacSx3Kst~QeHatLS+Gir z27r;BL%k*H@7nTvPjz02(4BE8!VOD{3E4&a$TJHt&v|Z77)^+*Oj)_`S?p*@xFy7G zvhtSd-11- zx5o0Te~LA|gnA^?iV#nz!ZPVKu*#S;;KZS`Bqz<`u5 zn=9@;HOZ54PFxPBkfg{9SM&7B-)9!pt^4B~%T$~B&Pd(wnbD(Wn-$MT?Xg|zI5?WC zHbK+ST%jkGSx{47-?(t}f{1e@Lpp}2?08x5zHjV7GVkFs<-FfHkg6x4B37kp9_|a>xUi}-K}o}NouZ|w|YH`eVl$HVw zyAH3I^;^NuH7+TZw3k4cT7#b=m5D+m44eDzCPj^H%9ma<(R#WNs@C zRa>E3>tv~;m~Q+sRhCt?XB}z9AmPFa&(hCmS>JDn=Y1Zzf4<2urU-&iXPk`-HqLc+w2oOQ&tP%*+4%o)LtNDXjRiTbGtX~*?kWP0G6w6JBrE)WJz0AOKir4c5* zw`5#v`@WYzv2qmQ4(4xIy}!(wlW?-(0mNc{X?|cQbp`C0W^zkx6hPco@LgiJ{s}bR zK}x3?&F$N3*xp>mM;mgk2oI_#Qh0^ht#o5ll4eymo$DVmq@UaK=a;Fh@(!|y6TdaQ zt~4x@PYpE!NyaULqK-##3W_$TAHNsGV*9uuFLH~}_YLdpJcYr8=h~_9Y4{NuGV_tA zd;QE$hWKC-7`vjwQdMam#);Gpz!dNR)#6ie31|M1Ww~K#M&+B;ihL^8jo}9`VsnJc z#VCd;D;*QB>P-=0zL$JM7fsu|Q%={otbxzOmat>shxhc5s0Jzbb5aM5je~T=wm2>! zVoDr!a9LLN#R>u!DIXjR?}cVix3?Xt@=W==F5>m4-#EXRHo=KNm&b6?WM*VGB#-PV z1n|iiZNZ`8_O2ZsleC8YL7XO@y($Z1EJ=|`tyG@M54xU5qtr9fg*r-DmrT9{KN~uJ zLKHhV1vWF6C;b^d=O>CEy)BVVc^)dKbx$}mDa-`RX*$m>`IVXN8bij%5&y7D7^S$Y zsEO(*%C7Y4TQB_6HoZx{U>Wm^Kq33UzP&QhcSvsTY#d?p8ME%EY_2(JF}_rYFkT%X z#r4-c2osaFN;K(_{t&EPUB|YN9|iD#^mF@DWbhNrUHJN7Fr!0qTOKAWx54Rf=^Z~t(WW#fKB>QE*W>`f%ka!bOcS#6c~UWOw{!^ zXR2&VaM_!cIj)F$;mseMeDBr1*x@b`N6r9~>uDX@^@Vhtn47XJsk!mDcRCE*XA@Ck zLXL6ZnIicPQ8wtG>iL}e%mI{m`A%5VR{AIX(_)ZH#YhCZ4i`Vy>kK8a>*uYk?+`yg z4_~A5+gEj-&d;DMZ zE;0qSQ_PI+iM$B1`V3xbqZGsNzeemDzv7p-=g@Y}EJLtk7*BuN^r;9#vUMn(N>bOG zZ=ZFYx0=qQlSa%PnfT_tC_~D_Jzu}}iT)IeG}GskI1m89xyFwL?>=iTE%{_$jvCz_ z^sPl2NP;B`Q|+N%1XF1~R24TTo(}e55N)4o9T^_ov)rzfzh&QDlWG72ZT-LIO>8WaHRHa@pjkqAT&l zb{yK3!-kCRwRzv6aeLPyKPpbs$d;GI*hq#u#HzofoF#+wHXdRffBv=w`{;uXKeCnp3y{L{;63@y)*gI(*QamL#==n*rmrqx9V?e^hIQoA0tr_=9YsX5P>LHHbZw`-qS zsDky>4Xi|0ChyC==^}_YDGYn)QZlq87hDwa(}ZR~My#-VERCL?E7=iKR*QY zWpY#2@lVphwn}XT=-w7s*k%+3vaAEm;^6m|>Svs(2sf+PPY9P-EK*a2FFPGtF9Ja4 zY+a6v2XW(#GxW{r*+k$AzQ(RSp~-mw921{2q2KjthWE`liT=JgRa{^9e&@=+-a`DL zx9=mpJfldoF$mvsLmvy5+_(tIeS9b^O*D`s@T{LR85>EYOUPD!l zbrJCsN@Qm@U#3_WE5WYBFL3mk^nlSyT^-}n6{&3+LH&jEeBnDMDeE4=XT@w;)-*yW zpw4{PStT7t(cK2&FwgJEuv2mr*#-ifAb{t4Tu*2XMZRb}!0*CNVqHyvu}z~AbKU1v zY*gBe{oUQt!st zUEe*tr;@drVZz&U5fc$Ic~^U8rw>;7I%$GI*IvkgW0YSuV}i-EEqk)i#wTUyC?U4rz3px0Bhoy0r0X2pR@H(QCFykC9RmqKn~*%#HRWO2?^VYz45uWu_0oJuqZl9; zTP)vDGD`Soi%#p``H~`<#h!s!BgA^a1ie~(+Q+8CJQ-G5hdR{4*BW;J0_&2OD zxzd(l(X6ineXjaG7XtBZEeADI87kCcf9oC9mVA^`r3j%Yz$?3rJ=+HGco1S0xUTCW zgN?d`G!fLGFhCv% zL$ev2mZ42i@nibIDMxq`MVEJXK1Bj;H~>_jMXr3~Z1#b#9$e}ih@_N!q6vMU0(twY zFMC_+h|aza4Z|paD?;C=hm=LmsPBwokioRpje*{3v#B6|KcI)m)Z<0qh3*O-+Ued3=a8{3i1- ztlL_>3P3nh+@e?J3o}_o9@hdGw|ip-(FKtRXAMtz_T1s)ojMzh3OitI@D!ubAa~%8 zmg9yJ{kTgI!Y}XgfX$0U0o_jAT(E_bk2RgUuNz|uhHVnKxTSj&H->f;mvNry{st>L zuKHj`V1E}IE%>{;%IoR7-VxVo4vipr|K++o>{Cp?`p(dMEB1LeA<@>0K3kve`juiQ zvh1LsUo??ixRAxC=x$SL$>_|x$1+bkYc-RnI!wGo06)QkKn(KtDO#VgrrtTwXj zxTx!zkE@_5B(A;$_O5D%IOd9kOY}v(HqzZGO`B4aGuuFDan%-Rjd;afJom&iD-PDQ z#@(c~!Ezo96n|gWGES&004&5Q^r4SJ24Pu7FyG^F?HBm;jRN&_VM<&s|GG8E^A&mp zL0x{;c}0XYd9yaxw6N#z&xYuow@W6gtq777RS4-hvr00q^A-TjvL9?lwoCIx%Kj1U zS0VgTH;zpZx3&49j{qTuu_g55AhKrU`Mj%Kc!@2dUmU84z>XtiBlUEWt-PH*=27z=Guq0X9mlXYt)kCp-w z0LNxF6H5<_yo2K>?=2;k5Bv~50#e?ZWogP+rU87hwG=Y!kvJPTi#ajr(=943prahT{XgXQ~g_SNYW0A5^&_BJM$7 zHNfZe$V~ESQSdC4LC2zd3DSO4Kk&1@_0#8THWBR^6NNC27`)wm-G?_Y)yIEwqw&Mn z@a>g5$p6ent>Gw&vfCKuBEIn;`ML(e`QeMTBs}CBT&ZvW!$;>Ek{lg#eBf-@F5zRs zcDL*?@$;h1ux|FlbQe@Z?TSx&0KAejc{K{xpvy12UNA(r<#_A#U3VYA??4i*CAzAU zc!zC7)}v2-@vWnHAMdGP##fDHr>F7shrD=%AVmNtu5TMdDT~u3eaV#x0dgr9k6>w?U_*PlL)m~pF zFL$j(cbT2K&Ue<%iEaMo%b(tHkl~)&WHZ4)RSRZDHIeCuLizDJYevvSg7c_Imz6JuOf1>h< zqKH35CmrCIP!+@Lh5C_Fel|cCn$Y2UB@bS!TRcWonj4hdUOb{Si$;;TBMAL&elg8) z_V-|xBA6D$aj-IkLR~^s1uIi^(xybsT zuv5qqsW&W`!&mgkjn()~GTF3{7o!v>P?me^mGR8eq+fA@kYFI0%&3opXlgQB_{3m<$pA+laOd{&LH;sr%8sugiyEc)R>bU{vP- zoKg?1HUcKt<*Rek+hU@Lb-{&LXW5eH`oM|jL{d(3*s`Lacn=BE#(aO*b)L(#!KUq& zDpKaRCt)7X2H(59qqk=6e1|{}U%iCq5L{qaajsM76#Jnd&MVRr!?+j|z`zuu(PrZFoA!Jiu!LSf zZ#cxGlB!KB$!KDgl=UGDqrno5aD-79(mh4fqSbS2M4BT-S8BZ~vX7)2D)LChc4(QN z_{w?|hEEqouQA=HijlfZDgH$<29)5&*TBy6@Te_l3g&>I?k{@H&p%dws3?A+cgxKF0+`7Hn8{_K1lbZ}L8-ty;B~HC zz4Z){k-xko;BQW`x*4R?5GmOioro_-4>+B2s>?9nUQkm#A??&KsLOo^KVn^9ugf9T zLaz4j(bfLCaJynRpN&-*witEg+oZpgCYP?ilya3tch}>@V0~z9EVPDHCsgSldHeI4 zFs88!+(LVdM^CD59J76Yi^_cb$Yma;1f{XZX_&(j98VC6AX_!Wv*W%Kg$xNsGK!=^ zZmL=Wf%d|H(6htdth&_-`Xw0jizrDdU7S@!bg(;iKF85_Q$Pf4|`nG*!6KBUyT(I=A0F}f< z9|U-ZMCC)*%0=&DixQZvju`*l_kX+iga49ziT-z}A~kxJ5(`>;H!9VAo|9&`>#{7H z=`NgrZ)P=AAE~Gw3cHp3T;{+p3CEuK7oovf;0i|}@&}2eCz-n|HKW!+QuN%iptdGa zK1VksJT`L|QUaip)@@Ux>ZCfsgaZ?22966%SvW9@xpGT($E}4_a4}cDHE=O0&JkSr zNkx4{R{0=i@_cnV)`M#O2Jl|Qvjrjb-A^AlK+BlE4u#_RXA1m2LnbS}Kb@54h7e&R zHO!)h$Q;|;>{_ck`Ye@2YAeyuEWB2nZ1>WRkafn+r-MDKI~BF)$}O&KZ|sUKSjZ9@ z0Jc#Qm2WAX6J6D6e4p}#?cBMLAskzJtzs1@Ba1=g?ZJC*g{h5;_NJ>S#SMG)E>|>h ze&(@=qP@*P{tbtRG?ME zOcRehtN`$sVGgXfgM^3m>TIIn8QUujil)!Hl-Xp3_TUr7IS(kp zV=rI zN8<&VuO4(r39*3QUL|v~Gi^W|=hB)9*vC#pNu4-SvRL`0lPJ{fcGFx`DucheW-Z%t zs3cMf5xj{Q+~rxd4PWyZwyu(b=b%+=Tmv0=wQ468RB*3spFp$u_H9)(6Hi|R$^abo zs-KV0=XshwUlXB8A&(Br!E1br>59L(sn=${`t?5{@B!4g&+B(~83i$hqWp9e4`#pKiB|LdJX41tV+kNCq|BG8F2x4 z6#=vhFYXeu;m=VhW{LDLie^#$j2E24;Xa2t!1#T5>HK17d+m32CB{lTwAubRUP2dc zb$99;u+CHA+==-@71D`bkICaz?#Y)GzlJGYdQ*w{!IW+x(9W0V;sLGtoCBNpbzp8u z_iP|b)dv6+;&hCr`gC5elYSWXTY|!kaaq>*o4-bGZh)Er*-WU%f6BvQ(#7(4NW{++ z879B=b(l9V@e_%7EB%l`;QkNF0`LSbm55xy1`4c8rwa4E&C8d7)td<_IgjiRsRM^~GNqD_0GF%=67M86(<3~n&gPRU6_ulq3ryd)* z+0b|GlVju-*({cyFJ#BZ9T!yubUuI(B4rdU#Yboa|b@^GOKFP0)m#2{T7A8M-Lf7tTer! z9*o59g7kXnFhR$0NsGoHGu87>GN?F9p?d8yN?-BhhF?AZ{87qD-m#Rn9Y9BcQ0P_- zPrTxFVoAV$d=_QrpS1`o#=1OXd!nP6zl(?AD5t|6i8;UgO}lUNcsNSZ04E@1Cd){n zw|eGA_VD1fKV9bTRodJ~xR%XGkfy(Dg7B=r+aLfSq?rfmP`zw6zD57~#C&ZTauy_uJqW0n zXx??Dqhg{7Jq&4f<$krH5qG&fQjDfa(@?SiMV6|)RF;@IsW#gkDpM1w4{sHA+oh2J zN5S%H6UUavMO#ck!i-^N_7Gg)q<1@Tn9|PlLd5)?D#6VN&|=4NkQL*r$5#uTg545VmZ2i6mzkdCt0V_G)`7;zhVv;WuJA?9vp3h)LGw zYO)QZ9{8RO>gY7*s$bj|GmfvtG!j_|^EU?}eijD^GG~2L!qL?Ig^5m8Q~Jo9lh+*) z!~5wea8ZhX%|f@z4^C$o#r6FIRrFLs&0`WWEbnU>J3}z~Kv%hB(dT{m9pis)>~qVd zSD2w#PjoRmF5NfxVaPL-T5^R^FH3EiL1MSEAaER+sooj#&hGi9qzWkO!-;?Vm0_?S zvH93lj%h{}AO71@?C90P637IuRi!KiT+Ylzp6>& z-xN5 zyShV1A`O*(3~~3040HE81-prF9)_FKe~DHJ3L6H{%bxE5R0{cxC33GJlVL zkLvwJ*`TLWz~x>N&2EpsJu2>acp`H^F%5S^^ll|MG?x=2ip_-*(jOh*62CJ-^le!H z0!@8D(&d+XdyTul__XhOUas={w;vj!`AYoKAI!0@h1O7TpbNrJn5%H&`pKci6iLplvj&egByoUK?T!+iuYHtG z+Km8y)vWW1TAuBV#C*8%C3CgOo2PVHfyfIt6Ja@S+%K&ISdh#5_8u#%k?S1!g0z2u z!nCDoM{;A~XBi-g`^mKU+nNp^ITU)?Z>2QG3E;`7oQbb0`Fbv;sJo%6>@A%8rA;s_bJEVU!hC#MF z-ilqp>)PQmcr6id@0NeE6VF<>%!eNI`1tMOk1wHhQy> zvbEsJ{QaWR?ji18@G0~4_Ei!1cZ;_+_G{>}!vU@29EW1q`j+!ylq6k zBZ^t>#{d#Q5Jy!4#KhZ$Kd5MTDI%_6>`R&7Kc2>t!y}1z+x&_DDk6NTdOt%W|Mt=q zJc$pJVRUi0PQ7S;&CT+5iFvN+NxrKBen-wF98I==^!~9p zWBBPf0#>|}HEp-w{i_d`igIa5cZo<6f+=vaW92jqyHWvV>v)1pfvWO$c&&9@uT~It zaX}S-ykw_6y6X%OG~lTK&x~tVHA>OThD{{81qx{wDt|u|O<5=Emz2XF4ENJsf3={( zvq5VgB!rmXG}(Xfx5!!tSW%F#55msBYyRpPV-5)nI($edCMPVIIfeNwRI67%OZoLa zdCFogS;^Ti=I$tMk#CDS)-78k-cY7T^4&1TJ>=?sErPc_6a1C6u|J^yisw@*l~>{r z^Lde(?Nlo;ndh%cY(cW9CkiM3ENw0p#1~J5ixu+~xgu1;+Pr=R8dfm-mJI9`a$mN} z6}VBu*Zak-U0a{+G*H;fb09Ew)ZA5|GzQR7f;5rm?lu0^qsGS#*kCuPPYdD|!|aT|90c&a2KVp~2(?(9&N`dB zMS9!%&-WkTsdRcTaOQy#CL6DcNA=p{eE`6sXdt4p%CN>TatO|Y@;)xX3CJ@gyNd5O zjrPM7ySh>-Vg7wFz{6=Mk@4{boQwmP`;B>O$aA1ZlPGH25RqIe*52{Ca|NGQ)qMI46r0D|kCt&slON9T+^}+38%>QFbgt<7T`@aUz=Gn} zVK{6`rbMH-dP(!4&qG*PODRtKsJ;I9SO+c$`^`|0LaK(!DM%$lCfOrB2m))Ftf5|# zvdZLI+CA_f0_x-*r-SvbO`sL+sbl$#1U$sq_>Mxi4;6S@|xAfQV{8vu7(7SRuW5qt^ zKB4%*-jrA6r=Q~^01c8TuqM3&tbFX>Q6RKCg%?$p_qG8Pk>D`g&n5sy^ZrOK5WB0% zV|fZTJu>!NV|?tEI#&*T3=b|=&${H=VNTz6cM6{qc5>TyU8IbH5xK8J+&cwdlCP6B z-PDbEp`15JVGiwPbopRr#VU*M7M5_o#w6X)WNp)g!>iB64}v0#_I8B2cN@a@=C^B; zvf+M~!tYMju)O9Rq%D>wkv$G{5lDe~=tF^}F9e>j#AuvVBvulXYe(`~{OmTdFjjd9(GHl9>%^=rryQ^FWj#1=i4|Uru!a94AeA#*o!Z0|WHBm9U99B=S&hhSa|v z>}n)Ig6GALt8WQ!i$=y8$lOc-9DfYV3dbfJA)w0Je|HTQ6H#u5Lyd!`toi5dmO=nr zz2XSh7)s`MlPk>gIJ#<_sbkT8#yz^M3>=kS58@hwgN-fLtKP&@LB?cVOGl%!} z*fE~+YvwKGt*4dEntqXU+?ORT$oIn^&dYG!&vyU%9ByEK*|_&T4$-6V@GYH0Z&FcT z`JDiMmoH1GhYsTNBOQRylE=rEaYuoc67rS`4k-0w`59TgURt-d;LP7jqEHs~QL8t)dz;#KH3D1qgb4emh_0TUGB&LkHp4)2(M%9{#8f z&CK(!*xoC-kx2Kx|WxaDuv0Qo=K)-px!QbRBg(+0&^R z_?iuoIgrenKt6CZHcJq$bsxv##}n0&?T=4Dv!2ESupeE97iHy!I~FhdzBLRURtPq- z-}@MGUvMcqo1gEzzAtX4K+(UWn9lI>Fk8VEt@7G308yg;Vh=kBfBR&hU)gS_XKfe=M&(1Br735Rzgjf&HIeyh zZ=WYzjh8J+7W6L1ompe2N5H&qKHaa41-xxl&ZwJv305+S3L>E~_%1$yNoZ~=5j`~; z%uCCU$w)-Z@l$CT2&J@Gs(*kfr1DZ6XCe7)o0Hdp(BXj?Sb}}_EY#AZl!M=En)5Y! z#u0#1i@Cs5X`_GQ`BqE6I`T&wq4^GIqPKD=u|(>UvpaMYDgQWG94ujBSBZrmYGTl1 zj_dQ$tkCQO`=1I*x~M)@t@mK~o}K#a707bH@-ekkrp0tvVYQ?dArt!Dky|W7pS%ES zJy&j2L(7q0)xa2iU9_|l#dp1z!`omBf*6lJ>Wovp>x1#Xe(-q}UIk&#zg`;w9*}?i z*ZrYPaG7i#%3w!)lVlmguMH+Lfhm+*b=CBf3+3(d z?4v*yd!vrnkWJ7~_ViuJ0_%s>vo62eit6HgA0ahh_C%yb`5xhHbKaA3MZF^iIHO%| zZ0DDZ@+9MWZwAojnZ(mD%erZWRxZLY$~6Lk4?RypJ(2SZA6wkS=G{E8BV>%0p4Gk+oG@QDZc>~Y@QH2S}OGx6XE=<NHh z26?!KzS3m?@XHg)5I)H~qB`_RT%elz9+j{&_OBo4T_G&1ZlW;D@@{Uw)xfT0t3nc)&72$jr|R zHJb*~nD?^Ze0v`U*Pz54h`7V1`=$5~4zt6j%?B1Y6m@@U(+IK8nZU{#U2`VvMi-Y6C6iy=av%lY!7x#6psS z3B7;)t`$3Sqez|~EfO0kb65LGjdoEJcjAwz#ye3AFNr`3o9f%@XQ!8AR>DmJ{#QL5` zvRrv&>ks}&27XgzT#9i?OatZ|MYH)PpVf_EP~o;nik1r0wriU)QO&$oMEs}6 z02mmeYm&aX!ZME9`MupJ4%h(53f@CDJgQaZzB4n30KB{&uPc@{*u@qqW!i~WmB)pj zd_V^TT@8wTM9OG&5=zwq8a*1#MW8BXHws3AFLxYw;oyTzgx3PGs|<^#{BCNOEp2z$ zd&@6*Pp@XnP4TKe!eG`a?{i~p0Rl=us(6)QO~Rf!U7q}<)tt78P_$z3FD+0zD$_=O z*z0aFFGQYqvO_-qVBjJz1N5YXZ>uoh+WW<}qVPr*gXEmCV36D!E>2@?ph(Tv=6y2< z2>sDvsy9JfwYwma>IlV4X{p9d;1#bUvtFOi_JN=HnexZdaql{8N)kjL?s|Xry{}(I z(Y-}ob0OTad2vfA#;Y294I+?--L=p@#Or4M%s>E`Gh}>eEPn zr&Cn0X*P6za5)TvitJj)Zn}nVqu`Uv_N|!DuV~p_Rn<=EtNq}()#D5Q>wRTDLLq&A zY+cF8iI$^eDs}Z}k^)L|W?H&yTM_)-k0M0<);z#$py+s!kN0o|;jogqZv1a|NQ~I^ zrkcZtQQ{ptV{E#$&uX~fbwrk+LCYxeOeU!-xA5OtBj74|e9-zpP z(=1sbDTYd0!^a~r?mUj;wmoY0V{Z^0leTFN4}x~Y+gii?v8%28Py{yZS)@I4 zZ*1)AiQUY$87VohtLaVH!3>8Ll$YdXRh)c?B_smKuqqK6I{eohcK9Xz<-a;Zr^TSu zNYN#4ldR+4jormnDd9Ly+$Eja4{RD%$#)$DAk;5;h_xKtdV{Ckz<&6R7u5?GIO-Tf zV)9QFJ)EAH2S(E-gXn(}m43eM-oLspXTO&yI&!gMK#@KUblgzyq&cz>2BNFg2lRtG` zlCnJR23yKqqBWgtR60u@pU>bMEI6FmEQ{hsP>P6V-UZOTS`4l>%P0r}Z{&BD5Lll? zy(YG^1lALi`tbEmN{z9MWjx-alf*97wC#D6WSHNk!?intWjFr~6i2XQ*0iOplSc#z&GX!(Ds!Blcv0Z@&=dWhshcwH{3BL|J z)(U6ki|V02c_q3R;h+g&IYj=6qt@l2N-7)jr-7PJN@p*?DwJnUb_~7b@?&#^#D^YQ z8-OvF^}R1Q7G8ZV#2!q@u&&f};pSL*fjqU2K85{?(j?WXHzoTDjXKr3VNf@Yg;yX7 z4|9Q`bbEb4YY~^9SMV6<8?&P*LQA@p0&`k?vw8zmt!3Q)#V3}I{`!$Bg{_2r&S2yklWbfY!BLnW`GacKjGsBev?BTSdMmil3HYVgM!z=zsUyBZa|HKS`|fI#2l5F@BZJ>P)E~p0fs9njS%5-jwgBUN5_>EuXlaKRBvW zD4y+ZrhVFdJ?)II&JngJCP53UjdWgO7@JKJbg|#B4q3ya!!SM2FyF{}zv)Pw=O1Rd zJs?iWPJSNKfQ9l)`&izH(ZSH0x$DRZiJ~kQA!040?<&FXKsKv?BjCC=b0-5 zknuhnG)BnG^H&GZ)WBO5VG0950|XI!Q-b{Fx8#wk!eZ$xLBD1cfNF-9yF~AVJy()xUw@?zV9^JCg{NWZRAY6?}GVgwc9m$KwUYb@$-90+hm3`hDMr zfksL?x(CN%a;KF%dI=V=;50!a2Wc&aXYJz3E|U-Y^A210d?nPxul7-TVg2hvn#Hdn z!7Jm{uZ|+GqI|nJL2yzF=Ek@or9E!hQGYmvcxGXsDCNK(!}#fVUwwP4-yXj`Q7NOH zQq0w(v+-k}jVTr@n>!$C$yw$L<)8e}y;|TV;IS*=Ih2G@?4}8@IFM8*O3=(egc)UH z!m|o%dgzekrn~8F1*kK%-N;Q8tC^4?(|M|8^Pqt%sGfamJOPNe1LJhSqB6Pu^SUWz=3wRpj>Y zS5_QeyBwM)So;+}MZ?>}Knv{`{qyYA^jn1-M|y`R6}2;~%)&P(2EJIdetX;ZSUid& zJ}<0qEaU9Pd5&v0?Tk+EIQqMhf_-{BtgBA4lergnsifOaLM%$(7ZU|m2maK80+&0L#8jGxHJBWjJzJBvOC|Qzm@*+N_hk_kKn)POtARV|MZ+ zhtnRWxXWkk-d@!A9|k>+JJcTCt-oha-QnU2$dGcvfy?4_LM&l0HTZw&i0=gXC6+W`ZwF*G!NIWc~v5H z)9yo>!AClJmx4d0Y)O&>V1`Kp0D_LcM5fjc&q;iF-F94b{KJhgC6gcW<|J7bwXRJ| zq_3C2j6oKA759q3;*bT&c~)#MMc|5u)LK;b(OCbfDft(?$tM3qd8#b)N;K(jipa|g z2`gc_ZPWXnS+W)_&m&twgW-5$kWwXi^)^yhgr8PqTG@11@xmo&Z@F;@s{)xoswBi~^uNoBE?Q35rqJpqW9 zi+Xc#UPYon;`f$KaY#-ZV!IO*bMif-D8=}uwX;(JsrVZIq@U``k*Pl zRWi9N1mp;582@4VJ{TLcfc~R#GW_z4Ut8O5GlGG%!R=iFifJEI>S2CxDM-S9uZ{ zR|7DoHVZPtaAKkPRB>q^`$xDiVjn@QaF#ME@-A!bX z@1&K3?uWuS5*s>>SYmX>Np;_Cgul#Sg<_^OcL9&G-^GCnPk65blqKngY8y~$3;hOc zndv%7C>SXdomyjznZ#hL|63zx_d~mhE#u75AzOh8y5YjtHh+XWgpFcmujjGxX1sV* zX%1$m|K^1&TV!d3^*Z+l(D%c@1vxKeD!`x5gB%Zm`tEnOYF)>!t#P)uXU> zxv4+Y`1xgVAaa1XbYSmv9_JwAh;0USiLWvLwG3N~ao(vHU(5j|PJ;qv-72gYc!{L= zP5@9hfrC5pBS+!PDkHNI9Jh;>%1EjxOX4-@45n&N<)#)G$hOZd^_yTy$=gpUT2?y@ zF!B8n@wNynj@2B4fZd2>Ddx{TcWtQp**ryXptXxKr%h%_aj@-Ck`rcj?R5miBb^MJ zat2{mZ(ErKar*`0SAFS)lno?( zBNBY)k_7h$SsiEy@7uwJdYr*tFP9J|;PA0$MO=k4-?DK-`VtIZ?y zTcXVcvUKNIVsOMHSyXv#UJWX}m_9q|_#;S@K9<%R_J2MjZi}aPl0nZ7r}tPhEO+km`i{u&XQhx`Od3O)Zme z#OAfF*y$F)lUqY5w=wy);n(8jnF}!G`k@L}b4(VP`_2ELG)ULjtkLzx@9)Kkir|1= z=65|52T(v?eZ&OMixQl--_Jz93B_l;&j@xn3JCW)pOZ>U8kOcsH4FvJ9RkuG44Wm`9OtF+=8EF{w>RRhweS0Z%tH^9 z3Z3S>_)CJ9mSG{k0rk`yeOXtmtjbV98wCjN@}~rReAFuUGh`p3i7AVdWjycHL@L<9 zAp=+>aao@+F0vzm(F6ocm*4MzNM8_WquM_7+MiL+bea88aFgc{$~I(mm$S4Fz_6>4 zjl6HhEhOU!3+=%K?jaqRWz?fyRkyFWhItB)urSchimdn`(ciT(Cd>zhLDTf>(_6{p z5ca1<*zHt-Ih!Ga3r>#=f$4d4rW8>`u`wt0Ed+&I_e+91+eFhRkgSKr#FPl}Hn^p~ z_1+A+V%Fa#5d0n8ku@mZB$-FIS@a0~X!t;dw%R2UUa~CBms3SLth3bL)Yj9U1D}H| zsK4H?w+gpKv_{{Sfz_r~7MU?daYX;vOW)mq(BRHq7?f7A<_}>uxuj|W1Tjv~wx2RV zr^AY?B%v0k21kAvD&bIDcTAL*H=e$$Ki4u!yR_`nE=!*?_m<5WWERg-_xTu+CVDv` zF13HRUB`Xl5alK-8hf2a7drk$76nN&@gG6Wy=oWbk^9D2z3r%Mv5vI58Z02C=0%4j zMw80~;LeA4-T5u`M7lW!>3ry#Su-lp3fXIB<;G9iB3ZopfqgqrechaWVfkN=N#Fui zDKzQP#G=SEhI#ZD^uUnbYV6jlkdqxw@;+ExktW$o@e5P*@vaA(Hv&}A?r0X%UXPL+= zTVker`uC~r@4%?~lnsN)uS{xiq;s2N&f;Kd8~lyceCvYwnC-N_v_d1jWsm_6g%LM9 zDiV+O$k^zL4^`jC%MF~xWMo(%JNTUFU$4o?zQ(~sOx-eq_*LhTpDv~EvO@pfM=tGXNx=g3J!~E2I_*=b}Zbg}nG~`B?zD zVR#%g*GTk9IFAIGb1jSf*4uy(Ix=2e$YxJYr)tEygtgHPTpe~}Csh^!tImadLEU@x z+w=8JivTjBq(5X08A}kAWqICdz;r*(l@mTyCN-GeKMt*D0szm>9qwj`8ib;P-K zW8sJTJG%hX1wP!$4Dpa^>YDnMn7Gc72o~VjR|>no(y3tw?{4i8LXP9e^1E|~%K3P^ zU4hpcA<=0rD1Y`&wWFmdCk4VbWKi^Z6}+D(SiDcL6qI2YkoNtc2i9+zx^0i3Z?Fzn zHt#qWmEMTANZE(`U19YY0C#b`yY9_s$zwSj@xS3|MMf!>$D)GIbxlgfV35-hPpN%? zrQ!z^Bs~UH3BJ(Fw4n7+6h(yGxG;>G;O*~0gv~}^BWE$Qv7wvmVq_VLf&o=EWB)W+ z4}#S`h&T~?d}l(M1kbOaCz_WJHPfPm7?;HwyP8kOOebM9q)E^R{gxZ!6-c`?)N*%S zH;z~i59h<)mji&!n7`4L{32U?KByz}h9->D!CPv)(|<<$C}l!=@%QCmIpcp6qqKP>M7<{rwv;2uL(AUrh_B0FY$2>c4R!N1tL6JpWC+eWCQN!PU zhaulJbx~TdwNKZFn0ZS(rAqhh0y4ii9U#ChlGZ>KFUN?(>r|u*O%{J+(p}sP6#@u~+u5&=iU7|OY8hArm!Ufd; zVP^%ht|fVD$-!p4QP~0k> zcR+=|-dpv}=NYt7IqRm(=xq09WLo6W?Jw)YeY1awoA4$)Mg`{URg@8?!(UBQVy%Y}P7AQ&BEm%`9z7HqvNwLZTOtCk z2M@?s3*MFN)G>GDXrEfK=Dj*x+-=#qKY!mP@BFmKnF~k2%*HIs=yT~{d%w~FDf6Fo z#Vwv{kKru5*>d&yq?KxVYlV0*r&$RG>e|<1AMDnOZ2tQ@kJf7g-5DxLim$LQpxYvr zF-~C^uRW&=6>P75&@kHaQ`Z_yiF#Ts!*{hD?>ln#c~dl1ni5cGFZ|k->8_l(OI!&5wOw6ik3WxbCUfM2j>@D9u+^5x zg_x@68h*H}Y<8k)OwBP2N|#=ciksg}pzf||PC&Ex_%1{Ei+?ikPB-kS*@pl8@{3sv zS47WIzJzQPp!b*VGhLDi`6D$Oqg6|6`Ix^qWYsbtR*tJ}fg$MU%zjnuW+Aqz*MhDo z2I_^Sy5Aa>*FPT;QVh&D=|78Ee|MI^WaBo0YH6(@S!E_sF1E%B!hX>Tq|uolsfvmNY!#X8T@u&n34bW)m5xCz=2{6 zh~^UCdCH$>VDQ6m#m*Pfu`#KKT{kwli6c{>428C-^ChmTCGw$ykYna0{72MOIg=*$@Ub&f7J$2Rg z1!D#vm?x2edgz&k_66lPoIB_~h;#bu+rN8=E7b_|au=nCtM}ldqYh&qdli?@Q~L81 zgpc|js*N^_-#t}TdY2Ej3wuc3Qv}U8d*{?Ks_nA-14CeRU5<|zG~vmXjvVp!#~%+y zHgTFDzEd(f>vQ;M>T%jW2$Y3LT+YcXvPeN!JisNvmn|!|cXk6qYbq*uMd#kLAn>MJ z?bz(<8^Fmm)?C(}#FXt15dFqRMi*c!N6oBy)VH|a__s`*Wt}xosV)BWYXuN$tbFD# z*AJ|8bfejFS*F0+4Z?L!p`XX&p{ED*{aYIn$$(*_@O*XI^$^fyc8=N8Ux z`jiL4AgzwM>AOb35zdprP|qhz*`c1Spjq0kP z;m#HDr(3KotjI9Xpc(O44Qd17xfN7G*=x)I zsK|Jv7=?RSEC5$$&;zB-*4-!9%DnVmIxbneFVc4rnb}ojDwS{tNlcLCjsf3azN-mT`iK`&5XG4NgOoV$zw$#Z& z7g-TN=2c}cIU$xpGs@;rAaR*^gPScF4{&i#+@G!;xm4NhWQ**4=lWgaGQn2II5_k; zPACAhS-zp}+B*ci*Vmc_Z!H*?%VdNnGMUm(FU;_-i8dC)VtA@KAm2UpUEx$3xzjwC zM5AKAuvmBlsgoeR?`P)#<12_-qtTIpNY0#m=HR8-ANS|74~%noG-QD--CJ&9vqK|LxHN=QKZY-C5t@a$S!z}13PH&`v*9;>w&8>h)!yit@pBy*;FV;8Pj&zo5R z{0TGW(PWl?eM@FtApFF`{8+)Dq55C6W8=jmFy-^hj!_g(N*j|_n4e-u*=(Co^Ai`B zvQL@h`-h^hB$hOG?Syl=#P@x1;0}%BG`VTwh1Z{A6IdOUAV4(q*>OC*EUIl8`NII0 z51z+?0Ol{zjSQLvkyceC<7;}}E|gwlgTyY1UJu2-tV!rYj)7)ydO6{Wusla&u)5Q> ztOq)T-L`r#dRPn3YPAE01W+DK9J^Cf+chc{>Q5or-*X$nnOMCz6U5ZKK)bsOAI>J+ za9A40Fbv6h)SyqUF+NrEs1CIEBI|qLo-}-WI&bH8RaccvZ`iRq@8cQ2z01r;DE9U_ z=qSAudhL)alq9WoZLHwFpKaDKJ;qW}!N%h_iaacBfkO9lwmt+Qf+E;R2buri&o6c; zgj}G>pw|huNB;&rVKkQSPDm7wxZi1*Cm%}PgZ_{DV}m{0hrs1{YJz53dgW{zIykh8 zIbH?C7&VMF`>GfrHPx=CU+~e%k@7bN*6(2R8UavSpZbpYCm~rvnJKg>z%zA` z$^uR`khj+3Ea1nVm;IJf?+XLm3)&ZPMe0e7zZEwNFRVtvK~ zOKmPe)`6H#ttsZCQz~~U!G}2?E0|Wx3d#7^GA5FA zGwV=^vMH3`6jfw*?6aUWPFY*59)#N~PI8 z@(uoaL$NIPo@5ckc0hj<^=Gp;cit~~W zpGj;)$%dc^&?k<-7ju}&I{Me!9>FPmDO>|6f+WhbO%h}A@x}2Ss57>Enj#|ik-llb z`tyjlgsxmul%%l{VV0NQoRP>&cAnu?txzuriVvP(9nt5ENaB0&gO;*FVVJ1YefLZE zlZY$L$|YrE?l+B|L<1iKLsZGqgpTmVEK)v}=ep$j)@1ri$PLcm{OcE@c_AAuu=tCJ zrPf^5AXYE)=ks#`3RoPzQu6KSL!-ff_V{KS{`utkS7B|;B1jU)leqF(6crfKAIE@t z?%Jl>o0APCs6{S*l2ZA-dY*2P$K+haJ=E*#u@&R2qCw7Fl;yW3X<}MQlteA?1ERB) zuJbLhdPrkzR6-;D!)1;k?4a&k|KR%A6pzTPzm&YNl&ykDP*#&mTa(}AiMrvbSFtaH8%D!LX!+L@ohQzVHRG9%`5TG%eRD&&{$RKl zZMf#KwKgP8QU1L3flq=jJ*^Ckfr0%|CH|b62vLyWeg*BvabyDmR%L?Kf}8o90%S&B zP_M=Q=4T}XRhpFL3BiW2eb<&4pqwv*vVhbooxn>Ms8ZNw0m^gP4XYt8zC{){y}EK@Q9mnwi;|nQ6@a`hEB9uA)h%TvEGamAdy=>TK1MG7AwON+hqPR%vbIf3G09e>NJtp=iHzHL_B&Ywf>7TM=L~fCX zb$aJd{f1upkR;@4u^?4R;74t@ZC_pU8yPMYdABp3sN8S}AG&DZeM~G9AGEgCc0H4Z z=jfn44uy~F3M0RS8QD)$UN2wr&3C0&7)6S2%Q&m*ug;BMNXomg!ZG)+s8oTyp~RBU zWcfXuh$$65aLn+@K6rVvO+fCY1+`|%-r~rE6_TG;(_ggFa%#Od2^m-i+rA1=Q^A-m zXR}E4*lqpyC=xHit9w%lsIGNQ9L0GiZx-KM;)d$O6B(Qs+ZF@}6aY#I<|a!_(B|^t zjD}+LR|tn6(nI6JaX~~H;eK?oU9jnu;X@{Y{ms(Fmp~d;yZY z=J`537f#V%(OGrlpBksdwyr7b z@55Cr&3<-kQwlYcw3~wV?C&UCuK^y#*k%6uwHct2 z?vmf+!-au%5ZWW72!07?L2N4nZt%l!OhCc1Y}*zbBS|aaS|T=&djM52K$85vUZyI% z9S!r!y4TaxHvt)Sec=bYQ|#f!iZ09Y8Jx7%TVytQah!nreyER^WkATMWF%r5=MmDH z=9$2Lv?+k-epf7~Hr8-z5_>Ex;hLkwNaBhx93=!fS?cy-$NWcPi7Dlic@Y(aboX3p z_^7)b!zw!JXx*ypME=j1jf0=@p8#CeU#<5n1)&GZC)6AOz=sdCmTI>H_TPLPF;hE{ zTn*~Aoy4&fMU|0irfHf&!Fd|OLQ`c!Q01TCB#SoUx@(2J2lN1k_-S+B@w~2SVPp^E zS+(a7JBHNvW^3_aeI$zG>t0$oi2S#Q(;!5qDVu4-=9x%slm;9+=^b;^Epb^J_4QRw z^YaAyvrq-GH@1!KjwbtPsf*e|$oP}q1L}xvAZf|KSTz6slK{ES? zq%6kCKa)~&Ne+~v={QdD8RK%Y=}{PlV;C=R*-+*kq0nU>5m=A4Pue58ePv%m(3_jO zyH*;a&trg5;&~A1rF(p?|l!!PPvDZvcrK|n<4(*xWZ|+He)$YvWKtB`7N1z^I(2A z&pO9R+ta>xYp*rF+*Yj|=Sf2SMTQU+djo2enS%ivO`e zyv!|ugEvu*AvJ{RJDuYUJi#~|JFwq zyL7YsJGAZ6YzPkw)FNgWM_ls&bE6xh?%RE6+7tmBhzSc*o<>YqW{IfXX_bSm+l~i{ zrxtQ#+I~Oxp=1uAX;JO5o!^O}6z;#{Wv3zhH@tW^yU;1~4VpRWt3V3Nw;)tSqWuwu zIJJuB+A5?pTIva>@t40^)Zi}4Qe{XSZNccmd2?Yt5(*VJGJTW((X?sse!dr+?D)Q3 z%9p#m6+)^hkUYO`#Z}CqHs2VjZ?T7p5vF5?_a6A#$HLa~f9qff({8APz{?5}dm*($ ztn}U?N+c+Xe*QtJAaGbUGIc=Bfd(L46zMbwvv>h4IZE<}s!s%Nc=hZEkLxN!oXq2x zIFe-MGa+uU_ZXPzBU~Y%IucTrGtzm6lU)IR6oZ+;k^1W)m?k0Mw8aKd2>SBNtxcgW z1>wEyUs@P!kL}2thl?Rrdt}Pf8H-?3C%O!&xc)}BK1AIgV`{owOlJ7K+}qg{Xz@|* zU(kXWoQEI?5&-DQw9>`>y!80R>QgL%P4M7_5@fdA!dNB+B?qbK%bhg^zt{UG665H{ zTXVGwQvUA_-O)N1+_k-pXTK*13|oGMI+P%>O|x$~N7Tc)gcYkW2sX*T#m@o&03l>X z!6jC6w5ekR^ErJVY=y4ine*xURqeSC19qwD?Mw$9ui?gK%dcrV&!T4LTyO-aWNN_v z)Dz@Mj#f`Zl&Futj7J)rgc6XPu<1jFVu)yY4FD1YDJ_X^a?CGA(AkV3)Ct+(h{Q4- z4HA5`1^? zs3Z47*$%NT#%lZh4mkN)#CkHuhHP1s0v+||TA~JOGTvq!HH4*t5f+HexBQx_mA*?F1Y^RgN$*%jRxsj$|{X|NX0}{!QqcuiH8jFe{ z))mK>tdw7;v9et9`%qk=bUWTS))*kiE40U<+bT;MT>;2zGa|0+C*mvPEPPZMCebxq z-WBc{eUdrS<0qQkbAr_sUx|L$KjBOmB+7TNnZL;~^65f$Edi6-Pn!#`;!{lpD|4r> z1iDM7y+3KhMkdl0VilsPP-4zMBo})Ztz0*3=8>T4)RTn-Tv-U~q}~a%#5sIfUGPs+ zn_vjsQzrpnI{l7x80qTPjKm>tl{%% zg*l-a2Wq|uc%4={lRN%$wb=fLX8*YrO1tEA(fg1=I?p0bwyrgu-yh28-SRauxJVFgTV2zVML=}kL(2eKLOue}-VRqDs9vck&|@W~G8%JuR}mn%L#!hOS_Yvf=7|IdHkn={%0&%y@)s)(Jr zU|vTJkp^b z3MF|q1@5LVKU{tUWDPN)I3t&{ZWWqUr$nD@g@AhAt1ZJJ&QchB9}%+b1DSs&IS77} zu#^SedECaZL62M1wG4%3qfsyqbN2pN*PuXm(Ji)8rJVh@_5WbX<9W97Z z)k>-JAo}4>iTARz=G@h^bf!iiKsw=bUNwBLeTJIvh4=gf zF37yzLnrMGyM16|j@&PsMZhorq(E>;e~tM4(^iq)%LV1Z!a`<|srik^NK9QVBsV0< zG;gc0POfJVSfq9)^Ki#T#WQ3()3?aF zZen!5)uCDJ&rcLV2tts*2pFdxrmGf^79~u_)IiTzcN-yS#i5COSUoBy@T9m3id~s4 z#T8L6_x4CW8DKZ z*H;4t&?}FChc-J08q=~0Kjc&XWrF0eOh}Z7HEagvELPLR6Ie7zcfUx$NmCZwTfw(F z;T9;9II-w?0Zc5Y0~=?b6Q%_e6ufx!{;K3imPUaeWmqxvR2e}|xRia~U`+Md;R4bA z6a|sn#S%r5%c=3;T@9!>MowKm6(6s0KfZ0?PvCBxx7%@N`i@;Ye&u>TDt|v0F)sY? zj?sL(voIlUmBQ9)2xx)Za7dEN<~a^HHgwT9==@Na6AeQV(9#W8JXbnXnQzoeo@*^} zCHH10TpDxMH)+Y|Dw=G#Gbr}sV{F~?)r#N;d5akenMctXfSzU2MywJPbEzrS2|gCN zm>Y~PqgbRSe|?siAZh_{8Py3uK$%n5NgAn91H{kR(@C3cQ~=B5z7+Z=91mCBs-+J! zvkgDWGf=HxSnSOuhO??D2&g+@90q=6r%kX|6k%Fy)P~LXMDY4V_m5j?($Ao3nxn7^ zu_Bav*an$j^mC3??7{)nUQOO}xg{>-yewB5V|j2FYfK?%3}yW$Hq#}TJk8)8oRvybdAKfUlT4a4N*J0$TNt|76-Jf$72npk$&$uylnh=^=>cxM}7-7%2qu~xEhaiIisHQL_ec+jL>h@s@s9hFqTbo7`w!_DGVb_S zGb0q;p}|6iAA;YD9eE8|c<1;oy2i;UE*~u*!Ne5QYTK+{d{8)hmQVc$(aMftvO812 zI7zV4CsFO46MB=gCnu?;`e`Da#Y{*MIWjXfq`5Zvo6OH+9NxLtgR_*%dni^YKV~e@ zHk85K#N4g4=4e5LlU??UHaz(Hkj$yF!qq#|iDIO5haaZp@Q^!S}&2S&clw`w{v z5{*J9Ft2DR7m~d)34V-+35xraue^LAhDyn4e4nE#zM(u3m*;t^?(dKI&Gh~6oB>oO z!T`yee?oGFTn)~841JLPPQTICS;lupXry;QgU@B^zlJ^7S19`S9XLVay2_OI!qvw) zZC(PAkH9Md{M%laWEKO(6sl|brJjO%V+8=`5Vny3WbF!AG4PpBn&0JI>|@P`nw-c`MuR*SgHssjr6Mr7>^xSTZ>F)rOG#Tn&)7ZVBwh zL75(C;6qNd(e~3}Pc`pJokoCOG>lD+-cq{hs$@Ep$!y4#r+zhPC1@7b?8N|1*6Bi_x45kLO`*n(`{IVW5Tqnlqp9-gPsdu?ZyE7cFw*&YReo{Vj zBXuD3Dy>bOna$kJQjJjSFptuG zO#`$@wS`7>ma(7Bg^P~ndMA{{ET&<0KoNJPJx?FOyGA1|9>o+wl!VL}1yxfL9!QCh zYpL#p4kM(uJIXlf0#+W5wt6icxQ?6C7G`Hwh0#jxB86Ll>&#Zx>Oc`Y1(zQRB%y+` z6p#lcDAPjJBBbsg*NQ3>wlU_@DnwS(Kl6MO#23$-)Qq67 z%5j5|b1IR`Uwf=UX*>%w17i{yPv&mcbif;&r=Lp!7UrUs4cE9h7qBkECeXV#SZ5|+ zASu5R(Cp%8m``gLXX5gR!B_{b$_!6hmd7}%#qy{DGJ&eSi}Y7G7%XHmP5tDB zBO@1L2-GvOZ`rE6MWJl@*SKGu1aX7W&1oSML6TAGK(+0L;i6mmpGsHBg7?F--Ef$m zWTnfyW^iI#S8UlGa!>j9cU_5M`yvQi3b^?u)rMHfdlIHDBJqSN_1WUurZ@<^RGOMR zT7ae~*o)71Yb?F2`kVI07tC3z7qArRZ=o8UI6X^$D)v0{Zg^ki=W*_Wem+S#8QfQ! zZqSuB2rTK@(EXAVHOw%1U%@c8mz1JL^}g?X+s1D(iwDi(e?G%ZZS|o_@vheWRW1UH z;F43Dr^1chJ=t z`#X=3>hPvIWoj5>#xqTqb^Y|XAd2wy3YI{23;reIeO8joDWszse2c(@`{Y_q@2*`7a z@N+kg9Jwm%{PAA?tsfdo$AwH1sG`_H{94iJ!w!uz>H(}{bLfO6 zD-`&hv1`7kBA}L&8j@AK5Q_Q&htllnn z0{;x0GBd3?9Ql2fJX~BLF+OwthL>_3&-HZLS5GnbO!Dkoh@57Lk00Mfp`X@d>V4a3 znqv5k2uQ}LD3Y}^D+u=o_2g=<`3iVH49pDl&FD2pvH_WY!w}R4w$rNH4WO(xP?o9} ztTu%%$h}7nRuTIgd*sIfpZ0;p(@2HIA?&rR#2lWuDzf zEES7&*Z~U1l$P^6PgCN!r*Pe)lc%*&O8T)7hmz$LW0lWqDW`C60G$QX_+g_xs+oE8g6{NyG7J=Q zL&+cARGx!w0bwirVkUTh#Two@?I7WX&KZuANThWB4K9P8A75aV^XYUPh5Mec8D z(UqtvCmFXiO{>!P`FSoW&C#qB#D`ZQ3*=P&6YD6x#R~%)MjfzR!pn1Zoh!PS|R;+o(LkglsTY+aVjSlRwv31_+XlD7U6BOA$hoZFH7-PIsM)d%O=G&}49}EVW*xd~CCLE@}r|cwc3ue`=uxORf;zs*#9)eR9 z3(bz~n!O7`^M-6(fd*VunGk%935Vi1q4(Jz);R|L*9Q$N;eLOSbq3HTGZ0gGIjuwv z?eArnFi`m@g{Bhh%LydkoHi<2>Y5pjx zVfo*W2EYQ9el<=1^NSt5(xLS<#ep)?!*oaMG+( zMD$ajfdOb@w6dJy%*MXsTmd*8JcNdwpsgpB|$ZtAoUs+SuyBIcQ#ambwP3S3XE zn{|$ZmK8Ax{^~==eRd$?jSOQWY4JBYqEaw274YuylgmkpY*5i4D){*ji0GBqYl}!u zefKD%YKB%leT*F1{FnILtf`|gsg486Tm}dJZtu^Abw^`dyv?;b7U>>Q0^n)e^Dx{< z?f){x_v;e2ow%7)FVQhmgSCgFIpA$yci0=?jg30ecj2cXQt7YL9fG zqt~+jb99;>#$#W>}@?oA}_I)iK^~Y*2glRJw^QGQ~%9#6SbVFpg1p6nlY8#ua-p zP0ZmAtS=;U=dr%#7pEL>m~xPSGpYknESz^CH6@;)tpT2Hgi>F2{?;4c%R&MnD%Eix zqXFp>Ax8km=llF98#_R8>Xjz@h8Y?$v+c)*s*P>2VqDNaUJm}{B|?;m2&-GK%`L66 z;p9RbziO7uxaVT;vC6PH#gwZK!U?wHxgk}Ib8i$GyOQM@|HOPKmhLEqY5F>bI?^1r z7V12cdFfqTKU0bJku?dR4#fBvFCd4pLAhrK9{`VAS&PSkhE3yXZoi92CU}c>T>e5Y z*aAWZX`keXwy*%>Fno3}MVX-p1GZr213kFbK@qs3F#@~H*@21Y>(X}e)Zf>dwrz>@ zRpWKQ5DUiEP7z)4Zw?$^@_C^^0+U!E%+9r%gcrzD`*r0R4iI|P-Ew2N)A3qdQeuVz_I2hYb24$0qMCC=G^q5i5+QiQo63 zu~HZkW4X!DcyMEwKiFdWpU5L9!=y@tff4DsKN1AaarLnFRwSR+*_wf-C{nf#IQp}tc>vy(6Hb3Bx({{-ccigx7{PAQh@!0nyQ15~D`!%sdyZ}K< zu+_bW|2W68K5sug#@zDyc-#|CWm=LlY90y=a}}7Ikt)H-c$L8teC{)@v^mH6#u+B* z>^ZIWm&lZgLB$R)2$}AC6L={}I6Ys}UF8e)+UqYyNvYeNX}(|oxYC<1j)qgQX(xuT zs*E1~qUgN*zN21u+~M_DZtj}`OD#1gB=;Cgnfr~Z*w=w7;2tAYM$q}VQo6enhg{eV za;#WA%Gawvy6t;1emxyQmG*J&jAmUBBw&(8Sf4`7!+-vq&5mtx!KY+_D|xHqgN6XN zKyBML`p>QjUbO^vw#tY`_KnV0gG%C|w9Z9d)9w^iWiU!@{$YcV;zz5q z<`i9Vb3-#szPiqhnd@nyV`KNQeb~EXX2lpE3HGCOSjT^_aZ-y|6p+3X5%>)oz{g7h z@?6fq5j2grG&*zn0sT|hDS9Su_pn@|P?hZ}qTs+CJCMNjSKkc54i~P&HtilFn$-30mKO3@vkij5qm-{DaZH85xz;U}_Fx)-EXcwG{s$iHg zpgvtE!Gh2ww}vX_V8HAWfk*4CZ_gEUv-o(iE_T$-2mg9gi&2?L-ykoEoAL~1>0%Sv z3rl#JN%Xm!{PjJ5A}`B#_uu&omYRZ)LE}PY?~i#I{b>{Jv8rD~xHg}1Pjl}+;uo=Z zvnaw+I9eoFDx*@I`IsqV06Fg5f0R~9ma>=J#BK=u@q>n8hKrXz8M+9nvxlEbXWk#y zR^9b)jiqWBca^0nj;Tdh;`%McKj@703F)jumISkNRSMQo5~pR~^-UUv0(2l%&5D$; z*PpH!>md+5%S=W35kAcXS=G&b&cSiswJkLEpN6^KY~gxlIP2*rNEcJY5LOw78@6*0x0@ z;~bdBt#M<)nX14aYg$%&3)Dzd+>8Yg!iW5ohADR=grK0lf2@)C#0Q6NRR&*%)C|3| zdJTgjmcmOXEE3qKcwCjyi;*=zC~mc1EHea3%@ZyCdGa%4v5u2OxEZZ{=F$5ONT{c@8}LSw#^)<^I3Uy1wG( z1F2=5KWtmy-O78zQL$W0`uE*9gCH1VSnJtyF((H$euGiU-SxY7hxMCBgQJ+aDG-!- zb5?ni7HAL{&E1zofB!-NFt4nY7^TxqFS-dQ^_nZ%HsnYyfOnKi9T36jbr6#bE$_Ot z(O>uQl?V)eQQ;5=!!^CCDhRb>B#AlzU~xR5h8p1Dj(Xk*R-NC~N1 zc=;ffbybZedRu*4$&|9vj83R_>vr|Qd&?x(0GjTV%$C1>XAcllRbnXoKosOul5-9QI&uys!_(j6ebu>}511KA zURr;)j*Ve`Ehd^hb2FqOAZ01tIWss&j*&WgDqKKc5}g($Hd9SAA+tee2HZNs=AgX?fi z*6JjH>-b~}OL9zhaT?q;w}+i6it1bb2#PDD6?eaH=bo{Gpt)nQI^bWN)~93Dmo^^4 zFIS4%`Kt&h<#YxVq_7(-__z}rmr`}PS5Vb9PCiu^Efp7g>Vpn z?XGf*sC=rn#d(f7+=T6;AU@xl0#%%*hf#h^2x@afzS?Y`Q&@!pL6$@B1#dQ32q#aK znAgrm#Ms%Lt9Th$BU-5b5ejj&_$h0jcL!~&0^w&&#wCjnje$X5I1FjATap`HsL~fw zN7)U}zaCq10xV7gHRS5eFmNm^GdO=I)^wtWm=#^0oA6K#zy(ivX~R}cdU zaIc>Z%Z(cDY-!Ozc+$vpWiy*P8%&Qso13u;42hrKwJmmnll+$A^L^5p;}9D-6A^oe zRI?jN5sbhYcbQ@?#}13KOv9Jj`pNov80q~G*FnJ^NjbBeW@^Cg$U!?Ne9NT#2`}XzB<<1zHHKsbv;nR+sGop zehh}g4hD=)l%_DJICRq+l~lL9yyX-ICQ+7(ZKvn*bILKGvFJA7)YKg-LyKma;dTCi z7RDiBhZ?U9SwpQg<2>v5c@{{PmL7}?T0|2U<*m6nPmyBpR@d}xTiIbzxM>I;=~A}!!DK>%aHT6vf?tNbe{?Shl!S2jSZlw z2P=PpAjpx9L}6CL!5Svll+n8b%F>`Xm%4)l(O!P3&}3E6{>=)b8&U?4!@dYm$1(v| zshAkJQO`%t_IC!vbI|yy5^*8Wl0j>pr7@u)pEH*54fAnFTWk+CL3c-DcNLdHG1Vj0$Xm znky{}#ZdI&Tcv7hw$9|dc(6Rke)FGQ2bhgh6IH#Y8SScN!0Jq2drg@5D5YWF<+{y! zrNc^#wW<+GxuAS?0e6Bb7xD11xsfgCa|OGQe{}F!emtt!@0m$)qYrh**YM1tv9YhV z&uQJnpA4std;%Pp5lZD~-z?1~lX?r`+Cn_{*`9-aV8W zh_W473$a&-_VN;2r>ma?xa1@qKR8{A2azU8|Ima!hG>RhUSJJkX4TAWK!4k=XAoT*~EI z3m567z3AZAG2x257= z*6u0w>ospCGHygEt7e9R@Nl`*Z5=RmE){O&3=a=oo_amvkCg?0a zOIhXBsHMw)8Url*_1lQKOV?=TM&~ShSG15DM_#C>jD-Rmni@_#+c*Ok5mo+SG1iU4 zOCj$;_dcO4`OP)kTX`QpRy91pfdguFnPM2DRgH`{okdP2pG=a&#=02H1>< zxem)m6!B`9l7r{AVIceV_R6uB4`qXZeJwasT~8R;2|+%hy&CTfcJLID)5ut|9TV5Y zxngm~eJ}=J&8b>U`K?{TJzhOO-s?JMv!FH$YL3P(BarcMcU}471vLg;n8?;wiht@U z5%^wd@=vebknV;{rwE$u5s8sH|;VJ-9vSjSu(Ey`?Cy)}1t1GFfa{@ww?1KwKdrE|$ zhD20gjznI9TpHr%7SmMvLUUVEt)igGM5#8ec}NQHnCR+{+NyudT{t;puGvt3368QT zXk1k-?)#e`b2l!iz9!A7W=NZxZu}^DRh3H<>D~a7tG)c<6oq2g2*mEi?S$3KO3VN1 zSGROpyU90FxFy4Ww~WO$x~oYXN2qf`QlPC)JIPL<77}Gxt{)m`dY>(I<*u5_Hlma%2Jq(R0C_9E zXl(S^xew!u&6C-;mh={2b>E~W3xp`Y#0@`hFW0R~UNP>s8^*Fmw65e28uLLU6; z&D)%)Paq(z@1AcFTmX4GHnX3aCEESi^LhMnXgpXP*hlQNhXX@8TVH03+%Og>EVgTag|H*ER#usxRPFPhQ7CUE9ZQV{%b1vW4PqwNv2eYw*Rn#F zHjn?{>SQSZwGQ9nl!@+T0#3rc6r=bsgz23beDAI+`p1`NumG%wj?unX+Iy)pb8Lb> zqYvAu`;9|h0H`KrI!xlC!BMaL_b#{(;dTA|VL~Nvyf+XIR99x%FHKVU;sH)(zE2H_ zxCS(9#r*iOQen^=u9u2H^Jke+fR8D)RR!WW&6H5il!w;yP{|m;B2upR{R%)f{fqO{ zNiYTAx&bq8d@yaQ2>JXw@9>$?svf>zBYS$}igYzbdI>H4Ef#W}aUVc4(W_mbJW=e90h>uohngf!q9t|f+15j~(4EZ?hsw|Q7 z<40XBQiHzBMQ$%6U7o??bfx1YMOls$YiU`iJBl3I>^d(++^S=sGm4O3waa+rl*o5` zah1+t5}UMOPIRR=;Mn57DD$qiEU8pj5-$#pkrfZ*pRR?v=!FW%k7+z6I*~&~$As~1 z11rim;O!XL`A6Mh&hgKjwb$X{|43=*}RE}72q(f*%7(?c@T|mEp zqI5-E>r(+|eT-iNIfpz*=fDg2gQ2;7&%a_{&)<=;iM<%!A0&Q7dNS{LpU7xkk0To5$U=`2-2Rx${ zrcPIgK<~pT(j^G3O;JYY&v5p8mK|H)*Yss5&2{eQ`7X6gBtRF$7DTK{tz%HjRr^BSvW6-- zN>X)oSN)5EKJ>Av6YvwQ6z}IKjv#uvj1td_6RpdC=XLkB!#Ggt{Bp6Y;;I5Aj)%H4 zD8VcyjE##mJ8WOp6%DH!!F4yazNZWrHRe@^t&qobAQlSX1(IjkRfOUy61yqkIZzt- zI6b&AeK7rPnr3^Dfg-tBqy&|3hQ}ll3wT(A7vCH?PU&Nu6H1m_(uflMfXfyeaXExi zyxhnX#*R=sMj+Dw+y7V{?+b#m!0SuV3!x|EZKSQ?7jAh+$rqZdLo1>&wD@=p4gi)M zcUGlo1PGCPb$|x?L4aJ!DaUo`W@Q-rx}3Z!L^?Vwv^dD(4pZif3O&dv67&ChEr;cE z|E2`9{(e|$o4-}{>kB8JHCzxGQPA%;YY!}ic}_ftk62V~{TMZYQrqd24!!({zN!dr|`KDKEBV8tVL z6$QaNE^Ja(56a0V8GM<8;Q4M<0%i%6+R^IxN4~k;Wr;__uMW4C^=g`0|5ET@PwSz# zVX$a|KHi0hQ!7vVR@jyr{&brlGpB8l1Z0m9di$)*aG%ondi4?h{N6^4r6IImP<`>x zJ8#;s^tsrx}1*JNEQ53jFLIse~X z<+x=OW|j4 zJlk`&bZeKJr^`-~@KA|!3TFt3-3+W~;}-aHe*Re*7`F3KxEq7A5dBqnBngydg`i)X zJQD3yV1Z*Dj|r3tR0BKY;>!lTWd{)IYq&<=A%$s(*ix$QF;*s;R@CR!nAy*lhLLBT zw3ou@A_S;Lb}pF|wiq96wu6UuWN~wcgxm$B1FZ? zb8~#+0<{OVKb@_26p@|Tin@Za1lEwCj-6RVxB#2xrVsKFa|rP_6%OO?kx)64xJkGf zj{b_VJ2DjKjme|=oKWGH$M-+)3R4ePm`pm=+et`cSuKYF$`IsaYaPX#D#E22fsZ-k zd>=<|NE#r^H$L>^RT>MsGFj-$L?=Y8BD}ovegN>+(03n!v^rv(`EyVu(cQ+3t(7*E zI4fg#dAhR>9KogvJ@?99sjpYGF7Ki%yGL=`xAqFfEVoZ)JfKt2`9!j;TVT|chHqL{ z)v=gpQs41)>zJ!Fflv#H-3@gW4+H$RsP8HWQG8-3;G}og&+LVpe4O0tX>4E=GG0;z zrRM7DJWm>YZP_jZzzq9t<4T3jMF%|8^y*a+uI;Wn4$Jh2d5DsldC1@Vm0zsciat5_ zwO4jJWmHZaXGQT}S9zLjuCLS!)M-Q)yBfH)%o*8^qD_9LB$4}u zZE#?-%A>#gUfZB;7@)cMTb{=B zt1(II8R51$^OdP(|2z&mlANanR^Nt@x< zLVvblAx{K^$<4g-+c#m;W8q1n0B~$&>l^lApT|Lfp7L~@pT%*72uWfx(!u2Wb1jXO zv>`t@AXkgsE8Di6l-}b`kTA?kyt|u#2wKSw<`-L5}P0gRGY~FFnHO%xdE;9&C zZlf?vZ}KFb2OiGN(jT6D>B7N}{8F^^_lFQA5LVct8_R|}B%=Y`Dx6)yu(_}zW4FE` zJ2D2>o4s)?mI=QbEudYv~uYNQT)5H#Cu>kbi-%-6O1) zP&W>B(TO#5c>WC?KRx%^Wx~423sV&7?wuyXeVI3s|9o=9AVb!EV`@X?7fDJ@pbsDRrY2#*o8-&d(U>SINRZZ^N+-_2FCgHgyj>Jj?>hyZctH5?bXg@oD;8u@7tX= z`qP&tnPS#U(SA|;i0o%~T>ZDs~v`tJA-f`-`%k#yH16~M;Yg$g1a3W2!c#zdr zxzQ6Zy@df(fvW?i(#JzPl2p$ukyOw$Eg}x87RRR|$LMJ|FX7~x z24|Q48ee%E)AMmxjWW)c?mKt(bhtxncfR62lJrwXTeY}<%=pcD(T<_cL~tx-HO6%% z31Sj|64}eGl@8q~3NT)Ce0jD{08_n3TcSG1F4B6z41xUd$@nl}mYyimaR=^YtPw1D za|v>US)eHDdhr=T(YYfF&gE=8hxrW0y0@NGV_+2%UEL?}et8W0e;y-@MeW(tPMJGK zmJHkETt2cn-Pn`_PtQQ?{#j=e6lPu_=YynrC+gb z^_r#^uEaePBe=T#e&4xQnPvb=2pU!SrIu7r^ffkQo=l|(+dg`wdyRCfLDu!`N0?cH z&UT74e!44k=hb7*fCjm_FV|h7Wi7L-@J)l?o?uD5F6xKSFL>^FrY!9PtB`+Oh|Jkb zuDTO`I}daBKCyJSyD}W2ZTe3omRb1Y1Ju$`=(A^B)%jur8+6afxbsuH%qXTJWUf*DlNKn5GoH$(spCczB`$b; zyWS?s?fSa-c8(Ewl>4q~DYb4zoju0diB03du~gyw<0lht2_k*(;A9zF79f?~ zLFxrPM%Q#XKiO>)A8;e?t=c-W>!Pw+*-GKKVi!0{ql^r%Qw(H94LK5kDmMMk5F*D& z6H;tcXN%@>J6i~M6?28!J^M#DNanZ9swps{AgCduV|cgGtub->5OP46?GFHHqe^!mY&r+nwht5-|J zmWeR-*iB=LG;oZQ=GK3{InyCU+0*deW)tcaupo%YN2t&^>tezw*fdIldlH(fT(@jn z4>9)nd+xu1nKQ1@MpZS$`Lg8m*i@B9Ysm9`e>+}QE0~C|()FBj(8stt@QIjpjF&m! z+)q=-VhnE7r_4Go=@ti?jLi)ro;Z%Q4>%G_*;-CUKke~p>Nk*{X|49X%(#j$sXF<2 zReA|}?vh7HrocG*Fe=Zf0#oyU&o^a>pRZFn(yMMwgR|9!dT&t)oS!wbKVSJo$uYAg zen?~@=f8dO$JNAlRoCAT3)9ZP8shq``!&q>ec`A`jT>kk5!Sx(B&t~JLc1CSW~EM+5{*su>5+NnU;b80 zwLhlEfv|W=ZSWJTg99jJG@&pYKQK1OtU^M)#kc@q2{J*Cd~6=oR-)s`LHCe*q)?QR zD$m}@bRcNupzhPP8{+!C<&VDJZN~u_MGGJYVzGUziE0TAW|Zj=8~vSdQUiUTPlExK z+-dC-HV)-S-u!D+bPC064D|B~^P{0|BVTVy{Kv4#N`@)|=oP~<)l8e-LlEZ#u3}Cc zi);}X$||`YONt}%_y7O+UE`5XO}V@Aoif;lR0GtUFIwo_7(Y;N3AQ>hSfIOURmb&9 z;CKmI=|B?*kkT3Ji$sT0?E8+RlWTFQs=1s}dz{;IQgm^OP1P;z0*x0rP$9}mjN^y^(*U^O)%@fToK&g+Ge&>vJOx(dG41CS=$3W#8hV;hF3 z6y}ffV|M(<;GMhJDfC~k=^S$|WZmz-AH41Cdl+lAvW5f!&7NXq*QI!s;t*zePH1Hs zYL%C`=80-d?ZO_#_W&^YOV9mB&-5NDXluZF?YKH6kG|oJQON)^E_->m>2<1HTcLI8 zDmKSWm4o((l4|Y_LHHF$0I)RuWe+&(R8*9Mxj8Jtrj)QxPcVIb117F*x&mbTDcSkc?Ty|{) z8ghsv3I@QRS}(QcYpc$X^VigGpInS~@iS1kPex=0d4yv zr#u=P75~0+=)WcW+BPbf*(0h*kU%Hm$z&z^pXGzfko z21(E?RGy}tum0oI+b7d{UsMvEFg(R&{&Ga7*S&~D_#{iHMlVTshSHDwb)S8~u{ekZ zI}G`r#jdb>8vd|$BtjM2J)e9TfJ8DfuF3kA^%n?(b$e$d3q?u0lkZQ}0u{?Rw8=GH zFFCHq-PE)!OZ#5i#dt1czFZXCB#R1;ioX2$RK{pHzi<;!5p}y=U!pt*5{)yx9|lOj{Daq3a@?sKgCI!<*CnNWsP}Wh z9B26k0EZ(du2_Zsc zpC)+45v*W>Wm50xwGy$36L%gbC+Sh*+M~xrCyLaOtiO+%I73K-pdSKl|Lt7vSJMME zQK}88(@Y6gha7ZzRvd_#7?b~ye%OvUs84R-(P;Og$fiXe$ak;wA6HkcCM%FeABX_A z5QoNHvc{dp<>`01ckSB>CYWSsnxW2r>PT#UBt#|i9ddn-Fg)qLX?0O=DOfct;yzeA ziX^Fgln%TqnwP)8@Z%W;U?6Fk08JwaOlOg$hZv`Lv*D?!%PJ_=Io`H5Cnns#*Jfs! zhZni6-0Q-<)_;FaCJ~z)XsMO*?U4l2H8r{r$Iw=+)s|EBbE!$gz)A8!wec*TPy*I7_gjqj_}fDDQZ_NiXI;lB~8wUh5lF+n_EVZ-JxagCL>Ics-7k&~9Rz3AaBgOpy08R(6c5GksNc@xgj9jM99M0ztle<6azQxYY!^8aSwS+NU(iq!*>ZbH&S3x6L5-{{o!ky{`qF!;~QJw2>>nKn-Kz!=Ec`NV-tk-Kcp{;-LehJ?VIx-ZFg*Tc$SC`+ z8!AYTWVWM)<$=O5@Lg95R|!(Uz#nwQSd711>JpV42&YS?cw8mfX56EVrc(ewJcc4A z39^6!zNR&bC<2+HC_1DVWy-^gm0Qa^sZBFHC}*J#b{kE5q|w#+DU~jV4sD?WLF&i0 zq8q5aUoj%$ffvr1dMh-JxtPKPa+rJz310^fwwn>UX!I@#PSe>|bdk$(uv_2#Bs4F} zGXM3%lQd&e1Eh3yh!OG)RiMIdmXYIJK$1}u4Fk(uQXG+$4XSAod!H33!#4GEdEbfR zSeHo^hdQ-6nIh*i`4Ah2bn%Z|scY7A+(SWq2oR;vNH+KKvGRvq;!g|e?yrzT0NCe+ zJ5n7ScHJ7ZvTH7EJ7Yr{+$h!8rxz+FHac&5xc#O(5CrdMFPC|~p*k0XtGJpoFrEq3 z`Ujo7!c8s|Fs-b@<{nro$Kx^wLN54MsrGQ12+VNNht*jSTm1~{q9bWCCL6LobY?Bn zk5lejAS3fc9_=SNah>EtJ$5Gx-vpt*LqPi>WVk3!x4j))V82Ew}`pxsFzz{(qtzYl&nq);55(B z*^R`1{g}%B2Rq!1DLACi*RO%#YmbwSG-gmjVHrdiGEZ91)9%q;NJN(Mq9EBxy?m~X zhLMmK`fuS7?aD2L%yR%Zy6z43$j>$JQ)gWb%q@-WqsIF<3L_XGot-07#fQ^9L+FR= zadH<+qYIfiad$DFJnVGk#!$<$oV@D@3Az#mqTCYDq(bH(Pb+k*`e1i!voZbM?1?$0 z9fhriw(>&{u+$i?Nn1cF>!qOQ&E)N$pjAwcCa>`p+IwnF#pX3lm#V&U%QVuux#GEz z#Qn#|AJPYBm3i*reKvVpxk2s2&e)HJ9`k6VObe^Vj>upRa^AoU^VfuD~s34G2)xHHQxCGP@`%UN?)bLU67-= z?;BQj*VMwQj^{vke?enWwFi^*;wDQ}!yun^eGB~1nvW6%jUp7xM|m8EZ(@$#9B6yg zAg8^U-GCG>5~~Y`i)|5AvVU~wupna9c z*sQoX7pTYL%|_F}j*Q-KLVMnF$cTmwVKu3IN595T;G@;Xhy;YPJIG5?G2{YYPpC%R zo%TSu&>6;?!8$|n-EEqim;r{Tg?<$pD=-(paXf{P5av^Ul;uM)+o|kQOVM-;q}Pt7 z6I0x^?vo%0E;|ks-}FgIk{s5PIv7{bHre%N?lKL*6Yhq4{AG$;7QkyWQV4Zv}*_#Nd7UZ!ck1woYED?GTb0OLP^BF+BE97SiCW+G^`yv>66dSHY93*($ZkBE6ft z_&^jz`7Y$n<14YQ^2{tly~vv1Nq+8HBO4|uE73A@yCUaQmFPN6Nhrt|ur~CZmpbdy zIVqn&`Q}>fhV3f+r|h5+yX9pJDIwD7VFEl7vmRaf`0bLFj)on|ujT%PsUbB^-l0EEZ=9RU zp_8&=g9)ZvDSxc3$ba5*BHwJKE=4$IqP%>;;_!Ux+KPVN77`#>#)#8kyK&z4L;w`k z{hphXBRP7j|h9guqa*H`AoxdKmOH>B}Lm&;zm%GcVe0Ge7TUafz%oifXIt&xWN-jw&rU}5^(B?;4LA1~|p(b{&+_JM7F#;w((1jb$<@+vwI@la3$1Gi+ z_M>#dDaPD!J#N~V(KLHzQixDLOA*B?KRlPF{EY>oM?uE>twK z%9S$c_rq^DKI)p)wM1nFPJCxJf@%_3qtG50n(8<&*03H;>SKl?skLggw9Ma*W(5d$ zf zEY|2I#?Uy2VyIaBmxqmsM&#?+%RJLO4<@X2=R*912|7fS0-KI;pTaQP^NtZFhqnoS zJ#IW(d8Y@B%kEfpmTbdx!>ME-7f|`r=*JO24L&jiviMon(REh!Q#>Hzvln|gM)`8A+$cFeEfRQnH{TlASsHy>mef0df+tg(KzIz_Cbyz0qgna z%A?oZuGlqB|(g$}}H!_q+7M zv|lRd2gW&L>-_v`7M(Ze#re0sv?lUw#mgjm>fr zChWrb9V?62TuKv=q6!Ef5mRiX?2N0eNZ9EIv^9J;{jTcl9^1L_=sMh=Xt4g^XA(7N zn$iKE`wG)FwHVJ`(Jk30il|%~S3h6r`tvvOk>^;DONFlyP6Dc!U*Xg~cE*;W z&6}<~cvzdGL@Cy-Gr`RdaG|+YS*5AzaXWzMNs=TFisV969ugAkeTiq_+ZF3>r|ziT zTKI!tb6vxj15#Wq`;@Jwk$|sM_a%>3d5j2chU$Ln&Oij5t1-4hK*NFN`x$3O$NSn> z{5J-mp8JQ=ctc#$p)jrza4Kis7={sr?@P@^mSx%Rs;)c4BQonRC~wnRrU@~(6}Ok> zm0plFLT&&wk@vV|`eG`^7E8*ja{&kajRO{c;0uYO1m(*#cv9 zN?@lXHbZ~gS`|iGKL=;>s8-G5?2n@yro!I)Z#FiE{yC?iCL_1J39=<*nZJT9EB3?? z4+XZDFgwI*NxAu4R63J!Jl8yZe?DTRl4P2scYC`OBY}%xE9Q%R`L1KOd${1Md_R@{{+TY>#t|~#=P0v`9sXXqeIq}K<7};RFuItXj6;gDjJ`M9vkkJ42r}&9MbXEi zZa@ltOs1M-z|8D){aO}?VTElv*DO?ut{<#elXNi$*(O~yw>r!mDvTtUV3pe!hUM-h zNsa;~P!EEmDAGw8&2Zd(ZK7KWkY`z<)Rj`lbF;PmDHk!20$;wUj+oi!Qn>`I?Cs^V z_geJqnFToGd^>u6{i!(@jwjX~Xro}fIzQlNs{-fsv*ko?_~u-6jllfbi;mio+w-(@5B*hj{)v?;_y~-F0VToW-JKY2ElHPx;;#nL1BKWw zF#S&T&a~Tg)pau|(zEr-!qqY6C-oDjwIq>x z-LiJ@+dj6$@2EBoBnpB%m@$4EDj)s%mZ&E{mY(vzZC$4!dAoVCDzUNO1W-D|tDz7+ zTqLrt!`UnW3Od0$@f!ZTXEnBM)saZ7W9}KI6J&m_J@?;j7;@&e)*O8LM`}reP>r5A z@^@|s!0)v^ti*Kk;dx#OFD;~7XG4JCvMhMLXh-y~bIwWu!M1Jh&N6Aj|3E;Iir+nA zdoFzgLv%Z0!ddW}!+-0wDfRkp?hJ6<{)mj{5@4YsjW3Q{3wAI8v<}xvo-te^eyC2h zzub_$auG`(!+?OhRh&wz;`vT~6MYC&PD6gKE7)JglW0yie8v%(FBHt5xP_&|~OnBE}Xv27n+P2z&t zl3BM-O`y|$siFqF;x)Qp`u7bh2jhI?uoppFj#U|Lw_5p^7bwn_XY;77Dmxn-dH+ey zt2w?ndwKQwOL1ZZic1KJ<}n49o~M-IkW2wnvJ!LAN>ct@b7)~QAMcxZ2Yzy5*PnyAT9%94a`&n-Uc7k9I78G;2bqKAC_(QVw$z!(gaz57Px zTf}&#UPUOM?^>SNiRhmGn*S;A_aTFYmPt9eNz9S04)z-uyRcaHkC{etNh_KBslo#4Yn>%aF8<%^a5YV7s~3d2xhm?s#q=8mE$#lsce5XopyZ<_RQ%FnPaq)D5=>C0rY;cs_K?q=e>4rnzFw8EUh9M%HwwSE^$9(! zj-9jU7}9|1W{l%M6ZC;IXFyt)Bk|_Qzh1y(1o+?wHEz*#^U|_h#niGi{x)l?va*y} z=|bj_VEOpXMfHKNzL*zG(24lNS)#4Z7mL+)1d3u%bdls`@*fQnsG!4WORh1Wj;%g$6L~+=K zQuX(HqJK%6cHQS|mII=}WR6-mo@8l13B5hDzQ8f*_P&mPM9r{3_Axr8WheNqIrNcH z15Duatj3SryUrH^lrCA9ZL&)=`sea};9DVw_2R)#D7zJ3TIGw|gT3X7JpU+(B{!$} zdXr9TvVBOY3cIpZc&2H_Vg35XXQ=VM9e(U@BmVEXx2r*AkR;PAkiXiYKuHD7&L>Im zj};wAD^^SHP~xBcsnh5;!&P&1IRjkB!Dp5^voDo2BCE~c)`d6(0l*{7x>SpTV1F?j zp)6nA)p%V{%nx!cPx^M|?n##~8l<)>-(2zL#RHP8w`rQHRuyy06MuCOuB^ZL(D}NX zlB9a21eRrq!Yc0bPO4On%Ei*lj}Y*w7E=*vJzlz$vfT?0(zIy3ec_U$BVQwf%Myfx z-qg3c6Sp_V4ILw;6h$xUKg1slgpB3^9{c`iun?7L>XqIEWtQk=78mKT1XF_41~bmX zr?J71Pg$_ycL1~Z0-d==>r|I=bi7I{4j_VzZe26{{RKbH3fBMSd4i3w`8ASC-%ZN4 zXTFo^xhI!d`Nfw!N|PXnMh}iB#Yc`;AG|4!BvCZ_brH(KC~8Td3Dn-gG8q10`NQ1p zFD^yv$6o>}QJuTx-K7V!DJ!{Np3eY)+^Wbst97p&Ns49huc_z3{D{5H?BAM1yEQfwKf4)k-O}d6HeqZ_{s8!GM6HEYQej_#` z^UIPJA#`wBIbZEHoxd1npfCMh3BAZSMgrcPxg>0*iEaLS-4Z>8w3ZWw=6=ZqTK8dB&I{LNoQuDdVkuVtFLj;qaa*gE%zw-neg zz#itMyX7&?Qh9s3%6~(o^?S4}J0RGG&~zfnWp5Xn?~`z^Y#oOK#tbXlK=0%JfJS!{XsPf(BLn|R?6@E`!nY=)o-Os1P=RYS5OD+XWBZB175iV z1nKl=7)C3UZ%^CNp$ot;jw=7_MZAyqno)aY z*Ea&D>8%?tkqkDLQ{+gzbKO$({Cerzj5!YQYQRIXO2W&iyLC3y`$5Z- z29?Ds0*7@uc=|x?=vp<*j{jm#3vSai{TO%Wh$T~otiv?EP-zcN(binDCvAvwPiv=( z%q!vdo5YUeD8EdgVB?fb-1!?~sheignnX9F!s|10US}FMsIj({y;`|lF%%B z<|iTJNiXWA{D!8Lgs~s`uvO*%G78CHqIOR3K@bEKO`sCm?6Kx-%nS+r8iM?FX}|h| z#ZFi4Q|EfUA4NrxTKj3heevhe3Ky~W?m#A7yYj_T5x@b!@gyxapErDAyp$gcpnz4d zc+r037n?yT-Xrp(AFrOHJOa)A&zV4hYZ?hbxT~}`S}aQ%-*0!VPgV4ccD2C04Rgg# z25*OAVZih$EH*5h-)oP>2D5;q6k3S;bDn)J>7|h*S?{#Jsnzrswnc~8dB#jzBV7lzdlR(d5`XUO%^YPzRvSRjYA$Ed&iT1{$LAEW*90?m~n|OY1_|@ zA1)^^J$>wwom}AW8aaJF>*p%`@##6v$nsJD`G(?)U77VpK}?n(n`#iWEXy=wtnd2z zmP?kwXje?0{qFqz351t)9n{m@5nFf*QmlKYB z{_Hm?HB{NBOx`AXt;K3S-pI%F?s@-=wCmu)~50X52ziP%4Yr-+mH& z1Wbe=2=em%`&%m$<1FN(Ekb`xr(6C;wQB?MH6Y!JN(vf0zD=JN-CMMkPOa zVpTybX!U|=@;!pj4w3|M9`;I3Hgkw9ru}mr=3XT*inbllbc5%!(x0A$n|!dO-XddM zpf98M9cRa^oPNJIOLO_e?0{aBLQ z@EO6EE4$EY`nZrSL{EqJu!m|6WE8)F=Uv*Y|K-gdyUdz8+5?2Wi^72E7 zi1C*^)=c91e5C=nAMF**ev`!N@l2+rz^!3`EB+oMC5eAYRE-PhJ) zLNec@ax{S@n%;M5Krz43qrq~WQW8zmG$C(0G+GVOhw>9k8-}EzRHuh0^@> z6q&~<8tD>DFbN?V{>4{)Th&FK3E@;(1!5${2Fb@OOVqq^948SSikhYjiPuZV?6k#a zvBsn~V1!3Vn*=*D8&(dbG5kVj>hnBL{Mz?jS3VUK9hgJ}yR5gn#DO2*vKM3H=%=c46p;T8dSSCzz%XxZ-hw2KJK7Ax?Z&O$oFa17)6 z4jV`u-j5aoqNVTqc@JB!?Eh+23mR`5V5!2A3;I?grEsCYUN9CXx7VZdGsrW~x0YSr zcmB$LXMU{(2I3C0Jx{6l&;&t}i&|J9J|a>1I&&RW4GIohn7I!Z?Slj;$hW1!-5JfedTnf7-63-x8(Y4c3Hl>9H(}h`x5g0 z=K`4XYv@e@o*oPWTM0g&v$5n;$@j-6auaf!KB{)pmiyvBOw01()+z`PMDafvu?guO zc{7z&o)-lL6KDyRAh?0}p=sJpgC7)5w|76}juYld1d;S#DPt5ZwnJCF91+Lh!C4r~ zbJ|i4y}WkOZD#kGjwqcWQDP>*6Wwc6mnBWq!tMs}7~hO}onu$(GBxNvn>iax;_anN z)u(srZA(7pa&Pb_y5jBcb8y4&K)2R|0S>;|k4N<4iC94W(P1Ww`CuD5#+^|Ml1rM! zc>+ZVsn(S{G+vu2<>QPdo}WzxOBD2Wv^+dH4XoO)e2oUmY+uxn6u63+v6=1xHo&s2 z*rV`p_wRF-?So;8F2bFcbFs`RFYkYW@y=s&e(`OM^8o=9!fnOD8jUr6hpK$Y@h>`P z*P0Upp^Ls)7{V{<2p#Epa_6%~zW@CFK0;wxTAxo{9#ai`gm*t>E$jOeI*)|pQ6AgI zpMI6HIsNI#*qcZ3r2kyQ)&g@YR3ENyTzOii=*<{9FnRu+NM)PWv92VH=b%~6d13Lg zh%s)6D;e{!(A2AP-2FZOr4)SGHiS%zC&qdW!Lfo7qoqHS%1dXzs(i5$Wvn|t+M`fK z*vu`jX z^m`WL^y6#>>(xv>_D)OJBWx0O#%U_?Rq#`kDtzUm+G&}b%(H!C9m}L#TZb<76_Zxq z_wS4z6lVc|AW6nk&SNbvkE3jw1^{Ftc;*>(UO}imI8KAZkQ&3Ua}+4?_b-j8%E}lV zCd=q`A`S?7`ClHpYI@-9aY|)|G@eSg_Hr{VO;K*kc6vyyGNsA>bY{&mK!i~=EclC0ViL_Y|FMuUmgTH`fZ(`fPa?=k0&GZEu-M-1%RRh79CqD<#9^qqoW znCem~+sWP7u=5UKw+z$_Rea|5W!kOt#?+f@rr!H(2%Xd+o$94g1z&(QXO>bFA!PrR z9M^C%KA5TE4H-@9?LdA#NK8XnmPyiQup`UbrI4NZ*16q4yI)+qb88vfuAVwn`vj~J z{SjR;QIown+vzazAvIT-wJn*MCweUv8Y47Ll%Cga7*ny}7#;g=N1o?ELVYqCh~TXR z=m(FJrAw-7Kb?i;O*rOQF$sFV4-`T&Dm}vFsrqrVHYZ9(*Yr7r8r3!*JAmRL`Jug= zUGZA3ef^Z*zDKHJH(E~8G9Qc(y%pAkf@7bEH895QE~TjfMvBVpldgw3Q>D@dWSDAM z34&B}0Ts=cDAaGq9aJW-lbzv4oQ7+O*fLcm72E_9KS=F8?fVe|8`=*`5*y8Nw~t!s zbd{AyTVvDtJPRXAaaa?GI_`-2JgerXxM=+XY+C*Bh zi+_5ha3wQr{1D3N$^O`4Bdu{3 z3kp-UXNQFN-c(af@BG#AieelQVz%<8%1yp@W$8A@Xoj`s{X4F@ngOXFn`KC*AI;xK z77-3NO<&GG?l(u^@P3}`{PPbUzZc>x^XWoh*w0b5x(0`UBmVTO=oiOeOKjQhc62#; zesb@Uk3M)7_YLmts{i{wHpLKHFhi+wY=igs>xZ^CZAa20-PM912$Yal#9tg*mQFFm z#xza6oB#(4?VYlqH8Qo!!^FuVRBOORyQ1>HhNzaN3EhAfYCxz3+jpVJvIH*&WVzn- zHB|vrx>M}pt&#HYdUC|#@KXTc?|vM^B=2fKinojKjbJZytB>9h6+?DnEk}};>MQ>= ztsdXP=o^dOGd4mWG_uxOV}R2$7XtA-2r>u|3}?}FrQ=M()&?(usD8Epgwyz}2!oD+`Si zvytQwvnZh}9>l|k0c$aGL|V_#&t9tSW*oQwr9I(;VDNJR4V3K~=h|QByJb_B=`=&t z_{C{E7S8rS5JZ)j z$G!8OQeaIwTrkT5p--RXzZ$R`+9KCJ#01kwyRs=?1Gz;|MhvJ1GveS=e>4pJsxjF#=40-Qv zg1JZZE52rBNWlXpybl#F&J-6oik`$#A|IPxL-wRe5H#r|b86r(+vk&TGI%p!@~KZV z-;wm!=jsK!P0YGjwo~cDr5j4*`xRp$cT&3$9J{Kj_>ygugP>-hXb{_HS1Ob8hA!(^ zax}?+W;#vP3l$Kp6>Az zW}UOOaYQKK{yi;~tYC@YJ+SiJo%U?ra^i$LB%`N~W-B$L zcDUD1c9`|-dcjhh_j&N>!JGMws5p&E)1~WCKyZ#&uSx>EHo!DZY$?lQ-O%Uzi3!<` zMI1q*H0`2YFuyf5$Sex_C>T{c0|RN zR`92A@7z>hNs59VKAeAq?9eOyV*?Xa3QNKfWc)2b4QH=sS@m~7l*PoCpbm9qo>UaOaB!C>+(Wj-4zIqFbtCmOhjEd>7%e0>~39Zy3fYneF1y~0Rlf31DG!s zNSW60Cjeks3(H*Kg00cA&)kJSMJ9@rX`1FeVoQpL;D>Y({F~vK7_iB8l}XQpK4J&b zeMn&UmtJ?8Un_Zz(cL6UfuODfr&OO* z0hS2CbvWuGfvExSZeU z*l?pIh<` zZHUwW@9>a2yRs$6J6kb02&dS(h&eeH{rE1?<#(U#DsPxj_oS};3cTB~*K?*1iY-aV zV}H=6M~0h4h!02kynHb(6KAGa6d9?##Yi%&=QqKxZuyHI3oC>68%>?Tn8lEBO8YaG zrkbK`cn0CW;Kr|b{VMJ+?#C0RyY{#6Q!jhy(M%b7kKQf6zC!_JP83TV?@-qGcCNoH z-gi#Z;$<>&{X}UbOK;e0H9I$|F|QA8h00k$`e7S#!!^zkC^E# zrohnZ7uT{BuzYl&_wBF~Q`w}nV|w{-Z+6H_Z!?0uSoFEJs;?q zn^gR5^{gzB>#7a~oNiTYpZYRINuZ&__c6pnU+<;uq${0YSvtppy;vD3-AVhSfYCjs zt9z2BHJ^{cNtkNVG*w_Y!jSadkZY2r1kyt#1*L&`H?Y6E5#O8=;yzL6DIGjZtjk{+ zoEpy?>SP*4abFj{WER>HogV1dv5q5hyN(t1*~#1QOomq21)tQE_p&A(SaNr?!{HJ4 z)$0{g?q+*?-#3VWTPDc~(=pcFv+X!m$RtNdTh|U|w45$Ga^Yi~*=HL(ddV>akyz&p zuqcqPh=rG>&<>}<7%bCBj7gCR5Qf@rH1lo#)Iku}Jynxm{4^diA!3@L$@6)ht8Lq3 z-xZIVT-Sc@A-2id_DNh8=f`D7QdHnnC#Z~fXpv|jy|#ZOHsNK8s+u-Ms=;{R_44Yy zY6>S6hN-%Vis7J_v@*>2yxg`_)FUVN-P5+agjYneJ$ zkCv>2Zb1u5R-IYzl>qgnz`-qwLe*4qj06MJzy23}b)%Y)4s?qeF~q@Lq@HSO>6*|y zXVIvbeUb-vVwB6#EZEsP$5Blv>wZCNm!kcara_>viG;>x70G=d^ymmQwmtnN>mlj3 zsDh04r^~n*U8*F>pH=kE!@Peyv!CBc2Lp&}h~rgOWh_MX6h$E;m0oXtDc1(3!t)hQ zAB0_3?<}9wN3MHFmUk|bL_n8fhF^r)HMYuKbU+yWyEa4cEet*;qFnsKG(sqq)nSHiUPpU92%U_Lc235RL9qX z(o#|Pgqh9#C zW|OM~lz260cJaJtfAY2YTF)d2xz9hWWoUZh+fIeQ^!dJ;3v76Iq$|LK@9*%FwjUp3 zCwBVB01arSyi4uj;J9sHxKz@p>#8w4r)?}GE8_yalD==2 zk@$7{%?k7!OTKgX>Gw6tpj6)HO+FllMiYH?2wm%E`l3iumJDJH=CdFB2>d|^ye^EQ zvb32U+@p-OE>gkN#3n*fv5_G|`u5`{ZSJK_Vb|x=bqRN(9E+1B895FsIk^BqpDrDT zVOaIVLVS57j-$+1vg#ETl752ihj?pbf4cB^JAxT`oV`FVsF`hv!*)0*!2{ejiqtdr zbmfHc8L66Vyj@!s&}~MI&N`mOgQ;>5zOiUZ-<<#~zzb+s_N!wO$!FgIpvcPZo;B^H z$8v#YxPn*w)jHvT${pvnNp`J#G`lHWlJMvgMJJWU=hSMP?%(s@liK^Azo*2i0SZD8 zXxwIwQb$H(X-K}xR{R?3;2O4qF7dczXB^)IF7V4aYb;D08w~ws_h+vV9hZAu8@tTA z`b{j(0^#@&EfCIp1#R#s@K{C^o%U_=yUaiWxGBukfPn%kiQ(un5yrgI5>xfshyk92 zq~Pd%cC3GVcBH07nB+_opjPPG9!&=p~ZRQ?>1dEJ#!0o-8+!_=A#PLr3j`*QTc| zf1eJ(uHS}!E8<}?IJZjQAyq?f&_BmM?^k;@BLU=TzQpU z4h0Iu?;P3ZsD1l>+lNpi(b(?*D0d^e(WQq3;tvWMh>A+&uyXz{P6xu7rVyjH-@@e= z$@0CandJV*N#e>4CJKc7=AGDr0ALz@xn+^v(B(g-hEcG3exKfE)$9s;m9+nu*yT>X zF_Qjd1PlPe=-CL6dc4D$Q`xTLGc!F!;Bb_%IAlMaTk!VjDQHg?HL$9x{r-+^xCkB0 zwPE>F%|L~+@6$@Anl&|QZ+Z{Pu{hOS9*nQJ1T4X+26|G)WcZykld^roe_noMvMw<- zhH)_d?#gzgl$MP{bXN0>%=+)Em1>cm#?>rCYTG`yYf^Z2Q&}Oc-4#dl+ncN??%`Cp z^j8OcdoQ#_u0jiu6O^Bhgtte=D2CNF;q59T4E+Ng+)~k}{bm%qm;%+uq`eFE9s~-6 z*ytvYXS;i_2Th!Kk>iw+FU#da234ZBZ~;0PMG2yX56vqYQLvud)YHEI&IvNHg)o%_ zh$27sM%Iw7N-e^4~`{>uKUGprSVCcJr zUAXnfWbrhw@0QjO?6OpYSro-L$;KQ*(GT+I-8jORb~s|w0f0uYJHE_kMe$mq)nYW` zE+Eia|LVGz>$0ZR2F1es06h*Ng%!j>9&FLJNROYHw+j zfHJ4@yc}V`Gka7HZTBl-Y40HnSG~E1G~H(DirMvtWa?B)B+>RB z0=oo8xKuJV0!^E!U9Jeiog!M+gdKh)?UY`hMjV6v#65Re8xZnLAC)gIhrbqtBi-1c z!+&SE27Aw!$lYHDmZu!Far6BlChLAYPi6&GLqw>Eq9{pHIp)$tE#r%(?(zGRqEnXop&YaoH)$U9Clfu;~37a?m{~vh%>p&3wQMzY-(6fC$0C?2x z@R3aOo5n|b(~v48vdeMWy`$`+Kg$SCidH3nHj*mK?sKIIgKa^4jk1C2Ty+f=8`C|> zYcgdgUzi+HuxmL^b+mthErJ1Sz&`A(AUoteJ`o{1y!?3CGveFvyLs`^+ITY7s}g*DIn#)(3Xec6Vt9<=-DlBr&_0|FXS6Djt}jb-kJMWGC1y+o(R z=_ENiqQk!@WgxR;c0c*60|hKBuP8Ynw-1reP_$fSYlPvqQ!9>Ey1P@^h7@_Uu!~}S z=RbE+78cC7RMrleag-A41B$^nBtI*HRtB3&8{aj|Er0GKZ4*cD>Mw#wLy^46J==mH zxH|H}E=^%*>h<(xfnXFrTc+FhoqU|O1N8btS2E(zuH+ZqRxamcTJ}q7x5N479zCxo zCvI2}i=~y*$l69zzI5yGI6F@nE8hibGd0!5iC1@u)=T{iHw?BHdO|&jzGTaVt3UlGlP8rp`jF?9Whog1Pg*Dn@V~$B zM{_MVOuEIq^$*AX&8DskW2udCvLXxO*n?QidVSUipSeqi1F7kJ5|Y>WvE~c5M}HVW zEYio^TqJRZ$dO^sdx!*)KoESxh}uvH?uC<%0x0%zO(ro9b<$0dgK!4~^??)7dAE=kas#8Vy)%(I| zSy(0baOIm>fbg-~#keNi=*KYfXaRJY-c|*Q38llcFUx`Tuv*K*FS7ge$f#*rm|o}_ zGL#d9Hprg)FDss!Dirn&Q26Uhg({lD(n~gYvjOF0uE7@(D9o{5+|TZx?*>z)j*NFA z7&14nt8B14?^?9!tvY+XOFrJ9WjK6yo}6Yf!}%cN&ckQ!=DQ2{&FR_z(2aic{MlC^ZTbS_USy9 zEBD_V;&P{i;zt*b$uEs!7{d^OKnv$kTI2BHCX1h6vtI$E!vK@;dk$!mek!k z55XK3z3^Lqp=j(UQZGSiMFN1z?nW2*WnbXg@$1aK{rTExq1 zA1XtKWr8ddSG!WKor9RVI3>{!;F(S7hX$y%$Cu*kf6TQ| zNv3*R6ZiA>)nPPqvNqKjX7mi^Yiy+%_qJ8Db01nMY=T%yD{HoW%pCn--L4i3GcAb$He9>FG~WtnfRz6pm?XMAA$lvl+|ltKwi%kJY?i6Y-zYd;5#@V zs62>Z($=50FO+t$8dnkkW<@iVra-9rYEQ&WK(DTdK;^HWCAX`ORJYB`6v1lKllnP| zK#D59x=x}Kffwt6o4WAByO)ux0$ZDB49L6OMcb3#ETq?*W6$VPs+jiQ{TQ14zOlcD zcmhmGe~1KNub=msV6qRZ0kEoAw$TYJ6WZ6l38f@hKoN7Vz?`HtT=L2=!~OGbN}W9a9)||65BrQ=R}yq zk~Y-G#~c1`kt&YeI^&T?I$oZLHY#&Z^zfwr#{q=)BXz%u-%C^frjD|Jtyl(olB*6E z4Ej4e;xsre{J<+x2T>%xT&>3WKDkgNPa7dov^)ydAnKQY)=7*|WoVaTmqwa*DGvXt zX}T=RVQH%R^qAPSGit_EVR041iuUpS`D4b)C@$$;lNGwxa@sO>{OeyX%2=U?@W*k3 zuKwa}wP?BGn;xt19Jj2*-(A{58rgRv`XtGZvW*2(Xu69Yz}0Qw*@RFqBWaHS?HQrM zF{eLf0}hKJUskj+iLxR)?~W+aw*IyT?bQ85B|+(KQbF?+pwnnA`=O(eml;jc>ufCB znu0%(6uL)7r)lyPJas%qg#Y6rM}SjA`=Ajw+eteyq^J z*v@A~k=fs^sCA`&G&gg{*SmW57Yv61?9r|f zqF*h*j6T>^v+A)q_ewa`(g~GMqS}DOd9EOUFzgq>v9dwvZ3Y>;%klH`+qSKmMosST zZjt~0K~e&Nf{u`!(YF)h=2eL`&_rbO%CWY2=Nh!IzUXPw)lHT9Kup(foXVpwcmKfe z{D^R2v@Iy8-x`TecC(Mi>!YafKt0Wt$$*0NNiWR|i#bi2=o|hrgrr{kj1xd;8>$grIAw#%;!eWJ?ApBJ_5SX~8I?!{snzjVpN&^YId8m&= zmq-l|yLN4@+7X0ar(&}eHgmV4s>i=A`PQJ+!f=>vdX(rMe(>}7vJ}d1q6`x=(W6-q z{Uue*{`!z%BqVY{lHiZ$AN0!Kh8nLi!(3P8wFH*%`zmqHl|$accOe*?%kJi9*~Gig z$~^ivSNPyh_tke&+v?C_#dZ_LDfSt3Kmqu`z$&DfU)}7Y7RLwDt|(h@(Ir|B&^i3@ueIJP8$oO`eSM0A@$;ZjuUFthB9uX&dX91Cy^Iq`oemX*%V`7gUVXik9^ye z;kM2Rq%AG}GJ%0kOBZ#LH&AUHu{_E%KuUYMVfH_MIJN7TI$F(rotq_c3B_Va#lJJz zomRBm%$J{3T{b}6LG(uCSdJ393zlBP)eWPS; zQnN=T?+JN>1iC{F8|$fvkSm!kJyP0zwA@xY57DvRWeBE5ZtmuE!(j_T8U(a#)@GJD zPh70kHNne>ZJ+s&)}3^zr}sN6-T#|Wq-}6CvR`LXDk?Zt92`P65U)=x$6AGE$X-*2 zQzL|NJY5p@1b z&vhx?FEa!YZnqCq`iGBr&dUa5bdfH4s?hGtRh)lJ^D7E^Ze}91l%rdJ}~lxt)OE~hYga7B4_V0AraC#=;PfEt~N z2L+ey^+fwe(wJgc>d?ke16Q2E2Sj?&l=|W9nsS&y{F~1WQa&*H z^yWvZ$sW3jTRKeJNeqk8XO$9kzDKwuD)ebrr7Fp5o*5RNP^zz#WcfEsCV3@X(YK~V zu*uih9r9HFmbeA@F;1yx_cMsVXqzQp&Kkpb`?HtLZkxHIye+K=h4mS(a z;sCpaA_#%Xuf~F|*C!Juc?l45TOSl?73E?Dme?5=r*rsAXV_flKVf{B0H*0AU&oy; zfpwS%Pwicd6;(R;=k?MuoG`;rzRO&-L=)2%4V2jXoL@XYF6xfk+^`^;%7|D@?Apu@ z{yN?Hgv2{*|En+eknKOu;68kcWVeN@FeDSz+gtUDS1Y7g*7r-$2|7>E z_^_P=LJccv+$na$5c*!%;WYgV<1c5!?MO23-JJA>?vNq-Gg7Y~d^&L*P~*QDk~>(g zRt-;{=S4!bA6bqb-=f_myJ-f0wc*uVVbi~v0|+;@PuC)4KH z@=<7(-_+Bdot(Sx8+$;|072k`gMt@FT$cfjEd6QzLAe#h5q2f8qUa6BafGINWC!d1 z(jBD|*jFz+)LGW~rbwd*0-?~`BY{o}ig0ce6+vMV6m1A(F1w!=JcN0|L*$o5P`zHbJzM5;E?nB&c3f`5)tdMfb_MA%{8I(zf&z z1jz$LX9>lVH0=i=PeyBOM#L?h77#+UC?68 z0V5#mwln;fow`+C1z2*kKClm*J1a7df*mXgyqZwFxOWhHe}~-rUbX#qVe~04ELr@F zMECkhw&nLm6D99C0ufiT5;1eUEP#a5PJ;qL)VLxOM?4j191VeLd(dthe~WSL@Io2B!*qe>tK3X~HSaoq|~g-z^+ANrnk}f`~Lv zUp=n+uSQS}{CmIPsN9e~=!0b+^Uv!!3IgBLLYghVIVx-4w%Hq%L7IT+?pQ&nepv!E z5yI$l-){C;zDIJlU@_SO0NMTs`A@!<>fiq3bby->bSrzuo8|v0PSXOfGXqH+hj+{M z;-qt>X$livP(-!8({B5ol6w1x5!L&9mV~EG{LHF+E-FILqA7h_QCWzUB3vCP!KU>W z2)M1DaUcjnAMJBvNP)hMqKek+zVi8w6PW8GTm559=)5~oH_nq&8u;$pN}?DH=lk$? z^G=?pFp!BYdAdFVJw=>hyYDls$sK;xhyeEe&|_a`GFX;nNkGCdihSoMn26s=&mqb9 zaTGxq?dAX;Hi95mldQipZsE3wyXA*0mK zv({F=gsIsB1<&)hW!oJRnx$r0$2^|l9yJjAx%AF>v`OG3SF=@!_yvk#A)%aLb4HIV z`Ob2%2IqymMKhCSa{ANs_N6uKFV8ul_I}Q$xz>q|>(RFq0J!$Sz5RQbcwU{M(8BCozOQOK5?LGRO5j%i$5b7-PIvibU-oGfq{ogP1qhH+^uynN@7RgL zk;D))(E!j7d2A>C@RfFLk>+_xY-s*@*Z4V5y}lCAsX$iP6;|M`SbNXgy3bnsTK;q! z@dlImZ_Q2F**N}XK8mh+sx%1p1MsfTJro-DDR{m)jNp(;p+#frIF17=e${WZ1X~P0 zPnuQdz0cwPdyW-hE=Vn{RCEqY$}>Yz-{h0m zGXUF7N!kYoSTE;-UKeu&0N`rQBUPeE7RCH4%P2AC1OHXfSSc*)^LbL?3PFs{8%IGC z!mWj>WvG8S^IuSDK=isUYFq4s3ew{^hTUo4l&^1tvtQPrLccS?2rt}5YOAKr zhAeFe`FjdshVk>X!>aU+`<_|0d~?)KM6OPL2xs`az3(la(68?edD%O`Z#Ayv%()7$ zvf@Zlkn9O@pZqtwUt=wh#1xVtpqQelvHD%jF^wZicbTgJA_!n2Sp-oDZ^{0v zwRlCCCkOq~^*MSG#mP?oX8mctS*=bMm%nfcu06~#!)yJpLO z-cX2f_XX^_ZZ%Yc%p``wFokJn?)=rK%f9_@J>qjKQOK7Sk@N(Hy*8HQJ*o8<<7r_g zGM@!wE5?zgpu^G@`sQm%Fd=@$QgM`<3f`!@q1T+uRkT7{l-`|^Q4sX0EJqoXSfivR&Z0q1vU4n~?;%3I zbK=U@L`qGr@l1Sbw!h}tmG2r|T8zuLyvxlMSF5*WZQs)+8k3NNWBb^wlwYR70$&SI zR_gqk;NzqyjwuynZnGqD-CO3|_hS#k%@R@nW+uCOM8*don zK#$}2<@x=*{M=8nM`{-fwIj;BVPu&APuQ0$0ak!0%E+Sh!WJoc<$4_m_KIw z)yFk9pRxrfZw=ZmGQwk@u(1^rn_ZHs?U=z1f)gk84Mv=j=A@-qX`6j2k*|n31`+_M7MVIycjxOA!U+mTxWI3F&28 zRxfiRZ4B2(kvHw7UePJt`fK{jv|2V}-9$;ky9=XI@t;=8ot>He^iPVY?srTLqI2>5 zdlcz+24-{fe=VmwJL)YW0%bvW0|3A&cky#Cfh(aurpgFo_Obuzt>++Ix+Cayu|7{$ zFR3NYf<-1PLuoh1lur5e2K=TdN?*AEQ)?;+rTbFC zj>A@f#xV?o5JSaW2Sf=v+mG0RHkMO`Q63(=NgynJ{VZF`o%LW8C-AQi51NdP{?n8y_fl)l@-e$i?ea=KOdvyonT^G z^_p$+EwDSHb5)*)K>(_gv*uFCuvC-X4+`=;bC)lVUV860{&ZZHk)|*2D5OC@$l(zt zh##Fe3(O^WT_&dg2_@kPegBIzA@tStc<}wqj`5`mtf(TwB=3LnF+!RC--DrVPReOIq%@h)7 zR`N1idBHRGZ2s##AWO3Kz)_hsUb0N}p`492*pI!m)SC(Mr#G0q^e#Djb*j>91RmY|1Z+BCWGY=%-WJOrkc%J(<pB-kfsHHOi9!{Nw@THF#_KD8zuwwWOwoVH%{phE{}zepyHvQsYEx zjuX&_y>{dwx+-OUI;X_*F5kQy*vA4Ju$dV{mZDVs2u)^;(?mEJ05x;ZS66(vnrj=C zzzKg$B9;f#CG=mFB(tF02DCH;1` zQZjsUBoBWWtUWbMq!jxPS?Is4DSa%K{$-a6;Ec#=n%bW=@*%Yh?fN|j`oakNU*eM- zBh{@wym_|0R>%-UfvL;hSGT&sq{u&Bpn5Lg6z&vUF|PNkXj0&bSFeK&)apI`FT*iq z?KQ+@m*UG&D&Kq0*53S4M|nmO1aXy8mo0Y9vu|(B1^L$b`h+D#0#HO7^8Cc=Z5(w2 z-`uYCFC!;J6$?*}Xomlo(AZ~mdq^qm(aDTXbFS-hl!y$hm}e{MaA+6mT32TDNCf@3 zU=94i*IV^!8P*x6F8^sL3`f;{^JUT^cTl2U4?yd_XAXHjl8D@TP!JDg_$`DijqVoF~1aDv$s%VIAx*;AnJOG-rOAc_E( z9w|qXnW{rQG%=}Y^X|~xa%g9b3lOGz#6eP@?i>5a| zq7>o$nS(RlJlkebwQ9|EU1>>@`;h8&iMCiY4jEx zr>mVWBPB<{TL-P%u1AMy_0l>Uh5DGu%j38#!(n)Ogfz~_2rzdpx9Z`)DPS|n9I=lae&A9a%(lFW{V;UJVGWd4~$;9|#Rrv+c0KP;vH z*!1SO?fLJA6Sr!A#6W?AO5t^~M_)dzxWgW1MYoq(LwA=!9A_3W28v)EC%KtHU4Tt*m=Hf zrUXjKIHu$0TUFOLWT5hsaD2Fok;_uz<(iC3{PI1-cBq+i^X-c-1EbHbUAD|0v$>Ba zzMglPr1Qo4>nHWdeMAeY%|_*};6|IYhHP=p)dK>OhI)(tB#y5(V>wQ)cG>njMdgPLdyOaCQ)Dj}X8GOw%iO|0 zh&`ufy1>l74A$@*EiwY8XdAI&SvYsrEl4n;L4mM@I@rPc!e>7{K+a`YLX>1nAx2q_7s-iHYB zVN9&#jS8}g5EQghDII?ax{_}O1M3l+brs_RRacBE={}60I2^zCFT?9W5Q1F1Xw~XT<4yyv+pPI^Sblo^K~znqDkBL1fIOb6ic%94r0F2T zj-ne(!osc1wa=TckvwaZjb ztjlE>Vbp5Ysva%veavq7;XJT!(~=a9(>PxBKS(J^8xqK3CJiNRRo`ND@;DaPJj$n> z3e@8lX4`<#*WX;c0C6;`H$PX@&@j>2tQRVhFmPXnfBey+`&(t%*aYU*V@HVN#RQ>7 z6aPt2^Dz@f73(VvxCqBsEc$-06Bl8uVdu~zH?#MAGt6?HVX~-~ z0j+gak&A^7qB9aF!z99UUinePS1UB#*d);aTzw&}vd2g`M_(Vl_zq1u`tGGadsWf; zz!+qegqmY-#vTD7>Q7>oIPZDwS6co2P;xstr>A+=y~x}7K_(+y0l#c}ICxV%=+`zq zpa5}RC5@5Z-_V#}q_nm2)fcKXJ^n zMv$2r=M>Hy?AcolJnUt?2IfIzDwcm6x}0V2n_WBwh~c4Tdf`=?4ZuUC=K7lhWrmGI z1;%GcvCNdex|G;n!@fCI#5b;Rg_AMjMB_YQ?buZmSz);bbMlm*&saVAjV*0O>|~f~ zy(EeWlPttRj>j@7D~i&@H&QbwAE*AX+SyQV<^Zv!;veru;E0XH*$hTa=NF5*Xnl;z-r{+Ubl}a8sbo8EY!4k!H1dPelC8c`yS5Ql zuB$}sW%qUp715Tj3U?wr#jEq7e4x-f0cOlNu8Z?S&^hgI3an!#5yRc)C$7Q>V`Y{Y zoBxE+h*gH``1O&nd?#Pdb{tqRNz(-w%(8p050j}Ky+6qnx1LI!Z4968s+`6gi$l_mMjBX_p) z4#{AiQi6KIN2~VC1cbe_fA{&72bQt*2VY@t6Y49ng~$I0T*q%S{2c?`nGffd&)2&< zqq{H_oQwpSB-9Lxo%RT@-EbwP#0gAU(ux$VFB_?i-rnZ|mVo0uE0;OUw|2^3!|Gjq zaw`@as>+PalpWEPzP%I=Xj=b6C}J;L>^6RR_N1knS{A`>%E47cYv?Fk6=h}i%2(@M z`V1#pCs!9dxHB!3ekwcnhT%>=^1yGX-d}*P>)5O^;H}pVXTyLI0 zLdu0_vO-@t4pM^tZVH~lNSGIzXH~SxI6`0v^}`qqiUi>*9gfnv!p}ODvbSxXVYz{1 zJ-O_?QjMQU*N>l=t%#I(I;o5&lFw@FgL1l~Y&YmhpRuMg_*$Te-w3p)_2*Vk#Z0b) zN!Hh8DXYVZ;z5jKm9OYFKc4rX-S56u>+EB-<=N-4Z?$1L#*70>*3I5C2UFHt_fxj3 zEJ=K!DK+9}h*@i*_C700(rx493M9y!d_KHoX%-aqbL8+$6D`3O1zKg>!3`E0;_P+c zDPM7=iNG9!F|&pf>yt&@CXP|wcaQHmBm%^k<%HRZjaroq)X)P7j5+(@d7~sKS+F&o zM4@)kW&Mi51D9{y^W9qUnPeim?^hkuttEZ{u_6|juHi@4g$OrSgkfxxOO9=Z=V$uf z$!al!;Eo&@5l`E5Sk2_{t>ZSWj8T3>`=X;^oQzG|*&lL}xK4g>Px2dvx4o9+Qvy$4 z4U!sisg=H2#R6*e57WMTE+?EdgvPn$Sk02S3@bFORVrGMhlvpm=m z0?#?+w(L#}Vt*no}$1B0$WqC-^u&~dA;iEBAhT5n8ss#9lv5{0`F+Tbp;I5bVLdFPA`*LR@WP+@ z$NjPZ)7g}=7fNI*w!nUo7AUL*VKxj`?C`Mn$eW;AYU1gGzCOLn1wfG1Z?gqn*qQR` zoy1!W=FZhhS$}iEg~ish9g&uEQM;ScB`l6WA?9>v9$+2w!Cskag%R9Zg%~ykW5km> z#@1bz|K#ZMjwA`cBCEDe=qwy8h1T(gJdK`#akVt-Dor#s^LxRd8 zLo1CO{5WEi7MdrDZNI3;2+++Kl^N7Y7*Oc-?D9d|4yB0Ap-}K+CtLPVg()WEs?=wq zO@V^I8O~eBWRF?LkWH}u9O#;Rol-x4rjMa~y1|p=x@mtom`9FK!^D-uM1ozl&pKyK zy?I^Ok)|nJ5N7`+>@$MWv%I0;rYe6~I@CPLxJ`tv+SNi)CauBKuy{s5d8y zl41Ku#fRa&IusS&n>n|-zOfI0+#f5H7(DvzKGiD3vpSj}p44-v{&M@A=!@3upB6D( zG`WF^nWKT-(A?j#62E+I3#*qy=&SdQ(6kEwVfhImwFZi!r}fkmGrlzxQ@L434^EAp z0-PK#9K-5poc>u(6w?T&v>io}F;29eI-$ypXSFf-?x9ih+_X`a1)jF?i_F10f~HV0 zBHKFSYP8Dhjn}7d^ePe6F6*#jybtd59nWm5JD&AU9WqIp%Cf?SQH1u|IKwhreIAr5 z>C_sr+{&j#?@x*gD)HUx1J_MF*ydiQlK%wAm_VtXIy)LnG?keV36Q@Xk2)j2D{k|U zCW)g3H<|Xd=iocHw1^tPSh%*5yF!DPV-J&=uA6DyFX?Ybh`~76l=^4wm@<&gxzeMCw+ieo_SPYM(zBd%J(SDfGcpu0es_5xof|R{;X2-``r{)ghpv| zxUQH?2lh&~6IgJlH$rA6HAk zxr>AtETJZ#S^oZYSImf!7`5S(5jNYnxR}0h*c4PUKl#uRK3=Y9uq&Du@UMa4X(0H6 z#tUPVUXkugA6RPY$Ja0LKJa0maBf5=OH}~WPAS>ETCCqQ=5dit*-k>=69z1lPz=jy zF+sTL&WnKvy@Jq-OxPUbTE#FcAr&#uOqGL&-}aauQuO;yM}?OX&{s? zLhnctz9hytCSMQGgv~_8E-;?pN zwo`d?Mpl{6ef5g+sAvZkA??&++E`!S_v_U!B!<2tiwXef@E+(^qnj-&yNOL59_5ee z_6bG@3_Se3DG4)c51#Med146t?qMW_=(59J^#KIyz03Lv$&5h2@aGeZBjqSI-75Qw zjyeu_pyk+4&Dc-B)%h?Syn4dZjZ~K_5yH-mjVDIowEH4YU`iJod-!URHE&e(+`BWI zfg`2Kak(8J3pYXG3dE@b4+`UKO^Is*!w4mok$j6+67w9WLb`oJCKxc39rbvik==>n z{DDFZ;H@`3&+Q~=cb`<42^Tx!7Wo=kW!oyxI%$7I_c93b-cb=wN3lP{dk&!n}X4^XrKUg;wOixR%Qbn0X1HZ_TS++;~vh&e}VaLxr zT@-DJg7qr4ms-b{g}Uhgyq`&<;6o%aCXa?9vL%ty*JL|JQSpZEu8zR3iqh+FE~29 zk2va*C2aa73V5xbD6NSnr#I;!mMDT`6)UHeH|+75sefkg{eHR7=q+$GTs!`_28DHl zgW4QLPGDTe3RBbK?d43TwT5$m=DY(AGhHLg#r)?C!@y)n4VqvJsTFGn7oX|1Jv|cv z_`S$(B8O5iPUie^qwg}q&DK=_q3Vs(6nW!#jPV$&!?bCT~c~qPXFWMz=)Z_Q;^Vd%3 zeaC68$zhGYJra))dp4c|9EhSOn=~tZy zL2R4>I~>)sUbVngbtU$gM1?kei9BFjJ;OFL4f@A{e1cv?D3;<^tZKwslm z(?!2n1kI|VWPBtW}Gtt zTPDFv-Aun}j6`olZKT8~SWSZiat&|WTx%6lhu}h@m}(8S`A!8mP?ewTqChZ zfBEzoE5#?OYWC6EKr?xjD~aRmf1PR{W?mE|Fi6mO!oDl2V)nkCuHes|&Fc4vkV%@+WMZWm++r?{nXL zq;-ac?R>I;rzy_Bn5~3+D8FH00anmp=#Sz~y;4!6M+YqUyyaG8?-5k^dfj&uYPw_* zlm+)Ke`gSCp#=`}%qN50KHh@9zS!$k51mKg zsanle8-ba9#OuG0^X0?hH{#TL-gj&AtpiyNeF$uAo!!x2dhJJ29e*3Ku*!$!^Qu)7 zaFq}Xu6#qRIO3V=tjm0*-ue<-@s(p(l37;goo(-i5=}3uyD|2mQi3 z9~q~c+dS=StNxu%kx~g0YAn2uHuM+m_@@sdt&hJx5?`dP3=h*y8g~yU${?YIg zn+c(5hLKrdd65S@6h*=R!@-RVf42iqvi5Qm=b7I)vr~EKL;mOgTxu|guWW>O^oP0m z)&%8`t~br_`NJ!BTfZ5GgBHdW2SWG_Gy10SVF?p;IDXJ0Z{>+}`*^XZPpnr;vLHz> z)PH~11GB$^vODM_ic9i7D9vDka=vSB^iA*1l%mzn?|^zRRX;<*l|ev7^KD|IozR&o zV`AQ<7ZAM#%PIn&DvgG{Q60+Z^H>w@M9IMBb^r4dk57F`F2xtt z;WMWv-nRFE}F6ftxpd6NC?cp5dHWd~B!TQr5)@KtH z7LO`5XJ56&%CqrY@wd+T1>`coFBV2P$w^Vd~FrD+!x~nfF(8{c$nTi(B z=`^r+nriZt#u-ZIW6(!xP)M=VR7afAZ@mN$pA)fyb=EPJ`&?z&??Ge>kBTxba=j6! z)Gu%}kmff4x%GOduAqssEl6z0Bqi*a?WG887ZwuyMTZ&MKgk{<$;^jzGtX~mD|$|e z4|p}D7nx~itlx;z@*sWgx6>9aH%5Mo)ZcL*62eVpx_U_|ra-OAjh`dy2$G^vR%rMB z<>W;fx1Kd6=)ASxhmC#|8OcqFResm#sQZZ^Uxo34sGcROk$wvlTLy98H+m9j&p&-# zv|=A#!Em6Y20)DBMO=U#x!(-L;>g(*XMb__$X$fEbXj#iAaYYyXH@U18ftksjX<5d zbD9S-3SxH~A@4q0KhPeJk2SL_f&;Z{i$L~aM&tVLN3>0@JR)oICpeUm;&+XKLAYO3 zY4~CE$t>LO<2axWY4nTrDkjod0P;bqE00>NY)8o0@G84V&o(n(u}@xzV8Klk*MQ-B zAU$W#doHb6_8GA6*xNCpehEr2piCzxAbFK+#}V{4@F`razgsC!v!hr#p97t^Lf-Fz zYHP{bp*qHg)NZM1Evs~r?DAdeQX ziV5=P?0ZT29xD34JbhQS-QI|H*jN)SDo-MUyM&yea{H`38igP;Y8{@RxmT1g%7RU5 zP%2mUD-(H$4l>wxnf(2dq~~4^N+xXY7v$A2C(< zZQ_aX=r)J)EF%YQK)YgGhuEgBA=mx4Jsx3*Kibt3>m zm@z0IbWjRp`>je$8G+V^6;?w>n|}#t_PpiPjE|QaNg8t$d2Txg*2b;vrZV6-{H0nF zJPf~nJ+)P+P?E^VGLH*6IjG`;qA1mG-LUkBBg?>M*dDJ2i}lT;UBX1+X`BCEOR?3J zKchG5J~J8ei1LaJ|EzjJ=ZqrmgrNlf+;Y2Z;=x$F?tWhGTFL+ z7m@CG5!8(T9De`ml)7@awvhu*A2CoZZLn=Pu=>Z#I%G(Jt?ViGS8qVo&g-f#hdy`{ zqFHvj-2Uj0gr;*8Db6xcU>GKOc@Ws2a*r)le{rh?$t8SgMNYuMYctw(1!X4y_Aa8;PcDI%x)ICv_r9~(5|kyNz8G5`2jHkPsmlHfe@2|j zQ+M>qf^}?!e36+Y(XXY77evAJ={ikF5m@y53o?mBodHQ$Q}PCc7e2y$C5G(gi?K6h z+XEi(YB5BI9?J=<-H#W?MC{*C3pR0flupjn-Xkf~wO%A`FNpzj>=`W|CnKpm3lU1D z)Pihv#RMT3_0G$*Ctq6q@%^Kp>gDXC_1^Y^rdt*h=!~ee8(Dn$J#`rKZyjcGV#q%I z&wZY!b{oEGRHp)BI!1TJo{4hUj8mpKm2ykn)&R1SpMqLc*pvgg^`@Zg198a;J@_Eg zZUHf-K!>?2^tZ&A5Il#!3;qhK(sck>BIUs%_b{A1a+kj#%Y8e9|GbVcWnH^hqBOvh z%e2+_E@u5u6$HuaW?%cNQF_)P6M_mM>DVZo#6HQ@pBzOq27Ij81ppQR*LRpe5`V~t zNUuC!9?f-{f0UDT0N5jMFqz)M%rIg^2KgG&M5z%Up~-B=ZB-sIBRkA+@Zz9_30m{A zKC&P@8jy_yW+K*vs=e@VkJ1;(<5m3~a@xdyoCmyp88i|>XO~j@^hR|ZGgXF>KsrY0 zmmzRm7Kb%r!?}01=4BsrD0e@0{dhHEmGq+lr&p!vn|5GVhIvpQhk3BGCxURO3nyhc zxHRO}bOiu5sf&j*p=qi?cMfL3kr?ffk;a52;U?E;tO;+u{=8o3?<*iR=j^ZM${hU9 zPc1?d5+x{lpcFAHfDAO!4vTffupgQ0P%c$mFd@M5-?A z@rSuy59Xq%n2u^p;AIMergAEkK0y95e%bH(_$N;>ezcn`Sm%)#YFmGMq~Q-Xt9U#! zYnz-}vG9z~{5vt>`{}T^Gy3%FE+w^c^#Fj{E4hb<(ay6+D^2#jXAU|5b_QiB#;3U@ zPQ_LY>g)Y@qKGYNiV3NUo;k(eOz&b%3x{OXzgos!*WH5 z|3L)+MlCE~i7OB*Uix=Tk?A0Q^5;G{$7Mwb{kiYu=e{rBOdLoDA8D(_{-9G8er0mP z7{u~cCl=!~lY-k*X7%Wo&}+xOkYd5(eTOj&FI?RP3dS$>MEc?bosG^S;JsZFr_o6TIyrEHOSB59|A#4$TAtLsX@d^!JE~)T_s^FhiFU6WGdk zQIakU;>sUfu9Zr24yOa%KJ@JptM5?Fj|8!U`6^DMW2>M|WJd zA)kS-kH=E;Yq)1V()q@EmpRPLlbJbvujzLY%Q%F9WE|~MJGK*AzF`!g5#(AV=+=Mc zxKX9c5Gu8e)Z*#D?4o7Cq}9?mjwxSv*3)p_oo!osynGXUxN=1jl@riTrNu+eU|^EYlCN z6at6pl#-uWv7&uUx5!7AM&5F;Fx%LlAz?|1LO_Tj(w$w(EzbU78I$VbF?HC%S4Gy` zOZ|Za&3HrIX>-4~16Q?w>G<%)-q|idy*mch44{|z^jXdT>Ejl#l*8h=CDw<9Lu!0h zAub2NnHRmK(k(q_Cirx=ttzt5G1@JqVL0fF$xNP&Lx0&(;2=oF0s`2=33KyDw<3Vl zlnh3yccyqSCz^QjfO$$=2{m=fiplF>q4Ueb^yIi<7-o#mk-#)PZkOb1UH#Rwa52sx zR+Zjnn1W#i84o&B*tFO&7}F6$BJaT6yB4mZ@15xJ{%M6S!a%!9)x zc>N$=(HIHP@8A`mP;eqD!_?tXUsuHNL(M&S+cd#BB|5)y3G!!*7W7p(S*C9|(Sr~1 zHgrRM8v#MtWYP1v~E@NrO<(oL+I&}5~)o|2g^0Bzd> zAnb?7#v`1eOXsf7`9@bB|H`(}cX*sX9) zxJZ5ShTbD^KLvc>A4oc-NWvpSCzsOauir$B$q|jbOn_H{5VPJKSj>1_K(B$ zDNqsFjFmT$1+(w$UM$~73*M1j1SdDPnK*Ym)Le;L4 zsraNHDHEd3wyYSG$2?yo4>js9ck+f{8jCBH8J%t?@g=!sMQ)S4vE9TPHwIg}8JyVc z;^pYybIIlZ@1unrzm}fS-%|r+p@8H?vS8V){q~nwG_Qqe*L+7B)i0f$4e1oPB4{Crj=ZHn`Lc&2T3U$1_e4})NsN-jZ2dCxibF802o zhr)UhX{1MNd8XpPQ!t#l*xK#J;{YziY z=7`a$&DZ0{v&~)n<)gKk+Ag>_yeK3=cz;pxl~AksjvoC{oRo{I z3d5Ze<-!GxV2pDiJ-*>j5E^}$iQS4Q9(n}nvzxa#1 zjjr_Hba$UGHhxyCUuFiU#VEPjXRkz#n=&fcEV0Rq)k5mboIla_G5V8L9zXo*JJ$`2 zCF+m=frTI$hHn7$X!fNZmiDP;5{9XE6cc5){3ca(97%#57`ze9Xe&MbrNz3+`D=&w z%|rv+31;12r>YJw+#c>BJhVfN5%l}duSDvw(^xCmA!u3QCe&!C$lxoY3`I6t`I)g> zo9#QA81uEKF^QJn#G=XCG_F5kg}*kVPFe$!oJ2~$$}p*p=p!{}iAv;xvM$eP!=u5N zCy2FH>gnksNaDb0q_2)gEyky6ydp=0S8rVo04x4`&V>yw%-{|sz07^H0g-KU95PW} zl!`3l&D^a9+V752&730hV|1C#3TqAN4rkh>q4Q%46?22bxt!Pnk{eQA1vRGS)A4NKJ_W!PjM5vFV~KYpdo|o;{+LvJVRBDsFQibvVyGt0BCXVYvf!1#fxa$ z`R9z31lMq)B_zX0%Hd=Y9amBwUQ;`@2a9JAl+D-xrMbdqd9*xPk@(^&JWgT-&6f6e zF4>$n?rk%wCxZh;UahEF!-!(6{0eJWq8yupMm1ywYdGMUducbTOE;Yt*|+>@&Vi>I zP_3(Y*6i``n#GB|8_7TIRNSk#(%o!h_RVX~Eu*@G*6f%HJT=5ODb2?pG|2S2Ifg*3 zD)Yk2Hey1CuLG5|hH5t@>hVyPcbSr1EdKpY|7J{R2&y!60Mfg2rQ2UcHeVfgCPMTBm>vQERe#l zgv1)$%7+AQdTG@7`uP@ZenoW9p0{w3A{`mezrvt3GEPxZU9K`Ag21+q`YPTUPDVu(zqqq2&uG7Og+gKqPxE+` zp4n1`6~N)rO47NPK^im!CsPE%Taa7b##0k@e`F^~k}#HGT~CS8p=vA{(YjC%cXZ#3 zGFBeE_CI5ZQh>fypU$l($*Ddz*R|nic9s3WmQSj}98ah}WD^*CRpAb!Yw5h@ZX`PU z64Hd4T-U?qk|)cw(sD^CfK{g3M}yXG&Uk70WWjeFKAKS3WK3_l{-#p2i2O?VZ#|nu z3u)u5SiXAZ$#8egUOg4I(mxan>KJ)l1V!!lNWsa~+~3UXru^Nv3<*`(UoO|6xu#Px zJ|E86HWzV*MR{U~T^$P;@)e|CIQmoYJ%+mP>_-gS03cXIk?}&*8}j49HjM!NC~X~Z z&P&4+WxM6M1-(93%dU9ick8jbUk^y4s~y)mp?%^>>xS^yN2uR%FN+#>w^H*gOqI80yh z=K#lP8DG7pHy&(xFkqTc53yGA-#uYW6HAm|N*_&~ORC;!E+2tW?q2YL!3%jVL^^rk zZ9q@`7iA*amCs(1-4fTc90x5M8e~usUef4etr6}bB4=Y+ecR&S=;0*1S^6ooRo6xv zJ{pN~0Yw2HPHgDbQ-Nh>SF(|xpAE(6R>=Q)#dmw`6Q5E3fasGIC zv}Qxvhm)vc*W{-%r8^CNkK{LwME^R&8oCrgo23b-h`2?NHxpZhAQ`_O_0PZcBMrT1 z@P#Y=*&C_f-ZW z*7`tu^Xwep;_702FB8tv8l%8;3LK8J<+P&J3ethtcZYDg;N7#e%tw zu8~)1l;6|Pl}7Z6zg~~o(yhQ^yDg$h>xb8S>y}l=8+b};kv4|foJnGy(^o<#i8l9q z%MP!G5u8o&Z|*cyOdMDU9?tXiFfT(mK#m7OlilPOKzqUeIgXP<-qU2Amj3S0u;u05 zP86M|D(QJ1!vBWa7&N6keX+f^3I#hK2?|T*EakJ#)Vj zx>{at$8na@vI|V$=9%E+=!s)g-)79`g90hT5F(b=?}0 zCm6nUUe=VH;Cuxv^Od!_``Vi(lBv--k!}ta*l*Lq0sHOH9$dCKbD*V$6bH`zL8ub$ z6nX8v?-;B<4@m;+h*u0+(4Vl3j&b(DA7#tKuvYEWtKQkntc&|!R2$LSp_u+4DG?{v z=#O7^W4Rn6L|+m1b7nbZ394p^bg9LQJfCVv7x`3N!~2EWK4;T(lINf>9`e4_R*8oO_m_}z33{Ga&xLJ zS&>I`n|pNp9q$N&;W!UUGY*#}rYRF47MQm$EdsbZG{DPKjk;l0xjVU-4nKF*4YlH=G+o$~WPiHVcxDB3 z7Rw!XB_}CepqrCl$K*iMtsvYmRAsqQ#j*?T{bd+|9(Aj)v}zq*L$ghM_twao7Qh6S zmw%#rcpS$lnJ^+23-im5{IyQe|*9c_2ym9EIwRgv}GHq6B-G7Q1`7i#C1 ztVSF?36jIIBk{+(hQX!Iz#;P|`&lP<8ON}w^84+N??7Av?Tsp8*z7Nmf6)C7`~61Y z;3-_7n|_|>rB4gtdIq~SF2Pjao(bUnLbB0UDKj;ELLEe&2m7A~vu0vTE}xv487yU? z^D)SGiI=@NH8Zy1zF`@(a;Kh#4_(*Mciu1~M+LlLCx)R)EZX=e#Vj3?mG&2E*H@en zg;jW|fmNHnP~_mSD)x8IHw$${Vc`0|gSSNAVv;lNwqz7Vk$LVNS#G$<v%RolO9MW9YaG#W4+M5Kr>9gt(KgQ;P^k3e zVy8ca-9`cEx9H!af22zVH*~0pQa$1E8t(CEVL>0SpHEsM&Ao|E+1x$nV$|>c7-wd( z`3N+b?r^XfU$`QxzwS@L&OO;)Fz|$9w$>9sAL142pWoR$>82>M6}r8fECHy^g!I2B z>(J~MdqVayr9RTIkMIXa7$yFc=|hn>X_0(`=c7guxCQad0{_%P4Bi#K_dqHudWG=U z%XIYnHZj8Mr^F=B-?BO%#4D?6*T@X147hhkWy?B_4GM>+IV788G_1F&v(R47RM0W| zFON=8+436Qnw7o*$0vfFrO!Cf4kK!<_eqv73ote0RakSZP0Llz&9S|s_4lULNrunJ zJr`d^s6cm3AyH4Vz_LNrFNysoY9`g~r()&4-dl&LvS-;;u(Qs8pDQHUJub&eKku;; zOCJe3(^S-aS$}c_!g#qHj)GwvcQMQfM^2i)pzkL&&$Ag4C1*iqtX^}jk_1rYUGB1Y zY0h;qCpL}afH^5pY-K~;hUdHMN*1d<2|6*8bMh54yVGJ5W4%|I$+8p5No~3HJT>@^ z=^|}JF0>7*v+ZYVKASS~pU~UUew$(b11Iy0Kiy~g-eB%yI}zw;bvB7+Tr}C&y?lL= zpsDYaI8R72=36cuW3%OlMUZM})RD8?zMuF|f6wxU>2Jl0JChSnR{|Da@s)aZf@2yO zVZn7T01vYtJp`>6LbG(samAw7%@MCC6OYq2vd}$dKM1M=$KXz)K+HjK%{5xXpX?i! zu1dVbN_q7wpovo9q+j0@gAq^Ui#wn4e{nfsFlHl2Ra_YFHgW-m8rJL@e(!`XT=gy6 z)gccr>Ux}fp{C&~C-Y{9yAjhYO^%o(#n9{mm$TS4=+lGpWf1M9QlGD`(m<=hgZHIa z31=`VDs2Dr?*=-p=S#5a$Wf34^gccmu}+>6bftIL8m?meUKph4{5t-ko-L6`;2EOX zfZisyrGw}z+Q(~jQYGmKQe){q$1>Y9A7rY+F;OsaBbKi1^iawxnEpH&8e`^(*KQL3uVykS&n zf5bZtS~MX{nSUUOVHnDvN{J2h3%HdPkJXq)bWVi?X?Nux@31GDvEU2{H)ICnSN+XO8WPnNwECtY!(NeBWFS19^sK9%1Hi$~vfb|X z;Viaw^xa4e_i6LNJGhbhqk;aF8{l@|3toi7{?&vX9eeuMVr zTQR2@*Y}|@Ih#XShDcYwdF#5$>3um6lkkF@o)ah=Mf}H<46LUAWU`$-*j21gZrqW= z|G`luNM~Ao%Q2a-gJL^%zLaKMc=@5Iym(!n zoj%YSuP;cwQX0H||25yCcoPST7YToM_cLKMKK>XBl9@<{y%WS{KwmzSiU>?&l^t%l zB^fE4hH?CpMM9*#PDNRO`;{&oiT3N9FQ?Z2dKh=019%=BZ~8!0Y=P%*c;P-e*PMlX zSv(BpVC0c`m=yVR5{8_;Ef6;2*CG6aQTPp_;9fy-p)Ed2SymnAq_wI(9A5mXG7E{@( zV8@czHs#g ztP=a@;a{R%qbv=cmm&2p4~@dU!80UscsD9rfzTvb9u-++TZp1y_~?4Gc?axdmiyh(Wo-L!14kD;?cAal`eF^Y&Z{A~xF2mWA1qUqa%In@Spc>@$Up zxYdW0#I=}Gi(UR|LwjX$XD@fQDb&lFX9Gcn;rX7w5Kq#d`vboqN(yYEr|Sx>%M~SWb1tcMxQsKud#C zl60ZY8(LU2Mc;1IiGM8BNbL%Y$k8q63i`c(Cc**7X#dF`n7MIn z69!^FBb#1@jh^ild{C|{w0p0vNc~e`bs9h&ML@;-A|n7BU*gkh#qt4#3$Cf3;MqghgrcVX5+qqV6E@GWmyRA4}>OD#>-8-5;OvNgI*M zUNV2*5WJeUc*(?;NyR;gEX^rPsJ#;CL={$lOPwoRsnH=|FZ!29Y;x`j=@&hax&HSY zF!lQ4*jtTc3+R?aLKJd1{-TA2{Y34}uODuo1g>e+edk(5c_%!rXFXhZEUi>_H$?h- zi!!ye{^ZSgAa8~|*{M7sw&gsMe>gd=3nk7sOnTQzFl97Z)^#_XDZ<>Xsu(rT%lxku zCjXCSVCSZrXfUH`!bUyC&7j0tgS*NO%5bOFR3Zo@pW#HYWUG!MioB+;+oh3UO zyz~EeK6>+eEQ}$q$juLfYkM(1l7~60orZTH#uv`%$NIymD@jH@ycFlW{{W#fMbkmW zk!YQNV2)y}-u*YGH;WGN1aQwe{nCm>J4YQm?!$E|hOay~@t;te@j5Z#r3&oZr4On0FKkbuT)KEHU8P}@O$}`Rk@)V}2$CfV?Tsd47v~>@ zIQ$R7q$BmSia${*rhQ+jet@1RF;%2iR7l6N5))&pqME%=%3W2eh)XLkpwDvcq1H#_ zo?&jXU?h+30XEM6>)p`#Q8?<0$aC!eVF#aNszbJIm`Ngnvx{>>DCHb+CR)R@b|W3o zB4n)?_n&L7+)d?^JS#fNdA_gN;v1G}1e_Af@j4=Zf4_m#FM4chQRSc5l(_V+qsYW^lF|d*$ec)nbXXv9 z)=uZGJ0SlQ&zexC12O6o$u|zrvk|?8Ubs#|(E%HnR~&QOK!3;4anHNT=}f}(sKW~- zgvEaZ>zMG|>}*v^3ehuI9_X}mMNo9>YzM)d{V{HCbwR&0D-}+@^0vQWp*54~Hu>(C zBTJlRExHuhdlZ!y2d%bkH@k5ijCyh`M>$nVz3l|1%fDK07I1~+nRde^nu29oBHmDe znEzh1mV21kiwZ~vv?iyGh9JNApZ^&ir4lZc{fP==!F3E{%AhEKvt(9C%xttN z;5XHF=Ch?e3n(Wp%1P4TSjG`5t$OQR;A!MoO$sLVO7#jvoGLlsQcINMX_{ME8TiBzteAH0 z>;m698!vs`J8T51Y5Pqf*fHLQ%)Or<*RB5go*uU^s7~%mYmV*})eS2e)I@<6bYKan zRSOo;(oXr4q4dXFNLjItOUBTs!+=>Y{~USF+DYBWyl zGki?wKfeK^#+w3|;YJomK|n5RKX>*CEJHZhM1VNp1$#AVFBtCpkW~2guMHFUvXOg= z$}1gw&I{5{`O*}37l8KpMY*Q~+d{j6tj?)bs}un{z4ga`u?X_VPFzb~k+1QZb6f7N z3R!z$S~;0|y}Y^<`%NN%Kl|TMFu9($;^WL z6Zo#qG3l+PXbMXfpo6Y9y^7i012jhf2JJp1ux6KWlmGv z2*8O2X^8g6d;PpmmYs~$x0OnWfAi~3qZ*ixOjrWf5Z`FNoGlZC#QtS%@g=igwtP`b ztWMe2;RC12P+n1O>bujTy1TUJpZ_L&dJq+aO%Ho4?w1|BN~=#Z<6qCM0X(pc7|4xgy)KSaw8_S!|8@s!Ugs;2vM%cnE@ExM|~x&(COyo|bs!EG;yj z#g=2%$XACZ^^9f#-0k*fCJHn&i_UqI>mzQYU(k&N$O1m=cst4@D(F7#lCDc)|vj_1c4%wUT{NTc_Q%Wv9@U!`w!EQ&s`Dye_6 zTK4X=M&XMyHryjH=qSd+KlhBwYiD(YU%a-g`jcDe|D>8ds{ z2jm-usM$^07|!yvcCyFToHtnmdOx1A;?-;sr{4W6?H&*Td6307d>t`KL-qRTzXnm# znQIcy5I+szdz@gYa7%4Rj_QYmyTHBJ>t^S(1?WO}L_On{iE}KF&nB#`KqVo_g!^V0 z^m@Ih(yZEd{QU9gS~KK0yu<&Q_si){OB+>+6ER4Z<-_)mUhwDN>4XF#`zc>6T!m5S z7~Ava2o=TgpKP9!8m+iJKht9UAAQH9S#mhTejaB#>hjuB^#^6iW^E|(fYsdZ1vThcAlPmhY z+!Z!tK5)7}c@ZB3v*Awya_RqicmanB&VQG3M!r0)K!6>m%uU^lj;PeqW^6V0G$Q?t zM6I)g$k`%+<&pLAy$1*^Sx8jb@`#|=T&bSw#m(8U>Rw_Ct!tc7TCp-HTn?*__=n5o zawfTbsazeWfuzB--X^he5&kXCSbuj7{jvcj6_5KSFm2yQd~!K3&?DpihMSa}BfzlAohj`&D~CCM_AeiD-eAu)V) za$}=x43%9bSS(0Bs63DDn(Bzxv-ngIr?buVt1;?fFZpkGig^hv-f% z^BVbYe%M7O~Ou}#}&Z5&UP0!o`o%c zpS;K8bdytdZ~L1EeH@`C$r~}D2~uS<@e8X6Bf&cKO2EhIkpD63?r8N z*Z5Orp*dNpWCw|`q3Ni>XMsr$8E%$D2_Bw0xJV`Q&+^fB3=j z`$;q5IHePHlm;&pus^s_t;jXDme%ay)4*oP@;{m!vC)JQ)GmiEM|?<%>cnWgZ1z}* z!iu$pId7pfBJG`qSqN{yi3QBbh;`bFi-OYHLX zqy&R@LC$f|^GExoCHp%Pe+|9+s?`K7qoT4r&muNxiFD3H2XOWaE_01W%?Pdz z?c1=5wF@TEAiDbr;0Q`mK^l5=gE!HPq1>3_INp?6?`olKFGvHsfrW~}P4S!q@~GmN z;SNM`H|I|m$n(d$RaH`G5RS#?IYqfzTsC`EOTD{Uqj7db7oH%mbnt(8{zF;4E=Q)K z%IGPn;eHF;BBz$H37q0Ub-gB$<3GR8$b#Lbv=P;7U%onE_a3^Ff9mQV+y&RG5P|S) zf08Xu72;9kD16lm!WDx#(M z+Mq#he=w!rpOu!u*HxDE#=q{u%a`K7ZAbgr-*Et5eEd=pQ=*oTu3_4oe#jbpJ!O|4a{IQ$p6j~}c3tKbapQ|9#J6J< zP4rX9xtp0wu96=9u?IU@+wC9a|+o-1a@HX)2nvdqY= zS3e0h-+OtCUztj>ZI zHtX4}V2m6qm^3yQZ@bNFfTxgBQ$&c!3xBZ%C*u--8US$`qB^e8s4meE$V?(q>(s4E zIXUt8L7m=3@M4FRFhfz;yH|vwGdE#3Nr9W%Q}Su z<|$UtbY8?7;K8;gk#$-qDthYm(rky1`)E6zNJn3rK|?|X<1BkZienr5W>y%``gzPs zGNx%G=q{_CUyi{Hc1)Ba5Qsn1WGI;6e6jWZDh!WM991MW z63fY5qRwAt(ImG&IF2(l$5KOHevvNS{IngY(rTLLbCM!nR*%7z+?!;WFe(YYfR*1B zdQ2v9=3g&J1u-V_ON?uFgb_PV7!tUKw6G_-lR!9sK%3?C<#Iloo?F-F$q$w?4jjkn z`u%7Ld<{e)aYg0xS9Q+Ka*F&6Kf*k5%ivo;Gb8@VrGJ+GT6yPu|Bk~AhtEkL6zKdP z$An+aTLU9KS$y^1Gc*d?gS>J#3jvYE$yWJAUql&RMpfG!hs~Ydy?9DQt2G?(IDUBF zmU2Uq%XnIY{=YPHZHs-kctu_}Z^+y{f1Yi#1+$fwytR>=BF~ls$%2e)d;_hF!Dn@5 zxiTQvw97$;zKV*iO@MydvfLz^BR&B46W1#7K@jtwtZvIvV@q>bj#_hmYp)7n8b&we z1E&_u89tRa1bp*8bAp-h;Hye|PCKtbhtIRwF^qMM>o^+H&wzf&LQ(kK0(KN`xDLv^ z)PSE(Jv*v4Z?MBI_)m4KJ^;bQm6n+ zK(xOY?$A?dIiMyIEoP``{_TKlwK#-1-Tre84HG}!T^n^kZ_@6@v&?`OVW8M7VMKw> zrs3m;{liJN0I%R_NDA+>VJ$juycb0)${uQ+!{x)nzi7Wvm`bbrcH)1r{t=%Pp-QXl zU&ggGzNz^Q`p)nLitYG^f$zaVd9p96XXMW$>e{|M037}>WLgAW08FJH!tj#0C4=Tr~+NflY}#I zb0_sX$-zVO-7iNUL_Ty+j`Db`W?Nng6c6~%u4qMQb)4iA%@ai_7 zj$K4|!wCcKoU^n*!yBv|i=Gk_p8t-)=ifh*ZAF0R>a0@55BFXGw}lv6tYcCZK7x!? z(8Zl+vb>KQE*Kd88qceF@O%gM#Nr=hoyC&F+8Kl&NDDD7MYfoEXEDnbOHZGixv5mD zvYVa9mVKcA?ys+`xQQU*&jn}(JxE^Q-$|g5vZb;#e zE#*po2}EQ8o#nk!vJ~_jFMOj#>*&_tA^RBzP{!woMZRy+HLsiCC$91FG~yaHjjqN-(BqQ%08ylHi(%hnx4R zq;fL=u2mFip-oP!2xMmz4(0{Y-u4!Cu5&yjNy1uK>zKi^_=^d$-psHWKW!qnIKbc_ zyADM08J0%>>x57jl%m^dI`;OHE8iYzxr5{N zI)KXH_SG37^4(RWCGvdl%|l!RG;e!?SpS5vPi4G*9ouq1FJ)XkS>JEb1D{=9L(M_G z)dJ)_GATMAUp+@2?e95n^S5Qgl!uvFH{Z3<;nA9^kjhkPe zV_TqRA^v#C8u4x9e&9In10`jXVMulESm)0Dl2K1%=f@1(6`P6~flBE^~d!toujqJ*>zNF04D>Z5x?ErR^#Kbc8L0sHOb z2Y|c*|9nYEGi~PI0_{^ru2gH@9n(Wz1?baI$2#v+k>N`@QPF_8Q-)ZV0fMLFLA_C zfm>i0o^}U&;M8SFhCz_SBv4d6UpmmD*VF5cM^RH>;dM6on9)KAr<+kv%ai#IejAq) zGdgVSrJb!rd3ZB{hizRFon%n8{mOe>E{{mCC-6DsBt?FaUE;@RPE$Y2Xtsa>CzT}k z_kA3qqp&5M06K6lam^#wXU|w|*AdyO+=KsZ{A?SMPT}>_1RWO(1;J&KO+felatEpd zPuj+${l#;g8UUh9FJ)1)3n8zWrDP6SQ-$ZLW_)^61 zZfPg)}+VyFyP8>%HmH86b5eQC=-m4)D>fiUYAYQ4nP z$_=R-2YLyHif}c%;e`@^o(IOw>&Eac|Lci_jwH+A)Ayg#&A+_ad)f=rhvy5wjkjt@ zL@S;o$->%3wxDx7faT+WAq}iy&3?xcN2IWXaLaM`h)~-3_(@hqhv;U5vIlwDG`L9E zTLU2rBzd8Z;F}b}q4>wre8n-2hJdi=m^YCJ#y8*Te0P*eW@o4^SjYU%SeAZ$G*U>t z^-th=`AHwx$oGl%Ok!eW9c02FRRZfJj8BoDIn?APBU^#H9e@B)mhV`nWV~#D8__Iw zK3harkyw83TFV#nLdF;-{dIKJZ^TH@4!=Z8Ao9{=?!+_If4V$H$rPvTDMr7VLsp1{@Ag;uDDPIa#s;$cSox=Pz6T z)jH+c6H12cS3K5^WTDoh~mWu7+sa;;5Ql<`&mLa zD_x9FlGIFPw>R)SN9enFNTY82FG9Wiq|k2%uK|>;9aygaa=`0=R*?-lh*iAmFn{(0 zpv@1AqKW5l+0#QZw#D|*r|=|NS_JU~cMpNT$@TnJ$21H?mpagj2a4g#_XbdV=BN;H zPgWeFy+ppsh}nhvn=EV|NC3`4BDP zoO(GyctQ5(Eu8z-Rn~e^WM6gE6V||v4f4y;<1w4EJbQ*&>uv@f*;;v! zC>6l}Umx?81<*%HYbK8*&9i70Xs+LAY2A#jsO__j&uyl`rYIc9^Md_x+H#OtPn5Su z15B~j6Zj6ZNhWPqr5_+SekFy4CrIp0hQy`6JlAH10v`Wox*We$Yp#08{!T-^%*w__ zewO^QpL2DNCv?u9;BuhZF}a$X+adqZ&+)s_HzZlnm8_A*PiFI1{=5o*{Tj3Zee4OP ze06BCQ(d8afV#JJC2QE;^R6Be!f_3}SL|nv^04b3Y@{v|AX56GJ4&>_JzwQ-2|lvoyb)IFkamIo=*;>u8upzC6i} z%W1Q!xo9i&Oq~y;)ZCzC?dP&FSwj|r+G0$|n$yC&bJn4H)g$QdE=-oVopmnQ;}9B= zNN085BLj*E6o2I&_02tX2)^P|zQ>l%l(u}Kn1@=w0CpEy39R>}B8LHUR_&~@{%glr z6lfOKb^R98)SL9&zo^SJYS!g#^2;v$<>Mp(w!P@4ME%%FE_DWi-dhuPW+q41e{)s zUdPX!@^=ww+sACLY&0F)>Cr-Vg4YB;)qwW{^xh_oMItXOL~sMn(2 zuYdUIyeqJi6wMLO8EtxOWmyKH{*-1>o;5O^!WuI zFo&%sCY7Jl$tzX+eRZ>h_PQ@Qj;lFoketwMI1qn&iMxGz5YRt_sk?iNVP#!14p|?( zxmd1JRZbD;@OPd-7}a-Tk`$tU9DYw$bJi7pNUp?B$?obo`(Hv%=n$x!yRkEoa)^cT#JY2=Hl`mYrwTje{Zb7x!356@V+G2>EaEIQh_c*6mxtnzI~PyG ziB7eMlb1#Ll!M;gsM>nA14;`QHPP|kifFNyV z%1Z0wJh0SkeB{G)Zwp}65n_GbDd1X|6x38d2B%c zuT{+RV{@<1QsUW$e-Qt78dk1`8kt9~jC?k4o?Q=0a_g<|yUnuK)4@iV5PhHg<@^YY z!_$oY+s{oF4StPCQ5w)@sU`cZ9RVq=V4AB%*PGFRyxG3z!o%3WUso)3rspKbneuYM z>z*1^PE^ND1f9zC%!Vs7eNyr9kUb)Qn5gv(@HTyhepl<*s2E-R21wI`W9xbvFj44z zoPM_gpIyGoFA>!S-zA+RMoEs!_3sLD2raj64Q;2CcDaz~BULO_k9fk3_>NF4= zm0(L~mJW2=_aHXLr?SuRcWJzKP9RSUujx*GByf(RQ1Tb-tvIh0sF^7OgpDql0StaQ zM5kiM3p=u`CH!H(@*z%2VRFk?8#a=8w$Zt2%nbIe95VLFq)hzP#ZW>KE%o76(>h{5 zCQ5?$JiW`Z=XHA$$Ifc2_}KjOO&b7k=Xl)Toe+Sx2I*X5y}uH(q8WyPYWM>?hVmgr zBI{L!Pt*N5nwRE^+B+&qG%&w9N~n@V3o1A_>}yNwEcEBeV6Ompaf}b}7_9mByP<_> z9dUI>t+SKo3%EA=?`1Ym-$Bu%B&0F=uKH20beB)rVBhjvyqMyPKvh^TKZGjnrG{&{ znq2pS)9{=|ALODau_hn!ba@wtDs{M=D3Xm9aq*`xzC5SY6SuSuhDiq=CF6S2fDh{# z<9n~9szE0I)w!*@ee{qPR(|XjB8#+E|mxZ-CdbRzJmiw^J zCGFD7@ptDg*o64j$S2i1HhS}_#tocYq>O@SFg@&oWXWQUQt>>88uWSp7Rh=wHUaL< zgN_Z1IsdKoW>s-yND@6E2~usSDrW#qOU?PR+c;?yKA_J9AMbClc>T9j>lZCVf@mks z53;J)qdVETgbPYKsb^tNJwttU;MD$kQHx@~cz(t*tzOwD-SJmvzT?f>s=T_H*F&!V z@fXEy3f5VjWmpamVIm3QLSRlhKh`lSOC$Z~j8-}RAFIMG2c_(xbGhBeN|=x7Ey_=} z-XcFqLyKn5JC-nwm>ARb{d;_mkE|EaGhMHA#=e{2e^f0aPCfG5`#NCT>3xVk2> zIN}XO;ocD9e>^FA!JypaZQ<|d(n&D!IudCw+m#Z9t7foxX=%0^5CXoNY?Jm*NzF5U zK_oAgwx1sOc=7c52%_UbP?=obL(dHa>D5%Ns=cWj9>+ ziMHnW=NVtq$zOc{Ep^@;8Nz$pFD%gEx2OL-;X<^Gt?T-I=pVrNg;QgH-n#fTDrOix z_pEu=>gusrll7z8_A&Oxvch4mNEbsx9jj>;~@eF;_h!i^sLn9^I6&d-qm1-iQz7tQ~;F zZy&8TWbtr&jTT|=A!DqyF-}y8=@c;+vnm|hkK>arzGl9=*vIWS{-Kus$3D4A305sG z1bg`*Ym;a?zCM>oP0EZIAt>LdipfcH;W~35iTzDh_WF=Vcb%kCD>wuhp>qBZS+yAg@hU}G%EhZZ+?*mO1`ctUd@12Cm z#Bt6)+<0DaXCI$Qktdi)$fesVx6~NDcqAg~rX=P^8iV%>e=lulXF_I=tAR;~L7y)A z4Wa%bD!5np|FEonMLVcAtsdU-_4|yuPeT>B(D7R&0z>ifUMKhm<|*56ri6T&V0(J* z^&F;7HejQfM3+rZBDZ~{Eh4Q(`8O9T0aV(YQd&KgTbitIf4R~hdv&-htOt<9(7dW` z(8K-D-ggh09ONcO(dl{TJb}=B z^t2gKGJSgxi5k{r&?9=71QWA)W#EI;4?9%pqs3vLl{;g$duYnzOBp5w?)A@iONf)N zcOg975Bdr6?;+{^tsz%EaEY>^O>cjkevOd3s%ss4>O`sFzR2F$rOz)=EAwS#pM?&M za9x5aL!T^3dkrrPy!WYPc*bKm1?XAjF0C$gbo&l5zi8|}11U3bc|Q-5DtEB&m~Z5-LnjRG8is9N)L$cEta!3UW{46^LVjagjuMQh_V7$sY2^c6Z<(sx+h*oI zfj*$0BZml_ZQ2vz{^vJ+*TtSJlkr^yuKlVY|eE+!KR>L0(xx29s; zJK!?as^DbuM@UtbVP(z=IrjPRTe6G>U>xmXM|!{Tv%X{ZqzbLu?cU_RZ}W!_4SyZlb=Z5OxTnS#X;|s)-N`&M zE;db>Th7cg@FKz)tM%T8I_!H*##+SYIrSKYcQgya53?wCJTWI{viq6W|K?cGXd0om zf&9v^w#*t?NF3Q4XX4V63^PtA&vXL~v%=E`K zE1u0)I?{ljxMpW3d1EIb|I>h!#-14lz#1{opwWuH_55xL#Ik6z(bZakuemtq|ykg@#1h`VB$ z))~zxrn)(aD#z%`5C_+Vs2gynYG5mli@) z@cojfs*x;}cNHdWD7l`gA3Tr>$|)nh!oeLCv$X_xcpXIu)MSlv5BSF0do`D~q! z>z~O|p&-XXqMmmeEQN>UmZ8b3-^WV(Efhsi_);L0;w z_gEdKk0QrHb8AFG(_hPtcCk}Y2&x1rv{eBDGpv2eFJ4C8(!mM;oaq}KMk^WkAE<#q zK>se%vSm=8eZoaNcjlJx?)t0IYvN-ny{Bu&4sz3Gcjx-^DM8;cJy=PMPZFPvAp20M z3&%z)ukpKg5}XQNBq+R{co9s zb{6>II%`9&_E>*CBts=$GXsy&eG^eC)vZ(2*WJ3JzN4Ijh!h@hdIH!2GW{af6+2I& zw#Q(P^*Rn^>SJ+3QBy|H3A}0V>K~IZ#=ou;mP>iWn=(7_UjM_x_z5}W*6&_0B!@1_ zZ-79fLjY#VsqIV0`EtHMQE;ba=eX&CoNvM(?57vCcQt5@`&@ zEDbK4diim$g&IItBxBbUWp1^ZSEXM2wRJN3e60z!c5C%ds9ULV zo~4#tgwPuNm_qFOF3`T0l;0HwZXZ?wf8p^%{ip*%Lz9Jw44(YP)kBOjO@|N^WxAbO z8?K_N#8>bp!&_<`Y>;S)nyU9Zs(Lm4ax|=S+{p&_zyYG-aUA1_P17_Lu`>r|ak1kT z(Ir!)f`^4EK&+>AfX zTFySd#0k~ED24J{XnxgP#~R3zv8MS+Rb^**R92Pu-F7~pCvg72e-S>~Y?10;30^0q zZu+yc&;jx6ZyL?TLU@elCaMHVl(lOP=4{sapukgr_wJDN;w zoK~xBS(al*+IW55OwyEcmeDZFMq+y3ju6?xnNFL!1^>A3?IX^F!qomQe8N% z!~`2F)L)#?SQw6uavqiPJ@HEG)I#pPPQc^%5rO_9(jPq&G`)#oYBc5KyWikfW7-k) z-bOZTZoI@BLfvYQoQku zg&o*)`PyW5bda@e>yIMq6p&St={nb2E*-rR74&>l}U1RuCK)d{6SD zU4(YnKbEnM#lf=MaS#s{>EE!co4nYD;j_L4{`02nDgK3aG}$n!UQbcv41&(ZJP)J= zK@dT|K5>q1fKL^zG9kkVRoEfu+F~eOAgz9UKb4R==cO%^T0#&+QC3dJF?G-^gs+AE zWpwV>w~F$ueuqHE3>dWChIJ92)0k``OQJ;nE8P z8A+We49#)CIA(2>eK$1lFjw7-AP2@Yg+uAtd$ML^@c^gG7T{=$j`)zH?9;D(HP;F^ z3?g{_&Oj8D?_lPE;hruz<}GqqS3Kl;8*KQY0*X*_0Y)iP>I%EK{8+1)uPQvR85PWH zMdaTKkS?q&HkDv3FkpnS;r7<{FO=XN*JP?%YXr2GmRugGm2`UaDNUt?5dBL!x0`>J zThL-=_6hxB@a&7`=PpNqn6yi5x2ey_XTTf%B%-@l*z$NoyHUYZ9gfPn?`@-*%(CNv zi}x@ddr{4M;ve+)4Ly1{=QwZn+-6YVcWLqdxJFi^TErRg(y7&HCI@}%GhW9%s}gc$ z;AcLlF0G4Oo_a>rF%aP#)}AY+w(hxHFt6u%@ZVXlhiGB}QQ}#aRRyY*Rn`2cDOMOJ zUyp-zuktHWO%vS?JZvM}Xh~g}*@Y~h#>MlkhVFQJNgk(CThnznO8j-}$L4dVcY7=A zf1i7J+CP(LI~_qUkXSdCNs&Ug-gqEy@f z4-PfcETfQbZhnrKf}`a%b_PzH8A%YQ06~zTDm|{Qt;@~V(i33Tb{HOG!%rhZizq(K z8kBHv%o=B(uEbQ996+j^6z}JTsiZkM8xzW^67`E>*4M8#cu!4fww%Lq5#B#N`7AN= z-t4L@5q2sSA~l$ldC9F#It>m52#$Yzn=Y)$Cut!t?%{2>Lf$K@V2d7W4%38>m|Gmp7ifGE#IG?>G}H-FC^TW#Ol4Jqy&{jZjnsmM^ReOm=WlMcSzu5UF&9o z?0kbYHsb@M6|KM~+qPr-x#i27&_R-n+T(sYkwzRAN!^->!UL%`tD*sAbUgnmw3kLv zgfmA&d`#aj$p*kv!aA1ezo_7T&yn#RTv$^i8nw}eo6B$G_7=a@ z<2C(osmUEB{|305M+)F57`~%Lc6+k6bUWjn-5R6xs{67{Dosh6q==kncV0^0^qO*{ zI4}m~Xc{-XdxLw|s(6GQ z<$t~jL(^T2=DV*1hS7TXdz#|R6Q5Up6@Uqe%|*MAs`N#J4@@9IUWxu=#5hg5SvVts z>XK|M`8n{(tcP(qgVQ>+U|s}4pg*t%^Ztr}K7ZQ?j~|6${l;2O?)NvU{OzM!@xo$d zec^XQvrCeApMSA*-b$`&YY=`Q0)&SUZ-w_6-h=Sw>F;6oonWezQ7W<4Z@T+yTCway z-eh=MFKf%na?I?h)d3B&%(F5A?`lvd8=Z3xM#_`YMXE)v;*UomRj5UlW`BjmhpoS| zdZ$~&?*?7GTyGNdSMQTnuLs4)D3a_(CTyn4Tn740rRwNRnYS!I>9awZ71JbliW>}6NHMAtbqnQoj0czctCi%s)Pg=VwXnrAgm9W}p3M$(#~^L+ z;{7PT+Jl#xqpVU%RUG%6Rx-5wjPT%eRC%^m^_0)k_A`p2h+;PbZV)7h`SKROvJ!A2 zL2zzoXoeTJU4B3P!aCjrfs6v5rZc;SwW>SyCFd#2`6+n?cLmWe@L2+Ya#s#m9Xdt)eME%SpNB=;cuXHc-V@A zW9t}>TA+4O< zF)7J;!*Ggi|NRO5fT`$jvE$IHE%+MLE@ivbcP#5WRL@XFOp@TAFIo~|S(ZuWnrRwE z)ds!UP#8kRmK6sw} zfFB-6LIk|On|>VR@wg0)w!rAk`8&QA)n%KnR_aUJb0EgjWr$TR7GXKME^cb>U|xpuPmkqiU+?*7lXYYRYVtC^!<;O+r}s5 zSn-;o&JO@Rg@r^4f91A&wtgHfC~+tYfLiS+7b0)o0T#Yc3Gl!!hX(`7{B9HpPV?mTC*&AHb`;FJtl|yne*RMA22lAIlzlzX zQ`rQ`n#B45L_wN_K>T@m)933jSRuz@+DLVpl)3b)4{qN{vaatlx3-yIoBPgTBCn8 z{P*kW;*);0JRUwpqDygMG%Rfik*M%@@we{_JHC?mu=yzBNT^{oMmmVQ&z6 z#fv-&!J@y|qOjkSg^t8!A+SUbTFcUq=V|x49@hIw1@>h5v8zt@^^<=-?l+cvrx=j- znqWYyoDhBauHe`)BudjPO*@{=_@-fuE>l|#W^;N$7Bq3A-?1}E*Ba()9V_#lS7|W^ z^d1#36ll>#jX-<0UjB~-c;h0+bfo#QJ(l(T4vs>?NwXxTPn;}a}}0NB=gX+BgF8w zC*v?qZPQciO2J?WQrX~y#Pwh^q&EE0w7Oq^S>I?YG?d;mO%lgHj_S?f(#uMhl1?|+ z38j^i`4T=Pzach(Ab$8lWsq2AP*Z-A&p}W-tZmI#`pE}<*?BoC>w$Hj8O1F^qI@#< zC6fQO)L-prmFn;b<5UglqEad!7Tpket~yw}S>bUiw_OYU6v@TMzwHiV+W2FaO!;hg zq+DlT&-a0b*Pt8d#36=R&4%A7>%Vsq752(9N>9p2<&ma z2fV%Aq-Li zJ3H`a(uE|2BG+zYA^aOG9|Q?)w+-}lzNjp7T3FtC;nX>t6wb;w-nkf|r9;ujSD?M` z&({OC4hIzJsWeb~gN=`;PaG`ioGQ-tU>?T@8y2pvV5a^6RG{dw!)x@L`A9EWt&omH zYk}{2Ug<3J>r*pUkT*^6vZB&|_)8%JF}HA4LU^w$tG8~~MTmz@sa;{J;DqsqLGZ9| z7di7)$6D-kv_fOxEMsl=*DcBU3pJ&QKoFUuLNLrhEz$Q$8JMh_w<5PYmFvLv=aECoJc_$Crt z3OI~IAQ-jaCAQ_{Nv3C?f9E@cP7nTSplS3p7YgFPI4_#LQ$O7a$scBw4y)YFo4sdS z=`I(MkE~xdT#^tJO&I+yWm!fQf_ef9n1DiB6^0$9$0D^>G0QURz%OhW=-Ra?8;A-) z?N=NLKm_-k)~eO`}sZ_9WU6VG2Nt`T+HhtA64KdtWgZ-b>LnW0#!fgoxQVlo?FxY2IH}*v~<#(ujEdiRvf*E zKnD1nCj^_F1-e$j?fd(hn8bB~PwdAK3^M8@#ON zK>zk8B$d^SLhsDwtCiAyGklR>Mu!YnZZ_U3E3kEiW?*tI@iE{%%(pkmXj8~lr2_yj z--_gZruoh{2GKBX_g#E#y8$D$b&EV3$(U&#>w0-!lvy0O_hw0H2;E>L*yN9Rt~FAz zYYjE@YGJMdVLZ<^;(I4tHg^LO(ceE0au&lLob2zpEA`SF;X~xbR$szaoc;(pBasgB%N%CAFYaGxqT%)ugNy-L0Uy{HVd+BhIJ#b8IO@zpRn6P{% z9C=GfKN3;P>o&R(xDQDSJyZ~K+hR5mm&dU|IYtopD|DE9HedeWERBtPvCSEgX0t(F zG3X%1U}}*#idkd}!&rCNoSHwi9+L<3D{BMqB42=lliHqccDxBbwkpO6pY6v9Wffx- z)$ePqVYq-V4~$c}8Guif5--1IdoZ#$Uc|#YSAr~*AQXmZdp1_0`fNXUY4(sUMssM3 zzk?v2=lRVG|5-1;r`YZ<;|}!yIF94ZS_#@;P!zm1K^@oT-9)j~pT#QFfoyml|61`o z=G4J5SVf7W+g#8X?mf#p`^%h-Jb2ovdAaMyaCZH0D%mpBWPVX8-26TPpPdwqTv>lz z=%*fn75%#NcEG6iZok6IeO;KlWbtZImB8{Js!_i<+N6l{>z-k@yL#1KSS z(bOnnnD_Wftu#KjMf3>U3+)))%TisLoL-70)iStcAwa|TF~-Q4`HPr?%YD$E!wO+} zy0@Q$nv+xI`?ZYUMt1`4#WOwkl}Dvdv9*ius}CW(%A&n)Cv#`iZtjYjw=M^)5M^ud zZ<^$wrYL8=S{52I;?#U4uCi2^M8fBJ+yK-}OF-GUL5wGsm<@KLo9RY)xFbH zQ2{lc0Hp**ipBF_C8ouX144@D;JDHVhnkHwC-6ynWd)i*N@6D(E%}lo2kmwbMp4DuB3~k(D?B= zNq*%hAb9&{#^MWjbL%=KddSa9F1I{({?5sQL;knD<)rFM+TC>QC z$Fcs-dnQ)n&aM^>+es##-nyi-T?{n-=5Fw0Wg!~Lxd9fYU3AZBk|+H&HEvQhS<#2q zwXsXk)SpZ-8dq4P_8k@MdD=nAP39=UEhXw+M2y^ZAK1U8p!*bOE6a1)J_DS3CS;h(fd)im>LwRMw8qgI=ib8oe%?*azg(J@R0it!=*BoG9*U;9bx3x!qb zKC+)2FxeX0t@BZ$1fo~KF*%>ArmkaRJg(DuhOJ8ReLf4#i+m!e#hR}*2_CpjZiU*6 z>1s68!T~){@s2TgCCG@T#2Kr1tT%fNj8`jGw<9^^{R#n z5uKM!_}#p7N|zo%5Ewai>FyoIl4R-KNt*$ou%B+$OG5Hci*E&;<=@^GFHyyY3z$;?ZuL3IE>L^Xtc(hnKH7vp0@fdfENjvt$ek ztzI3ERZ;<2LZDKBARqiWfpnl~0InM#kO(2e?Jeur>Zz)D+G7%CmY;K*jkhuAgMDF) zmyq~`fnV!qkc6&^>N;Y1W-x)ZOF+H4PGI$lMd#D;TVP-WLLJvK z6h(m{3BODPU236(devCa%B{tOqb9PLJ zb7_De2pxX9!KvqqyH~-yLkAtDY9vsaEe><9AL{Y-tl%X%+u~nJ8|Fu+Uo*KmRa1G} zt2N=q38%`AxDynS(RU05(;BLJduUbC<4BWxMsSDrV~+XMy0^x>qEU29Fu-wWyP1~3 zl-wf#x)^36sbU4juLzcTciD_P$Ch-u5L)z1Usw&xR5HpsHKB|eh;1;DKpZ)y3XaQN z4>8f_dBmRp@|{7$-0B@qwOFtStv^rYTZl&(zN#xQnLhF!rnQUun&9k(_irDIKv2KU zfXUU(FT0ViL9XVe)0zNYh;(##qc#xfnLx3sNf;ApnWpVZd71kXXIal?Q7VtqJi4Y= zw@0@=M^^EXm=7AbPDNj|&FH6f8cM~=EEYm-b@-_BW{o=qZ0!4e-_)ISD|uHmQ`@5$ zL|>aq*tPJ?UB+00J|`rFQU=}GKEJ*{2&ZB_%K67?BPv0jcZLY%7~Kt>vPWqSqu}(F zPbsi%n@|`3gKyRkBgRfVEX`}DsMHk-abM*nDVyh$qLAm91Rr@^keTwXVKMWoYumAJAh6qUIIpM7p9+@+TTHd#9da|%h z5Nr`Km83Gu9HP9tf~_QyZ`I|P) zskh%X(V&etJjhvIS0ZpjU?i}pU~Zww+uS=>4k2L}&gHT1A3%zeE8BgAqH;g1N?F&3 zCz=$W|9nW#yzI~`&nyQ4G%Jh`vw~dya=Rn!z=33J_rxm~)FPbaelvOB)}(v7ev*Yl8IP>T`33jWfZ z5N7On^>xGRgVf!Mh;baN;OF|?vAgOeC7>K`z^J!(g&8i7Co)*PiuE1|Vts}pOyg@? z-PH*-Rys*-tG`}+;O`1Gk1A$^T^ux2luPk(KJvsi`eIU}8}3;kL$?_rxNH*kuhi(B z+~l$O0Rl0t$1zui{# z)I?*zoz}B}cxr5;1SVNmcB(3;?uQ|cRH(epm*fCTK(xOkz$x`VeU8+bzRtOJRly8V zM(-MG4Jm*E0016WP}4As47_z|?LN%MvS)u; zV?lMk}Tt2KQb<1mm@z6eUtsV=LPHvKZjfoqxa>(OdFCtvB{G@b|B6sXl(N|T$j2WcKU2To)cpfqTIOvCV7Hk6(r6^cWS=Mb? zmTp+Tssv-^Hz0pg_oKs_s`lJJ>gWd^P6NSSMNug0nSAD(Y6kZe5t!TQ*_K03bnQM% zA1wV$D7aGKOr!*%cnw)b^X}bk?{~^t&c5&S9Dbpc#&)di~mTb<=LfV4QMR zmUFcQL$b*QzVW*g#~5ZGnj4vtKePgtMm>HJU$L}L#TyN+a~7Ad*w*wuBqbDOUuwP} zPfN~0U)`=95QJhyrGv4Zfw-GYm96+&##Si7(-Q0HcL!H9QM9mIMsvnHYhoQ%;r!$w z`AL;%v1%3d_88llT-y5y-Nw{di_8A4ERFbNyC6vf##d;ZM`Ge>&Qjht!W?1;+*DEoF0&JwMmCrphuyd$gs}td#(Op=xDJ;;*(XWKQ|s z$lnip8UQ*mkD=w}q#-B%1hjqum(0{mETad($?>t0swjNPx-v^RA95llKoFqNXQU_s z1j8(w;eMFyUk{~iC$hg+B=N(%nc$6p7zuLOIm#}Qta@VXfD z0oL#+52?BAIh^~Fyrq_-n{UI?HdAT&)U^_fjN5@w*0wXfC47DB(mG&M$7%EFY{<2 z_xV+D#Y+!;Iyhcikc$>1O_yCjw_R&0DZY%#%tvqqUHg~4S=>;{Ioph8g_(8gmXL|Q zHVYSE04l(xsL-^l1^n>L%-;G6Ra)7o8ghdLDXwD6m?P4~ zMG9;Z@U?;;2Z-Vx`t5`Xio9p#Pd}*+Gp&`$Mzs5bQ98q!u?JkWDuUdwuQ4a1tE*r0 zJPR&3=?3HQ7te#NLW|BRXY#18pZ;Vq2qe-l#P$jHDs?Kra<45sBufQ2=$3Zduv0?-6qFPiqGD>jY_6`%1W=GwD-7rlgUiQW*y%In? zjWP`Y{&a`S;kROZ#yA5_b9_iL50^ki&hnl z)YAY{Nx#Ut4N3;z^wHR0uI#@&TlI8@vp!sbzYfoXb=q&ubL@$Z@>%C6o9)y9pr|-C zo+&^e)B4>~8irx+UwY81PLt`42(KXc`FhA7kAj4MpU(r_?EwFR^*yr@HO_l>GLi4# zntp-<)NiLXzUFz3mO=1nT4NV^{<8WMyzwNFq?7wiLY1JOU7mK4z!hQp+eP~rLRWtp=HnVc0zeXle;U%^v2f5BdI*L&PGB zMFxTa;){sAU!h8V1Vrk6k?t-M7={tpb(t4$6qdDmnjB`#1F zJ0wnK-@M->a$>{kiqGutSVv4mNWfi|iu~bj4!Wp=53wcjweOT)NlHVyFS-N{WtL6L z^~o$_Y$DCm3?+yxA;2fS_Pwi)6jQS=lg;vtea67cr zpn6PP!C)9~&U%CM!TkFlO=pqyER+V}1u?*Fh300Zq!#UW>C=eGBNM=YB8n9{}{aia1|-Fj7?;Gjr?84T;$EzbccrHV6~ypM1Gh%)sfvqiKUf(f;ES!qJb>9*har4sp)VPHCBC9D7lNKM#Te>|AHC zzs2oM3_9d~N#;aMx8}Le^_z{rd2Q~}PA6-(LY*%&eRj|EB1)PZU!f$+LE>Yf@yUMq zU@kH8R&1PHHsZNl{(01{aLI3CL}A&&(h&675wEJM_yF?|cYTF)J(}LYQMkaOZN4R- zeqPw$NEgRek7y1mML5Kx6Tgc*SHu!CFaSXAs(#oK78|*hBX)6xmJ@A`SuX~$>GjL^ z$7%7L+caqqBdjC^dH-W(*&CD{dIP!*r7B1rSSs}?w8^{aD6!p>V;?6_E9E$z>-y2z zNsta9-nnWsW?gZG0W1TkSKY=)xAZ;w#B0^mP!_1~@p;lBT)~z;Lu#kiqow!bfKYic zd6VKb2f@trg8=1x#)I{`T!o$xA&H<~9h@!p9c7^?3gm-^_i{Vc`7B^Zo%a7|#=!sh*KA01AITpTiMrBUAf3#u6Zp;_?MSn>mLh08j+lztu+?+|Fa< z61r?4EW}9<5yGwBFDfyN0q}#Che#!wk2IACDKeH}b5brSn3VDtR>8i6^dFnoEsdmCizYrKspbVq3q$WTw6{1tuV#|p!rDX|t1{dh(If*>r_qKZHo! z7??X8O7h1E5zZvkTVGiei!lL!nqMfRXTv72sycKLDqA>WWAQ+tuTALF25nC|^yO)jYip&aWqmvdhzXMNvkx(wc|wv6ek&uLtVw8~j*{ZW&H zBG~4PO)BDC^8fW!I{3C)ls~RRUH6vDo;UHw?<{`{UzUl&=wL`wTrYswP{n(!6h&oS zmk#5`FkS9PchZ>--e|}*M=qj_JyqtVdU->A+)!irJN{{7G3$33S0t&MmO4&|kG18k z@$|n_>DMdNO7l!Kf)5EcG#AT)Wzsxi?2fq3n_nVq3#o^@CpmgjL=#-s1YSv6C_H-I zn8l6bcoFzzoMtI|2(THksmS#hBAzxSdPz)`A(^*=tS&-yy8w46^cI2W9)>#PNs^j; zt|8#S+doaYC{6QoZZXHX%dH#kj>_-*W~AB2hEV$pUo$xzbR>Dj^`p2nha~WVYWUGQ z#mFx`2=`_gQlUVNz-TW5K0Ofp9F;K!)<)~^xn+uz;4Lz1PiuarZmTL<6%IeG?{e@R zo1INXlW`VemP=>jL6<=xz?z=BB-hNl8u!t-!)r7WulhDpg=6%fV|Z$?Jqo#Kc{SPO zD-P*fS*^^UYO~o*`Sh?RbAGUFK$Wd8%&wpSRMTq82FMy7{L6a3f+B3VX8%4FrOtI0 z$M`Uv;Vr!xO4Mbi&b1zO`r}a{-OO>5BsKh#mwHw+=Anclhcl!u|B;v!>7G zk$VAI&=+>d*4g!W`Xe@=p?zRK9;rxkJ-W*|RM{S9c+l#u5XfG5yN^ zOeV_b#n&UTAyL28d}}of+n^j7HaFAiQ-&RZvJWj(y3TM5p6WNkRKB%q_Ku_hxJK3 z%+Oq4M$zdw*UNQh36aeN??uIQa%jut^2)=6ohB3x`w-np&H^1k2t*@18{Hz&sH%v_ z!I^QHUK}s3c8^FRswL?M^M_2#^0OJOR5ht)=5VGd3PRdeCgskBiqjaUxR*ZX2vt=! zrawYml>KxH+6=b^(Nd7C_|Ct+{+$Z>E3=~LekTrhR>v5Q#xvmblb$4m$(F@K5JaOv zY8%`(?J-wcf zNikLH$2B!$wuhAH3e23ga$YP7qAq9lX78pC{GzRv!SFnE0 z_Jn^CL^4eUh$@Zg>SRRAQy(Usr3d(UpUiOm9ttu~#4#-PQz}^v#c{%4Fq$@{1P&G` z8U@jpv+ehayXug_DSVGGc)kxF?=9Mjr9j9lMK6UH(YMU_f$!Zdw$zPfsoJ4@E`rjH zO&h)k?hky;z38x($Fc9&*90jDMQKmA&kskekD_pl!U_gc;Dnc8*H*6duqbM=R$sFj zR&DjKl&ggh?$eL7N45X;TA!C9g};Gp3dlKQiC@mVeOdHRpO%G|4>Q>n=z^QlHxtm+kG5bXj?3my9R%J z3LDgT6l}q^g}P!Cfzz8^bZwZ6UEY>lz2t%o_k#_h+Xg|0ji7|g|2Es$_>m!M>1TdI zQcc0Ydp3<8NWy|J2Q%H{-u7Fbz{Ott_X)H-rG9^)dm3>_LYsDqM;GsL+o$UC-Ap0( zPrk9cy%s8A7$nwI-Mf!_i_v_BQ?Rl+_Z_bIrbb`b;jjtyT-Wv^SEN3VFL5=;)l!#i zqgE(3FSOANUmq&|V>GYcJ7OVyZk6hIvGMf-+;z>7#Ns%M)X-pSDE(ShRnfruq*~Pj z{ilwca2ox7Rrw^7J`+iO_E5Wkyb#$NWteOl&+4l~H{N?coj=bSp>vy<+Q}U?Wm^MZ zSU2ur-0Xd33g(9o_yEz* zdEvDl?YhF)yKf%7n46c#xM`Hm*JeJrKt_amuoKz@&F_!H1IDSh^}x@_FT-JBPC*V( zBXz6rrYTGHq$vU@;e7j*AtUq+8-~xt8IvSMv2>#aGAZaU7wH1;cKPw@TpNe@A+zw| zl;SE!4U*p;kNG)?5{u=lJX=K7iY)jLQ11KTn-R*rkt%=Z79%th$75*q=02EP*&GDuksaw(!nq3K0 zT9)N^rdsP|H7Hkq*^@bQj4C>4H+!(6yN9V6sX;s91un zaA$%Qe829BoF5WhOHTJ0V_|)`ugIqM{>DcZA8ycV@ziUgOhF3{55U-D@DKRvZ$~)_Z&ScK_+Cw+*^2Tx7=7TWNuv+o`!`qQ?xO9&p6n!Uf5{=pMknu2YES&<3)M5Vt`@j$yamXVc%B)a0}I9TIbEjatcI`odPS8H!DeBg)S{|R zIkFYMa>Az=FO5m>vIU=pdqZa$y6CkTEsuzKU4h-}V-x9N$38W@AmopRM1wPTEMm{P zD|R>jHcd={JA;&9x`#&_Ii9G)B8DMj&WnLTH4ss#yhyEp-PZvOTC%Kx?U=3WvV2uW zcuzG%hEQWttr%)kVC*l)h?=_3hhAmfJJ{QYY~mJWWn^vR<^}Hrmi9dK!eb0Ia{YH| ze~GQPZa+It5C|IlmplEI!f55r@m@~&V;TWhS4-FW0^nJKFSat5bqeGDHVedZxUe@0y#BY6?rth(HKP-W}5N8?b!?P()CfIFVb9K)U9Lu?}2iBX^ zI*Ay5uKAb;OyRc6IHQVSB2~uoOWv*P@a?9jO&OtSj<1p zR1sVYGJuXC2bJu&fL4I6yIJh*Q z5H$RG>6{_emQTwSEa9EsuV(r03xbi%V*_)vm3S;we~ISvskk2iQY7Aq0YFvmw5^`u zsV-e5e1=YjTSc=Z>J`U<*(ci0eRt3FFRwnh(Cz5#pPz8&n0e36P~r`|q5imkQAARC zUInnN7!`bHQ_lh?&-2h3TChyHbplsx#UXnMrGd3;O-+}RL-AorsRcQIbwIzfPuw~X zccbzy4u)yGcuyo)?aPAV%QEMU86zzLWXM}+b1u?ibN0?TFi`=EK;gqiB3hiMJ#4OX z`ST{@;jpgj_uJk~m>O1-E^jZ`>}TxN`;#0LLXKP_y?IZN)wQ+g1>>&>~!iXVKW({JPqb97^`-23s)djaj>b6U$r1 zG>kYO3YG%IXR$(h7wF6FvP=`YY1O}>OA$gQt|)T-w8u%Ctpj3oGjNQm#smV2U;yHh zK=mw?eQ25P@Wu~&RsJqq<(fG0>%bsjC#N1P2c?%&sEWPZl0_X zZ%=iYpAWw3Nl57NSXCAn1LP1I>^Lb=R26u*HlGURrRI>!7u*oxzkSWU5!oj^!hQZa zS5FUZKRdcQV)j*UVj~EwB5U@@8zV2`lavX-t`DYXgUf>aoKkCU9YEzW_vP-R#Z1csjPG z7OCfaNBGggtRp3_$i)7-W^Q@J2@C+on6}S%mr*vya28=1k-gZB)rGyEmRVLn5vaaU zqe`^6c;HPA6PA%Yb}$iiAtCn5PNEnTq@fFSZ`wC=*LNIwUNMZOhi-3XT2okLkg3RQ ziq-gnib&J486t(jEoA4UNS5?5m^ zmO;>;Uj$BJfFugt3+=|Kl$Byw8+>36H-E{Hr|%2K+RSi4W2)i zy$?!oB5bWUMUviW!!HW=E>vqna|lJ>%TfW2{CRgtzuP4`7CI(E(Ws~vJ$0>haAqjM zF|s{6USsolugrnzwl zEo=r}m8K+yCGe#M$`%->btJw#eP0w!)p-+*=FcnY54$=+PiR!7cokVGwD|SY z1gkV6N(X{w#Tjl82YJXzZ7%k~7k9*@l(9-qr^Nb&7HUV3PK3rq&tL^Z4oJ_7$S1cmc#;)YuMQ)D|0J9AXgL2Y@|A**Mm_QhFn&GeB$7Slx>1gjudNgn!XWAw8C z#VN~0hEZ@7#IU$h(9}d$80{qE42?X`1#&157Q9$N8hM8<;W>(};8?b^#2rAjHw$iU zrDkv2+pMlb-AcoLJtW8{33Pk}%H0;!9IB2z!a_Em2jx~-p87r=9haSv+h8Ek5qH&|+2dLD)XHAX%-7SbZfJZ*ei9NhTyM$1!E&<&yzZ~8Dod{t8N3H>u zJf{q}64qR?rt7*n!9S0qZk>cZwK&3rCR6zaA_hx)@)l-omRC$hnFB7V<@Stzc~M{c zOdK>g?{3(l;akuwDgY6BU3Tf{&?oWsI_VURhnfn;qYftaP~)ZV6OaAs!VSUL3EXA9 z#k0xyps@3tD;sS+xpegAdaU|=G+D$l^M#^2e^j@rs52t*{C*^x&EHH7!RSNN)P}Cp z6y>f{T49KQK?dP07i=Dx*pU94GcE&*X|CsOO9GMnCNO0#COw`b@ds(*Z&Wk~k+Jmc z2S%vij;3))JAA#WB=aL(7Kli`_YI>k2jX$HhtK)B>}+?iyUE>ciX140r*?R=EZ?2Q zdA>X|v;(z}fbtw{GG?Z}1A^S}b8MUQL>ywBJp~rHFqNRJ=Q_SntG25kkJ7wZbQfN;0#y7>#=R0(Vj)H(I7 zEb-CXfmRY(F?BHMjC16~VBcIn)@4hQBu4tfF<9#K^&xV2&d2J{s4M{>SolMbP1gPF z1%e>DP%|7EaSn3ZRH^6;7FUSo?GSeKs#k{CIUFHG<+8;XD5 z>k?h1%Rh*`lt2Jqm44E)j6zWMG1<5MWC(q~Sv^-1B}%@Hsm7TxFUY#Madb5RL2f6>2L2}dm5F}(S?5=?k`#=_2c#C` zhnFPZ8nyMJ*7lBfxb^DUAsRfYiR3`itz?GVrMGxQp)I>1vglk{UDLvfc0?XVQ*{p72B0(*?f(i6k5UvqxKs4dW>4xr z{7V@T>1%8J?at%ijPp_{k1}FK~_YKG`p;qkB6(*J_7n<+)!U!*x>+4y9mjjb#2xU3(UT|?SC{iXf zrB5)%g#0WJ=(;d^=Z3 z>aGea)HxUrYb<-eJMokx+)jKZ@{jYLYi(GMZfh#CVW9+F7^pHF&eO+CdxOE}#z~Tw z3WPBl1Ei~b>xaREFDZd)h3SN@=1NvqGth3SG`s6;C2{=t5(GiMIkeXC)7;5Y&Go=w z8Z`$yp9u`0m8wam-JBcNhx5ISwUbXV?u)+<^6Z0})8FwNq=&=8|7!uF`v~2CWLaTu#cDc$r@vQ&uYZ}g7RiKS>h41RO1OB^n zHA4~jg&T#&zA~0EJ%!?P;_3-@H)C+RLcnLfHy<**C(do$CeV0WxiSGtLzywo&PGWLYvFZlru=!9&5$YLokpDboivoe{5b4Ak0t-`n}T zU2nyj!Z4Az3hJNtHziR{LYUC}85EN0@7^+c=aLXrbmI-Q>;714(sfDdm+ue*JqSy- zt)+$`SPh6_5PI+GF$nQ2W7#UWencQG&duM|&-6|AnlABSjbt^3o}#@CTN}1i>{rYjuaNPEc{`5qZXsA!aD!=Uh@PL1x`O!Cz zD883nwA!%uQ=KMqcM}eB#)M?!iV0_4^f7U@z^_MTnrMUl+sp?ayo_*j>PhA~&Yn%x zT(c?4($ro#HxYXwVoBynBvwu^W4BEcxUMK%thkfB$u5@2VeB8@!xj||ciyf){}}RN zOCf(+7}2r)zH>dez<=YdPp|M!BWn?g{?>Xw5%*Q3(tgeF9OxYbVA%Bv$7KEZe)Hs; z_!|}=@$qkJ`iw?X$72iO%C{ms>u~z_L6GO|qL_{0cxVEkrc?uqjL^~KFJ z%B7)Yo@)8wMMQ>K!HvG#XB!1% zltFCiG0Az@M`?Mbo5;-Iy1{YzCydY_u+OQRx;sTm0FEbd;A4HKDQV)Lw}C(Mxd^sN zlwaFaRntTIaxfIj0$*F^vP@|8>&FuR{_@?&76tz@1(0{cCWrh0Uf*@dV)+;Rep5+@EHu$5bj=fm7x3!{cU+w2p((i_37VLr<@b8?h ziL9(4Vi@cauIVu~%T2ikFeCU$vy<*3L1)(?Qx{X6)Wcj?l5{r*7*&P}uMdo(Fe*=e z-?oCZ?BY2#4B!2Buc`i@rp{wGRy2sh`+1DnvLM4n8jVEGIrom#8SX@kWZAM? z4L0!CsZ;06ek{Y#SK^re)L{CSl;O;KHT|`X>G_&=(*>*8CY=<%S$*#!pT1(8WPjK; zk#Cla=4NF(?o;`GmQSB}3xNdf@fK+2DG#mBipSeB(+BGClN2&QphokKq#+>e{o)o7+fI1l5w4?&do{%=3~gRpw`8-E6O6 zH@BMJOTD~(21LZERNlMGjXB|7HO2gNsPd3;m530`6rmv%~`K|M7V88F{6f_ zQ}&)C+13jnX=Uh#=!75c&yvrVXcl`Rl;adHtH%2CS0caJ+n*fUh7~!Xu4HvJu=)aA-BTppu=%z%aj0f1z=OIcIPKW26X{q#Cp zU9urJ3pyjiLQIi?B>9Y+%j$_+D;0?2?uPY+Xs2-)dQZj}SE({LCh2Y1P7BS{6_-@#J0Ok1t8ADg#cm5vVYriv-E|pbk}7(=(F-?vW>QSyOtQ(GRY}W=%k^ z&Gv(DNEf*}n4?FzeprV2X2m>B&n-^W1F)(bt`~oVPtjT_QrNGbOdGoOJ$VUj@C9`d4=?j#auTg~!ptO}g znW2H59M@FzafM}}l(QhZ#Wg@pzaQ#W$E;@1zTjsL{-aPRn-VN>q4Nw{Znt1dma)^a zE*FOXO1yId-lXlAzuivS?gO8@pqyr5=QBy$#@^XOF@P21b!OQo=9eGVjumO!=it@o zqB~_+64P_?A@z`*%pac4#pf2#+>g8eA*RU6V$5G$M$$Jri>LW8|6wIh`NNxnb6x3{ z)mliS`;b1>>$6fW48vHut67`&^ro@-=N;?ZMp_6WPmAMw2?#3Gf*FDgEXVe9_-S|} ziwQWS=l}_LHdLttz%2U#7*sw7NLL9eiuX`^W|)qVBz`XNcm^$h`L!xn%Jor%Qe0PM z+qQ1luX}s7s#;4RjqWQi%ZASu_4%!< zdnGCS?b6+1kL)`LUWeQ;pcF96g3F8-fmNLPfd{c+`bJxx(_Vrb&&D->3?IegBO-`* zMqx)h*TwXlYYPu2)pSHY6jOBQzQq^k`7GZOllsHcu{NI#^D{!lrkQ&>VEXxNBa|3( zCD5r(1gU59A=~K9l|ElrRI9#<+C>*=pD&5Cf{4vg_{Wt9_p1t~r-qJ)d3HOP<_JWn%lsL~HpvC@3 zdz$f}Ej*56nuAMmIwYBY)K-kd>$M5y0%gt~3y87qRitF)o$z8=R&)vPplzR2;NscN zdHy_?pUV6`Z3|KC;DD&>fgmVZnHMIt^^u3Z`E2vSx|a+4RKr;emv_w%s;o?o*bPA# z>ov|Y_M`*HHTy{IXnMoD#GvU9ofT5bQ819dMePB5**C?4 zf#%^{Uk^nfTU=e=KW6MeGD(7g3L+I9SpNK`%h5)Hp$kl2KM3nW&Du{4(X;`(qvRoA z(d(Jl@!OE+#6R{a^IRUB9FnoNedxpOas?)$@yZL#zIQ!Xmb?Kc8b5)Z>?0jWO!t! z^jXWf)$Qs|YeNo?8vsE;-6HY_z?_AqJ~n}muqkLiGDDM_S8s8D=9lF&h0x4^H;$^N+?-7MNRVi1u2SDDu~?f zw|6O#D2bX>xC8_kFE?a><4mj4pI=l0PEvv-QGp_n<<&T$9r7Gt0V2;M^01FjhB-1) zT8iYC`O#`sbILwyNv!KPYd6p}-m#4RDJyy#KnU_PY24gI4^45aN>gkcIZcmk+vhI` zUPB)v1ZBX&o_u~Jf!YEyoNiR|+0#$=kgatAD@9S42dqMbIDzoP-^#P@63s<|c&-C9md@Y{_v5 zNIf%(z;C^$@W+p6-sPrFI;j3pm~1&L-%0PiNLh|!aT!DRNloh9L+q(!`5iL$9ma@KEP8g_YlHgDsgKyiecz zZpvz&3xYuOA05ew;m~*#lA@6s0M*7JCYhQeg8FcvaRNigzXwXRD~jPR<8zG;0u+tQRWp6|<;gmXhQp`PtM`b66^ zt*CYb{zW|KXWSx!a6NCH)Krs^M38>0P27M0WIdMgbGA5|9UIhdt9oSg_2jM0h@?tg zE5Z_1$-TdGuJ|!qZ~@FSL8`@4bYD!RWr40(<045Co?mw30~q0DM>LZ(XA^0NO@*oSaos=EsO4Os|GrFG0eV_lbf&krpnd~W+jrs3 zACA_l1uPv-sLz;;vdB5p=vGY;zMynSDt&(92;=a)2iT~s8;0kJ*wW3{sqS^xxIJH> zd5NxV13vkdE`=xUj2L2f14fX0P-_Z)*RU!edTP&0qK2#1DILd=6bOpqqzA3v$zQ7Q z@)YSWzV6|b8cdj?BvGF%_%uml?_5F8YuT03=m~N-RNUKV-l`G&F86*?`{*ZD7Pr&) zJ-!yTqe*&w4fLP8+?@I`{?v?{&VRnsB=D@?SB7N?B3UN6H4tP3mA)qIb<4B21ShAy zbUW(p$bH{L;a1>x^jPh~=#2lpZ_@>s0`e#Msb^MHM8s1rp?0}emqe^hjZ3SAe$~hC zhkhP>gw-2xN^0THbu0`(bB8xrl64uH?w(4AFd_RZdvhL8l4|A8?-SM^!H-=YADLN7j_m`q_}3%u78l{$*2h^Sco%yj0N{uA`RiHpre zZ1)e2X+#`o*qUQFv5_MD*3h>MjLlmD-2;Fg2G4_)Tfh3;m$XSJ3d|;oJRK zb;l9$oc?U9S_^yZx1Tp!)%YrqWgQir7maOy(W^m0zdi*>bK!LB9IdNw1=V8cr=Bt@ zv{;ruz@usEs+t!GK$x5!OO5spYnf-HgS0$Y^d1|eHpR<7KiGtF=hECEdDpP6sCZh0;}&4Xkt7j;IVBuu;<^Q>tHaMz$TF%qi>9qYPDjtzF9vRYda<>alQ7JW(@bV=(VjwD$F7EC$}|yZ$O-h=*Eu_C<*S>|CGplhnT6E6#v}I8xvH;Gh5ngUbnB!0 zqHyof#-k2M>JiYvP{|+6>=7eSS3kha!1vnr+r&0@WqJK(Q52H^VzA}UwVAE8B~9~? zk!4lM#gz`l)&4WfZ|g)pBHgdw={HUygrl^CHr%E3aeUf8fXDR0k-~2DXxnx7J@&wU zC}r&H%tgaG6JrX0CnHIMptVH69s2_P-dpvOr6(G*;Z4A{D-02&Yk{bLl-{cnTp&wR z(R`v4_Ry+$*7?!CJb&;W7BDVG;C6@}29FneQc}>7NN-~SUx|E1fAYn*QupBZdS+L| z0x3n)AcW^17P0;AXWvn#YoDd15VE2L#=m2-b_G5OlGF(xpzGhHYsk>b&~&?FQV%;S zvz^yZnZ@-}oWjV;jaTAH_pZX zra43PHTJYZ+rUINy8Flx{(d&N%#YTj`H2z{&q(>^27rBDepI_o8D;RUStC(&I1s97 zmMXg&&kYvRU6(oORaq)0w2=j>f1amz-$RCGobR)gfIC2{gKYStfZu3bYW&J3Gr>x_ zvIpr2=8jvgi!orYpto(SSOv4_)C(X&;NZ6hBzV{NsO-P{X^hNa{2S25{>(=khR~Yl z@UTz>0Xo>7iHxPy8en}kL49=Zmq6ViHQk6Gd!p(g@iQ?hze&q9+r#KNvDsJAf$Ww2 z*<0p#J{J4)M!*^yBLPc?VOY1=BYZM*=~pAkRDMi{va)aMQB{KSb?x$y9(gm}Jm;dQ zP1csWJ~7_^t7c$i0ph);>jdj&)viiw_Tv%u{bu|xk2V+|vne;Rus6UEpKsW4oX`A- z)sXLW3UB$S8M~jphmn@(r@{(fI-l`)AntpY&(%>Acg3ItW-X700r&RWLm47K-B)&ztI zUc(WbIXu)**NFgxKzqOC=G;sWku5^)|LrHT`7*R^(=4(KmG@{-@R#w?|G0(82z1$H z)rd%X`x!ZUx5OsUa})jemjc^nPyX}}qb>j6Yel8qbDu5juuubh%t=P>{U4lrv$#>! z53Q?zaAJG=0SlDqqAK*ybWVz@bmqr$llK^ZGO_QCb5`ULL=;x3Z}dZ1*T!MkZ!QQL zz|)_!#~_`?hw1`M9G0>FmK^UD6|ACFw=ik!3e=65e4UCUKi&3|%AarDvV|Gh3N^VTu6JQ$(}2pbpp zfnRN-ZsXlX{rb(yd2 z7CC*Tcr(<#oUEDfKApzP^uPB^Ii!0_YL*CSVVJSi0i=I?5hpRmEY(-~-S|%MT6ed5 zmi-m{{g>asy!fu~=k+Lm|K$%*O9KQH000080BV1!R&qSW^=^&;0DzeR03`qb0AX`; zWpr~db9QGhV{d70Uuk1+ZgVeUX=g8DX>?<6X>Klac4w5GNsr_}5ryykiWXepz+mU% zOd~*o0>q)_%Aqfa9mFbj{ypz|5iVD`S;UOg<>!pZeTj^W41eR#fBWUz-+%qHzx?W( zUo6YAeDUp9KmYYFfAyCG{q5I3|ND3T@Q-hPad}(bc=Z92qK?U%mMvRO#te|J1+u_S1jrd7UfIfBNPZ zXVXKb{-y7K|F(|)#jjmBm%ThV+mei<{!hle&yRd<{hxg6n9GB)mU?jZf6qx3y#4H( zU;Mn*{R(M#pp%=?- z-|AcG+gleN`=?$1-m2c!stEi3)_29X_qR#+Sl73GYqwH{Vk+~^gxiYoGmX^!ll8UHRJ-g|ITd7V5e8 zPpv7h`=_>6VZ}GMx7ijItlfl{Ps;WjN@kdT`&7%@zO+w;QuLt~YHxcjpSCIT*_4io zynb4C8fWRBrh;exv<^X$HT^D2QFE$^y0SrAtotXZr>aw^#M@ES+n}z?r&W2O5N?RN zI<}$2HbMH>R1>b{Q-OV%pH}5%R>d~ocJ==;hQhbb&g)c?)yQ1rF z``SOzyz9OwpuSC|vXsPSeVe_g#O)@$s?2Y*ET6WGE~JFSH&lqRI)0VCyp63WnR;KT z(>CA8_1Jf%7sZ*XqPjHlr;P22PuZG#V09Rfo6pIYzWMz5PqKeGpYr6rUL_c|rV;2fVyEl!TgQZG=2&inI-cp83V zuj{v8$Br_t3R1z{1C`L$s_Ti_OewhoZ%qYLMR;x^3DIv|cv4XsUaID*ofO{7n zYI1tG>IJwl80p|GT18ZCSFrdNv2VLxZ*=&baxgQCM~%E}pEjk|R6IHX6)?zc6CQ8w z1iScEd^Mryn+A^JSI2E0F^%4&9$u8`0-nr|F;E8dPH(EvtvY=B)D*4(H@o8(ee~dc z-LuoF-qkI34@d=1RlCN`LWf>d<*N9d(%n>=se$!IU)!e0)d$~3Rgcq4RfUSO3#+1+ za#xRB)zuWWO0cgn7ic^TI&7tfZjGW7=OC@2I$TAsj!}kY8WRp>Ray6vuxo}=(N?|Q zj5SypeC?AaDXMlMy{YtBQG_*+gq7K$_r{Bg-l?Gq{rX8&I2lko(GAz6Q!SC4LU*M; z8@W*ndlJ<`L1vXpHB(VsD`kmEb5*nVP1MZMQ)9bpDki*DWkPtW+TDv*kFK&S@6fM$ z=Fw+oEudlcuTH;e!sVn%M{R z#q&Z8D8e_VHn&eK?oNH()DB%gjoj?6xuvR057M?74DW-`L>vbm7FR|Q-S3c7k{6M z&f~wjQ_fwLCTgbVO^`_)@>qc8reOCu)#6ZPP4%AjuEa*HCqtRP85ZW$rh(wRbmmay zK+`8sWpGt0Yb2&m7xxBbTi~L_wZdak)Wnq zje6lt4es@1HM{usDy)fdZ_qce7uhw!&972w4FnHYj!LpP;0HS#Yajugga0kztuo!9@0lOmSU_M-tT0dD{V5?9JM`a*P z)yHnEHR?Vm)k^GC=eX_5WV#eqG@eqJF2P8RQ)7M$Sx3!P_U*n`*OSJY>P75b^~W%- znjBepG@31#iyG;Jg@9#HWEui@*1d%aYU&KL-1e!~U#VWvcTGT4WA(66VG5ERivp4u zV#$5?I(B=yzoo@>Vn-2rIfyBO^dgVP1E!iw`)| z8dcovsRX+!6K;!^&b%6o9;LBIY|AG$4pgd=R#R1`rn2x_c%x|G>8fiCfq54u6=61T zN{l+~Lsh5w-u!jfgYc%cWYB}uNu_w8<6*nlZjHLXg@%<8J{tYJmDTdMQ3uHb$D zR3i6%mAoMFN>i-EXVnBFxsVB_c;#S+$V^RB6p=M{VxCZn)^9bB_?7WR`9-j88++2I zdQA)}s_3`o^3k=tt<%(^nWSn=*QMWu5mkj1ZHIqO@?TfzNq<+k_KZbyGWpl^&xBYt zR20Wu*b;A5`8BZAAPdz|)pqP6g+1@q5hFz{uP&+Rna2j~#gls_yG7M6@r}JsRV^(A z`Z{Q?rtGv8xYLmvOZs{jRON1hs>8M4Og$CcHZm9F8pnt=CrQSrKOJKo7zg4RhiURnnoj9MRr-$hqTQ`SYB4JW}Uar-eBw$ zU9?)o8Y$}!0(bYGi=3~jRz=PJrA?~cBW}}cx0>GXg38${IZfER-;Ir^*wl&(^21hD zkd=9kM1@`6A^s5mHm?)3`nDjcZJo|QFHv_a!eY}f6jn(UFS~|P;8#(%RhV3@^jgaN z#)7dR`KfCuVPVSZUcWfLy^CzU3m4~i-#umvov^(PaUq1NV|#!U?t92 zUV&@{Rd*VT7P;9vDwD$G0&-yzFA5-ha~Bs@=E2(B5UK&R8%bv%%!*~Kyfmdo(bhM1 zmfH@uqV0m!vWy@#8Muv@U+M_*>G_2{Pedo(K+HEil2bCmT`N^&W+6Ms+G}K%mh~D? zT$oZl+ljCWv#s!gN#_(UpH%R>Fp{C;Ti5}6jas3n&ocL_&$@0=4hXaOi+*8bh@Fu& z1X(G>u5j1JQeypG*nZGbnz0u!9j&<`JH=g;o!Q|RzG)#*wx%FL801Y&2s;C84~e~E5THwqVhV@{8{ zt(A>Iq4%q;(2t0}s;aV|?DMuW=agvLg8qXt(i7_9?az!k%v-@GaY-_ZWjybC7DSxJ z7|_my-H&B9YvRb2W*6^S>6XZP5_>0;mUp4it!Gt7@J>-Z37r8#vKpQ(fo6_rQC#mA z4Pi|uQ@JjRl`*4z-Qq_EqjY)v{8vw71r z$IP=#;p*v7sv*Twh24Q~%<9|Lgd=->Uz8of)i{$?psFWL<01JIyc3^lPo4SJ(b{aH zN80xaqjVk4;@h+Wp{YQ-iR>W$ruf?$|ZAZ#y8$;(Zxq@Ou zOxRgpMP3WdaBp*G?*K-paT9j-=Nj^3n=~6kVR1GIugrN9RmgTHJ}ppSn(-!Vu~!>Q zB_HVzNflP*XcZ%Sm62BwuUGM_+4p8FIY|7f92;NDaNi|12yO)HG4ztY9s;Z}VQWN~G3TR1pDg{Nm#BBB@yOZ8ZG z4qcUrSh-B~c=Wsq)&O_*sZ&+`iq=@gW7R=QrDI7xLX2uP#K=t>AZ>!Yov*xKM86~V zNbE!df!v}tDPmU!HI;6(B-CmY)ww1N7A0-hk=Q-BcQsXI(2Hs-YG<{771^eFd@CU^ zGZCw=Z&fX*J)U-3Aa0%3G6_2w-;{3~NE7E4Vv1^uGBJa4Brrjq?Muky%JlUy} zGtO&NKurV8xaQwf!i%;-s*OMYw!gxx}VDf`^B;V%~0QjCW1DL2f!J@o-F>rEryjki+5XSCDhiyXX$V;mW|CIU7#0Xu>;D^DLHuRs#1$)&(dBCCiEZEd|CY2M zziVUfHF#EycV>F6p{%*<|D88PSq*2-l_d1sLm#MmVGq&C53oEdF*qTtDWyh*-Ja`vr?g5R4uDnWi%o=D3PK{;bh z+DI<*aOf@{!~1&jEcr0BhbR*6!W^;)dqMbtvDN(Om{LeyNKu2G<&lkk?XkHk)E9cX za+@WWnSoHwLOFa0q%i$@HDjUVu$0k!tKyST!mOp`S*=Pst)hoq;t)slq}$n7qZu1{ zb}*S$(Ls0p4*iPgwNM|9Kh7EN```c0x3}@Xnsb$CX#aL1q zTSL<2kj+BZidJ9wu?k>#BXP&vgXlC%Tf?iZB1;k5qd0(BR2hr-6)rh34%4+3arCJA zr`ekqpxKE`^FLxx^V%$hEqWoQO;_lBM;pjKg2h<++sfu=w?NnSKmczpXhq^!wD>}OQi(t5?RhU*kxnILdT)K@jwRdY9ybhGcgD%3)>WQ54{oG_wL}i zdlSl08rUUQ^oZa@=M{ZoK7oc=y@;b6wvmf1R7z9TIoGmCvH6M?S{0d@){VcaS7=+v zPN;)Rs7VH^ApDD(`HJrwqPdR^^sq@J7`sP|wJy>}X!pypD|q)gj*tGV#fg&)wf{DO zLoMi*S&(mJ@}dWyLTHt-l2po)xx)>4Q#RvN!I81aW&4A^X$zfiqf#`#02zkuzOx=| z%vYT1-FKh(3hB4eC4B@ZY8u#@l-=QlMTkVO+6evdPNb+VsVI7d$dUhCF=_$pnN$L+ z-uobL*7GpSE#9Nutj6jL6BJEU7<%Bs1ZasqM(>uRcfY@k=GyO<(f$6}njg+Uu&H7= zBE(yn=3%&ZjzlK;AU*HYck-j@h?-Z2L*NRdm!=`NuL$zOY$1r2%@nv>Z}FPk4-%3M zHi7Kq)l?|^M1Z0pjzsEl)Z(qJw(t6FD2~I>VQ)TqY3k?nhY<%M1@TeTPOV#yIeVNf zMr!+!+7B}IoI7*f^R)O&&6fZCt!B^P{rVqY{mE~C{`;SO^>=^x+0VcJyTAVSFTeid zZ~ytlw?F*x$3Ok`UnC@AWcF%5MxW}eC+t@yVB6g|A-!_0RM}6`dD!!*SfLfL7D9WY zheo2Q*BIaz5S7$f4fG0?UyfEUtMWKS-0d&cTl%@ z^AU|Zofj|t;b;gdrNnrNuFRP^VbtyfhyK%q>?g4!*xYQBs-V}zt!FtS7(reK|d zHKP`&>&NF|rc~bzDZoFy`bW_|>h1Xq^?S>AJ{Tb|0nz+Q_=j51mDe9&$^+Wa7;`x8 z6eTwLCA-KUa9pqFz3GYLt9y!CqhbWH>xmJ+g|INpry2I#0m)G*j@$D@EQ@eU3OIH}lF)}++_!?NE zsk%l9j4BX28&)tw?_h`R@tDBZ15_<_KcppYya*%9uu|#%Ma@aHe)<6k-kgbbk1%p~ za0MW;A7U0Sg@H$qn6{jdN-s8Y%M6=|EtO zdUXmE=8nzp(QNtHWkppDzb08ul^9p>`}9+osUwUY=q6HZc}NZGn!zY+-2PIdSPVr7 zP&Aq@jrCs1p~TTo=+%ImS3Zu_B#d3k{y!?JxD_USjbgZ8F-1@)UeW1JnlrL(@c%<( zqDdQ&Tg)nyHfEJN!!D+J4jc}myT-AijcR%%zdOw5R=vbCD{ikmVaSn3RJKO35dNI< z|FS%)HuGZnzCE7*zYMOCR@*^m6#r|}qvoRfqe@U8u?}sJWkqYqhWkF>wIxoal7FEH{WqWY75h*z}LwBS5tM{_RzW% zPUqVi(;CnS5PBjrZ79^Dvb60^P8^bPAH4r#+=cn?+Pjz<*s7D%C0RQQUR@KnuUPSymna|BahL;)&d8+ai;Ssy|df zxj#bx`>KQ%b1p2x+xP*?fc^}kkdg(cP#GXR=>B_YkbPO2*ky)=g(MCBPB&p!=&t^% zHUsWJHYgm-H_iv*WJd489)b<)PH;@%Hn+=QI2$hoEQ7^z43qB-DVod9+f@ehC zZPdP_!!#rC6sId&HGkqL3H5!^#smo1#R*^fbubZ^m!8u5Z* z;TxG9_3&;;)P_A^58|>0tb$p6By8f>x<32px4*~#OS?4hm&SV2)5;T*sxm`4oDb#{ zKQlEqT8J`C6uSqV^-dzzQ#TdIv!K;OpTnMc7+3+J?55)_x(!FQKtjttGWELWxaOR! z`t;msV#A0?y6~gppvY(DSLYj!(3G5~y9_hRfH^C5S)!Ud&uVNGQ=!3Ove6leiER85 zQl6n>?89%v*oTEanr4O3(r;8tjmX0&N6S@ISlHN*y<#fNww-hH&l#ERi)${#ZaVI| z#a@}|>&kCO16KWl57|9#kL*z|p2*!eYJGR?sA?hT0u{0r zx$+)-(a&?M{Eyj|Zob z5yYIoS{&hEGroasqz~clfJmStGz(yhab)ek_dgCbER3VBXO>baj@e8DH!+I%5KC}p6frl9CBjhv}}gwbJKpi=2$`QTAxww1}(OAD6%Ndq5@+FE#LS-ugj01E4qrN_FA zX@QS4S569^vVaAywQoK8;HWN1)9-6`|JO{hwWuWy@@W;Hsd`AyEhinDs<7AcmQD|$ zyYN6);}!1xz|OYS7Z`-QE%%uSLY=4iphM3p5V(1pyGB(q@6q>c`msCuePJjge}^T^ z;-YbFLg5^k2w$@Qzsfq9o|tH(vml%>>($trk}TH_VgYa&Iytt?!$w_`hTw39SPaO2 z&3jOmggqeHytv=fL_Bk`iG`Hc#A_A0H4vLGIj9R9Y0jNFn}p-aOvq~(9`QK0hh}MX zGNq-{$J=qIEetEgMfKhEIQ^Q7j$xrW-K?v7lOAK`Bx?deJ(A_e`QM5fy2L{F8LfBYCnku0s%ssJ}2pZ-7Nb`S|TCzh# zvAZk8HQM3leOO8D=cxT9C0mkVT}=U7P<0+xRC$gzLE~b9$005%>9|+FB>O*v)Q)1o z3Mg;of-O4k)X$^H+YV=hjKs#)I=X6Ab= zh~B+zG1gS#Fm@iiW#2vc^(9XYy25X4u$&?-sUNyY{Dh_R>LZ}&OIWJIqYakP9;%n5 zU7h->_+x~25JHPnGe8F#31BVk+g|DybS8Idw$aupGVh#?`M++X(TrK8Z01X#sb^P( z;*GkWM~iF`b)lb}+%Mfr#aY*D_u^uw8=ZVQ$5h&-+x6^roZ3C$(g^_z}ttT}jj|3FLDKb%%0o^CBHVyQk4q63&v_ zmq6W9lso@!9{Q*xZ{Fo@%LF0LFVjDTKfa!TIGpzYh`|ynZ(*fd$8e}F!_3*y7osCy z(~xJc5$>TrereI8_vC1w5=VR#f&PBPN08Rhh#SH-PC}0a(`j%Kc9bhK*;jz8?+oiP zBG`vUv3=xPBi4oU7zz9lXQ7Q*o1XaCO1kQx6tly;%Qkl1?2kA>R+X|xjhhcqhBfAb z$RrgQ<<5p|krtbrs7=uvo#ube!l^ngI%)9p&a)FPhXUB!ZZLmn!+R|DJ`gk7r_0XM z>T|0*&@<)zDTSvcYvuoIRy@nOe7@dK0cYY}IOeA%X00m@`o&iQ^;`T~_L%nzm$&_1 ztpV=P(IRW$R)ep!#F<{{N#Bxw3%o5EUJ{SwCqF(HPkOBn#_CNGf8+~`^Z6A2bbikC z#}Qu({+^gSeb4!?=*phMqO~TnEq(p8NY1G__gE# z&fZdL#6Oe2W@}Aa&*cPPdfWdPCDl3iG41h;zK`6__-%|BR&hVy^vu2EBVf*h#o&nR zcwQkrS<0Sq`T3TKL;%S@SRVQM9~a|ZLABUanGPNEIG5e`fS)`8>` zxOvq|b_|&k6C7Q~cZ|1$m9ukRf3fjuv_!eoq9ei_vydBI~E?@HgEM0u3^lLk9 z$f&*=X`!6GkxYGaUH@Uc{{dA0Q+}3k7_t>Nk8Ebb)GSt>)-XRqgB%^$brzjDZedNH zi-RlE=h5tKG5?*j_l*AsPV0Y^EY9cL`;`DEL^03hJ zL%_q-9c&ubJM^ziA^C`#avp^aj^`08qT45A*C1WOfzg?@|79z2nwi}7T+`NyizU%*oF8s(P{T{h zSz37BpLpL-n-;xhX>mTJTe%+rqB+e$xP8cOBQz+wobm_~*=b$k^`6~Y+%nSwe}4U`DCs48**Be+qg(%tyj*3IiIaO^vuNo0TxZ5293iOE#=@P&yc%qHcnQ>^I|zdw}8;A9M~cj zS87%pnfQ*Q_dZ4BCoA#HML<@%s6Lci7GgG+bcJb$T<|=|k|XU{hB(HO7A?FZcwZfy zA$>{P8Uh}{Bl68oGfZ%m7?EC4`Y#ff1y2D+tJ_ZIV};E(-Nc?bFRBEGkP3G zNQZI>7sJIK%((en<-}*W7+#H-?!qMu%ZjiVUc<$3HDhY*pw~F}(8PZU7sIQS6?qok z!3+1+FX3Xi*jWijmKuxV{SqwtS2M7?aka(eiO+B`e6Rx>BX%dgW_Z7Zi{aJo%&=L> zbHFq7{c6-koyWvgd;$A|;n!i@6>7PXhu@lEIuYpRTyL%e}o;L?J zzOQCspC3kJsuw+D{Y{wi1x7Fl7$#*ufc%ARQ(_`>xINh29aNp+XPY!Jy&7j(w_w*m zI8#~!&o!`Agz1|h@GAVw{r+sTmePh%b0wW&COxguAjI=s`V*saw3xU$#OS)hm4&Ov zRdBK@o+k@8o|ACNy5dka@Tg$SMIs&SflgjUbg@fo4bpJJ2Pp?D)+DR9kOrgN>f=`59Yo^7W+x_H7WteZtCI%=~lVSA-vp0M~Sn$&Oe!ykX@Ui{Qv5hKO){ zFd|fhA5G-6P)35wOy~@-`wHBeF>>LB{rzfLX!W!jEhZAtzXpr`)m)GWr+RTz__C28 zT{U|98di>a?>URHeBoDw7jwidXW-3OUcvS!>E9aG*i69jtMC_gMfYMds9Vcp;KUuqBKGYWLdU9P+Y(3eRem;#(i4-DAWumtE28m0xuHc%>!Op#|2d5%AY*^ju z5ZRC~3}dbNja_P3yJl&3O8ek^w>7KJCphoc&PzTt!mgEo_tV%lL*yI94YkZ1Wn*L1 zJ;;2yiuY9F8W-8v0hnkl4#Dk{EoN;yn;cFP3g^Qi&W9Jv;xQv!<_}Q1hwUr@@25d+ zhHNtjQ;q3&6z2a26%0Ae#_?%vpMu5<2C9u_n_OGxCWBLi!ntsWbMYQFxoM7joImVL zq2Lvuy3b05_WiWt{Q(qI1%86PrHUyXhiy;hycUn$uXx##s3cK$2u^-&1?=5aa5y7z zgCi7)~0r`>RdOs>Rw+*`XTj1Q0}v*FLrw#2?% zd^pDiZ=QuGR&zOrLuwV*gU_?Q9>Xwsnnt%IgJxC$W?!~kwhePKIM+}dB^f-?IbThX z?}8|0Y=W$H8mtZxH%z5+2QM}u@@b&xU)bMY&7Uodv(L(nSwwdRi~QL(m?DX6u_eXu zynF_m{MGQ-mOYv@v{N=F)iBZ&eCAecFGkOYIM9TveQUf1i~Pl+I)uN4 za9?^Q_ALz)B}Jt4uts!K@>#H-(Y;!8-@O2Am=p}R?J$c)A z<5s~qSp*jr))(&g(-@k75)CvaLfs=oM2Gz{&7eR7eD&INCX5H$8j_sPi^1gfesGe~ zX)bMrS#0z7&g^%FnJ|rQx3HSzp7~73EFFQv+MW|a`#{r9^G?W9!;{*AHm4QP>0-ovMQcui)DA=sNt&Y2;0|G8rwF{5i}S$q>Gc=k)1};NGtiw z#>g=4#-T7-Z3Gg^0=t{PKd~yF(791o9{SOTD#I%9x+Nw7oUsSC zuzvC?qSLNCHku==Z~I~V+#eLA`(o982gU6?yLQWwSitCet@??g+ame?#O=sVQ+m=? zvxfFJz__Utfz`O^qVU-G-?=1kDoyUjvJ*~%^g=C9-+DB!aSMe#j(e4=K0W}T&}35thmkwYtV$uPDy}<4X5-b$oIxV!o-V?GYu;FiWemwT zR{}-*!u@`=aaXu~&bhjGZRIZEVt6%MkCrZ5-gp;&4S&B_EnEGO7XBPLx|8WQjp|3J zQ_|^M(**LuuJkV^$O=bNaCC^b8GO=TOq^q#FZQyi*H?I<7W<2#ai~-2jjS@NuGirA zs~xjDoNwCuQwLNh3pLsEe)d8x{#V0e+FjFfNEs5AF2SOIF>F41QfF@`>eoQ1PmAK1 zXQo|j;9TT~`FnpRdVexjzI!Kz`#uY7dz8KT(z*S_9;C3HcDuyaUBk`3j((WG_k#rT z(-Jruu=Z$wX;+UR$WF83a0uKf>q@V)InLtaN@dX^e~U_#DSqLD zHzGRCy74mU5LQoQWB@f;Ek9=(8_U;&&HK0I%_hzk1_qM9-7A9$L9*&Lg8l)tPV;f) z5`&D~tcQ)cN&xP$$)x{hxPy`WrqkRzgiTAf zxka$5!2(evwfBf~RL6O;DxPN}@=(z1D{zk!jmnV?SgZuwI84%t6FPZ`>eYOllfVkZ zk#df8`=hhO78kJWe=eHwnX?F*pBpP2j&h6q0iXbr3a(p zI1TBM3gQR>&w&;i=oN-a+gPOnlgP=bXr8U?^Mq>y#)|wBYU0Iki}RToqIk6#8kp@l zn5*$%^*H0A-}@7Hj+`M-7LSWiz34ZVZ4TVQGZg%l6G?DKq5j}hB+q8{VS1lBRu+XA z5Y;ipv8_KXaT@147r|zIP12MY_SiVNtrcaA$e0wcy?F2`io^UrchUJJw-ml7DcK|@ z@M_%XJ`YC4ab73L)@*4wMl_9K0q(&@{icyDsh+%w=)9p|XN}a_LKjP=`63q2nY)@`S_I$@g&puXj zL0TyE6h#brRK8!5)70i?Xo_S(rcT$np{rT#}`}I~v$8yDR zO(Dgn%s#7g_d>oq^}e` zSHv_YW_Qw)R}sD5cHxr?z?qUA5rS#h~2f}M!5wLt5 zX^esb_rdl&E7X{`IW+^Wd5Fy^LK=wvAc%h$#P1(&+KjjwsXB8;o6kXv9oI>HXk;D< z|L{nlmpnsRk?frh$8{3te4seUCPylH`D$rkuF+a(P2sg9R`VaDbKK$%S&rnk`F&!w z`tg1kBOSb^rwoKMz81E=zFsm!2m>8Bu8bva!j4FE5w1@~kU+d&_ISUof!CfmC)U*m zjhFP^Kfm-Ed73abM5F8rgt4-4b=_A^!yrd5G)hEnM}>iBxY4M`J;DOsJ(%J%NB2u= zPG03Wh0-oGfeJSH0=c+R5xD!Add7ryGUqg!7aA*93jIMAa4bNZzgH59+!o(Stm#}q zKw-xj05Pfd<1f-F+KzIS9<_!wr(3?1v-qCS)|l76hR zB@Z%{iYuTZrsS3L3if&ICB3Ja%!APzrl>v7ERFL-aEyhMR*dIGvqQ|1fFJ8@3suiB z)+A({-Ei|V{=)tKbhj(OoiUXjQBX#JQDcCWro;38RAT}?SRl4-e9Oza&NB?c^Xe7>N+?_%1YvyXGc-qq@J$h!({ugF8#(s|IC4JXs++oD8cr|G zeBKhAq~bd-xjn=apm%dQO+d_Xu_HcmA2vFn(C6?`}2*vyUq6F(>$BX0$w5vaXf;{1mla~SB6q~UT+{q*5b+? zmpNX8O@H1f40?ap$2bx^!_9EHQh1NcagVQ53FjtL$E;omPx>Q8bc&B#dl1a%Sj_MD z{CXC_wjX#U7ysoJp&9b?ggF||a3^@VMtCTB1FxQY_t-$-?)SKRGQd>D{h8kpUhWM( z?af%Y1J1ZRTB(rGYUao3?$6wg?sBa#_W#>)M@sR%hQA+I(0uny&sh8AD(p+`5mq@& z^8K{qGTQ6awI2lK4>d^73u`}gSQtY!6P^?}9L(?^5PT46U_L^ZeM>tNMxOTtJ~urH z#g$jxd>uzk4e-aGz&&Dzh0eF$-PlNs9gKwxb^l!$i#DAhx=iK zmYSx}6~WLkpl(RQgX_Fb*En2r?t-i@f%#m_MmXop?l#O@4^ARkTnx5C)L?d&I37L2 zMEG*I&h}UkvU-3=>KXVvVBpo_btno?-uLIbd}-=!IeoG0aE6I6@6S0tA4$hY5#!r! zp*^x2bYXwN2kdRrgHw^5*8quzYH;t3Xj*+-MHW0s#dlr|Bp{P3aYBBEiSWD|NI*E9 z@OPT-PeG!)+zn)7w@1>&CFG_Um`{d-IbQaHK@FbVk?47SkIER2OL7HLDv98UItErw zj3AGri<9^L`NrVgclM@XrTHIWCOq!}5`&fb#4Pv-3cB#e<(AbqmCy&o;>(t=roJGr zor{lw6u4k`a${DAxKXsH?z!YndbM|7GIvPpm%DvpkMH)9jZotvr&xqY&9=ynYoL?6 zx)>&BZb{9yF`m)sm)8r3m(sm|zGR08xgC4x|9F3>)D;1kxy+aj&y`C3x|oDJqk0c+ zk+I4IV|@tKsf6>B`#b?p$ap_2sQuh)jiD zM5;ucKb0#srj_Vf7+~kMi&LXGhy=7Y-72yh8Y!D__!qj%P0UN}y??%B|3)`WKa1)8 ze#^uDhIpFA4^x2M7ie3$GRyg|+k=vi3tEnV)n}x-%5uH(DRvDu1!K#<*mZwPO90EZ z@jXg1gV^Bv!WenmL17HImW~bmbTd;fgN5BK4*g$$>l9X=dGNU)=R<}IAo0l zNf4XmaI=u^`~A7e>+RV~(cVA5=H?a$k=-ZvL$4z{MR@bqvm9PF@hi8gYi~MhIyK#A z%Dm~1%)2DoibM43?{mkzDSm%d)AUPNJ)pk{SzFUiSbb>R#u6ZU3|*XliG9!FEhQM$ zD|n;rV+l#$eS3K0h$ATkp}4o5R%4Z=Ci3TSK8tcQu3@ef@$1ibZL5oa0iREw zJ_Sx+0PB-a0Z8)vd<$;?*sgqZ4nUV_aeaGST@JkRDz1y`fR7#md?E%;^Ab<^#LmKh zzwj%<4?YBD2|Ru9_t9TKYk|i`_$z;yF^5BehjV}>Zm|<^I2jm=Lws>Noec2Krz&y( z`*ag9j~n1UZ7O4d*f>eg3YtBuuUwr3d~ii@;dkq>1V;pm&m522mqqyMLEwXzf(w5f zVEPXHvy*@y^5O>sJsc10&tVV81AZU3{ZGdOXZRWCa7_NHPtYyxgC_x~;`W;d+6U(Z z7k;0a_Gr9^qk*kQ^ToZekIn{K4cz?Y`Hx-&#u9kgy8D$sE(&s6D_(Tp@~W97B$um) zfe&sBUiq!wK*E@r;`VQR51<8eheb>J!NtLaKX0Qyd=>QUv+?%mwPSnq+L=xXvey!H zx;2Qf?Q~xdF-8bv~3N3T466r65R z>iLbGA3*ZrzhIuOQ+}x7`QpDIuA5)n54iRNmw)fiptF33^W>=>d*S!hq?d2j{Jh1ou8(q>OabNlj(W(7g7ZCAvgaN!daJX=Lyrw!~Wx4z}E-O0QeK1=84-OxMtEb^e&LN3w#Ok`n6rFzFVPUa!Q8U@;GpBePlRV~ZhqU+ z&3GwU#7)1uk6>Q8Kg52Ele`N3%xk5nekh&4Yk4j0BXL*!rJ`@bO3gU#xD0PU@(WFR z|57*Cs=K+_7sqc&I($~FknczZ*LJ)l|Ni;4A00z+4eak6p+K>ih)dkpcK^^XZo(Mb z!EQa6*Mcp-=vLk?z4Vg!`{&ngd&5rQVYjfCoOfb-Ag-5g@S&T)-Oh06SpdTc84Y|L zQqPH};`VS_^23K4l5Ibol+d16UnC!0jv&K3o}CH{g%sFZmivX@hX3im#3?Bq9e*F* zN+J-V(fxNm&|L6W28&Tj6fgcsF)cJHA@LbdQKXK0h`PI|I+a+iI-ez_Z)} z*TggFN75hsJ#bl{mFVHVTh~u zL7xqQVl{CO`iwmW#F6-8fQ*Ehm4sVXd{12R+Xcnkn!QZFXVEao%cZRTA8XmG3#^=R zs%ISGoN-3XIBQrbfpNP5zVIu;i+iq*KDbuO9gFj_r#Z`G$lfpfityrA>!aT+PC+9B zdt3yHuG?&i|H`iDUj1r)^qa+@s$fG7dU68QZSVBTt=O(^wLW^y%K5XS(o642RPP4g z{lc#ZFK)FyIvqn{TysGp|2|D60UMcL_z&lal!!GeMC4E=BA%?VEzM7U?B1nrG2>c@ z^~Y;txfD;_$a32#FyJ7JS-L{&z7xI)Tg2t8FQ~>pIP60Hi2Xa;Ci&weuw*FQZ({gfw0_-Y`!kP#QeB@1I|CAJv#E zZ`RwE18y#}buzzv3hh`pAyu_*edV;C2g~aE;(K@z^5wL9I+@=8LgXbzu*YmrA&}V#~{X zDMIi5uFMi$fez-}F`5FGYOLgqS@y$soWpBohePtf340CLO@7Q-{>Yl~lH{u^i}Sn0 zrmyMA&yp}W=~a4TNn?rY9>q8N8a*rGTA;o3`imF4_s>@^bRWIUp`!(RC!BWtTg(R^ zoY*P8S1)w`*3q0-_-$c;0AeKTS<7 zrzYQ+C^1zrrR;sZl^hh0GA72;`_%WAGyan8oygS&^9XQXG5P%Y!zHq7>xEU+I z8Sbevn|(W7=jppJFL>Qv!)tryuTk6+d#yjyW9ojzb0mE?cK1DTd(J!^;P!&o3?2#V z1xMT`p0DBMm7inVS1*H+*At8G!}pZc1~uxIq4R>*HStK?Zm+ms!si9=N$>P+PxFem zS6q{PPw3ziw`4zBp4d;gW#F3qV131Nh5AwU2s}H*D=zy%d~}KkKl(s*8DTqZ`Q$ElkWMdu)usT+#r) z@+-nuKa&@il3BJl{q(p{ZsQxyE)7p!XYS%~(%Nq0=8GI3d`XHfC%Q5NpZv#NCT>;1 zU?KdYpGm$$1*TN{2WOTSenoh3METL@A>(YJ>~ z%pz_!+fl9Q!~X(|6_a+%a*Cqzk{VZlW;$njPW_nGr_pVIk(P?u@&uYLCI_6+3VZ*tZOBw_x9sJ;RrbZjH<&J+2X) z`Ha3r%P|I5Fk>=5t4%{DIZ78Ao^#Z=84AK05#lV;!WvG+Qo(|pq96BY1><9bS0}NT zPWb-$Qt>37Wvy!d{OIR#pI~M^&%;9zMZ;h$@0j^ED$j8n*b0DvP~yuh&`d|(8EW$j0}!177LS5_!o;+aztXAt27d0mN$9&e{5{f?o@l^STKa zY?0VG;Z`+0GP)mg1XLS7*eR^xr>U61WL- z;w~(He@ZG0p?6F&tuvz;ycX=c^S^m6@5JIwl?Fjvj!*-FF(}RtrH96A7sB!S9y_@f zfm`mTXE2Y@jS`D6Rut8RaX3c)>YJg2j?b5CakOU(C(enswTBAeqxXYJr-0+;grb!& zadn1l1zb2!W(I(sg)eT|EQc<(jrc-(Y!F z_LOp5Dq1`>cuL-V;ibejkc&Qf?|*XABFM==z51>eHy(uq>7e0E8Rk4e>`ZI%;r+4s ze1VhPxYRS8HBLpNsYQSFvwbPr`{&o(c%D?Nh``rDV>@HNls38&zPLD7xKhf2wz4k! zin@nR@v_fqAbS0*>Z?~z-Iw&=KVO`0-|%*tcop{UD={Sx+}6MvT*gb!iEte2NZ?kC z^*(TQ{M=p+yqaF?P=+rx@CL?E+VouP4!mXfa$x5Nu{&@b(6_|4Ey!)Capq4IPy?$0 zjJFJ5B3$t%Ha|xSNq-CWEnr$4)*)RDaF}>~7^{dokv|FqnRjwM+i^`b)Ha(sO|5{Dcz?dzg*% zis?tLvS~`#m#7Y$h+0I+TU|IAB|ly78`%Elh0}Ae<_JTSaRD`Rf|YFG-O=TJL|?%T z+)Cip(Q~dGxJ-vDyT+LvgyO)>@naB>*z^pO#M_1b7O-Y?8U0A|a%3mNS4S^8E`{tl;NAH>0Sy~Q_=u0W!EoRnq9pYn% z7-=}w^y{X>7{@aQ=b(`};^xrnY20;=mW}O<5svbwRpQbb0doxNY1ZD9Ku7IAN#^XjCa>G zk{Y9RVDfJA%;pcE!^+76DI3hewVH?hrjI#$2#67CGHF$ZB9h6gCCd@8+aQ2+OmN|LW?C?8(Dc_T@ z$H5f5qXWkf@>iT{a7&)k9h@Nzu0`zRFhL7O--L^p*(%1O6zDm}j(o!-?kzh+@*!4) zYV|%%P17R~B|kpF@j5=yL2wjM*jZlIlA3DxkofCJ-dFOcd+K15BD)i8f7TmT?14;G zF!LjPad%8qAfb7uoZuzA`#t`O0v`KrbK~*JkVn#F<>QePnKpKbP5WgUzou9=DpL2$ zgu4ceR=J1-9!v>wIbbF}O>n-t66Q?v{I19jPnpGjQ=#QZpI5F3uUiS=?$4=k77FkD zcznO$cyIa;&g&?jU(=C1*vivO1dOEc;_v1wv>xus+sFVlV>WVe+X6KnZtf)SFRsAb zyTx1Zo}x55HO2XI-wnIXR@O(uu+_kl&rhqkG7@~rd-E2oFAbqA zWxzcQdvwhvy#M0tsZnq0CeDQPm~G7k^cio=LOTk?sWdseFs2Lmf1b z^8++Tz4$A#N?ld~!mdtKA~m#z5*6dM;sCkF_4t;|4osvV)**P_afRYcqdUG}^GunX zd^~Oo!x#^)hCg!%Y74+9PZ20UXcR9(eav?MP%y>(c#RuRDRfozUOwEvD8BWF)8t2R#A zMRMK;?#Z2d#)_-#zs|Zx($QdUWyHC9!KPboo*xW~Teh>687){Ys~dx##XScnF}?KG zz3`vyF5Q1~eUBv_-u^(0FF%CRZN=4cN!59QbvH2FL*>T`f5JOezt5H|ic!5}sPOhz z&aWozih2}w$0q}57na=RdojuZtvJ$S^R(bUR*$=`NKbpt-a*a{WUG2}&S?2zDHW4Vd*n!IMFem^>lppiGn_|LUc_zWs|&ll|A6*WiB%! z%+A~S(I@XZfHLBvy}I0JXGb|-N8-{^b!g+gelOz9eONij!DGTG4PxK0ImnJUM-y(@ zhdXY+fX9xy<{<|iu3jlSG!ZYaJjjdtGRwSINY0)&*s%1*(oJ(bRR`! zSZl&R{c4u4X-_4^@`yqgI93W(hl4OOHvNozbWT&* z<7bRJS9euZnDqtzwKUw!I39(su)fj`6VA$oI=EGx=|d?UC*E5euy(?|_ji1pj_|r- z&AQL<=Bo#gCLT_Yn-}q~0mzmk#GhQAv44lNZ|30*o7kLf8QxNqdkz1(ek*wSc6fPb z4F}Hq1lUJ<7nOQ6wetgR)Yjv>YSjJ}3l#?5VR?60ZB%V9(F@+ER^{y{64p$tj)%0CSAR{O^cUTJNHEZTb$rIyL+A*lG zV;Hy+JfmvWeeu2`U!G!T2C-l=%kTR};FaY)nw<=YBd*I+_Pj4h8qujT$i{+?Wnpcs z93QiL9hE{YJxZ!tvNpuladgsdo_8l*FwG-&qr5y~F|C~dF@4)xyje`^IRyDSlGpmn zJLp%5t+be4*BUW(%{XB|>80}i^h z#5h)#LHov?hR*)z>cxj+Q>v&AHua*S?}cw|^G^S|O%$t)UMjV9d@?XuKSQA=u@q`P zDo7=<9SYC1Um{b3R^TqZI2MqLrJ78@^)783Y?9gI3y06LQPy{6q!x34xQX^fMQT@D z+>1CP3i!Hew3~+ej^ygzh}*cw#7ny{QB4TE<@39ZanO?sY=aiA$a>#T7h1WO-IMIi z>F_PO$y)A)%Jx&1uSeOm|B+)^n=`#gTsy3#j(93HR!}e(Wx%_2%Rig7?)25xJa_8Z zL*;}?_WVZU2d1L!Z}X0Rk6)X!hvI?|k55D%*(Lvv_!(MJH((#+WcIEiJ{!o?9Nt@f z8_>YZGjmb$98?Am^RQO5M)1P9__+ayDtHn%T+MF-7qHjh>Zr;H@5RBhC#m7A)-HBQ zxj!zBygK18-C-%d7VP1ZOHaV$%h9f5RNaS4T>e$1KmyTgjmW&(TgRpji7K%&7$nwYQ$7rRblcIYPlDE124 z;wv+V!`yr?CQ;=a-+6p=n`E*wF~u|j7(=k&`6pjI4L#P{LXS%7>RsB*vMDo+kxMj! zT44^Iy!4Y)QOaTFHkkd8Xp&j(jkf0|>!GX%FL92cjE#vbW~vr@BNz^d>u4ghnTK$~l&~%LP_?=DSYR!8el%9#ool;-2ksZ@Qg9Xf5Y`v3!k4(j zKuwKLG4Y5;GWYZIw}hu>TAM4kp)Wj$_xzgeQ9O;6BAvMS`EB`^R&eUUwR+T(UsszF z5U(7375Kg)sj>?$HqLD4Chrk8p1Jf2&skfYfHcxj&~m*Y?)$1}jPJm%tmRk*^PQsH z=EpO{mc={6a4F9Mwf-pYOdl7=ddo`ST$Qbm^Uuff%z&ag_*hvBWlhw;JMf45d7^o| zljLvxc#c>=I>SOWwReHkf!+nqIyw*=)3kFFN7#7Yxw@_ocb);AQSiiiDBxWK>ti*L z2}iv;RzZHJ=qB;bkeiG%>?ZXrP_2*hru7iVLssuxm8o^hJI~Rc;E$E{qO5#^Pq6G{%jr&zo6A)0-h;&wFvJi+uwg~)&NktwL5GjeM)cj^qU&Mj<_YzN$N7&P(U`wuxjy; z;Oj1u3ir;$2T{R^i}RI5wgSYh7T9`&RxQFYg{9zp3dj|xXj+)7$tHc!-(mrAA8jp| zBYl$XY%|53)uV(CKiXy{l!`k`&qn@iPtSs9)yF%HZgct5) zyM%jM!SvLRx0Bb=iaxxTWX1NBvdz@Bb^u#MA%QYUss-0L`F@*b@`Z>)fbaT?NmmsX z+g3x*{?>8j8QVthVZ&@rX8f|zC+@c%)RK5j>vtFacST(Ims$n8tHMJ(KC+Y#-j#8F zy8XlE5G`hc%1=T0+k9;ctdI#S3pL%>X{)2o+LFQ6mnj+2`tIluMABk&7_c8EQc_&w#j1&aS z=47tHS3f>N|3R1n3)z9M;C^Lz3p9A{MtG!7b{_F7JJ#YfajPUdNCVUaU4{7UcN1D& z?rh?2epkWTRWPWnt3{2Fp|~xdRW!raqdc!8JLKg$l4hPk3qQ>QrhhTBFa zK^ssNOzU^a_TLy()8^Y`csu0Sf~v9qh~0zC*+nfnBttL_ZU3B`>SaiKfAd5D;u-E` z!DLR{uXUSyiR-lg7U4@W58<^2-fQd@?siY}g=-e4T!L3Ln=JeB7s-?Fja=3^ z!4RYrT%N$;>-)BCFcQsEvXnh|O~|gVOlq zA=lR-_YZNDOB-eLuf|oQb0gYN`Q(xJ*T>T)Cl9Ib$Qai=`73+OJJ>5WTaSp-MB-Avn{$!P~eqS`)RN8;AxuMwgiQhw_FoswF#4Y~tL^7YE0 za}RPiq|zzA1ZT7#>)6yZ`%va@wm-m^W58?{%N@M_oS8$pcj)@ILh7ksC)Hb^a zs(tLBH?tqrf^)nvkx?dL;xC>~;ZZg-P7b&*LUEcBEgc19GyA#OLq-^#jdRLa4M-ft|Ee6f*dE8?8 z*9S4atJEanHDUCa;3Ri{F{s5E$!3P))l+0o4cQW#|Aa=&@c7%QE2bBQ@8VVqw+*kpTM7|G#0t9rRtlCox8 za_%$HZl&VRsb&>A>FS%WkBqb0CT!8PE~OLAHN9TuE`K7!RLYWV4EIG_8;2xc&!X+J z9=VA-{&RfREH2ifH%2?G9d5TWGh|pgtELxO($5`SH&(?EH3$B=$cC~bv7@Z7BXzPv z{1M-xZb<*Kam0dW@(%6x*POocvk`uTCqhhkeVWi2CE76Wzp%QBZB;4IC}thB9^s|e z?#lJsp_+gR*fuxY;cCd`bV@S@M?g(2x9YAxOjoRuuZp;1vBkEDwj^WJD3c)yY;rDz z+4glLPHrCYf7qN=KiGy}R=?CS5c8q@y$VcreTW_1W?&s*X$5`2Uw zhha{s+f3RwNbpCM3sLUcYs zWav^{!y=@}9ejo*+ntRpr5zhrwFF<&?8~XqP%BxT!K1=Qc->UQ*+oQ5~wfw@#_xVL2yyp@}CbxZP(p70k>J;tc(Z?3WkpCVgdV}Q$%=!e* zAKht_{AH4sNq>ZipEh>I@>ivDz`Atrnf=!@bq&5HESI%^9-^&7$pv4WB)qL@HQ&Hv z!bf-_#FX-*PZ4gsZI?S;Id(Nhh^uU@=_6?sjozrBaFn9aEgQ@Zfco%o&99eyXMg=P z5xDwgl&ZMPG$J9G+wuuanz0|#+sE1gCxsQB{2uGrNV?3|vtShT<9X3bN;XX$k#k<2 z@+*6z`Uc$l#cSUx1+wX|L-P_mNbS1ZJ>y%iT0KkpdZw+s>=NT$noiuDIrMRUG^XPlP+2==3qhv^0bJ49>PgW?NASQ5p-Cv=K1-2-O6 z&hX9wTt@H?SK&wa5Wj6}Q+Qag-b4x>JAe)P8(f3;5AYFQdJQQ?1VcsWFwH^S)efR{ z<*Ec>5`d5JlHu}=I`I{s-b!#8!MaAzw%n58*h~Z&KEmtsW2lBiFf|l)tr6fwQ`5SK)nyJ4!pzZ+{Bk z)j_aKBQ@WslNqEVb7jIZGg9U+I6hZ(6b|wE(q$HjGLoqZUoS8$f^r;ZsrEf*4)7V4 zF;@%l2<-Px=4}YmV^gHg;H=-(IenoSS4iz(;@zhSk7Shiuq_{b-ZoLmmwcAU+z$Ro z-K(LZ`PjE(5)7tyiem~WRD6o$JKQd&lp{Q%LS4keeHBv+8@Rmg`>VJ6#;Oa<)RN~$ zPFiS2nK35%^1_+y`ZMaOY)0j5n_Ik-)M-xm=S@QVH_Ulpj^klch4*BRe+4cYT!Aeb z7|Rcs?kVPF5b+!^C)&6h_>1FO=J_Gm?%mGCSjF$SlH)ecaPHoaOxP zz4z6QGk7R3v~!qt?>nzcaQD|mhXuhrjuf*mT$_ZijRLEG6v8tgc6dwCjDJ{_u!UTO zG*xl2^IE|v!&}+GdqyN6eO#P94PRBvUvXae=S2iDO;dcyKPFu8<@k16LA0oh4c0`n zndLOh&KSI#zL+Bc{MRTgJ6-b6MjJe%+Bu~rK5XTQKh4N*+keTwUigsOp>S%5&XRXr3DvN_>588e7sICuc)YZe&a`l!j#-FOc26i{&+k5jh zp}Cj?n`tZ3WQH)hmoo6~Rzl|bqrtq69BPW~ij=n#v{Fp2Zy*w9&tOAjVhbI7hSO+* zOnp-vL7OoPwI>siC0vKGgO9L28|Wan4a%fkSVtfeR7^N=VAh4@0-s@hGegRe(OSc7 zQoD#b2R9~UxcTxHG-Uh__y|vgl}ilO2##(S0oDDgXQisN7J54{w=W;kO=N(LfB@p{tcw*5th8i>{=L{~qOCqIw) z@1bBIg7Cr7f;J!6)o389&ta~F>Sw&;GyUl4BP{!>gJy3s;qIHn@iW$)%d` zus(piVN5ncK7;UG)>h(HU>)%v@_ZfQ*zzHw^4>UzU1kLw!Kk`Q&>IKrsYFA9kMKLf zr;7Oj-VSh&X~{WEJHX7aRgvjWCodM+@Xj&em#2v#4Qey0G_3ne4i)xwq)XW5CW z@Y>tOu}H+7UF_pc*y_PS653m!BfC_>^d-MGWcxoZj-sA?Mc3VZ}d-0Wj00*sRs z9~=>iIoEN75^pjOy4Vq(2wCOH10G)=X@Qxh4Ku;R%>PX#gjK@1`5B%FNqI#Cg(5EB z(>o^|6_%n2_Z$hdqy*q2yqjztQR5dLW+=g#mC)vKp{T;#ni5U6xkW7a5ni1#-bBjD zGP$a_)EqKn#kMSTtqZF-=Y`CV@Y)fs(Iy$!yhXoY_JCki+WR%y3Ud~Me|quj2v3AL zTRY@$C@>wSQeY~H08+~Qf+5Vr4L`!)yAdsR6NV2t#Hj^W+PB{$hRX*%!kslg?ly7d8o_(734VlEgj=}xa(SqT!KeVR?#zL+Zz-R_D9Z37JP~e> zMI&vv@5;ovC41k0QUKX;@eJNj02zkho#u$YQ_fL_*xU8#>xa#(KCCc!f-crKvK5?!f2_8N zUKiE9^|zHh^p+cH`Ua^GwNR_14gUP4PL1yD!n(d?Gqy0nOX+vJPv@6izu+^sDS+?-i-BrA|aqic7)D4Q^oEPRE!Hg~izH=^UriW{`HCX>ae zIQh<@-T1{(I8U)--wg^(-1aVPH8|&RuI8(p9A#=9=Hxu8eiANgTfr4jIQIZtIh6O& z+dXf#9SBB)g9q~=j6ub-w-5Lc-e1;go98_%;rZ&GvTAHocfc#rQJC(Y;U1l7*Zj*z zB`TDVmt@?P`lBa-kFYx~0#_|Vo7be?3L5jHqs`08+U&$W-gj`rkMQ?AgNKptK`gkG zU~Yu>O&?>xHFy;G2=D7`R_On}>Rl1IJ^N1d6x?fYs^${+-wZQt0lqN{2_EcSNF&*R zYc{vwRLvFtTOKzjTk=2ga&YiKZPK)H8vwa@K~^0Jw073pSu4B zm*%b+I5OxJoGu`;xk(ed2%&ry-+D{9RmHUD_eygPwBXGi^u0yNKsn#W8S2Yduvbbu z`}$p%#FJf$BQ7P1Gn<%!bn^^*K;?cPVEEyQPHlc zqS_sk?BJ`2*@Zd!(6_&N)NOp>xq42FVc(Or8RnZ1sz#s&&`QQq3r1_}v?mv=tAvi3KYITnk&XEIQ{ zVdJ9~#{Xhjb`PUsqSHygueHh1%g{AIHb*11BInD~ZI4dKK~cs#Y6U#0Dx1K;45V;I z!Z53;qjVJak)IEni!>jvRSUCAg|X;?5nsed#ir%tcC`HU%bjeyG!fJDUulpcOa{&h$K(J+^& ztlgq{?@^_!Y2UKne;4edC0PT15GN<7!eA|B;j9(hE4+5X;XnImO2W*TPQu*w2>Yfn z37!1R2%o)YSy;it?=PXR6#o5HWJPyfsye^x50-@Q;F`?IT;(5s z!QJj7xV$q1swKQDUM=A%Nje>KKS=Afl`7c0ce?9WT-d{mKC5H^61l4 z(6gdm&%}3T2%g;oHDK&|67S5oS(g|=+~hNW`ttz>JTn$SE#*FU#V#VxAHGEU#ykP(_cz#vGC> zT)g?tb$8|rGqDDz63H7cIWKF6*?Z9p%3`$p*o#%y-0sc6Q}C>|vAzeQ3G-HMaH{x6 z88%O6ubR7Y%{$FHh461`s7i!uR|R7Aw{!z6<<`g2T=02T)xrZ>ANMRifOBI zSj)Lp$|?WNYhA<|{s;2Ge$j(ZwvJFb+^yl_FWl>`#|-ff=Ow+ut5s}XmdCI*PyP7) z#MiTQl=hLG57HE7`&ji(=IY=q=AEeEO6$VR#nngS$Nw;EycyHk*BjSIabHLJWN3B* zgnWrm*FVX_N6N$iyPHkFl~BCL{3M>X$KXBp;O5JLn#))6E9NKo^5yPY!NRV#bWbJI zp534HsOk6X>IAN9lHPpZSTaFfXO+3l}T9q_EBBq>Z|>FJCvL z1aJS-a~Uh0;CXkyN_o8{vUK00*ivN<16vQiT5vJf9Nu#lN3~}(S(x90bG=nU{4+Me z_n=Z0zxA9${I5eC$cOx=NC3SF&I8s>!<+9jHNHay_i&%c0sq{i4|m$FIAt#{?(3N3 zpRF(a7q8SVG6?%%if12}>Sa=7Nmo@`OcO9LZfn|fV+-zL%$X$^>#COp@0FuJDh#g) zt6zm_57;fYNwFm7Uf|_sAcMO@Y{>DEcU^brou3+VDHA|~=pV5rrp3Hh=HqTLJ4s0_ zd6;N`Oo|SXypCjj#F^oS@)P+>kqzr_Q{EYztvVN2bB~%yo-oDqJN7-?2e?ypPV39} zOZgPg8LysS71k42cF)c`6s(J}VpWmE-b0{k!^16VyKBDVH2+aB1pdg&hiLfe$EvL=Zsk6usOTWr#u}zqnK*T=DkF`7xE^i2f~+v?~;N$76nITeBE-koDsZg zAj+EaD|XP~YnYSmVzCO_5$Jpv_W~c`y_%4aw5WZlBM;k5%*|C1Z_c(!X`$gKwm;xU zcy;*t(E@YYcu<@#7{!?GETwqf$YuC z@P75JsZLlFM3Jtd2!l(tEmw|R8JVQ3i0~1f2w86`05<5+qRI#l86GjJWjfW+Hj5jD zzB_${r)4=y`kzR%F3nT$+?13tnlhq4`(vRYjU;n@pAcUz0mMrgrD5LD>g0Ept;tztMA9W2>a5Xn`HW&L(W`6&3Y$W=ROf-%s- zw@+o*Le(D^sRV9;-UHd|DL3T!@tj9zo)t!$P^g%|b~S@+{Xp}hUHZ|)@4?f)vq!^H z?7w=S-aLk9ddHWGYi+=sL*bvM3bO?exgHgM*J@j^J}x6JJ-FF_wL7J7EfRinOuwbU zvT6`t#q}0*Ohq`=)`>b`f_t=iy@?GM4-zvbUyOhFE}%Z!H<%@j^wRJ zYT3hKb~Hr5FUuBNy^Tg9;km&V%XBf3Tho$?xM0-k;8x+ret>w);G8467Qtr)b)aqj zmKxhc;&JVhIr_G`n%3uP+v9FqOKwisvN@UKM% z?)R|Ct<11jxNN9v+*{G2stOSeP<%8Y@wZ$DRMN+?twLJl`yasocHVDp!D&PpGwy?) z`axW3aQ>uFq#@*x$m@|X`5>^I^;wH2@4w<J4$6cCrmnOKmboD-cuVSXf;1pc!zqH`)_^-Qo$;Njpc)0$jn5}I5 zSHg>j;-}9Cw-$We{%aI)X*BlMUu8!dX3ZA_UBlqMMl}C(}#Oaof7@Gt!(igWOX3h{-CordZnEQv| zZf$ zZ-Zn{kKJ?H+vH?#=N#y)O6i5!d_j zCi!P2kN^F5!WX?noFyOHlR2=2J=hdBOh3d)zA3g1YCWZuc`dLu+T&!dJNAa0W^wF#dw6q-=()a+;Oy6XX|ER0K6+QLN-$(D z1T~6N2X$k}Aqr&k$j%3a2a69WG)%yiLW#S0@ajGMkr`1Pt{0D@&Dl}u{9!FPfwrp| z=`Sh(q+RLl*3Rs`H?c zez>0t#oa)$;SB7Cujj2?DBVjP1R!#rYULNe5q^URcM|WwBoW&;j&*)Kz4;C|<_G?9 ztk(OBG^CH^rjZ*RWxfM{xSxm8d8fA=PR~0Ww}m-Y;FC@-(-{NarI;Tt1>r0k$C^H# z-n;bPWlSH%`j%R{bE9WUu}Fdg>Dx+}WMJ@;M;eTcB1+&e(@e8p8n;o1xV%R^`S13g z@Xq#caQ70r!t@@Oy*P25BgrxqPN7Ss+a@B1T2JRRu2&$bPxynpuMXRLUJ*T8EE3s_ zb~+ZjgvxCWyj0kox}0ZBMUBM+tRp=wimK4t7d5a&V)Uf}7j0Q*L?reRP`^IfO0U81 zdPuLMUZ|*dVJTc%oOT758t-=%Z>_fmr|^!&-S*ynuHIr=NMT}bb61#&Ah=fiXJiFa zI&sUvm;GNwOtTRehaVmHb~mG$j4sWdNK*Y6&JSV>gTI??zir($A^HMWPTMz=8@Tzs zscObF3&vUk)^NIc3wgrm+>!fH?=x^XrksgI*Y>`HwE-uhMbQdo#XGzpGj5L#*LJ?z<6iubU zgPp5rN+bBXiRs>-$r8ev6M#D z;AAOIG~O7z2D~U^3~tkkh=;xwI9m*ru0%SNxCG|#J(hic5LO3nitHXN^n%neIJ}O* z;{$9tsC~!a1A5a4vENE|`4CICWTm>sc25CwlpLwg;DmSG(h2WWhB9w$V|gcZl526! z4CAyrSVN!$Ju_@Uznj?W<5l8!N9o^O|Cg_e8E#y0sRdU6${BA<-f{{bxo-ExGcNeX z1&?E=Lqz$ zWI~OT(V-PEWmhlk9;uU^NBkcoLb=blv_@MdaF6#&t-at2@kc6!_l!Ttbt&-}i_%^w z2(_JaWc_s{tqSp6a_JZ-IGbs^%vqpkLJW#rwk7Xa$^|F6@60B62H$7@`qGb!DsJ(O z?M0`A3(46~BdU5Szf216{db1!Wu8-$iIrXA@eMc~p6uTr#oOh5CP43I2_lYw`e-gZ zb_6hk3(ROhTV#jYEBhEnz2`ThlCeY)>!s?W0Iwr`X|VO9bEY8;maPLZBd)mJ#sCH8 zU{=f|A|7J5VH=>p{0`S9=AJU~2yDsD33j=Nt_C}HQ)}URIrN>m;lv8QiByQDD|YCs z8jG31vMo1dnG0;j9Mz2{ws!OK;GvSxhT-;+q-F`uDmllquwU`VsL)k;sn;V}*xTYI zPSCJL1sUhXjkidTilL?+*^fDKHJF>dES&y67mzzhQw;Cb))+axr&x|Jo%PkMfRLDyTxpq#`ZU%eLtW13hbz0o9#4=irh~{t%qZIoz-A@bXWZ!iIO!a`0~F%kJY|!<(m9;d7XW71w62 zFaxaPQ(Z6sJNe;J!P!YYIEt6K=0|naU|kCO-XvfK@is|>$A(_a@+JHi+7&yuz8%=@ zGTpXD6Xq<@2hXoZz3h5AaueOCnRAZRr~I=aEVfA(%W7ehA}D@7co^S z&MSCS_NQy(+$Sb=1`BkR8JOcy>NSO%1Vgd%rwbKAQSl4PNrkz71UYeX|eVb*o=g?J#Gl zox`I*`A9WLCD`-9P6w7w^c2tQnOkyC1D1RC7{JID!7rE@!pSW+r2?yxUPpLENNs8? zk0JU#9mmeo2BYfyUUebXY|D=i8!r#Uv6Y;b)l%|{Z+9nsc#LHM#t-^Ec38CSg!dgh zu29JL9u~NwGwD{p?OW>NW-GgxI}do=7RYvwORbNhQPxLx$o&fa6oA3mvV- zy;%cfyB*}XD+YxO53fKOa|X=E55ln4cv1F*c>_#4ccD}V85tc_^*UsSFdx|u;Z#L5 zLh5uV>$>-4UK7;8%4Vt9`rD$=xq;S9{9Qo0Q==-cccDlt;XCr6zcxwFmTPyTs(5CS zkLF>eDTk&PR)>e&Uq`_x>BsZpHs7qQWUo#<2t!`G)D)ie+`NvVue&o@77b==NS-lc zfbUI&86$8<6Mz@~!yh8I|GL z242rv`Szzi`NJRo^rv6^)bD=u~Hv0ZGZ%fyGpG?f* zZ9nM^-pp^;@WEV;FG$5J$)vLixg#hL=b<{%U3%YrMM+k75Any6a~z3RQ4MNYw2FMz z3re->Pb>PfqrK(!7Vf9N{`Ie2U-|MO-hL^mo^;7mU0r)rwLqQj%;y%eytJktXU5BD zX+N*JpK_5e678dKp_{Jb)!lr)q?>SqAL2&89uY-aZQw{aZYprdx{^IQl{zoSQBnC6 zct5vw2l;qO-i7||PrviMpBzPQHB)KQNDN^--df?$MaP{RJ7-40v$Cs}gHzQNy@T7O zg&I*tBP{BEx`B;^Z&4H5bGz>)$F(;8virQDWIcU@1b2pf7LOabdxrvu>|4(KyJl7oY0CjAq_UEJYB8{4+9SdK09eNMS!YypI9;Wz;da zO#dkR-w;$*Elk>)im}7%?OF=OPc*u>pLb+^@c*Yi`Rm{O>K8xxf!o@RpZnd9zyF&b zeeqNIPZH~jxkdLKNmOFgDF_n9z4(q2FeyW&L47sRwd6JuIm>#E1Hi(Q_a-YQg(?K| z#>Z3s_@FRWNnid43sFj^%1|Oddj7`>kRmU2LGLKu`TFo-tknKnh4&9htD&3`Ro1;} zZLsxCT*^+*Lrag2g4j2+fLoiJYzUvB|Ha0qOTsCJPq$jzJU5rB@o!wxM7pjOhPfJp ztf6V&U&`8iW%B87E^uZNZd3Wx9>8Y3CLfcB;;zx7q=+6l`4^ib`L4=$VSRt_KUyvp z)v3H{Etbrk?^E%l163mIda^5w4V@a9oyAk;=Lrc9U_<4M`6!V_aDrH zRI8y6X%k^>S+|t(wBk2%^!mu(znI)LmL{>S16>?mrM^dg(!3p>D#bq-dnwdwqA~B?gsm+~OQ+&D_}JJHG$CF@bbOx%SIADmXzr4>pyy^Ngt5Tzrw1mq_HB zn={_N`_)59WtzY<`P$6u{_xnoHx{XF8&f#98kb+!snBa#oyyxctsRL-jk>?^;k!CO zq87Hm7M^noEE_F85|-zutlxd}%U|RFqh4wwhx&4KOFU`1uAOoy9}IbV)-96M5M`Jg z6UY_7-&i~~`C?lKiY?xD?cCvywG@cYCVz#ei7Q$qUZ~lRGWAy%r?t(<*@&E7ekLk{ z&!Xq4r~t4)PrnL&+LcLy5=yx(N}esKsEr1uzuB2}ZeE4Iu-Dt$A16s67tP+PyP{BIhNw5;FDR3> z$W;O_{(QVv{>I9rHd451l=_N%r9!0Ye)l?dQ_=InUslJf73bQTp544t$m4HMj(=bK zT8&Zb14Uvm#P*F;1{qwk$rVR=uY||Ea{?4~i*Q)cC8s^LtlJhBYdeXrWJNgmC{%~* zPIlpO$-%veb@&Dua5!tv&igk@eH1V8-gHzz&mVk2mWSSXUpTgT`{Q@GZp`c3m4{b4^}Y4H53{rl3x{*hmf>Hdsi&IrF2Ve}JWiSSdO{LQbv z^YdT-@E5=O8O`iB-}%iCKJz(7LiUje`NJwp(oR@Z}6H!ioq6k40CI3=0Kvv5Li3R^Y+Ulqb4^c@qAw^q$a#m zgRyJhOoK(M-VdY44j)RaZuA7T+o9k&2Pa22n}YY1VeG*px{~o9UuoxVFm_eRN=-_B zX5Y(JuLDWQv0po8C&IIv7=3 z@SB+Yyj50T=sz_@=*lYUH#7>ewt--G!Aqthh7(f-Z~r@H?LS_T7!7(SZkhhgnYz^- zC`WwNUz%sbMtitB%DEZqv+{A7e)D6`9}dwU74xXHXLX)+{cZ+lX`V%Wi{N8|c?#?; z$cKOr*}p60<8^gZ;=6L+RsL)W?vg4(|>f=W1zp6*gw8^IIe+m z%Wgo?Wl~|SFkkk(H;4)GZXI9w>ew3E5iyY{yd$nfzrDY={Z26){!(JBf8QS;{}`TL zaOJo6=fnTu(PY&4`tA;$vXnf%KeB;_982B=Qdeq{4Jvn^TF|AIhIzG?nX&lFNnX7< zE2U=^Jv+_6-Q7~GF8HI*9LVxt&+&Q8qUUJEmlwh$gC^D-gM; zsHCGV_DJ?`tZ7>v^4hdLQX^Qj)G2b2`xSD#lBh+f7)koLC`(e>J@$cjW%GQ=TW3Fj z-GT(@J<`p?ABt=dZYL-C=m;y`y>rURwkusFUp94VGHBauvv*Ef#1}A7r$!78%${E2 zRByaX69Mqc8LFTWxD@AHD-W!4vfyqW9(0yr08zjU#;-V$L z1-}YnBO^kv6ABdql9~WDF%rnAh+XFM@vSB;bs0!9PviBm$~$jhX4-Yd|Ys+SRX=vJ!|Bf|KZm8C-LijHDjEI%%A~X_vS); zCzPy&cGIIInG(S{tlf5L$d`&tD1B>ZSXOS0b;8=uI?DdU4`|5&A+poKm74M?P=4Ic&n%9Y4d7~Rv&5n9eV~xSD@89sJ_P&H1{*I zA<@X+bgrpK{Z1!%hklH-rSBedjJl!n5zbIbdr)|9Z?#w*zs=J?S`rs$j#`iV5VFwD|7jC_4 z&Km&#%7JlCTHX#wvdv5oO?@;lm_dXTS4d5T$Bfb8h;8U=>W}xowkNh}W5=!%!z6WnC1|u4utbdyeifz>`IS`(5f4`27LLyYUn=jQl_H##pUb~@cz8ZziD=~F;d1bkmtp-gp+TR zBAvLw1E9Zp>je8%(VD8CmrGo(7pP(2^-kgA_H2p&|Ls}%V{d1!Yc&jn;a5R)G!XB0 zLBk?Z1c{mkA$AEGK#0d@zJDehh}aS6O84ZC9eX_SGInP9vJ6XcZRdWze~@+|_x?{C zbjtBn*_TGg-9MOzMm}N^9kJ5_FT-cIz-KI1xZz(nbgCCCTDXU+VSEK{hj+r{xE6md z*TB>VZjrx6{_ePMk)8uby{JKgMH$49Wds((h~x-@+~yLq*rKAxQibMUbAif!;$m{lA+yW_DOmjcFQkNguJ z3irc8X&n)5!OVw_oARq%@hVL3lHd$uwN7=y%dKRB6|gAc2xM@&IK-)e!%0l(;IKu9 z(25rh24cn?Xf_%unLK1M~n9vf+ycP^}Zb*?vsukf?$u%lyUOqooPCr zN}rKlpeXvH;JE!&S54WIgQpOD>gr#fwB5?>?r*LH;eg}ttf3R~Tw~*ZxYr=pPtTgu z2#G_U8oC5#-q_+Qsevh?k)Q-dok`bj=`^{{N-nIrKs9#L^Rifq^22Awx#eeif`(nW z<4G@N|6J@P8~p{%5kTy**cAW~?w~eiOnS?J-tg$1OC_c9(52viz=Pj>wV||K7-;m! zOQ%R49H>je3<@wXBA@FFf@d+u9L3I7WSZAN7K>( zAew@U=c`VEDH)}z6EZk>zrOYVk=9aZijX7 zXA}V^_Z!C)nje}K!!&O~$EjHlzsui)kF0iEx$v>f3m;LxH$Hx)74+uu`?s$?npV)2 z&HiK=Hm{VGuKkCa5=&Vv>IvuiP9q9-E;85auAhcNoZ-A&rMRsmP-c;iKa!Hphfw#I zSAT=u-b4g>&4K3%Cl^+<{a-WSrKW(a)<-axG7Q_4T;en^lWx)mi$$AVe%BfTF86JU z-m-scPf5>ls&s15!ymTZ51=FVmWdv6;n~0=A#K+U$!d7|G>9@?58sqy=lmn*E_DVZ zOYrDYnbDD5QK+ISH34*&$}9{C(uv8nXWnLs_`f6F&XkXo6!C*k3aM2>>xp;U_`;Gh&-M+Ng0Tz4l>p|N%yL({O55nH8iDn0M2T}&$) zOoqGE(9nilsetJUdu8*Hy*J@nO@Y${JJPPsvsgxWw)dm==bQaROvKALM1TqEBJPuuBKau~Fce?Rbrs_fx#!76I z9(6HJ=~mg(GZ=5ZDfY^F=bTf0peaC|hIKP&3Zgm*&eF+{9}|l1Wso?C6On6kx{F@f z?W|Z*u^%;(Xm-iI@nLw%>BQlmcFs+;s?Qd@gNm8aJa`kQ0c4}L$imTvyVItyI1JKC|7S9 z47j~i+El|cM7>?)WlQpp28T!823L82;4HOj{uN0MKLhVxE7p^YrJAdT(A3QT@x$Sv()_NTow zA=TT4!xleE~hEIG`Xqk9xb1{td?NDNAxs(F(RQF zER?pNsQ;?@8s0x|ewD`q2IYnl`|tpkRSx}WuENU*uU5b)I+49=H#wKVCLe1sZz*gp z>Yu67*r{H?_s5*UL%}bkoHlq|LV@9IBUY_w?EGcN|Tbe)a>n@ygf%*dC>A*uR;tp2VoUZQDhL0)4GfuA-0fxTXqz-+izO zKLJon0|XQR000O8YJaI#g|mLyj+OubFrxtgDF6TfVRLh3baO9rc4seRZ)t8{X=870 zb1!0PXD?!DbYpL6Zew9{XfAVhXT+Vy&NMv{h4)+qf(@~85)ZJ+w&kALu!AN}~Z z2m1X_e(;B{{qm1r{?zu#?UVfU$@u+;Kl$0uzWk|Q{PGt+_|zx=`17Cr;x}LZ)Q^Ar z+h2Y03t#xdAO7(9Ka|h^^4CB50#U!90zUPXPkiY|pZwm>e)6l&{pvfE^t)gG>@%MR zZ{JQ^FW*jOe3nRre)9WY{?y05eKOUyUB>u){$%QDelm~w$uw&Id>@}IbJO>%*ECY~ z*CmafK3~cw^|$!%99bZh&(FL-Z}Spgt&-Qy*Qm!=QmDUb*MIhn-?px_Q;~D+N~_us zwzcwkGSBJrvkGqg^Q|fWT0c2wzNDV@(Kc82lcV=2q4%mR^h;A7`elBybfs>4{bb%% zc2S#iQBay$E$pA%6^{^d$!Ys!qv}~!@YlUjH<*ca#KJi-`uELr|R1$ zS9jiyar^Xk`NsaW@u@GU&wubUjl*w#@X7CKkd>f*>XYC5lfK4mpKqV~pFFa$>K3=v+bX+sy>7I`MqC_+XUCoZzXW)fzxHS{`uK~BY(a$b((&y1-vUj zIDI}(lF$D6q15g38W-UFd@q+-=jYp|U}fjzb^Cl8LpbdW`z-16X%^w40F|D{=WFW1 zS>@KtOij_~aS|&2RupZ5$LGiX$uW18SB2H^I<8|+pKl|9hcXs%_Rnvb{JY3XjwfSV<>*tHJ8|u4j-{~wWJ5;%R=~IUSM@eQhcaIbt~KW{N99Ttpz3wyQ5muD_#vvO%p~#n+^Kg~wE_ns8Qj<=UodH7i(s+%6(9l4&A{$`rk+ zk}V0>;pDY{zB2B$=|joY>FN=%@=@t!Q}0t;*N5V#@%b$Q)mcLv!&6Npu4L`nRCkdx zSOc0ab?$0ArK>HXwmKB<i+qylCwHB@}- zrgsP`X$-D8DL=-jP|I@38)QA9PtAG7Qy)&#W7k-#TnKOyUI+6tO{QH3(<>M8dZqV# z5CO6vij3h*MH7K~4b7hfL5o3p)os)lOlK>-=$PpViLlV_YGr16t5b_{GV4(1m3)Oe z>f4yOdVqPmPVP-CT^p@`{V{k~eiIb3Xn;?#Rkd}2|W7m9C=Ke}jy-icKrGIDVhPU?E5 ztD>p;ghN{DZ77aajD(%|lNlHBGu35Kf{*Xz;#%hHWkA6m%vp*TB^D_fss9U$Lo>E> zvHhBze4pxbaAwU4S|ax((h#Mot7*%&Ljt0#8Jto=jT&Lf9NjA}Bq0%_s0WGPhY||2 z-YYw?e<&lDs_+UdAfN+`AD$5LNSGK6Sf3gwRdd7oq6Z^PCF#mY^s+hv?iW# zN${7e_=Eaq8mDnlbQP~)b1^T+pGR^Zo0{R}TFqBAkVIxHSI6JL8}XICS}f>{uGtq8 zP0MXn^@3N628C7ZwyF6|e_8$uvZc~DHK!?@VcI96wY#e){ucO3to|ZRrg2welzJ;M zJ%@f4vpg2>(O7T<)i%#!^g4M}u8k+0`i(WOq)bG*P6{a$- zT1M5n;qXoJSyiu%>R=6E?W}fPkX(ev?g4FL29n^fNC1)?-S@R#>aJ8%O=lIN5*nIB zSFwt0jW#Jf32UvCaHuvhY0#lQWlc%$ z2ox7*tJ?I9=vBYdwKHVQt?GA;ggBsO;Bj@dOfYjGBbq9k5Sb;(S@ae`>o4+*{=#7A z(BA*Mx`^bIofu4J1+G?cB!lQLj4uVF*}7Dr2IISq zrq;oLs`@x7eP>poXfbEedg)~A*k+J21Ta1HyXvLh8#6gS{@o|V&utU2=`toRZyh)Z24n1iz3w1j- zm9H)mFU?Nh2dh6bGgCe@5S&COD!+z)y}|YrU+qy;VFW?pSL=bS6~FoIuYdW|A7E^d z1*L!O_~CQQV3oG}FW>*pZ+`rpU;p|$SSdD5>Q}o&>KaK)h8n1JHLPXf8o2a@yVi!S z=`VO#L}XFu#_FjCW@Qc&P}f4rES|<)ziTCuD2VdR%E-#o+R$IHeow+!1{{w1a1~b1 zkUtiRqV(i5BEL%fgd`p10XI$4W!`FPPTdi_qq<@elHh8rVH?vsl%AyQn7%s;X;-m= zQ{zl>rq2#eqJxXDT5pWHMs)EcFr3wjrKaV=NzpMCAhwGfy-aKLfh}^a7+>@kmLz6w zrKb$S)pts*E}srYF;jHrB)AMq$A!6D!IQ2sE)C2OBD26y1Mlc0$b4y~2N%_b;t+PG z(px8^_)Uq?!1-2Ku{|Lyc|ALA-jgMK@gS$o$lh-0q~RIGJ%ZiRJd}+wOjwv`-TjKp zAPgIdekb>a>;T-w!%=?}ok1!n)(S@Y0>f04x@b09-Oy~bB~UbInidnX;YQ(>V_1Z* z!c`p+M9@SO$y`R*QmWMzH*!E*XauZ}eTBEHaq=92*DL)pR}E{YVMOcA>D?;*&r^&( zRPi#pE!{DzxQjK6=GK@5H%PRDlmBjGi>{qTeR>rOz#IW)NR*t;szGzL1&i6hQku+S zY~o`mMUzSnbsQtRD>L&ptSp;5Lf>vfG$Uw+sb<3m zkVu5H8UdeB?ImvQ7RM$yq2cbTq^5(gh!uv7P(bY^qcGEUDqTolko&GXYET=VfRX=PU^eHffZNr8pXV1)2wqgh5 zHueriy;16}E-W#Tx9R9T*_>qpQ)R6ksR35c)tD83+Z0iauVEdO1PD{yku`SWGi|ys z7NsW4s=2H4Fp?B-b9(x4v$evOt9@6twti%!2alcqN+p6B3!{#KcX7#!#+n8RGZ7#i z3AM~l<`s*V`rOuriP{3`H0))b-TT1G-W@N)M6peKu!L=j1q_DEjAfD3>g1}F;auIcrVR-65qoTnt92Ar2{&g-j^!QL{T^@Hy9aA z@#ziXV@<4J2?4;4DM(PsmhA-{O8--`z&2{Y9d@whCy;3yuoK-9ze{(pm~C2x&u+uI za(Cf29HG+fU^C@Q@R%K}?BGGz*}!?ale7&JoHT1ps4Wb+fR&GmmnAG3hhEd;@9w|q zbaxUa7yZ@3sJ^lx4isi9nG<59w-FrF%AEej@MEQ=3enGb-@Z;2ZasXA~k%7(Zpi0XkDecgUVQzJ2gOcWKIe9D4oT#U9j|#&co%Y zwRyC*wFe-n&OBPu8G@LiPmLlNTE4_0>ir=YO2p5m?N|$nB?GwZ#uPFZ|MT3KRF}D8 ztWI%y)Q^~2gYr`J?q<40U5Hr9LYK@aMB2ittn`;Fj3c;e!%lD!))YZ( zh4Nc4o(dyUVIuvIC_)VGD&36ARv$DmFr~-B z7h-ZOAr)`=6;^8D8K(7C z(Yl3~@Tfr`b_=s)Q?oa4Mc0Tmq!GJdzqo>(T0<<>tKCjbS8XeKoDWm7bYF>+ap7oK` zSoalp1EZA+EA-Ps_(E(;O zOUqTMg?E?_xoPF{+Arc%Vi;-#>Tg%#mSWE2X(}CVT1XmuY%Iqd2<1+AY8=2UYnXLu z)RJUKKU5m&nL9S~7TOjJ`s(1#uv{EwW;-ZCa5$;hMp&p>^2|>6t3V42Zbg#12rpjS zLx-8l-`dLGrjoDUo{F>p4<_W?j)>Gg*S7E4s0&O3`Y98IYQ;=r(!_qF*x%A{_Gvv^15j=oS)fpSn1D zww#1j+R;PdVZXx370p{xidWR}n(yAn^T;#kW_ub`Ghtz@5tiy=+hQQQTIy3HNpBI? z%3%tEbM<623}vzJ5zf9~250BnP|LH@+Z+r7VP!MHJ6;Rs?+LM$Pk)Cq;)rv>~BaU7|6R@(iEp4+yx4}bp{#Ivi z^Dw(c?3);41X6l-=4SAe)}okUeTOAA6u<)XE{vd}*HEA8;&a{FQRE6|vG!yx@MqV6L>T2*STeHVE<}QDYynD-JMaO@EJovb%l7#uk@)WlmIh04XD{ho` zuf?-R$o|z)-YTml$z}&tSN*wF0D~mfh2pPY7DyU>MrHGUgH5DIl9mrI89pz4G=lwe z-R2RU?;{(1-m_oPSHX`OJyrdynv7q6jL{!{{FC4Q;C+N%+ZM89)7n&Q9J5=6H*Zv2 z2;RjjA-1c1NiVq*EuCxXQ$6)K~7G+`W0RAx%C zWNWziYpJcp65r(Kf(M5%6TWxZ;WmY9=9s}qHJ=ER6M=<^FS{I@*^^ZndmkGv#Y?RA zou0q1BaFv1#WVPXUH!yzji9p895zytHLlq)pK5IOSYO4UsMeqwRLfRV%!hOJl&U@9 zTjuoMqer5VMjG45OMsc)Cenhc~7Ob~qJwDK_FpQgp_!}X2rZghi-?MB{xXS_NY z3oD$8kS|*Qq@Ggc5lQTmq9XD@X^9aP!g;iKv{`JGBq(c4@EhXkS2xHQoe?Aj*7 z8A?t_ftAIcp74&jCZ&Gf6t5v~$O_WfvO~69ThNezCynd)TG(PPi<7R2{^x%F%kTf-i$DL}&wl%pU;XS)FaC?&*4;{zhrV_SXg1M$sSBB< zT<%}N-mOa%_o2To#oL&0^lquhve`E60;uVveZ<34N+yP4^DGH4w0v?^;h9f_jjD z;D+QRcDPGoT*mM!9*blYYU{-Q3fd_mWaWO1tP&e6nER9kpd(Kr`GD}?&`w>XR(tT# zqP-!KvD2vRf%?_^md;{gMt$_-dA)jFj@)&vN9Wb#-kaOef9f<_ee3GP`fqfi8XOHt z{NAl!h&zWsH0}2rzA${^_B)j#%Ym= z8p5`02$i&|-&>(3YjADW#Cr_y4Arw+zOY7h>Y}Iq)E?v66SZUgw!(-z-ul#^hEVOX zV$arMs`lp@K|a~0x$4&d^+6k(KC?d&VA9|tx+&Q=#9Kq~(?_|F`t`)W*ZQ^TI%H8& zv3C^WwJM~J;B!EJ(){^WjY_h5acOl?Q!<^gLWYLK{`1DC(yPH1E2(d%Etd2E`xbzS zJkko`w~@)m5@eyIN(AdPbLY23`0$j+9O$dl*dI1)gV2~WeA4YRdWp?%{r3Pz%OCwS zEC2py{d3i5MAI{^*rINbpxrqr7Y`MI23nMy z_^8I;9-bO~AbAaGUEO74ZP%Y_BXtarG+&!A9f#R(8%KVej~k8h8^~V<3)g1jU#4 zip_FV&Q_R5|2~hzSHI4`6X6WUqrrH%^aa$RTP#YMMU4vVd`G4#JS8zR<-QpK{qs~3&qM)D6~Lx=mXlejtEf2)g@AonHB~_> zb4jhLapDvAq1_)BP4M+gBahhUIp)!R(Ymm9aJ59_sQhkr*0-oa^;{bPyp$mMh3t;M zk)o{%UR0<7BF4R6%M5;c&p@NQKsR}oBhsVy9=$xi!M_vFp=y@gwIzW!`(`lQN5h9q z{JEzUEu@jHAE|~w0UW$UhWrKd=5F5e2!^#M;UjJd2DYuHgojxLU^3nnGrG8Mj#pPQ zPbT&fqN_i7ufI4t5gR@ww(@#TRXDbT@v8ddb88>{QXBtHqE1(Q>qW6FdsDJ%vBq${ zFAKF+P?5xer!dDJ;$%(dyHhZRzl+8;=%p)-9TZJ8-TbxPNBUxgz}>^|Zq_2Owka@( z0M{`FYWXKW!6sfmXgP!)vY{O*rZqw<7q2b*+r3cPSB+s8bzo~Z5CL*ZYFqvZ@Y#r_ z3P6)=Bzl_^S9b-&0SHvn@X=ezBptg?=#X$RwqDnl{@N4)Ut#xrd6E&fY%bUnpS#Q3 zuo@A~B8nWv*C=~dJU8O+GfHS(S>J`%=*_&#Hy_;|8$zu*NSa>P5gdf^#c>fX)%NP*#e3_bkVkA(j=vRw1ua z$s#VF&7U2S?#RCHLF(k4^yjF~|G3hZ<0DRW#m>KawS?oiP{Bob<7A#QVR!wxp`ZK@ zxB4%wv-Z-idn|-?TGH6<3c-Qbn64FAk$e$zg5_II+1s-AX>M8YvT#!@;;x~l{vB7CLM=MPJ;h1!)_Y?p0|IYRSI|l?K?1e>- z17#r@Z1l6jGmU|7Ta1d8dRGTmRQVLbPc<_g$qH&xdY7UR$jNkc;D7NoaANP#Y zNFFghCHgGKcz|U&4N)*YLTY4ipAJqQ7 z=J;I^9tre+=Mo>W4gHASx5&kxmz8_`u43;ARux|CYy3Nn41z>n`wPfF-VE+B@|s89 z6yDqF$?5|PB3Spdh0K(gLopIHj^WG*7tM6fkrd-5{)+`rhf2bKDuyvJQ-J0PFibL>iU-x$s9m2ICVsyEp32IBj$Pf6uGXaNlKE&cjh8YK{k1GJ z*}8cTGk(BQJk7F^Rm*vgC;qqq>Wgaxo4$WjLd~wuDz#(5J=*)yE83s?fAorM;?XZ# z5%rK<+Wir~L=oZNLc;E!4^?5EYR|D87BA}&Ol19^@4wPsDcGlV{V#P|{FZufKIe`< zehdlua{@*nXgsyUtOk%asSq*Ls0hjKG4uTI5B=Y6t(@?}wWh%^`9uQoqGOYQKn*Yy zA+6t!5l^64r)C5dQ^w9GQjh=*cfR@vW_>R(+sI?69M&;*MY`AN??_-;R$~KNvVgkD zpXPe0uQTrY3)gF)U9`VG&6px>#RP_W4R8YRh`b&p{GFQMQ9>3LdaDd5cjs_C(}7az zfXImMV7UW;z3bkX5c>pk*g#uDoEbP=sIqG)A9t`_tJDren>abY2R0h`Z?U>3T0q1uEPT;kpijegjbIOgsB;I5plVpfOeL40uXVFBiO0>?_(if`tCetfx$%nDeN z!E*w!XIrpS?}9tq;#5isM}#+|ZnZPQ5vL(ft+%9ab^^gU)t!c+HD*Y`T<2*J@`F+u zBoROu4}+gQfa0&2h7jna7%ms1#T@hKvcG5GuHplvRs5q{(O8 zdQ@A-beLjm1xb89DtLe~nT34BT+@FSxTst1zx%2ui9(M?{=Eq%m&Xt)rP*@wGfv`g z4&Phl%MnVQ(UyS^-A!Fmwgorp&@BLXo~(`W6rB_*Yjj_A%q`diTD6x2Po3TUyCsdT^S_J(O*y5{@p4Zjtw~+ zXlAIl11Sm3ro=sFz5*;OoTDJeapdcB+S{|^R%23CK;mTX)nX~Eb+U}3_Y}$@oZ}nM zzDgg@PG8rIH6?tkIV%C?2;agba7_zeA8D!3i>H!&Il~I>JG8nm=gBgdZE@kIKf{8Er)i_tSUTF1d(0Dk??kQc+=HE2>0u}(mvntDZc1RB|hkCx$&be4PbvF zo5K%H4r%M+w@&89s?>q2u@=^a@BVAIkGo5oMbDk~VC<`&n&QeaHMhdlqy$e*N;ncK zi-&`pPx&fuL1b^wLmf!A|DflgZ@DCT9N#;V(w4(t&zJ1^8cXJ;(7sMg;hqvB7tVYf zBENh2DgBG{AAF&#L)#fC2Nj!&>BAVKUIB9|?D|MdRi3=(aBxia&)DHHb+9bFZoOTlQ0B13jKqKq~F1?XoXAUF|Noy_&=^J z9xjnPo^l47SjrM&V(o0cERJxtU#z6V366xy;&4mECJ%p1K()zGzK1|{WWbanvPSih z@b=;Xsj_h58$PJ6k2m~?OwyAt;MFFk4E7PEH++h(3|^fN6=AA3eP|uN{f1BRZyzUT zMl6ZClZSBO`i5VlEBTA-q|&qa$DIdUK>3DW<12%QpQiT+?41fkpnt>9k(D%D*dpOv z8*bbtn2kp@Hc@eroO&L-v97M9&gSqp4eshgP%|Mb9RZ4R_n1@%a)fgN#iEg%xpZbk z@Yo$L`t!vG$R8`IOM3Q|RL^kwWMwo1@BQ#mbx#JNK%9@1s_BJ6MY6yH4G{i;@F#3uJ0)8+_Jl;s*~!rw{kYcMHH)323q^Q3YZ z4>E8dULWa{!;?4YH`{KeC}!eFzKS-*X1Ao~N7Pt>iL@?)s1?%{H)yWdoRi@2d0m_6 zaa~+MSf@tAXXn5+7TZD+my`N@s%3-Z;w&njio1Orj-}#|IFzhCP*fz`boQ~fzQx*n z486rxxg_@^;qA$Lm6bQv8_iT0-XrMt@$B-6{B)e`!V2_;pCc>jlT)cTO!pQZurX^{ zXD1llL0Es766!{X`H}c(`tQm{&1j1^=QBK_-98>Zwb$xRfyE-p>{z0s;CCv+$@< zJfuFBX)xz2iT_AWcCU`RaaRX`O&%}`PIOr&GtP6m$2es9oc8wd=J;CHB-&sX31Y=R zhj5>C#}1ba3%dI$`R&Ew)&xB@M}eN=Z}>I3l0Uh?e$$toLgl`qz_Y+>*K;H#dGfox zvH>ejX1^zR!XwbRKRkIYyQpPu74(T4nU=fXWUEyI0GXDZk;@=(iWQUe7wMI{@|8c*D<;Rr1~K_Nq^j z91+oz_v;Zv2@fY;yA+n`S&TCAh96OHCkNcv>d*0X0ZQCUu%bUZ#QIXuJv?B!oBa(x zN4|YLd~8)AEPv}h=E=~jIUbqTqk?F!>kP8sJ>~7=8+?td z#1EHU$K{fC15K=V{D`ciZ$7Cx96|*P(kr6Cy27m69;JC0(Je(i5{Jdqabb*2gHiyP z{rpgaNN&mb@PQ@!HT)JbW#|x&!O(%Bw7% z{CjIObMN3{OdKXOCi&xoB=J)A@P|zkQtCe(l5)oFk)&z2O!AQR2zZ*xbLxp);=Y ze#58uw~uGfUxrj1dkyhmfl#8YN8|VI@VtC$nU>FqZy$HB-!T7f@xVb?LE#1{6~05= z!F!E^3fSL{l;ra8F%GXbtwEt`QQ#wxs3%un&)a=nu?MTQ^V1#6PJ&bMZ1om%DCveGOL)9?qqlkyX)fvO{#< ztoiO?Zoo9TcfzfG90_l)&Z-sh*3po3xJMoFY`ycb5zeAdc&(84b7Ez+JWyH6F|+}A z9^nli5lQm!a8)#c*u!n1ZHaTl_AJkUC>d03T)~gT5B`i=;7fMn5-)vtob`xBls;ld zMs1Jqbhv@CRy_IOj*WdvU_pSg1yjzuV6GMvhPM}@?+9S`q{`;mtG7*}xx*X{WzgnX z_<@2&Spj|H*O8K3p4^1{F(0&<98WDJ)DK^oV!GhSXe?Y7l^#itZkh0SZqW3y#2Xk- z-Lhly@Um6Bi0VUwxDqOhXKzCWwGeED!yD_vdl1qn$JSV|W4|e}=36YmifF@zWZp=x?C-IZ;_laKQ7&l? zd(eu77$5%{F{lGvSOx<(;d^4Tdict6hg%2|-ImjVUK@d*?*yw6uCkffk?uZU>gvbg z3wn{KJR?K_Kv9YX8j1k>UbZ78^>}vU_L4v2qFn`g0a$~|D-;TMOXHd^%6U$FXJ#tT zbI;7mT%G^+$74eFPjo3P%>CeHBGkiMT2XNSG#E$#clX+Y{5pln$rYKfh$A6cJRGXY znQJ0})_~q|f2#kpdv&27o&W9?i+htjNooo|3T!^+vzZ=#Bt6K=+#c#R;n_6ljgFe4 zcOQ<}O7Y}E&1T-L5hvNmweB?cUgsm`?c?FijIGMg$Z#z@J!)Sz2tW;_s0MZT=gL}QCAu=sLdTsCbewg1tM^7BYaHV?Pyaa=|_i<61Ri1C7_ z8#P=zmrv~;NtMluQ?yMO>%BJW{Th0Ecd1TT4uI6)3{SC@{MC(F{mJIK-GNy~-|#8E zGC2E1`@lL03WD_;KE+oC&u-Y!p^{*L+}HPpU!yDe$){UC-e0?GZ}=s)62Cf-$Len( zLWRA-Q*0$a`=f7Yj3Xk9{SBYu-#$*x+v0ibtkJtXO7xCT@oz7#;+FI34&*cx_z|e6 zhbOitjUvX7ly-)Xh)VS8?#<+n;fKKMJ3hs~eVp9Oub%y;C*OPihEMU8!P#FOmzm8N z_l7roimwbF-ppYKlB)-hYi2F8ZkBs8x0VX$*f=gw2=O0@Zx7#bMO1wK3g9a4H~fgI zWKS;KD8lgwL}FPz!$(xgTmIppyX+oWh4(#hHAV*m2cg+AsrZplSv-8rx4fdj_*ib) zU<>|;jO7Ox{RjXH$=yd?Io#d6qi<&hh|CnNpBwyhiN9exZb)9Te#uAf$6}QaIeFJ16jxWY zbtI5S(%Z?W**2AJ^ZJCL*xWcDCm;qsEBZ66mo|i@*W}9X?)|J;*O$tL9YRs>LAPgz z<|vidgW?#5x<4#AJv&#{;OFQhe|2)cX5Tz-6^Iuv-tcpDJN!1U2tgdvn;8Q*Sgp>^ z%ZTs;hZ*Lv?OS1_i~ZwI zX8o}h3E5iF;>AcXVwIj+_0Jvbw|{&oI`MtPxCyh3pTU)D!N7XL2F#0Vj^AVX=+1mk z23RJuuQ6En9VWfKNxzkFl~&4}p)#k`pczNTymq44OBw5kI-m5Dvb5Wdjl|YSyI)nN zjs|ANB2iD<-XC2;L#0#3W=0-tFU5f0eJ9Y@b}@i@0pu zp67A#_1hT%Y?WJHuVCoXaPPAMVKaVHaNTQ~VF>4w2&d9-ALla$@SSALgh+3P2d350 z-Q}ZDpVDJ4rvqJs<`Utk%LO#>7K*(i=C`8LSXVWA@azyaEf9&V&J9x$oH{2y@yl=2BE60Uk#HiT9 zIF1G=wV!G)%cnit_3VD3ZxvLY!@(OW$faledT03B{tFw$ntWi*6<$)1OD~EJ9rbmjLJP=i_g-HLe_sO)RXC9KIdFc(tu9>8=UXm;%fgBeHdpp*NPlmc zI%OYA@=R++)UegkZC@=5E8?mtGrM2k}Ony?w1GcEaHQgs*2aH^#&TYVJ<@RW9VStxf!Or zm`jYB7Ztx+X7?PO(LWmOxAfx5y6SNJtM{P*& z%Se>|=_y;a1<5u!Se1$E)TKo!cLkDW7Dk63Ayyz3E$7O?^1tq1 zNULi#Jt*ulKe*8Ptr`xpTUD!=$8-{>f9{pU+*!mYn9c z`{yK;rIS>~$J>d_Q+gj+U56walFVN^GPG+z-sz~Md5pO_cR!z4eLJFgO3w)tybHQTOXP&R!}0JVwkA5o4_E}nFAPyl z*KHajBHXjq(8Soz28 zscQ41{M}y43oCek6yHklxndj#=>4>0yxWcqKoaSpvJdk`Z}H@Hc)3yfl4z2jt#0=1 zF+6yD3O;GZa~iGliQU`BsXiC5D9{lOjYo>TF$GY+IS%rGbs;zHCZBlg0>P`8wu03) zP9lI&HN9+iu`6gL4JY&lnl`_k7FEnH7ybNhI0?PVxjQz>AMyIZ=&HJ>aH zRyAFJpL@N4#VP_5onw4^z}mseC4zZ<(m1m7%jd>>Hoj-yljHl0FGjB7{KOi$UdAs` zfh%h^xPvS%5Zg-*{H7~1D@Ot=S4F0;J zQo{AM=WZXTx?iHJ0&4cLPO7@DIwQ-vs0rz&v0zhLcXVp0V2sziO>#4T4k5d66bjyZeR}qEF-pScBV|phH&k4$xEsgsa2H zl69v~O@H##LDy6JZXc%#ah(;JGZNwRRSIvn8N8-97gmXuU;IJ}((Y2UGCL8B&r+m( zh*Eev7MU#`sShzoWr0GCFvzGTL5#ZJyeDs*e}#8H#K5CC%pYZM~j`8jgRWxkEiv z8+loT9xl4~0bKX5^09n_74LYS*NbE;LGG(LFdHxq62iPy?eVY)CtM1am9}{eZ2O{* z5n8^yfP+5T+kFt`^ZOQ$OnLStB#pkRlj6;|;5HVals^`sWkpap4mYMZACR*qwpsSW zL0u9CPX8@fBV(oi0tFb(RmKO8yL7c4*^#pT*l98mIK(=vVTQK{2zP`G`=? zS6#easBuaUbA8-}@hzNq?w4o8Z{KtT;=NymF^nth{4d;bu_RZ~58q$B37i@xctd)Mm^X2`c$ypD>lv$to`Zn zewoKWfUpIbUAVXVLQd(G;rX_Y(E`^*g!6?g6cE_wLWEz^E5p;>A8u=$dMbWi8$2_( zc@-wZmVL^F{aioPra2uCsy6y|i@B1MU!^}?5fVq1%epv$hoUg$`V_$CXSsdN>nJ`w zqWTEupzP#LqKiBY8TmNasOYv~w)L1oGv4FW6*~5*b+?aGbuJA%6k~}wUF^<|O~ZG9 zAnN4p_m=X6sF@52P6-+Y5P*LsJge8Y!K8KU#}p*}y-ZpC)<3Hl!9MK;5U&g~bx^|j86 z+p>MWawP;53PW&=cZ7VFUq2&maBR*e{o(Kzv!dc>vf?=!ALHBO1tY&ebv$JgKJ%xh z-9ApWx%h(jWQ^_Eq&e@^VdAmqudsZtD~jt7z0q=J?89dX$oH*_* zJ`Izy;@gqMnTdqWP*gPGw&R)Ms87I}LBtUYWgBj zmwQ>(%XT1Iytg8BL?tkf2=7QH4&O}}7%1EmcJMTA`@*%bb%E8(I81cdzh~fFo&Qmn zm-~}0-rIqKj2HOhNVa_kM5zw<2MG2lRvQqX>ZBt`U z^|_!%%N`iGhDBVD-mT^=Q?AJddkOLRdy0(Tepw%MOenIEj-WnT%9k?u zcX}M-o2*sCHcgGF$?y{tw)Og~^7Y=kr<&jFKeztWxZB66J{X}mI1@O<+}lZC*zpZ& zt?vF3GkqPY_0>e7)aT$qVQ8NS%V2C<@kCm%tjbIa-x9YT&n@A+F06|^Em*~zK0$g4#tL7pGq*Muu*WB#oYrNwwf=Bi{8s&f%Dws3>?9B zREW;k96aBIcIv#_$LXT83s~G_y`{_OO#LxdLl|9nvJ2GYXEYl^&Kf?o$G5(iC;LrY zf3TEnHr6Fo9q`Gpm09UQ8v!eyfWs_6^0A?(a346k7{{E06S>y-4%$H?-Vvqy6-=X? zoV0B{WNEH^zS`~fanw?siQKcQKH0kUxCGO*OjH-6_FA(ZO~$x0J+8+UE39PCm&A?g zOa70a$WADu@QHV0O);=nR&YJElW6EnforrZt;ns!Nq7$#p%?ynQ_V5gis`q6*A7yPNrLxbjJ5X?B%!8LhnPqfK76`+;msK5Y=&GBu^OVP!<1vq^Y>yCQSRlCW5gwBnmg=(YqT{=2w%yqM%t3=$j7=km zA<+|+9z9>(7)^D*^P%z%mg#4Zl%6KzcO0cPz%MB7FJj}Y_ zR3p7#+wxKCWq#Sav5Zj0_*a7U8F)neEw{i#XZUx+SRQTTHV%f%&T3njYj!g`uT2Ehe`MJVzixkJD)hfA0z_9ZHA%#Tnwf)Y1#M;rLe zf8hP?Vo{!CTX*5ayKz2l=|0Qx4l{k^6`^32hzGshMkT7l)+aLeHnVNHaU+xu;GG(G z`#9BxS2m9)Y=;-(%2tfSdF(ZW+Z^w^2dB&Xdgl|;+cg~PhPcGK%qUgIjtgnjL#AXO z2S7ktO<9UsXB}#R<00TJApZFFU+E+!wj7 zp{k+y>3#|Krf@iY*nn2t8Fp-lTcakd>;0-%jEltg?H6_ek(lj!JP%W7cKg{mqkI+X z@a#9>Ld!KN;A|7*9q;1XpZnCG*Him$AEydkZ0%IRkb@h@!)EOm&i#|`7tqp?9w1DO zJfJV^3WS55dHIMD(7Zo2_-33y!$_lM_lKLC+7vchwZl` zz$mrw>c5O_7$RQ=&w0A|_M*mOLx|KO6X6vb>x-ebjn|9&mFQ|q+~MjsZ0S=K>cP+1 zSlx0T>{HWjA1}3`??lt)UAW+eUA>5y1f#J^CdDkQsa@rl)Y3dBCFKfa}? ze`f5=b)<`lD4g>Yh!@~`wx zLYcdI0JXr=3&8YJraW6ED4UvBc+4JG;)hLvMlGQtrsi9uiS?o$3(?jjhE$XpB?sWXtF&4wtHQ*9Qv;JL%nlF%OhhR2%M5iHRy2m zr3QzZKA3`T!KLYSM5ISAa5$oa@-A37!e~viXY<$jgE?!m|<{J1ZAGij2$ zrrU6@RZJW12v8p-VN zrN;ND^!KCezJ5G1Kz@;I@NoupWJ5z6>$-orQ+)6Hp3^I0CIfUthi}apwB+rG{zn15 zKfX`xKCaDXPl5n2hGUAbHZaDvAT0qvncVfoMuu?@?W}}HMW(7PxtmZTV&X3g-i-J? z#(?-=_P-U(d>dxx5s?uByc%H>EV0ukpM5OcAgia zKXUi=<8kSER8I*mN)NhG_>6lybppx zOa7UTX`3-J=H$!;hr4(yIc(pI0#A}JUYXlE&3nL+54xX}^Cdzlx=+|0Pg%Y4kIr}uPU#eAB%y^P&hkDb?a zVh7%9@N!~_y)j;ZTjEs{& zTURuL*}#hZ~Il$>F6(cp`kfMDchyWLFB`%ZM_4VI1xZeRIA) zgL5dK*53$EJB_uC&b-4Kd}OJ&7tGp6i`7;@6%R|Dw#8FRAtq7^y%6UA@>GScNYS(d zSv^_XfYMQD<=G~_yH}zJj@eR-D{LmWU)r-hE3W?-S=S<^cr|)%G7f1x}Fbiyyj-+GUQz)wMjf&8P$VX z=fMTZ5&l`W?_7lTaK9pcICA(|j?WiCurB?6-Q)EQowlnl)zVXx!SsL$7aa&(hq+zO zs!=JSf4_9V0Fk9EMExRn*n*2|?#4wj&M#j1wzJ`Bo{-r2vxJ$R3-#;`l=Gky~ zPp%`mXZ+=6ySMuJz4qz7 zu21jfcCX@k%6D19D{=aX%V@#Zk4FQL_2F*Y9I?Y| zc9`|F`IO{t|5r_}xU==+@Y@QvGNyUFz}mMlJ_DaMU^egFK2L{LX7G{ss?^Xb6R#e~ z>7JEqP+~_t+sqU&Q?!}hXE3wp3j1&k`_6aXt15t55In;nc-?7V>|w*B9hkvY?sLOZ zHGemD_zd|!;!%hn-X&|OEOS5q(C&(t{A&v7@CDZ49d)j*^lF6-w^Ctxq1;C;nf@xC zXJ!71g-3VsFe`)GbR4&0ZbB*VG|M{5FYf7(J;6i@k z*{b6oLwu^-(Y~uK6|Y3r!dP@A`=r@AxB4u$l#&wYiF@Ik%Ik3|w7WI=ki6 z-3k+!IdT=Vu^^V{rU~kR)` z-+n7-;5xc_ZgIM<^7&AgZv>bFo-Da_S;UY#%H&`M%n8$3!ap`~Nuuqv0immm0P6}IxM_UC(H|ME=PBRmln3%!e_ z%HWxn;BD>R9?u8cp6``Cg6k4y=5G1`i$l1sCT4LrWYnK+VFgl52j+CEmG@h9wPcz| zsG|5uPH@Y*-l)OCKl3K1$0`x-rCGtcIW%~4q92xwf}>r-$nbEdS_8F{7^wG>U=1BYQYk?p37RtP@K1B^LKPsV6?Fy ztcNuz)=00*(_7Vq{Z{r&b$g1Cq(uvJOV;d*lIb&BZt=FrvW>cqkvw0EdsO7tk4Ii# zLuV~FtlSK>C~|`w2`=n8!u@FPURNY8SQ_lX+M#t=_u2gGLvoBV#9xl=HgvFl1lLO! zB-Fz64)z5HSkdlDc;t0t7?pj8w{(fj{ZHe2ntMO$>iOc`*N;bnbUQ?y8R6(QV(!Zs zSTb~MyMkStjb&webNW(c0t82Nk}Si;h1yM$wMuA8e#<<%s$rJRJm67L&ldr| zemv6db0(v@UyNa)df+v}Js1mnt?7cdO7f`Jol7(G(oxRA4o}lPx6Fv-GOx2tk-U$F z8BwMR+#Ic39PXU5O(hO3s=kPRFY%>$QYHJTm#8E++#6UmjjQAmzLutWtz*6n*T|NK zw=>*vn^*EG`|VlMAQAA~%=(@WBR&f6>&GMcs-0+>u%>Zi)1L0(cBZu%nATf0XPunI zcQ-6`!^?+B*uVS-Yya__lg$1klCmm1rTLH(&sQg3a-SRapTuUZh0G~xg)7DRsNDCX^#0v|g*kLJH^f-P;}Nq-Y+<%# zt(8rLRO=NU9-$`2^DrrqoIPS+bH@nQ=7J{)9;Bnmy&*RL<+aN#6@kOI+@;m$tGBas z?TbHOy-#@S*oKXdM$PQ5iLR5#NxgZ9ub->L^a>>Q6hp}Dn1(X|1(N_BwwRM zIj{~@$Qr4wZ2ogQyH|1cx{pHDIbD1!@~2WP?&~d(WVA%>Ng!0sBlB0&y$8$ovnJOU z97UGlm)y&!$t5-I6V~n>JZrj_Blk8(auwGzlkpzDmXO9PZZml#m*j5$b>56S*-4%- zW8D2Y`R{8aJN`NDjqeWD&N{v>yO^Oe53&g})&N|xwkAGx_$qzHDEhcu@x^$az!+oTC zvHMs(xr^sm$uHp@{pILatI5+mcJg?MS4r-6-w*yrCwLkA&FQ>9cwgn)zqmcz$Ajm? z|4y!UFaN;rca2}4FCK>rSRdSyS9`Xnu_pp_g_d}_x}!$TRf0qzf0V2^Q-Y9{<<4{smn5X zYbUn?;mD_=I}#r<=LDG}SODNVZQ`C!c|UUZ_2ZEoO`&HKGa1hEn=q;?rqJ{$*f)gg zDGTvrFTnSG8@H#la~<=M2_K_!PNAEp&^`T+^?yyFJJ*q`wpYFAyhlQj?}J&Zt|$A_oM8-emveYf9WBXw&8C3N$jF3Tx@Ew zbNgRvSQ*juE{^2LKm`uR>h$CPCTJXV8;0{3c&REx_V$um5o+q66LGkDIG zJj8ANbL5E65DTTgcQUZ?oB5}c*piKm*U6VqS}QQ<*{IyY)|D`v0o z@XD%UhEMTe#&DlYqGe%7RAG+FDZ%^7lcv|Q1(La|C9a9$9*+27%_HDwvNG?w!ygq0 zX1ae~aI%)4@ucOAU=32$8n{NZDXh!BH|18pzRn+urII2Q5v3wf# zs3fIK-f(=^6@5Aw{%9DtQeDT7Z1A)ee1&^33d$C&38Y$n1ciqr;MDnaSo7RR&w4)^ z`qz&~RcV!es#r_h-1GNJfz0f*Cv9&@EbmS=E%BJoNa3zbxnApVtB6=WTEYAA;TSmy zj=MIe+DqJrm_8yNJKfFpO$&xvGgEMIpT@d{qqOAu60a?$QNc`eU|CNfL6-gB))@8v zw)an))9M|?xq@%^^(MM`pT;SX7s(~DAFYUBMedzO6g<()!M;6uXqbl?CGvnr%NSuXY!_;4D3 zj{E4#nG^QCpVO21!Y!22LTuco)W!6ktOw1kHA(Dg>JZ*r8o^)+O|{WE#Zm!1%KiN) z2Fm51(?Uj5W4Y2U;I>HKm$cO~a-49}>{<4M4MtHL?wx@syOXf-d2rXfV{^cSll$!H zK2+_jUB%w+q-5{je7^U4;X0MPqu|V~mHK`k@Kn8|(VP@pw;2gMus59jo(ZGDd4boG z^P+A00rOk#sfq19VA`VcvdV;q*45eq-eOgSu9|4(7KxM1`7+mzDNDpJ9jD8Rvi|30_WrE)uOE-1d6|nj#HV?t z`!dhuw(S2@b17*rbX>G+nb$P8G-sM8#k$?c5pxSHOgn>FLnv%xccnv%G3U{>0IhW z9Wu;Yiz?>YuoqeME8O8;<9k{cm`4qFX00cA1k3(1c`ALY?VH2>B17NY8QaSp{sqs~ zZ#Ga(HgH8NI-5dAEs7s*K4;Lq?_=%NlO`If(L(phkeA6M{R-o0ov@%ol% z7E@NipW(SC3j6v=1kyw3?nIaXFuO&i2UnR;>9!5=p70}lL|9qtC;+v=!#c3CAnp}8GMqDE~0&erwqdb>6vNox2kGD zng?+?51u!_%;Vwy2!EYV|5yKTpJzY#!~0z0(|J6&B~E!C`$k;Jdh&oN%j7QabtG0f zUsp4CTY1gBlBcb}Mh0)VGkKrp?@RB6<;YrmU2-0p1nFANBeqfs>qO&dQUR{I&4u1h zr|odRuTd%+Cc1nMVLSD@REsWR|0GlQ#>}FMZF=Wo!VTV1@@UPkt`I*0!`B(v&YBzc z1vl0%e&B9q!=D@B!CD#atW9+v@@O!V+(;h!&`R{--*4R11|r0RvDq82ZRJ@J&n5PA z0BZ`YU#EVOZ5|fM5|R{Mi0e<$$%9!ocNp=aDN?eJ=5}+s_XoHC;lDol;s4Wlee<_?V9NDq zCNdUi5~w_>nVQ5IDD#qFy$cB+7P>S#6}6;bIB#!dv>cJ*Pu(Dv2fla&)WNWDrTho% zn~_+)+1>U(^8`y4m-}w>s*2*gl5jT&k*zD6B3b50GTb)EMyfDUYi>*4qoJ9HoLA|_ zX`Ca`zSk+{Rph=)P44Epljlp^X7aXsZx24n$Non#;|%ssoQdgqeY&2+@??9T<%P%|fIaJ?P$j<>z zr#?bma@H%EGDDL98`7(4p0^5Y1C=#W;PkEb&@=Pwir}5uUk`4wo`qLy@Sqz$Muzu8 zBz*nQuDGqGH8JjfQVhO)-vXKT`c{hV8$p$g24rb_Ra1={? zpJe!wUnYqWoYGFaMp+$VD+W?YHhUbooiUn^V%ms3m8?jO39}sUYvs+pT~~!aGWYf4 zksR)~Vb%>#Rc603_u;SuvDp-EUJ_>hckG>wbGi4{%}spkoH&La{!0WqFrroNtIL05 z^dY{hOfiEWOlS&8j-w6ZATcu56|*9Q`h6ux6Rz&J=lwy+CYP7X3&{V!huN zjCMC)c@!^6VfshiFq3y(b5_QHn?|o$^E`&^6oZk{APOP8=O$l`c$T9-8xD6kdiQl; zw(FE#rKU)EM@>e=@T6Zo+VT6*u)cmgit{ztR91khY8i#SWU+5jx?~BL{+re=XJkL5 zpRfRNVKus$jtIk=4L>UD{rLLVk4N+}j=4&M(-NxQCyTDMAQ6#m6vtE{v2WW^v$h47 zMMRDN%DK|YKa>7`e40~H2Q` zDMU-Nz`m?5Wts%91xvOd-_r^UfnI~rvWf@RGJJeA`JWn{?#C0x^*s*DIa2q=dCucj z)uzU_b=|GL<#npr=Sv_~l-1mZFJ!B7uOtSxZkH-CuaVrtJ5sA;K@vN@6nun3u=f1K zED+&tcb0hg54ONVq&zD2{ZTKpoX_08a3^^d0Y#?0#m%;2!Y#pfpJ3wcQ8Y(2jZ24@ zF%T2ZsjVqHlJ-YQzCSihma4%d6$jfb4Y zKgQDCJn=v8<90g6B;LuTh+BH!Xd5{%ppum4R`;}R)t zUaop>WmMf(d&?_@E^0@VtqdjWmD14{bF7Swk?!&BuOE--CA-UPaQ%l-brX}VV78_Q zOuG*MGs1Ux`2uQQxLf|fAp9+`SOoR(zw=tYrL89MtmawGqlu-AMDAvM*5%Gy;BMO9 zph;N9Xi5Gkp7$evey{)75P|?qi_%ac-!NeYa>0wiG$O26(7@HBAHoQxhcl0fcu$9& zfWZ&|WBNIRwW`14dq2Ma_2cn@7xf>0;o{>iGkf}E=^ETq>W)K#sN#CE272)o8kno?M$P($<7mzV}aq$_8Rvz;=m`1SO@r+#b4l zjeBdNgm+yD3u|TxN0q^JOY_ytrAjk={nMI4hec;j%jb}a$U~$=<)d`okK7?^E4C&6 z$0YeoyEFOS271Nig^)xWcbmqFl%pufl{Qr$`%dZL2MXM{)&!X5jt!KK%tp zV)75ou;VwYljIpZQSX{Jeh2r^D4-{m?94Q{s*Ah*|AtNxo_D^xb3ZM(`TY-hwN!pc z)}dugt6=l0NNM6&=>5C=dQ>LK_eY4IrnmCr1$&hGow9;pF5f9HO!VfRGu*#(&2PTY z&&Fo_`_noi@|~&+MPvI;bYbQCou|U)_<+9)<4_n2fteq9-9OlY{7x0z|2fsPuh&22 zN{aBzve=){&-lc+UfWHJVd z7g#KQ2h$Na;uq<oL{_Irs5T{bgA`@7x{L{bj)#F3f&|>ZoNbR;HGw*;0z7W7!}- zEX|a1J(!sW=m+*a8-C%-A8)otFCKi^m;20GWc4F0`AE6kPrfYteM{JZ+2a>7rvJ3hv4AhO?o+En< zr)Vq8^-E;-zU+=@g9khQFng~awLJ`z?E89aSjwtLVZI-^BfI~co=83Is+dbrtF3*S zTP|m=E@lY;pOJi~TfO}+!hg1;_oJb`w1stYR4y9jaaZ;o-TJ=5;qW;sqrsE|rOBXV z-hm&b`TootGy36c@7v{f22tyXQFsJ1RU&td@a?UOuEj;y+CRc$FgmzUiU6JB=!3=( zII3?(ynOnpVP6}FI?0M~&j?v~c>h5&!i7dJ^{&l!%DC$MWMHw4U~78Tr_8AEJof0uUqB6hxAcwm%_MD_#?dDRAK@q4;0AakC;&h#=JuX z6b{mx!2UoD{tVAc+3Z#lKnJ_uYiw8zLfmPjE4azrd7cgPfdfCnM})cu?+}1#i*CNE zaOGY`mRSU0bs0GkMVFv}c1ApXY(AK}R|E069nTa?L8E)ijH8`y|_=U}zusR$q8 zsT7RFP6mkhE@S1Wrc83mELjD_4*F~D{TY_Hx_^&X{_Ni2W_Pl}STc&s+^{c{(ffO1 z9jnyzq#yI{;%mwM_<);sq|Mz2-sdsSX`Cf_c~rTkdDT20U(JKy3~I(s2}UAiKohPz zLhCrSd21!<2||sr71YZ;#!$DB5RP_1yLG+ykWpWuxs^MnK(2tx^Q@xn~U5}pXNTbB)k5>?FE;=_#a+0f4*UCRq1FzNoDYca0HV-g={ziRiM1Z2(J&i1l87siy1wPi3 z-Mqs)b+{)y6+fvi6<%KC>rkBepe|;8Af`KMg*?~rBMrd z-5CLEtHy4=T1zgf^qubH172k$SMl6C+5YF~$@aciVn)A;c~qsQrSIt`HSezrZ>udT zlS-jQiya$jI_6Quz23ZRe5kKoMU~pnl`fbeBh}gxhse?3#@-Vg9(VZX9RF=nN1IfS zg0m6ulSbhD{A-_u`y6m&g+9tGs=AL}=l|%lpAq~YLVypHe|+E(9&?C%vZQJ2AUrUf zU^w4Y`kW+wWN;{N*aNRR~4 zbO!viTV##L?yR4R*jEb#RnUb!(;4_vv!ohp}GZ)M!&1LF) z)6y~1x1+k`Kl3vwU32xQHcJyb{gnway!^Tg$*OW!ehR(B;gx>fZnj|E;Pz-f??-L2 zbH(9IKERjoFp~>2M&CN^{)svPcR2fJ@Mn1DbsTf{tQ$2%INrR){gxn-)xjsZ4EPbA z2r;Ku0POpOyBpVioy9cIC2p(1(#XN9+P@7>Iii>DZHVhy$>jw{Et%sl-1kiPYX7CA z`%?V--2Q7CPnb3Fq~SWZgGH&}T3UoKR13qWW1iPe_DZ35vnTINs+ag5H#VGHxZH-s z<2d^I{wz1j@lFWeruJM4vZ8}67U|AK95rt4@?Hzhtj3p}le(z(DbFMnE-n&TNx;`? zVlROr&kyAbjUs-Fw z-ECY;EZEEB%AVvuSJL~ROO085WZ+g(temtHaDtk%x16#^OQ(xD*WhPZ4ZXgeM{_m0 zGTO%__MQwwZ-JSHn9nxX{eo8qZ77IpcNnL!u4(S$1uw^5X*~S9u43*@yk>(-noDge zoK!8MV|3(etV#oyUpXcdHGCt5g$%mkoPEOgRpuDc;C>H+buU;?D8QqR>J^r%$zk~T9Tw(H7~_?>19^<*qmW{P?81yU$u!5N#cGp$Vw%>%Xhtsu};T6 zjHL;OJWJE5B-G^Hoz~IKy(=$Q-C`zmk5>5g<5Bk16-p(T6}Kl$qnp?9N~cz_>y``O zme>=buE{Pp9Jb}xuaae$Qz=rzn!3uM$}=ACP` zX8-rRdkk28IGAQN%(b{EZywD%z}-x|bODdC1_r zG^v88TGv^@3#L;BQ$BKMx+%lRuJ|!Z4rh|p!RWjM*U@0H)`W=pq2QO+gnAg-91s<* zpTCLZU*Wmwtwq4*piVfqng#2^X!D-(+*=iE*t~D^k>UIjpCR-MsAw6*#ivIO_Vh5z zMlwPxgY|yo@DnsJVpw)7y=SW*EqHJ`0iI|a9`*3`<2!SHeZB!?dXcUyvCAiTT>Mfz zOq8q2Wkln{LVbzZIK7Vp!CR}KeKJ||unL0rP^nq6pcS~pjrOYgxC*QrZdD(pXQ>^P za(6L(*UzSYrrwNa)~LpXdLK<@@@}wN!(NVkcT#ur1wX9EFsr$z*&Mc+jjoL@(NFVcOP330p-Yq5o z#Fx6_+}V{`A@QTeBKppf>=E3ycBRULkM*9K`Dx5wB0n-ChIQ2qEvGD{SGwv)cnWaj zjHJ>Xq||8}W_fHSMOXcgrVk<&CfwPkc?6I6J`?n!Mwi-S-Qhv)W92fJgiAG+Rh2b$u>$M% z6JXT9gd6|o^Ab&3qhN2Q8}ec8#Cyb@aN3-qh8yN?Rrm0m3z_)R3T7X;GW6>1p_6m_ z*@M#p$L1FtxVnexLeuHH22Xe+I+2K5l~W7T;YaqqemoK+4cV*(zW5;iX7kD{egtn4 zkbGWLax_cW3c|iT6ssh*_^fUozLoa!d{wU~stc@KJDq%CcSsmIzV?qHPT!M8ZO&wA z@KK^GJQ}P=fxaL4iwu7xhzuNNa^I7kad`ni)g3sz?FtWuZ1~98*Zb+2>TMoNT;>#` zz=dlo=C$o!?Vs{hba(iA6#X7O7ff|KXQWe8dVJ^_(kw@ zZFotF$rfMkew}_Uv^H>4L%?*!pH+HK#po_ zX)E5%4|mP=G-k9lVCnrobNl}MxQ~-utK)wD@ft)|>Nj&NCWiBZ8)8t_VO>&aR_r1l z;lF-7(yRA3_8hR+YZsLz9`x!*1kVphuC@za)p8d(Utpaec$CNc@%^tK55bE)TkwKA z&A;oKnE`K_>m$d{5_!R+EZnbfNTpAK3xfV3*x!%uW1fc~UsBEM#aA|zz@?3wUeUm5 z9QA#aC46a8ymXOWK~?$>SrX2?=C05Ca_PoCWSoIJn{uoh!1@-IG5ss`+5m?a27t)OM_N%onOtK}dz3%tY{D`zlTbo$AP zD#5+V&|5939C*ocl(B)&%Ty{#r|T+sc&H^ZDIOKZmYoIlknd=xzNEG5V>*`7nLG3i z>s5JO@L!yk4WmNOM-g+Jg3R|_JrvkjctI*!tthU!^esQ+gjAU%ZR!PlCLUt#Osc3x>9B2)2hmmd zVi)U?HAYG_=-%sDIrQJt?V)FmRZ)#B21YvtYhx|>88+g21TKlID(aSTZ6xF)>c@v8 zu8&e8pSe}fNUYcCQ!&4hr@@1ND`kU(vOWW=ZxcoeZhQypC6qKg^2=+Vb@2ZD_J0_> z<;)6SBfvPt8i-ysc(>BLC@MvxcUdDB6$r`b4xW!OYt-mnJR6FD$ZVp=ed@R{d>t68 zKRBAkKgQ#kLUsRRe1mHpaCofdtHU}e0T;{g6>Rq+#y&{gE|^82qt}3Uw4{JXAK7~? zvfY_w>)q==WKm?pvaGfo5+XD>gxExws}sZ2Ph8Ubu5vGDnuonRZCKo-_vx<zAPfElMo;(X-5T6Im1ubpgmxHK@bb}7zb>QUyJ^{@ zw+}sj@9FWowEtuLmL(t`)E%hwlH|s^%H5>5>?bWG{|c@-_o?qkc>3hX1$6C-U`NKp z~6H1nN2BTKK>tyk0|*`sbBDF70{DwB+d>IQoIcmn$Ha4#ogn|MRWq-;U_l z5fRZU5dIlF3|!Fj{SAK0KOY}}BciU#6yG18e7uv|4D`w$8cy>Q@FIYIM1Zzl-*IV; z&5zWpjr;4XDYX#(mGL{O@%@c?=Pp_)S-m6rE{}G9yz%iNBX;I9_p1EJT%}(V*4EL? zRYTVfOCX}N!K$Q{SzF$;LTt!ncDT9)4V3eY~YZE3c9|3 zY%at1B7#XC2edTwII)o!jS0Ey1&&+OvRP3*vKD#$NX*MKyarYuA7f#qW}`7jbNxEu zCCv`n{5D`|ezbNm4|DaFrbc5aI8d{i%T|jmL;hpLkiO!E_YE6k8lWx6{xpC7MkH(z zO0N(fkDq3LWL`q{+=3UXV{_|L(yVSgG!10kx8VbeT|4`&3;ylM^Agm^*`?;7{ix6S ze18@&ZT35h(SKOm+_|?h7$W()A>mvT-d56~+)+%Z@~vLT9hh%I?;U;lQknhZUo+oK zT*7nhd2lj}>oTe6(T9o?QV3pDc}dgl7_t`!=5ZX1F_^sFk4 ztEs-Pc~>~j4c$btZ~*_@P^RpM{<$DtH{`>39gFKUGTByctp(D!ef3})(x&kZnHpuc z?>(3kjN&D;+rwX5FvKkNyKkeYyaFs>+}LT%G+Q zXO9HDRAeCL7m{K*#J8e`yJ=hnj&S`wH2u=3xpLn%SAB?-`w1VUS@bc} z95c99$!6|lRgaEkS^UsSv~7whaQYtewk9tREEx&4V80c$N+EY}H`4(QT$paI!p73L z&xS6YZ`hM3hApDR6$aL0(x(ME{AS6zN{kTDC6h;}fGibi;SZk~p8aC{g3 zS&TU~Cs5PI1#g|1q7^sT&qK{M!~68YVejCQ=2)cLx5DqB@5j@R`{~dYJ!zC}o0`n~ zQ7>OV9=Uz38nL!YZd{m6D{bel&EOfS?65Y^m#$+22dP_ZIhJbYa)KF5vv5w=xyG|{ zId?@}uy3~07;=~Jk6Qo0h)R9Fo+5YJ#ljG$FF4wQE2~eqX#{vw*87pYuOE*DMFM1L zC`NX}bC1jb3F;VZ!Fo4_@bnDTZVhMjo(E(jP~2Vl%o>!xDxTUEaN3unRtXYzSI&s8 z@FHiV%X)$59DCnUl#`Y3R8({a+*^f*Rz+)$JF606@YRcQB1XvX1y{9Wrt$^ot6lhXaeV8$0Rd#A@JmI>+q7dT_w{T}FDIE(kE|`N?4UXb)x7+i;2dfUa%0DZN6Ba7Q>WJ|k_-`E%zDgS2=~4NVK?CF(Z1G;*3ak^p(H2gSW-Sp_ zhMYMvE#9ZX5suggX;$7^mB=cJ?ZWS21qoadZ|K&%T5f95SS`>cwKSkd6F2T{kaAl1 z_7rf)od>H3ucc*CJ5#me+}@8`|N8MLnHQ{jkXBmdevNc4C72;=XTg?`cg(_zc`eDq zHe50zh?7A^+SptiR1h!SDYtZ6hurlwCaA)u7xc%5 z(EWT#@3=E@fvIBB$6VRhYo7*c|4g}-o>R(s-_s^76Z0n4TRSc7R;7LEtBlHibuL)< zOsa>Hy{U731GZhhrV}MCPZpfoam4z3!KKL^=_~hZPk4|{a}}dD7O!C*UG8P>3_pXB zm|{*;>)xeRJZ-8kX$-D~YhfM@Uv0q1X7h1sSe(K|&YR4GU2~Xm(E{PqmNQ$HCTY8D zSp7oXt&6cI4-Rh|p0XL8*F7g%+8VH&YN;3ulNDaAHQ()B|?!70YbqyX!x#i^a&B+HiZ4ZM#!$*YA z2u^zNLOcX`MxcfD{+ACt!aKq_%w-c_V5$l0R(!4Jw%SsHVaGRvKY}ARb31sv^^@~4 z%vU~tetY02OBty`l<_gOKi78}yXF&&GLj8!vP^F3=>?{_zBCWf(#dZJv>`(QG2@=} zdaBk&bA2@(Q5&!fHJItvPuoNeEYPW2)Rlc#wuuol`E7Qr$Sc05CWB~Ry1u;zrkRhT`}*-n{Hv7+ zXT3q>!kMktRs<@n%5o{y@MkD<%PaL09GTe>EEO2xk4wPUKN@MouZs%O$Yfa?J8Hvy z-0!)~GBUyCO$OSYnP61Woa9k@^!imhJQ|rZtme`h$Ii=zSz3iVUB4j**Mv1XH9dX| z&qZCU?#zgyaAz_izEDX$>h}F8KABNuV^hK8gYRlw(J1|x=sCHRp?*-8EKMc&ejni; zw6xso16w#;XQd^pef#QkX_IJxQGl>tcSr2y#C(ACg9Bfz61A`GqrQ4@jwG$tlEXjK z#-`|H0fYZGcV6_~RrXPT@R5ZBOXA+lwFK({D|0XUUfI(;SGcF;TU#2N)xYL|D{X`1 zkGf#L(8(-ag|(ZuezpD}{@in9uaEUHGXiZVHChtUmOzBUOcT`pepJlYk4J7_U9V`0 zIsfI2>Z`#VU<{tNac|mxp?3&Wlw#EsiVp(oITLuZMkKPLtnNkk?aXc!*_raM16Y&H zX#15!T4PnU#U>qrx*>}?z0H{h-BcZ$WrWAw*WuD_a8|3^l$_Ofq-!@dlsfeJs_iPR zZ^*mUcdE%HX0jQG;2L13mBLY6a0DN22(a3%ymNu)%uDtDa4H!Htfg+g_IZt9mM0 z&aU_y11J7n9c5w4raK>Mhdbf%){5K-7|dE}nR^In^1rruA=IPVuKSIbz`TvOF|8^Z z@Fvmm8^Awg2_wQ9Lgm921sHrMIvR5_85Un8m!`3Zk*YUgXp4!a2%>ys^d$ zB8fBDR)%%sX=T$cD(c3o<&Jo7P7aOz?pT|Zp;*V)rO%%K=+`fW za$W};wYphK<4e(&iig|jjyl_m3LHB{=+%_GOCma&HLYpwP2Thrg<9KQd3GLm#BPDv z-xco-)4qrN7lo&P;NrT)L7^xVP+bDBOFcM#y_gcr5 zvo>&pt$!V=BX)YIrq2aR(2Z~<*?m78NMndVUranegl3}UC^N6&k z(N;hM%wWK(-{XG5Z#}7;uo9Us6*8nkcTRqDXA;GG-09bv4d~TGYxI#ANYX7(P4Cvp ze>XT8WPzcas}dRz327~=Yzw9ZS+o?9 z!#BxV^9CQrr9F5R!gD0vK$JTcL=a~f2MeO*4+((=%2f!ynsM2|%A6l>Oba6vD#o~z zK&lusI2_I&8`(=_A9d3AZcjb&G=G+bMG-Gz>y@TA0_Md%wZHM?sya^ju*>OiL-J)dJ-(buU9w(Nva=r9aRkNfZI%V zr4_KKMm^@PhlWBR4P*Gp!F>Gi-a8+>@!BgNJ^tV)AAbJ9>sQJKiVN0MOH}}JdHkgi zH~BR59Z5E4Ks9>{Wb!T`@w1p)N1oDw4r4UbO<+d4?ao1o%m-*Ha3qi_v8#4x5(oY+ z4XFEd^%4`Lbzo6x3UgO?y=*CJz;~mPW_SBF@tCuIKfS^DSu{>f#pNciiO_-3Kia`V zHb1E{{)4`N!~==<9a?M~4gkW+=kSmV7x=&eAp?-j2Kjx_H^WG3UnD8_C?pg@VEluUF5J3B>i`F2y|Qd+!xV@+EI_Bxh`|=_8Br!U5D*kXmsuBX!_Vc( z1>8~7fc?)_jWOREu(Dztc;1oa8gmCQk!@2Gw7>7#&PPakE0LV5v7y{~2~%xh=4(GlT1Texv=h zP@iH$$Ub&h%xd1Pdz=N)G)c;y^W^bZSl3%KMsT&w3w#5Z5!>t1YgCt3c5g(Um#Kk{ z+R^|@skcZbIl)~fu)1f-9xMgiZ3lNc+zmX$E@Zd%mJln=IJDQpEPk}V10M;=m zxHJ)6k!!3ok%cutx3_#SCS7V1-3G?3#;E6XX1((>e;Z=;l#KgW&uwSyA>J3}uCRa|!G;N3 zqcC^-;C#%`C|LSY{k*cb{dqf{(d)z9NZCJV4VXuoU)DFAG)x6d#Po@;1 z#(hfkdz2`xJ8P4Ix(nO{iOuB%2$eF_i6nDX!~49Q$@OyFwV5_xDF*hoIKlvEV?w>f zxrS^>?>FNlNxJd(?;iobsLLB?#=h6;q}4W-1QstSP-4^_6BEp2jyrl*)Y{+6SQu%e zH>6RA8T77-a3_C4C}|Vw+<=+2z8=A?COQu~CI(9%TCL~wG9KOBv4ZAF)su4o?DKMKI zO6iXCImx9m(MJ3@2Mgo7^OCGeD%P2b2TV_P%H}wHROe5w^zBGIpc1Xg;)8R`%8Z%6 z`~x->;+@TID0Am`ZuR#aPHK+Fc7pw|j%TwLFk(%ys{$+tTK3tnhMNv|v+`itC5sX3$RLIWhUX#&dS}F@xP=fIpJ{d^Y;R9@B>m>dx&ze~`lzH~9LdY>S(rO}hnnvNY;WsPZhgR< zCD2h_IQjWvM)FPpm)_+|gML)7baiBNEy5;bZkMY6HagT)&0*pV4com<8g#CIC+RFL zYZ2~WBPI5@*f@}()12mC^0EH*T1$;Z5^ftLlcgg!fQfaj;DfL;e`+}@r);ea* zta~Rr5ofWPulq2^>^ZiY4PLl#;3N(1cDc%Olg%rqBQlTD-Q*o2bSi%z_Iuy&66S!r?q5yZUKIh7_#|x*)V4f z-(;i%_s*yD?gku&RU@B7cbYGhr0VRiwoV0hd+$*#*I#%n_;aY%+t|u@iXuwqhue`q z`x7yd=Eb(Dyf?=^H=viftmWE|$-Mq0{R8x}~*_|5p11SCGesCEmbQf)aU=^Q_ZP?5wue<{sn?IxESd;V#-3L2s~#87fXDxcN<`Y zbPBF6P)a2BC#a_qw+5dTJwZf&R_wJR`?q*mkwN+eaTuXu-kh$u4Rnn z#E~LvqA8A!mRH#u_TpV-0cL7`Y4}N{n)&;MoF+C8BHiaGfQev|`Z<@>bNjTJQK#P2 zX;!kkAeuENxRW0oYXc)e0(%!p3wlPy$ok>6MJ_DC+pY_;$eT#cU>RXhsobZZvwOq0 zp`Wvjw(tMO`$!jIL!Lv0i!;xlYzLksrToI10D^<~rp5g31S|iZiEQ5VDz`kF5hI{D zN%oWXsDBC@|64A8zhn#+x2=vWYl*F5wqz4|Zmtql-BOd6ChAz)vF3=cvjehmIQt!C z>%LYY%j5g}O99Rp$%O-K*5|e`Xc`D$4)jq2k)luqtf7pMPRypF2N)UE%-l(qGu6uf6lh zYwzuITbujHRam}0SqCvwcNcIKYt+-1PGhSF7;vy;_6F~ENI3iBK7>p)PrZ^2*c?ev zu^lH!&%|pPIu&iV$hsC3y`hjRzV zI2-v>YfSfu$;GZ+q8(%u)ZF$)ugk=+)h*jc?663Z!-j!6H0_Z!8n;epG?6Tg=>kPL zLlQt>q@9x;L5SX4(Kjb<_6x2}X(Ief4_poho@%iF`EcXe+QrgnAVeeIs@*2s# zb|u&L@JN=Gq0BvmZ$0m1S;aU?=L08Yew_c_r_Ak2xO-H+L+x+BbAJ0?jm~M()Z@)(Q>C=xtf8~=me(hLIyEl$1 z4Ac$pj2M1B$4vi&#|#Yq|1tB|j2SUT8r+UW4+q~lCkII^sbbB}dMj9w1IUzKa8P3z zdi#KVmiFU@O=WbSY>L;%u7#6#%MJ{=1acOtwZIqIPz&}V{h$*3K6&mJ_ER6uyCr2( zE;nC-T8Or3Mv^Xen$cNvqzVZ`{sgo(N$$LwOs`!m;3umPL*_0v%X?1@QOD&pn zPQ_rQ$;Nt?DrdXWv@Doq*!2(kfJ?M7T6U~C?0whoBjOw%Tox|3-jlBddXPtto>sAO zD1WbVQe%_R+0lf#$yH=npNnWOZg*@msXAd;j8NKKwdJIo>^)DGwH(hm#o7BnqZN*q zMl^N_O0%Qz=E$XJks+^k1;K$JXHLlV*YmReFPm`rbe#J<-}!x_7Mo;HG|I3S&J?xw zM!3Xk9kr&GImu^D4n?cuO!$c^@{rX7Gps+?ITpugS7Xe6X1Ap1*dfbh&J6o&b8fW_ z-{R-U?2bt3EL%xclKeQV2Aije*GoG>;wkuA)@H6Tdn~lT3|mTL?2c?VUm!l&n<9tG zo7zZ<1vk>dWnfEcrNlTy`x?d#BBW?@P-?@Fz#6Pgb!q3ey4c7_ys%&dOxFe}IrmP$ z!G&{KxUZqKo~OF7w4QFGbUvs2bMdq>h`w4@d5#%6SM_F|GTZI7-)7$5pGiI|O46v!c$-=k895JJYAn)SkRQeWoITXAO!v+HIDiYc~c98~({1^p32ELBZ^d z&9Wo2j@#_STfr9J@=K;%Xi4_WD6aAxE9?R<7=7ih3NVr9SpRRUe6Cg&ufUxh4KG8X zu(RY~^)?m9BB?1Oulx~{vxP(Q9342?Uxbur_+=RIXE2z^O2bhvEw5n8XT@Sxh>H#YgHY zQR5`nj%1CME5hyI6mSfvm~{$@4N0%P$dy#cc58AKuyDwF+iIu0&7iSwGA#2Oip=aa z98NFSB!1JeQ0{i`(VKkgC7^so_KK#Q=vtY@J9?ZVe&`yz|!EpFRE{ z20~?D@a49ih5F;APHOCeaVzjUlzlFjmAD<=t06dESSq~HU1L|Kt=r)TP!Sn`3d$Gz z;0^_xxxck}VFDMu&MGkKcKe?;K0kM2=4-)bY50As46FQ{!SID=qXX04bhOR(fj( zT-Xy&Ch73jdrZ55$EJ4o8FU9{vT_(*N-bYV`p;@?qr3Rfi ztL5#Wr!1@+6Fv^-or^Bbiu#GpVo_$hk*N%qX_w-!b-B;frcrW$2>)5*9DCxWTAA4*4=k+(<{FHZ> zn$Qcdfp-=k0ECyZ^LRPt{@`VKN+Fyh!sxq2ALWte6a4?vFV+XY0Z>Z=1QY-O00;nT zf2mgA@sE$Dr2qiL-vIz30001Cb8}^Mb1!ptXD?%KX>MO>V{dMAFJftDFJy0LWiE4e zXRMvcjx;+Fh4(x~3)VF0*+zf_35Z3pWx)py<|_Rrt`;%~qC_E+<99AAC=%`boZ>)-tCLjU;fFaP6@5fQzQfuQqkGIk1TN?Fv8`FQ}TS`-T zdpVRh&-XqAn$qfVyz9~Dde6#vC{tUqyKWkR~QS`?#Pvz=wvt*i|-|9M) zloV^`^>?_oBS@c&{y=O04e;QEl(7D{q_c z8ran|uAr~uYA(e#>Z z*1M@)Ph-!)O_;F)tMgOkyPBJX`|;kJ@-qlPO@Yu-V=J&~L~p|5{cvf`m>S=bvdt*n zl&@(OF6US4ny^}R%)m#x87IH33#+_-&(5#GBL5hoKjSFBO0>3XrpFB&a|Ow z5xvo>Q>*p90rpeP*5EolYf^5)jONa-;(A1KeJ>OrP%v1NY@%Fxi#QPF7t_0-mU0SC^N*(D$*=RYD63{`g0&Wuy{J`-)@oXnJufZ9M6zbD z3B!)b-o-DKo~ow7t*vfNg3Hv?y<16aRb0ib?HS%U8Cb?h{2Zd1y$jRYX5y#XWAOUw zB{^GBr+I(T3sab z#Si6Ytq3#N>V>IzbYb|5vR93&s;7^$?=_(09E@XRbGe}|9kf+*P^wZhGpW+7XOcD1 zY}0)Wrlv13u~b-)T8Qb*53gr+vJ_!$d(dgE1lQZ6B);bV_7{vBg zU@zhY3?(yOI!oSynF*n^#44ot)SL>l?^G4nA8K}~UR;71R#Mc6Ix|@Hz7-9DxHGvM z9HOvBma`+M2y4DP(G3^(6}gL(crdF-Mfoc%!*sb|xVbR*kcM^=y^cp^w6rZNH;c}c5nDk%)Y-+`)eCA_ ztRe<0g$U!;O%+Gxu+S`mNbJg*GtY^BUf#9!PuEDYMGx}_719VGBIu85(EzFskpM2H z9!Qqq_hqSzmDZQaYwgjB3R-~_rc%?o@dO<=cD_X1hsSB*tX7bEh%K2vL&5UEH zzJYX?+U@ybTUH-Mpw=MZW?7w62ZY5M1R>=^eHV45glEH zn$*Uow$3uZll9*8Qc+TjbWOr)-N8&HEf$qu8k(4?LG}GWb*RGDyQI?=4JGBX`rd^h zoWe{mabfSO)pVt`+r8-)S`U}%Nt?2nnToRoNL$u)vFGNFn#CTj2V{kKrgSFmD51CJ zkO@-b?P_)wRAZ&Un5flhQK0q}7hjez+=nQAR0|wZm10daVb;Vbv4jK>0ASqa*bQlj z+EDiNaxhD#vLM~KF(5j)(BWiFfJPZyEh?faE>M2tc30%0F50cI+C!$Rw`=N3YLSYcma9Xksw#|Bbwgt#;@YlcnE z`|kQ-sn-u*-=>{(+<*DS&;I(GpZ(=8Kl}H$zuFFwsErK2{Qd8L`{%#@^6lsUA}{5C zu5_VM;`-^@R^Vc5~QVZ^Oit)Yvy}Vq-&wu-upa1@<;W((_`s**>{_4>4Ds<-c zgW8{s8)SsdG7>0}(;)tN`h|?A|FX!C^F6tYNac@nC-S%d|G>Kn{c)AN5xgo~a%KQPi0(a7Lze z;r*Of;R{F20X}Nng`Zx3f!(`nNtAo<{PWlU^7r3sx%~1Uzx?B$e(?(ttLXpbH;;m( z2-~hub6Pn&YBZ|n;VGzxhc$O|v?9sH1~@&`G3G$%kkVhQaI*`F=jknH1 zI|L8lDG5zA0<-5ap>G4l6s)gcR*}jm#xDU5M&2?|99h|vMU{b@q#$rpZD6QkoNb9g zli#KT_K8TwURH|sm8zzhQ)!=Why&A!Rb@Q3m7+>i&1$yl#ZGrqt5BQVs-{+{XOfHD z=&aq3KCK1T+Y?x$mcSY>Nwthf-XoGV1W0NgFzt;D82pkELb&ySVoVUuk-a806WCoW zCThe?DSON#*k-!tY5nPss|7rgljr#bzcn>Vn}l%8lcaJrTDYqEsv$+6Ab%}xMyFyr z%ODJVn*SjtHi7H~3i%LsTtZB-tD zv`0YgJ*^Gz)Ty?86h?Gb{(I%@$RDq^x_P@dENj@$-Dpe`qLiyc@whr$Y2&SVRJ>eH zk5UZ7%m`~O->>>px$*k$*LN7}sn(HS zIHNnL;gO8yGMTvzQOi$pdpAycqgjAntamah=sCejlSf5uWfTus4C$Iso1~U=i+gHJ zpT@lYQM%eZaJw%&LXrEh$Q4YTidYMX1butOR# z6fn&X?MyLbN|il-RJOO)(wcCH2o1uip1LF!pq==R(J3^w8Dm-a(Z~;{T*jE&JvP~6 ziSJb9aTI#2i{_QFy<>Y7eCr_1C6mx?NM7y(hJs$)!)7=UfrXbx4!`4k&e|& zenfz7T9&hfQHJVX@$Iqx|0AUh!6-^z9N!Vl`^S0mc-_o~djZT#;j zZ8fMxj{+v6u=Y>CA2~`Z0TLa~pLt(rrMN$+yi3$K*q(x#8Xj!eP-oEZn|Gg zWC>ol^oL1b%5+edg-G>3+Bcm(`T5@dV0Y=>zccKHyZ=e~ai6RhA0-IuwK>L59n<(u zwJ*lk)(*^8?ho6y@*{+}y_Nwa)Et}fwFLHj&wkDKk7E8~JH7^@irmf@td3w7Sr>~@ zN1#gcJ)ESPNNr6X82nR~t(x0~q3Q+RUMm0pkTTvny$8z+Z0R=X`T;&z$hTS1f9!Te z^uDdE7KbNNOi=mhVNg27*U>|^oz-HUo(sNR*UfVI-rD?YzSZ!>CV zMTQDdhLgp{%emm*30#w~<^@^D7)!eKDJ|A$Z7=7Xnq)U#dBqMOiGY|)_YV76&mx!DlX#d%|ll3n+hI#svCWk*RI zqIpT7j#5aZFUvSsMD6OY1on_;qN)%Le#xk;|BsXGBRJryAV714OmQ}}mV5fb7CfE!_1{i`ppy~R2 zf@-Iw7kUK)?GG5j)SCzH8z_j+*`ngb{72=61e7>gB8x|YB9P6@r=VoW!N?NVP1g9t&MbR${TN-LrZ2!&= zZeF=NReyV#KK^|^|4x`kbm#KgG{12$lgf+u=3qCZ4|EB$g5}IsJ-3j$lzCQ~7em`u z=sT1>Gy%`(hPvS}MLp|HuVGY!8W(tNT#OMfR|HzgHOY+j?lp)aEv(!oNfauK68d?< z4PqIwHN_5y0aM(BozGhuLgLNLM%7*1=9&3CFtqZ6w7&mIhK47lVg%LrYKgsI%h%9! z${UL4l1*Wb5Rg;dsRw@QHN|j59b4$jN?8b;CWUGY@(67mQYx2v?wQbc+&5Vro zDvW)1#N79#{F1O8_NF==9pkCTEv=qolOZ(`1*MME5D!>YPG8qjme2qg9X5MNSO5Zts)#eNsZ3pwjU0NhStqIO z!UR-S`(XW?*i6N4^ajJ)y{p>$cai7|{L!Z1hvkufFu!+va(PU|^Qnef8+(S@n?l2I zBwk{xn}m|sEs)jhUWr)PEo0|nhXNz%3Tws`>}Ll>CVxvfzU}U)m|^c~2iXf6d(7X=VSkWvcehtM5X*KOD642ND?Wh{U31gB>oX?s^$uqoX~q*z9l)cOUL4 z*J>mm6|O2=oIH`pg*|tv?z#KXp2`O@X+QYE`B^eq-O93bNV_ebv6_x4$bM_hT*x$| z3L@elISiVX(P{8EARkf`7#%mmJN>Wl#Ea`dl{qdmfbR zd61;~GA|E$bN~MLKD&jsIn3K@uJlllcYzD~u<Ahg`9< zX2A%AFYuDdh8R*^L1v5?%??6_HaZrmT56rTc@=fTPpPbL)zLy7$*SK`6`1NR+*k)* z1n;vw>H(g}Eyl$dLqIrO9Y_P)!@a7?K{lLiHZ0s!%EBF95HQ?=mwRX0@mH_-e8Jx8 zCod~3A;T-gXeOKOqz4*@pum=$LOV)8$iq-wu%>#radb&^Qp7>sGu{Ggkq~Iyhb1ot zGL>zP8Mna}xT9N|H1;bxZ@_{COK3O_qat?-!&HND&zqx$JD3pYt=8lwtT8LBnL~5y z^4;-M)1v*RuzY(YxF;fR=l8~UKS#vkjJu8DF?hiaJgN{P=5kK^=-rU1BB!9@k-HT{ z`&}FdEjYjgV;LuKI5L!-(;`l{NIQ_zg|Kv}H1y;ZBtEI8tSv;=uH@#hqX}g=rnkIe z8OI>oYem%?@`?6}9gEb%wzkF&CaS`YT!-x0(9Rbe7SBv}j!RgyiUTuoLSb9R16#=; zlF+mg`3}p>RHs28{~Z3E2*OaI!hWNt87YLnVi7vRkM6Y~J%_omu)s;bufWsTs#eku zQX|2h65$mX*4Qnt?)pr8NVgG*iXqEKa)PC>yZDFcbY}@(oX1k(C$~4?Gf27Me{5>ohHW z;uOGA90ZY+SbELT7Uv7Ly0Mxu?%_ww{lRbqRz>om%!R&1d4fShTbk5wFB#$@`?R~4kdS>=C%JwSINKBHc!8`4 zsJz=#D;ll62Ecvt5Mimhx%k+H3HRL1RgCK5P(pMs#W_eVQNJ#Hb8C20HD==1)WgF` zWNiw=*W6q^1pm;96>#7%^<%H?iZ))hcRPc3>|Vpw6zLgG>EjH+`0d@+Gkaf5VqIYi zGU2w)^a|5Y@Cb*+WCL*i;M@yJj`U&HT6X#3_lg(B=|D`8`$U`Ro*)D`Wl=FO&E1C= zCs?mH?y)E8cQyY7+ei@@4xV6rDP%hh&l(Y+Y#~Fp}@{Fi?K7Kk(GwCAG@ zFz570CkhrE(fJ?gedpKad&i{DoxWMKeU0IRqB+t+EaRv(X$yfZVh+t;AtoSR_LJ=; zu%o%-_rkN#saG5^|HJzX7B!wKKlU?Xj-#>g=^a*@0!9e(z-QuWy0NC-*;`~^QQ8(< zA3)era(~EMZTTdTtw>KC4ZHu;=@V}8dya8p)w*1}#@YExY>B-^J&u3`6K5LrPo@z& zMPzR=t2Jg*xxi!R)|1+Oyvj|Fbb?g;wj(y&RU&_xArD}4YaTeat|9{O0X(v~ee~99 z{XRllLT<>W(mk??-h)@<*P<|YCnC)odyV?-0QN>6`Ny#dp#<(QfjyyKgjX;*?Tkg( zi^IiZ(RD0Vynn?aof;q7V|^acF%FAl4txcVvT0RM=t!olIN2H7dc%oi4wcCjno-1w zw?eW{(0TtTX1K7z+sl6PAX*>i_hmmv|8wQNV_M{o+Rl8EE8}G z(||@hJDq%QGJ2>Kl`T|;a~wNB6Z@VPz;H|qxNGpi8a&c7TBfD^JnCh_lk`HkpQ@|O z!3$(`A{di{?eehcgr~5Qr4dd1)outuZnpqaK&-!+15TfJx{alh*v(Y3pb-@~TE!k1 z*ufTctL@|VJVp;f(GO+8{A9R*Oiy85Lk+LiDnz@2%(O;wbwaF+70D|+2(c1IX;60j zyOc&#B>Pg!8(2^EjEOj$Zrj{E)&qvpBDxqiHpe5d2RV$@akDbVMNn`>*j8@V{HXh` zf%=MX)1gJlmRa!&VN0d4!xzmA#-2TXMKh(ohhaA#gmwPJV^GSE^gE*8?RjjTG|KbS zXPskYdSF)8AH-aXXHz}!ptXKJ(wTc6;8S=0pp5g zRys0=FrpB$7s}yM@zx?gB486n=Gy@Q#|S*YSVe0Vj)S9|zCL&#Yr;Y2KF2JKXXFbk zMS=a!hA(8zn@o{A1dkVY$);?lc5heB(T^Yr*-S7V>~J(4)Emmg;cey7Bo5S4$A=Nw z^D>?fizJ`EE9Rx8LO ztQm>8=qr1$ljaR-(!Hti)^NPttBP~A%1flHP1UkKMZ5vYIERVOKti&Fid4W{#qv_i z^>_4W_U+i3Dgss>iTHXHCr>phJQN}&VdB8s-N~?UY@Sa@Q@-u*Og(EHd&7tQ+Y$dW zpdu>| z3Xa^klH~2vdUxQh*-fc|zz}bDt`(Or=wUc)^IYj#kBht#}HoDml&pdq+gXe9o z6cjO87wF~WwV71wLQTEzSb}P4M5{ZhD&rnace)KZVjs_m!%Bny0#u!x0$fV|bYTa1O z&J3=Sn}~*MvF&Y37)>?v%E%m1`O3|WBGt*#!mJ7|@-;NMn90SXpT2LR@AvjWmitKp zDro8w2tqsApsF)(XH3ULyqmRx5G8nC`1B%}^TOLLa1Yvvu*bxZvCzp+ykm@gb*s&|a2)f^&A2+9j?xhy z<^qegl8$?dV9h{1&TnK3l^?ZdD6xQ@83M#y^iT32H>V}j z#}eOv!9g!#Ji!3Vj?4+U#l*L9{7ns3| zKrA(T%XDD2MMOZ;{oocU2xD&uW7ApP#|Ut>=L?fRF*P6QIQZHF6K6T)hgE1!!{A-% zH~=ZnRJ~x&jW(_pgef)f8B^X}%bM4{xe+ZQxUHi~TtaSHqTkl+lize8h=f>zpvU$w zEuQ2WT8X2g-TmcW0f!}t7AJ8K4r2pXh7b{W)5A`-YVuJ z4&a(nszrNI!WKPz>EdSJBRkorown$)EP70GZ+3`l@E*iz0r_K59$T5YJ+7BWweNfR zvn$ZOFJp3q_~CDHpr*gAi-~(7kZ*HyRlb^7a@Uasaj$`m0!+Fv4nlC5m`w*Vu`v<& z_=MS7j2+izTU1zlvu#rcOOkZZKD=&1I7<+erh0gL|bN4AA6!|f27 zxr4-MIV`H})(zppz<})$?%P0|b3_ZU239r;n6@5lBcU>_wKAB=SU|;sE;K5gV*&fUza9Z2riS8{k3zw-x z!~kl@?PCd)pX{aZw9Zodq`$Izw^|-8tPd}k8{fPw#a*8oK9u6L_WdqRYsf+U;eElp z+YpvLXu?`kj(%C->HMok{l4LAY1kI(8Q51rPTxpZ0ym6eqR_xx73Zx$SF27H{XRy zawjA=~N|W&7}uGzjo=b|^HzVx6zUAVzT}r=2etS?R)B5#V%Bx9c2UoLrx06`U?S`zuy{ zl>dNhhULfW%CVf_D|>j_lLL#v3=3l3<;hjKeS3;qBYqKa0@{-T*QNA0(Eous1GMox z1+UJCW~f~+_1rKCf>+F8U(PK$G^Gq?4uO@*HnaT#pI~{1z}SM6j*Z5b%yB0Sc+WH; zrA_(ucF*Jr9dm$BZD z&6hDYhUAdRuJj(NP`&VQdj^A_0?*Ja#)d15;##BEUStbw&3pjREThng}{|=2l?4KD!AFc0jmUsnT0^c@b(rrUYRuY;Oxm^ z^|`fdu`2CH@!LI^;e3eb9-J;S_LFL(q%g)ESC5HY+4l*zs#arWz&-EkSl(F}*_zkE z6!D9p$6S$=mHjIAGwGW4MczOc+=JAAY813vuvpWyOJ=AC=2kf>M+(N%`}IeVBao zeRy2HIhSuO-rpcKiQv9?$@Q~_FhK0|OwipcKEF)2+D7?}*B(xSbtOJvcyRwFn~Bh{w0y<*Bwq=eIb z)1b;K+g_@@x%rLqYP0his%VgDye>KaAoSJsh23wg zE1i(sSA2evj-;5PxlElyMm!ptNelh^{5Xd9@T>3rQpxbl&13N>;Ah{HS>xgdg>Enz zAJ{>J#%NLE;jHbeJUknJ_T2ktw*kFHeaJY4d8`Vs<@p|qKF^=LNID7YT zR7>D+CFJ|O#mFEzm~On4lRhFHjl%DjB6S7)(fvKoqarhZv~R?n1lL_3x~s?5Ba8eS zAGDt{-q~~*GsT^>#$5@*WiL|;+vf|05_WqqtW9AixP$Q@h;r7J%zX0=l(oy_g%Koh zEaK!mJOr5Eg6>dbxQ~@rX)#y2>Q8j{Bfn#t9@DicUG=TN z;{%_%as=9C_28eHL$VJHFG0eG_qBdWUaLF@^kL0|XDRhyRZHW`l=$BS^9yjWHqe02G{wSMxXS33N~jD3rubY9<` zAh>q;^1eou2w3Cp+(_i%jgFH{?YjT7SD%z(wa$H!4%dbH6c)8R@}uM3ac#@VzN_o9 zH`kqfMzT=zu{}Zi(K}?|x(}s>v96pz6A4j+HZQXwbA2$9M|s8Pm+6=w{e6S$27@r+ zmV5pq4hc=uyl}{i89!_TM}D+o8{%>M?ZXmrIK0x@?Or>!G=mD1rl)R+$D!Snx1ujh zShA4bO~0`O#VrCB)$~}&n2kqxY%i()m`xaqdD&lNQGRT%b$<;<+3k?0F)evyYJuS1dp7XvqC)>mr z=Y9|aT4;FtnjY_oEe>Oaht}?E%a|vD7;pSiW}ML(xq7&e-g;qhZWeaUj>7dO)7FSx}JH-`8}@%Q7Rn(O=J)8}BN?bxD%8T}`ETHG=}_en0~w%7?3Y-3FR z;rpF{C9-SJ3BybfAEKwwzGj~?AYu%Zw_)Tkj!kxLBa&UmY?7GVzzcoNn`kz)T8~l@ zFX~V^E9!dhIqXO`bSt5UuqUA~Tkoy$s^wF>sM~rK`Mtjr1RM4u6fMu4&x4gXPNz}< zIlp9i*_q?`i}Xsi#0xvXxt{#Hj)z2V^-bx z{ZqU#g5#7u(sy8zevb5p3>pW8jd#!p>iOLD3Fh5RvV)D4o<4^!4coIyo9Yd zgE8xF(_k~Va$<2J-t!felZ-AzQ~EB;-pwjF_Q4gE^Rg`989R$ zWw=jWW3}UVtQ_9K+x}f*-}RZrEh~MAZ`<`4@!sCZQPSf=YspA2*q%$WhnK>K!m-Kh zTS7R_#45$=U$-(?V#DA-Q5-6-!HB$-o#<`}Y0T6HtZ(c_d1kcbH zCau1O6T&AWVfDhf2F5)A#7-=@B9^Q&I1}u<^M&!gfw`N{*w1|U+AI83> z=mVo2EB^I>o3HZ_E>Ye-pKXU( z(cUm*;Hloh7s~Ea&hfgiV=##{N7yF?_mvui5^*qaLq1XCkbzjAan)9QcF7o4#X_ok zolarrW3Kr<@Yp9d*);kYe(tz7AqL6k|MtBDX^S?-DEzkp&a=I{3n{1Xl6L-Z$+Z>mfTF!`U~{!Xd(0yJ0iL|L(@%Q#E$m9GDwi z(|tt+x!)-fpBFx#U~mOB>8cD|qNn~aFWFP{%tq-axKc2YhyW6VhpebPOyI)1c8A&+ z@B1}4Axi#zNSRBA(;i>V=S9UQE@;O*6((^WR zc2}PxKTD1Mk6z_i5`B`s>%~Y$`H6WEy!87?x`4ycU0EDq_IG$+@%dlU_r))R4_RI7 zm*+J9E^xl>wkl5FjYWCmIre(?&3C8$LE+lRhPmzRCbp(@aF3(RaoQHVXDl?6L%UYK>r;$r ze{wCH?>HgBXfUCtg`67DAJn}V9e6WduB)?dwfE1yHWtx1du&AK9wP*v*rate34_j@KBK^tZzrO17@I^V<)208s z7#dE@9c~vI&4`PHd>=Hp;mx_r_syYzaZ&NH?^20F7c0h>MM8d@R@Rtmgzq^#35>!O z)-5YszHGy=tVq7TU6?Z%>Ii%kSLbUMR4~SW-0fcjv~LQrG4$%}k9Oyuf=0jFzxTM)Ys$sOx!pnCz%m%F?UCG=NU>LZzTjwXgz%f}n8`@@ZE$pVgjs=4+{8@o zbT+|g&&n|j)5dVil^&+O{JW_-2u9!J-r{m>Rw=%o&TE7{Q_3G)X~*8v2^2u{dNFr9 zUn!=d1N|=wFcjqAeNdtEluMC3{z9H@qK)v7aQnYx;d`p_T!ne76C6V;p0# z0&}>ow)PUABGwPiUmV)HFKQ<}zUvYPyRMbyaA@D27b~g9c^Ve7&r$=K&R2ZC;O&gh zK8F?ZB{5q2PTCAV>HCtu+=IhH{-l?6$)(}z?bqEwD9sVgov(0bnvYrO1)g7|R`wp? zzJkwIJy#ZeWzVKDSaGh4o;>!@@@BpJ3c&9C-HlQ2_NAd=*GuuGq(Fs)GC^6_y-J*j8+&u?ulV-3b3TYT>g#8H1r||qeBkPkKlKIs zLo;^KUx6sBVC^M1^ ztiuP}!HcMgSByK;mI!}rzYE6|=cI33;av30_shKW^kX=`JLjjrF*?o3Fx2-}?X%A0g{2ay>g$bb;Dt{cD+B3OPhrmE z1%@L(!-v!!5ObiBEK|-b+BF_pp2Oh_k-QsL=@x3msyJPQsVrLRZx<{~5xYJ#cwG7y&)B9upoxU^@FFB*M`&o9&2$$OlCEMS&77!`kL zehAbDM(DP3UnfvC7_k31f7(yA++YbrfV!(;qliQ42YtYHeBfrOf$M=^Y+oBw;>M5i z1wOw>N0AynlS(u9Ej7Da3g;)5&if-SldNRK(YSC+8ZKDHm@RvkDQz0$k~2<{@ojS9 z%&kC5-eaq{dHeaFXjZpf>iN7te!w>qK6^P&C4Bt)#MJo=_3VyXjc-HoG|5L(xanrQ z6575W=>s-0W2yGjw7_#1`#_qXhcQn07w9tyVs3`|&RI-p8GaUzhMAVKMQ)^=C_L)U z<%vd8yJvO`A}v8q1lynQQhnc>q1n)LUzs(0=RUAblJSo2iwv4!8_um#z_@~lV+TOT zh3c7|I((|xuk;N$0-{b+@+1b>4WY2E!E>5?1lW6$ldxPXh zemCqqdklk(f>cf|PG;oK7wp;&@Y*vob_ha6sWOX9`@70MWRmfG8q4Tyyv$ZI#^Ohq z>c@&Y#s|aoiaH{93Z{bs;KU=A8!YJ+D>u>UaWl>$dlL+Cv>jjqAIRRklflhl2J!8j z_z-;FulC?!LyeXeHO1d*gn6oV^Hc)N;yGEi2v+O~s0jWL6*Mv9yN%${cR;8-A2IOUjoe>zq9i$BTWSZ%Tse;fx6D0cJJ z0K{RjNQKZQI6#f!K7`{w(GI_^H(#YQilFy~8yy&jqre>7oOg9Qrw*V1zT`*n1L_v@CnKlC(XyspO&{ozImwB9ZP{>3+Qi;#YqLn z$`L+H@O*sb!Z?F{0rM+9zf9l38N(lF1{1X`%{t%ep>8to@Tm*w| z1zB-Sq59CkDYAD*SG`~l#f9_6?%m|Xfvd;fA-umU11$(Tdd=A#eK&AaPFLR?*<&Tw zon`+LM%dUGVS{z!>a`r9Pdf>&{F^=l+eRz;;(aIBoFW~2ChfC|kPr{1uRVyf1aavI zR?E28FqA(hxAY}Ezf4V*^Vsj>7T_7t@TyB~5$=JxU(mko=C(p?ukaS1h$89@W4AFA zdZ)n`9ABI35rR49bvOL*F*q_G5odPX%l^ji0J86_X&KKj`My4`6Li^W=&*(;tlXFmTzG$^zVBqH zYWem{w-e!(tHzkP5|QGhBJV_UN{0RkZiF-7#B~3JWsAFi4V&8VpCtvCMm^qL0jWeQAf?|IeZbEN}K39xf2vz z;=>32giQny6A8|NRV!;=%*i*uIo!kX}WUZeX*~2=G6seC;*q!v*n?nh2xe zHNu(lJHlUZK$$zh-=Bq2i(NdvmWKn&*~!@5l^NA9r~88uE>G<3m3}(C({+pPf^k6y za*L~{S*$J^y@UK&O{lh4P=5{%F}}d(m+5h-{IF#`V6PDT#~FfH5A`16-@IP(J;c9y zIh8BK-^;CocaVRLBM8^$_E^1*{c;ESUyP$gdJEQ|v;E-W>Ou}YpYT1(f0%~WJ<6Z@ z>W-{O{o9;qU2**m)Ku@jz~>Xb$N5JbXu0D2OR(p(Eo#RKgNo;0e%niWim-}1WW5@Zc@&1%&+HwBtIxY+j?latZ@+$#MH4)hz=MwiV zipiI3URVo|k&aK7-dA<NBIz4i{Dg2&{Azb6tEqkF81`m(V zOZz^OR=if>&5rL`7k8;UT&esQSk1_ce?o&7C* z@?!)0~+e zRIQK}>Ef7y^Y94jZ5w9?;F=V29Ca)}J(&PS1xe8Hn?~?sw>tw5Z@9F_Ry2PcijMR~qcNvJC$YN4QEoLbd3*Y{T<&BvW9}Y>V z@o6~C=-vX#5T?Ui^869#(ZKh;^Ze|0 zd(_mp>Q{$%KmIn+?K_g|CPJ?M2K#0(QQp4vm*G@u+$nRUm~G+%frsf1xG+v52vJjf z6p?2g54ij4O5?S?C+Pc5mB(89-c3+w{|G+%?y1!pAnZ zSAS2k}(-hGK+Cr`Bce$}htq>o6*%6u=}#%?A{RM1l>h;@Wy z-wGXlJSd*-gydaMwb86NTvw;*)nBbJR;D=mJ8i%wRhUf)T+M>5!gjFog$NdwgN*#e zA+VjKoTlP1W{nUwM~U~mpz|dy7t?)M!_)>d(l~}ig9}fW2XznE_2n(8Jo8%oC1 z!criFm`TBucS(Vqs+xPN_sR)EQT5_7|S2@ubntb{a=maIB zwg-YE0ATJA1!I3RHXHS>k&MH+Mwm;9w(Of@g0}_1qrnxQBB3SQ9T{@jz~@JV&vmEm zSaf5>?ZjmEQtDf}^`%CQvdHB=gVnb@$qN(o1SHt*1)l#UbqRW__iaiwk{!W?1Gdr1 z!27bL7Rk&4s?J{GqhIb?)(EEXNY|1EvsVbStc}f$o^VK9F}qkCyol|$;%O791?rTH zGhMZ=&K`%Ji3lml*1}rchBBxV1KD5W&@fnJb zru#Pic-m7p*gki@aLLs$!IS?L-*8KHhLBjL{F7l1(oL+^zd}q0-)t#YCQ^N$Pq0Ft zq4i2X`nA%3v{(M)CvU&^{r<^AUAhi$vq{Z`uYqJC#+9yoHo)ifY&wXuR!x5*IS`p( zW=~eHn-5&~7b?6vVj@+w-rKzPy1!|#9sgVzh|w%`WPfV@^rdzCE~10f8hN`9&c&5? zId0t2jQCios76iT^TJA2Gi-0SqbR=mFb$jZu4ky!ecco%S{~~5bttDJt?cG+cAB;5 z1R{r3r|7S5w23bOLP7ov!sQEOjmL@{XaQb%$*%6hb!1jvVdce^?JE<()wyfr_Ri*? zky>K!q7=%oeNmYavLf4A0uTuAQtQ3b1wXl@g17;OT`OG4@TKZqb|W$EeNF%LuuePs zs3k7OvOok=4V!E_zQ8v-0g-uNvNsc%cLfvlGtE7m)b668AAXXKkK$Wb_P%>Qm1JTdWXF zvqjyZXA)+??`>_7o(cXjO?NP+>b}E1fU3qe=$)Nwf>{FoMnw0@%cPeh8jqu4e{p3Q z!)FO8itN6$*x4ib!1iK`_k|<7M$%KeYp)g77YfEU)?2c6ZKoO(pU9snYVVz`D6Vz! zmwe*pCx0nj**O?jNKWyYAokNpj>ZgV<{^6ts9OCMl6h<_ej6Xp3GC}Jm4DTZu`w&z z+or86FGy5r5SHf`I1jg`6I2XH{hM$un%D?P0n3hPV{=Wi|O`=c27f)jNW} zyCH~!r2eF_g-!h$*LiVj0mP4QH9n4Xv+3eZ2Q1>NU=Cmc>nTt1!A36#XG_AYfrkw)f=19<+fn zRNeTBZ0YYnsqx4Q?6Fp7)E67xgw-edhJ+R|TL<4;=fn!R6S){^>|}c<5VncI(Pp9g z5%Q$${`ykbVZvh!=~fSy@}_`W4(;9h#dV7}Rtc4Wl)aIe8Q9FoVH(T0kq(twhE_h0 zI(w-kZaCC62U?AGYzTLzE_6cSQ2zGU2mQNBQ!5>HdJKmRrL1|{%oXh3k!@NJTjur` zgn^1#uoX#JQxCjsZQ{%I#*-19U*KE!N3P3t4Eub>j68RZp#=w26UwF4gjq9Lvb4K} z!1--E)8vJ5ICkU%dswqATos3DIN?8w=m~Oja^{)`nF0tm3T46UrgEuq_-re~8uLDU zK5*+JR^eGlF4iF%_JRBb_SfGgwI<;C4DBrJUi~>7n*_F*QnU?N=RijbOJSvZJ2@jm z2yS{OgpoL#BblQA!`j(o%dXmBbSfD^midQf;=H$Rqtbni%zq%!{v=#3pQKak-cFr; zg)zn;gb=tN@%6*3m55dbbtP^lX4S(dD3(=SO%roC!x*NzSWAp`XoZ-p)ri>l#f>Ko z)B9z9;Oo(Ae@|ekXUdz-G8G?;k>h+6pXH}6Y%)wn5m8OL->Q}3qEbuM#}X@TpE7wPX^ZzKPwnG< z-iFz={wQCrO0SgMBGExll^*A3>XgN4&)n<2SWk~T3KJffRpVUsSb$_5vAG69vm(pJe zaZrn%p1R3$YdSr^S4w)Oi6=cM^NC{`TW%;-O+JhoQsb)Bbt#MmOlcV=UbtFKPqgU8 ztGjX2Q)U)AyYP_8)&i+ntQ5uUs}*CJL6*Mz(1vD}XLP!1NC~-5m5}EoBS8x)s@KdSM_9P6 zyB#p6d|6ULiQH!>=utfA9j6e;Zf~trcycC`XRO~D$x@>&=~gVaP_1g)r5I=U^=Rw& zQ?abnU!ICJ{WCG`IIKNp=6h-~a}71uZhe8huc^0vI8I|m;x(fgNvoA--|oaPG!2(N z6r+uw{t^CqAkALSG-IyDJS}ihIW(;#yx65gWa=$4&ZCfVFTcyI&%W93ZyJ$Ue?3}Q zas7O-tiH9fu@=6VG5P|^z%1%=v<}iwUXY@WMg{$R@sXD&pYG`<=*&p*uD;-~3b7W7 zoR;yI=Jvz;;%i#dxG9J3fB*eK=l_vux+qJsaufEpC{x1I5Lcc+Pu969{vNlSx*P}c z;>3qhU^k8@Q{ilwt~o>^xwBSe$`JF~z%F#3kUvr0titegmt3wiI0q98W=!X^^zaZ* z?-$GRU)fDYMV%!1`+P@)RXCH?CcA=X$T?CkW|dEV!BgDG{d}<2CK~xLl!E9ykJf0I z^f=pim=-}~xO=!9zwA$bjj4ylIJFt0Dkj?9>(LDFzQVKgZ|AEVh(vjtd)e(BsjM_x zhPY{j#xy)MqQG>Ku1+9V{P_k<)L$Vx67xL z?`nB;+fO!z*&BxY{*iGXjX*u z>rp?quCUHO#Ah874Q#a-vRl>rZRIU@UZ3H%le%5(-8}h++L6aOrG6}*o};fAINJ zZjC8I=Z7BEV{aEK9V^a$W1tNi53}+cLpJTW=ri-&ukW`}GDKYz5M?e_x(DV^>l#Ln@$3(+!y> zYQ-n7`|uX*UdjEqX;K&W2cQZ|qr7e1;stp)S1;R?RG%_9;EtQloEB0KP*{ zSEFA%b_w>PvA;Zua=7W)=DVPS88wJL_SV%&OouYWmq0D}iMfg~EfbE3Cyg?;7t{u8 zMb7YWIq_s-EM31_CVk;u*t4*ZfV?S^voPZ+pNQ(xC+56&Cs@;8dx1sn8@pK&w~8Dl z4l5eUuV^(~m*)K66@(iP`}|0ZrQ=iODf@&9qM zu%)Lh?DOkLU#(H>^XdGAP5+J0FyzjxfOK)>f1_BK7YzP4ZH`JVWV^kQX|bp06}GNB$*Fg3<|{3#nP9&C z>L=NGODe|HLy1F&t={|qTIvHOr}X96C%DA{W<1|8W>EpA>1AVmVfZwro@3L^h%fNK zlw&>le6YXgx{NyuCdRCk`0YzQ4W(!3q|8&qEgJePPku#qk-nS{=5|x*Gpcmy`eDMV=BV9dfAK0+7*`pYKY@#22ad72Ze!sz`T~uK~~8kuM_mFnIb5) z-MabJIk>=$DMU&@q94%nR-{O#wj0WQCcC5 z^bK>)SO<*nX4RWNp*w%N94~s&C~7yPcAJceRw{5+bune}I$(Q@v2Q5y4mZ@{9`t&2 z#&?gOXV3Y|NFbCMYNaI)V>UJe0tM%z5#C{Aw`Z{+l(-ZhY*@a)a!#1HZb-8b-Hg?! zwXR{jOs?}Cg{;@8>5MEUf_;jI-ghcdH)HMhzx@3c+DD_0DE%^K*^c@Ba1)=EE)2dS zPQ5G?N0uPGl%Bo0+xl7w>nhS`jjb(f6UUR$xWiey+2KyRXk?o~4)@zN`Aa-*9%yqw zulnr)vHEyG@+v*b`QX3l#B#4wLU>_zQbyZeq%WZ(jVJQ%a``o2Ov*ijAw8p#vCL?b zGczCXGCAD1KIEq{QGoD>6VQw2mvP}Z4{>6VUA$n;@o(u--U(*Q2h5zG^sGm~j1+Ms z`GPH7gSGcc^O}S7`ox6s)QrU#=N??FvB0J)5{wQaz5N;vKWh*tWCIzh@7y>m`^E>a zT)B~1XKHpsRHNs;KvwrXvpHZQm~NTVy$hL-VA>D49q~>3;RkukAqR8BsTXF5xgI$t zGuN}F9VS{F`SgRbQH!44P0$2UkjvP(ll|%$HELMVIIC&x3)VW`s+Nkxm}f@5Z^~HX;VSYEij{dO zinj1?ZNkL2yZ8V-%w6J~jkP_kcL*DkS}njsQjN2_>N6(H1b@5Se&Q^5dzo*#C9ch5PgZyFQRUa_ zNy+`IEP4!?@WR7wIO7Tr$_2%VfR(|}E$VPUrBr<4HMGpy^8kyIrz}(C&9OPZ$dWVW z+>sxA{*+UhNsA-B8u}s3LuW{ky;i^}jj<*g)ba%Vca}a3U^Ti$sF&W7W|rPIB_BzR zu~K%h|J_m(e8fD62o`$9@)yn!XV(rnh2c&uEv!k^qQ~d1wRp}zKjtPymoCjXY1}rp zq7Hcaq)&#DF(aMWs+a3)BE1yYMBbXxSMrtmvnB)Mz%f*yfsY--59rK362%cvJ%J6a z=N4@yad#uN>Q(wzagqiyX9Y^fKv!R%1K;oSN=Rk4G+$4H=)pR=TWMXr>C$DGrIJqP zZtR;O#AC^b$d0mk3QrRz2v}$Yh9xW#8mRMtr>096SLQ>KQ;EjJ^ucK$_wY)i<`nbJ zWQnIC!$-IXs+-G=#H{uhb&3zFoJ`!5n7MAk?ddruIYHU~AEj7Ehp6BU#7@r8>5W}2a>v>uMH2o*b-~W z4I~luhLmfM33inWd$v-mtP!dp^0g$*Z|XE5h}THo{4U!hALP-CZ^wa2-tomPm}BlV zd1HPfWT%3R6p8KD@zLQv;6(C4aOxiWvI5}u*qAkT7GLi27GPWz{{MQkh@0w5_PF~al6eEBIr14lx* z%lzUjlxiE~;c0U<(lK>Nar;s*WA~ZWb(LG(;mWO$SCw=1DA>}to@=O4#ydlg#WlnL z7iXCFP(1v6o}z}4Ku``snyT+{EqX~h+%FD_ByTISAvMIEtFLl(bkdVg@w(2JeIqu* zEwv8*@YLOy#YQy{1+rd;*-BoJbMO}FvANw&ocrTXhP>kft2s@&>Qw)CD=}7#avXMx zg1$Z-*a)cL^3#|R&&|de+O`|gRLYad-j89z%hc7hOi+vo4$003JUEJ8eY}BP>RNnc z1xD?VdHQr+3n1-|_$7NXY`zz3idbr{i23~O>>iNuv~T4Sc& zYHEaVh!?cn5aQ4>Z`Pw2?p~r@lCqm-9dOy!P@$8tj&Bq%Gvh8MGt}&GC0JD@-U$|q zJbD{dVgmo;$h<1l_6n znQ@QQtX?VgxW4qP%p!9-Uvj>5RTfv|H+>9t+n zbH@j6)FX9ahdJ!hEN_saiG?^vg-wl-caNB!v#slOXKoU~*pYi*;zRYw+k_L!+|BQ9 zNWb;vS7lFhLnSqxw4Y*JjhUE=y_4G>J;zSs&B*;mAjjgj4Ix7&4wI^(ogSX@tPp`={K z!qCa;hK!fm@e#>a-Q&qIug^~1nBfeRZ_kk4eJwPqlc(w7?6Ak57~_&ZLHjl2_|Fuf zABIHSO`&dv-T1nU1--lSx{9V(4<=a$b%GzQz0kGP>TeVGH2?TEj!_CnJ1Z0(d_MRJ z;u(xdP_sX=2~i)^j3NDIh5fXQseUojXTS2)>KXy0ES$vRTJ!Bpt9qY2m>e=Q3afM) zm#%eMaht|ym3MMKn1bYZH^p^!y-LZM^<;QuKhkx?+Bz=6@Z0)Bvc*o@n;`p1>To4V zs}3-Ze^dpvzE6IGJ+*dN(GJKHD`pQXOUu`+2F4I5`6%H+BjU!eDzaObABb64Rqk$t z$}At}zT0SffIN6GU(a?{%V99-UYPFfYPcBFE!x=wJ@w$?a`~^CW1Z7S-y+sLRGhrU z&rEvUA#gGVvAQKL*$ciCN2TTawYZ3{yv50RRIi2Ew-{!4^yg}NMMP)ov6sKkqURpk z%m>@`O+5USy0;0pnWq3uK(oJY)ilwL9fS^@7a#MOuQktS&QSd$~N_uG# zlgU%4MJyj}GBlOBxOvRUf-Gy1>=JlO>+Tn$i!Iw5cOCq4V}67gtR@a_&bj(9Ig1{o zmPWy4G{^a+a3#6I0rrEU#hLP9Z+~mbq`xOCwpBAO zgJA{He2b+%V}|hSvYOE(FlMvrqscx)izQ=JOGVC(h&xY3*rqGJ%)y?uTies;Vceq^ z#AIDjWtu^CpG+t8xG*hcpIe0s$%DfOO?GZwikoNGkK|n8p}_SAyN@KzTXEWf+?n*I z{O_eDm`$~@^(=D(V{Gs0eHihIZ-D58;yYLOBqUY6F&2<-k;dfO{i*sZUMt$4nX=x2%J z1!XdWX=~v}a>qq#yr0Oe%T(#z=L-~6$(gZHQa4yfbIs7nS^-4HKW#zt$vLBn`q19OJ^gSg!f&M9S=G`NPDIxS@reFqm$`{c*!N~ zqB#9~sWotCMqW%jjoX$*F|u9~NU8Vn0jAAJ$Rr zSEu0ef2?JKD;0_JY^vJal9Ht&Y`RFZ@lW)x2<{WD`At|2Ri#QKxAw0m$3L>NhuTgQ z^Z{4esRyD=OWSn#N3VWROX)6Ed`f-tYuWDsXX%00DoGV#B}o1C*?&C-A8L&-x{9ue9|k_yc?s`--Q_(PK=p+dk~5> zJj9lAf4Gwe=?7x1G3q%};cE8aQZGy;uO6~mR725<`jdaDQvVX&7a03&$Jb__P9JD~ za_k*EJf$UL_xXlU>uRKIS`4j=M!RU?mQ7~3lDyC?mPSI7`$wEQHbmUY^6uG6kSK|Q zc{&$rZ--&Wf4mR4Ts*cvgCg7*S#=?2o*H7p&%M}dsj*lZjHwA0p~5a#I1W@ zD7Clf67p7PyYc<%xg8Po>dw7c{-w=fUr+-y8<<%xmk;Bz^$&}+#?{puW#uhp*IC)5 z(uRy0)R(qgd$3#^kmCQ0yIq@%s~Rj^2W&0T{vT#7mbIAmzB(1Ap~}1TWIQ7``jT-j zdJylsGrnb_u69(A2EcO>egJ0^(|O`*D~lh$OC=jK7gXw=lRC@bW^DaAVEcd6EU$U$ zye?RsEB6`OBY*H~X-b*6I}hWZCd^dL!d^GlkBOG&u!qLc1!GP90tRo#fu1@X4tF& zlA7rPNTUEzy~b5>AzXcoWlZ<3{`EC3pW43)<1yX`Ql7?~F}ULbJbfvu(J?{J0uHp? z8~anYbYZFDLf0kafQ^inWPNQ)LWV);>NwemXA%KLNtVM!k(r=W`CP&*PIFy=QLazDbz(+?d| zt7h6BsPxs)9UJx}|15!PV~F^(I7NRg+p5%;%tM-f{B z!m#TeXR8-U22J|=lW{$$2#(^A)%t|m77fSdOoshQVjssHky+bEw~>9f z{jxIA^|E({Po{0Lveb;367x*>>fq(+8#5GR-}1cV$jY=2#NtHqj+KvjRNXMZB~H`D zwRbSHrZcv^a1{k7_XiHuinGVX{Zig773QWv7pZtO|%)`#t z=d<5CbNOc(Uz<@q&hbj;?Qg5tiqF(5QkKFIvh1CH^l+V2SbJrrpqnaI_yDo!R>vn|jiD@la)J)>qZD zG-A6kI1*3i<2@_-(VSX|y%90YO~XQm5B=b_3amkR8z(uzER8?;{3*8=sJX=EtoVB! z0ZZvu*OYapB>7@n9}j=Hal@NUI;hQriidLe6FvN9{bEt zGbN+xQf}$57+RW4UU_L_kKekLEv9J8vqE7!9^*eeSM?T~^iVkJy4(8$B=>!r3M;v|P9ivr#SaW-@sc=*$Uj8M-jLD zdQ|t#clBo<-+pX)6gdgc_{GOVL&Xh6FZWi)(S(eI&b~Wsp;Ek3_o0EZ-=$Z_n0}IU zV+EQCUx@Kt!NoaGKU7i*N_{gc`Q$AdH-3#5|8HCrY%vH^?QnuQjNY@OBQ&`D9b%3} z>clu<1Hn`K%#chueV1OAtB4c4Y5_@nr@n7}{hAMMK%vaA3&q@#tr zMy8CQH;o4?Xsl0In=9jFUPbIjdK#A87kz&>hp9g5>-t*5XzmIaRqH3idkB<72p_0- zS4)BI7cnl@?%ahoY6yF&mYjw!oQF5F-Vk?Oo-j>Y+|)9X9!DiA-ZDsDx?|HDGtT~$ z8XN`>=<;4%o`*juhCA|dczPD9jr_!Mx_-%q40h`3_6y1=@XqJUma1sq4wRXGKkF0E3 z?=-ca54PXqYV?D?5GOFke1bld#M;Cyt(x-x!jZdDuQruwvep6*$J(>79Zfv++ISUN z+!JL%cXx5CD?H)Zne?o`G%vU;OgEr#N# z5RIm7bEF=s_XoT7*Ugr6$vjX5zE+Yt$7)lrUSaaUXRr63iG8@liZLfSZOO#(X)-v~ zW~|`XIO7;OjpdvN)AuDs)@yw824>X*v{b!Gzwk~uRUBd=#Z4FiO2oy?(xs_>yNtTI8fo6WH?Q%7^Z*nVrZRH=ieOdZkc%#dMz&?ntd-_~mpC~Lhu0GJ|*doIvdyLvm zGxnnzWhVTFi;IR}$6c ztL_Psp?1oEFiMc?AC-`(0^vwtQewElX_D1Nm1icWk%!^V*?wJ>RSL0BryU=l&$)K0 zYU=kF*({pvWhy0%_WN77MNCy|R^KX{#2K<${FHO!lX-+Q9q#`x_ zYr*nD#PRnRONkugVmBAWxC~;j)HZBifa4)0PbDTG!y~^pQ>fV!B!a3jlS&T>}I119@SR zV~7_U%vu-6VoQeEBUG3e#KgN)4~J>u>b}jzDnx}9dK9Y*@m;at1GYD)72#xeiJK|6 zqs#Z`EA}Ql6guTa!Oh|YuQQHudhbEMJ?CfT{W<;|e|$SL9YxXgnl`uUlc=@CnKwV} zx4;>>cvaG~O{%)1qGe-kdREKJ8SS7w6Q2D>+!UBym$c)|iDuYuI5m@kTb0^KN0E5W z$*ujjGYGvy7T^)wd~%{Dt}{{|&v~o7`Dg#vm-~_8OD{34KR+=#0T>g)>?8g>Jhj$( zKn6!2Y|2r+k9IE4o;=N+e7gBtcu2L+Zaf%)jTOJ4W=vwP>1uWdC1Tft4;vK8r>@1h zR4;gQOmttVp&pI6-eVxnU}%@ zNWaN0F3x!+V|fAHE=@j+)a))6t4B}Yrv}?u;6|XWV$#}t8!(j@O<9*Jx$&M;;3+j- zz>rp^CA*}?D8!2`If^B{<(w07oym-0mGy(AC}ONRn%Bx3{tb_TAg^HBES;Gd^DVeBfWv5N^Je{I9mY z^jy!?<-Z8G_-iEvM8f!`j2Sx{%piO|SRur9>Uy2kuyTp~67DpG6pt+S=%s|dXmB^V zcumQtBJb=cP43U!fYtVc^1!s2C!as$YyemJYTGCLWpN)~o*wt}Z3~Ort_Bw`4=Y>~ zZlr&gm$lZesN3xFLHc)o6QjfOXN+iYrrF&XWktL(^#e02^LXSwVIA4GG^>!@DpsL` z!x4wGk{><9nd;!D!S=Yrc-ZCB7tU$)8os@N8Fvsu9U0GiBNKlt;)q>l)|5qv&Y2nh|7tH9%qPQ%oU%q zt_HIMECQF5K9e5y>^qSIGDT{FnE@Bgo~!ahm7MR(?T^(XZkyzoFeJx|m0=~vS8+_R z`s&~$_c!+vErS8aDu*GxijzutZ}EMhi0g+ho<;AuJ-))gK4vA>P@EO1hPZ(8ZELn zueCv;wcKU$uIpI@);^Ops&n?fTs?hKAWFmW74pLv-$%Xf=f-u8`17SF zrx|;VEibf{1LlouT{ze>Qaaw8{~rDu|G#)+@Bh!ZOI#;rF)akff9mqlNMAS8{@2uA z3NKGJ9*gILm0sWL_r=qt=c^ixV)0bUg7jjgPlTTbFV!Dbv~$zWm@RJvY||o#UqAGI zdbVWsz5rflR9{~w-7R?d>!qFDnRcwpiFCD&@Jr{gR2Re zMuRfRuMw6(m^$Tw7v+U}P0qN5}^iXKa_%0axlLt`|##Vq~@o6Z7-r^TDz83dT>2iqy0WPAU)YqbFypM_0kf z(T(2Xik^?TC<;aO1xK)l*1+KA4HmQ2<)n|zFtE2sZTA#UlRx?VDaQv4ucXLV)=8YJ zm!CB^aaaA+PWfQopK;Rr_D%Daz7`Y|95En+_XSg4<3)P0>Qj+)l6(2f()0Ls>|{KR z6U=hbiF~9A`?SAOt&(FkJ^B10FZLtO?ry^xnFDqOolEST)IMmR>n50thP+dU%0ofx zUNeO=au1gvJqia-$YCnx95rwD;|L4)PrE*h596rMQ8X8tJH4;24mH1pf->eUh*h1) zYxUQs>=J%f14`{!UU;`4i>!k9vt^1fQMeJjB)5(yMx5LPDPWVp5Yme~iu7)a!wZ-FVqt zV8L#?w)T?xB)zN8*QYwY>+CAX`{Q6@^YW?=&<%75BkgsUfEbKN;qrI=>bbH zmV3-O#S~I)s(AWE{yvo(@sg&mo;1nvP8zSz^qnYHcofau`j(rr*UBp|5lku$(+DV| zz@X-r<_Dcm*@Qe7pI4431P)RiZwAtkeQi@xCRY&<0D7}tjb8t*0k+!26Z*Cy#cymr zC!KAlAHL$XD2k_+KOLdE*kmLyYKJS(6a!vemZx#QweWSqh)JFiV}R}PE)0&M%O@S+ z#{3Z>yoROT|CZ%2`8%U#e#uW{|LySsB*De{qNS85j6C4et5EaaN3*+GyY(NleHpYr zn5=e{U@?9?_;0YkR!v@g*E({qPE$x@GacL)L1xc}Q$^Ro zEcnESX;Zu|L%ce|L;8-NW9s#|dZrFx4Ef}K|NXXydP-}7*#ly#uEvZtW)xV+Pk$#-k9b>OrQ z?eDwzZ5pGF#9dz()|e5DqgFaT+FEm$e>u|CHko_}Pao?uuM4J=8uu+vJ~hVXORWYimoR=e_L#lKNn5R#d^1kCZx+#wZ|~dp(lAPdD%Suu@pqUGEGd( zMEl9F$r!QciM785(~mqozmXI%S&mE3zdrT;=gE!#`gTWHoIJ*)RsQe?a{ySdI+n3M zzido@wd5Lt*YFdjK*mG(;KUp45j0$$d7BKSd-<_5k!FTx_G{O^4xEpJ z#>6N#V~?>PL=syuXs89&QSN;lE@g{}5zThM18=k+?FLV*G|8LFu?WXAX2=nncCq9b zxV#pV7L(Gb2TXG^p4=NYm1$*}H8{zh=ycL0wuHrar_TiyJ}|R~cxg8=vm|lNenwuk zA8}#XJhN^H*?*^4W0%wejB1T@CADpe(RMR0(3c>J?l#@WQD%Oey34J# z!*$DLiw$NM;^fB2LctEP$$jB6dmpM(R$+p&pNFpJ!uuSncsUR+FF(~e=|~V71dPg+ zCZEnROD2vzZoIGxi)W_~E=v^_)l-~^a%3jqaHuX;r^TEsCEbxcecMix-oYZDNjdN_ zz=tj;9!5Q1imYTjC@?{D^0(Iv;~HVPK^vx==aQb!F$1c8xI46#KRDN@B$k={+56T- z?iZ~kh^w{`;nvH#oTZ3C8?Iio5)p}BG+z9Z&j))rxOgB@QhEAXK2wpuMIwF2UGW&#!M;j?%y z6YubWuQ-%&tGHj{`~IW;M=$luZ}93{@~Q**3cG?SXLu`pGClIz3twV;f#E(cN`E+4 z+7&!2I61*GWbP;Nk2%7Hd7a5|Pr=xF?aAj)Ipts?jFVx83N-!bAEo5)B3Zg*tY|!0 z^O2F1Uh6SKdac33PoHfJ8O|+P`oZF!vrkuMPaqr8wQfHq*hu|}T1#$VtwK%lIy`yC z(dbFA8FHF-qhml#{f4HSFk&gY)s9f+q+260p$qy?9Il2huI4&^_+0w5aexp&dT=mVE0SWtEb?bfv$WSxXED503Aj!c|RBW20Ar4)Ste*c5wu z({YY^UpORnc|I5u9&B=61YG4hd))pOnzeHIHZ-euEo-c*P<-r^JgecM*jp@>1LILP zT!+zQuqPjmHTzc{rXT0ke9wGW1Lgc7?IVg4tz#($4Ul8$C1qEbX1`qAN7zg&3Qr4IVfp^{o0t(+{p=vVM#=x2keqTq3Yx zOf76={S4;)Q0#rkRU-jKq*oj&vvJYA`oud8FS#xk)x{+}PLr)}xRaDOgIKR-yguI4 z?}^JBjrp@%sg+347C4!(e4>Ys2oF%oYC3k*O{Q{ScUfw=THN+I`6G9@GueV0ymRl` zl5X7nOn((AxK9d0t%%)a$@RPF5Bw#(RZ{u0%>3m?f#e`6O9L4;F; z4SR5RK1lcASH#1{_3eDHd*t%HY-N|ddU~QfKwM9hjp>s=T7>OF3Sp5u?$DDIeNgts z7*a4A$GH@xZ<{dcfW==eVk{mZaXjL-4d69j_m}d1&Gxjtemi1f zOZbR5cy$l<)u*vwJXvuhTX1d)LCcr1)*=KArjz9-o5tEk3xACBgX=!4Inw9M{1f>u z&#x%oqm6&NDMQ=ZG(HU!#e>xr#%|WtciWY^ThPj}nbGU}h@ zTQ#x9Zn2pm2wr7{ky&?OqjQF@^em=p`j|K8vJcktI?UNP(f-8Dli|L3m7ARWJ~)y7 z#tc_3pCF^#z8zdCKAd}pwL4eEtHEpR$8qjMmPSs?xgf``1X&9Hz)0O3Y3m<#xB4g7 z_Md;xbRCay?!UFdlsZE%>=A597jCw+i&9_m8)K=6Yb#gY@Cv39Ke!lcFZFJyC%AS) zPR*VC6GXWQlf?43DtT9K6niQ7y4Prij>%CTa{jm6QxpAg-5lQK{!JQC-}~Ff!1;-{ zPQ!39efy&g}E1;y7IxkN?|Cf9?kH3A~dHfY6_&sg|bWK)4J%+;<9UTw% zx`>EAj?KpvPBbUqe=wXgaz?58zIw{ubOUdv|px!ji3~;)Go}$t9edCmPE3+Wzc?jvd+4axY%8yo4Wji zmH8XH)E<|MS23~Sq`4ao-|FBee(fd`TOL49&S^wDI#GVcTpeSZP21=b*_yg@uP405 za*kchwK*P+Bi=9bVt8#n$PP!3H>Ty7LI0)>co-@ys9c$?aoa~|l##|1T9{_{hjQXl z?dph2Pbg2M6;1uFuW6i}Ti&((E8gsH+EzPgUG59Sf%9NBv$e!*IW(rZiD@D-;Y!Z% zL?Ocs#{c(3%N-599NW}X!!ma6OFUBwK6SHsb0&_$J%qUk*J$DX!#v!oiPcMTmn-Ko ztv{cw{1wmmo9sC0MHNPFQTT8!DmyRpe{;su1{W397yjX%nsaN$I1i^78v@?G&6Ooy zsXGs;WfQl}u4l`<$tUu--H`6;U7SfT%{Y`kOf8zVxN-BNF zmN(yO$K~)S*{^R&oV|FBpq@wVnq{X|pIzR0KG>t3cKO#5FL;o!9ax+~x}Q=9 zN&X?HJR#43VVU$j21F-19+`aIVukYnuCM z@7#9!o^*ZHJ7leENls+6@;_$V>@j>PP^zVs?%0MgCTv{2+WFx7v+-4ed)-8O(_p(a zYpAZ%gZnOh^>^EHyvsbj?l;f$H!;QNSwUw>Pa5I51mP&THsRwwZ zNS~2oH^bUn`N1^l8)F?Rznn6R1B3f9RB!f>mDx6j2P^OVKA7|$e30HMOxH6l|7526 z@Cv3pAN4WQCzteB)RRrYRtZ7GtglL6b+$KpW7M&Dt?XQqPkmAm(`(?`BmLn#@(M1b z-`A5F9Y17Q*pkbbjlx}*9;g{`mEqh{xaq1hIS+;>A^jEhL-O0A&AJmZJI`h57sIER z+bH~_&5(;pAK9<-#x!nKY36$Mfqdsm(C&@tEXuEy8Etq_o@jzPoghw!g`YskZ--`H~TyrdSU(2f7 zMd;kSPoyR+xpAajJ}Wv>xz<$S5zVqrlCszj`%a*#NUvy?n!_RAbsD}-$Le$GRf==o zhYXH=`JEHJ2Clt2=jQSTGX4lhn_|-L$e0yj@jH-)AV%@Xj-^qQ9alr1?ka_mA8^8R zvn%PBxc?>>1IsLR?n*u%?2nmRbbcO%T2JpbJ+QcDRBMSd8cA<|^nCzif-|-+JaUCO zSy1V-8XbR3@zV8uY3AK$Fd4^*FV5NX@7y1*TF2M8D*2Rr5QT+Y>q$}d2@Y@Wc2n3N z_Um(BrN^j$vOEEHE10lYZ&hlfyyF_);t4mY{juP9z7gK%c)kJSqM5KqoKAh_D3oVX zezQk?&pT#fQsCU$)hQmY@5#T%oATf0&SY1Y5{klepTg)w2gag@fhJmN99*Z)?KQTs z_wD6d8;;y<-$iqidushq6i~FAub`60We?H7m;ncZ>AFsqFAtLcdpLYEDqPOdj*=Zs zdck!3320Gfj4rQ?v~|VE-b@v3E8K~?*3ljBrLXdd{b?IR*ZW(hhoGm8O9Qq`pWC9r zyr%nDv7!Ig0Brkb11x>gG4LOlVKmz~?bL~r!a6!>@XMUqbQYZ&whWrus>4_CL!;BC zuZh>=>}%mvrFA|a=I2t7L`%$n%*|pCxkDX^2RS=mj6&04@3+%-B3JJ}!LUu6HK19w zx_jNQcDVM&?j4JJd~;hP}?s;eV8Pt67@_6a~= zCqWTi^fEZ^S4CDEeBJjx8pRgZEp?5}v07k4Aorkx*80+IItT~D|EhYAT&ezNh^89% z0`QgT(`vlX4{MQ?KfJ)TO+meAuGWHWdsJGt_1vr#)>3swBU;PDrH0kz*)gW2@EXyT zQSx1|7n$yi1WUqD*H&XW{l~Wa_e=g$S-K^;^Vq&Ba+<+M_U2nPmFVbPLu0Cl&De0m zAiqm%IHS{}dQq?uQRjJ)@VM4R!6})wt$bn3@_4?rH~CAS_eSX%_jL@@{g|AO9LZ$u zdc%CeZ4qqvu4HmtX43i4L=(Gk7(TebJlCWd>pxQ92~FtLbe4R4Gmh6@uJteOg>KIn zM}nB6?-Q?-pqSTKZj`C{$b8rvZZlU|OhlGS1+Q1zyoq|_8m<*OuWn2oH{UW;97AO& zxGlGKwl?k?a*l=Ywk7Mlz*Mj{EFFmQ5nu6oFRaYL}*S@2dzj_SSs708vw{biPrwEHn1v(CxIEp0dL&mCCa6 zxJ672&i_AC+!bg%;zS%Wx~oLYKdC)fhNsr`Y@B1U{3;YeO53j0c_xG*9lBx&pPI1u z$Udm4X$8Fo9N5R>8j*#S?$zjBGu?p^!?Fl*_fNBq*i=JeeHf}&%H#gb>JcR=UueD~ zT16VAzP@In_h7btJS%u#3~Ux%-^iQ2_fQRba-wt2XfU~>^)@M- zWkFZ#%2=#V=wyW>?xbPjR?^F|f?ds8;*rp_9#dD!lC>%L=3#AFXqvUf8Ogf73UXQ2 zD=Vk5t=Va-daHFv%UGd85Oic_zeLKB2d>m8fzI6#atOg;#nY2Z@Yfi{2uKdSHwK&6@`pp&Yv31C+cl^ueMhsR; zlw;{W1&06ittBs^tWB^7(P*~zbgkM(?%;p*bD=01XJC(Qg!bBB-5R2oMS_J9G#6yZ zWn1kq8q!CQNij@goy%zcW6cc5JGTwAu-@r^wLdY)ZsWo~HjhkyeQy@q8IQMD!mTd} z`+C#MR@D??2DoVUNJ6t>eXp^>)RCTP8S#VZE1}!;ht^1C?KwDgh=enBG55=e_@HG# zG!Wda&tjtzygvF3MeaeZlGpdte4UDB&Tn6zBHJ+Uk>sE$u>@Zg{XnaQd!ppqjx2eY zzNEv{(?83H=&bjl=(TQtRTAmji~Wrj``nPsIaC`F%*Yhx@~f57c}ultv(niuNpYar zjNR+oX-h+2?Ki>04K1@)yp^FT*f67J+x%%Ckvhdv) zaZ2G@G0*qZacNHCz#VV|9am~AR?R)}blTd-UeGKtSo>J^*EHmg&Zt^Tfa}Ft&ph?| z`nFo?YrR$OMq1zguUrTPJ^!u&LkMWCSlS0}>!aPc2&ItGjFA?Yp{_Ono+;UBpd-8cwv~nJm9bo! z(B0x5qs2Yvsm*`KKOZ(NW@bct#g*WJEcSkK`@_(Jri(*&dxZ^umNx@gtqIB1oUzoe z(PoS2PQj!=j$v{QbmMB_@&d=V??K?S?EyVQUHe*wjuucpXwysDp^u?0w~@TZ>8w+P zwqBb-;(e&t4~%5EqdS{1>dX=}IOo)14SJbU&G5Anu)3TU^bK>rs`ZSaPfe{$QzzN{ zN1^$YP89!vog<;i(>yg@8k%5j1JTNwh8w@$JLsZ6<%7Jeij{GH&KsH^M0j_zqkq&QciXNVO2jE z`=trP{(dP$n~4|d`Ooz0wPBPQk17i@Kb-;edaD|uys7e*w!g`7q=H%Eb+tc3&2yzZ zuHWZh9U5dAnS$4M$VvU@{`m0m=sWp3QZs&5AG zeDw7XFFZASu7|g7Z!^&Ow@@DOBInhW=N0`x=6kC-L>lwg+Ul(VOW~RpjfRI2y+#7| z`kBJ89)S!*Ty!FAhVwxS2Cb?0I2wsssbk~Mv70H(lc zhtY@-=f`TRHLI6>xZhJm6m9HpPh#RZCDj}m14|xE{7rVK-V_x*YL9)LR~p zGL1$n#W}a>AJN|U>HbHBa)$4C-nKos+m?sNe+?;S%aK`3av5CbM&v`}>H3KQ8Xpc% zsRfR#foKLxn~Fv)b$N@0dR(cLlp(G!{mG_U!dI%MdNnVVuE;R##0Ce+jOKHU^=RanUXytZfj>*7G4uzs#10Z;#Co(klzop9NCR|hTEn%? zC7b0`PZGMhhMChpWg<;bPRg;&_;NlbXUz75H`LJO*~IWDa6G&%&?TECHI#Ijx1MAS zDW$2yD48OT4stKD?@#~QlW=MPY5d2g@n8Wdk!CYmxog~5_;O#GVF>QoG%!Fg|D~bX zSKR!!YVJAVzMfA*I{#?Z0%y%nrUv^)#}zz4ibZ!c^WV9>Fe=7B`1aJi`9gNg=%MKj z!qkKlP1BlXjqT3>(tQZVaku^8rC+zED1@m6lAA8kd4hR^ly!Ehes$ z>UkWGbe%Io`7|}0@6_C;n%7huT4wX?sY5~()u~I3jJ3$^qCJpRjoa(>Xs2VA)p6~H zlEhwv-^1WK1jR*%$M#^C?NMu0{@ZwT-b&sylQF!>P4xTO!X%s(>fwu9u4*Db8l&@o zc?W}@G(D!a++LSI;#w>uy_k{XzG3w6XtZK(?a@!(xT%l$(@njHhnr$1lz8pLFOTas zDpiU_*?pJP5cZNvs0iy%^C(O3e(&7!lCv$LJ}I=4u#7lNmN}QpLUpSK2MRW)tvkMF6IxN!$mv?KOQ175QRT63 zE;9$h^eR#LjIg9B%Rq{j{VBJ|hWY*ztCaXBB7K%1eF$pf0)1Dly%BLI$BcMMrJMVh za=sjePv2wbRyLLW%-CF|{E8OSmh7n8+|l5&kBUW`cI8cCpqh`Hn)TX9iyf6xlI8gr zwnf9p7Uha&yGD(%v?7Kc0Ua9+Tx0yt{VlD%a>x@!D%zgXqEc{gmPGcgR81$dl*WPH z;bW#%Gs230P<(n{dbTz${xd;AAAMOF3M}b+i263B%0&xMfA5GB1C)72|J= zytt{A#*5n;owIbSj~-7Sc4uKxN?>58Qw-Y)O=$H=WbKljhdyZ0Gxs5v^SYbK@I%mg zi?3IVoC)K0)m(C=s`5oBQv1sMB!e~zU2?}pJR-7FMr~sqX<(=J$R%c`PUj@+2MYQ9 zpovT}8lYQwWcRwM*8%xtB5~De*D8M+!&Pc^l(wa|z`Q(6t!)?{)%mAJqOXqkW}X+T z%Cpi@*$ZlAS4XmLq{5`N6djqQ)D9(&hm6%O)hT&p9hs<+E^#0XGZ-}heF&pqwF$jm zUZM2~%`&%7IkOmNhW&LB0!@+CV5fA9)nz3Hoee~$mexl#u$Hyb-eDl(s@pm6g3-0( z9s_jj^8Zjb>$TdS%T{D{?5!dz3nD}Jrp)M_H8Ynu>rIB*8X0$Pbky^&OeeqGt*F*^ z=-9A-{iGB5INfOxQdNK>=C$R|9($GPAL|FHOT050?;&$pZ>@82*{5UA*|L(^ z{Z!3VpT4?s*fyllV^w7Nn(sjvD&N|6osjz^2BMQE1{OK}tIS5D(i^+an&rbI2nz(Mu zPipd`9i5Sb#&9&UA{Rok!F?`K{u)&csp4iq6w0fDFeioBaH-e6z>8hBNY6Feg?Dte zSPic2iGhb8o17>EHgz6TSakYW&umj@U_1ovRb(Xs#A=Cq*|#;}RJ<{#p&B>lCG_yL zgdP^VZn0O^32iJt!Jed~GQmSc0*gbU>#?zzxCktibyw>uEj$Q8DcT8+`aMTns+}n} zriyn&J1ffav@FH+4y|cK!Vze4HIGW-iAo>{urKgv$ z)4|q4=pCIysW z*=BuJFguHHbyz7aUp>p0npR}QNlg=qcxZD)L|5sxD37YD5LXRSVKtwqCZ7rusXQ2| z%8?A8qD#bl@0yl)K_l&(ao;NQo+%JBQ$in>WV|Yrl5V|@@|(d zR0=dQw}B>e%4EZ|BIv8yu&c48x2wx^o3iYna7h-gL2$JV7F8@}CNt7ff$Sy&k9)W| zbluz^YBf%)7FQg??lKX@M3ldQ$fGIxYN?PKS(=MdGb&F)QbVU>w)TnPXr$c=mU(7> zXEa?&F;eAicQfj87?;wh)sV2VETQ~uMx%<+*ksj?2H8Z`sFjkYYR_W*LZ zxN!`1)pBaEb?pKecc@Fsm=&+MB!zoNPmRtQT|RAApyRd+=0tX8a!VEhU6?NP?O&{2 zf={Zpcdjjrb#Y-ofAC#~!qCONLPn?(Z}0nB^Aoj|?7Y01%}8NY+oZy+-`JyjU`|BX zK6|n4ETZ9`T2^6I_IP26LCTUY^JMF2JCVTF$0!$Nl~0wH6_r77J6a4e)bv&=A-CDV zRlr+W+Rj5Oy1biC=u8rn!F>bQ7RtKNmt_yWOJAW_QCXo&P}d)B*m0S$ikfw@8L_5y zh-(jf##FN(Tyrvn8i)CRK&Y+BYY<$amC!pp#&BF>GE8;@1BX`A`u)~6L^cs$-*`?@ zF22KC({bvBX5wp?a2aN2Y;dmy_t>B`kn{1py%okv*DR{J=-J_37urpc5z1)jd`%H` zAv^UI$NDv;?ValthAv`dWo!9H#}!75_X>IaTEc_(9S_VdYmK;->n^D-F{58XF;PdD zmhQYn4>IDXB^!48x<#F0=A%Te2OVU!FW1a7 z8;`Z1HIX1AOQHLxeMQ*lf<|3Vw3;IzTFeZ4bXg-UX1R#P8Z*orP^<#&XY{7W1~t>Y zL<_QMI9w$LJ&p#%%M^&PkjO(jvcv3NO{nQwgQ%!1)#94X%c%menwd~zvxk5>kheXt z@IZ13nUP1-Xp${cxa-QxAZ0s{?BzNe?=&0PWBPu0;-w*oUXG?8W97-~JvK5t;Z>#( zT&l)~jD#Z+=6UMWExXHY-rwadOe&y{c07qQi-dcXXtfyJM-(zaguE_NmIp;x z-wJQfRb4*epn7<{wTjn%$&vnqdvLbPIOMz^v>KbySok1btjGNnEh0&+lB)N*R7aq3 zM^?R+m0$Ha>r9<$8JV%)TfF#FtIBlZ0jxnHSRSdX^qZY3QYA0|Yaqwv8o9|*#UF+d zyIUVNK%4&~@}r;Pisil$RX&1Rv^M!!lSN5?rkCXcGA}+5x5@x$I))X=d3kYB9@Wxz z-JD4+V@18;lV&=~O*_~vue&6}uT;s<8GhwqtrDZlGNn8t!=oMXS?ep!Q%7Mo-tEzB zS$}e2UY-tJ(*2XDW4fqm!OKcdeZ8n@ok5OjBoAGYeZd!XU#9-bmtn}h5_`QWtZTZ}HAHDnahc7%8uZLeg`RKFv-g)bb7oPg^ z^KU+T*MU_B=;9EVla4uvk4KNOAotHPk%){3RdTW>2ZiGJ6i=?8)?JQwaV*TwQJEE> zr)w5_^K&Zaq;*b?$1^^T|9Rkoe#*py_~qDp&AF>Jd!Sw z_X+Aagy$!?=R|&XI$U!99LM>4ZQ37e(*8Xb^q-2~zr>UNQ_E8$VFTJ}z^ST@Wh(LG0 z74{f0_83ccQf6}^B;TH`a_H4#Se8S!9MI)(FHeIxSj?kj9yB{4v=dMB?3zd0Jot7( zaVIW!X4+YRN8;b(8SHSfM+a*5<^sPSIVkM*(3oS&JaXoUG!Lvj9)rJCxjkrhf@rk9 z9#r!nn+L@_NajH^528H|s!(XZ*#=hBS)0oo;Y(nnuFCG%H}~g z@oyW4TTi|nGUs`^GcmuNaL=xJw#~C|4j+5u@Uq*{XAVyD?3yFnJox6oxJM40yFFOv z!8@0@-_8jSwmI(2V{wiwd*sNo+mmSyT=QI;=iWRQ=eW5?k7ISWr|vwJ=MwkZIq^92 zR&LM4d1lVRXOA45c6)fu!)+dZ^KhJp=a&Bm$ZkP*w`1`;CCIBN0Hf#%&OvUj3vq_zk-#Mrr2mCl1=;VY>g2=H&Cw1h3 zqz6*TLrjiwas-s)qZ~eUl2wkmI(e*<(|U~GdK~P^JE+Gwum?iSkz*%O=5RB|qMel5 z$*-MUo8#Ra40n=po}xPmyOX>-iM#{VI|;s%>pOYBlLI{YKo1W-P=y{he4ItxgyQ4e z;t4cv%JFgb@uVUjSjoo;$_KLYpx4p94;1j@bg)N9wd19a*x^zsY zBQ_tWIX&uma-bd(bqwhl-M?Tme(#gHwa-`YJ^9Y}FFe&onp^$MDJ)dxQ%`<5e+qg2 z<(G0~pwF=fKJ#EU50dkN?mXE_hh0A4n4Z)09OsF6divATp(|Q{H&+TE5Je zw=(AX^^Ezqcb@s(r2LVY)Z=*Q366TI^uSFQsObsL6Yku==Rtv9Sx)qM=(eGKqD(cfu$lyA?!o^b3>$n0Yvt)pyD z0Qcl_9kT0zUXS~pDDVjhdxF>l#vVUD(c}|aK6B~!0IZGpK03i)atsvUq;~HU=RG;! zlmC5;3--|Pdeq-qEOqqn!38^H_@s$F&U>=HCj@+=!4JUj;~=qPj8FXdh}!R%`42kS zQNssL{6OzM+C=YtQof7)J!xPM3ZD$|;)-Wj$i*DDF>XgBJ6hS|`FrW{=rGe%2O0mw z`9AuI|Gj@=g8TCOb9&hB{fRSfbrZ;PxgDTW@x(_;zHm^;xXB-~mIA4y##kN##+^aEwrb!VDog9wW zSoT+p_`R=CTfPIkTg#{B&at(XlA=M%z496H`EmObIMiLb7FGOarqat<1MzhJlhIEzH<;QTD~&O*6~AG6nA*U z;B&;;hOyET!XqW84`$Pp%}0-ic2upWUwiG<*1NA2;d(qa3|ceqXRyb0d1Qu%tkP3+ zeAH*d6K5|I6C3g7>0SgdL>(PE9yN?nydDNUBR*;+X{{t?lJm#~|L5bEauk=A=q^in zlylRebP>~c?vJpuwmG;;TEWYYGTWX{og1J=dX!iXm_1M~YC0de@Qw(r=JEF;M8DF@ zOmM@d7#}e+X8s=Og_}Ovxk{6)g{A%ZH<|Yy$|KEt$E@=l%%AEb7u@g1$CKSGkYM>& zgOeVGex(_pnZV}z2(qTdwYJb7X-w4DVsC6ybKI9q<@0ykb)-8@mCopK;s17LVjVK% zdMnT}fs-a0xwD;WH1$hkD@L1B7nY&Z>$L0o_@yubvAuwTIuuT`<~DIrk0$9)k|NP5OUwG=%x4!=Jqwk-2E;V|- ze=~Fp52O8o(68}R=;>Nk(%%kS)`M`B@VlY^%^bRhO+<6`Pjby{n}4{}s1hOy5lqt^!f zj4x`KI;$8aZVUNN^edUMXHqdt?ShD%+W5Sm((`M@@cFO4{outXegsfU0|XQR000O8 z?SZjYOR;YIE{FgCqLKjsBLDyZVRLh3baO9rc4seRZ)t8{X=870b1!0PXD?-AVRL9M zb9QI!UB`}WJrUmX6eHNcg3EEX5g`W$Y;Ly@~t2J;Afxw**BQeuYUfckAIB#_bG9| z%RD|DEK6Sb!;wIk*M~9cOG(E|UHw*&!B~j54wbos=CP)4XS056eep}}%U}NJrykn` zHEbV7LDlm3kn$}J{9TJxJwC9o=yZRnfGIpf6Qw6#QksH5B#*zxEHK z6QaSVIN(EBBu82u;i-rm@jg`K)lhf!8{(yMORXl=J)`ckvJJB8nA;&-7uswAPh^)~ zL0?qnf^_>t{D!g?hJ#fz(_bGZ>5)J3Lov`6opmkBua~Odb8e#Vy_r6tjT-C2HX?2x zDto#holaao;Lqs!Lm7;o)pcVbn9MXg^m5@EA+aBdPuvw0O>*(}JsOwu3dJ>WV%R95p)>lgHbq(@WZmLq*g3Do&8 z&wv*?8|gUIn7LCx?AD!)nEAN%YeCmhJ~4PAn8nLt8jdK+G`3bV%Y_gdEX+)36jHM*&7pMATRe^E^5nOlgd~)&L`Whfvr3s)U-&2U5CsEn|4A*XJRzT*%dP|dM-^A zA|PcG8frvr&Mz2@N}6I%V|SIvx{(c#Wp&XiW6z4eQS=IWBsz*}#(|DDEUtE5Bt#pU46s_7Azk@CsJ-u!t;?E49J}6y4JkYi%SzqWeCWaCpm92tIhjI7N z6#{#*-l)$}7<*b~Rj>&mMuS8eI*=vpXckr*1ALMkT$nSPg|m}qpQL8$tOi+*ZG`S5 z*3_^#YGYo)Uj|O%iMl2dTX+?8a%xNo9g{q7<-`u@7LK)oXV_sba4Ff(BFn-v5yYV*_ATHGG`DrB;r0BN*vRf`m9*QwFV9d z)+VN)qy#ILAVV`aFp8>{Mpp}C`e5!8j3oN`VVz?Gx05uo) zD+}p4h^VkAgovEf3+C*K)@Iro`NUnR4x}n+geq`?JzB8a0d}-P(G?x@jg(8OTEv)V z*6TJF9tY0nzwo7@f%BaoLB0LOcV4~)-I?0rM_<16JA8FA@<(5Oj$e@|KJa71Kzc|5 z(&~%PV{bvi92h<0K>r-|*1?Ml`B(gH=);V6<@!TF(q#80tb&(Pjaa3EA zXT_j;$*E{ia*iyElkY+}+N)smzP`nQ{Rj7D(sU#{}n6xonL?FCqMo6w?C?-@%EeQ zH4_;uz03}N#VTv|3Aw~oC+Y!)UYukLFzN-(?qv<|Kk&dT0vUB%6O$ISu+bON0sVq# zChXKBP*1XRz#E!rUZH57MD^z$7ecH-=$&c5Vzd{A&qPHv-+=3hmlkW9(ttU8EaJ{p z7!~7nAUoorcE#F}!2}o>=V!%OMY00S8rt(c4oaBELy`l{l5Y1bGnxrg%e_b$(;wvd zy~vm}(1WilL4ZN2UKKh4l-QNn;SD&U1t1y4A^2NSO3ZkWlnOq&zZ5L_Bq;u36jl1qac?G^P;sDFcYjcFN~Q~Q8LXHYGes*AOhek)zC`zXtVRF1w%vcLJp@a)1 zCVjafpAQ`srsBOQAh{Ny{|`1xg<{nY;_um4Y8|DU}6KY9Is^7{Ye^`AI-X|cH( z2}V6==s|zJ%08rx6&P>8|5^=xP4=)xvneDjNp0yy(G0u(%p<;O3*`RM6;ubm3u9fm zJ+A*6gvhpy$D%O%qGBa{W7&zX&f;+ofdz~`AnoNG%1TywT6Bl)di{f}pjmmMWR$Qj z41cQp2fcI8?6Fk!i!Ha$@1^3v?J|&7q+JD=5_yTGInF9_0uYt5w&}LI`D`VeZX9ib za8prqD!RVa*r->ahSZE?Xjk()^Lv@DqIX*2%2xE6mumisuj*cgc;{ROYGn2`=JI+c zd+45t1$y36!{o*k#@Ap($X~(6)q$vsskVBfahqS1G?>Hi2UCYEWNZ%D3_wxX1+vqU z>a5t31X9nv-t+j=6+_;f?ZpNa+|aFJV3$stYxuxapvjAPzCf2UX?js7aetaND)6kf zi4#&1Giho_o!EIIiWt}jPl^wd7 zgIA?OFaZ0yO?}+B!FT^HD;S#4)c{vRef~@QZ|8tTfx_ZmpZ|SrGQ$Oq4B?+>&xM4A|Y-m;S*Ce<8#*<38xqWYqEx< zLW}74yZgcm_m4(a_YNe$in7F99L`tQB<*ZFf`p0&{Chn?d-;tdP^aRLD&_ zAwCX#V8X`;LqH^Y0nu`;1;jF->W?M;Gj(d648+kxyCV1Zw5w)$M!N?_uGEVBGQf>@V z5@p1o$2emPW^ERAw)>!v#@jFUu~LjqOf0_vP5nJTj;yxQvmo?1XMSS_bG+)J%15|(NC@{T9y%PT6oRs<5D8GUbU9*U z0!Al+lbDY8HLgS_{ZfFb_iKvG5zXMtfh;`EXq@B`2c6L#K5vh|YR*LjRO^t2Ihw{o zJ2$FTvH$gfaA1P%@AO$o3M?VXM<@l>S7xmx{U~wEmSKw?HTZEb6sr)Mj0%yylX!=d zKGV=Tv<}XmTFvnw!^BJ3vker4YlHXY6Tiq2QwurSW&NR@2nIYavM{itYQ)DFq zvi{aYPeI1B8`@RR2bKKGwbn204boWwDCUHqW=LyI74_X~U>ZvfSB9rDMRP*dpwkZA5o93TrHJtP#2 zb)aN(7LCAzW={51Wx{OmuC4SV54wZg>vlB(bmA}d^-jZ0S{}Z-33B6V$L?QLU3!tj z3D+!gN0j0#&BNR|Tyrq3q=LRJ%DnzWFc&!yOA6{e%d2GR%h0CYt(VwuaxA|GSytL30EVQtOuZO{qwM21ds4m(=u;TC}{q=-FdUk_KOzQb?NS z1J7Jv+W@-leUvri^Nl^jFG)ep7dDt`)x+lDA21i`Xk8;HW+5t^rqpy;jI3ZDF^*|R zvNmp)5OwfjR7^Sejii-`0tPKA_Yz(enT!9u6OG=uuL< z46MTcc2yn2boN*X;SUfO7>NaxHMpHx$fSIK#V5rtMJoyL34Z~07=(aSJ5M(>pVLhU z9_4i4rE!xEd1yUM;d>R~D(d($|Jy6yXli4ha9@OTgWZ4=2khw^2T0$RDMn>~ zpjwvLjo(1N&$G_g+Pol?1#k4NibR0Z<_!*S!SQN}QYI%!uzMoiaEUVn-`Ke2Ve4 zD}=TjWZvWmhn1+xEaX0nlxToLSAvK^n#?D?^3uAKwrtA@LrB&1>p0h`NUL~7n(-Y@ zcFj>?3VN*IpPmr^s{F7~fsf>=t*Xh&()@8m<;a-YFq7l7=9#5G|I~*1b5i^8pgkmy ztG}yk78*;|E*rnQB$GB3yG2t9`Q50E23Iy>4S}pL4i?0`|E#&7R*eCV)^o6GaB)9| zVW|H+3E9#Lv-;R$TxuM7#*hx8#82%}scGoYb=)LLswuyZP+B=8I)5E8De=4cJCxO8 zq?8VR%@5XF<9DXxgBB?5heMJqnh`1AoA=LI7e}EIr&S3*4o&MT<5Q~+{041|Os46G zYKFv%&XuUDEKmGe7FsCGYHCAvt-c_MH7VNOjzQr`^6>OeGXDZw`HP(Sv-W%NhgnNo z3LPWsxIjm_R^|tH8VB_!{L=YL!!HnFXT|=k>e(fs4tmAQcFKYfw~*eRZw_>L3Ta*l z>6>c)X<1r|Cx?k(M#tY44&j5*F)lEE)ZrxW>+WGYm^%+^oO8(_rthl7eQCtVUE-M5 zHe&YlbK$R=e)C7)_|^}1i9$=^&`J-}8P|(y+oQ!wj}nxa=e&}s(!jR@&LamiRBHA) zK)0)D5}CcZZEuJ;od!E8ko*PTH3Djt`G5-hS+GB~*F~dw7(+SjOnmbcm{yCJuDr?D zhz@)XlF8nla?A_d>XowtqmVu`Eo!p-L>SM5sJ^LN0%>FF#-C{(CVw|q4ga3S`BOzk zol!EDl>YE)sBAp#9?_AY4%K;gTWj@|*r?hK*8!J;0-au*J=ytK7S2lCi3jKRNga%n zU{cF;ukEue#gjh4NW;t)!#3`e6&<41I1eR%;7EaRWlPaZT*nkSwA8Yx zMf$4?<1~*JZXgtfV2btP6wh+8wH5zQ*K~;SJGlqEj!5`dI!Us+%TKW$|9w5@eyYqj zfx;-K)osXM2EQ@|Dg^|xA~9vU^299Pr}~@Isx~x~OtS@sUL*iy?R)Y5G-npiYR9o| z^!C-a<{z?+99nA8m)wmNNAW8|&-LB4 zD@Bk8q$>draS?-XdUK4+_$%Vuz8x=j4IfBZ#xvIKnGgd*Sbjl|d+T52_Pru{r@Y_K z38o306-JFKcK5$RddE_^fDwiwaY^&apUK+9mtz3PA2#MSNM&|Fs=zcMk1&%gVxA9@ zF@klz$9#L(=|7vsJNK?JG)nK%Bidw@lTSp-9{PHZt14d(0jwfQZWs1M#MOz-qPY`O zqDwzvviF!w=E=ukj3CUBf1i*6ws@97oL%kAwc4Y9!o4ex8eJI`fn2SwsO`4HnET<; zV-pEqao;YlgV*>%XWxHA@Z}`nnxl?tA|Cc2c4$IX$Jb2t6~{r`%MIZb-@`F8jo9z; zMT>|JP6YVo>~01>GB9V;91P!yAz6LOK$W}VzCHORr0DF_f(&e*;#3kLJ)sD>o_+9C zpf`g0+S`*RVwMxQM^hBn{VSwEjLYxgE2Q}vn$m~;nvGPz2t!>iLd6=I5gCWB4~bvR zP7wECHdUiyYCeu)41?0YMhZnkjMLe{ZDw$`A!na(qEYQpG2zA(?=g|c=~eNngGf>W zbUyGMzEdL7>8$aJuc>C|rUYQ4qZ1LgIS8xIdbP=ceUHcL`V2`v8-f#|5&*ksVM#~A z*E<RIr7pDh#3^jEX59CUrfjoMRs7mJYP*<6R#TBNoy$F=4Y(^VQo1&f?V+P;z@*@Txi~Vp@h+aD zYNBv((Zkj=QhC~uCSz#y;8)|+?dK!;Lc4qxo*3CzR3!7T=S|5wG`@IdcSu=f`>8$P zcuY*aSgd?N5xPfKQg`Ecpg5TgKEDD< z`sn0gf!)zFgF=RtxB^Lfd3l&vJ2qTopuJw7gCz~}L(1#m7$h@d?fed3#Eg2ma*&V$ z4o*!#Nm%nP4J_0EFH%H%@EG|Dul4vEc{7UzQL03y=$cY4N@jO@Js>f)k+$ZST9wN} z?rKmoN9IBJ_UK3PYJZ&RT^w-S6-L6#X#oK=bCHmD>PTDbl<ixv@|+%U*t334E|n3xB}jkjB^Frw>4jVixB#YIx*{`6N^=dWSg z9nB*J85J%JS=4^-WN-KVZY2eUM}TfI@9>=xk;1cq{eitiwm9^OzQdCY5yD@>THw*N zbAol4aSGhKaTeC_i-=6(^1YxHh2Mw88d;R4jfpO^P#)d|%3!238WITi4z6aCn5M8O z>m5D`5#`*!=bTW``~n~T0KQWq(&-uS$}cxN@4C>001;$ZiL%dm@J^j}_b5OTmz#&L zs93%x?IsHZ0 znX#UNL_<&BLr5f>kjCfWNiY)8fIwV)MVVKVx}*(dyZfwsg%n@I7tOXLmpK8LwY*$g z5aYq$1;kYcT&9R1BGBW+7$_=z!SBS4O?HooL{486mY#ytBVv?y_)htD`M6MkE>zuj z{Yd(7rWMARB%}-@lojWU$TTiDltH_!)~;NT6Qh)gxPOIYUn3b}gzF1pNNt(|%9YM# z;hi=F&14X`lu2hqq;WaYFgJ5z=_2Z6!AXqY#e3*CV;21$6Ny}&ITp8h$`{5pL}e-= zS;IZC7@Vm*zdl5jplJfbN`N+e2k##*&(jq5!&kZi zqm6}=uO6E0B8^Kjox(j%={x+o<@b-63u2p2(^Z8QV?3Uwg42D8b^`eoEewLP`a66Q z{u`z0<>K_J4b>Uj&tCF|*Na-)Lp`TZ8IZ{p_wDkilD?tN0m2&O9llc{(xWrftF20E zQSMDs1p7k9gBzmVYNr}`VX4CMT(MDtyZe)QeS|m9WcPA*l#0^6Lb9)s>}_+Ng5>m; zLHckS>9m)CItxzxjSFh(lRMQ{H&3fZL!cmSB*ciKl#!HV@tG6;BIzskX}(c4zNX?z zXO_ySzGFzD1V70T43yY6U(S8=G%kcmsxHC(6~2u zcoH&F_;YDFL@~#2)QK!Ny~~)N3nGjcmj$kq zw94d)ie&CyXsjjlC;6*HEvcCTlAD02JKB>qcZA*}zU>ZWlmpd`PO&!L;b(dzu=zTX zg)f})JG{|5fy)^yBFq)eROubw=#jwX`Xy>MC_{My-YU2FMi*WIlU=NWJN$}_q@KLa zBDG`>78L#+ex^qPn_HX~iq_M?41mwUL4Uc$v3M<32VG~k=Gt6)AbIYgl|u-SY%r5 z4@?@_=Xi%7iLa<@X$YD7!SsiQ6emMqE;tLZ?sVlfwV1E&32||_`$19uhqod%l+&r5 z`}MLp()nNBhFV=+kyWJ2eaMTy84EE=%_|Iqm%oxY%csD()BYYm(5m0n$tMeCvrw41 z?RoeW5`8TehnHX1Yi#9HwugF54R{!9d&URIG1ao}_o&ME^6FyF7%FNMHYc<8^o}v_ z>7Eu^m05djXIv+A`8@HaKS(et#olh9vOvs3OvYt`_K-#KjQDoX}q2hk;L7pOG*KWruK7z z??K)?#8U4kBRvInnS3INJ9zdg7Hz3Oww(MJ)lAdrO{k4^Ng;+y;3g>CFDg2IbCH2>hQRImwFJmVpS zyQk1AKUJdXN#qJ5+2wkK0AIU{A;OCuh2^281x8m1rAopg&%!-Mj#gR>O}ZRN4bjZ{ zFwbfb$)Sp(0Zgo=1rtYe%b!W>F<@}5k5}+CsueL@SA(v zI~3&=&C3><)G!;ec)Cd4np&S)^Vpg!i=#?RBi23U+ud)An;QI}s)z*QSA=gaQ|~>a z$SS9wP$CW++!~w;w)jZ!$#+U8*=W{^`%_OB4B4Xv`KL=QjXQPk*Z$gZiUn$s;8CJLU{T@7m=`aHLlLYBTZK@=s|dW! z83Xhx9b{=Z_Q7@3XS;{Wa!bU#xIu!f)YEcHDi< z7)X-Kscd(cE0q1}O%?`|J3#{3LmZ^AIhDQl9^>-3Mz4ztfNj1dS8VZ-;In(#O^uqu zn}~hHG2RJ>yAtt++uY)Y zq-Q2nyX#=_dD-(I)?sULeO#X5{;5m{buGVlsKcIUjeuWt24g3L(ROFlU*pAKL6oipnYri~GNr%QvBp#Ea+HXnjc@zdGA zX#Ym~XzxRp>=VZrlbK|93PdbGXO;25eoE*MHArj5yoi@f;QsSjE1-kDon?jD$u z%M+8FzTJzH-^HCL8=h;_%_4Eve2sgZV(69=-n}t(fdT#mjo-eIXS)i0zV$*)n04Yo zKW2~}&UsZ#g*nXa@y=0{rWcJTBKfXJuA?rNCzfmYyMhVvGpZV5pW}J=2W50j7r~>G zRfliAN+(G(doC>LiIe>F-!EbV$oyCs(3b2rAR z>@K!9&oV1KEcv&31jsETN!s44i(|*;_!=q#>GU29v5LF9%WlOlkJ#P$HGEmcP_ZSRC$Q#m;w`?{rQ*r2-CbjAI^AZeRP5fd?>&EW zi!K~jiAJzJ@N;}w1ng0Jdd2p*QH%jzzxm~oIU@bTSQ^Og75mQbc8f1%8f~W*K=@59 zFd6PeG=ga`iYCv*(8h$h+i?Sq8FqrV^e_SqLJ|RvU*&#kOLyNKa1|dt6GOH#ew;EL zamp*{h;TThf?S44V4c3v;R#glF1Ow}4PUiWe{RL$LBGu6o}QH2OsU#a#ow3B6Bsao z${TNt%ss9}IDI5H9+hc2P_+9RZ+X9cb@L>a$%oixn|FT0vO60iA>ilum;Z6O`(P(u zM29b~DK-z{n=mXEdizE%c1fCY6k{KnxG|U$cvWptEno39ijV67@s*86R8S|~GlymX zF-4laj)&TnS5X445BK|YcxfZ`t0V1B$~WMlB_oHUPNQ-BGI=@>XJT}l4wa!nbm12W z>9I>e%Wz%qWBU@=L{|;?4oY}C_~x(7nsV*qE5VSD-5!%li@|EQz5|11Yq+p>vd9DHz!yZv0|gFY7KiS~p3foJ<91ayNP{-DKy;|77Qi(O@k$sKrcwIMsZZ@{GG zkj66|Sd+#yiJPn<^qwj@ysgv96mf^{AYdN=cYf>RYbeQ$K$}fN0chE(5@In*oaI@p zSB6N63C2gN=wYcWat3C13$uNvjLAaNf!$l4$INX_%3RFEg(`^7*;&!G`ls0ju~atT z7hXy9ksXCm6At?5e2V6vN3DfZ;8g+#4Dy4?nLVFAzBZSfQI=NOT%<1@ zwAFz_wKo<(vASh@GhA~Y=N?I}DmBViG)PgER+oLDH@t`gwD}cI>NoyF7jaZzhMG0y z(AihmPHLR&9LXh)QL>G?Y!|8(LG*1}!u#rS?s)8tulS`z|XKDo!#n`!F7c0oCFg|Zijp0;X zBlm;J(F~&G;}T46Pn?Cfi*&(XcQBtLvLbr+y?2h%c^;+WCA+&*bWUM&u&?bxPM*fK z9`1wn_UmuDo?4sTHLgwSKEv|z2M@Hg;>#iUHYJeh{0ydEb`($1)(t#q&?oQ9r_-$@ zmXty(qZ`(i+Xu@s(UyAh`6^U1XrjV@GRKak{Ev6`7l6wW_s)+r+?oJ zbN&||CGaqYk?0Z6$p6CY8RJFSXS{{yEq>JZ!fgxh8y*||eA!N6-7jp7E1q;9fhSe0 z_i>U5oHtx<8-DrIxZXCrhyRuID&JLJJka`#pMz@)oQ(6Cyx=jTc6}MA8kpe+jemxj z5M>DR)`e>gTupwoXiV?Go+|B8HThtF*DCd3Fin?IiM^%C!Lk(YEm(RtgPVP-QM;Vv zB8_GV*3QXkKI_D-{RKMl)$QB4yO%$W`)$K}_}@vtm!~>B1uW0-W)v{>2rb6P4BUiq zK*99ca0GcC#x)Wz#&weZc0w|(uk{4x z?lJInowLE$#=yUhkjQ5y@X3EH0%Kv9*~-A=qUt$m5!YC_QCC8CQZ`lF={4%Wlt6ke z?1>l8f5kcz^whl8dCMxob@V}3f^m&5>>CX@oBMnj_V9pJZ(-y~dTtX7gS`bC2Nhx+ zNp&0MR-ME#&)wrjiFM-?3GoFF7@wh$1v<08p zMR6c|pK*QpGkBvvi*w<}!?t(62#(+9mnkf>vcM`YIJB9yhgATGu#=>5UmUG!EYj=9=>m?^%wQk{xEgS`+4K)kad&4A6JR&ADb_Q~Udc+}Z=gkq?8JWa% zj?{=P7*W0qC>~IPwBumHBLOgt6HsWx`TrZ6rEHZBfNE15oJwyjJP#HfZa8YHmV9?3@f zzSAFNbhuA&Qeh+HUAta*h`M>X&zW4Q7imZ=gvpce;#{VxqLHN6$BPYPorCy@8~(hm zn0hQWF5Cd7Pm9926-tahlbD3Ua|M0Y%&+u}DPwf5-#9ru2YDKCR60VNVHwXD!{qr& zh?i&BHrzMzNbbUahJH`K?s%gwTX=eW4ui{(uHi}-{AWBiywle$JU!#Qf_?;UFVFZH zrZf3ztl@v*HqYWMx}?soyzmcaM=i7$&@IONz)xGfhw{N(a z(cO7yy+4Eh41L>i(6_+#zGrJl%-JbAB5uT0PS)62CqPk^zDFbFRF2*Gb zBcafwBmLx+&{T0~Cm`e=hp^2L^axh++*q}d&c)~96Oa8W`on5I{y-V`RTk88Vy@#9 z?RB3w#CsJhD^>5vlwlL0$CdBB!1NC4{a&7J9Pjt)+_rmjUY>AD8{X(s+rqc_`SuL! z7Cbh*p6N>@-vX{Dh-JwWd?v;ie@<&J`aN&2YDRm;SkXRWsQ6Fe?TMTsmvC?Z+C`c2S^9RYfv&n9qdgyeM-`l-P;xVnF zev5w7J?E^Qj2p&@wddQgfn(WK zNPcg-ifQiwbK~vAu`-U-i6m|=h_XGwCeeC9l;{zz`T%84dxSMVg|_|#`&r3kEQYx- z`eVaR{KD%weB}+-+cO?d;RBP(yF0B=T{oGHW!$2056D`;cMZd(0UY!G7Au`wl?HKW z?~=a5#5y`@caXvOU60Ld_hwx=zkPK}T94|SJ_f~0c63|>YoS%*xCqr$-JiPC= z-Cp+cjO&I=(05~$^cklO2YE9@NuP1w@R@w*!(~Ny349hO8|M}Dp*{!sjM5%6urDlI zP;iV5M-+Zk;S2B19I%i_$V}q)!Xu6`?LoF>?R-`F`g_hEBu@24GT!#s4suuogE>H_ReO6=dZO%HYlc#mIIO6ET4_6Nb}0*Ur$87ZXurf!|M zb<0%ReDO>;Ay46^aNg_?I1y`+C0rFQe-`6Lj3NchhNTC2GOj1NVGr^$jbYAt#v{Uq z@yr_@w`aT}yc@5yVVC~GZ42)k9vl693Pd>|V&kgsDe9Qby+~IWw`6$LIJABSq zh^z2-)$o8*kZ|kPYh~Z3Q)HOb55@P&eZ-K`Z zqWWT`>CDTD_@1Nyx7bMT`NmY1jyilS2z9oIx{hRzo;sB4REoWtwO^mg`1p`ynX;GB zJ>>LF(}3bml6e+4S8dt9eRWI!=3{!p22vTDsWRD(8FK&qMYe|&h|WdAjiFZepy$XM z%2u3iOpJ>C?$<4IHa1s5bbw=zQk>}gwq9A~^K!!Rpmo9T?{0XduA$8vtLfS4=6S+9TQ+{u%%zQD&3?e_j3sr;LVzc= ztr1z{;Sr|Tr##|Fy=qsy*ECUSOt$+?wbqbkIDe{q8C-TZ0Es|$zs>^lm5lH*tCzaW z`9iB6)=N8U;g-w!w8etcFJr{+v^NgGLH76Is*2^~1lU!d1#9P1^Y7R1zI}DONSE0k z-j~R7$^$*y-9F8y7x1)g`OxN-{4#BikU3E|?^t16ISzpuqH(S-8|>P1XFIb76}Ak^bWWMWsnb7UCiDLFtN zYGXpG@{u)z$r(L1P59z6J(A@9s@SQ9j4hV2i6;@d7)SL^tPab<2I`7l%Cy*;j4vnb zQ;Z4giA}cG5S%JI&o>c=8(dfW2^V;C30J{!k|!7bSVOO%m!!pX z6*vnAxxZVBw1?Af@12zgJW8G`w4p9h?adco)GpwPk`<XLaLs(-z*ox;;cdcrwn&CQm&ITLL?AT=w`J zS&3b-(|Z4U!9Z;9HmtHG-k$TOs`dVLgJ~}BTxrZd@N7ZjTyEVDc#AKmvRF7#n<208 z#DEe- zRq(qPTCvG^)VNz?3Xf`xT!k@z+>DoSoA;|ZjB5()_&5b?`UpN8?6On4I+lK!U^!LXO*ikXD@MfU;@~81m-}dl7L*FC32Ob-qw+GBJKf@EZ zz$3`3aXquo#_dd=@N)esE=`93HcrMhN|z*S(UL{?n-FIF6K4=Ph;$sdE9Si3w|QFon-0@fK7-R*PuB}s82E$vv_ z0w>8xxm-_#Ys1)UJ}eR6KL^vetz=b0uQMN3x-4RWLlxlVNQ`dRCSQT!m!sLcayK0D z?t4RVb+6+2ZhQqkI3L`6q{dIBc&}=ToEwqQ6t>oX-5T%ht6TArKQ*jwLs`-l7Yf#D zf*5p1Xg;avX;73S^wq`iZ2dLnn|iEMonC|0W4%a^;;QvH?PHY)5T3g0E=pw`3%B9_s7 zKyb_b?WXLb^VIYgv4&!h>cRYsj&3KHr~iNP)BLK zap|{}iBZ__k7;ofH^+&2ozy*dnK8s)h#ehu!3g>TFDCK&J)gAoEh3aN_J{Sh?ojC@ zUWIuR_34-AwmjmnkZiP6?Bt*&<4>Fxvm%)&=FW|u6?^IjK3rSAPw9Q$W}9hehpV0tQ-wr-g8!7NJr*<~yacWKN1iWK5&#bD=X%`wG7lB)g5r!t>Mb`&CJgdw3t<)L|Vq5F`sw^=#m zY;Rq?eRV6%&6iBrtk%!1!vdV*RAMM%XfjCg{Ykm=g=dEsO^`gF0z7o2d4DqNIr~4V zUC5+q^YQRwLQ=L5U(rRGt~36ymnwe8{8w#KKtVhO=mxj<&v5CQLk5%Ysa`m>)=aK_ zSMTDVw^?Q6rThEC>t1D{cd5d?5~a5JmuMH{%%bdU8m_u8!w+&z4?D6Bl^)1D&zBg@ zESAnZQk1c=S$dK;4i|M6nEfx9oju)fJ#J-zZ773n6Q&nFlON|fLY?H$*#qDAB38m8 zQ49V3;j*oEZ(rRWE4vAIW^nF970WPATP=I%Mv%?Pfsx$xG`*glc@fPvS>a&Cq9(Fz#@5-TBp}IQ#=?CNWDZ7N7VAWVo|cyAdang z?B7aq)t1cG5&H{sada~YYs_cskh-RZkVZnmyp$V#AAof-*SRq=r(QbT5vkT$^ z9vabbwdXO0n7Br_YuI&_>FZWrG}HdH;8p?Vr_1sopkt$vyk26hh4{WfTgRYqoh z>^&r}ey2~BmugJ|i1R0kqdzR3Uei!@mWo4Z#OfAZp0ht*xHaF~SD$6Qw$;VYJ$ZEy zZ~S)MKPNLMCrDtL0#>*L6ky#52FQbxfV48!xTngv9d=Gq^(c#F@MSZm3pXAHjBvSx zE?*{doELLZ^hfwGOx@5|N1+)4BU|Aaa2a-EsI52Svvfn@XX;R$0#{?qvc@@Zj_@al zd;*u7ab$-|{9!y!eB1ELAIAMo|BTzqj<5G7Z~RnEvKs2;8TTFE{&0BtWB3;MpG?1( zr)~9_fvf5JNuL}(0*_#vIRfY4vq;Yh-MXhow&oesAjeLG**1!2FC%V?2afC6@-kjx zd+y2-Tbg$+<+a2FOGwC;nC&Lsd2b?$KZd`&o7vmnKE2f`k>dkOQ@Nh@CY|ZVg#po@Z za)eus0e|$fU(6;oOdSyOpJJ+-~7|3bJY2h!m08hWxyrgi*7ddWX?$$@7 zCs$oJE5D}deLRW&aahe|yvnJ7iks*`n8M6+p3JvZs)rk&W@Z+m=KWz=Z@v{TVkD~d ztUaQ$C4EPzY=*jJ4*e`8P4jA-zLeR84@Uxfvuo4sbnH^Q*rh=l2v zd>(OLXMW0Gn&&g_TlnL&pq;V%&0bm@O|i=>&L!NX#pz(vc}Jr) zf9b%}YKB&NBBxp+yzJ^XPx|cFfM`qz)jz*HYf0~(fcBM>)s;WyRB9%J+D zYGlU9^}NtBYdC?(8uMhWxkS?uOSXNi-+|?)+`YhM9W>dIP4Jt>(&IDMy!3l}h}uT8 z%Ezxxb8q(pXRE|@cwBFmc!II|#%31lkP|H}n7)xYahNS)78f{CcJEJG+afwUuwJoZ z`a1IlNVilQ^Bc3{!__jTEBZkx5cgN{)nhX57_qM7JKH+uv%jvTI>2F`%icda7^;mjs zuLIH=ODy~M`?t_JJB!Py=-!M+;1mr%g-AUIz5Oq8gIm^{y{ra zvk`6)%c4qL^-8a_MUry~L|h^{dYuwO#>AdV5>!hdD+1G0-HxodWMx-f#ClT6X)hJs z<9FncPkL40{#+&g=e&7J+xX^gA<$N#nmrQZ12x7+apI8G>W1RXC~t+6GUF*BKNC+)8VB@VFNeC*P9&7&*8KNDt+!^sozg*;Y2yGJ-Pq()vayJCcPUEH)VHIGFRs& zOxu`RBcg*F+$&S?FjMI5xik7rojes?wnq(_#&D?~#yyw>c4Fd~3Ah)f@L($5hZJ}j z7n2KRcZDvHHeNlbld#0om0I=?;HHsNkNAA=%cU8U^t{c4Sds#mYYR6=oJc^H+co|rzLIj>Y32H!ew``#ifaM6!e-PpP1xH@cZt~ zYT?^~Rkhxu)H+&iUEP)3`xT>c!OYUo=|Y0v(wg+lcW?uYTi{ zf^pb&Jmn$G=|!-pEr)wrhvuT^m&hafGMnotaP)j5zW22I?!x>lyrOT1^NV3tFm{!` zr$y=X4qw(W0^gi`A)Nj~aV+cnj}Uaa0#?L*->MJ#*oKYGkOKZdfN{`DmH=nRbWFo7OXpV^}y zf$8-K15Z~SgsU~0sUO@+5|z_PUC_#Hp6yxGRJNt3jqYcRgqDuUG(z)_WNKYEl*!wr zO`nl$+TWTyqq(`q$VnQ`8t>NYVL?5Evr#N;I*@8Lh8Yc<9@BkbNyDsUQ$_4Elh$=( zb4z#Z!l`LHr?i27i2YcoY4cg(8a%<1mwlg)#vetOW%-tTso?ic#->W;&gCw>WI8l( zmN551dt>9ZRp)Q}$au*qBH;9>#%^4UjgcQFV=ywE-KjZkOz`TQqVt8QrWHf$S$+sV zYQa5|AtqgSV_(T!!27MWFt(3k|*DvP2{>ABx4 zr!F10%Iz3Dmj;d<#d-xXeCMAROM|={`S>0It}I6t#}3{LvsfH5+tf8+k^YAiYL4(w zTUm(>=A34#{aqH9dh%xTlAuWLw13%{ipA2iNG;FPZQiys5*F(QHiL1y(32H4aUcZ zG?L5AkftM%jJ{$beHYWyT&PM(JF74L=uQ#GNr@^}o7vwH^a^hH5itcZz)8=Z}U!2-qS z=4_Wosmk?wk8cLboAb9&9pu{=aFn% z?}+JT?}Gk%^mYKX~fQ3BF z2RN{wd+_JQF1CGe|9ImTn<9KFJeXq2fK%m{!35({J#=2D$g-i&w}U-RgaGL)kCA z%NRrwSxMen%TYI-!Nq3D6EUPr)QFQSP@bP^HsQD>8484XHjlB9I*8^iRKaN}TU;1z0<9li) zl%l2h~&w>#MEqpK>P*Xf z@b#z`W2e=?QqDLw%V5lx`k6q^=iua9J6rnLn__b>vz$;`*XNI<-$&fCvcSjjz1FY5 z^K1QkiTLH6&KJM$Ts(Jy1C=Vct@>Oj9Rkdv zY+$DEBay!cf&^rc;wjXZ$omI*g*Z&^zQkJ?MdL$g#jBiqu@{fx_&E4<|0ntHe}etv z;M4u@@INk8(sQYsC#XC63;cKbU&Z$MzrcUO|154Nm;XU7M+5NMcyTLsdA_1JKO&D} zqJGl|1|yEXgRW0P%n@bNv3 zXANJM8EgdM^Gz0yge+TdX1t5tG(DYkcNU1#BrjR2eZ3st#j}6t3E~Fk2%y<^yjVBC zfoEnI1Nzd4!1~cTZ5x;qCWI&d#k5GJdmw#^zqr?NosP7|xde~fbX;A*&kTtUPB_2&v z6Pmv&!9$}x`1qc4p{7O%TZpc0L<6@ihH`=t1m6~3Q;K~X8+?3U1KdouGQHmc;M(Lb z@ZacvejI$buVR1re{3>JNL=6dSuC98-Gx!ElTkx+ zD;~n#>kn>VJV}eh20{53FjR1OJjcxEj)+ zQUdJg%Nbwbdsp8wFJp3}L4J?E@;>@fT~ini4*AClo5AzQR;g9N7}eo_QmAw{53!q4 zyM!wwlL61DFd)xuf)yE7EL)K+gw|0;OpN?@P6o++gGaiH<)4Rh$nGlZDE|@SS^oDB zcl!{Rf0I48pwTl11#xPh#a5gjz41DDmjC|n=TAQUAAGu>@qHY8y8j*ipYB2115265 zA?+oTf$iXh5e=*+B-4WOFEQ!^`f7FS=2PFpbcFtC1w!tNassh>`5yz{AMsa$UJ+dO`$GY*V zsTnkr+9iz*W-HXb`}+Kn8p_-8$cS!#mSg(ZC$eaOSW z9HYtY(QD9uFX@C{_D}u;;lPdv{0kU~zHP#Gxmj%xN&a7og z^Rk*S4@tB0b1opry^F^vmU~HOO23w1C7sx90hhr7bOjE+R6ZCCD6O9Vmcc@oG`mhe zf4W{cs_Q8l%x=8Z#j()~o^=i^k zH?MU~X_BrE&fs=UZky!9nx>HIbp|%g={_9XOE(l+W70kloc_rzJ!2C^Z9p^amU$vO zgySgr`^cMaTdWD~fH_36G9_i8OeW32=o`VVK6!D>kqPFmPN!~D4O3N?Ww#SoCcX{~ zNUAh3r}dyRw>EgGtoimiBxfi;s3X=zN$KJ&G#R#)$?RH{-&G1J8Qq2&SvHmm-nVko zYRA;o)qqFh&*ae}Bt{Q!Hld0a9j z-LL@-wW_Ko!z53lWKCTJS39oU_kPY^!{*U);4% z5+wo~VYv#inamYYvr&aOWE=%&T0$f)Hc~e3VaXj+2p!|fuWx5V8|i&HWq7iul$khv@S~ajE&r*i(AP33i!M?0n>R7>`)qC6AzqQlA%e~;n49b)5>XMg!8;a1bABDh*n3w| zq04}C)J0(_rrNg|-K7%<8H04aqB3br;k}Ln$X<8jd}Zk**o|JsdZx7ZrX8xmt|25; zylY-P*VSZO)U4#fYXgku86{(SXHvErbHZ1B!0=$`3a?iaRbi*{>&$5xz%v6t4_SzAi;9lmATU(vbRmw(K{a$z0 zQ5#nci5Psqw02JJvdYCi3G3SAzOeB5>$Z7gRAtrH>uBHxd8ceK_^w@EM1$C8ZNP0= zkx8S<4LhKr`_uuQC<8{ec$cvyI&C$A$)ZYMOZDbpGiejA#){HwW8g&_Bwx=xUF<{m z;(Ofb-WnN8$Jk(16|X6dk7OJ>XT@LnFS&zZ;5W(YA{x(1iCb-VE`_(*D1C=8zvh0G z!#Ahi8>THxEv8Q3Ohi`j(Sh7Yqxg^CEVW~^)c(fJQsXLyolLLw2!3<2D{Oy)*T=z! z`^o-s@ZlcCR=hvncv`vl;!!+`qx?_tdfY?oT|AmN#)sI!oVtdx;~h$m z-iOBoT?5kVae7XIw0z`%!2C%?8mo>DByXK$nDbM+>X5iVx$>dnP+|8n@$OYurCD+Z z52yyneS_KCkXr+r>fZZjcF3cDkYkYHkL&@42}kh|d--=0uUYP`xKK3x;|h}GK&dXJ)^wA+{e*19^fn84Kft!?R4{` zo=vVM;af7b7Z_)3ZmEKw(D@PZvY()nyD>u3)}f`PHRaQ*9{!owLlB1H2%vM}F@k ze%+;1v-_z&2F9We<{n_OF`!1BPjw1)Ze-U!L@Lub4-IegyVbes|U>)bAjsnd#!o?%D?3=tyhB@p1^h*+Z;p?46S5HH@3hSwU@5` zSS?u_EX!y+8iCdAs<%ZvxioPD3W#vD3)6HcJ|9q?=q7ZWeN0|isPNse08id}VsD|H zrGM-XP<%1JPsB>i>U3~RMhStT1WFFnjo(MsGOur`!Mq#kVDP&?4+DEf?{yRDg2FmE zON7hY#Zzg4={l2}AGV#0*(i`Bd2kn^)1sIb#yyLIdOsbL3ds0XbI1HQaN@9Q!=J&? zCd%p_Y($48Ta)%?f`bpIzZd5Ho;hST9WEpXL*hzz&1d%2iye!qWIh@R=5B8cBOl*a zfK!sN`%?N00Yqkdm&seFLH%I*(7AxI6xh9*Ro~mC{qO$+gT`UGph)mt+k5 z_mQ#8>3e##_oSiQUR#GlEA&<8UPIVJdpo^}4c<9t7YDHBA$F-8BmeB;XmDROk3mO5 zR%{f#>NATw4-WZf$1%+`*Nr+B=5?gWz_ss(3g@Vo!B=#1h+9p4ui}BcBXz=fPPH*M zG}xo6?xX0kEZh2N`mqKTKm zeJXvJtMPj%TE)BWEub?^loG8ZuUB-njA^r`grO;`&2-m{>?%93L(ab5`3Y^xyOr~B#XelzLJemsujm%kiIyZSt3I}-=DmwA zGI~FiO_j6?&S$OuUp+3lHTAHa?hd0xa#X8nB_=NKV~8ciFd3+moU;~!bnh>*de%L3 zFLPx+w+8N#8g8YM0si!GELLt(2(78bE{5Gc>+r(G;UDB?VjtCl%6%>I)r*^2_}JoE zEpXX8??y(s>iZ+SRqpSX>$Wms? z_foZ%h=rVapVra&-A7~2*8MI98hSMC;O&ZJ+lp@smkZT*M|F<0AtsM0?#1rnr}_0~ z7Exovn#ID_g&qoi33rVgdnvTmN~TRbGzak})D&e@URwSO#`ICVSQuNa8OE=bxHZJG z0Yo%n4WzC5l3j9^^627Kau!=`4z4!AH;~~UZ3E2lTsL$BIRG6k@II;rb%oVZS9ptk zAM>gBS53)Q<)?bqm}0MiGYnk)3+xSq&&>i|xU5QZioJT?S>E>)FDqWv6E`r&OLC0j zUjF;@z5Lq{$5UBKY%C?-monSv9gVg2Se)+q9BZm3R#!c0#+bRP%9`yXSw`MX6JheI z@5iheUz_eHj!k>8gh(+XHZlLq>7_oZDQKv4e7rDU7 z5xGrq)QrT)8S{NqOxDzUPGu81ytsBrVuQJOK2~z~vC`v(Nb1F;?9lg!UpAIUN!~~N znV|QU^+C1{?yr_gPEma3>p*Ncsvn7(zdi#>7dH5QP2kYZ#j|+HJ>s3cFywtcyya|9 zY)yQ%;;z&TFW!~davwm7gJzTJban@~8gQ-(y+(SJ*#>tNjn~?uXQ*_a^*t>1#76eg zJ$8=PgUV9kXyC_U-V{8|Giv@g!GQ^(CXD1=>&pChi9KrcZQ|`8xGDVM#T9+wRmp3GmHIv^b?sSKiZ$7uihX!Zmvv*7cHPxuPx?3T z(c|BT+)|J`JZb}N*O1c5uZw<63G7XsLa*X$>M|GOXDNzD)lPe3bOdkwIJ+u0OuU7C zYnjw4cbm?oA<@fxM?Z1DcO#l38|bRz3YFFglR@$;ZRwrd!B$h7sjBK$qv=%HcAgVG zijG!;J0)4F#26pRA>CwtXY~s3O2o{A1i=hUXYZ*RaNjGbw7S!Vv?MRx+WNgYOLwL zrgXj?j7g;~`c>+At{;p6o_RMKJm!xf4!sj!?ijWFx$czT&w0a{DtOA{#^;{VlU;XU zV&OyH&z-Du$-l|^w9Q1zKv$)1ldol93>&QY>tb%QjKP<7-{4RC7cM!1F)R5hvGbAW z^;Q5U9prvZFec>W78L80FXFZ9>FZ|Vl(IuA@1x#R5Z=m0ms8uI)OB;29-=6wVqdGV z=4d#yKV+lj$tEG^lLz@ZQt{bli6>)*Xz4$5vl2(WKy}n zOIeO!);hbG4Tb`asdo>R#0>J)P43>br`3oG4#UAx@J-Rp3SK*OgGQ8cPuzSvL!oWT zSahbA>w%yuYJ)NJRd+B)J*TJUKCr+pXAG z8h*|Cz9;8+MDLQSiDRf+&Q~Ni4irqzUfjXEa#~LwEgAExS=O}R?El4A{z!%pOGx)j zL=#}$L4=YU?-4nq@;>UGJ8X`bR`BuymVRUSd!>h2O;B5QyKc5YdUT@|n=B@X$(f$3 z9u@bUTo>ioqRl5PeRl2LjzlQZ**7{x(=eeT&vc;sVr4bc{#v#cR#w~Tu}t|)!Cygl zTXpKUgR@SuKjZ!-Fa=zPgeOgt`P}kW=4{KHw+x$G5>%v7Wr?iteUIeO^}^6cr{&*K zbXk_~sn^y23k(V6$kTNDRtj(j`_!;9F@URB`q=7LW9eQhdfcd9<|A_GJBsB#BCdY5 zIRfW&h2?x{ObZG%RM|#u&y&G@k{9=l4I#ghHN%4dfH?t zL{L6F8Y1c2^)`0*WE?7+;KlH`d!@=++JoU^f>sNDM~Jswx^+WDnsD4F{( z(lToH*h5-G&bJUAxGgB2lF`G+;AX=8F=x?x4SJdm$lWvIF17uZHPCeN+V!=U1{N#@ z=9cF&&263CPIB#EKwgzHEk0p6bmS{D`j!&ydxdb;O1%#-x_T*iY?N_lZQ+8_*RF$= z9h`wQuudK2=Vdxti?c>!ew}*-a+yTuR%-OgtA?T5l)JQJUb`a=bx-&9sN-(Yo=+89SZGN(Fui_t=jRR@;`(8=+tKg*LKT?m(rn`Zoj+M6BQ)5f7 z!YT!iw!=%pX68~webvHx0%>v}@5bvCv&SO0glNFLuw($ zubO&F!-ZF`+&$a$Ky-IN|O$jim%^1n?ieLLoG;_DI1r*tcPD;{3)hd5N36&}{Zs!bc>8Oon+<)^Ku zjf;0(jNGGk-deq^Ts_dX>M)~vtbqT=3SuCgWUIaBJ;bA`V-5LVYUcE(`_)TRst&n2 zk<9N-?J~-kWt8!mmBlrxHt4Lu>$7b{azhm<>~M+Rpu3f5 zaZr5gWA9H}b*`=tIjDB{%nEk(Lc;1}d=NFVX&e=gs`Ya3rl_wbZo9TJP%-Vw$GE}@jv8$3f-$O-C~WY zpV|1dA>Krpm5;*7QSNB=%H3Gub7i-BTFc2VkL9>b{2#j{UC|JZ>M+mgAVFA3OU znT;}|P*Lz#b}_nYR90z?Q!gxuBm=BHMI81c!ktgPZK_bbH1m9<^p&-Ov~ zmrbMCip&3c+(Z7y5U*#<>|z_wR6^|SlVgV6%H8XGZgw9%?0v{>ZQIVS05p{vs;lm( zQu3a)vASzgAUR!S=`zUbdKKKOFTyW0z)@B_vwhY$#{-#B@iy_^&y{gt^-~fH@$_OB zdzb%N?lI-A-Wbih{4+fCK=R)PnCm==nMAabUirdI`#y?^4+wAW%<)J()Qnq-EhHE5 zI!!Qjy+Yq$SO6zyvMwIwPQjTvjWOY$7Q^HpYiy8A^%8ZQ8D+9Ddsl#2Y>6-gM0O^63Q=;Hq zH!Q4{JTK~Dr$JMf{__Vg#i}8_Iw`(+y*Ci@n8-b3_+Hcla-lar4`y~9*6>6ACm3ew zp2bu8@W@DWCXu|z`RB&s^$HJL+xVWAN{rsN!++PgeyVZdez7>ARJ-tfe%LM9^82aR z9hy$s&mPEqFt^Z-dh&a9-ACzValU5&8CC|cZf61p7x){^po6>2ZZE@ZL-oHsIR~5) zuM5sWZ8xh=D_9Qu+HNf47dX$Q8MM1@M>YJ_QfA?|tLa(GsJv9hBiYh9z-YSQSr^?v z-3OMv&VoNruGQh9>R-Il`*Q&zx=i`rD-p3Yg}#QI+tB_&hdcG~(wHysqz&5Zj-SC) zO5tsvTv5=wVrP#Bcdcqns}@};Qx^z4uO%3`uEj+(_*`oZZH~gdUCMkNoo+Q`u3eUn z6N;a@lA%lu)o#1a*rq?#bN<_tCk>L>Ol&2W36^7?mUs=!3m~U#2RKid)qlwSeTY@c z*?Vznx22h`{;bElds6GVKhcMVqrK`v^*S!$yY3H<&rVxj;D+v`jCkrQ`Y3a~s0WO! z%;UD6w2@+@dh5BgBs3bI*SqecL4TL?-(n{ zFcJZ;(%{$mZAh{f1kh`fV}og*L!P_bdnM1yM9ZG{l*&SRz@6F90w%zio`Ij^;9k?T zQOCK*XLE(Q!L5d9YT2X-*PK`O8+v_DJjA;_d>_?=`pSS_8U7$gh{tmsxUd_rmV<*g z`f2lppD$VZv_dG`z@>#5O{d!Cs^T099ew??@YVO?7TWccPF-pmMAxUdcNGtnPhd_^ z>Hg^2clkG=r*~o(#{xeSE%wmKXtE4W!rEJ@V7V$iq~SgakIS3Vir_=`n?mnIL(7sd zHhnH`1N{Cq`;Dyy$dbMM3i6&au_wD;5aFGpj_Am(>8XO_drma#VL&%n&XVT@v+EHr zu|;vYk6!+V`0-xkh3(;w;=|p=bBevb@9|n+G4`4_n~AR>R_g3C+tRDvbZl%3LmPb& zwNS0M>Ktt!oaL5?X~cb$MHbF`@E_#Z;uvKMYVSOvcz=+++;^9IbnrW1uTMORUzVi$ zc!^hWborkl_KLflXDb$3T@lde>{2+mVF(S# zfn2!7eaKmXVPrfS!2Q-dK9V>ga+T=r40!NJ_ECuUTOqI)oE+qw%Rh`Mx}G&ID{~du zLr25(x!96nut0?uCl|@EzpHI^Pwwd6O#T}fH}dok@&s=gaLh@CL=4(ffQ{cnFC;TV zYOtd7jrIJVTUE)<3&6-d{c|_i#8)I+dfV`y>1)ZDHX?lKV}tj;*Y^z!y+v2}p4>)y zD}&XZ-(QfmvQYJrjAZTmz5KF3j||AXHp*g-1z092$C&d&yC987{5E@WQIV_QzsXVxE9n=)R;1}e+Xx{|*dad?!`r+DrGcPJj^eua1t zdv@EzPL@I4i)rL})Yg3z2922(%g$GPBv7C1m^}N`1CcWsYUe21p8%&Ua!fUDMf<{D zKEBrry^b`t=XTe~@X+@d7?ELthmT(|XFA@4)@2keKb3W>mNA#7JGPtaHM8B5SN@sL z{RQ2*X})D@w=!k3Zn_-23DZ&O*<~FmzmMqa;fKo*Ki}w+Ar9h)T5gmf&ScSCVn@L{ zhbE?f^81ZNTGR_rgJNk}zh&B|qRvq#dDAQlHIQ>{#lMoFji5E1nh|bp($gpDfTG1WH0mko*t}H;gal?er`?CJ=&0Htj_#I)J3){oX~4_pj17{Lt%AAD7~nmfM>0C4`T3)C?jyBm74o=wa!<*Ge;fRs_aqHjE?H1MTLZH3`$q8nrg!U-fVmik?sQ$T=ZbSvf}x7!wEUc8yxMWcH}I zH7$y~C)bL*C#G*~Lgu{bD9ZcD92Z%x|^X7tmvlof4be|9l6%fRJmM1N)t zJGySN^6IYlDyz~>zD5@>@XEw=-F>~`e`gxoN3u?m;Lp3vVwZE)mVUrn-FphZS(%k~ z7S#&G*Bd)LYBZAHi}L<7b6KfJaz4lb##*G3+l2G6NFMaAaod7L2lbSfnYlXi*2(=5 zg4N@ed$!>GYiy<6B6(zO)~vxcTll&*I6Y4FkF3{gvn+X$3*4_NYo4Y⁢}4mYID| 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

  • H-m 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

  • *S&oFM|BD3{q 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

  • _IBM@YbY^$tEI1IuS@FnTOOhzjqMD~@Hxb6Q;O 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�Hk=GS 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